{"version":3,"file":"gridstack.js","mappings":"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","sources":["webpack://@glpi/glpi/./node_modules/gridstack/dist/gridstack-extra.css?1393","webpack://@glpi/glpi/./node_modules/gridstack/dist/gridstack.css?f515","webpack://@glpi/glpi/./node_modules/gridstack/dist/gridstack.jQueryUI.js","webpack://@glpi/glpi/./node_modules/gridstack/dist/gridstack.js","webpack://@glpi/glpi/./node_modules/script-loader/addScript.js","webpack://@glpi/glpi/./node_modules/gridstack/dist/gridstack.jQueryUI.js?1add","webpack://@glpi/glpi/./node_modules/gridstack/dist/gridstack.js?05af","webpack://@glpi/glpi/webpack/bootstrap","webpack://@glpi/glpi/webpack/runtime/make namespace object","webpack://@glpi/glpi/./lib/bundles/gridstack.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","module.exports = \"/** gridstack.js 0.6.3 - JQuery UI Drag&Drop plugin @preserve */\\n/**\\n * https://gridstackjs.com/\\n * (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov\\n * gridstack.js may be freely distributed under the MIT license.\\n*/\\n(function(factory) {\\n if (typeof define === 'function' && define.amd) {\\n define(['jquery', 'gridstack', 'exports'], factory);\\n } else if (typeof exports !== 'undefined') {\\n try { jQuery = require('jquery'); } catch (e) {}\\n try { gridstack = require('gridstack'); } catch (e) {}\\n factory(jQuery, gridstack.GridStackUI, exports);\\n } else {\\n factory(jQuery, GridStackUI, window);\\n }\\n})(function($, GridStackUI, scope) {\\n /**\\n * @class JQueryUIGridStackDragDropPlugin\\n * jQuery UI implementation of drag'n'drop gridstack plugin.\\n */\\n function JQueryUIGridStackDragDropPlugin(grid) {\\n GridStackUI.GridStackDragDropPlugin.call(this, grid);\\n }\\n\\n GridStackUI.GridStackDragDropPlugin.registerPlugin(JQueryUIGridStackDragDropPlugin);\\n\\n JQueryUIGridStackDragDropPlugin.prototype = Object.create(GridStackUI.GridStackDragDropPlugin.prototype);\\n JQueryUIGridStackDragDropPlugin.prototype.constructor = JQueryUIGridStackDragDropPlugin;\\n\\n JQueryUIGridStackDragDropPlugin.prototype.resizable = function(el, opts) {\\n el = $(el);\\n if (opts === 'disable' || opts === 'enable') {\\n el.resizable(opts);\\n } else if (opts === 'option') {\\n var key = arguments[2];\\n var value = arguments[3];\\n el.resizable(opts, key, value);\\n } else {\\n var handles = el.data('gs-resize-handles') ? el.data('gs-resize-handles') :\\n this.grid.opts.resizable.handles;\\n el.resizable($.extend({}, this.grid.opts.resizable, {\\n handles: handles\\n }, {\\n start: opts.start || function() {},\\n stop: opts.stop || function() {},\\n resize: opts.resize || function() {}\\n }));\\n }\\n return this;\\n };\\n\\n JQueryUIGridStackDragDropPlugin.prototype.draggable = function(el, opts) {\\n el = $(el);\\n if (opts === 'disable' || opts === 'enable') {\\n el.draggable(opts);\\n } else {\\n el.draggable($.extend({}, this.grid.opts.draggable, {\\n containment: (this.grid.opts.isNested && !this.grid.opts.dragOut) ?\\n this.grid.container.parent() :\\n (this.grid.opts.draggable.containment || null),\\n start: opts.start || function() {},\\n stop: opts.stop || function() {},\\n drag: opts.drag || function() {}\\n }));\\n }\\n return this;\\n };\\n\\n JQueryUIGridStackDragDropPlugin.prototype.droppable = function(el, opts) {\\n el = $(el);\\n el.droppable(opts);\\n return this;\\n };\\n\\n JQueryUIGridStackDragDropPlugin.prototype.isDroppable = function(el, opts) {\\n el = $(el);\\n return Boolean(el.data('droppable'));\\n };\\n\\n JQueryUIGridStackDragDropPlugin.prototype.on = function(el, eventName, callback) {\\n $(el).on(eventName, callback);\\n return this;\\n };\\n\\n scope.JQueryUIGridStackDragDropPlugin = JQueryUIGridStackDragDropPlugin;\\n\\n return JQueryUIGridStackDragDropPlugin;\\n});\\n\"","module.exports = \"/**\\n * gridstack.js 0.6.3\\n * https://gridstackjs.com/\\n * (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov\\n * gridstack.js may be freely distributed under the MIT license.\\n * @preserve\\n*/\\n(function(factory) {\\n if (typeof define === 'function' && define.amd) {\\n define(['jquery', 'exports'], factory);\\n } else if (typeof exports !== 'undefined') {\\n var jQueryModule;\\n\\n try { jQueryModule = require('jquery'); } catch (e) {}\\n\\n factory(jQueryModule || window.jQuery, exports);\\n } else {\\n factory(window.jQuery, window);\\n }\\n})(function($, scope) {\\n\\n // checks for obsolete method names\\n var obsolete = function(f, oldName, newName, rev) {\\n var wrapper = function() {\\n console.warn('gridstack.js: Function `' + oldName + '` is deprecated in ' + rev + ' and has been replaced ' +\\n 'with `' + newName + '`. It will be **completely** removed in v1.0');\\n return f.apply(this, arguments);\\n };\\n wrapper.prototype = f.prototype;\\n\\n return wrapper;\\n };\\n\\n // checks for obsolete grid options (can be used for any fields, but msg is about options)\\n var obsoleteOpts = function(opts, oldName, newName, rev) {\\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 **completely** removed in v1.0');\\n }\\n };\\n\\n // checks for obsolete grid options which are gone\\n var obsoleteOptsDel = function(opts, oldName, rev, info) {\\n if (opts[oldName] !== undefined) {\\n console.warn('gridstack.js: Option `' + oldName + '` is deprecated in ' + rev + info);\\n }\\n };\\n\\n // checks for obsolete Jquery element attributes\\n var obsoleteAttr = function(el, oldName, newName, rev) {\\n var oldAttr = el.attr(oldName);\\n if (oldAttr !== undefined) {\\n el.attr(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 **completely** removed in v1.0');\\n }\\n };\\n\\n var Utils = {\\n\\n isIntercepted: function(a, b) {\\n return !(a.x + a.width <= b.x || b.x + b.width <= a.x || a.y + a.height <= b.y || b.y + b.height <= a.y);\\n },\\n\\n sort: function(nodes, dir, column) {\\n if (!column) {\\n var widths = nodes.map(function(node) { return node.x + node.width; });\\n column = Math.max.apply(Math, widths);\\n }\\n\\n if (dir === -1)\\n return Utils.sortBy(nodes, function(n) { return -(n.x + n.y * column); });\\n else\\n return Utils.sortBy(nodes, function(n) { return (n.x + n.y * column); });\\n },\\n\\n createStylesheet: function(id) {\\n var style = document.createElement('style');\\n style.setAttribute('type', 'text/css');\\n style.setAttribute('data-gs-style-id', id);\\n if (style.styleSheet) {\\n style.styleSheet.cssText = '';\\n } else {\\n style.appendChild(document.createTextNode(''));\\n }\\n document.getElementsByTagName('head')[0].appendChild(style);\\n return style.sheet;\\n },\\n\\n removeStylesheet: function(id) {\\n $('STYLE[data-gs-style-id=' + id + ']').remove();\\n },\\n\\n insertCSSRule: function(sheet, selector, rules, index) {\\n if (typeof sheet.insertRule === 'function') {\\n sheet.insertRule(selector + '{' + rules + '}', index);\\n } else if (typeof sheet.addRule === 'function') {\\n sheet.addRule(selector, rules, index);\\n }\\n },\\n\\n toBool: function(v) {\\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 _collisionNodeCheck: function(n) {\\n return n !== this.node && Utils.isIntercepted(n, this.nn);\\n },\\n\\n _didCollide: function(bn) {\\n return Utils.isIntercepted({x: this.n.x, y: this.newY, width: this.n.width, height: this.n.height}, bn);\\n },\\n\\n _isAddNodeIntercepted: function(n) {\\n return Utils.isIntercepted({x: this.x, y: this.y, width: this.node.width, height: this.node.height}, n);\\n },\\n\\n parseHeight: function(val) {\\n var height = val;\\n var heightUnit = 'px';\\n if (height && typeof height === 'string') {\\n var match = height.match(/^(-[0-9]+\\\\.[0-9]+|[0-9]*\\\\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%)?$/);\\n if (!match) {\\n throw new Error('Invalid height');\\n }\\n heightUnit = match[2] || 'px';\\n height = parseFloat(match[1]);\\n }\\n return {height: height, unit: heightUnit};\\n },\\n\\n without: function(array, item) {\\n var index = array.indexOf(item);\\n\\n if (index !== -1) {\\n array = array.slice(0);\\n array.splice(index, 1);\\n }\\n\\n return array;\\n },\\n\\n sortBy: function(array, getter) {\\n return array.slice(0).sort(function(left, right) {\\n var valueLeft = getter(left);\\n var valueRight = getter(right);\\n\\n if (valueRight === valueLeft) {\\n return 0;\\n }\\n\\n return valueLeft > valueRight ? 1 : -1;\\n });\\n },\\n\\n defaults: function(target) {\\n var sources = Array.prototype.slice.call(arguments, 1);\\n\\n sources.forEach(function(source) {\\n for (var prop in source) {\\n if (source.hasOwnProperty(prop) && (!target.hasOwnProperty(prop) || target[prop] === undefined)) {\\n target[prop] = source[prop];\\n }\\n }\\n });\\n\\n return target;\\n },\\n\\n clone: function(target) {\\n return $.extend({}, target);\\n },\\n\\n throttle: function(callback, delay) {\\n var isWaiting = false;\\n\\n return function() {\\n if (!isWaiting) {\\n callback.apply(this, arguments);\\n isWaiting = true;\\n setTimeout(function() { isWaiting = false; }, delay);\\n }\\n };\\n },\\n\\n removePositioningStyles: function(el) {\\n var style = el[0].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 getScrollParent: function(el) {\\n var returnEl;\\n if (el === null) {\\n returnEl = null;\\n } else if (el.scrollHeight > el.clientHeight) {\\n returnEl = el;\\n } else {\\n returnEl = Utils.getScrollParent(el.parentNode);\\n }\\n return returnEl;\\n },\\n updateScrollPosition: function(el, ui, distance) {\\n // is widget in view?\\n var rect = el.getBoundingClientRect();\\n var innerHeightOrClientHeight = (window.innerHeight || document.documentElement.clientHeight);\\n if (rect.top < 0 ||\\n rect.bottom > innerHeightOrClientHeight\\n ) {\\n // set scrollTop of first parent that scrolls\\n // if parent is larger than el, set as low as possible\\n // to get entire widget on screen\\n var offsetDiffDown = rect.bottom - innerHeightOrClientHeight;\\n var offsetDiffUp = rect.top;\\n var scrollEl = Utils.getScrollParent(el);\\n if (scrollEl !== null) {\\n var prevScroll = scrollEl.scrollTop;\\n if (rect.top < 0 && distance < 0) {\\n // moving up\\n if (el.offsetHeight > innerHeightOrClientHeight) {\\n scrollEl.scrollTop += distance;\\n } else {\\n scrollEl.scrollTop += Math.abs(offsetDiffUp) > Math.abs(distance) ? distance : offsetDiffUp;\\n }\\n } else if (distance > 0) {\\n // moving down\\n if (el.offsetHeight > innerHeightOrClientHeight) {\\n scrollEl.scrollTop += distance;\\n } else {\\n scrollEl.scrollTop += offsetDiffDown > distance ? distance : offsetDiffDown;\\n }\\n }\\n // move widget y by amount scrolled\\n ui.position.top += scrollEl.scrollTop - prevScroll;\\n }\\n }\\n }\\n };\\n\\n /**\\n * @class GridStackDragDropPlugin\\n * Base class for drag'n'drop plugin.\\n */\\n function GridStackDragDropPlugin(grid) {\\n this.grid = grid;\\n }\\n\\n GridStackDragDropPlugin.registeredPlugins = [];\\n\\n GridStackDragDropPlugin.registerPlugin = function(pluginClass) {\\n GridStackDragDropPlugin.registeredPlugins.push(pluginClass);\\n };\\n\\n GridStackDragDropPlugin.prototype.resizable = function(el, opts) {\\n return this;\\n };\\n\\n GridStackDragDropPlugin.prototype.draggable = function(el, opts) {\\n return this;\\n };\\n\\n GridStackDragDropPlugin.prototype.droppable = function(el, opts) {\\n return this;\\n };\\n\\n GridStackDragDropPlugin.prototype.isDroppable = function(el) {\\n return false;\\n };\\n\\n GridStackDragDropPlugin.prototype.on = function(el, eventName, callback) {\\n return this;\\n };\\n\\n\\n var idSeq = 0;\\n\\n var GridStackEngine = function(column, onchange, float, maxRow, items) {\\n this.column = column || 12;\\n this.float = float || false;\\n this.maxRow = maxRow || 0;\\n\\n this.nodes = items || [];\\n this.onchange = onchange || function() {};\\n\\n this._addedNodes = [];\\n this._removedNodes = [];\\n this._batchMode = false;\\n };\\n\\n GridStackEngine.prototype.batchUpdate = function() {\\n if (this._batchMode) return;\\n this._batchMode = true;\\n this._prevFloat = this.float;\\n this.float = true; // let things go anywhere for now... commit() will restore and possibly reposition\\n };\\n\\n GridStackEngine.prototype.commit = function() {\\n if (!this._batchMode) return;\\n this._batchMode = false;\\n this.float = this._prevFloat;\\n delete this._prevFloat;\\n this._packNodes();\\n this._notify();\\n };\\n\\n // For Meteor support: https://github.com/gridstack/gridstack.js/pull/272\\n GridStackEngine.prototype.getNodeDataByDOMEl = function(el) {\\n return this.nodes.find(function(n) { return el.get(0) === n.el.get(0); });\\n };\\n\\n GridStackEngine.prototype._fixCollisions = function(node) {\\n var self = this;\\n this._sortNodes(-1);\\n\\n var nn = node;\\n var hasLocked = Boolean(this.nodes.find(function(n) { return n.locked; }));\\n if (!this.float && !hasLocked) {\\n nn = {x: 0, y: node.y, width: this.column, height: node.height};\\n }\\n while (true) {\\n var collisionNode = this.nodes.find(Utils._collisionNodeCheck, {node: node, nn: nn});\\n if (!collisionNode) { return; }\\n this.moveNode(collisionNode, collisionNode.x, node.y + node.height,\\n collisionNode.width, collisionNode.height, true);\\n }\\n };\\n\\n GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height) {\\n var nn = {x: x || 0, y: y || 0, width: width || 1, height: height || 1};\\n var collisionNode = this.nodes.find(function(n) {\\n return Utils.isIntercepted(n, nn);\\n });\\n return !collisionNode;\\n };\\n\\n GridStackEngine.prototype._sortNodes = function(dir) {\\n this.nodes = Utils.sort(this.nodes, dir, this.column);\\n };\\n\\n GridStackEngine.prototype._packNodes = function() {\\n this._sortNodes();\\n\\n if (this.float) {\\n this.nodes.forEach(function(n, i) {\\n if (n._updating || n._packY === undefined || n.y === n._packY) {\\n return;\\n }\\n\\n var newY = n.y;\\n while (newY >= n._packY) {\\n var collisionNode = this.nodes\\n .slice(0, i)\\n .find(Utils._didCollide, {n: n, newY: newY});\\n\\n if (!collisionNode) {\\n n._dirty = true;\\n n.y = newY;\\n }\\n --newY;\\n }\\n }, this);\\n } else {\\n this.nodes.forEach(function(n, i) {\\n if (n.locked) { return; }\\n while (n.y > 0) {\\n var newY = n.y - 1;\\n var canBeMoved = i === 0;\\n\\n if (i > 0) {\\n var collisionNode = this.nodes\\n .slice(0, i)\\n .find(Utils._didCollide, {n: n, newY: newY});\\n canBeMoved = collisionNode === undefined;\\n }\\n\\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 }, this);\\n }\\n };\\n\\n GridStackEngine.prototype._prepareNode = function(node, resizing) {\\n node = node || {};\\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 var defaults = {width: 1, height: 1, x: 0, y: 0};\\n node = Utils.defaults(node, defaults);\\n\\n // convert any strings over\\n node.x = parseInt(node.x);\\n node.y = parseInt(node.y);\\n node.width = parseInt(node.width);\\n node.height = parseInt(node.height);\\n node.autoPosition = node.autoPosition || false;\\n node.noResize = node.noResize || false;\\n node.noMove = node.noMove || false;\\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 (Number.isNaN(node.x)) { node.x = defaults.x; node.autoPosition = true; }\\n if (Number.isNaN(node.y)) { node.y = defaults.y; node.autoPosition = true; }\\n if (Number.isNaN(node.width)) { node.width = defaults.width; }\\n if (Number.isNaN(node.height)) { node.height = defaults.height; }\\n\\n if (node.width > this.column) {\\n node.width = this.column;\\n } else if (node.width < 1) {\\n node.width = 1;\\n }\\n\\n if (node.height < 1) {\\n node.height = 1;\\n }\\n\\n if (node.x < 0) {\\n node.x = 0;\\n }\\n\\n if (node.x + node.width > this.column) {\\n if (resizing) {\\n node.width = this.column - node.x;\\n } else {\\n node.x = this.column - node.width;\\n }\\n }\\n\\n if (node.y < 0) {\\n node.y = 0;\\n }\\n\\n return node;\\n };\\n\\n GridStackEngine.prototype._notify = function() {\\n if (this._batchMode) { return; }\\n var args = Array.prototype.slice.call(arguments, 0);\\n args[0] = (args[0] === undefined ? [] : (Array.isArray(args[0]) ? args[0] : [args[0]]) );\\n args[1] = (args[1] === undefined ? true : args[1]);\\n var dirtyNodes = args[0].concat(this.getDirtyNodes());\\n this.onchange(dirtyNodes, args[1]);\\n };\\n\\n GridStackEngine.prototype.cleanNodes = function() {\\n if (this._batchMode) { return; }\\n this.nodes.forEach(function(n) { delete n._dirty; });\\n };\\n\\n GridStackEngine.prototype.getDirtyNodes = function() {\\n return this.nodes.filter(function(n) { return n._dirty; });\\n };\\n\\n GridStackEngine.prototype.addNode = function(node, triggerAddEvent) {\\n var prev = {x: node.x, y: node.y, width: node.width, height: node.height};\\n\\n node = this._prepareNode(node);\\n\\n if (node.maxWidth !== undefined) { node.width = Math.min(node.width, node.maxWidth); }\\n if (node.maxHeight !== undefined) { node.height = Math.min(node.height, node.maxHeight); }\\n if (node.minWidth !== undefined) { node.width = Math.max(node.width, node.minWidth); }\\n if (node.minHeight !== undefined) { node.height = Math.max(node.height, node.minHeight); }\\n\\n node._id = node._id || ++idSeq;\\n\\n if (node.autoPosition) {\\n this._sortNodes();\\n\\n for (var i = 0;; ++i) {\\n var x = i % this.column;\\n var y = Math.floor(i / this.column);\\n if (x + node.width > this.column) {\\n continue;\\n }\\n if (!this.nodes.find(Utils._isAddNodeIntercepted, {x: x, y: y, node: node})) {\\n node.x = x;\\n node.y = y;\\n delete node.autoPosition; // found our slot\\n break;\\n }\\n }\\n }\\n\\n this.nodes.push(node);\\n if (triggerAddEvent) {\\n this._addedNodes.push(node);\\n }\\n // use single equal as they come as string/undefined but end as number....\\n if (!node._dirty && (prev.x != node.x || prev.y != node.y || prev.width != node.width || prev.height != node.height)) {\\n node._dirty = true;\\n }\\n\\n this._fixCollisions(node);\\n this._packNodes();\\n this._notify();\\n return node;\\n };\\n\\n GridStackEngine.prototype.removeNode = function(node, detachNode) {\\n detachNode = (detachNode === undefined ? true : detachNode);\\n this._removedNodes.push(node);\\n node._id = null; // hint that node is being removed\\n this.nodes = Utils.without(this.nodes, node);\\n this._packNodes();\\n this._notify(node, detachNode);\\n };\\n\\n GridStackEngine.prototype.removeAll = function(detachNode) {\\n delete this._layouts;\\n if (this.nodes.length === 0) { return; }\\n detachNode = (detachNode === undefined ? true : detachNode);\\n this.nodes.forEach(function(n) { n._id = null; }); // hint that node is being removed\\n this._removedNodes = this.nodes;\\n this.nodes = [];\\n this._notify(this._removedNodes, detachNode);\\n };\\n\\n GridStackEngine.prototype.canMoveNode = function(node, x, y, width, height) {\\n if (!this.isNodeChangedPosition(node, x, y, width, height)) {\\n return false;\\n }\\n var hasLocked = Boolean(this.nodes.find(function(n) { return n.locked; }));\\n\\n if (!this.maxRow && !hasLocked) {\\n return true;\\n }\\n\\n var clonedNode;\\n var clone = new GridStackEngine(\\n this.column,\\n null,\\n this.float,\\n 0,\\n this.nodes.map(function(n) {\\n if (n === node) {\\n clonedNode = $.extend({}, n);\\n return clonedNode;\\n }\\n return $.extend({}, n);\\n }));\\n\\n if (!clonedNode) { return true;}\\n\\n clone.moveNode(clonedNode, x, y, width, height);\\n\\n var res = true;\\n\\n if (hasLocked) {\\n res &= !Boolean(clone.nodes.find(function(n) {\\n return n !== clonedNode && Boolean(n.locked) && Boolean(n._dirty);\\n }));\\n }\\n if (this.maxRow) {\\n res &= clone.getGridHeight() <= this.maxRow;\\n }\\n\\n return res;\\n };\\n\\n GridStackEngine.prototype.canBePlacedWithRespectToHeight = function(node) {\\n if (!this.maxRow) {\\n return true;\\n }\\n\\n var clone = new GridStackEngine(\\n this.column,\\n null,\\n this.float,\\n 0,\\n this.nodes.map(function(n) { return $.extend({}, n); }));\\n clone.addNode(node);\\n return clone.getGridHeight() <= this.maxRow;\\n };\\n\\n GridStackEngine.prototype.isNodeChangedPosition = function(node, x, y, width, height) {\\n if (typeof x !== 'number') { x = node.x; }\\n if (typeof y !== 'number') { y = node.y; }\\n if (typeof width !== 'number') { width = node.width; }\\n if (typeof height !== 'number') { height = node.height; }\\n\\n if (node.maxWidth !== undefined) { width = Math.min(width, node.maxWidth); }\\n if (node.maxHeight !== undefined) { height = Math.min(height, node.maxHeight); }\\n if (node.minWidth !== undefined) { width = Math.max(width, node.minWidth); }\\n if (node.minHeight !== undefined) { height = Math.max(height, node.minHeight); }\\n\\n if (node.x === x && node.y === y && node.width === width && node.height === height) {\\n return false;\\n }\\n return true;\\n };\\n\\n GridStackEngine.prototype.moveNode = function(node, x, y, width, height, noPack) {\\n if (typeof x !== 'number') { x = node.x; }\\n if (typeof y !== 'number') { y = node.y; }\\n if (typeof width !== 'number') { width = node.width; }\\n if (typeof height !== 'number') { height = node.height; }\\n\\n if (node.maxWidth !== undefined) { width = Math.min(width, node.maxWidth); }\\n if (node.maxHeight !== undefined) { height = Math.min(height, node.maxHeight); }\\n if (node.minWidth !== undefined) { width = Math.max(width, node.minWidth); }\\n if (node.minHeight !== undefined) { height = Math.max(height, node.minHeight); }\\n\\n if (node.x === x && node.y === y && node.width === width && node.height === height) {\\n return node;\\n }\\n\\n var resizing = node.width !== width;\\n node._dirty = true;\\n\\n node.x = x;\\n node.y = y;\\n node.width = width;\\n node.height = height;\\n\\n node.lastTriedX = x;\\n node.lastTriedY = y;\\n node.lastTriedWidth = width;\\n node.lastTriedHeight = height;\\n\\n node = this._prepareNode(node, resizing);\\n\\n this._fixCollisions(node);\\n if (!noPack) {\\n this._packNodes();\\n this._notify();\\n }\\n return node;\\n };\\n\\n GridStackEngine.prototype.getGridHeight = function() {\\n return this.nodes.reduce(function(memo, n) { return Math.max(memo, n.y + n.height); }, 0);\\n };\\n\\n GridStackEngine.prototype.beginUpdate = function(node) {\\n if (node._updating) return;\\n node._updating = true;\\n this.nodes.forEach(function(n) { n._packY = n.y; });\\n };\\n\\n GridStackEngine.prototype.endUpdate = function() {\\n var n = this.nodes.find(function(n) { return n._updating; });\\n if (n) {\\n n._updating = false;\\n this.nodes.forEach(function(n) { delete n._packY; });\\n }\\n };\\n\\n var GridStack = function(el, opts) {\\n var self = this;\\n var oneColumnMode, _prevColumn, isAutoCellHeight;\\n\\n opts = opts || {};\\n\\n this.container = $(el);\\n\\n obsoleteOpts(opts, 'width', 'column', 'v0.5.3');\\n obsoleteOpts(opts, 'height', 'maxRow', 'v0.5.3');\\n obsoleteOptsDel(opts, 'oneColumnModeClass', 'v0.6.3', '. Use class `.grid-stack-1` instead');\\n\\n // container attributes\\n obsoleteAttr(this.container, 'data-gs-width', 'data-gs-column', 'v0.5.3');\\n obsoleteAttr(this.container, 'data-gs-height', 'data-gs-max-row', 'v0.5.3');\\n\\n opts.itemClass = opts.itemClass || 'grid-stack-item';\\n var isNested = this.container.closest('.' + opts.itemClass).length > 0;\\n\\n this.opts = Utils.defaults(opts, {\\n column: parseInt(this.container.attr('data-gs-column')) || 12,\\n maxRow: parseInt(this.container.attr('data-gs-max-row')) || 0,\\n itemClass: 'grid-stack-item',\\n placeholderClass: 'grid-stack-placeholder',\\n placeholderText: '',\\n handle: '.grid-stack-item-content',\\n handleClass: null,\\n cellHeight: 60,\\n verticalMargin: 20,\\n auto: true,\\n minWidth: 768,\\n float: false,\\n staticGrid: false,\\n _class: 'grid-stack-instance-' + (Math.random() * 10000).toFixed(0),\\n animate: Boolean(this.container.attr('data-gs-animate')) || false,\\n alwaysShowResizeHandle: opts.alwaysShowResizeHandle || false,\\n resizable: Utils.defaults(opts.resizable || {}, {\\n autoHide: !(opts.alwaysShowResizeHandle || false),\\n handles: 'se'\\n }),\\n draggable: Utils.defaults(opts.draggable || {}, {\\n handle: (opts.handleClass ? '.' + opts.handleClass : (opts.handle ? opts.handle : '')) ||\\n '.grid-stack-item-content',\\n scroll: false,\\n appendTo: 'body'\\n }),\\n disableDrag: opts.disableDrag || false,\\n disableResize: opts.disableResize || false,\\n rtl: 'auto',\\n removable: false,\\n removableOptions: Utils.defaults(opts.removableOptions || {}, {\\n accept: '.' + opts.itemClass\\n }),\\n removeTimeout: 2000,\\n verticalMarginUnit: 'px',\\n cellHeightUnit: 'px',\\n disableOneColumnMode: opts.disableOneColumnMode || false,\\n oneColumnModeDomSort: opts.oneColumnModeDomSort,\\n ddPlugin: null\\n });\\n\\n if (this.opts.ddPlugin === false) {\\n this.opts.ddPlugin = GridStackDragDropPlugin;\\n } else if (this.opts.ddPlugin === null) {\\n this.opts.ddPlugin = GridStackDragDropPlugin.registeredPlugins[0] || GridStackDragDropPlugin;\\n }\\n\\n this.dd = new this.opts.ddPlugin(this);\\n\\n if (this.opts.rtl === 'auto') {\\n this.opts.rtl = this.container.css('direction') === 'rtl';\\n }\\n\\n if (this.opts.rtl) {\\n this.container.addClass('grid-stack-rtl');\\n }\\n\\n this.opts.isNested = isNested;\\n\\n isAutoCellHeight = (this.opts.cellHeight === 'auto');\\n if (isAutoCellHeight) {\\n // make the cell square initially\\n self.cellHeight(self.cellWidth(), true);\\n } else {\\n this.cellHeight(this.opts.cellHeight, true);\\n }\\n this.verticalMargin(this.opts.verticalMargin, true);\\n\\n this.container.addClass(this.opts._class);\\n\\n this._setStaticClass();\\n\\n if (isNested) {\\n this.container.addClass('grid-stack-nested');\\n }\\n\\n this._initStyles();\\n\\n this.grid = new GridStackEngine(this.opts.column, function(nodes, detachNode) {\\n detachNode = (detachNode === undefined ? true : detachNode);\\n var maxHeight = 0;\\n this.nodes.forEach(function(n) {\\n maxHeight = Math.max(maxHeight, n.y + n.height);\\n });\\n nodes.forEach(function(n) {\\n if (detachNode && n._id === null) {\\n if (n.el) {\\n n.el.remove();\\n }\\n } else {\\n n.el\\n .attr('data-gs-x', n.x)\\n .attr('data-gs-y', n.y)\\n .attr('data-gs-width', n.width)\\n .attr('data-gs-height', n.height);\\n }\\n });\\n self._updateStyles(maxHeight + 10);\\n }, this.opts.float, this.opts.maxRow);\\n\\n if (this.opts.auto) {\\n var elements = [];\\n var _this = this;\\n this.container.children('.' + this.opts.itemClass + ':not(.' + this.opts.placeholderClass + ')')\\n .each(function(index, el) {\\n el = $(el);\\n var x = parseInt(el.attr('data-gs-x'));\\n var y = parseInt(el.attr('data-gs-y'));\\n elements.push({\\n el: el,\\n // if x,y are missing (autoPosition) add them to end of list - but keep their respective DOM order\\n i: (Number.isNaN(x) ? 1000 : x) + (Number.isNaN(y) ? 1000 : y) * _this.opts.column\\n });\\n });\\n Utils.sortBy(elements, function(x) { return x.i; }).forEach(function(item) {\\n this._prepareElement(item.el);\\n }, this);\\n }\\n\\n this.setAnimation(this.opts.animate);\\n\\n this.placeholder = $(\\n '