{"version":3,"sources":["webpack://GridStack/webpack/universalModuleDefinition","webpack://GridStack/./src/gridstack-dd.ts","webpack://GridStack/./src/gridstack-ddi.ts","webpack://GridStack/./src/gridstack-engine.ts","webpack://GridStack/./src/gridstack.ts","webpack://GridStack/./src/h5/dd-base-impl.ts","webpack://GridStack/./src/h5/dd-draggable.ts","webpack://GridStack/./src/h5/dd-droppable.ts","webpack://GridStack/./src/h5/dd-element.ts","webpack://GridStack/./src/h5/dd-manager.ts","webpack://GridStack/./src/h5/dd-resizable-handle.ts","webpack://GridStack/./src/h5/dd-resizable.ts","webpack://GridStack/./src/h5/dd-utils.ts","webpack://GridStack/./src/h5/gridstack-dd-native.ts","webpack://GridStack/./src/index-h5.ts","webpack://GridStack/./src/utils.ts","webpack://GridStack/webpack/bootstrap","webpack://GridStack/webpack/startup"],"names":["root","factory","exports","module","define","amd","self","GridStackDD","GridStackDDI","get","el","this","draggable","resizable","gridstackNode","_initDD","GridStack","prototype","_setupAcceptWidget","opts","staticGrid","acceptWidgets","onDrag","event","node","pos","getCellFromPixel","left","pageX","top","pageY","x","Math","max","y","_added","engine","canMoveNode","moveNode","_updateContainerHeight","autoPosition","cleanNodes","beginUpdate","addNode","_writeAttrs","placeholder","w","h","appendChild","_beforeDragX","_beforeDragY","droppable","accept","grid","selector","matches","on","getAttribute","parseInt","round","offsetWidth","cellWidth","offsetHeight","getCellHeight","newNode","prepareNode","_temporary","_isOutOfGrid","_gridstackNodeOrig","off","removeNode","parentNode","remove","helper","origNode","oGrid","removedNodes","push","_triggerRemoveEvent","_id","cleanupNode","cloneNode","Utils","removePositioningStyles","_writeAttr","addedNodes","_triggerAddEvent","_triggerChangeEvent","endUpdate","_gsEventHandler","type","undefined","window","setTimeout","parentElement","_prepareDragDropByNode","_setupRemoveDrop","removable","trashEl","document","querySelector","isDroppable","removableOptions","dataset","inTrashZone","_setupRemovingTimeout","_clearRemovingTimeout","_removeTimeout","classList","add","_isAboutToRemove","removeTimeout","clearTimeout","_setupDragIn","dragIn","isDraggable","dragInOptions","cellHeight","locked","noMove","disableDrag","noResize","disableResize","onStartMoving","ui","target","setAttribute","append","_prevYPix","position","minW","minH","dragOrResize","floor","distance","updateScrollPosition","column","float","getRow","_temporaryRemoved","size","width","height","_lastTriedW","_lastTriedH","_lastTriedX","_lastTriedY","onEndMoving","gridToNotify","_resizeNestedGrids","start","stop","drag","resize","movable","els","val","getElements","forEach","pluginClass","ddi","registerPlugin","GridStackEngine","onchange","maxRow","nodes","getGridHeight","obsolete","_float","batchMode","_prevFloat","_packNodes","_notify","_sortNodes","nn","hasLocked","Boolean","find","n","moved","collisionNode","isIntercepted","length","batchUpdate","copyNodes","_dirty","commit","dir","sort","i","_updating","_packY","newY","box","slice","bn","canBeMoved","resizing","_idSeq","defaults","Number","isNaN","maxW","min","maxH","verify","dirtNodes","_origY","_origX","_origW","_origH","filter","removeDOM","dirtyNodes","Array","isArray","concat","getDirtyNodes","triggerAddEvent","_fixCollisions","triggerEvent","splice","findIndex","_layouts","isNodeChangedPosition","clonedNode","clone","map","canMove","noPack","reduce","memo","saveElement","widgets","key","_ignoreLayoutsNodeChange","layout","l","ratio","oldColumn","cacheLayout","cacheNodes","lastIndex","cacheNode","j","newNodes","move","scale","clear","copy","prop","obsoleteOpts","obsoleteAttr","row","minRow","rowAttr","toNumber","itemClass","placeholderClass","placeholderText","handle","handleClass","styleInHead","margin","auto","minWidth","toBool","_class","random","toFixed","animate","alwaysShowResizeHandle","autoHide","handles","scroll","appendTo","revert","rtl","marginUnit","cellHeightUnit","disableOneColumnMode","oneColumnModeDomSort","initMargin","style","direction","_isNested","closestByClass","_isAutoCellHeight","marginDiff","marginRight","marginLeft","marginTop","marginBottom","_setStaticClass","_updateStyles","cbNodes","removeChild","elements","getGridItems","e","item","_prepareElement","saveInitial","setAnimation","placeholderChild","createElement","className","innerHTML","_updateWindowResizeEvent","options","elOrString","getGridElement","gridstack","console","error","grids","getGridElements","arguments","warn","a","opt","id","addWidget","doc","implementation","createHTMLDocument","body","children","content","domAttr","_readAttr","saveContent","list","save","sub","addAndRemove","items","_prevColumn","some","removed","removeWidget","update","forcePixel","data","parseHeight","unit","compact","domNodes","updateNodeWidths","from","setStatic","removeAll","_removeStylesheet","enableMove","enableResize","_triggerEvent","doEnable","includeNewWidgets","useDocRelative","containerPos","getBoundingClientRect","documentElement","scrollTop","offsetTop","offsetLeft","relativeLeft","relativeTop","columnWidth","rowHeight","isAreaEmpty","getElement","name","callback","indexOf","split","noData","detail","addEventListener","log","removeEventListener","doAnimate","m","keys","k","changed","ddChanged","value","canBePlacedWithRespectToHeight","layoutsNodesChange","CustomEvent","bubbles","Event","dispatchEvent","_styles","removeStylesheet","forceUpdate","prefix","styleLocation","createStylesheet","_max","addCSSRule","bottom","right","getHeight","rows","cssMinHeight","getComputedStyle","String","removeProperty","querySelectorAll","onParentResize","same","attrs","resizeHandles","removeAttribute","hasOwnProperty","classes","throttle","clientWidth","_oneColumnMode","forceRemove","workTodo","_windowResizeBind","bind","margins","Engine","_disabled","_eventRegister","eventName","disabled","DDDraggable","DDBaseImplement","option","super","dragging","containmentRect","offset","_mouseDown","_dragStart","_drag","_dragEnd","_dragFollow","enable","disable","destroy","Object","mouseDownElement","preventDefault","DDManager","dragElement","_createHelper","_setupHelperContainmentStyle","dragOffset","_getDragOffset","helperContainment","ev","DDUtils","initEvent","_setupDragFollowNodeNotifyStart","dragFollowTimer","_cancelDragGhost","_setupHelperStyle","dragEventListenerOption","paintTimer","cancelAnimationFrame","parentOriginStylePosition","_removeHelperStyle","apply","contains","dragElementOriginStyle","originStyleProp","pointerEvents","transition","basePosition","zIndex","requestAnimationFrame","clientX","clientY","match","dataTransfer","setData","effectAllowed","DataTransfer","setDragImage","display","stopPropagation","Image","parent","xformOffsetX","xformOffsetY","testEl","addElStyles","opacity","testElPosition","targetOffset","isEventSupportPassiveOption","capture","passive","DDDroppable","acceptable","_dragEnter","_dragOver","_dragLeave","_drop","_setupAccept","_canDrop","over","_ui","relatedTarget","_removeLeaveCallbacks","out","drop","DDElement","ddElement","ddDraggable","ddDroppable","ddResizable","updateOption","DDResizable","DDResizableHandle","host","mouseMoving","started","_mouseMove","_mouseUp","init","userSelect","mouseDownEvent","_hasMoved","oEvent","oClientX","oClientY","abs","_showHandlers","_hideHandlers","rect","temporalRect","originalRect","_setupAutoHide","_setupHandlers","_removeHandlers","updateHandles","updateAutoHide","handlerDirection","handlers","trim","_resizeStart","_resizeStop","_resizing","startEvent","_setupHelper","_applyChange","_getChange","_cleanHelper","elOriginStyle","_originStyleProp","newRect","offsetH","offsetV","reshape","_getReShapeSize","oWidth","oHeight","maxWidth","maxHeight","minHeight","containmentEl","test","styles","s","info","kbdProps","ptProps","evt","obj","button","which","buttons","cancelable","originEvent","DragEvent","assign","_copyProps","dst","src","props","p","supportsPassive","passiveTest","GridStackDDNative","_getDDElements","dEl","cleanResizable","setupResizable","cleanDraggable","setupDraggable","containment","dragOut","_accept","cleanDroppable","setupDroppable","create","hosts","d","f","oldName","newName","rev","wrapper","args","oldAttr","getElementById","substring","b","widths","styleSheet","cssText","createTextNode","insertBefore","firstChild","getElementsByTagName","sheet","rules","addRule","insertRule","v","toLowerCase","Error","parseFloat","sources","source","delay","isWaiting","returnEl","scrollHeight","clientHeight","getScrollParent","innerHeightOrClientHeight","innerHeight","offsetDiffDown","offsetDiffUp","scrollEl","prevScroll","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","call"],"mappings":"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","file":"gridstack-h5.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GridStack\"] = factory();\n\telse\n\t\troot[\"GridStack\"] = factory();\n})(self, function() {\nreturn ","// gridstack-GridStackDD.get().ts 3.0.0 @preserve\r\n\r\n/**\r\n * https://gridstackjs.com/\r\n * (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov\r\n * gridstack.js may be freely distributed under the MIT license.\r\n*/\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport { GridStackDDI } from './gridstack-ddi';\r\nimport { GridItemHTMLElement, GridStackNode, GridStackElement, DDUIData, DDDragInOpt } from './types';\r\nimport { GridStack } from './gridstack';\r\nimport { Utils } from './utils';\r\n\r\n/** Drag&Drop drop options */\r\nexport type DDDropOpt = {\r\n /** function or class type that this grid will accept as dropped items (see GridStackOptions.acceptWidgets) */\r\n accept?: (el: GridItemHTMLElement) => boolean;\r\n}\r\n\r\n/** drag&drop options currently called from the main code, but others can be passed in grid options */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type DDOpts = 'enable' | 'disable' | 'destroy' | 'option' | string | any;\r\nexport type DDKey = 'minWidth' | 'minHeight';\r\nexport type DDValue = number | string;\r\n\r\n/** drag&drop events callbacks */\r\nexport type DDCallback = (event: Event, arg2: GridItemHTMLElement, helper?: GridItemHTMLElement) => void;\r\n\r\n/**\r\n * Base class implementing common Grid drag'n'drop functionality, with domain specific subclass (h5 vs jq subclasses)\r\n */\r\nexport abstract class GridStackDD extends GridStackDDI {\r\n\r\n /** override to cast to correct type */\r\n static get(): GridStackDD {\r\n return GridStackDDI.get() as GridStackDD;\r\n }\r\n\r\n /** removes any drag&drop present (called during destroy) */\r\n public remove(el: GridItemHTMLElement): GridStackDD {\r\n this.draggable(el, 'destroy').resizable(el, 'destroy');\r\n if (el.gridstackNode) {\r\n delete el.gridstackNode._initDD; // reset our DD init flag\r\n }\r\n return this;\r\n }\r\n\r\n // APIs that must be implemented by subclasses to do actual darg/drop/resize called by GridStack code below\r\n\r\n public abstract resizable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDD;\r\n\r\n public abstract isResizable(el: HTMLElement): boolean;\r\n\r\n public abstract draggable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDD;\r\n\r\n public abstract dragIn(el: GridStackElement, opts: DDDragInOpt): GridStackDD;\r\n\r\n public abstract isDraggable(el: HTMLElement): boolean;\r\n\r\n public abstract droppable(el: GridItemHTMLElement, opts: DDOpts | DDDropOpt, key?: DDKey, value?: DDValue): GridStackDD;\r\n\r\n public abstract isDroppable(el: HTMLElement): boolean;\r\n\r\n public abstract on(el: GridItemHTMLElement, eventName: string, callback: DDCallback): GridStackDD;\r\n\r\n public abstract off(el: GridItemHTMLElement, eventName: string): GridStackDD;\r\n}\r\n\r\n/********************************************************************************\r\n * GridStack code that is doing drag&drop extracted here so main class is smaller\r\n * for static grid that don't do any of this work anyway. Saves about 10k.\r\n ********************************************************************************/\r\n\r\n/** @internal called to add drag over support to support widgets */\r\nGridStack.prototype._setupAcceptWidget = function(): GridStack {\r\n if (this.opts.staticGrid || !this.opts.acceptWidgets) return this;\r\n\r\n let onDrag = (event, el: GridItemHTMLElement) => {\r\n let node = el.gridstackNode;\r\n let pos = this.getCellFromPixel({left: event.pageX, top: event.pageY}, true);\r\n let x = Math.max(0, pos.x);\r\n let y = Math.max(0, pos.y);\r\n if (!node._added) {\r\n node._added = true;\r\n\r\n node.el = el;\r\n node.x = x;\r\n node.y = y;\r\n delete node.autoPosition;\r\n this.engine.cleanNodes();\r\n this.engine.beginUpdate(node);\r\n this.engine.addNode(node);\r\n\r\n this._writeAttrs(this.placeholder, node.x, node.y, node.w, node.h);\r\n this.el.appendChild(this.placeholder);\r\n node.el = this.placeholder; // dom we update while dragging...\r\n node._beforeDragX = node.x;\r\n node._beforeDragY = node.y;\r\n\r\n this._updateContainerHeight();\r\n } else if ((x !== node.x || y !== node.y) && this.engine.canMoveNode(node, x, y)) {\r\n this.engine.moveNode(node, x, y);\r\n this._updateContainerHeight();\r\n }\r\n };\r\n\r\n GridStackDD.get()\r\n .droppable(this.el, {\r\n accept: (el: GridItemHTMLElement) => {\r\n let node: GridStackNode = el.gridstackNode;\r\n if (node && node.grid === this) {\r\n return true; // set accept drop to true on ourself (which we ignore) so we don't get \"can't drop\" icon in HTML5 mode while moving\r\n }\r\n if (typeof this.opts.acceptWidgets === 'function') {\r\n return this.opts.acceptWidgets(el);\r\n }\r\n let selector = (this.opts.acceptWidgets === true ? '.grid-stack-item' : this.opts.acceptWidgets as string);\r\n return el.matches(selector);\r\n }\r\n })\r\n .on(this.el, 'dropover', (event, el: GridItemHTMLElement) => {\r\n // ignore drop enter on ourself, and prevent parent from receiving event\r\n let node = el.gridstackNode || {};\r\n if (node.grid === this) {\r\n delete node._added; // reset this to track placeholder again in case we were over other grid #1484 (dropout doesn't always clear)\r\n return false;\r\n }\r\n\r\n // see if we already have a node with widget/height and check for attributes\r\n if (el.getAttribute && (!node.w || !node.h)) {\r\n let w = parseInt(el.getAttribute('gs-w'));\r\n if (w > 0) { node.w = w; }\r\n let h = parseInt(el.getAttribute('gs-h'));\r\n if (h > 0) { node.h = h; }\r\n }\r\n\r\n // if the item came from another grid, let it know it was added here to removed duplicate shadow #393\r\n if (node.grid && node.grid !== this) {\r\n node._added = true;\r\n }\r\n\r\n // if not calculate the grid size based on element outer size\r\n let w = node.w || Math.round(el.offsetWidth / this.cellWidth()) || 1;\r\n let h = node.h || Math.round(el.offsetHeight / this.getCellHeight(true)) || 1;\r\n\r\n // copy the node original values (min/max/id/etc...) but override width/height/other flags which are this grid specific\r\n let newNode = this.engine.prepareNode({...node, ...{w, h, _added: false, _temporary: true}});\r\n newNode._isOutOfGrid = true;\r\n el.gridstackNode = newNode;\r\n el._gridstackNodeOrig = node;\r\n\r\n GridStackDD.get().on(el, 'drag', onDrag);\r\n return false; // prevent parent from receiving msg (which may be grid as well)\r\n })\r\n .on(this.el, 'dropout', (event, el: GridItemHTMLElement) => {\r\n let node = el.gridstackNode;\r\n if (!node) { return; }\r\n\r\n // clear any added flag now that we are leaving #1484\r\n delete node._added;\r\n\r\n // jquery-ui bug. Must verify widget is being dropped out\r\n // check node variable that gets set when widget is out of grid\r\n if (!node._isOutOfGrid) {\r\n return;\r\n }\r\n\r\n GridStackDD.get().off(el, 'drag');\r\n node.el = null;\r\n this.engine.removeNode(node);\r\n if (this.placeholder.parentNode === this.el) {\r\n this.placeholder.remove();\r\n }\r\n this._updateContainerHeight();\r\n el.gridstackNode = el._gridstackNodeOrig;\r\n return false; // prevent parent from receiving msg (which may be grid as well)\r\n })\r\n .on(this.el, 'drop', (event, el: GridItemHTMLElement, helper: GridItemHTMLElement) => {\r\n let node = el.gridstackNode;\r\n // ignore drop on ourself from ourself - dragend will handle the simple move instead\r\n if (node && node.grid === this) { return false; }\r\n\r\n this.placeholder.remove();\r\n\r\n // notify previous grid of removal\r\n let origNode = el._gridstackNodeOrig;\r\n delete el._gridstackNodeOrig;\r\n if (origNode && origNode.grid && origNode.grid !== this) {\r\n let oGrid = origNode.grid;\r\n oGrid.placeholder.remove();\r\n origNode.el = el; // was using placeholder, have it point to node we've moved instead\r\n oGrid.engine.removedNodes.push(origNode);\r\n oGrid._triggerRemoveEvent();\r\n }\r\n\r\n // use existing placeholder node as it's already in our list with drop location\r\n if (!node) { return false; }\r\n const _id = node._id;\r\n this.engine.cleanupNode(node); // removes all internal _xyz values (including the _id so add that back)\r\n node._id = _id;\r\n node.grid = this;\r\n GridStackDD.get().off(el, 'drag');\r\n // if we made a copy ('helper' which is temp) of the original node then insert a copy, else we move the original node (#1102)\r\n // as the helper will be nuked by jqueryui otherwise\r\n if (helper !== el) {\r\n helper.remove();\r\n el.gridstackNode = origNode; // original item (left behind) is re-stored to pre dragging as the node now has drop info\r\n el = el.cloneNode(true) as GridItemHTMLElement;\r\n } else {\r\n el.remove(); // reduce flicker as we change depth here, and size further down\r\n GridStackDD.get().remove(el);\r\n }\r\n el.gridstackNode = node;\r\n node.el = el;\r\n\r\n Utils.removePositioningStyles(el);\r\n this._writeAttr(el, node);\r\n this.el.appendChild(el);\r\n this._updateContainerHeight();\r\n this.engine.addedNodes.push(node);\r\n this._triggerAddEvent();\r\n this._triggerChangeEvent();\r\n\r\n this.engine.endUpdate();\r\n if (this._gsEventHandler['dropped']) {\r\n this._gsEventHandler['dropped']({type: 'dropped'}, origNode && origNode.grid ? origNode : undefined, node);\r\n }\r\n\r\n // wait till we return out of the drag callback to set the new drag&resize handler or they may get messed up\r\n // IFF we are still there (some application will use as placeholder and insert their real widget instead)\r\n window.setTimeout(() => {\r\n if (node.el && node.el.parentElement) this._prepareDragDropByNode(node);\r\n });\r\n\r\n return false; // prevent parent from receiving msg (which may be grid as well)\r\n });\r\n return this;\r\n}\r\n\r\n/** @internal called to setup a trash drop zone if the user specifies it */\r\nGridStack.prototype._setupRemoveDrop = function(): GridStack {\r\n if (!this.opts.staticGrid && typeof this.opts.removable === 'string') {\r\n let trashEl = document.querySelector(this.opts.removable) as HTMLElement;\r\n if (!trashEl) return this;\r\n // only register ONE dropover/dropout callback for the 'trash', and it will\r\n // update the passed in item and parent grid because the 'trash' is a shared resource anyway,\r\n // and Native DD only has 1 event CB (having a list and technically a per grid removableOptions complicates things greatly)\r\n if (!GridStackDD.get().isDroppable(trashEl)) {\r\n GridStackDD.get().droppable(trashEl, this.opts.removableOptions)\r\n .on(trashEl, 'dropover', function(event, el) { // don't use => notation to avoid using 'this' as grid by mistake...\r\n let node = el.gridstackNode;\r\n if (!node || !node.grid) return;\r\n el.dataset.inTrashZone = 'true';\r\n node.grid._setupRemovingTimeout(el);\r\n })\r\n .on(trashEl, 'dropout', function(event, el) { // same\r\n let node = el.gridstackNode;\r\n if (!node || !node.grid) return;\r\n delete el.dataset.inTrashZone;\r\n node.grid._clearRemovingTimeout(el);\r\n });\r\n }\r\n }\r\n return this;\r\n}\r\n\r\n/** @internal */\r\nGridStack.prototype._setupRemovingTimeout = function(el: GridItemHTMLElement): GridStack {\r\n let node = el.gridstackNode;\r\n if (!node || node._removeTimeout || !this.opts.removable) return this;\r\n node._removeTimeout = window.setTimeout(() => {\r\n el.classList.add('grid-stack-item-removing');\r\n node._isAboutToRemove = true;\r\n }, this.opts.removeTimeout);\r\n return this;\r\n}\r\n\r\n/** @internal */\r\nGridStack.prototype._clearRemovingTimeout = function(el: GridItemHTMLElement): GridStack {\r\n let node = el.gridstackNode;\r\n if (!node || !node._removeTimeout) return this;\r\n clearTimeout(node._removeTimeout);\r\n delete node._removeTimeout;\r\n el.classList.remove('grid-stack-item-removing');\r\n delete node._isAboutToRemove;\r\n return this;\r\n}\r\n\r\n/** @internal call to setup dragging in from the outside (say toolbar), with options */\r\nGridStack.prototype._setupDragIn = function(): GridStack {\r\n if (!this.opts.staticGrid && typeof this.opts.dragIn === 'string') {\r\n if (!GridStackDD.get().isDraggable(this.opts.dragIn)) {\r\n GridStackDD.get().dragIn(this.opts.dragIn, this.opts.dragInOptions);\r\n }\r\n }\r\n return this;\r\n}\r\n\r\n/** @internal prepares the element for drag&drop **/\r\nGridStack.prototype._prepareDragDropByNode = function(node: GridStackNode): GridStack {\r\n let el = node.el;\r\n\r\n // check for disabled grid first\r\n if (this.opts.staticGrid || node.locked ||\r\n ((node.noMove || this.opts.disableDrag) && (node.noResize || this.opts.disableResize))) {\r\n if (node._initDD) {\r\n GridStackDD.get().remove(node.el); // nukes everything instead of just disable, will add some styles back next\r\n delete node._initDD;\r\n }\r\n node.el.classList.add('ui-draggable-disabled', 'ui-resizable-disabled'); // add styles one might depend on #1435\r\n return this;\r\n }\r\n // check if init already done\r\n if (node._initDD) {\r\n // fine tune drag vs move by disabling any part...\r\n if (node.noMove || this.opts.disableDrag) {\r\n GridStackDD.get().draggable(el, 'disable');\r\n }\r\n if (node.noResize || this.opts.disableResize) {\r\n GridStackDD.get().resizable(el, 'disable');\r\n }\r\n return this;\r\n }\r\n\r\n // remove our style that look like D&D\r\n node.el.classList.remove('ui-draggable-disabled', 'ui-resizable-disabled');\r\n\r\n // variables used/cashed between the 3 start/move/end methods, in addition to node passed above\r\n let cellWidth: number;\r\n let cellHeight: number;\r\n\r\n /** called when item starts moving/resizing */\r\n let onStartMoving = (event: Event, ui: DDUIData): void => {\r\n let target = event.target as HTMLElement;\r\n\r\n // trigger any 'dragstart' / 'resizestart' manually\r\n if (this._gsEventHandler[event.type]) {\r\n this._gsEventHandler[event.type](event, target);\r\n }\r\n\r\n this.engine.cleanNodes();\r\n this.engine.beginUpdate(node);\r\n cellWidth = this.cellWidth();\r\n cellHeight = this.getCellHeight(true); // force pixels for calculations\r\n\r\n this.placeholder.setAttribute('gs-x', target.getAttribute('gs-x'));\r\n this.placeholder.setAttribute('gs-y', target.getAttribute('gs-y'));\r\n this.placeholder.setAttribute('gs-w', target.getAttribute('gs-w'));\r\n this.placeholder.setAttribute('gs-h', target.getAttribute('gs-h'));\r\n this.el.append(this.placeholder);\r\n\r\n node.el = this.placeholder;\r\n node._beforeDragX = node.x;\r\n node._beforeDragY = node.y;\r\n node._prevYPix = ui.position.top;\r\n\r\n GridStackDD.get().resizable(el, 'option', 'minWidth', cellWidth * (node.minW || 1));\r\n GridStackDD.get().resizable(el, 'option', 'minHeight', cellHeight * (node.minH || 1));\r\n }\r\n\r\n /** called when item is being dragged/resized */\r\n let dragOrResize = (event: Event, ui: DDUIData): void => {\r\n let x = Math.round(ui.position.left / cellWidth);\r\n let y = Math.floor((ui.position.top + cellHeight / 2) / cellHeight);\r\n let w;\r\n let h;\r\n\r\n if (event.type === 'drag') {\r\n let distance = ui.position.top - node._prevYPix;\r\n node._prevYPix = ui.position.top;\r\n Utils.updateScrollPosition(el, ui.position, distance);\r\n // if inTrash, outside of the bounds or added to another grid (#393) temporarily remove it from us\r\n if (el.dataset.inTrashZone || x < 0 || x >= this.engine.column || y < 0 || (!this.engine.float && y > this.engine.getRow()) || node._added) {\r\n if (node._temporaryRemoved) { return; }\r\n if (this.opts.removable === true) {\r\n this._setupRemovingTimeout(el);\r\n }\r\n\r\n x = node._beforeDragX;\r\n y = node._beforeDragY;\r\n\r\n if (this.placeholder.parentNode === this.el) {\r\n this.placeholder.remove();\r\n }\r\n this.engine.removeNode(node);\r\n this._updateContainerHeight();\r\n\r\n node._temporaryRemoved = true;\r\n delete node._added; // no need for this now\r\n } else {\r\n this._clearRemovingTimeout(el);\r\n\r\n if (node._temporaryRemoved) {\r\n this.engine.addNode(node);\r\n this._writeAttrs(this.placeholder, x, y, w, h);\r\n this.el.appendChild(this.placeholder);\r\n node.el = this.placeholder;\r\n delete node._temporaryRemoved;\r\n }\r\n }\r\n } else if (event.type === 'resize') {\r\n if (x < 0) return;\r\n w = Math.round(ui.size.width / cellWidth);\r\n h = Math.round(ui.size.height / cellHeight);\r\n }\r\n // width and height are undefined if not resizing\r\n let _lastTriedW = (w || node._lastTriedW);\r\n let _lastTriedH = (h || node._lastTriedH);\r\n if (!this.engine.canMoveNode(node, x, y, w, h) ||\r\n (node._lastTriedX === x && node._lastTriedY === y &&\r\n node._lastTriedW === _lastTriedW && node._lastTriedH === _lastTriedH)) {\r\n return;\r\n }\r\n node._lastTriedX = x;\r\n node._lastTriedY = y;\r\n node._lastTriedW = w;\r\n node._lastTriedH = h;\r\n this.engine.moveNode(node, x, y, w, h);\r\n this._updateContainerHeight();\r\n }\r\n\r\n /** called when the item stops moving/resizing */\r\n let onEndMoving = (event: Event): void => {\r\n if (this.placeholder.parentNode === this.el) {\r\n this.placeholder.remove();\r\n }\r\n\r\n // if the item has moved to another grid, we're done here\r\n let target: GridItemHTMLElement = event.target as GridItemHTMLElement;\r\n if (!target.gridstackNode || target.gridstackNode.grid !== this) return;\r\n\r\n node.el = target;\r\n\r\n if (node._isAboutToRemove) {\r\n let gridToNotify = el.gridstackNode.grid;\r\n if (gridToNotify._gsEventHandler[event.type]) {\r\n gridToNotify._gsEventHandler[event.type](event, target);\r\n }\r\n gridToNotify.engine.removedNodes.push(node);\r\n GridStackDD.get().remove(el);\r\n delete el.gridstackNode; // hint we're removing it next and break circular link\r\n gridToNotify._triggerRemoveEvent();\r\n if (el.parentElement) {\r\n el.remove(); // finally remove it\r\n }\r\n } else {\r\n this._clearRemovingTimeout(el);\r\n if (!node._temporaryRemoved) {\r\n Utils.removePositioningStyles(target);\r\n this._writeAttrs(target, node.x, node.y, node.w, node.h);\r\n } else {\r\n Utils.removePositioningStyles(target);\r\n this._writeAttrs(target, node._beforeDragX, node._beforeDragY, node.w, node.h);\r\n node.x = node._beforeDragX;\r\n node.y = node._beforeDragY;\r\n delete node._temporaryRemoved;\r\n this.engine.addNode(node);\r\n }\r\n if (this._gsEventHandler[event.type]) {\r\n this._gsEventHandler[event.type](event, target);\r\n }\r\n }\r\n\r\n this._updateContainerHeight();\r\n this._triggerChangeEvent();\r\n\r\n this.engine.endUpdate();\r\n\r\n // if we re-sized a nested grid item, let the children resize as well\r\n if (event.type === 'resizestop') {\r\n this._resizeNestedGrids(target);\r\n }\r\n }\r\n\r\n GridStackDD.get()\r\n .draggable(el, {\r\n start: onStartMoving,\r\n stop: onEndMoving,\r\n drag: dragOrResize\r\n })\r\n .resizable(el, {\r\n start: onStartMoving,\r\n stop: onEndMoving,\r\n resize: dragOrResize\r\n });\r\n node._initDD = true; // we've set DD support now\r\n\r\n // finally fine tune drag vs move by disabling any part...\r\n if (node.noMove || this.opts.disableDrag) {\r\n GridStackDD.get().draggable(el, 'disable');\r\n }\r\n if (node.noResize || this.opts.disableResize) {\r\n GridStackDD.get().resizable(el, 'disable');\r\n }\r\n return this;\r\n}\r\n\r\n/**\r\n * Enables/Disables moving.\r\n * @param els widget or selector to modify.\r\n * @param val if true widget will be draggable.\r\n */\r\nGridStack.prototype.movable = function(els: GridStackElement, val: boolean): GridStack {\r\n if (val && this.opts.staticGrid) { return this; } // can't move a static grid!\r\n GridStack.getElements(els).forEach(el => {\r\n let node = el.gridstackNode;\r\n if (!node) { return }\r\n node.noMove = !(val || false);\r\n if (node.noMove) {\r\n GridStackDD.get().draggable(el, 'disable');\r\n el.classList.remove('ui-draggable-handle');\r\n } else {\r\n this._prepareDragDropByNode(node); // init DD if need be\r\n GridStackDD.get().draggable(el, 'enable');\r\n el.classList.remove('ui-draggable-handle');\r\n }\r\n });\r\n return this;\r\n}\r\n\r\n/**\r\n * Enables/Disables resizing.\r\n * @param els widget or selector to modify\r\n * @param val if true widget will be resizable.\r\n */\r\nGridStack.prototype.resizable = function(els: GridStackElement, val: boolean): GridStack {\r\n if (val && this.opts.staticGrid) { return this; } // can't resize a static grid!\r\n GridStack.getElements(els).forEach(el => {\r\n let node = el.gridstackNode;\r\n if (!node) { return; }\r\n node.noResize = !(val || false);\r\n if (node.noResize) {\r\n GridStackDD.get().resizable(el, 'disable');\r\n } else {\r\n this._prepareDragDropByNode(node); // init DD if need be\r\n GridStackDD.get().resizable(el, 'enable');\r\n }\r\n });\r\n return this;\r\n}\r\n","// gridstack-ddi.ts 3.0.0 @preserve\r\n\r\n/**\r\n * https://gridstackjs.com/\r\n * (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov\r\n * gridstack.js may be freely distributed under the MIT license.\r\n*/\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport { GridItemHTMLElement } from './types';\r\n\r\n/**\r\n * Abstract Partial Interface API for drag'n'drop plugin - look at GridStackDD and HTML5 / Jquery implementation versions\r\n */\r\nexport class GridStackDDI {\r\n\r\n protected static ddi: GridStackDDI;\r\n\r\n /** call this method to register your plugin instead of the default no-op one */\r\n static registerPlugin(pluginClass: typeof GridStackDDI): void {\r\n GridStackDDI.ddi = new pluginClass();\r\n }\r\n\r\n /** get the current registered plugin to use */\r\n static get(): GridStackDDI {\r\n if (!GridStackDDI.ddi) { GridStackDDI.registerPlugin(GridStackDDI); }\r\n return GridStackDDI.ddi;\r\n }\r\n\r\n /** removes any drag&drop present (called during destroy) */\r\n public remove(el: GridItemHTMLElement): GridStackDDI {\r\n return this; // no-op for static grids\r\n }\r\n}\r\n","// gridstack-engine.ts 3.0.0 @preserve\r\n\r\n/**\r\n * https://gridstackjs.com/\r\n * (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov\r\n * gridstack.js may be freely distributed under the MIT license.\r\n*/\r\n\r\nimport { Utils, obsolete } from './utils';\r\nimport { GridStackNode, ColumnOptions, GridStackWidget } from './types';\r\n\r\nexport type onChangeCB = (nodes: GridStackNode[], removeDOM?: boolean) => void;\r\n\r\n/**\r\n * Defines the GridStack engine that does most no DOM grid manipulation.\r\n * See GridStack methods and vars for descriptions.\r\n *\r\n * NOTE: values should not be modified directly - call the main GridStack API instead\r\n */\r\nexport class GridStackEngine {\r\n public column: number;\r\n public maxRow: number;\r\n public nodes: GridStackNode[];\r\n public onchange: onChangeCB;\r\n public addedNodes: GridStackNode[] = [];\r\n public removedNodes: GridStackNode[] = [];\r\n public batchMode: boolean;\r\n /** @internal */\r\n private _float: boolean;\r\n /** @internal */\r\n private _prevFloat: boolean;\r\n /** @internal */\r\n private _layouts?: Layout[][]; // maps column # to array of values nodes\r\n /** @internal */\r\n private _ignoreLayoutsNodeChange: boolean;\r\n /** @internal */\r\n private static _idSeq = 1;\r\n\r\n public constructor(column = 12, onchange?: onChangeCB, float = false, maxRow = 0, nodes: GridStackNode[] = []) {\r\n this.column = column;\r\n this.onchange = onchange;\r\n this._float = float;\r\n this.maxRow = maxRow;\r\n this.nodes = nodes;\r\n }\r\n\r\n public batchUpdate(): GridStackEngine {\r\n if (this.batchMode) return this;\r\n this.batchMode = true;\r\n this._prevFloat = this._float;\r\n this._float = true; // let things go anywhere for now... commit() will restore and possibly reposition\r\n return this;\r\n }\r\n\r\n public commit(): GridStackEngine {\r\n if (!this.batchMode) return this;\r\n this.batchMode = false;\r\n this._float = this._prevFloat;\r\n delete this._prevFloat;\r\n this._packNodes();\r\n this._notify();\r\n return this;\r\n }\r\n\r\n /** @internal */\r\n private _fixCollisions(node: GridStackNode): GridStackEngine {\r\n this._sortNodes(-1);\r\n\r\n let nn = node;\r\n let hasLocked = Boolean(this.nodes.find(n => n.locked));\r\n if (!this.float && !hasLocked) {\r\n nn = {x: 0, y: node.y, w: this.column, h: node.h};\r\n }\r\n while (true) {\r\n let collisionNode = this.nodes.find( n => n !== node && Utils.isIntercepted(n, nn), {node: node, nn: nn});\r\n if (!collisionNode) { return this }\r\n let moved;\r\n if (collisionNode.locked) {\r\n // if colliding with a locked item, move ourself instead\r\n moved = this.moveNode(node, node.x, collisionNode.y + collisionNode.h,\r\n node.w, node.h, true);\r\n } else {\r\n moved = this.moveNode(collisionNode, collisionNode.x, node.y + node.h,\r\n collisionNode.w, collisionNode.h, true);\r\n }\r\n if (!moved) { return this } // break inf loop if we couldn't move after all (ex: maxRow, fixed)\r\n }\r\n }\r\n\r\n public isAreaEmpty(x: number, y: number, w: number, h: number): boolean {\r\n let nn: GridStackNode = {x: x || 0, y: y || 0, w: w || 1, h: h || 1};\r\n let collisionNode = this.nodes.find(n => {\r\n return Utils.isIntercepted(n, nn);\r\n });\r\n return !collisionNode;\r\n }\r\n\r\n /** re-layout grid items to reclaim any empty space */\r\n public compact(): GridStackEngine {\r\n if (this.nodes.length === 0) { return this }\r\n this.batchUpdate();\r\n this._sortNodes();\r\n let copyNodes = this.nodes;\r\n this.nodes = []; // pretend we have no nodes to conflict layout to start with...\r\n copyNodes.forEach(node => {\r\n if (!node.noMove && !node.locked) {\r\n node.autoPosition = true;\r\n }\r\n this.addNode(node, false); // 'false' for add event trigger\r\n node._dirty = true; // force attr update\r\n });\r\n this.commit();\r\n return this;\r\n }\r\n\r\n /** enable/disable floating widgets (default: `false`) See [example](http://gridstackjs.com/demo/float.html) */\r\n public set float(val: boolean) {\r\n if (this._float === val) { return; }\r\n this._float = val || false;\r\n if (!val) {\r\n this._packNodes();\r\n this._notify();\r\n }\r\n }\r\n\r\n /** float getter method */\r\n public get float(): boolean { return this._float || false; }\r\n\r\n /** @internal */\r\n private _sortNodes(dir?: -1 | 1): GridStackEngine {\r\n this.nodes = Utils.sort(this.nodes, dir, this.column);\r\n return this;\r\n }\r\n\r\n /** @internal */\r\n private _packNodes(): GridStackEngine {\r\n this._sortNodes();\r\n\r\n if (this.float) {\r\n this.nodes.forEach((n, i) => {\r\n if (n._updating || n._packY === undefined || n.y === n._packY) {\r\n return this;\r\n }\r\n let newY = n.y;\r\n while (newY >= n._packY) {\r\n let box: GridStackWidget = {x: n.x, y: newY, w: n.w, h: n.h};\r\n let collisionNode = this.nodes\r\n .slice(0, i)\r\n .find(bn => Utils.isIntercepted(box, bn), {n: n, newY: newY});\r\n if (!collisionNode) {\r\n n._dirty = true;\r\n n.y = newY;\r\n }\r\n --newY;\r\n }\r\n });\r\n } else {\r\n this.nodes.forEach((n, i) => {\r\n if (n.locked) { return this }\r\n while (n.y > 0) {\r\n let newY = n.y - 1;\r\n let canBeMoved = i === 0;\r\n let box: GridStackWidget = {x: n.x, y: newY, w: n.w, h: n.h};\r\n if (i > 0) {\r\n let collisionNode = this.nodes\r\n .slice(0, i)\r\n .find(bn => Utils.isIntercepted(box, bn), {n: n, newY: newY});\r\n canBeMoved = collisionNode === undefined;\r\n }\r\n\r\n if (!canBeMoved) { break; }\r\n // Note: must be dirty (from last position) for GridStack::OnChange CB to update positions\r\n // and move items back. The user 'change' CB should detect changes from the original\r\n // starting position instead.\r\n n._dirty = (n.y !== newY);\r\n n.y = newY;\r\n }\r\n });\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * given a random node, makes sure it's coordinates/values are valid in the current grid\r\n * @param node to adjust\r\n * @param resizing if out of bound, resize down or move into the grid to fit ?\r\n */\r\n public prepareNode(node: GridStackNode, resizing?: boolean): GridStackNode {\r\n node = node || {};\r\n node._id = node._id || GridStackEngine._idSeq++;\r\n\r\n // if we're missing position, have the grid position us automatically (before we set them to 0,0)\r\n if (node.x === undefined || node.y === undefined || node.x === null || node.y === null) {\r\n node.autoPosition = true;\r\n }\r\n\r\n // assign defaults for missing required fields\r\n let defaults: GridStackNode = { x: 0, y: 0, w: 1, h: 1};\r\n Utils.defaults(node, defaults);\r\n\r\n if (!node.autoPosition) { delete node.autoPosition; }\r\n if (!node.noResize) { delete node.noResize; }\r\n if (!node.noMove) { delete node.noMove; }\r\n\r\n // check for NaN (in case messed up strings were passed. can't do parseInt() || defaults.x above as 0 is valid #)\r\n if (typeof node.x == 'string') { node.x = Number(node.x); }\r\n if (typeof node.y == 'string') { node.y = Number(node.y); }\r\n if (typeof node.w == 'string') { node.w = Number(node.w); }\r\n if (typeof node.h == 'string') { node.h = Number(node.h); }\r\n if (isNaN(node.x)) { node.x = defaults.x; node.autoPosition = true; }\r\n if (isNaN(node.y)) { node.y = defaults.y; node.autoPosition = true; }\r\n if (isNaN(node.w)) { node.w = defaults.w; }\r\n if (isNaN(node.h)) { node.h = defaults.h; }\r\n\r\n if (node.maxW) { node.w = Math.min(node.w, node.maxW); }\r\n if (node.maxH) { node.h = Math.min(node.h, node.maxH); }\r\n if (node.minW) { node.w = Math.max(node.w, node.minW); }\r\n if (node.minH) { node.h = Math.max(node.h, node.minH); }\r\n\r\n if (node.w > this.column) {\r\n node.w = this.column;\r\n } else if (node.w < 1) {\r\n node.w = 1;\r\n }\r\n\r\n if (this.maxRow && node.h > this.maxRow) {\r\n node.h = this.maxRow;\r\n } else if (node.h < 1) {\r\n node.h = 1;\r\n }\r\n\r\n if (node.x < 0) {\r\n node.x = 0;\r\n }\r\n if (node.y < 0) {\r\n node.y = 0;\r\n }\r\n\r\n if (node.x + node.w > this.column) {\r\n if (resizing) {\r\n node.w = this.column - node.x;\r\n } else {\r\n node.x = this.column - node.w;\r\n }\r\n }\r\n if (this.maxRow && node.y + node.h > this.maxRow) {\r\n if (resizing) {\r\n node.h = this.maxRow - node.y;\r\n } else {\r\n node.y = this.maxRow - node.h;\r\n }\r\n }\r\n\r\n return node;\r\n }\r\n\r\n public getDirtyNodes(verify?: boolean): GridStackNode[] {\r\n // compare original X,Y,W,H (or entire node?) instead as _dirty can be a temporary state\r\n if (verify) {\r\n let dirtNodes: GridStackNode[] = [];\r\n this.nodes.forEach(n => {\r\n if (n._dirty) {\r\n if (n.y === n._origY && n.x === n._origX && n.w === n._origW && n.h === n._origH) {\r\n delete n._dirty;\r\n } else {\r\n dirtNodes.push(n);\r\n }\r\n }\r\n });\r\n return dirtNodes;\r\n }\r\n\r\n return this.nodes.filter(n => n._dirty);\r\n }\r\n\r\n /** @internal */\r\n private _notify(nodes?: GridStackNode | GridStackNode[], removeDOM = true): GridStackEngine {\r\n if (this.batchMode) { return this }\r\n nodes = (nodes === undefined ? [] : (Array.isArray(nodes) ? nodes : [nodes]) );\r\n let dirtyNodes = nodes.concat(this.getDirtyNodes());\r\n if (this.onchange) {\r\n this.onchange(dirtyNodes, removeDOM);\r\n }\r\n return this;\r\n }\r\n\r\n public cleanNodes(): GridStackEngine {\r\n if (this.batchMode) { return this }\r\n this.nodes.forEach(n => { delete n._dirty; });\r\n return this;\r\n }\r\n\r\n public addNode(node: GridStackNode, triggerAddEvent = false): GridStackNode {\r\n node = this.prepareNode(node);\r\n\r\n if (node.autoPosition) {\r\n this._sortNodes();\r\n\r\n for (let i = 0;; ++i) {\r\n let x = i % this.column;\r\n let y = Math.floor(i / this.column);\r\n if (x + node.w > this.column) {\r\n continue;\r\n }\r\n let box = {x, y, w: node.w, h: node.h};\r\n if (!this.nodes.find(n => Utils.isIntercepted(box, n), {x, y, node})) {\r\n node.x = x;\r\n node.y = y;\r\n delete node.autoPosition; // found our slot\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.nodes.push(node);\r\n if (triggerAddEvent) {\r\n this.addedNodes.push(node);\r\n }\r\n\r\n this._fixCollisions(node);\r\n this._packNodes();\r\n this._notify();\r\n return node;\r\n }\r\n\r\n public removeNode(node: GridStackNode, removeDOM = true, triggerEvent = false): GridStackEngine {\r\n if (triggerEvent) { // we wait until final drop to manually track removed items (rather than during drag)\r\n this.removedNodes.push(node);\r\n }\r\n node._id = null; // hint that node is being removed\r\n // TODO: .splice(findIndex(),1) would be faster but apparently there are cases we have 2 instances ! (see spec 'load add new, delete others')\r\n // this.nodes = this.nodes.filter(n => n !== node);\r\n this.nodes.splice(this.nodes.findIndex(n => n === node), 1);\r\n if (!this.float) {\r\n this._packNodes();\r\n }\r\n this._notify(node, removeDOM);\r\n return this;\r\n }\r\n\r\n public removeAll(removeDOM = true): GridStackEngine {\r\n delete this._layouts;\r\n if (this.nodes.length === 0) { return this }\r\n if (removeDOM) {\r\n this.nodes.forEach(n => { n._id = null; }); // hint that node is being removed\r\n }\r\n this.removedNodes = this.nodes;\r\n this.nodes = [];\r\n this._notify(this.removedNodes, removeDOM);\r\n return this;\r\n }\r\n\r\n public canMoveNode(node: GridStackNode, x: number, y: number, w?: number, h?: number): boolean {\r\n if (!this.isNodeChangedPosition(node, x, y, w, h)) {\r\n return false;\r\n }\r\n let hasLocked = Boolean(this.nodes.find(n => n.locked));\r\n\r\n if (!this.maxRow && !hasLocked) {\r\n return true;\r\n }\r\n\r\n let clonedNode: GridStackNode;\r\n let clone = new GridStackEngine(\r\n this.column,\r\n null,\r\n this.float,\r\n 0,\r\n this.nodes.map(n => {\r\n if (n === node) {\r\n clonedNode = Utils.clone(n);\r\n return clonedNode;\r\n }\r\n return Utils.clone(n);\r\n }));\r\n\r\n if (!clonedNode) { return true;}\r\n\r\n clone.moveNode(clonedNode, x, y, w, h);\r\n\r\n let canMove = true;\r\n if (hasLocked) {\r\n canMove = canMove && !Boolean(clone.nodes.find(n => {\r\n return n !== clonedNode && Boolean(n.locked) && Boolean(n._dirty);\r\n }));\r\n }\r\n if (this.maxRow) {\r\n canMove = canMove && (clone.getRow() <= this.maxRow);\r\n }\r\n\r\n return canMove;\r\n }\r\n\r\n public canBePlacedWithRespectToHeight(node: GridStackNode): boolean {\r\n if (!this.maxRow) {\r\n return true;\r\n }\r\n\r\n let clone = new GridStackEngine(\r\n this.column,\r\n null,\r\n this.float,\r\n 0,\r\n this.nodes.map(n => Utils.clone(n)));\r\n clone.addNode(node);\r\n return clone.getRow() <= this.maxRow;\r\n }\r\n\r\n public isNodeChangedPosition(node: GridStackNode, x: number, y: number, w: number, h: number): boolean {\r\n if (typeof x !== 'number') { x = node.x; }\r\n if (typeof y !== 'number') { y = node.y; }\r\n if (typeof w !== 'number') { w = node.w; }\r\n if (typeof h !== 'number') { h = node.h; }\r\n\r\n if (node.maxW) { w = Math.min(w, node.maxW); }\r\n if (node.maxH) { h = Math.min(h, node.maxH); }\r\n if (node.minW) { w = Math.max(w, node.minW); }\r\n if (node.minH) { h = Math.max(h, node.minH); }\r\n\r\n if (node.x === x && node.y === y && node.w === w && node.h === h) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public moveNode(node: GridStackNode, x: number, y: number, w?: number, h?: number, noPack?: boolean): GridStackNode {\r\n if (node.locked) { return null; }\r\n if (typeof x !== 'number') { x = node.x; }\r\n if (typeof y !== 'number') { y = node.y; }\r\n if (typeof w !== 'number') { w = node.w; }\r\n if (typeof h !== 'number') { h = node.h; }\r\n\r\n // constrain the passed in values and check if we're still changing our node\r\n let resizing = (node.w !== w || node.h !== h);\r\n let nn: GridStackNode = { x, y, w, h, maxW: node.maxW, maxH: node.maxH, minW: node.minW, minH: node.minH};\r\n nn = this.prepareNode(nn, resizing);\r\n if (node.x === nn.x && node.y === nn.y && node.w === nn.w && node.h === nn.h) {\r\n return null;\r\n }\r\n\r\n node._dirty = true;\r\n\r\n node.x = node._lastTriedX = nn.x;\r\n node.y = node._lastTriedY = nn.y;\r\n node.w = node._lastTriedW = nn.w;\r\n node.h = node._lastTriedH = nn.h;\r\n\r\n this._fixCollisions(node);\r\n if (!noPack) {\r\n this._packNodes();\r\n this._notify();\r\n }\r\n return node;\r\n }\r\n\r\n public getRow(): number {\r\n return this.nodes.reduce((memo, n) => Math.max(memo, n.y + n.h), 0);\r\n }\r\n\r\n public beginUpdate(node: GridStackNode): GridStackEngine {\r\n if (node._updating) return this;\r\n node._updating = true;\r\n this.nodes.forEach(n => { n._packY = n.y; });\r\n return this;\r\n }\r\n\r\n public endUpdate(): GridStackEngine {\r\n let n = this.nodes.find(n => n._updating);\r\n if (n) {\r\n delete n._updating;\r\n this.nodes.forEach(n => { delete n._packY; });\r\n }\r\n return this;\r\n }\r\n\r\n /** saves the current layout returning a list of widgets for serialization */\r\n public save(saveElement = true): GridStackNode[] {\r\n let widgets: GridStackNode[] = [];\r\n Utils.sort(this.nodes);\r\n this.nodes.forEach(n => {\r\n let w: GridStackNode = {};\r\n for (let key in n) { if (key[0] !== '_' && n[key] !== null && n[key] !== undefined ) w[key] = n[key]; }\r\n // delete other internals\r\n if (!saveElement) delete w.el;\r\n delete w.grid;\r\n // delete default values (will be re-created on read)\r\n if (!w.autoPosition) delete w.autoPosition;\r\n if (!w.noResize) delete w.noResize;\r\n if (!w.noMove) delete w.noMove;\r\n if (!w.locked) delete w.locked;\r\n widgets.push(w);\r\n });\r\n return widgets;\r\n }\r\n\r\n /** @internal called whenever a node is added or moved - updates the cached layouts */\r\n public layoutsNodesChange(nodes: GridStackNode[]): GridStackEngine {\r\n if (!this._layouts || this._ignoreLayoutsNodeChange) return this;\r\n // remove smaller layouts - we will re-generate those on the fly... larger ones need to update\r\n this._layouts.forEach((layout, column) => {\r\n if (!layout || column === this.column) return this;\r\n if (column < this.column) {\r\n this._layouts[column] = undefined;\r\n }\r\n else {\r\n // we save the original x,y,w (h isn't cached) to see what actually changed to propagate better.\r\n // Note: we don't need to check against out of bound scaling/moving as that will be done when using those cache values.\r\n nodes.forEach(node => {\r\n let n = layout.find(l => l._id === node._id);\r\n if (!n) return this; // no cache for new nodes. Will use those values.\r\n let ratio = column / this.column;\r\n // Y changed, push down same amount\r\n // TODO: detect doing item 'swaps' will help instead of move (especially in 1 column mode)\r\n if (node.y !== node._origY) {\r\n n.y += (node.y - node._origY);\r\n }\r\n // X changed, scale from new position\r\n if (node.x !== node._origX) {\r\n n.x = Math.round(node.x * ratio);\r\n }\r\n // width changed, scale from new width\r\n if (node.w !== node._origW) {\r\n n.w = Math.round(node.w * ratio);\r\n }\r\n // ...height always carries over from cache\r\n });\r\n }\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * @internal Called to scale the widget width & position up/down based on the column change.\r\n * Note we store previous layouts (especially original ones) to make it possible to go\r\n * from say 12 -> 1 -> 12 and get back to where we were.\r\n *\r\n * @param oldColumn previous number of columns\r\n * @param column new column number\r\n * @param nodes different sorted list (ex: DOM order) instead of current list\r\n * @param layout specify the type of re-layout that will happen (position, size, etc...).\r\n * Note: items will never be outside of the current column boundaries. default (moveScale). Ignored for 1 column\r\n */\r\n public updateNodeWidths(oldColumn: number, column: number, nodes: GridStackNode[], layout: ColumnOptions = 'moveScale'): GridStackEngine {\r\n if (!this.nodes.length || oldColumn === column) { return this }\r\n\r\n // cache the current layout in case they want to go back (like 12 -> 1 -> 12) as it requires original data\r\n this.cacheLayout(this.nodes, oldColumn);\r\n\r\n // if we're going to 1 column and using DOM order rather than default sorting, then generate that layout\r\n if (column === 1 && nodes && nodes.length) {\r\n let top = 0;\r\n nodes.forEach(n => {\r\n n.x = 0;\r\n n.w = 1;\r\n n.y = Math.max(n.y, top);\r\n top = n.y + n.h;\r\n });\r\n } else {\r\n nodes = Utils.sort(this.nodes, -1, oldColumn); // current column reverse sorting so we can insert last to front (limit collision)\r\n }\r\n\r\n // see if we have cached previous layout.\r\n let cacheNodes = this._layouts[column] || [];\r\n // if not AND we are going up in size start with the largest layout as down-scaling is more accurate\r\n let lastIndex = this._layouts.length - 1;\r\n if (cacheNodes.length === 0 && column > oldColumn && column < lastIndex) {\r\n cacheNodes = this._layouts[lastIndex] || [];\r\n if (cacheNodes.length) {\r\n // pretend we came from that larger column by assigning those values as starting point\r\n oldColumn = lastIndex;\r\n cacheNodes.forEach(cacheNode => {\r\n let j = nodes.findIndex(n => n._id === cacheNode._id);\r\n if (j !== -1) {\r\n // still current, use cache info positions\r\n nodes[j].x = cacheNode.x;\r\n nodes[j].y = cacheNode.y;\r\n nodes[j].w = cacheNode.w;\r\n }\r\n });\r\n cacheNodes = []; // we still don't have new column cached data... will generate from larger one.\r\n }\r\n }\r\n\r\n // if we found cache re-use those nodes that are still current\r\n let newNodes: GridStackNode[] = [];\r\n cacheNodes.forEach(cacheNode => {\r\n let j = nodes.findIndex(n => n._id === cacheNode._id);\r\n if (j !== -1) {\r\n // still current, use cache info positions\r\n nodes[j].x = cacheNode.x;\r\n nodes[j].y = cacheNode.y;\r\n nodes[j].w = cacheNode.w;\r\n newNodes.push(nodes[j]);\r\n nodes.splice(j, 1);\r\n }\r\n });\r\n // ...and add any extra non-cached ones\r\n if (nodes.length) {\r\n if (typeof layout === 'function') {\r\n layout(column, oldColumn, newNodes, nodes);\r\n } else {\r\n let ratio = column / oldColumn;\r\n let move = (layout === 'move' || layout === 'moveScale');\r\n let scale = (layout === 'scale' || layout === 'moveScale');\r\n nodes.forEach(node => {\r\n node.x = (column === 1 ? 0 : (move ? Math.round(node.x * ratio) : Math.min(node.x, column - 1)));\r\n node.w = ((column === 1 || oldColumn === 1) ? 1 :\r\n scale ? (Math.round(node.w * ratio) || 1) : (Math.min(node.w, column)));\r\n newNodes.push(node);\r\n });\r\n nodes = [];\r\n }\r\n }\r\n\r\n // finally re-layout them in reverse order (to get correct placement)\r\n newNodes = Utils.sort(newNodes, -1, column);\r\n this._ignoreLayoutsNodeChange = true;\r\n this.batchUpdate();\r\n this.nodes = []; // pretend we have no nodes to start with (we use same structures) to simplify layout\r\n newNodes.forEach(node => {\r\n this.addNode(node, false); // 'false' for add event trigger\r\n node._dirty = true; // force attr update\r\n }, this);\r\n this.commit();\r\n delete this._ignoreLayoutsNodeChange;\r\n return this;\r\n }\r\n\r\n /** @internal called to save initial position/size */\r\n public saveInitial(): GridStackEngine {\r\n this.nodes.forEach(n => {\r\n n._origX = n.x;\r\n n._origY = n.y;\r\n n._origW = n.w;\r\n n._origH = n.h;\r\n delete n._dirty;\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * call to cache the given layout internally to the given location so we can restore back when column changes size\r\n * @param nodes list of nodes\r\n * @param column corresponding column index to save it under\r\n * @param clear if true, will force other caches to be removed (default false)\r\n */\r\n public cacheLayout(nodes: GridStackNode[], column: number, clear = false): GridStackEngine {\r\n let copy: Layout[] = [];\r\n nodes.forEach((n, i) => {\r\n n._id = n._id || GridStackEngine._idSeq++; // make sure we have an id in case this is new layout, else re-use id already set\r\n copy[i] = {x: n.x, y: n.y, w: n.w, _id: n._id} // only thing we change is x,y,w and id to find it back\r\n });\r\n this._layouts = clear ? [] : this._layouts || []; // use array to find larger quick\r\n this._layouts[column] = copy;\r\n return this;\r\n }\r\n\r\n\r\n /** called to remove all internal values */\r\n public cleanupNode(node: GridStackNode): GridStackEngine {\r\n for (let prop in node) {\r\n if (prop[0] === '_') delete node[prop];\r\n }\r\n return this;\r\n }\r\n\r\n /** @internal legacy method renames */\r\n private getGridHeight = obsolete(this, GridStackEngine.prototype.getRow, 'getGridHeight', 'getRow', 'v1.0.0');\r\n}\r\n\r\n/** @internal class to store per column layout bare minimal info (subset of GridStackWidget) */\r\ninterface Layout {\r\n x: number;\r\n y: number;\r\n w: number;\r\n _id: number; // so we can find full node back\r\n}\r\n","// gridstack.ts 3.0.0 @preserve\r\n\r\n/**\r\n * https://gridstackjs.com/\r\n * (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov\r\n * gridstack.js may be freely distributed under the MIT license.\r\n*/\r\n\r\nimport { GridStackEngine } from './gridstack-engine';\r\nimport { obsoleteOpts, obsoleteAttr, Utils, HeightData } from './utils';\r\nimport { GridStackElement, GridItemHTMLElement, GridStackWidget, GridStackNode, GridStackOptions, numberOrString, ColumnOptions } from './types';\r\nimport { GridStackDDI } from './gridstack-ddi';\r\n\r\n// export all dependent file as well to make it easier for users to just import the main file\r\nexport * from './types';\r\nexport * from './utils';\r\nexport * from './gridstack-engine';\r\nexport * from './gridstack-ddi';\r\n\r\nexport interface GridHTMLElement extends HTMLElement {\r\n gridstack?: GridStack; // grid's parent DOM element points back to grid class\r\n}\r\nexport type GridStackEvent = 'added' | 'change' | 'disable' | 'dragstart' | 'dragstop' | 'dropped' |\r\n 'enable' | 'removed' | 'resizestart' | 'resizestop';\r\n\r\n/** Defines the coordinates of an object */\r\nexport interface MousePosition {\r\n top: number;\r\n left: number;\r\n}\r\n\r\n/** Defines the position of a cell inside the grid*/\r\nexport interface CellPosition {\r\n x: number;\r\n y: number;\r\n}\r\n\r\ninterface GridCSSStyleSheet extends CSSStyleSheet {\r\n _id?: string; // random id we will use to style us\r\n _max?: number; // internal tracker of the max # of rows we created\\\r\n}\r\n\r\n/**\r\n * Main gridstack class - you will need to call `GridStack.init()` first to initialize your grid.\r\n * Note: your grid elements MUST have the following classes for the CSS layout to work:\r\n * @example\r\n *