Files
cv-app/static/gridstack.min.js

15 lines
41 KiB
JavaScript

/**
* Minified by jsDelivr using Terser v5.39.0.
* Original file: /npm/gridstack@12.6.0/dist/gridstack.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
/*!
* GridStack 12.6.0
* https://gridstackjs.com/
*
* Copyright (c) 2021-2025 Alain Dumesny
* see root license https://github.com/gridstack/gridstack.js/tree/master/LICENSE
*/
import{GridStackEngine}from"./gridstack-engine";import{Utils}from"./utils";import{gridDefaults}from"./types";import{DDGridStack}from"./dd-gridstack";import{isTouch}from"./dd-touch";import{DDManager}from"./dd-manager";const dd=new DDGridStack;export*from"./types";export*from"./utils";export*from"./gridstack-engine";export*from"./dd-gridstack";export*from"./dd-manager";export*from"./dd-element";export*from"./dd-draggable";export*from"./dd-droppable";export*from"./dd-resizable";export*from"./dd-resizable-handle";export*from"./dd-base-impl";class GridStack{static init(t={},e=".grid-stack"){if("undefined"==typeof document)return null;const i=GridStack.getGridElement(e);return i?(i.gridstack||(i.gridstack=new GridStack(i,Utils.cloneDeep(t))),i.gridstack):("string"==typeof e?console.error('GridStack.initAll() no grid was found with selector "'+e+'" - element missing or wrong selector ?\nNote: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.'):console.error("GridStack.init() no grid element was passed."),null)}static initAll(t={},e=".grid-stack"){const i=[];return"undefined"==typeof document||(GridStack.getGridElements(e).forEach((e=>{e.gridstack||(e.gridstack=new GridStack(e,Utils.cloneDeep(t))),i.push(e.gridstack)})),0===i.length&&console.error('GridStack.initAll() no grid was found with selector "'+e+'" - element missing or wrong selector ?\nNote: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.')),i}static addGrid(t,e={}){if(!t)return null;let i=t;if(i.gridstack){const t=i.gridstack;return e&&(t.opts={...t.opts,...e}),void 0!==e.children&&t.load(e.children),t}t.classList.contains("grid-stack")&&!GridStack.addRemoveCB||(i=GridStack.addRemoveCB?GridStack.addRemoveCB(t,e,!0,!0):Utils.createDiv(["grid-stack",e.class],t));return GridStack.init(e,i)}static registerEngine(t){GridStack.engineClass=t}get placeholder(){if(!this._placeholder){this._placeholder=Utils.createDiv([this.opts.placeholderClass,gridDefaults.itemClass,this.opts.itemClass]);const t=Utils.createDiv(["placeholder-content"],this._placeholder);this.opts.placeholderText&&(t.textContent=this.opts.placeholderText)}return this._placeholder}constructor(t,e={}){this.el=t,this.opts=e,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},t.gridstack=this,this.opts=e=e||{},t.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),e.row&&(e.minRow=e.maxRow=e.row,delete e.row);const i=Utils.toNumber(t.getAttribute("gs-row"));"auto"===e.column&&delete e.column,void 0!==e.alwaysShowResizeHandle&&(e._alwaysShowResizeHandle=e.alwaysShowResizeHandle);const s=e.columnOpts;if(s){const t=s.breakpoints;s.columnWidth||t?.length?(s.columnMax=s.columnMax||12,t?.length>1&&t.sort(((t,e)=>(e.w||0)-(t.w||0)))):delete e.columnOpts}const r={...Utils.cloneDeep(gridDefaults),column:Utils.toNumber(t.getAttribute("gs-column"))||gridDefaults.column,minRow:i||(Utils.toNumber(t.getAttribute("gs-min-row"))||gridDefaults.minRow),maxRow:i||(Utils.toNumber(t.getAttribute("gs-max-row"))||gridDefaults.maxRow),staticGrid:Utils.toBool(t.getAttribute("gs-static"))||gridDefaults.staticGrid,sizeToContent:Utils.toBool(t.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||gridDefaults.draggable.handle},removableOptions:{accept:e.itemClass||gridDefaults.removableOptions.accept,decline:gridDefaults.removableOptions.decline}};t.getAttribute("gs-animate")&&(r.animate=Utils.toBool(t.getAttribute("gs-animate"))),e=Utils.defaults(e,r),this._initMargin(),this.checkDynamicColumn(),this._updateColumnVar(e),"auto"===e.rtl&&(e.rtl="rtl"===t.style.direction),e.rtl&&this.el.classList.add("grid-stack-rtl");const o=this.el.closest("."+gridDefaults.itemClass),n=o?.gridstackNode;if(n&&(n.subGrid=this,this.parentGridNode=n,this.el.classList.add("grid-stack-nested"),n.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight="auto"===e.cellHeight,this._isAutoCellHeight||"initial"===e.cellHeight)this.cellHeight(void 0);else{"number"==typeof e.cellHeight&&e.cellHeightUnit&&e.cellHeightUnit!==gridDefaults.cellHeightUnit&&(e.cellHeight=e.cellHeight+e.cellHeightUnit,delete e.cellHeightUnit);const t=e.cellHeight;delete e.cellHeight,this.cellHeight(t)}"mobile"===e.alwaysShowResizeHandle&&(e.alwaysShowResizeHandle=isTouch),this._setStaticClass();const a=e.engineClass||GridStack.engineClass||GridStackEngine;if(this.engine=new a({column:this.getColumn(),float:e.float,maxRow:e.maxRow,onChange:t=>{t.forEach((t=>{const e=t.el;e&&(t._removeDOM?(e&&e.remove(),delete t._removeDOM):this._writePosAttr(e,t))})),this._updateContainerHeight()}}),e.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach((t=>this._prepareElement(t))),delete this.engine._loading,this.batchUpdate(!1)),e.children){const t=e.children;delete e.children,t.length&&this.load(t)}this.setAnimation(),e.subGridDynamic&&!DDManager.pauseDrag&&(DDManager.pauseDrag=!0),void 0!==e.draggable?.pause&&(DDManager.pauseDrag=e.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}_updateColumnVar(t=this.opts){this.el.classList.add("gs-"+t.column),"number"==typeof t.column&&this.el.style.setProperty("--gs-column-width",100/t.column+"%")}addWidget(t){if(!t)return;if("string"==typeof t)return void console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");if(t.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(t);let e,i=t;if(i.grid=this,e=i.el?i.el:GridStack.addRemoveCB?GridStack.addRemoveCB(this.el,t,!0,!1):this.createWidgetDivs(i),!e)return;if(i=e.gridstackNode,i&&e.parentElement===this.el&&this.engine.nodes.find((t=>t._id===i._id)))return e;const s=this._readAttr(e);return Utils.defaults(t,s),this.engine.prepareNode(t),this.el.appendChild(e),this.makeWidget(e,t),e}createWidgetDivs(t){const e=Utils.createDiv(["grid-stack-item",this.opts.itemClass]),i=Utils.createDiv(["grid-stack-item-content"],e);return Utils.lazyLoad(t)?t.visibleObservable||(t.visibleObservable=new IntersectionObserver((([e])=>{e.isIntersecting&&(t.visibleObservable?.disconnect(),delete t.visibleObservable,GridStack.renderCB(i,t),t.grid?.prepareDragDrop(t.el))})),window.setTimeout((()=>t.visibleObservable?.observe(e)))):GridStack.renderCB(i,t),e}makeSubGrid(t,e,i,s=!0){let r,o=t.gridstackNode;if(o||(o=this.makeWidget(t).gridstackNode),o.subGrid?.el)return o.subGrid;let n,a=this;for(;a&&!r;)r=a.opts?.subGridOpts,a=a.parentGridNode?.grid;e=Utils.cloneDeep({...this.opts,id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0,...r||{},...e||o.subGridOpts||{}}),o.subGridOpts=e,"auto"===e.column&&(n=!0,e.column=Math.max(o.w||1,i?.w||1),delete e.columnOpts);let d,l,h=o.el.querySelector(".grid-stack-item-content");if(s&&(this._removeDD(o.el),l={...o,x:0,y:0},Utils.removeInternalForSave(l),delete l.subGridOpts,o.content&&(l.content=o.content,delete o.content),GridStack.addRemoveCB?d=GridStack.addRemoveCB(this.el,l,!0,!1):(d=Utils.createDiv(["grid-stack-item"]),d.appendChild(h),h=Utils.createDiv(["grid-stack-item-content"],o.el)),this.prepareDragDrop(o.el)),i){const t=n?e.column:o.w,s=o.h+i.h,r=o.el.style;r.transition="none",this.update(o.el,{w:t,h:s}),setTimeout((()=>r.transition=null))}const g=o.subGrid=GridStack.addGrid(h,e);return i?._moving&&(g._isTemp=!0),n&&(g._autoColumn=!0),s&&g.makeWidget(d,l),i&&(i._moving?window.setTimeout((()=>Utils.simulateMouseEvent(i._event,"mouseenter",g.el)),0):g.makeWidget(o.el,o)),this.resizeToContentCheck(!1,o),g}removeAsSubGrid(t){const e=this.parentGridNode?.grid;e&&(e.batchUpdate(),e.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach((t=>{t.x+=this.parentGridNode.x,t.y+=this.parentGridNode.y,e.makeWidget(t.el,t)})),e.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,t&&window.setTimeout((()=>Utils.simulateMouseEvent(t._event,"mouseenter",e.el)),0))}save(t=!0,e=!1,i=GridStack.saveCB,s){const r=this.engine.save(t,i,s);if(r.forEach((s=>{if(t&&s.el&&!s.subGrid&&!i){const t=s.el.querySelector(".grid-stack-item-content");s.content=t?.innerHTML,s.content||delete s.content}else if(t||i||delete s.content,s.subGrid?.el){const r=s.w||s.subGrid.getColumn(),o=s.subGrid.save(t,e,i,r);s.subGridOpts=e?o:{children:o},delete s.subGrid}delete s.el})),e){const t=Utils.cloneDeep(this.opts);t.marginBottom===t.marginTop&&t.marginRight===t.marginLeft&&t.marginTop===t.marginRight&&(t.margin=t.marginTop,delete t.marginTop,delete t.marginRight,delete t.marginBottom,delete t.marginLeft),t.rtl===("rtl"===this.el.style.direction)&&(t.rtl="auto"),this._isAutoCellHeight&&(t.cellHeight="auto"),this._autoColumn&&(t.column="auto");const e=t._alwaysShowResizeHandle;return delete t._alwaysShowResizeHandle,void 0!==e?t.alwaysShowResizeHandle=e:delete t.alwaysShowResizeHandle,Utils.removeInternalAndSame(t,gridDefaults),t.children=r,t}return r}load(t,e=GridStack.addRemoveCB||!0){t.forEach((t=>{t.w=t.w||t.minW||1,t.h=t.h||t.minH||1})),t=Utils.sort(t),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let i=0;t.forEach((t=>{i=Math.max(i,(t.x||0)+t.w)})),i>this.engine.defaultColumn&&(this.engine.defaultColumn=i);const s=this.getColumn();i>s&&(0===this.engine.nodes.length&&this.responseLayout?(this.engine.nodes=t,this.engine.columnChanged(i,s,this.responseLayout),t=this.engine.nodes,this.engine.nodes=[],delete this.responseLayout):this.engine.cacheLayout(t,i,!0));const r=GridStack.addRemoveCB;"function"==typeof e&&(GridStack.addRemoveCB=e);const o=[];this.batchUpdate();const n=!this.engine.nodes.length,a=n&&this.opts.animate;if(a&&this.setAnimation(!1),!n&&e){[...this.engine.nodes].forEach((e=>{if(!e.id)return;Utils.find(t,e.id)||(GridStack.addRemoveCB&&GridStack.addRemoveCB(this.el,e,!1,!1),o.push(e),this.removeWidget(e.el,!0,!1))}))}this.engine._loading=!0;const d=[];return this.engine.nodes=this.engine.nodes.filter((e=>!Utils.find(t,e.id)||(d.push(e),!1))),t.forEach((t=>{const i=Utils.find(d,t.id);if(i){if(Utils.shouldSizeToContent(i)&&(t.h=i.h),this.engine.nodeBoundFix(t),(t.autoPosition||void 0===t.x||void 0===t.y)&&(t.w=t.w||i.w,t.h=t.h||i.h,this.engine.findEmptyPosition(t)),this.engine.nodes.push(i),Utils.samePos(i,t)&&this.engine.nodes.length>1&&(this.moveNode(i,{...t,forceCollide:!0}),Utils.copyPos(t,i)),this.update(i.el,t),t.subGridOpts?.children){const e=i.el.querySelector(".grid-stack");e&&e.gridstack&&e.gridstack.load(t.subGridOpts.children)}}else e&&this.addWidget(t)})),delete this.engine._loading,this.engine.removedNodes=o,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,r?GridStack.addRemoveCB=r:delete GridStack.addRemoveCB,a&&this.setAnimation(!0,!0),this}batchUpdate(t=!0){return this.engine.batchUpdate(t),t||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(t=!1){if(this.opts.cellHeight&&"auto"!==this.opts.cellHeight&&(!t||!this.opts.cellHeightUnit||"px"===this.opts.cellHeightUnit))return this.opts.cellHeight;if("rem"===this.opts.cellHeightUnit)return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if("em"===this.opts.cellHeightUnit)return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if("cm"===this.opts.cellHeightUnit)return this.opts.cellHeight*(96/2.54);if("mm"===this.opts.cellHeightUnit)return this.opts.cellHeight*(96/2.54)/10;const e=this.el.querySelector("."+this.opts.itemClass);if(e){const t=Utils.toNumber(e.getAttribute("gs-h"))||1;return Math.round(e.offsetHeight/t)}const i=parseInt(this.el.getAttribute("gs-current-row"));return i?Math.round(this.el.getBoundingClientRect().height/i):this.opts.cellHeight}cellHeight(t){if(void 0!==t&&this._isAutoCellHeight!==("auto"===t)&&(this._isAutoCellHeight="auto"===t,this._updateResizeEvent()),"initial"!==t&&"auto"!==t||(t=void 0),void 0===t){const e=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;t=this.cellWidth()+e}const e=Utils.parseHeight(t);return this.opts.cellHeightUnit===e.unit&&this.opts.cellHeight===e.h||(this.opts.cellHeightUnit=e.unit,this.opts.cellHeight=e.h,this.el.style.setProperty("--gs-cell-height",`${this.opts.cellHeight}${this.opts.cellHeightUnit}`),this._updateContainerHeight(),this.resizeToContentCheck()),this}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(t=!1){return t&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){const t=this.opts.columnOpts;if(!t||!t.columnWidth&&!t.breakpoints?.length)return!1;const e=this.getColumn();let i=e;const s=this._widthOrContainer(!0);if(t.columnWidth)i=Math.min(Math.round(s/t.columnWidth)||1,t.columnMax);else{i=t.columnMax;let r=0;for(;r<t.breakpoints.length&&s<=t.breakpoints[r].w;)i=t.breakpoints[r++].c||e}if(i!==e){const e=t.breakpoints?.find((t=>t.c===i));return this.column(i,e?.layout||t.layout),!0}return!1}compact(t="compact",e=!0){return this.engine.compact(t,e),this._triggerChangeEvent(),this}column(t,e="moveScale"){if(!t||t<1||this.opts.column===t)return this;const i=this.getColumn();return this.opts.column=t,this.engine?(this.engine.column=t,this.el.classList.remove("gs-"+i),this._updateColumnVar(),this.engine.columnChanged(i,t,e),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):(this.responseLayout=e,this)}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter((t=>t.matches("."+this.opts.itemClass)&&!t.matches("."+this.opts.placeholderClass)))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(t=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),t?this.el.parentNode.removeChild(this.el):(this.removeAll(t),this.el.removeAttribute("gs-current-row")),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(t){return this.opts.float!==t&&(this.opts.float=this.engine.float=t,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(t,e=!1){const i=this.el.getBoundingClientRect();let s;s=e?{top:i.top+document.documentElement.scrollTop,left:i.left}:{top:this.el.offsetTop,left:this.el.offsetLeft};const r=t.left-s.left,o=t.top-s.top,n=i.width/this.getColumn(),a=i.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(r/n),y:Math.floor(o/a)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow||0)}isAreaEmpty(t,e,i,s){return this.engine.isAreaEmpty(t,e,i,s)}makeWidget(t,e){const i=GridStack.getElement(t);if(!i||i.gridstackNode)return i;i.parentElement||this.el.appendChild(i),this._prepareElement(i,!0,e);const s=i.gridstackNode;let r;return this._updateContainerHeight(),s.subGridOpts&&this.makeSubGrid(i,s.subGridOpts,void 0,!1),1!==this.opts.column||this._ignoreLayoutsNodeChange||(r=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),r&&delete this._ignoreLayoutsNodeChange,i}on(t,e){if(-1!==t.indexOf(" ")){return t.split(" ").forEach((t=>this.on(t,e))),this}if("change"===t||"added"===t||"removed"===t||"enable"===t||"disable"===t){const i="enable"===t||"disable"===t;this._gsEventHandler[t]=i?t=>e(t):t=>{t.detail&&e(t,t.detail)},this.el.addEventListener(t,this._gsEventHandler[t])}else"drag"===t||"dragstart"===t||"dragstop"===t||"resizestart"===t||"resize"===t||"resizestop"===t||"dropped"===t||"resizecontent"===t?this._gsEventHandler[t]=e:console.error("GridStack.on("+t+") event not supported");return this}off(t){if(-1!==t.indexOf(" ")){return t.split(" ").forEach((t=>this.off(t))),this}return"change"!==t&&"added"!==t&&"removed"!==t&&"enable"!==t&&"disable"!==t||this._gsEventHandler[t]&&this.el.removeEventListener(t,this._gsEventHandler[t]),delete this._gsEventHandler[t],this}offAll(){return Object.keys(this._gsEventHandler).forEach((t=>this.off(t))),this}removeWidget(t,e=!0,i=!0){return t?(GridStack.getElements(t).forEach((t=>{if(t.parentElement&&t.parentElement!==this.el)return;let s=t.gridstackNode;s||(s=this.engine.nodes.find((e=>t===e.el))),s&&(e&&GridStack.addRemoveCB&&GridStack.addRemoveCB(this.el,s,!1,!1),delete t.gridstackNode,this._removeDD(t),this.engine.removeNode(s,e,i),e&&t.parentElement&&t.remove())})),i&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error("Error: GridStack.removeWidget(undefined) called"),this)}removeAll(t=!0,e=!0){return this.engine.nodes.forEach((e=>{t&&GridStack.addRemoveCB&&GridStack.addRemoveCB(this.el,e,!1,!1),delete e.el.gridstackNode,this.opts.staticGrid||this._removeDD(e.el)})),this.engine.removeAll(t,e),e&&this._triggerRemoveEvent(),this}setAnimation(t=this.opts.animate,e){return e?setTimeout((()=>{this.opts&&this.setAnimation(t)})):t?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this.opts.animate=t,this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(t,e=!0,i=!0){return!!this.opts.staticGrid===t||(t?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach((s=>{this.prepareDragDrop(s.el),s.subGrid&&i&&s.subGrid.setStatic(t,e,i)})),e&&this._setStaticClass()),this}updateOptions(t){const e=this.opts;if(t===e)return this;if(void 0!==t.acceptWidgets&&(e.acceptWidgets=t.acceptWidgets,this._setupAcceptWidget()),void 0!==t.animate&&this.setAnimation(t.animate),t.cellHeight&&this.cellHeight(t.cellHeight),void 0!==t.class&&t.class!==e.class&&(e.class&&this.el.classList.remove(e.class),t.class&&this.el.classList.add(t.class)),t.columnOpts){const e=!!this.opts.columnOpts;this.opts.columnOpts=t.columnOpts,e!==!!this.opts.columnOpts&&this._updateResizeEvent(),this.checkDynamicColumn()}else null===t.columnOpts&&this.opts.columnOpts?(delete this.opts.columnOpts,this._updateResizeEvent()):"number"==typeof t.column&&this.column(t.column);return void 0!==t.margin&&this.margin(t.margin),void 0!==t.staticGrid&&this.setStatic(t.staticGrid),void 0===t.disableDrag||t.staticGrid||this.enableMove(!t.disableDrag),void 0===t.disableResize||t.staticGrid||this.enableResize(!t.disableResize),void 0!==t.float&&this.float(t.float),void 0!==t.row?(e.minRow=e.maxRow=e.row=t.row,this._updateContainerHeight()):(void 0!==t.minRow&&(e.minRow=t.minRow,this._updateContainerHeight()),void 0!==t.maxRow&&(e.maxRow=this.engine.maxRow=t.maxRow)),void 0!==t.lazyLoad&&(e.lazyLoad=t.lazyLoad),t.children?.length&&this.load(t.children),this}update(t,e){return GridStack.getElements(t).forEach((t=>{const i=t?.gridstackNode;if(!i)return;const s={...Utils.copyPos({},i),...Utils.cloneDeep(e)};this.engine.nodeBoundFix(s),delete s.autoPosition;const r=["x","y","w","h"];let o;if(r.some((t=>void 0!==s[t]&&s[t]!==i[t]))&&(o={},r.forEach((t=>{o[t]=void 0!==s[t]?s[t]:i[t],delete s[t]}))),!o&&(s.minW||s.minH||s.maxW||s.maxH)&&(o={}),void 0!==s.content){const e=t.querySelector(".grid-stack-item-content");e&&e.textContent!==s.content&&(i.content=s.content,GridStack.renderCB(e,s),i.subGrid?.el&&(e.appendChild(i.subGrid.el),i.subGrid._updateContainerHeight())),delete s.content}let n=!1,a=!1;for(const t in s)"_"!==t[0]&&i[t]!==s[t]&&(i[t]=s[t],n=!0,a=a||!this.opts.staticGrid&&("noResize"===t||"noMove"===t||"locked"===t));if(Utils.sanitizeMinMax(i),o){const t=void 0!==o.w&&o.w!==i.w;this.moveNode(i,o),t&&i.subGrid?i.subGrid.onResize(this.hasAnimationCSS()?i.w:void 0):this.resizeToContentCheck(t,i),delete i._orig}(o||n)&&this._writeAttr(t,i),a&&this.prepareDragDrop(i.el),GridStack.updateCB&&GridStack.updateCB(i)})),this}moveNode(t,e){const i=t._updating;i||this.engine.cleanNodes().beginUpdate(t),this.engine.moveNode(t,e),this._updateContainerHeight(),i||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(t){if(!t)return;if(t.classList.remove("size-to-content-max"),!t.clientHeight)return;const e=t.gridstackNode;if(!e)return;const i=e.grid;if(!i||t.parentElement!==i.el)return;const s=i.getCellHeight(!0);if(!s)return;let r,o=e.h?e.h*s:t.clientHeight;if(e.resizeToContentParent&&(r=t.querySelector(e.resizeToContentParent)),r||(r=t.querySelector(GridStack.resizeToContentParent)),!r)return;const n=t.clientHeight-r.clientHeight,a=e.h?e.h*s-n:r.clientHeight;let d;if(e.subGrid){d=e.subGrid.getRow()*e.subGrid.getCellHeight(!0);const i=e.subGrid.el.getBoundingClientRect(),s=t.getBoundingClientRect();d+=i.top-s.top}else{if(e.subGridOpts?.children?.length)return;{const t=r.firstElementChild;if(!t)return void console.error(`Error: GridStack.resizeToContent() widget id:${e.id} '${GridStack.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);d=t.getBoundingClientRect().height||a}}if(a===d)return;o+=d-a;let l=Math.ceil(o/s);const h=Number.isInteger(e.sizeToContent)?e.sizeToContent:0;h&&l>h&&(l=h,t.classList.add("size-to-content-max")),e.minH&&l<e.minH?l=e.minH:e.maxH&&l>e.maxH&&(l=e.maxH),l!==e.h&&(i._ignoreLayoutsNodeChange=!0,i.moveNode(e,{h:l}),delete i._ignoreLayoutsNodeChange)}resizeToContentCBCheck(t){GridStack.resizeToContentCB?GridStack.resizeToContentCB(t):this.resizeToContent(t)}rotate(t,e){return GridStack.getElements(t).forEach((t=>{const i=t.gridstackNode;if(!Utils.canBeRotated(i))return;const s={w:i.h,h:i.w,minH:i.minW,minW:i.minH,maxH:i.maxW,maxW:i.maxH};if(e){const t=e.left>0?Math.floor(e.left/this.cellWidth()):0,r=e.top>0?Math.floor(e.top/this.opts.cellHeight):0;s.x=i.x+t-(i.h-(r+1)),s.y=i.y+r-t}Object.keys(s).forEach((t=>{void 0===s[t]&&delete s[t]}));const r=i._orig;this.update(t,s),i._orig=r})),this}margin(t){if(!("string"==typeof t&&t.split(" ").length>1)){const e=Utils.parseHeight(t);if(this.opts.marginUnit===e.unit&&this.opts.margin===e.h)return}return this.opts.margin=t,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this}getMargin(){return this.opts.margin}willItFit(t){return this.engine.willItFit(t)}_triggerChangeEvent(){if(this.engine.batchMode)return this;const t=this.engine.getDirtyNodes(!0);return t&&t.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(t),this._triggerEvent("change",t)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach((t=>{delete t._dirty}));const t=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",t)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){const t=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",t)}return this}_triggerEvent(t,e){const i=e?new CustomEvent(t,{bubbles:!1,detail:e}):new Event(t);let s=this;for(;s.parentGridNode;)s=s.parentGridNode.grid;return s.el.dispatchEvent(i),this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;const t=this.parentGridNode;let e=this.getRow()+this._extraDragRow;const i=this.opts.cellHeight,s=this.opts.cellHeightUnit;if(!i)return this;if(!t&&!this.opts.minRow){const t=Utils.parseHeight(getComputedStyle(this.el).minHeight);if(t.h>0&&t.unit===s){const s=Math.floor(t.h/i);e<s&&(e=s)}}return this.el.setAttribute("gs-current-row",String(e)),this.el.style.removeProperty("min-height"),this.el.style.removeProperty("height"),e&&(this.el.style[t?"minHeight":"height"]=e*i+s),t&&Utils.shouldSizeToContent(t)&&t.grid.resizeToContentCBCheck(t.el),this}_prepareElement(t,e=!1,i){i=i||this._readAttr(t),t.gridstackNode=i,i.el=t,i.grid=this,i=this.engine.addNode(i,e),this._writeAttr(t,i),t.classList.add(gridDefaults.itemClass,this.opts.itemClass);const s=Utils.shouldSizeToContent(i);return s?t.classList.add("size-to-content"):t.classList.remove("size-to-content"),s&&this.resizeToContentCheck(!1,i),Utils.lazyLoad(i)||this.prepareDragDrop(i.el),this}_writePosAttr(t,e){if(!e._moving&&!e._resizing||this._placeholder===t){const i=this.opts.rtl?"right":"left";t.style.top=e.y?1===e.y?"var(--gs-cell-height)":`calc(${e.y} * var(--gs-cell-height))`:null,t.style[i]=e.x?1===e.x?"var(--gs-column-width)":`calc(${e.x} * var(--gs-column-width))`:null,t.style.width=e.w>1?`calc(${e.w} * var(--gs-column-width))`:null,t.style.height=e.h>1?`calc(${e.h} * var(--gs-cell-height))`:null}return t.setAttribute("gs-x",String(e.x)),t.setAttribute("gs-y",String(e.y)),e.w>1?t.setAttribute("gs-w",String(e.w)):t.removeAttribute("gs-w"),e.h>1?t.setAttribute("gs-h",String(e.h)):t.removeAttribute("gs-h"),this}_writeAttr(t,e){if(!e)return this;this._writePosAttr(t,e);const i={noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id",sizeToContent:"gs-size-to-content"};for(const s in i)e[s]?t.setAttribute(i[s],String(e[s])):t.removeAttribute(i[s]);return this}_readAttr(t,e=!0){const i={};i.x=Utils.toNumber(t.getAttribute("gs-x")),i.y=Utils.toNumber(t.getAttribute("gs-y")),i.w=Utils.toNumber(t.getAttribute("gs-w")),i.h=Utils.toNumber(t.getAttribute("gs-h")),i.autoPosition=Utils.toBool(t.getAttribute("gs-auto-position")),i.noResize=Utils.toBool(t.getAttribute("gs-no-resize")),i.noMove=Utils.toBool(t.getAttribute("gs-no-move")),i.locked=Utils.toBool(t.getAttribute("gs-locked"));const s=t.getAttribute("gs-size-to-content");s&&(i.sizeToContent="true"===s||"false"===s?Utils.toBool(s):parseInt(s,10)),i.id=t.getAttribute("gs-id"),i.maxW=Utils.toNumber(t.getAttribute("gs-max-w")),i.minW=Utils.toNumber(t.getAttribute("gs-min-w")),i.maxH=Utils.toNumber(t.getAttribute("gs-max-h")),i.minH=Utils.toNumber(t.getAttribute("gs-min-h")),e&&(1===i.w&&t.removeAttribute("gs-w"),1===i.h&&t.removeAttribute("gs-h"),i.maxW&&t.removeAttribute("gs-max-w"),i.minW&&t.removeAttribute("gs-min-w"),i.maxH&&t.removeAttribute("gs-max-h"),i.minH&&t.removeAttribute("gs-min-h"));for(const t in i){if(!i.hasOwnProperty(t))return;i[t]||0===i[t]||"sizeToContent"===t||delete i[t]}return i}_setStaticClass(){const t=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...t),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...t),this.el.removeAttribute("gs-static")),this}onResize(t=this.el?.clientWidth){if(!t)return;if(this.prevWidth===t)return;this.prevWidth=t,this.batchUpdate();let e=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||"list"),e=!0):e=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach((t=>{t.subGrid&&t.subGrid.onResize()})),this._skipInitialResize||this.resizeToContentCheck(e),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(t=!1,e=void 0){if(this.engine){if(t&&this.hasAnimationCSS())return setTimeout((()=>this.resizeToContentCheck(!1,e)),this.animationDelay);if(e)Utils.shouldSizeToContent(e)&&this.resizeToContentCBCheck(e.el);else if(this.engine.nodes.some((t=>Utils.shouldSizeToContent(t)))){const t=[...this.engine.nodes];this.batchUpdate(),t.forEach((t=>{Utils.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el)})),this._ignoreLayoutsNodeChange=!0,this.batchUpdate(!1),this._ignoreLayoutsNodeChange=!1}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,e?[e]:this.engine.nodes)}}_updateResizeEvent(t=!1){const e=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find((t=>t.sizeToContent)));return t||!e||this.resizeObserver?!t&&e||!this.resizeObserver||(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle):(this._sizeThrottle=Utils.throttle((()=>this.onResize()),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver((()=>this._sizeThrottle())),this.resizeObserver.observe(this.el),this._skipInitialResize=!0),this}static getElement(t=".grid-stack-item"){return Utils.getElement(t)}static getElements(t=".grid-stack-item"){return Utils.getElements(t)}static getGridElement(t){return GridStack.getElement(t)}static getGridElements(t){return Utils.getElements(t)}_initMargin(){let t,e=0,i=[];"string"==typeof this.opts.margin&&(i=this.opts.margin.split(" ")),2===i.length?(this.opts.marginTop=this.opts.marginBottom=i[0],this.opts.marginLeft=this.opts.marginRight=i[1]):4===i.length?(this.opts.marginTop=i[0],this.opts.marginRight=i[1],this.opts.marginBottom=i[2],this.opts.marginLeft=i[3]):(t=Utils.parseHeight(this.opts.margin),this.opts.marginUnit=t.unit,e=this.opts.margin=t.h);["marginTop","marginRight","marginBottom","marginLeft"].forEach((i=>{void 0===this.opts[i]?this.opts[i]=e:(t=Utils.parseHeight(this.opts[i]),this.opts[i]=t.h,delete this.opts.margin)})),this.opts.marginUnit=t.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop);const s=this.el.style;return s.setProperty("--gs-item-margin-top",`${this.opts.marginTop}${this.opts.marginUnit}`),s.setProperty("--gs-item-margin-bottom",`${this.opts.marginBottom}${this.opts.marginUnit}`),s.setProperty("--gs-item-margin-right",`${this.opts.marginRight}${this.opts.marginUnit}`),s.setProperty("--gs-item-margin-left",`${this.opts.marginLeft}${this.opts.marginUnit}`),this}static getDD(){return dd}static setupDragIn(t,e,i,s=document){void 0!==e?.pause&&(DDManager.pauseDrag=e.pause),e={appendTo:"body",helper:"clone",...e||{}};("string"==typeof t?Utils.getElements(t,s):t).forEach(((t,s)=>{dd.isDraggable(t)||dd.dragIn(t,e),i?.[s]&&(t.gridstackNode=i[s])}))}movable(t,e){return this.opts.staticGrid||GridStack.getElements(t).forEach((t=>{const i=t.gridstackNode;i&&(e?delete i.noMove:i.noMove=!0,this.prepareDragDrop(i.el))})),this}resizable(t,e){return this.opts.staticGrid||GridStack.getElements(t).forEach((t=>{const i=t.gridstackNode;i&&(e?delete i.noResize:i.noResize=!0,this.prepareDragDrop(i.el))})),this}disable(t=!0){if(!this.opts.staticGrid)return this.enableMove(!1,t),this.enableResize(!1,t),this._triggerEvent("disable"),this}enable(t=!0){if(!this.opts.staticGrid)return this.enableMove(!0,t),this.enableResize(!0,t),this._triggerEvent("enable"),this}enableMove(t,e=!0){return this.opts.staticGrid||(t?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach((i=>{this.prepareDragDrop(i.el),i.subGrid&&e&&i.subGrid.enableMove(t,e)}))),this}enableResize(t,e=!0){return this.opts.staticGrid||(t?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach((i=>{this.prepareDragDrop(i.el),i.subGrid&&e&&i.subGrid.enableResize(t,e)}))),this}cancelDrag(){const t=this._placeholder?.gridstackNode;t&&(t._isExternal?(t._isAboutToRemove=!0,this.engine.removeNode(t)):t._isAboutToRemove&&GridStack._itemRemoving(t.el,!1),this.engine.restoreInitial())}_removeDD(t){return dd.draggable(t,"destroy").resizable(t,"destroy"),t.gridstackNode&&delete t.gridstackNode._initDD,delete t.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return dd.droppable(this.el,"destroy"),this;let t,e;const i=(i,s,r)=>{const o=(r=r||s).gridstackNode;if(!o)return;if(!o.grid?.el){r.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;const t=r.getBoundingClientRect();r.style.left=t.x+(this.dragTransform.xScale-1)*(i.clientX-t.x)/this.dragTransform.xScale+"px",r.style.top=t.y+(this.dragTransform.yScale-1)*(i.clientY-t.y)/this.dragTransform.yScale+"px",r.style.transformOrigin="0px 0px"}let{top:n,left:a}=r.getBoundingClientRect();const d=this.el.getBoundingClientRect();a-=d.left,n-=d.top;const l={position:{top:n*this.dragTransform.xScale,left:a*this.dragTransform.yScale}};if(o._temporaryRemoved){if(o.x=Math.max(0,Math.round(a/e)),o.y=Math.max(0,Math.round(n/t)),delete o.autoPosition,this.engine.nodeBoundFix(o),!this.engine.willItFit(o)){if(o.autoPosition=!0,!this.engine.willItFit(o))return void dd.off(s,"drag");o._willFitPos&&(Utils.copyPos(o,o._willFitPos),delete o._willFitPos)}this._onStartMoving(r,i,l,o,e,t)}else this._dragOrResize(r,i,l,o,e,t)};return dd.droppable(this.el,{accept:t=>{const e=t.gridstackNode||this._readAttr(t,!1);if(e?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let i=!0;if("function"==typeof this.opts.acceptWidgets)i=this.opts.acceptWidgets(t);else{const e=!0===this.opts.acceptWidgets?".grid-stack-item":this.opts.acceptWidgets;i=t.matches(e)}if(i&&e&&this.opts.maxRow){const t={w:e.w,h:e.h,minW:e.minW,minH:e.minH};i=this.engine.willItFit(t)}return i}}).on(this.el,"dropover",((s,r,o)=>{let n=o?.gridstackNode||r.gridstackNode;if(n?.grid===this&&!n._temporaryRemoved)return!1;if(n?._sidebarOrig&&(n.w=n._sidebarOrig.w,n.h=n._sidebarOrig.h),n?.grid&&n.grid!==this&&!n._temporaryRemoved){n.grid._leave(r,o)}if(o=o||r,e=this.cellWidth(),t=this.getCellHeight(!0),!n){const t=o.getAttribute("data-gs-widget")||o.getAttribute("gridstacknode");if(t){try{n=JSON.parse(t)}catch(e){console.error("Gridstack dropover: Bad JSON format: ",t)}o.removeAttribute("data-gs-widget"),o.removeAttribute("gridstacknode")}n||(n=this._readAttr(o)),n._sidebarOrig={w:n.w,h:n.h}}n.grid||(n.el||(n={...n}),n._isExternal=!0,o.gridstackNode=n);const a=n.w||Math.round(o.offsetWidth/e)||1,d=n.h||Math.round(o.offsetHeight/t)||1;return n.grid&&n.grid!==this?(r._gridstackNodeOrig||(r._gridstackNodeOrig=n),r.gridstackNode=n={...n,w:a,h:d,grid:this},delete n.x,delete n.y,this.engine.cleanupNode(n).nodeBoundFix(n),n._initDD=n._isExternal=n._temporaryRemoved=!0):(n.w=a,n.h=d,n._temporaryRemoved=!0),GridStack._itemRemoving(n.el,!1),dd.on(r,"drag",i),i(s,r,o),!1})).on(this.el,"dropout",((t,e,i)=>{const s=i?.gridstackNode||e.gridstackNode;return!!s&&(s.grid&&s.grid!==this||(this._leave(e,i),this._isTemp&&this.removeAsSubGrid(s)),!1)})).on(this.el,"drop",((t,e,i)=>{const s=i?.gridstackNode||e.gridstackNode;if(s?.grid===this&&!s._isExternal)return!1;const r=!!this.placeholder.parentElement,o=e!==i;this.placeholder.remove(),delete this.placeholder.gridstackNode,r&&this.opts.animate&&(this.setAnimation(!1),this.setAnimation(!0,!0));const n=e._gridstackNodeOrig;if(delete e._gridstackNodeOrig,r&&n?.grid&&n.grid!==this){const t=n.grid;t.engine.removeNodeFromLayoutCache(n),t.engine.removedNodes.push(n),t._triggerRemoveEvent()._triggerChangeEvent(),t.parentGridNode&&!t.engine.nodes.length&&t.opts.subGridDynamic&&t.removeAsSubGrid()}if(!s)return!1;if(r&&(this.engine.cleanupNode(s),s.grid=this),delete s.grid?._isTemp,dd.off(e,"drag"),i!==e?(i.remove(),e=i):e.remove(),this._removeDD(e),!r)return!1;const a=s.subGrid?.el?.gridstack;return Utils.copyPos(s,this._readAttr(this.placeholder)),Utils.removePositioningStyles(e),o&&(s.content||s.subGridOpts||GridStack.addRemoveCB)?(delete s.el,e=this.addWidget(s)):(this._prepareElement(e,!0,s),this.el.appendChild(e),this.resizeToContentCheck(!1,s),a&&(a.parentGridNode=s),this._updateContainerHeight()),this.engine.addedNodes.push(s),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped({...t,type:"dropped"},n&&n.grid?n:void 0,s),!1})),this}static _itemRemoving(t,e){if(!t)return;const i=t?t.gridstackNode:void 0;i?.grid&&!t.classList.contains(i.grid.opts.removableOptions.decline)&&(e?i._isAboutToRemove=!0:delete i._isAboutToRemove,e?t.classList.add("grid-stack-item-removing"):t.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if("string"!=typeof this.opts.removable)return this;const t=document.querySelector(this.opts.removable);return t?(this.opts.staticGrid||dd.isDroppable(t)||dd.droppable(t,this.opts.removableOptions).on(t,"dropover",((t,e)=>GridStack._itemRemoving(e,!0))).on(t,"dropout",((t,e)=>GridStack._itemRemoving(e,!1))),this):this}prepareDragDrop(t,e=!1){const i=t?.gridstackNode;if(!i)return;const s=i.noMove||this.opts.disableDrag,r=i.noResize||this.opts.disableResize,o=this.opts.staticGrid||s&&r;if((e||o)&&(i._initDD&&(this._removeDD(t),delete i._initDD),o))return t.classList.add("ui-draggable-disabled","ui-resizable-disabled"),this;if(!i._initDD){let e,s;const r=(r,o)=>{this.triggerEvent(r,r.target),e=this.cellWidth(),s=this.getCellHeight(!0),this._onStartMoving(t,r,o,i,e,s)},o=(r,o)=>{this._dragOrResize(t,r,o,i,e,s)},n=e=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete i._moving,delete i._resizing,delete i._event,delete i._lastTried;const s=i.w!==i._orig.w,r=e.target;if(r.gridstackNode&&r.gridstackNode.grid===this){if(i.el=r,i._isAboutToRemove){const s=t.gridstackNode.grid;s._gsEventHandler[e.type]&&s._gsEventHandler[e.type](e,r),s.engine.nodes.push(i),s.removeWidget(t,!0,!0)}else Utils.removePositioningStyles(r),i._temporaryRemoved?(this._writePosAttr(r,i),this.engine.addNode(i)):this._writePosAttr(r,i),this.triggerEvent(e,r);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),"resizestop"===e.type&&(Number.isInteger(i.sizeToContent)&&(i.sizeToContent=i.h),this.resizeToContentCheck(s,i))}};dd.draggable(t,{start:r,stop:n,drag:o,rtl:this.opts.rtl}).resizable(t,{start:r,stop:n,resize:o,rtl:this.opts.rtl}),i._initDD=!0}return dd.draggable(t,s?"disable":"enable").resizable(t,r?"disable":"enable"),this}_onStartMoving(t,e,i,s,r,o){if(this.engine.cleanNodes().beginUpdate(s),this._writePosAttr(this.placeholder,s),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=s,s.grid?.el)this.dragTransform=Utils.getValuesFromTransformedElement(t);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){const t=this.placeholder.closest(".grid-stack");this.dragTransform=Utils.getValuesFromTransformedElement(t)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(s.el=this.placeholder,s._lastUiPosition=i.position,s._prevYPix=i.position.top,s._moving="dragstart"===e.type,s._resizing="resizestart"===e.type,delete s._lastTried,"dropover"===e.type&&s._temporaryRemoved&&(this.engine.addNode(s),s._moving=!0),this.engine.cacheRects(r,o,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),"resizestart"===e.type){const e=this.getColumn()-s.x,i=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-s.y;dd.resizable(t,"option","minWidth",r*Math.min(s.minW||1,e)).resizable(t,"option","minHeight",o*Math.min(s.minH||1,i)).resizable(t,"option","maxWidth",r*Math.min(s.maxW||Number.MAX_SAFE_INTEGER,e)).resizable(t,"option","maxWidthMoveLeft",r*Math.min(s.maxW||Number.MAX_SAFE_INTEGER,s.x+s.w)).resizable(t,"option","maxHeight",o*Math.min(s.maxH||Number.MAX_SAFE_INTEGER,i)).resizable(t,"option","maxHeightMoveUp",o*Math.min(s.maxH||Number.MAX_SAFE_INTEGER,s.y+s.h))}}_dragOrResize(t,e,i,s,r,o){const n={...s._orig};let a,d=this.opts.marginLeft,l=this.opts.marginRight,h=this.opts.marginTop,g=this.opts.marginBottom;const c=Math.round(.1*o),m=Math.round(.1*r);if(d=Math.min(d,m),l=Math.min(l,m),h=Math.min(h,c),g=Math.min(g,c),"drag"===e.type){if(s._temporaryRemoved)return;s._prevYPix=i.position.top,!1!==this.opts.draggable.scroll&&DDManager.dragElement?.updateScrollPosition(this.el);const t=i.position.left+(i.position.left>s._lastUiPosition.left?-l:d),e=i.position.top+(i.position.top>s._lastUiPosition.top?-g:h);n.x=Math.round(t/r),n.y=Math.round(e/o);const a=this._extraDragRow;if(this.engine.collide(s,n)){const t=this.getRow();let e=Math.max(0,n.y+s.h-t);this.opts.maxRow&&t+e>this.opts.maxRow&&(e=Math.max(0,this.opts.maxRow-t)),this._extraDragRow=e}else this._extraDragRow=0;if(this._extraDragRow!==a&&this._updateContainerHeight(),s.x===n.x&&s.y===n.y)return}else if("resize"===e.type){if(n.x<0)return;if(Utils.updateScrollResize(e,t,o),n.w=Math.round((i.size.width-d)/r),n.h=Math.round((i.size.height-h)/o),s.w===n.w&&s.h===n.h)return;if(s._lastTried&&s._lastTried.w===n.w&&s._lastTried.h===n.h)return;if(e.hasMovedX){const t=i.position.left+d;n.x=Math.round(t/r)}if(e.hasMovedY){const t=i.position.top+h;n.y=Math.round(t/o)}a=!0}s._event=e,s._lastTried=n;const p={x:i.position.left+d,y:i.position.top+h,w:(i.size?i.size.width:s.w*r)-d-l,h:(i.size?i.size.height:s.h*o)-h-g};if(this.engine.moveNodeCheck(s,{...n,cellWidth:r,cellHeight:o,rect:p,resizing:a})){s._lastUiPosition=i.position,this.engine.cacheRects(r,o,h,l,g,d),delete s._skipDown,a&&s.subGrid&&s.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();const t=e.target;s._sidebarOrig||this._writePosAttr(t,s),this.triggerEvent(e,t)}}triggerEvent(t,e){let i=this;for(;i.parentGridNode;)i=i.parentGridNode.grid;i._gsEventHandler[t.type]&&i._gsEventHandler[t.type](t,e)}_leave(t,e){const i=(e=e||t).gridstackNode;if(!i)return;if(e.style.transform=e.style.transformOrigin=null,dd.off(t,"drag"),i._temporaryRemoved)return;i._temporaryRemoved=!0,this.engine.removeNode(i),i.el=i._isExternal&&e?e:t;const s=i._sidebarOrig;i._isExternal&&this.engine.cleanupNode(i),i._sidebarOrig=s,!0===this.opts.removable&&GridStack._itemRemoving(t,!0),t._gridstackNodeOrig?(t.gridstackNode=t._gridstackNodeOrig,delete t._gridstackNodeOrig):i._isExternal&&this.engine.restoreInitial()}}GridStack.renderCB=(t,e)=>{t&&e?.content&&(t.textContent=e.content)},GridStack.resizeToContentParent=".grid-stack-item-content",GridStack.Utils=Utils,GridStack.Engine=GridStackEngine,GridStack.GDRev="12.6.0";export{GridStack};
//# sourceMappingURL=/sm/b9bd58c6f12f3d1453c21d8a6fabb3be0107099185d5c8ca615a1ae24f77b20f.map