{"version":3,"file":"gridstack-all.js","mappings":"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","sources":["webpack://GridStack/webpack/universalModuleDefinition","webpack://GridStack/webpack/bootstrap","webpack://GridStack/webpack/runtime/define property getters","webpack://GridStack/webpack/runtime/hasOwnProperty shorthand","webpack://GridStack/./src/utils.ts","webpack://GridStack/./src/gridstack-engine.ts","webpack://GridStack/./src/types.ts","webpack://GridStack/./src/dd-manager.ts","webpack://GridStack/./src/dd-touch.ts","webpack://GridStack/./src/dd-resizable-handle.ts","webpack://GridStack/./src/dd-base-impl.ts","webpack://GridStack/./src/dd-resizable.ts","webpack://GridStack/./src/dd-draggable.ts","webpack://GridStack/./src/dd-droppable.ts","webpack://GridStack/./src/dd-element.ts","webpack://GridStack/./src/gridstack.ts","webpack://GridStack/./src/dd-gridstack.ts"],"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, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * utils.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\n\nimport { GridStackElement, GridStackNode, numberOrString, GridStackPosition, GridStackWidget } from './types';\n\nexport interface HeightData {\n h: number;\n unit: string;\n}\n\nexport interface DragTransform {\n xScale: number;\n yScale: number;\n xOffset: number;\n yOffset: number;\n}\n\n// /**\n// * Checks for obsolete method names and provides deprecation warnings.\n// * Creates a wrapper function that logs a deprecation warning when called.\n// *\n// * @param self the object context to apply the function to\n// * @param f the new function to call\n// * @param oldName the deprecated method name\n// * @param newName the new method name to use instead\n// * @param rev the version when the deprecation was introduced\n// * @returns a wrapper function that warns about deprecation\n// */\n// eslint-disable-next-line\n// export function obsolete(self, f, oldName: string, newName: string, rev: string): (...args: any[]) => any {\n// const wrapper = (...args) => {\n// console.warn('gridstack.js: Function `' + oldName + '` is deprecated in ' + rev + ' and has been replaced ' +\n// 'with `' + newName + '`. It will be **removed** in a future release');\n// return f.apply(self, args);\n// }\n// wrapper.prototype = f.prototype;\n// return wrapper;\n// }\n\n// /**\n// * Checks for obsolete grid options and migrates them to new names.\n// * Automatically copies old option values to new option names and shows deprecation warnings.\n// *\n// * @param opts the options object to check and migrate\n// * @param oldName the deprecated option name\n// * @param newName the new option name to use instead\n// * @param rev the version when the deprecation was introduced\n// */\n// export function obsoleteOpts(opts: GridStackOptions, oldName: string, newName: string, rev: string): void {\n// if (opts[oldName] !== undefined) {\n// opts[newName] = opts[oldName];\n// console.warn('gridstack.js: Option `' + oldName + '` is deprecated in ' + rev + ' and has been replaced with `' +\n// newName + '`. It will be **removed** in a future release');\n// }\n// }\n\n// /**\n// * Checks for obsolete grid options that have been completely removed.\n// * Shows deprecation warnings for options that are no longer supported.\n// *\n// * @param opts the options object to check\n// * @param oldName the removed option name\n// * @param rev the version when the option was removed\n// * @param info additional information about the removal\n// */\n// export function obsoleteOptsDel(opts: GridStackOptions, oldName: string, rev: string, info: string): void {\n// if (opts[oldName] !== undefined) {\n// console.warn('gridstack.js: Option `' + oldName + '` is deprecated in ' + rev + info);\n// }\n// }\n\n// /**\n// * Checks for obsolete HTML element attributes and migrates them.\n// * Automatically copies old attribute values to new attribute names and shows deprecation warnings.\n// *\n// * @param el the HTML element to check and migrate\n// * @param oldName the deprecated attribute name\n// * @param newName the new attribute name to use instead\n// * @param rev the version when the deprecation was introduced\n// */\n// export function obsoleteAttr(el: HTMLElement, oldName: string, newName: string, rev: string): void {\n// const oldAttr = el.getAttribute(oldName);\n// if (oldAttr !== null) {\n// el.setAttribute(newName, oldAttr);\n// console.warn('gridstack.js: attribute `' + oldName + '`=' + oldAttr + ' is deprecated on this object in ' + rev + ' and has been replaced with `' +\n// newName + '`. It will be **removed** in a future release');\n// }\n// }\n\n/**\n * Collection of utility methods used throughout GridStack.\n * These are general-purpose helper functions for DOM manipulation,\n * positioning calculations, object operations, and more.\n */\nexport class Utils {\n\n /**\n * Convert a potential selector into an actual list of HTML elements.\n * Supports CSS selectors, element references, and special ID handling.\n *\n * @param els selector string, HTMLElement, or array of elements\n * @param root optional root element to search within (defaults to document, useful for shadow DOM)\n * @returns array of HTML elements matching the selector\n *\n * @example\n * const elements = Utils.getElements('.grid-item');\n * const byId = Utils.getElements('#myWidget');\n * const fromShadow = Utils.getElements('.item', shadowRoot);\n */\n static getElements(els: GridStackElement, root: HTMLElement | Document = document): HTMLElement[] {\n if (typeof els === 'string') {\n const doc = ('getElementById' in root) ? root as Document : undefined;\n\n // Note: very common for people use to id='1,2,3' which is only legal as HTML5 id, but not CSS selectors\n // so if we start with a number, assume it's an id and just return that one item...\n // see https://github.com/gridstack/gridstack.js/issues/2234#issuecomment-1523796562\n if (doc && !isNaN(+els[0])) { // start with digit\n const el = doc.getElementById(els);\n return el ? [el] : [];\n }\n\n let list = root.querySelectorAll(els);\n if (!list.length && els[0] !== '.' && els[0] !== '#') {\n // see if mean to be a class\n list = root.querySelectorAll('.' + els);\n\n // else if mean to be an id\n if (!list.length) list = root.querySelectorAll('#' + els);\n\n // else see if gs-id attribute\n if (!list.length) {\n const el = root.querySelector(`[gs-id=\"${els}\"]`);\n return el ? [el] : [];\n }\n }\n return Array.from(list) as HTMLElement[];\n }\n return [els];\n }\n\n /**\n * Convert a potential selector into a single HTML element.\n * Similar to getElements() but returns only the first match.\n *\n * @param els selector string or HTMLElement\n * @param root optional root element to search within (defaults to document)\n * @returns the first HTML element matching the selector, or null if not found\n *\n * @example\n * const element = Utils.getElement('#myWidget');\n * const first = Utils.getElement('.grid-item');\n */\n static getElement(els: GridStackElement, root: HTMLElement | Document = document): HTMLElement {\n if (typeof els === 'string') {\n const doc = ('getElementById' in root) ? root as Document : undefined;\n if (!els.length) return null;\n if (doc && els[0] === '#') {\n return doc.getElementById(els.substring(1));\n }\n if (els[0] === '#' || els[0] === '.' || els[0] === '[') {\n return root.querySelector(els);\n }\n\n // if we start with a digit, assume it's an id (error calling querySelector('#1')) as class are not valid CSS\n if (doc && !isNaN(+els[0])) { // start with digit\n return doc.getElementById(els);\n }\n\n // finally try string, then id, then class\n let el = root.querySelector(els);\n if (doc && !el) { el = doc.getElementById(els) }\n if (!el) { el = root.querySelector('.' + els) }\n return el as HTMLElement;\n }\n return els;\n }\n\n /**\n * Check if a widget should be lazy loaded based on node or grid settings.\n *\n * @param n the grid node to check\n * @returns true if the item should be lazy loaded\n *\n * @example\n * if (Utils.lazyLoad(node)) {\n * // Set up intersection observer for lazy loading\n * }\n */\n static lazyLoad(n: GridStackNode): boolean {\n return n.lazyLoad || n.grid?.opts?.lazyLoad && n.lazyLoad !== false;\n }\n\n /**\n * Create a div element with the specified CSS classes.\n *\n * @param classes array of CSS class names to add\n * @param parent optional parent element to append the div to\n * @returns the created div element\n *\n * @example\n * const div = Utils.createDiv(['grid-item', 'draggable']);\n * const nested = Utils.createDiv(['content'], parentDiv);\n */\n static createDiv(classes: string[], parent?: HTMLElement): HTMLElement {\n const el = document.createElement('div');\n classes.forEach(c => {if (c) el.classList.add(c)});\n parent?.appendChild(el);\n return el;\n }\n\n /**\n * Check if a widget should resize to fit its content.\n *\n * @param n the grid node to check (can be undefined)\n * @param strict if true, only returns true for explicit sizeToContent:true (not numbers)\n * @returns true if the widget should resize to content\n *\n * @example\n * if (Utils.shouldSizeToContent(node)) {\n * // Trigger content-based resizing\n * }\n */\n static shouldSizeToContent(n: GridStackNode | undefined, strict = false): boolean {\n return n?.grid && (strict ?\n (n.sizeToContent === true || (n.grid.opts.sizeToContent === true && n.sizeToContent === undefined)) :\n (!!n.sizeToContent || (n.grid.opts.sizeToContent && n.sizeToContent !== false)));\n }\n\n /**\n * Check if two grid positions overlap/intersect.\n *\n * @param a first position with x, y, w, h properties\n * @param b second position with x, y, w, h properties\n * @returns true if the positions overlap\n *\n * @example\n * const overlaps = Utils.isIntercepted(\n * {x: 0, y: 0, w: 2, h: 1},\n * {x: 1, y: 0, w: 2, h: 1}\n * ); // true - they overlap\n */\n static isIntercepted(a: GridStackPosition, b: GridStackPosition): boolean {\n return !(a.y >= b.y + b.h || a.y + a.h <= b.y || a.x + a.w <= b.x || a.x >= b.x + b.w);\n }\n\n /**\n * Check if two grid positions are touching (edges or corners).\n *\n * @param a first position\n * @param b second position\n * @returns true if the positions are touching\n *\n * @example\n * const touching = Utils.isTouching(\n * {x: 0, y: 0, w: 2, h: 1},\n * {x: 2, y: 0, w: 1, h: 1}\n * ); // true - they share an edge\n */\n static isTouching(a: GridStackPosition, b: GridStackPosition): boolean {\n return Utils.isIntercepted(a, {x: b.x-0.5, y: b.y-0.5, w: b.w+1, h: b.h+1})\n }\n\n /**\n * Calculate the overlapping area between two grid positions.\n *\n * @param a first position\n * @param b second position\n * @returns the area of overlap (0 if no overlap)\n *\n * @example\n * const overlap = Utils.areaIntercept(\n * {x: 0, y: 0, w: 3, h: 2},\n * {x: 1, y: 0, w: 3, h: 2}\n * ); // returns 4 (2x2 overlap)\n */\n static areaIntercept(a: GridStackPosition, b: GridStackPosition): number {\n const x0 = (a.x > b.x) ? a.x : b.x;\n const x1 = (a.x+a.w < b.x+b.w) ? a.x+a.w : b.x+b.w;\n if (x1 <= x0) return 0; // no overlap\n const y0 = (a.y > b.y) ? a.y : b.y;\n const y1 = (a.y+a.h < b.y+b.h) ? a.y+a.h : b.y+b.h;\n if (y1 <= y0) return 0; // no overlap\n return (x1-x0) * (y1-y0);\n }\n\n /**\n * Calculate the total area of a grid position.\n *\n * @param a position with width and height\n * @returns the total area (width * height)\n *\n * @example\n * const area = Utils.area({x: 0, y: 0, w: 3, h: 2}); // returns 6\n */\n static area(a: GridStackPosition): number {\n return a.w * a.h;\n }\n\n /**\n * Sort an array of grid nodes by position (y first, then x).\n *\n * @param nodes array of nodes to sort\n * @param dir sort direction: 1 for ascending (top-left first), -1 for descending\n * @returns the sorted array (modifies original)\n *\n * @example\n * const sorted = Utils.sort(nodes); // Sort top-left to bottom-right\n * const reverse = Utils.sort(nodes, -1); // Sort bottom-right to top-left\n */\n static sort(nodes: GridStackNode[], dir: 1 | -1 = 1): GridStackNode[] {\n const und = 10000;\n return nodes.sort((a, b) => {\n const diffY = dir * ((a.y ?? und) - (b.y ?? und));\n if (diffY === 0) return dir * ((a.x ?? und) - (b.x ?? und));\n return diffY;\n });\n }\n\n /**\n * Find a grid node by its ID.\n *\n * @param nodes array of nodes to search\n * @param id the ID to search for\n * @returns the node with matching ID, or undefined if not found\n *\n * @example\n * const node = Utils.find(nodes, 'widget-1');\n * if (node) console.log('Found node at:', node.x, node.y);\n */\n static find(nodes: GridStackNode[], id: string): GridStackNode | undefined {\n return id ? nodes.find(n => n.id === id) : undefined;\n }\n\n /**\n * Convert various value types to boolean.\n * Handles strings like 'false', 'no', '0' as false.\n *\n * @param v value to convert\n * @returns boolean representation\n *\n * @example\n * Utils.toBool('true'); // true\n * Utils.toBool('false'); // false\n * Utils.toBool('no'); // false\n * Utils.toBool('1'); // true\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static toBool(v: unknown): boolean {\n if (typeof v === 'boolean') {\n return v;\n }\n if (typeof v === 'string') {\n v = v.toLowerCase();\n return !(v === '' || v === 'no' || v === 'false' || v === '0');\n }\n return Boolean(v);\n }\n\n /**\n * Convert a string value to a number, handling null and empty strings.\n *\n * @param value string or null value to convert\n * @returns number value, or undefined for null/empty strings\n *\n * @example\n * Utils.toNumber('42'); // 42\n * Utils.toNumber(''); // undefined\n * Utils.toNumber(null); // undefined\n */\n static toNumber(value: null | string): number {\n return (value === null || value.length === 0) ? undefined : Number(value);\n }\n\n /**\n * Parse a height value with units into numeric value and unit string.\n * Supports px, em, rem, vh, vw, %, cm, mm units.\n *\n * @param val height value as number or string with units\n * @returns object with h (height) and unit properties\n *\n * @example\n * Utils.parseHeight('100px'); // {h: 100, unit: 'px'}\n * Utils.parseHeight('2rem'); // {h: 2, unit: 'rem'}\n * Utils.parseHeight(50); // {h: 50, unit: 'px'}\n */\n static parseHeight(val: numberOrString): HeightData {\n let h: number;\n let unit = 'px';\n if (typeof val === 'string') {\n if (val === 'auto' || val === '') h = 0;\n else {\n const match = val.match(/^(-[0-9]+\\.[0-9]+|[0-9]*\\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);\n if (!match) {\n throw new Error(`Invalid height val = ${val}`);\n }\n unit = match[2] || 'px';\n h = parseFloat(match[1]);\n }\n } else {\n h = val;\n }\n return { h, unit };\n }\n\n /**\n * Copy unset fields from source objects to target object (shallow merge with defaults).\n * Similar to Object.assign but only sets undefined/null fields.\n *\n * @param target the object to copy defaults into\n * @param sources one or more source objects to copy defaults from\n * @returns the modified target object\n *\n * @example\n * const config = { width: 100 };\n * Utils.defaults(config, { width: 200, height: 50 });\n * // config is now { width: 100, height: 50 }\n */\n // eslint-disable-next-line\n static defaults(target, ...sources): {} {\n\n sources.forEach(source => {\n for (const key in source) {\n if (!source.hasOwnProperty(key)) return;\n if (target[key] === null || target[key] === undefined) {\n target[key] = source[key];\n } else if (typeof source[key] === 'object' && typeof target[key] === 'object') {\n // property is an object, recursively add it's field over... #1373\n Utils.defaults(target[key], source[key]);\n }\n }\n });\n\n return target;\n }\n\n /**\n * Compare two objects for equality (shallow comparison).\n * Checks if objects have the same fields and values at one level deep.\n *\n * @param a first object to compare\n * @param b second object to compare\n * @returns true if objects have the same values\n *\n * @example\n * Utils.same({x: 1, y: 2}, {x: 1, y: 2}); // true\n * Utils.same({x: 1}, {x: 1, y: 2}); // false\n */\n static same(a: unknown, b: unknown): boolean {\n if (typeof a !== 'object') return a == b;\n if (typeof a !== typeof b) return false;\n // else we have object, check just 1 level deep for being same things...\n if (Object.keys(a).length !== Object.keys(b).length) return false;\n for (const key in a) {\n if (a[key] !== b[key]) return false;\n }\n return true;\n }\n\n /**\n * Copy position and size properties from one widget to another.\n * Copies x, y, w, h and optionally min/max constraints.\n *\n * @param a target widget to copy to\n * @param b source widget to copy from\n * @param doMinMax if true, also copy min/max width/height constraints\n * @returns the target widget (a)\n *\n * @example\n * Utils.copyPos(widget1, widget2); // Copy position/size\n * Utils.copyPos(widget1, widget2, true); // Also copy constraints\n */\n static copyPos(a: GridStackWidget, b: GridStackWidget, doMinMax = false): GridStackWidget {\n if (b.x !== undefined) a.x = b.x;\n if (b.y !== undefined) a.y = b.y;\n if (b.w !== undefined) a.w = b.w;\n if (b.h !== undefined) a.h = b.h;\n if (doMinMax) {\n if (b.minW) a.minW = b.minW;\n if (b.minH) a.minH = b.minH;\n if (b.maxW) a.maxW = b.maxW;\n if (b.maxH) a.maxH = b.maxH;\n }\n return a;\n }\n\n /** true if a and b has same size & position */\n static samePos(a: GridStackPosition, b: GridStackPosition): boolean {\n return a && b && a.x === b.x && a.y === b.y && (a.w || 1) === (b.w || 1) && (a.h || 1) === (b.h || 1);\n }\n\n /** given a node, makes sure it's min/max are valid */\n static sanitizeMinMax(node: GridStackNode) {\n // remove 0, undefine, null\n if (!node.minW) { delete node.minW; }\n if (!node.minH) { delete node.minH; }\n if (!node.maxW) { delete node.maxW; }\n if (!node.maxH) { delete node.maxH; }\n }\n\n /** removes field from the first object if same as the second objects (like diffing) and internal '_' for saving */\n static removeInternalAndSame(a: unknown, b: unknown):void {\n if (typeof a !== 'object' || typeof b !== 'object') return;\n // skip arrays as we don't know how to hydrate them (unlike object spread operator)\n if (Array.isArray(a) || Array.isArray(b)) return;\n for (let key in a) {\n const aVal = a[key];\n const bVal = b[key];\n if (key[0] === '_' || aVal === bVal) {\n delete a[key]\n } else if (aVal && typeof aVal === 'object' && bVal !== undefined) {\n Utils.removeInternalAndSame(aVal, bVal);\n if (!Object.keys(aVal).length) { delete a[key] }\n }\n }\n }\n\n /** removes internal fields '_' and default values for saving */\n static removeInternalForSave(n: GridStackNode, removeEl = true): void {\n for (let key in n) { if (key[0] === '_' || n[key] === null || n[key] === undefined ) delete n[key]; }\n delete n.grid;\n if (removeEl) delete n.el;\n // delete default values (will be re-created on read)\n if (!n.autoPosition) delete n.autoPosition;\n if (!n.noResize) delete n.noResize;\n if (!n.noMove) delete n.noMove;\n if (!n.locked) delete n.locked;\n if (n.w === 1 || n.w === n.minW) delete n.w;\n if (n.h === 1 || n.h === n.minH) delete n.h;\n }\n\n /** return the closest parent (or itself) matching the given class */\n // static closestUpByClass(el: HTMLElement, name: string): HTMLElement {\n // while (el) {\n // if (el.classList.contains(name)) return el;\n // el = el.parentElement\n // }\n // return null;\n // }\n\n /** delay calling the given function for given delay, preventing new calls from happening while waiting */\n static throttle(func: () => void, delay: number): () => void {\n let isWaiting = false;\n return (...args) => {\n if (!isWaiting) {\n isWaiting = true;\n setTimeout(() => { func(...args); isWaiting = false; }, delay);\n }\n }\n }\n\n static removePositioningStyles(el: HTMLElement): void {\n const style = el.style;\n if (style.position) {\n style.removeProperty('position');\n }\n if (style.left) {\n style.removeProperty('left');\n }\n if (style.top) {\n style.removeProperty('top');\n }\n if (style.width) {\n style.removeProperty('width');\n }\n if (style.height) {\n style.removeProperty('height');\n }\n }\n\n /** @internal returns the passed element if vertically scrollable, else the closest parent that will, up to the entire document scrolling element */\n static getScrollElement(el?: HTMLElement): HTMLElement {\n if (!el) return document.scrollingElement as HTMLElement || document.documentElement; // IE support\n const overflowY = getComputedStyle(el).overflowY;\n if ((overflowY === 'auto' || overflowY === 'scroll') && el.scrollHeight > el.clientHeight) {\n return el;\n } else {\n return Utils.getScrollElement(el.parentElement);\n }\n }\n\n /**\n * @internal Function used to scroll the page.\n *\n * @param event `MouseEvent` that triggers the resize\n * @param el `HTMLElement` that's being resized\n * @param distance Distance from the V edges to start scrolling\n */\n static updateScrollResize(event: MouseEvent, el: HTMLElement, distance: number): void {\n const scrollEl = Utils.getScrollElement(el);\n const height = scrollEl.clientHeight;\n // #1727 event.clientY is relative to viewport, so must compare this against position of scrollEl getBoundingClientRect().top\n // #1745 Special situation if scrollEl is document 'html': here browser spec states that\n // clientHeight is height of viewport, but getBoundingClientRect() is rectangle of html element;\n // this discrepancy arises because in reality scrollbar is attached to viewport, not html element itself.\n const offsetTop = (scrollEl === Utils.getScrollElement()) ? 0 : scrollEl.getBoundingClientRect().top;\n const pointerPosY = event.clientY - offsetTop;\n const top = pointerPosY < distance;\n const bottom = pointerPosY > height - distance;\n\n if (top) {\n // This also can be done with a timeout to keep scrolling while the mouse is\n // in the scrolling zone. (will have smoother behavior)\n scrollEl.scrollBy({ behavior: 'smooth', top: pointerPosY - distance});\n } else if (bottom) {\n scrollEl.scrollBy({ behavior: 'smooth', top: distance - (height - pointerPosY)});\n }\n }\n\n /** single level clone, returning a new object with same top fields. This will share sub objects and arrays */\n static clone(obj: T): T {\n if (obj === null || obj === undefined || typeof(obj) !== 'object') {\n return obj;\n }\n // return Object.assign({}, obj);\n if (obj instanceof Array) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return [...obj] as any;\n }\n return {...obj};\n }\n\n /**\n * Recursive clone version that returns a full copy, checking for nested objects and arrays ONLY.\n * Note: this will use as-is any key starting with double __ (and not copy inside) some lib have circular dependencies.\n */\n static cloneDeep(obj: T): T {\n // list of fields we will skip during cloneDeep (nested objects, other internal)\n const skipFields = ['parentGrid', 'el', 'grid', 'subGrid', 'engine'];\n // return JSON.parse(JSON.stringify(obj)); // doesn't work with date format ?\n const ret = Utils.clone(obj);\n for (const key in ret) {\n // NOTE: we don't support function/circular dependencies so skip those properties for now...\n if (ret.hasOwnProperty(key) && typeof(ret[key]) === 'object' && key.substring(0, 2) !== '__' && !skipFields.find(k => k === key)) {\n ret[key] = Utils.cloneDeep(obj[key]);\n }\n }\n return ret;\n }\n\n /** deep clone the given HTML node, removing teh unique id field */\n public static cloneNode(el: HTMLElement): HTMLElement {\n const node = el.cloneNode(true) as HTMLElement;\n node.removeAttribute('id');\n return node;\n }\n\n public static appendTo(el: HTMLElement, parent: string | HTMLElement): void {\n let parentNode: HTMLElement;\n if (typeof parent === 'string') {\n parentNode = Utils.getElement(parent);\n } else {\n parentNode = parent;\n }\n if (parentNode) {\n parentNode.appendChild(el);\n }\n }\n\n // public static setPositionRelative(el: HTMLElement): void {\n // if (!(/^(?:r|a|f)/).test(getComputedStyle(el).position)) {\n // el.style.position = \"relative\";\n // }\n // }\n\n public static addElStyles(el: HTMLElement, styles: { [prop: string]: string | string[] }): void {\n if (styles instanceof Object) {\n for (const s in styles) {\n if (styles.hasOwnProperty(s)) {\n if (Array.isArray(styles[s])) {\n // support fallback value\n (styles[s] as string[]).forEach(val => {\n el.style[s] = val;\n });\n } else {\n el.style[s] = styles[s];\n }\n }\n }\n }\n }\n\n public static initEvent(e: DragEvent | MouseEvent, info: { type: string; target?: EventTarget }): T {\n const evt = { type: info.type };\n const obj = {\n button: 0,\n which: 0,\n buttons: 1,\n bubbles: true,\n cancelable: true,\n target: info.target ? info.target : e.target\n };\n ['altKey','ctrlKey','metaKey','shiftKey'].forEach(p => evt[p] = e[p]); // keys\n ['pageX','pageY','clientX','clientY','screenX','screenY'].forEach(p => evt[p] = e[p]); // point info\n return {...evt, ...obj} as unknown as T;\n }\n\n /** copies the MouseEvent (or convert Touch) properties and sends it as another event to the given target */\n public static simulateMouseEvent(e: MouseEvent | Touch, simulatedType: string, target?: EventTarget): void {\n const me = e as MouseEvent;\n const simulatedEvent = new MouseEvent(simulatedType, {\n bubbles: true,\n composed: true,\n cancelable: true,\n view: window,\n detail: 1,\n screenX: e.screenX,\n screenY: e.screenY,\n clientX: e.clientX,\n clientY: e.clientY,\n ctrlKey: me.ctrlKey??false,\n altKey: me.altKey??false,\n shiftKey: me.shiftKey??false,\n metaKey: me.metaKey??false,\n button: 0,\n relatedTarget: e.target\n });\n\n (target || e.target).dispatchEvent(simulatedEvent);\n }\n\n /**\n * defines an element that is used to get the offset and scale from grid transforms\n * returns the scale and offsets from said element\n */\n public static getValuesFromTransformedElement(parent: HTMLElement): DragTransform {\n const transformReference = document.createElement('div');\n Utils.addElStyles(transformReference, {\n opacity: '0',\n position: 'fixed',\n top: 0 + 'px',\n left: 0 + 'px',\n width: '1px',\n height: '1px',\n zIndex: '-999999',\n });\n parent.appendChild(transformReference);\n const transformValues = transformReference.getBoundingClientRect();\n parent.removeChild(transformReference);\n transformReference.remove();\n return {\n xScale: 1 / transformValues.width,\n yScale: 1 / transformValues.height,\n xOffset: transformValues.left,\n yOffset: transformValues.top,\n }\n }\n\n /** swap the given object 2 field values */\n public static swap(o: unknown, a: string, b: string): void {\n if (!o) return;\n const tmp = o[a]; o[a] = o[b]; o[b] = tmp;\n }\n\n /** returns true if event is inside the given element rectangle */\n // Note: Safari Mac has null event.relatedTarget which causes #1684 so check if DragEvent is inside the coordinates instead\n // Utils.el.contains(event.relatedTarget as HTMLElement)\n // public static inside(e: MouseEvent, el: HTMLElement): boolean {\n // // srcElement, toElement, target: all set to placeholder when leaving simple grid, so we can't use that (Chrome)\n // const target: HTMLElement = e.relatedTarget || (e as any).fromElement;\n // if (!target) {\n // const { bottom, left, right, top } = el.getBoundingClientRect();\n // return (e.x < right && e.x > left && e.y < bottom && e.y > top);\n // }\n // return el.contains(target);\n // }\n\n /** true if the item can be rotated (checking for prop, not space available) */\n public static canBeRotated(n: GridStackNode): boolean {\n return !(!n || n.w === n.h || n.locked || n.noResize || n.grid?.opts.disableResize || (n.minW && n.minW === n.maxW) || (n.minH && n.minH === n.maxH));\n }\n}","/**\n * gridstack-engine.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\n\nimport { Utils } from './utils';\nimport { GridStackNode, ColumnOptions, GridStackPosition, GridStackMoveOpts, SaveFcn, CompactOptions } from './types';\n\n/** callback to update the DOM attributes since this class is generic (no HTML or other info) for items that changed - see _notify() */\ntype OnChangeCB = (nodes: GridStackNode[]) => void;\n\n/** options used during creation - similar to GridStackOptions */\nexport interface GridStackEngineOptions {\n column?: number;\n maxRow?: number;\n float?: boolean;\n nodes?: GridStackNode[];\n onChange?: OnChangeCB;\n}\n\n/**\n * Defines the GridStack engine that handles all grid layout calculations and node positioning.\n * This is the core engine that performs grid manipulation without any DOM operations.\n *\n * The engine manages:\n * - Node positioning and collision detection\n * - Layout algorithms (compact, float, etc.)\n * - Grid resizing and column changes\n * - Widget movement and resizing logic\n *\n * NOTE: Values should not be modified directly - use the main GridStack API instead\n * to ensure proper DOM updates and event triggers.\n */\nexport class GridStackEngine {\n public column: number;\n public maxRow: number;\n public nodes: GridStackNode[];\n public addedNodes: GridStackNode[] = [];\n public removedNodes: GridStackNode[] = [];\n public batchMode: boolean;\n public defaultColumn = 12;\n /** @internal callback to update the DOM attributes */\n protected onChange: OnChangeCB;\n /** @internal */\n protected _float: boolean;\n /** @internal */\n protected _prevFloat: boolean;\n /** @internal cached layouts of difference column count so we can restore back (eg 12 -> 1 -> 12) */\n protected _layouts?: GridStackNode[][]; // maps column # to array of values nodes\n /** @internal set during loading (which is sorted) so item gets added AFTER collision nodes */\n public _loading?: boolean\n /** @internal true while we are resizing widgets during column resize to skip certain parts */\n protected _inColumnResize?: boolean;\n /** true when grid.load() already cached the layout and can skip out of bound caching info */\n public skipCacheUpdate?: boolean;\n /** @internal true if we have some items locked */\n protected _hasLocked: boolean;\n /** @internal unique global internal _id counter */\n public static _idSeq = 0;\n\n public constructor(opts: GridStackEngineOptions = {}) {\n this.column = opts.column || this.defaultColumn;\n if (this.column > this.defaultColumn) this.defaultColumn = this.column;\n this.maxRow = opts.maxRow;\n this._float = opts.float;\n this.nodes = opts.nodes || [];\n this.onChange = opts.onChange;\n }\n\n /**\n * Enable/disable batch mode for multiple operations to optimize performance.\n * When enabled, layout updates are deferred until batch mode is disabled.\n *\n * @param flag true to enable batch mode, false to disable and apply changes\n * @param doPack if true (default), pack/compact nodes when disabling batch mode\n * @returns the engine instance for chaining\n *\n * @example\n * // Start batch mode for multiple operations\n * engine.batchUpdate(true);\n * engine.addNode(node1);\n * engine.addNode(node2);\n * engine.batchUpdate(false); // Apply all changes at once\n */\n public batchUpdate(flag = true, doPack = true): GridStackEngine {\n if (!!this.batchMode === flag) return this;\n this.batchMode = flag;\n if (flag) {\n this._prevFloat = this._float;\n this._float = true; // let things go anywhere for now... will restore and possibly reposition later\n this.cleanNodes();\n this.saveInitial(); // since begin update (which is called multiple times) won't do this\n } else {\n this._float = this._prevFloat;\n delete this._prevFloat;\n if (doPack) this._packNodes();\n this._notify();\n }\n return this;\n }\n\n // use entire row for hitting area (will use bottom reverse sorted first) if we not actively moving DOWN and didn't already skip\n protected _useEntireRowArea(node: GridStackNode, nn: GridStackPosition): boolean {\n return (!this.float || this.batchMode && !this._prevFloat) && !this._hasLocked && (!node._moving || node._skipDown || nn.y <= node.y);\n }\n\n /** @internal fix collision on given 'node', going to given new location 'nn', with optional 'collide' node already found.\n * return true if we moved. */\n protected _fixCollisions(node: GridStackNode, nn = node, collide?: GridStackNode, opt: GridStackMoveOpts = {}): boolean {\n this.sortNodes(-1); // from last to first, so recursive collision move items in the right order\n\n collide = collide || this.collide(node, nn); // REAL area collide for swap and skip if none...\n if (!collide) return false;\n\n // swap check: if we're actively moving in gravity mode, see if we collide with an object the same size\n if (node._moving && !opt.nested && !this.float) {\n if (this.swap(node, collide)) return true;\n }\n\n // during while() collisions MAKE SURE to check entire row so larger items don't leap frog small ones (push them all down starting last in grid)\n let area = nn;\n if (!this._loading && this._useEntireRowArea(node, nn)) {\n area = {x: 0, w: this.column, y: nn.y, h: nn.h};\n collide = this.collide(node, area, opt.skip); // force new hit\n }\n\n let didMove = false;\n const newOpt: GridStackMoveOpts = {nested: true, pack: false};\n let counter = 0;\n while (collide = collide || this.collide(node, area, opt.skip)) { // could collide with more than 1 item... so repeat for each\n if (counter++ > this.nodes.length * 2) {\n throw new Error(\"Infinite collide check\");\n }\n let moved: boolean;\n // if colliding with a locked item OR loading (move after) OR moving down with top gravity (and collide could move up) -> skip past the collide,\n // but remember that skip down so we only do this once (and push others otherwise).\n if (collide.locked || this._loading || node._moving && !node._skipDown && nn.y > node.y && !this.float &&\n // can take space we had, or before where we're going\n (!this.collide(collide, {...collide, y: node.y}, node) || !this.collide(collide, {...collide, y: nn.y - collide.h}, node))) {\n\n node._skipDown = (node._skipDown || nn.y > node.y);\n const newNN = {...nn, y: collide.y + collide.h, ...newOpt};\n // pretent we moved to where we are now so we can continue any collision checks #2492\n moved = this._loading && Utils.samePos(node, newNN) ? true : this.moveNode(node, newNN);\n\n if ((collide.locked || this._loading) && moved) {\n Utils.copyPos(nn, node); // moving after lock become our new desired location\n } else if (!collide.locked && moved && opt.pack) {\n // we moved after and will pack: do it now and keep the original drop location, but past the old collide to see what else we might push way\n this._packNodes();\n nn.y = collide.y + collide.h;\n Utils.copyPos(node, nn);\n }\n didMove = didMove || moved;\n } else {\n // move collide down *after* where we will be, ignoring where we are now (don't collide with us)\n moved = this.moveNode(collide, {...collide, y: nn.y + nn.h, skip: node, ...newOpt});\n }\n\n if (!moved) return didMove; // break inf loop if we couldn't move after all (ex: maxRow, fixed)\n\n collide = undefined;\n }\n return didMove;\n }\n\n /**\n * Return the first node that intercepts/collides with the given node or area.\n * Used for collision detection during drag and drop operations.\n *\n * @param skip the node to skip in collision detection (usually the node being moved)\n * @param area the area to check for collisions (defaults to skip node's area)\n * @param skip2 optional second node to skip in collision detection\n * @returns the first colliding node, or undefined if no collision\n *\n * @example\n * const colliding = engine.collide(draggedNode, {x: 2, y: 1, w: 2, h: 1});\n * if (colliding) {\n * console.log('Would collide with:', colliding.id);\n * }\n */\n public collide(skip: GridStackNode, area = skip, skip2?: GridStackNode): GridStackNode | undefined {\n const skipId = skip._id;\n const skip2Id = skip2?._id;\n return this.nodes.find(n => n._id !== skipId && n._id !== skip2Id && Utils.isIntercepted(n, area));\n }\n /**\n * Return all nodes that intercept/collide with the given node or area.\n * Similar to collide() but returns all colliding nodes instead of just the first.\n *\n * @param skip the node to skip in collision detection\n * @param area the area to check for collisions (defaults to skip node's area)\n * @param skip2 optional second node to skip in collision detection\n * @returns array of all colliding nodes\n *\n * @example\n * const allCollisions = engine.collideAll(draggedNode);\n * console.log('Colliding with', allCollisions.length, 'nodes');\n */\n public collideAll(skip: GridStackNode, area = skip, skip2?: GridStackNode): GridStackNode[] {\n const skipId = skip._id;\n const skip2Id = skip2?._id;\n return this.nodes.filter(n => n._id !== skipId && n._id !== skip2Id && Utils.isIntercepted(n, area));\n }\n\n /** does a pixel coverage collision based on where we started, returning the node that has the most coverage that is >50% mid line */\n protected directionCollideCoverage(node: GridStackNode, o: GridStackMoveOpts, collides: GridStackNode[]): GridStackNode | undefined {\n if (!o.rect || !node._rect) return;\n const r0 = node._rect; // where started\n const r = {...o.rect}; // where we are\n\n // update dragged rect to show where it's coming from (above or below, etc...)\n if (r.y > r0.y) {\n r.h += r.y - r0.y;\n r.y = r0.y;\n } else {\n r.h += r0.y - r.y;\n }\n if (r.x > r0.x) {\n r.w += r.x - r0.x;\n r.x = r0.x;\n } else {\n r.w += r0.x - r.x;\n }\n\n let collide: GridStackNode;\n let overMax = 0.5; // need >50%\n for (let n of collides) {\n if (n.locked || !n._rect) {\n break;\n }\n const r2 = n._rect; // overlapping target\n let yOver = Number.MAX_VALUE, xOver = Number.MAX_VALUE;\n // depending on which side we started from, compute the overlap % of coverage\n // (ex: from above/below we only compute the max horizontal line coverage)\n if (r0.y < r2.y) { // from above\n yOver = ((r.y + r.h) - r2.y) / r2.h;\n } else if (r0.y + r0.h > r2.y + r2.h) { // from below\n yOver = ((r2.y + r2.h) - r.y) / r2.h;\n }\n if (r0.x < r2.x) { // from the left\n xOver = ((r.x + r.w) - r2.x) / r2.w;\n } else if (r0.x + r0.w > r2.x + r2.w) { // from the right\n xOver = ((r2.x + r2.w) - r.x) / r2.w;\n }\n const over = Math.min(xOver, yOver);\n if (over > overMax) {\n overMax = over;\n collide = n;\n }\n }\n o.collide = collide; // save it so we don't have to find it again\n return collide;\n }\n\n /** does a pixel coverage returning the node that has the most coverage by area */\n /*\n protected collideCoverage(r: GridStackPosition, collides: GridStackNode[]): {collide: GridStackNode, over: number} {\n const collide: GridStackNode;\n const overMax = 0;\n collides.forEach(n => {\n if (n.locked || !n._rect) return;\n const over = Utils.areaIntercept(r, n._rect);\n if (over > overMax) {\n overMax = over;\n collide = n;\n }\n });\n return {collide, over: overMax};\n }\n */\n\n /**\n * Cache the pixel rectangles for all nodes used for collision detection during drag operations.\n * This optimization converts grid coordinates to pixel coordinates for faster collision detection.\n *\n * @param w width of a single grid cell in pixels\n * @param h height of a single grid cell in pixels\n * @param top top margin/padding in pixels\n * @param right right margin/padding in pixels\n * @param bottom bottom margin/padding in pixels\n * @param left left margin/padding in pixels\n * @returns the engine instance for chaining\n *\n * @internal This is typically called by GridStack during resize events\n */\n public cacheRects(w: number, h: number, top: number, right: number, bottom: number, left: number): GridStackEngine\n {\n this.nodes.forEach(n =>\n n._rect = {\n y: n.y * h + top,\n x: n.x * w + left,\n w: n.w * w - left - right,\n h: n.h * h - top - bottom\n }\n );\n return this;\n }\n\n /**\n * Attempt to swap the positions of two nodes if they meet swapping criteria.\n * Nodes can swap if they are the same size or in the same column/row, not locked, and touching.\n *\n * @param a first node to swap\n * @param b second node to swap\n * @returns true if swap was successful, false if not possible, undefined if not applicable\n *\n * @example\n * const swapped = engine.swap(nodeA, nodeB);\n * if (swapped) {\n * console.log('Nodes swapped successfully');\n * }\n */\n public swap(a: GridStackNode, b: GridStackNode): boolean | undefined {\n if (!b || b.locked || !a || a.locked) return false;\n\n function _doSwap(): true { // assumes a is before b IFF they have different height (put after rather than exact swap)\n const x = b.x, y = b.y;\n b.x = a.x; b.y = a.y; // b -> a position\n if (a.h != b.h) {\n a.x = x; a.y = b.y + b.h; // a -> goes after b\n } else if (a.w != b.w) {\n a.x = b.x + b.w; a.y = y; // a -> goes after b\n } else {\n a.x = x; a.y = y; // a -> old b position\n }\n a._dirty = b._dirty = true;\n return true;\n }\n let touching: boolean; // remember if we called it (vs undefined)\n\n // same size and same row or column, and touching\n if (a.w === b.w && a.h === b.h && (a.x === b.x || a.y === b.y) && (touching = Utils.isTouching(a, b)))\n return _doSwap();\n if (touching === false) return; // IFF ran test and fail, bail out\n\n // check for taking same columns (but different height) and touching\n if (a.w === b.w && a.x === b.x && (touching || (touching = Utils.isTouching(a, b)))) {\n if (b.y < a.y) { const t = a; a = b; b = t; } // swap a <-> b vars so a is first\n return _doSwap();\n }\n if (touching === false) return;\n\n // check if taking same row (but different width) and touching\n if (a.h === b.h && a.y === b.y && (touching || (touching = Utils.isTouching(a, b)))) {\n if (b.x < a.x) { const t = a; a = b; b = t; } // swap a <-> b vars so a is first\n return _doSwap();\n }\n return false;\n }\n\n /**\n * Check if the specified rectangular area is empty (no nodes occupy any part of it).\n *\n * @param x the x coordinate (column) of the area to check\n * @param y the y coordinate (row) of the area to check\n * @param w the width in columns of the area to check\n * @param h the height in rows of the area to check\n * @returns true if the area is completely empty, false if any node overlaps\n *\n * @example\n * if (engine.isAreaEmpty(2, 1, 3, 2)) {\n * console.log('Area is available for placement');\n * }\n */\n public isAreaEmpty(x: number, y: number, w: number, h: number): boolean {\n const nn: GridStackNode = {x: x || 0, y: y || 0, w: w || 1, h: h || 1};\n return !this.collide(nn);\n }\n\n /**\n * Re-layout grid items to reclaim any empty space.\n * This optimizes the grid layout by moving items to fill gaps.\n *\n * @param layout layout algorithm to use:\n * - 'compact' (default): find truly empty spaces, may reorder items\n * - 'list': keep the sort order exactly the same, move items up sequentially\n * @param doSort if true (default), sort nodes by position before compacting\n * @returns the engine instance for chaining\n *\n * @example\n * // Compact to fill empty spaces\n * engine.compact();\n *\n * // Compact preserving item order\n * engine.compact('list');\n */\n public compact(layout: CompactOptions = 'compact', doSort = true): GridStackEngine {\n if (this.nodes.length === 0) return this;\n if (doSort) this.sortNodes();\n const wasBatch = this.batchMode;\n if (!wasBatch) this.batchUpdate();\n const wasColumnResize = this._inColumnResize;\n if (!wasColumnResize) this._inColumnResize = true; // faster addNode()\n const copyNodes = this.nodes;\n this.nodes = []; // pretend we have no nodes to conflict layout to start with...\n copyNodes.forEach((n, index, list) => {\n let after: GridStackNode;\n if (!n.locked) {\n n.autoPosition = true;\n if (layout === 'list' && index) after = list[index - 1];\n }\n this.addNode(n, false, after); // 'false' for add event trigger\n });\n if (!wasColumnResize) delete this._inColumnResize;\n if (!wasBatch) this.batchUpdate(false);\n return this;\n }\n\n /**\n * Enable/disable floating widgets (default: `false`).\n * When floating is enabled, widgets can move up to fill empty spaces.\n * See [example](http://gridstackjs.com/demo/float.html)\n *\n * @param val true to enable floating, false to disable\n *\n * @example\n * engine.float = true; // Enable floating\n * engine.float = false; // Disable floating (default)\n */\n public set float(val: boolean) {\n if (this._float === val) return;\n this._float = val || false;\n if (!val) {\n this._packNodes()._notify();\n }\n }\n\n /**\n * Get the current floating mode setting.\n *\n * @returns true if floating is enabled, false otherwise\n *\n * @example\n * const isFloating = engine.float;\n * console.log('Floating enabled:', isFloating);\n */\n public get float(): boolean { return this._float || false; }\n\n /**\n * Sort the nodes array from first to last, or reverse.\n * This is called during collision/placement operations to enforce a specific order.\n *\n * @param dir sort direction: 1 for ascending (first to last), -1 for descending (last to first)\n * @returns the engine instance for chaining\n *\n * @example\n * engine.sortNodes(); // Sort ascending (default)\n * engine.sortNodes(-1); // Sort descending\n */\n public sortNodes(dir: 1 | -1 = 1): GridStackEngine {\n this.nodes = Utils.sort(this.nodes, dir);\n return this;\n }\n\n /** @internal called to top gravity pack the items back OR revert back to original Y positions when floating */\n protected _packNodes(): GridStackEngine {\n if (this.batchMode) { return this; }\n this.sortNodes(); // first to last\n\n if (this.float) {\n // restore original Y pos\n this.nodes.forEach(n => {\n if (n._updating || n._orig === undefined || n.y === n._orig.y) return;\n let newY = n.y;\n while (newY > n._orig.y) {\n --newY;\n const collide = this.collide(n, {x: n.x, y: newY, w: n.w, h: n.h});\n if (!collide) {\n n._dirty = true;\n n.y = newY;\n }\n }\n });\n } else {\n // top gravity pack\n this.nodes.forEach((n, i) => {\n if (n.locked) return;\n while (n.y > 0) {\n const newY = i === 0 ? 0 : n.y - 1;\n const canBeMoved = i === 0 || !this.collide(n, {x: n.x, y: newY, w: n.w, h: n.h});\n if (!canBeMoved) break;\n // Note: must be dirty (from last position) for GridStack::OnChange CB to update positions\n // and move items back. The user 'change' CB should detect changes from the original\n // starting position instead.\n n._dirty = (n.y !== newY);\n n.y = newY;\n }\n });\n }\n return this;\n }\n\n /**\n * Prepare and validate a node's coordinates and values for the current grid.\n * This ensures the node has valid position, size, and properties before being added to the grid.\n *\n * @param node the node to prepare and validate\n * @param resizing if true, resize the node down if it's out of bounds; if false, move it to fit\n * @returns the prepared node with valid coordinates\n *\n * @example\n * const node = { w: 3, h: 2, content: 'Hello' };\n * const prepared = engine.prepareNode(node);\n * console.log('Node prepared at:', prepared.x, prepared.y);\n */\n public prepareNode(node: GridStackNode, resizing?: boolean): GridStackNode {\n node._id = node._id ?? GridStackEngine._idSeq++;\n\n // make sure USER supplied id are unique in our list, else assign a new one as it will create issues during load/update/etc...\n const id = node.id;\n if (id) {\n let count = 1; // append nice _n rather than some random number\n while (this.nodes.find(n => n.id === node.id && n !== node)) {\n node.id = id + '_' + (count++);\n }\n }\n\n // if we're missing position, have the grid position us automatically (before we set them to 0,0)\n if (node.x === undefined || node.y === undefined || node.x === null || node.y === null) {\n node.autoPosition = true;\n }\n\n // assign defaults for missing required fields\n const defaults: GridStackNode = { x: 0, y: 0, w: 1, h: 1};\n Utils.defaults(node, defaults);\n\n if (!node.autoPosition) { delete node.autoPosition; }\n if (!node.noResize) { delete node.noResize; }\n if (!node.noMove) { delete node.noMove; }\n Utils.sanitizeMinMax(node);\n\n // check for NaN (in case messed up strings were passed. can't do parseInt() || defaults.x above as 0 is valid #)\n if (typeof node.x == 'string') { node.x = Number(node.x); }\n if (typeof node.y == 'string') { node.y = Number(node.y); }\n if (typeof node.w == 'string') { node.w = Number(node.w); }\n if (typeof node.h == 'string') { node.h = Number(node.h); }\n if (isNaN(node.x)) { node.x = defaults.x; node.autoPosition = true; }\n if (isNaN(node.y)) { node.y = defaults.y; node.autoPosition = true; }\n if (isNaN(node.w)) { node.w = defaults.w; }\n if (isNaN(node.h)) { node.h = defaults.h; }\n\n this.nodeBoundFix(node, resizing);\n return node;\n }\n\n /**\n * Part 2 of preparing a node to fit inside the grid - validates and fixes coordinates and dimensions.\n * This ensures the node fits within grid boundaries and respects min/max constraints.\n *\n * @param node the node to validate and fix\n * @param resizing if true, resize the node to fit; if false, move the node to fit\n * @returns the engine instance for chaining\n *\n * @example\n * // Fix a node that might be out of bounds\n * engine.nodeBoundFix(node, true); // Resize to fit\n * engine.nodeBoundFix(node, false); // Move to fit\n */\n public nodeBoundFix(node: GridStackNode, resizing?: boolean): GridStackEngine {\n\n const before = node._orig || Utils.copyPos({}, node);\n\n if (node.maxW) { node.w = Math.min(node.w || 1, node.maxW); }\n if (node.maxH) { node.h = Math.min(node.h || 1, node.maxH); }\n if (node.minW) { node.w = Math.max(node.w || 1, node.minW); }\n if (node.minH) { node.h = Math.max(node.h || 1, node.minH); }\n\n // if user loaded a larger than allowed widget for current # of columns,\n // remember it's position & width so we can restore back (1 -> 12 column) #1655 #1985\n // IFF we're not in the middle of column resizing!\n const saveOrig = (node.x || 0) + (node.w || 1) > this.column;\n if (saveOrig && this.column < this.defaultColumn && !this._inColumnResize && !this.skipCacheUpdate && node._id != null && this.findCacheLayout(node, this.defaultColumn) === -1) {\n const copy = {...node}; // need _id + positions\n if (copy.autoPosition || copy.x === undefined) { delete copy.x; delete copy.y; }\n else copy.x = Math.min(this.defaultColumn - 1, copy.x);\n copy.w = Math.min(this.defaultColumn, copy.w || 1);\n this.cacheOneLayout(copy, this.defaultColumn);\n }\n\n if (node.w > this.column) {\n node.w = this.column;\n } else if (node.w < 1) {\n node.w = 1;\n }\n\n if (this.maxRow && node.h > this.maxRow) {\n node.h = this.maxRow;\n } else if (node.h < 1) {\n node.h = 1;\n }\n\n if (node.x < 0) {\n node.x = 0;\n }\n if (node.y < 0) {\n node.y = 0;\n }\n\n if (node.x + node.w > this.column) {\n if (resizing) {\n node.w = this.column - node.x;\n } else {\n node.x = this.column - node.w;\n }\n }\n if (this.maxRow && node.y + node.h > this.maxRow) {\n if (resizing) {\n node.h = this.maxRow - node.y;\n } else {\n node.y = this.maxRow - node.h;\n }\n }\n\n if (!Utils.samePos(node, before)) {\n node._dirty = true;\n }\n\n return this;\n }\n\n /**\n * Returns a list of nodes that have been modified from their original values.\n * This is used to track which nodes need DOM updates.\n *\n * @param verify if true, performs additional verification by comparing current vs original positions\n * @returns array of nodes that have been modified\n *\n * @example\n * const changed = engine.getDirtyNodes();\n * console.log('Modified nodes:', changed.length);\n *\n * // Get verified dirty nodes\n * const verified = engine.getDirtyNodes(true);\n */\n public getDirtyNodes(verify?: boolean): GridStackNode[] {\n // compare original x,y,w,h instead as _dirty can be a temporary state\n if (verify) {\n return this.nodes.filter(n => n._dirty && !Utils.samePos(n, n._orig));\n }\n return this.nodes.filter(n => n._dirty);\n }\n\n /** @internal call this to call onChange callback with dirty nodes so DOM can be updated */\n protected _notify(removedNodes?: GridStackNode[]): GridStackEngine {\n if (this.batchMode || !this.onChange) return this;\n const dirtyNodes = (removedNodes || []).concat(this.getDirtyNodes());\n this.onChange(dirtyNodes);\n return this;\n }\n\n /**\n * Clean all dirty and last tried information from nodes.\n * This resets the dirty state tracking for all nodes.\n *\n * @returns the engine instance for chaining\n *\n * @internal\n */\n public cleanNodes(): GridStackEngine {\n if (this.batchMode) return this;\n this.nodes.forEach(n => {\n delete n._dirty;\n delete n._lastTried;\n });\n return this;\n }\n\n /**\n * Save the initial position/size of all nodes to track real dirty state.\n * This creates a snapshot of current positions that can be restored later.\n *\n * Note: Should be called right after change events and before move/resize operations.\n *\n * @returns the engine instance for chaining\n *\n * @internal\n */\n public saveInitial(): GridStackEngine {\n this.nodes.forEach(n => {\n n._orig = Utils.copyPos({}, n);\n delete n._dirty;\n });\n this._hasLocked = this.nodes.some(n => n.locked);\n return this;\n }\n\n /**\n * Restore all nodes back to their initial values.\n * This is typically called when canceling an operation (e.g., Esc key during drag).\n *\n * @returns the engine instance for chaining\n *\n * @internal\n */\n public restoreInitial(): GridStackEngine {\n this.nodes.forEach(n => {\n if (!n._orig || Utils.samePos(n, n._orig)) return;\n Utils.copyPos(n, n._orig);\n n._dirty = true;\n });\n this._notify();\n return this;\n }\n\n /**\n * Find the first available empty spot for the given node dimensions.\n * Updates the node's x,y attributes with the found position.\n *\n * @param node the node to find a position for (w,h must be set)\n * @param nodeList optional list of nodes to check against (defaults to engine nodes)\n * @param column optional column count (defaults to engine column count)\n * @param after optional node to start search after (maintains order)\n * @returns true if an empty position was found and node was updated\n *\n * @example\n * const node = { w: 2, h: 1 };\n * if (engine.findEmptyPosition(node)) {\n * console.log('Found position at:', node.x, node.y);\n * }\n */\n public findEmptyPosition(node: GridStackNode, nodeList = this.nodes, column = this.column, after?: GridStackNode): boolean {\n const start = after ? after.y * column + (after.x + after.w) : 0;\n let found = false;\n for (let i = start; !found; ++i) {\n const x = i % column;\n const y = Math.floor(i / column);\n if (x + node.w > column) {\n continue;\n }\n const box = {x, y, w: node.w, h: node.h};\n if (!nodeList.find(n => Utils.isIntercepted(box, n))) {\n if (node.x !== x || node.y !== y) node._dirty = true;\n node.x = x;\n node.y = y;\n delete node.autoPosition;\n found = true;\n }\n }\n return found;\n }\n\n /**\n * Add the given node to the grid, handling collision detection and re-packing.\n * This is the main method for adding new widgets to the engine.\n *\n * @param node the node to add to the grid\n * @param triggerAddEvent if true, adds node to addedNodes list for event triggering\n * @param after optional node to place this node after (for ordering)\n * @returns the added node (or existing node if duplicate)\n *\n * @example\n * const node = { x: 0, y: 0, w: 2, h: 1, content: 'Hello' };\n * const added = engine.addNode(node, true);\n */\n public addNode(node: GridStackNode, triggerAddEvent = false, after?: GridStackNode): GridStackNode {\n const dup = this.nodes.find(n => n._id === node._id);\n if (dup) return dup; // prevent inserting twice! return it instead.\n\n // skip prepareNode if we're in middle of column resize (not new) but do check for bounds!\n this._inColumnResize ? this.nodeBoundFix(node) : this.prepareNode(node);\n delete node._temporaryRemoved;\n delete node._removeDOM;\n\n let skipCollision: boolean;\n if (node.autoPosition && this.findEmptyPosition(node, this.nodes, this.column, after)) {\n delete node.autoPosition; // found our slot\n skipCollision = true;\n }\n\n this.nodes.push(node);\n if (triggerAddEvent) { this.addedNodes.push(node); }\n\n if (!skipCollision) this._fixCollisions(node);\n if (!this.batchMode) { this._packNodes()._notify(); }\n return node;\n }\n\n /**\n * Remove the given node from the grid.\n *\n * @param node the node to remove\n * @param removeDOM if true (default), marks node for DOM removal\n * @param triggerEvent if true, adds node to removedNodes list for event triggering\n * @returns the engine instance for chaining\n *\n * @example\n * engine.removeNode(node, true, true);\n */\n public removeNode(node: GridStackNode, removeDOM = true, triggerEvent = false): GridStackEngine {\n if (!this.nodes.find(n => n._id === node._id)) {\n // TEST console.log(`Error: GridStackEngine.removeNode() node._id=${node._id} not found!`)\n return this;\n }\n if (triggerEvent) { // we wait until final drop to manually track removed items (rather than during drag)\n this.removedNodes.push(node);\n }\n if (removeDOM) node._removeDOM = true; // let CB remove actual HTML (used to set _id to null, but then we loose layout info)\n // don't use 'faster' .splice(findIndex(),1) in case node isn't in our list, or in multiple times.\n this.nodes = this.nodes.filter(n => n._id !== node._id);\n if (!node._isAboutToRemove) this._packNodes(); // if dragged out, no need to relayout as already done...\n this._notify([node]);\n return this;\n }\n\n /**\n * Remove all nodes from the grid.\n *\n * @param removeDOM if true (default), marks all nodes for DOM removal\n * @param triggerEvent if true (default), triggers removal events\n * @returns the engine instance for chaining\n *\n * @example\n * engine.removeAll(); // Remove all nodes\n */\n public removeAll(removeDOM = true, triggerEvent = true): GridStackEngine {\n delete this._layouts;\n if (!this.nodes.length) return this;\n removeDOM && this.nodes.forEach(n => n._removeDOM = true); // let CB remove actual HTML (used to set _id to null, but then we loose layout info)\n const removedNodes = this.nodes;\n this.removedNodes = triggerEvent ? removedNodes : [];\n this.nodes = [];\n return this._notify(removedNodes);\n }\n\n /**\n * Check if a node can be moved to a new position, considering layout constraints.\n * This is a safer version of moveNode() that validates the move first.\n *\n * For complex cases (like maxRow constraints), it simulates the move in a clone first,\n * then applies the changes only if they meet all specifications.\n *\n * @param node the node to move\n * @param o move options including target position\n * @returns true if the node was successfully moved\n *\n * @example\n * const canMove = engine.moveNodeCheck(node, { x: 2, y: 1 });\n * if (canMove) {\n * console.log('Node moved successfully');\n * }\n */\n public moveNodeCheck(node: GridStackNode, o: GridStackMoveOpts): boolean {\n // if (node.locked) return false;\n if (!this.changedPosConstrain(node, o)) return false;\n o.pack = true;\n\n // simpler case: move item directly...\n if (!this.maxRow) {\n return this.moveNode(node, o);\n }\n\n // complex case: create a clone with NO maxRow (will check for out of bounds at the end)\n let clonedNode: GridStackNode;\n const clone = new GridStackEngine({\n column: this.column,\n float: this.float,\n nodes: this.nodes.map(n => {\n if (n._id === node._id) {\n clonedNode = {...n};\n return clonedNode;\n }\n return {...n};\n })\n });\n if (!clonedNode) return false;\n\n // check if we're covering 50% collision and could move, while still being under maxRow or at least not making it worse\n // (case where widget was somehow added past our max #2449)\n const canMove = clone.moveNode(clonedNode, o) && clone.getRow() <= Math.max(this.getRow(), this.maxRow);\n // else check if we can force a swap (float=true, or different shapes) on non-resize\n if (!canMove && !o.resizing && o.collide) {\n const collide = o.collide.el.gridstackNode; // find the source node the clone collided with at 50%\n if (this.swap(node, collide)) { // swaps and mark dirty\n this._notify();\n return true;\n }\n }\n if (!canMove) return false;\n\n // if clone was able to move, copy those mods over to us now instead of caller trying to do this all over!\n // Note: we can't use the list directly as elements and other parts point to actual node, so copy content\n clone.nodes.filter(n => n._dirty).forEach(c => {\n const n = this.nodes.find(a => a._id === c._id);\n if (!n) return;\n Utils.copyPos(n, c);\n n._dirty = true;\n });\n this._notify();\n return true;\n }\n\n /** return true if can fit in grid height constrain only (always true if no maxRow) */\n public willItFit(node: GridStackNode): boolean {\n delete node._willFitPos;\n if (!this.maxRow) return true;\n // create a clone with NO maxRow and check if still within size\n const clone = new GridStackEngine({\n column: this.column,\n float: this.float,\n nodes: this.nodes.map(n => {return {...n}})\n });\n const n = {...node}; // clone node so we don't mod any settings on it but have full autoPosition and min/max as well! #1687\n this.cleanupNode(n);\n delete n.el; delete n._id; delete n.content; delete n.grid;\n clone.addNode(n);\n if (clone.getRow() <= this.maxRow) {\n node._willFitPos = Utils.copyPos({}, n);\n return true;\n }\n return false;\n }\n\n /** true if x,y or w,h are different after clamping to min/max */\n public changedPosConstrain(node: GridStackNode, p: GridStackPosition): boolean {\n // first make sure w,h are set for caller\n p.w = p.w || node.w;\n p.h = p.h || node.h;\n if (node.x !== p.x || node.y !== p.y) return true;\n // check constrained w,h\n if (node.maxW) { p.w = Math.min(p.w, node.maxW); }\n if (node.maxH) { p.h = Math.min(p.h, node.maxH); }\n if (node.minW) { p.w = Math.max(p.w, node.minW); }\n if (node.minH) { p.h = Math.max(p.h, node.minH); }\n return (node.w !== p.w || node.h !== p.h);\n }\n\n /** return true if the passed in node was actually moved (checks for no-op and locked) */\n public moveNode(node: GridStackNode, o: GridStackMoveOpts): boolean {\n if (!node || /*node.locked ||*/ !o) return false;\n let wasUndefinedPack: boolean;\n if (o.pack === undefined && !this.batchMode) {\n wasUndefinedPack = o.pack = true;\n }\n\n // constrain the passed in values and check if we're still changing our node\n if (typeof o.x !== 'number') { o.x = node.x; }\n if (typeof o.y !== 'number') { o.y = node.y; }\n if (typeof o.w !== 'number') { o.w = node.w; }\n if (typeof o.h !== 'number') { o.h = node.h; }\n const resizing = (node.w !== o.w || node.h !== o.h);\n const nn: GridStackNode = Utils.copyPos({}, node, true); // get min/max out first, then opt positions next\n Utils.copyPos(nn, o);\n this.nodeBoundFix(nn, resizing);\n Utils.copyPos(o, nn);\n\n if (!o.forceCollide && Utils.samePos(node, o)) return false;\n const prevPos: GridStackPosition = Utils.copyPos({}, node);\n\n // check if we will need to fix collision at our new location\n const collides = this.collideAll(node, nn, o.skip);\n let needToMove = true;\n if (collides.length) {\n const activeDrag = node._moving && !o.nested;\n // check to make sure we actually collided over 50% surface area while dragging\n let collide = activeDrag ? this.directionCollideCoverage(node, o, collides) : collides[0];\n // if we're enabling creation of sub-grids on the fly, see if we're covering 80% of either one, if we didn't already do that\n if (activeDrag && collide && node.grid?.opts?.subGridDynamic && !node.grid._isTemp) {\n const over = Utils.areaIntercept(o.rect, collide._rect);\n const a1 = Utils.area(o.rect);\n const a2 = Utils.area(collide._rect);\n const perc = over / (a1 < a2 ? a1 : a2);\n if (perc > .8) {\n collide.grid.makeSubGrid(collide.el, undefined, node);\n collide = undefined;\n }\n }\n\n if (collide) {\n needToMove = !this._fixCollisions(node, nn, collide, o); // check if already moved...\n } else {\n needToMove = false; // we didn't cover >50% for a move, skip...\n if (wasUndefinedPack) delete o.pack;\n }\n }\n\n // now move (to the original ask vs the collision version which might differ) and repack things\n if (needToMove && !Utils.samePos(node, nn)) {\n node._dirty = true;\n Utils.copyPos(node, nn);\n }\n if (o.pack) {\n this._packNodes()\n ._notify();\n }\n return !Utils.samePos(node, prevPos); // pack might have moved things back\n }\n\n public getRow(): number {\n return this.nodes.reduce((row, n) => Math.max(row, n.y + n.h), 0);\n }\n\n public beginUpdate(node: GridStackNode): GridStackEngine {\n if (!node._updating) {\n node._updating = true;\n delete node._skipDown;\n if (!this.batchMode) this.saveInitial();\n }\n return this;\n }\n\n public endUpdate(): GridStackEngine {\n const n = this.nodes.find(n => n._updating);\n if (n) {\n delete n._updating;\n delete n._skipDown;\n }\n return this;\n }\n\n /** saves a copy of the largest column layout (eg 12 even when rendering 1 column) so we don't loose orig layout, unless explicity column\n * count to use is given. returning a list of widgets for serialization\n * @param saveElement if true (default), the element will be saved to GridStackWidget.el field, else it will be removed.\n * @param saveCB callback for each node -> widget, so application can insert additional data to be saved into the widget data structure.\n * @param column if provided, the grid will be saved for the given column count (IFF we have matching internal saved layout, or current layout).\n * Note: nested grids will ALWAYS save the container w to match overall layouts (parent + child) to be consistent.\n */\n public save(saveElement = true, saveCB?: SaveFcn, column?: number): GridStackNode[] {\n // use the highest layout for any saved info so we can have full detail on reload #1849\n // unless we're given a column to match (always set for nested grids)\n const len = this._layouts?.length || 0;\n let layout: GridStackNode[];\n if (len) {\n if (column) {\n if (column !== this.column) layout = this._layouts[column];\n } else if (this.column !== len - 1) {\n layout = this._layouts[len - 1];\n }\n }\n const list: GridStackNode[] = [];\n this.sortNodes();\n this.nodes.forEach(n => {\n const wl = layout?.find(l => l._id === n._id);\n // use layout info fields instead if set\n const w: GridStackNode = {...n, ...(wl || {})};\n Utils.removeInternalForSave(w, !saveElement);\n if (saveCB) saveCB(n, w);\n list.push(w);\n });\n return list;\n }\n\n /** @internal called whenever a node is added or moved - updates the cached layouts */\n public layoutsNodesChange(nodes: GridStackNode[]): GridStackEngine {\n if (!this._layouts || this._inColumnResize) return this;\n // remove smaller layouts - we will re-generate those on the fly... larger ones need to update\n this._layouts.forEach((layout, column) => {\n if (!layout || column === this.column) return this;\n if (column < this.column) {\n this._layouts[column] = undefined;\n }\n else {\n // we save the original x,y,w (h isn't cached) to see what actually changed to propagate better.\n // NOTE: we don't need to check against out of bound scaling/moving as that will be done when using those cache values. #1785\n const ratio = column / this.column;\n nodes.forEach(node => {\n if (!node._orig) return; // didn't change (newly added ?)\n const n = layout.find(l => l._id === node._id);\n if (!n) return; // no cache for new nodes. Will use those values.\n // Y changed, push down same amount\n // TODO: detect doing item 'swaps' will help instead of move (especially in 1 column mode)\n if (n.y >= 0 && node.y !== node._orig.y) {\n n.y += (node.y - node._orig.y);\n if (n.y < 0) n.y = 0;\n }\n // X changed, scale from new position\n if (node.x !== node._orig.x) {\n n.x = Math.round(node.x * ratio);\n if (n.x < 0) n.x = 0;\n }\n // width changed, scale from new width\n if (node.w !== node._orig.w) {\n n.w = Math.round(node.w * ratio);\n if (n.w < 1) n.w = 1;\n }\n // ...height always carries over from cache\n });\n }\n });\n return this;\n }\n\n /**\n * @internal Called to scale the widget width & position up/down based on the column change.\n * Note we store previous layouts (especially original ones) to make it possible to go\n * from say 12 -> 1 -> 12 and get back to where we were.\n *\n * @param prevColumn previous number of columns\n * @param column new column number\n * @param layout specify the type of re-layout that will happen (position, size, etc...).\n * Note: items will never be outside of the current column boundaries. default (moveScale). Ignored for 1 column\n */\n public columnChanged(prevColumn: number, column: number, layout: ColumnOptions = 'moveScale'): GridStackEngine {\n if (!this.nodes.length || !column || prevColumn === column) return this;\n\n // simpler shortcuts layouts\n const doCompact = layout === 'compact' || layout === 'list';\n if (doCompact) {\n this.sortNodes(1); // sort with original layout once and only once (new column will affect order otherwise)\n }\n\n // cache the current layout in case they want to go back (like 12 -> 1 -> 12) as it requires original data IFF we're sizing down (see below)\n if (column < prevColumn) this.cacheLayout(this.nodes, prevColumn);\n this.batchUpdate(); // do this EARLY as it will call saveInitial() so we can detect where we started for _dirty and collision\n let newNodes: GridStackNode[] = [];\n let nodes = doCompact ? this.nodes : Utils.sort(this.nodes, -1); // current column reverse sorting so we can insert last to front (limit collision)\n\n // see if we have cached previous layout IFF we are going up in size (restore) otherwise always\n // generate next size down from where we are (looks more natural as you gradually size down).\n if (column > prevColumn && this._layouts) {\n const cacheNodes = this._layouts[column] || [];\n // ...if not, start with the largest layout (if not already there) as down-scaling is more accurate\n // by pretending we came from that larger column by assigning those values as starting point\n const lastIndex = this._layouts.length - 1;\n if (!cacheNodes.length && prevColumn !== lastIndex && this._layouts[lastIndex]?.length) {\n prevColumn = lastIndex;\n this._layouts[lastIndex].forEach(cacheNode => {\n const n = nodes.find(n => n._id === cacheNode._id);\n if (n) {\n // still current, use cache info positions\n if (!doCompact && !cacheNode.autoPosition) {\n n.x = cacheNode.x ?? n.x;\n n.y = cacheNode.y ?? n.y;\n }\n n.w = cacheNode.w ?? n.w;\n if (cacheNode.x == undefined || cacheNode.y === undefined) n.autoPosition = true;\n }\n });\n }\n\n // if we found cache re-use those nodes that are still current\n cacheNodes.forEach(cacheNode => {\n const j = nodes.findIndex(n => n._id === cacheNode._id);\n if (j !== -1) {\n const n = nodes[j];\n // still current, use cache info positions\n if (doCompact) {\n n.w = cacheNode.w; // only w is used, and don't trim the list\n return;\n }\n if (cacheNode.autoPosition || isNaN(cacheNode.x) || isNaN(cacheNode.y)) {\n this.findEmptyPosition(cacheNode, newNodes);\n }\n if (!cacheNode.autoPosition) {\n n.x = cacheNode.x ?? n.x;\n n.y = cacheNode.y ?? n.y;\n n.w = cacheNode.w ?? n.w;\n newNodes.push(n);\n }\n nodes.splice(j, 1);\n }\n });\n }\n\n // much simpler layout that just compacts\n if (doCompact) {\n this.compact(layout, false);\n } else {\n // ...and add any extra non-cached ones\n if (nodes.length) {\n if (typeof layout === 'function') {\n layout(column, prevColumn, newNodes, nodes);\n } else {\n const ratio = (doCompact || layout === 'none') ? 1 : column / prevColumn;\n const move = (layout === 'move' || layout === 'moveScale');\n const scale = (layout === 'scale' || layout === 'moveScale');\n nodes.forEach(node => {\n // NOTE: x + w could be outside of the grid, but addNode() below will handle that\n node.x = (column === 1 ? 0 : (move ? Math.round(node.x * ratio) : Math.min(node.x, column - 1)));\n node.w = ((column === 1 || prevColumn === 1) ? 1 : scale ? (Math.round(node.w * ratio) || 1) : (Math.min(node.w, column)));\n newNodes.push(node);\n });\n nodes = [];\n }\n }\n\n // finally re-layout them in reverse order (to get correct placement)\n newNodes = Utils.sort(newNodes, -1);\n this._inColumnResize = true; // prevent cache update\n this.nodes = []; // pretend we have no nodes to start with (add() will use same structures) to simplify layout\n newNodes.forEach(node => {\n this.addNode(node, false); // 'false' for add event trigger\n delete node._orig; // make sure the commit doesn't try to restore things back to original\n });\n }\n\n this.nodes.forEach(n => delete n._orig); // clear _orig before batch=false so it doesn't handle float=true restore\n this.batchUpdate(false, !doCompact);\n delete this._inColumnResize;\n return this;\n }\n\n /**\n * call to cache the given layout internally to the given location so we can restore back when column changes size\n * @param nodes list of nodes\n * @param column corresponding column index to save it under\n * @param clear if true, will force other caches to be removed (default false)\n */\n public cacheLayout(nodes: GridStackNode[], column: number, clear = false): GridStackEngine {\n const copy: GridStackNode[] = [];\n nodes.forEach((n, i) => {\n // make sure we have an id in case this is new layout, else re-use id already set\n if (n._id === undefined) {\n const existing = n.id ? this.nodes.find(n2 => n2.id === n.id) : undefined; // find existing node using users id\n n._id = existing?._id ?? GridStackEngine._idSeq++;\n }\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\n });\n this._layouts = clear ? [] : this._layouts || []; // use array to find larger quick\n this._layouts[column] = copy;\n return this;\n }\n\n /**\n * call to cache the given node layout internally to the given location so we can restore back when column changes size\n * @param node single node to cache\n * @param column corresponding column index to save it under\n */\n public cacheOneLayout(n: GridStackNode, column: number): GridStackEngine {\n n._id = n._id ?? GridStackEngine._idSeq++;\n const l: GridStackNode = {x: n.x, y: n.y, w: n.w, _id: n._id}\n if (n.autoPosition || n.x === undefined) { delete l.x; delete l.y; if (n.autoPosition) l.autoPosition = true; }\n this._layouts = this._layouts || [];\n this._layouts[column] = this._layouts[column] || [];\n const index = this.findCacheLayout(n, column);\n if (index === -1)\n this._layouts[column].push(l);\n else\n this._layouts[column][index] = l;\n return this;\n }\n\n protected findCacheLayout(n: GridStackNode, column: number): number | undefined {\n return this._layouts?.[column]?.findIndex(l => l._id === n._id) ?? -1;\n }\n\n public removeNodeFromLayoutCache(n: GridStackNode) {\n if (!this._layouts) {\n return;\n }\n for (let i = 0; i < this._layouts.length; i++) {\n const index = this.findCacheLayout(n, i);\n if (index !== -1) {\n this._layouts[i].splice(index, 1);\n }\n }\n }\n\n /** called to remove all internal values but the _id */\n public cleanupNode(node: GridStackNode): GridStackEngine {\n for (const prop in node) {\n if (prop[0] === '_' && prop !== '_id') delete node[prop];\n }\n return this;\n }\n}\n","/**\r\n * types.ts 12.6.0\r\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\r\n */\r\n\r\nimport { GridStack } from './gridstack';\r\nimport { GridStackEngine } from './gridstack-engine';\r\n\r\n/**\r\n * Default values for grid options - used during initialization and when saving out grid configuration.\r\n * These values are applied when options are not explicitly provided.\r\n */\r\nexport const gridDefaults: GridStackOptions = {\r\n alwaysShowResizeHandle: 'mobile',\r\n animate: true,\r\n auto: true,\r\n cellHeight: 'auto',\r\n cellHeightThrottle: 100,\r\n cellHeightUnit: 'px',\r\n column: 12,\r\n draggable: { handle: '.grid-stack-item-content', appendTo: 'body', scroll: true },\r\n handle: '.grid-stack-item-content',\r\n itemClass: 'grid-stack-item',\r\n margin: 10,\r\n marginUnit: 'px',\r\n maxRow: 0,\r\n minRow: 0,\r\n placeholderClass: 'grid-stack-placeholder',\r\n placeholderText: '',\r\n removableOptions: { accept: 'grid-stack-item', decline: 'grid-stack-non-removable'},\r\n resizable: { handles: 'se' },\r\n rtl: 'auto',\r\n\r\n // **** same as not being set ****\r\n // disableDrag: false,\r\n // disableResize: false,\r\n // float: false,\r\n // handleClass: null,\r\n // removable: false,\r\n // staticGrid: false,\r\n //removable\r\n};\r\n\r\n/**\r\n * Different layout options when changing the number of columns.\r\n *\r\n * These options control how widgets are repositioned when the grid column count changes.\r\n * Note: The new list may be partially filled if there's a cached layout for that size.\r\n *\r\n * Options:\r\n * - `'list'`: Treat items as a sorted list, keeping them sequentially without resizing (unless too big)\r\n * - `'compact'`: Similar to list, but uses compact() method to fill empty slots by reordering\r\n * - `'moveScale'`: Scale and move items by the ratio of newColumnCount / oldColumnCount\r\n * - `'move'`: Only move items, keep their sizes\r\n * - `'scale'`: Only scale items, keep their positions\r\n * - `'none'`: Leave items unchanged unless they don't fit in the new column count\r\n * - Custom function: Provide your own layout logic\r\n */\r\nexport type ColumnOptions = 'list' | 'compact' | 'moveScale' | 'move' | 'scale' | 'none' |\r\n ((column: number, oldColumn: number, nodes: GridStackNode[], oldNodes: GridStackNode[]) => void);\r\n/**\r\n * Options for the compact() method to reclaim empty space.\r\n * - `'list'`: Keep items in order, move them up sequentially\r\n * - `'compact'`: Find truly empty spaces, may reorder items for optimal fit\r\n */\r\nexport type CompactOptions = 'list' | 'compact';\r\n/**\r\n * Type representing values that can be either numbers or strings (e.g., dimensions with units).\r\n * Used for properties like width, height, margins that accept both numeric and string values.\r\n */\r\nexport type numberOrString = number | string;\r\n/**\r\n * Extended HTMLElement interface for grid items.\r\n * All grid item DOM elements implement this interface to provide access to their grid data.\r\n */\r\nexport interface GridItemHTMLElement extends HTMLElement {\r\n /** Pointer to the associated grid node instance containing position, size, and other widget data */\r\n gridstackNode?: GridStackNode;\r\n /** @internal Original node data (used for restoring during drag operations) */\r\n _gridstackNodeOrig?: GridStackNode;\r\n}\r\n\r\n/**\r\n * Type representing various ways to specify grid elements.\r\n * Can be a CSS selector string, GridItemHTMLElement (HTML element with GS variables when loaded).\r\n */\r\nexport type GridStackElement = string | GridItemHTMLElement;\r\n\r\n/**\r\n * Event handler function types for the .on() method.\r\n * Different handlers receive different parameters based on the event type.\r\n */\r\n\r\n/** General event handler that receives only the event */\r\nexport type GridStackEventHandler = (event: Event) => void;\r\n\r\n/** Element-specific event handler that receives event and affected element */\r\nexport type GridStackElementHandler = (event: Event, el: GridItemHTMLElement) => void;\r\n\r\n/** Node-based event handler that receives event and array of affected nodes */\r\nexport type GridStackNodesHandler = (event: Event, nodes: GridStackNode[]) => void;\r\n\r\n/** Drop event handler that receives previous and new node states */\r\nexport type GridStackDroppedHandler = (event: Event, previousNode: GridStackNode, newNode: GridStackNode) => void;\r\n\r\n/** Union type of all possible event handler types */\r\nexport type GridStackEventHandlerCallback = GridStackEventHandler | GridStackElementHandler | GridStackNodesHandler | GridStackDroppedHandler;\r\n\r\n/**\r\n * Optional callback function called during load() operations.\r\n * Allows custom handling of widget addition/removal for framework integration.\r\n *\r\n * @param parent - The parent HTML element\r\n * @param w - The widget definition\r\n * @param add - True if adding, false if removing\r\n * @param grid - True if this is a grid operation\r\n * @returns The created/modified HTML element, or undefined\r\n */\r\nexport type AddRemoveFcn = (parent: HTMLElement, w: GridStackWidget, add: boolean, grid: boolean) => HTMLElement | undefined;\r\n\r\n/**\r\n * Optional callback function called during save() operations.\r\n * Allows adding custom data to the saved widget structure.\r\n *\r\n * @param node - The internal grid node\r\n * @param w - The widget structure being saved (can be modified)\r\n */\r\nexport type SaveFcn = (node: GridStackNode, w: GridStackWidget) => void;\r\n\r\n/**\r\n * Optional callback function for custom widget content rendering.\r\n * Called during load()/addWidget() to create custom content beyond plain text.\r\n *\r\n * @param el - The widget's content container element\r\n * @param w - The widget definition with content and other properties\r\n */\r\nexport type RenderFcn = (el: HTMLElement, w: GridStackWidget) => void;\r\n\r\n/**\r\n * Optional callback function for custom resize-to-content behavior.\r\n * Called when a widget needs to resize to fit its content.\r\n *\r\n * @param el - The grid item element to resize\r\n */\r\nexport type ResizeToContentFcn = (el: GridItemHTMLElement) => void;\r\n\r\n/**\r\n * Configuration for responsive grid behavior.\r\n *\r\n * Defines how the grid responds to different screen sizes by changing column counts.\r\n * NOTE: Make sure to include the appropriate CSS (gridstack-extra.css) to support responsive behavior.\r\n */\r\nexport interface Responsive {\r\n /** wanted width to maintain (+-50%) to dynamically pick a column count. NOTE: make sure to have correct extra CSS to support this. */\r\n columnWidth?: number;\r\n /** maximum number of columns allowed (default: 12). NOTE: make sure to have correct extra CSS to support this. */\r\n columnMax?: number;\r\n /** explicit width:column breakpoints instead of automatic 'columnWidth'. NOTE: make sure to have correct extra CSS to support this. */\r\n breakpoints?: Breakpoint[];\r\n /** specify if breakpoints are for window size or grid size (default:false = grid) */\r\n breakpointForWindow?: boolean;\r\n /** global re-layout mode when changing columns */\r\n layout?: ColumnOptions;\r\n}\r\n\r\n/**\r\n * Defines a responsive breakpoint for automatic column count changes.\r\n * Used with the responsive.breakpoints option.\r\n */\r\nexport interface Breakpoint {\r\n /** Maximum width (in pixels) for this breakpoint to be active */\r\n w?: number;\r\n /** Number of columns to use when this breakpoint is active */\r\n c: number;\r\n /** Layout mode for this specific breakpoint (overrides global responsive.layout) */\r\n layout?: ColumnOptions;\r\n /** TODO: Future feature - specific children layout for this breakpoint */\r\n // children?: GridStackWidget[];\r\n}\r\n\r\n/**\r\n * Defines the options for a Grid\r\n */\r\nexport interface GridStackOptions {\r\n /**\r\n * Accept widgets dragged from other grids or from outside (default: `false`). Can be:\r\n * - `true`: will accept HTML elements having 'grid-stack-item' as class attribute\r\n * - `false`: will not accept any external widgets\r\n * - string: explicit class name to accept instead of default\r\n * - function: callback called before an item will be accepted when entering a grid\r\n *\r\n * @example\r\n * // Accept all grid items\r\n * acceptWidgets: true\r\n *\r\n * // Accept only items with specific class\r\n * acceptWidgets: 'my-draggable-item'\r\n *\r\n * // Custom validation function\r\n * acceptWidgets: (el) => {\r\n * return el.getAttribute('data-accept') === 'true';\r\n * }\r\n *\r\n * @see {@link http://gridstack.github.io/gridstack.js/demo/two.html} for complete example\r\n */\r\n acceptWidgets?: boolean | string | ((element: Element) => boolean);\r\n\r\n /** possible values (default: `mobile`) - does not apply to non-resizable widgets\r\n * `false` the resizing handles are only shown while hovering over a widget\r\n * `true` the resizing handles are always shown\r\n * 'mobile' if running on a mobile device, default to `true` (since there is no hovering per say), else `false`.\r\n See [example](http://gridstack.github.io/gridstack.js/demo/mobile.html) */\r\n alwaysShowResizeHandle?: true | false | 'mobile';\r\n\r\n /** turns animation on (default?: true) */\r\n animate?: boolean;\r\n\r\n /** if false gridstack will not initialize existing items (default?: true) */\r\n auto?: boolean;\r\n\r\n /**\r\n * One cell height (default: 'auto'). Can be:\r\n * - an integer (px): fixed pixel height\r\n * - a string (ex: '100px', '10em', '10rem'): CSS length value\r\n * - 0: library will not generate styles for rows (define your own CSS)\r\n * - 'auto': height calculated for square cells (width / column) and updated live on window resize\r\n * - 'initial': similar to 'auto' but stays fixed size during window resizing\r\n *\r\n * Note: % values don't work correctly - see demo/cell-height.html\r\n *\r\n * @example\r\n * // Fixed 100px height\r\n * cellHeight: 100\r\n *\r\n * // CSS units\r\n * cellHeight: '5rem'\r\n * cellHeight: '100px'\r\n *\r\n * // Auto-sizing for square cells\r\n * cellHeight: 'auto'\r\n *\r\n * // No CSS generation (custom styles)\r\n * cellHeight: 0\r\n */\r\n cellHeight?: numberOrString;\r\n\r\n /** throttle time delay (in ms) used when cellHeight='auto' to improve performance vs usability (default?: 100).\r\n * A value of 0 will make it instant at a cost of re-creating the CSS file at ever window resize event!\r\n * */\r\n cellHeightThrottle?: number;\r\n\r\n /** (internal) unit for cellHeight (default? 'px') which is set when a string cellHeight with a unit is passed (ex: '10rem') */\r\n cellHeightUnit?: string;\r\n\r\n /** list of children item to create when calling load() or addGrid() */\r\n children?: GridStackWidget[];\r\n\r\n /** number of columns (default?: 12). Note: IF you change this, CSS also have to change. See https://github.com/gridstack/gridstack.js#change-grid-columns.\r\n * Note: for nested grids, it is recommended to use 'auto' which will always match the container grid-item current width (in column) to keep inside and outside\r\n * items always the same. flag is NOT supported for regular non-nested grids.\r\n */\r\n column?: number | 'auto';\r\n\r\n /** responsive column layout for width:column behavior */\r\n columnOpts?: Responsive;\r\n\r\n /** additional class on top of '.grid-stack' (which is required for our CSS) to differentiate this instance.\r\n Note: only used by addGrid(), else your element should have the needed class */\r\n class?: string;\r\n\r\n /** disallows dragging of widgets (default?: false) */\r\n disableDrag?: boolean;\r\n\r\n /** disallows resizing of widgets (default?: false). */\r\n disableResize?: boolean;\r\n\r\n /** allows to override UI draggable options. (default?: { handle?: '.grid-stack-item-content', appendTo?: 'body' }) */\r\n draggable?: DDDragOpt;\r\n\r\n /** let user drag nested grid items out of a parent or not (default true - not supported yet) */\r\n //dragOut?: boolean;\r\n\r\n /** the type of engine to create (so you can subclass) default to GridStackEngine */\r\n engineClass?: typeof GridStackEngine;\r\n\r\n /** enable floating widgets (default?: false) See example (http://gridstack.github.io/gridstack.js/demo/float.html) */\r\n float?: boolean;\r\n\r\n /** draggable handle selector (default?: '.grid-stack-item-content') */\r\n handle?: string;\r\n\r\n /** draggable handle class (e.g. 'grid-stack-item-content'). If set 'handle' is ignored (default?: null) */\r\n handleClass?: string;\r\n\r\n /** additional widget class (default?: 'grid-stack-item') */\r\n itemClass?: string;\r\n\r\n /** re-layout mode when we're a subgrid and we are being resized. default to 'list' */\r\n layout?: ColumnOptions;\r\n\r\n /** true when widgets are only created when they scroll into view (visible) */\r\n lazyLoad?: boolean;\r\n\r\n /**\r\n * gap between grid item and content (default?: 10). This will set all 4 sides and support the CSS formats below\r\n * an integer (px)\r\n * a string with possible units (ex: '2em', '20px', '2rem')\r\n * string with space separated values (ex: '5px 10px 0 20px' for all 4 sides, or '5em 10em' for top/bottom and left/right pairs like CSS).\r\n * Note: all sides must have same units (last one wins, default px)\r\n */\r\n margin?: numberOrString;\r\n\r\n /** OLD way to optionally set each side - use margin: '5px 10px 0 20px' instead. Used internally to store each side. */\r\n marginTop?: numberOrString;\r\n marginRight?: numberOrString;\r\n marginBottom?: numberOrString;\r\n marginLeft?: numberOrString;\r\n\r\n /** (internal) unit for margin (default? 'px') set when `margin` is set as string with unit (ex: 2rem') */\r\n marginUnit?: string;\r\n\r\n /** maximum rows amount. Default? is 0 which means no maximum rows */\r\n maxRow?: number;\r\n\r\n /** minimum rows amount which is handy to prevent grid from collapsing when empty. Default is `0`.\r\n * When no set the `min-height` CSS attribute on the grid div (in pixels) can be used, which will round to the closest row.\r\n */\r\n minRow?: number;\r\n\r\n /** If you are using a nonce-based Content Security Policy, pass your nonce here and\r\n * GridStack will add it to the `