{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./Scripts/widget-page/gridstack.js","webpack:///./Bundles/widget-page.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","_","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","this","arguments","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","sort","nodes","dir","chain","map","node","max","sortBy","createStylesheet","id","style","document","createElement","setAttribute","styleSheet","cssText","appendChild","createTextNode","getElementsByTagName","sheet","removeStylesheet","remove","insertCSSRule","selector","rules","index","insertRule","addRule","toBool","v","toLowerCase","Boolean","_collisionNodeCheck","nn","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","idSeq","GridStackEngine","onchange","floatMode","items","float","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","el","find","_fixCollisions","_sortNodes","hasLocked","locked","collisionNode","moveNode","isAreaEmpty","each","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","deletedNodes","Array","slice","concat","getDirtyNodes","cleanNodes","filter","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","push","clone","removeNode","detachNode","without","canMoveNode","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","reduce","memo","beginUpdate","endUpdate","GridStack","opts","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","size","attr","handle","auto","_class","random","toFixed","animate","resizable","autoHide","handles","draggable","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","css","addClass","cellWidth","_setStaticClass","_initStyles","grid","_updateStyles","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","resize","trashZone","data","droppable","accept","on","event","ui","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","over","origNode","ceil","outerWidth","outerHeight","_temporary","out","unbind","detach","drop","removeAttr","enableSelection","removeData","removeClass","_prepareElementByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","length","trigger","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","lastY","containment","parent","start","stop","forceNotify","_temporaryRemoved","helper","position","left","nestedGrids","type","drag","top","collisionNodes","nodePlaceholderY","undefined","NaN","isNaN","pageY","strictCellHeight","_beforeResizeWidth","_beforeResizeHeight","deltaY","round","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","_updateElement","callback","first","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","_updateNodeWidths","oldWidth","newWidth","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","factory","jQuery"],"mappings":"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","file":"widget-page.bundle.20250222.1.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 756);\n","/**\r\n - Changed for CMS -\r\n * gridstack.js 0.2.5\r\n * http://troolee.github.io/gridstack.js/\r\n * (c) 2014-2016 Pavel Reznikov\r\n * gridstack.js may be freely distributed under the MIT license.\r\n * @preserve\r\n*/\r\n(function(factory) {\r\n factory(jQuery, _);\r\n})(function($, _) {\r\n\r\n var scope = window;\r\n\r\n var obsolete = function(f, oldName, newName) {\r\n var wrapper = function() {\r\n console.warn('gridstack.js: Function `' + oldName + '` is deprecated as of v0.2.5 and has been replaced ' +\r\n 'with `' + newName + '`. It will be **completely** removed in v1.0.');\r\n return f.apply(this, arguments);\r\n };\r\n wrapper.prototype = f.prototype;\r\n\r\n return wrapper;\r\n };\r\n\r\n var obsoleteOpts = function(oldName, newName) {\r\n console.warn('gridstack.js: Option `' + oldName + '` is deprecated as of v0.2.5 and has been replaced with `' +\r\n newName + '`. It will be **completely** removed in v1.0.');\r\n };\r\n\r\n var Utils = {\r\n isIntercepted: function(a, b) {\r\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);\r\n },\r\n\r\n sort: function(nodes, dir, width) {\r\n width = width || _.chain(nodes).map(function(node) { return node.x + node.width; }).max().value();\r\n dir = dir != -1 ? 1 : -1;\r\n return _.sortBy(nodes, function(n) { return dir * (n.x + n.y * width); });\r\n },\r\n\r\n createStylesheet: function(id) {\r\n var style = document.createElement('style');\r\n style.setAttribute('type', 'text/css');\r\n style.setAttribute('data-gs-style-id', id);\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = '';\r\n } else {\r\n style.appendChild(document.createTextNode(''));\r\n }\r\n document.getElementsByTagName('head')[0].appendChild(style);\r\n return style.sheet;\r\n },\r\n\r\n removeStylesheet: function(id) {\r\n $('STYLE[data-gs-style-id=' + id + ']').remove();\r\n },\r\n\r\n insertCSSRule: function(sheet, selector, rules, index) {\r\n if (typeof sheet.insertRule === 'function') {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n } else if (typeof sheet.addRule === 'function') {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n },\r\n\r\n toBool: function(v) {\r\n if (typeof v == 'boolean') {\r\n return v;\r\n }\r\n if (typeof v == 'string') {\r\n v = v.toLowerCase();\r\n return !(v === '' || v == 'no' || v == 'false' || v == '0');\r\n }\r\n return Boolean(v);\r\n },\r\n\r\n _collisionNodeCheck: function(n) {\r\n return n != this.node && Utils.isIntercepted(n, this.nn);\r\n },\r\n\r\n _didCollide: function(bn) {\r\n return Utils.isIntercepted({x: this.n.x, y: this.newY, width: this.n.width, height: this.n.height}, bn);\r\n },\r\n\r\n _isAddNodeIntercepted: function(n) {\r\n return Utils.isIntercepted({x: this.x, y: this.y, width: this.node.width, height: this.node.height}, n);\r\n },\r\n\r\n parseHeight: function(val) {\r\n var height = val;\r\n var heightUnit = 'px';\r\n if (height && _.isString(height)) {\r\n var match = height.match(/^(-[0-9]+\\.[0-9]+|[0-9]*\\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);\r\n if (!match) {\r\n throw new Error('Invalid height');\r\n }\r\n heightUnit = match[2] || 'px';\r\n height = parseFloat(match[1]);\r\n }\r\n return {height: height, unit: heightUnit};\r\n }\r\n };\r\n\r\n // jscs:disable requireCamelCaseOrUpperCaseIdentifiers\r\n Utils.is_intercepted = obsolete(Utils.isIntercepted, 'is_intercepted', 'isIntercepted');\r\n\r\n Utils.create_stylesheet = obsolete(Utils.createStylesheet, 'create_stylesheet', 'createStylesheet');\r\n\r\n Utils.remove_stylesheet = obsolete(Utils.removeStylesheet, 'remove_stylesheet', 'removeStylesheet');\r\n\r\n Utils.insert_css_rule = obsolete(Utils.insertCSSRule, 'insert_css_rule', 'insertCSSRule');\r\n // jscs:enable requireCamelCaseOrUpperCaseIdentifiers\r\n\r\n var idSeq = 0;\r\n\r\n var GridStackEngine = function(width, onchange, floatMode, height, items) {\r\n this.width = width;\r\n this.float = floatMode || false;\r\n this.height = height || 0;\r\n\r\n this.nodes = items || [];\r\n this.onchange = onchange || function() {};\r\n\r\n this._updateCounter = 0;\r\n this._float = this.float;\r\n\r\n this._addedNodes = [];\r\n this._removedNodes = [];\r\n };\r\n\r\n GridStackEngine.prototype.batchUpdate = function() {\r\n this._updateCounter = 1;\r\n this.float = true;\r\n };\r\n\r\n GridStackEngine.prototype.commit = function() {\r\n if (this._updateCounter !== 0) {\r\n this._updateCounter = 0;\r\n this.float = this._float;\r\n this._packNodes();\r\n this._notify();\r\n }\r\n };\r\n\r\n // For Meteor support: https://github.com/troolee/gridstack.js/pull/272\r\n GridStackEngine.prototype.getNodeDataByDOMEl = function(el) {\r\n return _.find(this.nodes, function(n) { return el.get(0) === n.el.get(0); });\r\n };\r\n\r\n GridStackEngine.prototype._fixCollisions = function(node) {\r\n var self = this;\r\n this._sortNodes(-1);\r\n\r\n var nn = node;\r\n var hasLocked = Boolean(_.find(this.nodes, function(n) { return n.locked; }));\r\n if (!this.float && !hasLocked) {\r\n nn = {x: 0, y: node.y, width: this.width, height: node.height};\r\n }\r\n while (true) {\r\n var collisionNode = _.find(this.nodes, _.bind(Utils._collisionNodeCheck, {node: node, nn: nn}));\r\n if (typeof collisionNode == 'undefined') {\r\n return;\r\n }\r\n this.moveNode(collisionNode, collisionNode.x, node.y + node.height,\r\n collisionNode.width, collisionNode.height, true);\r\n }\r\n };\r\n\r\n GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height) {\r\n var nn = {x: x || 0, y: y || 0, width: width || 1, height: height || 1};\r\n var collisionNode = _.find(this.nodes, _.bind(function(n) {\r\n return Utils.isIntercepted(n, nn);\r\n }, this));\r\n return collisionNode === null || typeof collisionNode === 'undefined';\r\n };\r\n\r\n GridStackEngine.prototype._sortNodes = function(dir) {\r\n this.nodes = Utils.sort(this.nodes, dir, this.width);\r\n };\r\n\r\n GridStackEngine.prototype._packNodes = function() {\r\n this._sortNodes();\r\n\r\n if (this.float) {\r\n _.each(this.nodes, _.bind(function(n, i) {\r\n if (n._updating || typeof n._origY == 'undefined' || n.y == n._origY) {\r\n return;\r\n }\r\n\r\n var newY = n.y;\r\n while (newY >= n._origY) {\r\n var collisionNode = _.chain(this.nodes)\r\n .find(_.bind(Utils._didCollide, {n: n, newY: newY}))\r\n .value();\r\n\r\n if (!collisionNode) {\r\n n._dirty = true;\r\n n.y = newY;\r\n }\r\n --newY;\r\n }\r\n }, this));\r\n } else {\r\n _.each(this.nodes, _.bind(function(n, i) {\r\n if (n.locked) {\r\n return;\r\n }\r\n while (n.y > 0) {\r\n var newY = n.y - 1;\r\n var canBeMoved = i === 0;\r\n\r\n if (i > 0) {\r\n var collisionNode = _.chain(this.nodes)\r\n .take(i)\r\n .find(_.bind(Utils._didCollide, {n: n, newY: newY}))\r\n .value();\r\n canBeMoved = typeof collisionNode == 'undefined';\r\n }\r\n\r\n if (!canBeMoved) {\r\n break;\r\n }\r\n n._dirty = n.y != newY;\r\n n.y = newY;\r\n }\r\n }, this));\r\n }\r\n };\r\n\r\n GridStackEngine.prototype._prepareNode = function(node, resizing) {\r\n node = _.defaults(node || {}, {width: 1, height: 1, x: 0, y: 0});\r\n\r\n node.x = parseInt('' + node.x);\r\n node.y = parseInt('' + node.y);\r\n node.width = parseInt('' + node.width);\r\n node.height = parseInt('' + node.height);\r\n node.autoPosition = node.autoPosition || false;\r\n node.noResize = node.noResize || false;\r\n node.noMove = node.noMove || false;\r\n\r\n if (node.width > this.width) {\r\n node.width = this.width;\r\n } else if (node.width < 1) {\r\n node.width = 1;\r\n }\r\n\r\n if (node.height < 1) {\r\n node.height = 1;\r\n }\r\n\r\n if (node.x < 0) {\r\n node.x = 0;\r\n }\r\n\r\n if (node.x + node.width > this.width) {\r\n if (resizing) {\r\n node.width = this.width - node.x;\r\n } else {\r\n node.x = this.width - node.width;\r\n }\r\n }\r\n\r\n if (node.y < 0) {\r\n node.y = 0;\r\n }\r\n\r\n return node;\r\n };\r\n\r\n GridStackEngine.prototype._notify = function() {\r\n if (this._updateCounter) {\r\n return;\r\n }\r\n var deletedNodes = Array.prototype.slice.call(arguments, 0);\r\n deletedNodes = deletedNodes.concat(this.getDirtyNodes());\r\n this.onchange(deletedNodes);\r\n };\r\n\r\n GridStackEngine.prototype.cleanNodes = function() {\r\n if (this._updateCounter) {\r\n return;\r\n }\r\n _.each(this.nodes, function(n) {n._dirty = false; });\r\n };\r\n\r\n GridStackEngine.prototype.getDirtyNodes = function() {\r\n return _.filter(this.nodes, function(n) { return n._dirty; });\r\n };\r\n\r\n GridStackEngine.prototype.addNode = function(node, triggerAddEvent) {\r\n node = this._prepareNode(node);\r\n\r\n if (typeof node.maxWidth != 'undefined') { node.width = Math.min(node.width, node.maxWidth); }\r\n if (typeof node.maxHeight != 'undefined') { node.height = Math.min(node.height, node.maxHeight); }\r\n if (typeof node.minWidth != 'undefined') { node.width = Math.max(node.width, node.minWidth); }\r\n if (typeof node.minHeight != 'undefined') { node.height = Math.max(node.height, node.minHeight); }\r\n\r\n node._id = ++idSeq;\r\n node._dirty = true;\r\n\r\n if (node.autoPosition) {\r\n this._sortNodes();\r\n\r\n for (var i = 0;; ++i) {\r\n var x = i % this.width;\r\n var y = Math.floor(i / this.width);\r\n if (x + node.width > this.width) {\r\n continue;\r\n }\r\n if (!_.find(this.nodes, _.bind(Utils._isAddNodeIntercepted, {x: x, y: y, node: node}))) {\r\n node.x = x;\r\n node.y = y;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.nodes.push(node);\r\n if (typeof triggerAddEvent != 'undefined' && triggerAddEvent) {\r\n this._addedNodes.push(_.clone(node));\r\n }\r\n\r\n this._fixCollisions(node);\r\n this._packNodes();\r\n this._notify();\r\n return node;\r\n };\r\n\r\n GridStackEngine.prototype.removeNode = function(node, detachNode) {\r\n detachNode = typeof detachNode === 'undefined' ? true : detachNode;\r\n this._removedNodes.push(_.clone(node));\r\n node._id = null;\r\n this.nodes = _.without(this.nodes, node);\r\n this._packNodes();\r\n if (detachNode) {\r\n this._notify(node);\r\n }\r\n };\r\n\r\n GridStackEngine.prototype.canMoveNode = function(node, x, y, width, height) {\r\n var hasLocked = Boolean(_.find(this.nodes, function(n) { return n.locked; }));\r\n\r\n if (!this.height && !hasLocked) {\r\n return true;\r\n }\r\n\r\n var clonedNode;\r\n var clone = new GridStackEngine(\r\n this.width,\r\n null,\r\n this.float,\r\n 0,\r\n _.map(this.nodes, function(n) {\r\n if (n == node) {\r\n clonedNode = $.extend({}, n);\r\n return clonedNode;\r\n }\r\n return $.extend({}, n);\r\n }));\r\n\r\n if (typeof clonedNode === 'undefined') {\r\n return true;\r\n }\r\n\r\n clone.moveNode(clonedNode, x, y, width, height);\r\n\r\n var res = true;\r\n\r\n if (hasLocked) {\r\n res &= !Boolean(_.find(clone.nodes, function(n) {\r\n return n != clonedNode && Boolean(n.locked) && Boolean(n._dirty);\r\n }));\r\n }\r\n if (this.height) {\r\n res &= clone.getGridHeight() <= this.height;\r\n }\r\n\r\n return res;\r\n };\r\n\r\n GridStackEngine.prototype.canBePlacedWithRespectToHeight = function(node) {\r\n if (!this.height) {\r\n return true;\r\n }\r\n\r\n var clone = new GridStackEngine(\r\n this.width,\r\n null,\r\n this.float,\r\n 0,\r\n _.map(this.nodes, function(n) { return $.extend({}, n); }));\r\n clone.addNode(node);\r\n return clone.getGridHeight() <= this.height;\r\n };\r\n\r\n GridStackEngine.prototype.moveNode = function(node, x, y, width, height, noPack) {\r\n if (typeof x != 'number') { x = node.x; }\r\n if (typeof y != 'number') { y = node.y; }\r\n if (typeof width != 'number') { width = node.width; }\r\n if (typeof height != 'number') { height = node.height; }\r\n\r\n if (typeof node.maxWidth != 'undefined') { width = Math.min(width, node.maxWidth); }\r\n if (typeof node.maxHeight != 'undefined') { height = Math.min(height, node.maxHeight); }\r\n if (typeof node.minWidth != 'undefined') { width = Math.max(width, node.minWidth); }\r\n if (typeof node.minHeight != 'undefined') { height = Math.max(height, node.minHeight); }\r\n\r\n if (node.x == x && node.y == y && node.width == width && node.height == height) {\r\n return node;\r\n }\r\n\r\n var resizing = (node.width != width) || (node.height != height);\r\n node._dirty = true;\r\n\r\n node.x = x;\r\n node.y = y;\r\n node.width = width;\r\n node.height = height;\r\n\r\n node = this._prepareNode(node, resizing);\r\n\r\n this._fixCollisions(node);\r\n if (!noPack) {\r\n this._packNodes();\r\n this._notify();\r\n }\r\n return node;\r\n };\r\n\r\n GridStackEngine.prototype.getGridHeight = function() {\r\n return _.reduce(this.nodes, function(memo, n) { return Math.max(memo, n.y + n.height); }, 0);\r\n };\r\n\r\n GridStackEngine.prototype.beginUpdate = function(node) {\r\n _.each(this.nodes, function(n) {\r\n n._origY = n.y;\r\n });\r\n node._updating = true;\r\n };\r\n\r\n GridStackEngine.prototype.endUpdate = function() {\r\n _.each(this.nodes, function(n) {\r\n n._origY = n.y;\r\n });\r\n var n = _.find(this.nodes, function(n) { return n._updating; });\r\n if (n) {\r\n n._updating = false;\r\n }\r\n };\r\n\r\n var GridStack = function(el, opts) {\r\n var self = this;\r\n var oneColumnMode, isAutoCellHeight;\r\n\r\n opts = opts || {};\r\n\r\n this.container = $(el);\r\n\r\n // jscs:disable requireCamelCaseOrUpperCaseIdentifiers\r\n if (typeof opts.handle_class !== 'undefined') {\r\n opts.handleClass = opts.handle_class;\r\n obsoleteOpts('handle_class', 'handleClass');\r\n }\r\n if (typeof opts.item_class !== 'undefined') {\r\n opts.itemClass = opts.item_class;\r\n obsoleteOpts('item_class', 'itemClass');\r\n }\r\n if (typeof opts.placeholder_class !== 'undefined') {\r\n opts.placeholderClass = opts.placeholder_class;\r\n obsoleteOpts('placeholder_class', 'placeholderClass');\r\n }\r\n if (typeof opts.placeholder_text !== 'undefined') {\r\n opts.placeholderText = opts.placeholder_text;\r\n obsoleteOpts('placeholder_text', 'placeholderText');\r\n }\r\n if (typeof opts.cell_height !== 'undefined') {\r\n opts.cellHeight = opts.cell_height;\r\n obsoleteOpts('cell_height', 'cellHeight');\r\n }\r\n if (typeof opts.vertical_margin !== 'undefined') {\r\n opts.verticalMargin = opts.vertical_margin;\r\n obsoleteOpts('vertical_margin', 'verticalMargin');\r\n }\r\n if (typeof opts.min_width !== 'undefined') {\r\n opts.minWidth = opts.min_width;\r\n obsoleteOpts('min_width', 'minWidth');\r\n }\r\n if (typeof opts.static_grid !== 'undefined') {\r\n opts.staticGrid = opts.static_grid;\r\n obsoleteOpts('static_grid', 'staticGrid');\r\n }\r\n if (typeof opts.is_nested !== 'undefined') {\r\n opts.isNested = opts.is_nested;\r\n obsoleteOpts('is_nested', 'isNested');\r\n }\r\n if (typeof opts.always_show_resize_handle !== 'undefined') {\r\n opts.alwaysShowResizeHandle = opts.always_show_resize_handle;\r\n obsoleteOpts('always_show_resize_handle', 'alwaysShowResizeHandle');\r\n }\r\n // jscs:enable requireCamelCaseOrUpperCaseIdentifiers\r\n\r\n opts.itemClass = opts.itemClass || 'grid-stack-item';\r\n var isNested = this.container.closest('.' + opts.itemClass).size() > 0;\r\n\r\n this.opts = _.defaults(opts || {}, {\r\n width: parseInt(this.container.attr('data-gs-width')) || 12,\r\n height: parseInt(this.container.attr('data-gs-height')) || 0,\r\n itemClass: 'grid-stack-item',\r\n placeholderClass: 'grid-stack-placeholder',\r\n placeholderText: '',\r\n handle: '.grid-stack-item-content',\r\n handleClass: null,\r\n cellHeight: 60,\r\n verticalMargin: 20,\r\n auto: true,\r\n minWidth: 768,\r\n float: false,\r\n staticGrid: false,\r\n _class: 'grid-stack-instance-' + (Math.random() * 10000).toFixed(0),\r\n animate: Boolean(this.container.attr('data-gs-animate')) || false,\r\n alwaysShowResizeHandle: opts.alwaysShowResizeHandle || false,\r\n resizable: _.defaults(opts.resizable || {}, {\r\n autoHide: !(opts.alwaysShowResizeHandle || false),\r\n handles: 'se'\r\n }),\r\n draggable: _.defaults(opts.draggable || {}, {\r\n handle: (opts.handleClass ? '.' + opts.handleClass : (opts.handle ? opts.handle : '')) ||\r\n '.grid-stack-item-content',\r\n scroll: false,\r\n appendTo: 'body'\r\n }),\r\n disableDrag: opts.disableDrag || false,\r\n disableResize: opts.disableResize || false,\r\n rtl: 'auto',\r\n removable: false,\r\n removeTimeout: 2000,\r\n verticalMarginUnit: 'px',\r\n cellHeightUnit: 'px'\r\n });\r\n\r\n if (this.opts.rtl === 'auto') {\r\n this.opts.rtl = this.container.css('direction') === 'rtl';\r\n }\r\n\r\n if (this.opts.rtl) {\r\n this.container.addClass('grid-stack-rtl');\r\n }\r\n\r\n this.opts.isNested = isNested;\r\n\r\n isAutoCellHeight = this.opts.cellHeight === 'auto';\r\n if (isAutoCellHeight) {\r\n self.cellHeight(self.cellWidth(), true);\r\n } else {\r\n this.cellHeight(this.opts.cellHeight, true);\r\n }\r\n this.verticalMargin(this.opts.verticalMargin, true);\r\n\r\n this.container.addClass(this.opts._class);\r\n\r\n this._setStaticClass();\r\n\r\n if (isNested) {\r\n this.container.addClass('grid-stack-nested');\r\n }\r\n\r\n this._initStyles();\r\n\r\n this.grid = new GridStackEngine(this.opts.width, function(nodes) {\r\n var maxHeight = 0;\r\n _.each(nodes, function(n) {\r\n if (n._id === null) {\r\n if (n.el) {\r\n n.el.remove();\r\n }\r\n } else {\r\n n.el\r\n .attr('data-gs-x', n.x)\r\n .attr('data-gs-y', n.y)\r\n .attr('data-gs-width', n.width)\r\n .attr('data-gs-height', n.height);\r\n maxHeight = Math.max(maxHeight, n.y + n.height);\r\n }\r\n });\r\n self._updateStyles(maxHeight + 10);\r\n }, this.opts.float, this.opts.height);\r\n\r\n if (this.opts.auto) {\r\n var elements = [];\r\n var _this = this;\r\n this.container.children('.' + this.opts.itemClass + ':not(.' + this.opts.placeholderClass + ')')\r\n .each(function(index, el) {\r\n el = $(el);\r\n elements.push({\r\n el: el,\r\n i: parseInt(el.attr('data-gs-x')) + parseInt(el.attr('data-gs-y')) * _this.opts.width\r\n });\r\n });\r\n _.chain(elements).sortBy(function(x) { return x.i; }).each(function(i) {\r\n self._prepareElement(i.el);\r\n }).value();\r\n }\r\n\r\n this.setAnimation(this.opts.animate);\r\n\r\n this.placeholder = $(\r\n '
' +\r\n '
' + this.opts.placeholderText + '
').hide();\r\n\r\n this._updateContainerHeight();\r\n\r\n this._updateHeightsOnResize = _.throttle(function() {\r\n self.cellHeight(self.cellWidth(), false);\r\n }, 100);\r\n\r\n this.onResizeHandler = function() {\r\n if (isAutoCellHeight) {\r\n self._updateHeightsOnResize();\r\n }\r\n\r\n if (self._isOneColumnMode()) {\r\n if (oneColumnMode) {\r\n return;\r\n }\r\n\r\n oneColumnMode = true;\r\n\r\n self.grid._sortNodes();\r\n _.each(self.grid.nodes, function(node) {\r\n self.container.append(node.el);\r\n\r\n if (self.opts.staticGrid) {\r\n return;\r\n }\r\n if (node.noMove || self.opts.disableDrag) {\r\n node.el.draggable('disable');\r\n }\r\n if (node.noResize || self.opts.disableResize) {\r\n node.el.resizable('disable');\r\n }\r\n });\r\n } else {\r\n if (!oneColumnMode) {\r\n return;\r\n }\r\n\r\n oneColumnMode = false;\r\n\r\n if (self.opts.staticGrid) {\r\n return;\r\n }\r\n\r\n _.each(self.grid.nodes, function(node) {\r\n if (!node.noMove && !self.opts.disableDrag) {\r\n node.el.draggable('enable');\r\n }\r\n if (!node.noResize && !self.opts.disableResize) {\r\n node.el.resizable('enable');\r\n }\r\n });\r\n }\r\n };\r\n\r\n $(window).resize(this.onResizeHandler);\r\n this.onResizeHandler();\r\n\r\n if (typeof self.opts.removable === 'string') {\r\n var trashZone = $(self.opts.removable);\r\n if (!trashZone.data('droppable')) {\r\n trashZone.droppable({\r\n accept: '.' + self.opts.itemClass\r\n });\r\n }\r\n trashZone\r\n .on('dropover', function(event, ui) {\r\n var el = $(ui.draggable);\r\n var node = el.data('_gridstack_node');\r\n if (node._grid !== self) {\r\n return;\r\n }\r\n self._setupRemovingTimeout(el);\r\n })\r\n .on('dropout', function(event, ui) {\r\n var el = $(ui.draggable);\r\n var node = el.data('_gridstack_node');\r\n if (node._grid !== self) {\r\n return;\r\n }\r\n self._clearRemovingTimeout(el);\r\n });\r\n }\r\n\r\n if (self.opts.acceptWidgets) {\r\n var draggingElement = null;\r\n\r\n var onDrag = function(event, ui) {\r\n var el = draggingElement;\r\n var node = el.data('_gridstack_node');\r\n var pos = self.getCellFromPixel(ui.offset, true);\r\n var x = Math.max(0, pos.x);\r\n var y = Math.max(0, pos.y);\r\n if (!node._added) {\r\n node._added = true;\r\n\r\n node.el = el;\r\n node.x = x;\r\n node.y = y;\r\n self.grid.cleanNodes();\r\n self.grid.beginUpdate(node);\r\n self.grid.addNode(node);\r\n\r\n self.container.append(self.placeholder);\r\n self.placeholder\r\n .attr('data-gs-x', node.x)\r\n .attr('data-gs-y', node.y)\r\n .attr('data-gs-width', node.width)\r\n .attr('data-gs-height', node.height)\r\n .show();\r\n node.el = self.placeholder;\r\n node._beforeDragX = node.x;\r\n node._beforeDragY = node.y;\r\n\r\n self._updateContainerHeight();\r\n } else {\r\n if (!self.grid.canMoveNode(node, x, y)) {\r\n return;\r\n }\r\n self.grid.moveNode(node, x, y);\r\n self._updateContainerHeight();\r\n }\r\n };\r\n\r\n $(self.container).droppable({\r\n accept: function(el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (node && node._grid === self) {\r\n return false;\r\n }\r\n return el.is(self.opts.acceptWidgets === true ? '.grid-stack-item' : self.opts.acceptWidgets);\r\n },\r\n over: function(event, ui) {\r\n var offset = self.container.offset();\r\n var el = $(ui.draggable);\r\n var cellWidth = self.cellWidth();\r\n var cellHeight = self.cellHeight();\r\n var origNode = el.data('_gridstack_node');\r\n\r\n var width = origNode ? origNode.width : (Math.ceil(el.outerWidth() / cellWidth));\r\n var height = origNode ? origNode.height : (Math.ceil(el.outerHeight() / cellHeight));\r\n\r\n draggingElement = el;\r\n\r\n var node = self.grid._prepareNode({width: width, height: height, _added: false, _temporary: true});\r\n el.data('_gridstack_node', node);\r\n el.data('_gridstack_node_orig', origNode);\r\n\r\n el.on('drag', onDrag);\r\n },\r\n out: function(event, ui) {\r\n var el = $(ui.draggable);\r\n el.unbind('drag', onDrag);\r\n var node = el.data('_gridstack_node');\r\n node.el = null;\r\n self.grid.removeNode(node);\r\n self.placeholder.detach();\r\n self._updateContainerHeight();\r\n el.data('_gridstack_node', el.data('_gridstack_node_orig'));\r\n },\r\n drop: function(event, ui) {\r\n self.placeholder.detach();\r\n\r\n var node = $(ui.draggable).data('_gridstack_node');\r\n node._grid = self;\r\n var el = $(ui.draggable).clone(false);\r\n el.data('_gridstack_node', node);\r\n $(ui.draggable).remove();\r\n node.el = el;\r\n self.placeholder.hide();\r\n el\r\n .attr('data-gs-x', node.x)\r\n .attr('data-gs-y', node.y)\r\n .attr('data-gs-width', node.width)\r\n .attr('data-gs-height', node.height)\r\n .addClass(self.opts.itemClass)\r\n .removeAttr('style')\r\n .enableSelection()\r\n .removeData('draggable')\r\n .removeClass('ui-draggable ui-draggable-dragging ui-draggable-disabled')\r\n .unbind('drag', onDrag);\r\n self.container.append(el);\r\n self._prepareElementByNode(el, node);\r\n self._updateContainerHeight();\r\n self._triggerChangeEvent();\r\n\r\n self.grid.endUpdate();\r\n }\r\n });\r\n }\r\n };\r\n\r\n GridStack.prototype._triggerChangeEvent = function(forceTrigger) {\r\n var elements = this.grid.getDirtyNodes();\r\n var hasChanges = false;\r\n\r\n var eventParams = [];\r\n if (elements && elements.length) {\r\n eventParams.push(elements);\r\n hasChanges = true;\r\n }\r\n\r\n if (hasChanges || forceTrigger === true) {\r\n this.container.trigger('change', eventParams);\r\n }\r\n };\r\n\r\n GridStack.prototype._triggerAddEvent = function() {\r\n if (this.grid._addedNodes && this.grid._addedNodes.length > 0) {\r\n this.container.trigger('added', [_.map(this.grid._addedNodes, _.clone)]);\r\n this.grid._addedNodes = [];\r\n }\r\n };\r\n\r\n GridStack.prototype._triggerRemoveEvent = function() {\r\n if (this.grid._removedNodes && this.grid._removedNodes.length > 0) {\r\n this.container.trigger('removed', [_.map(this.grid._removedNodes, _.clone)]);\r\n this.grid._removedNodes = [];\r\n }\r\n };\r\n\r\n GridStack.prototype._initStyles = function() {\r\n if (this._stylesId) {\r\n Utils.removeStylesheet(this._stylesId);\r\n }\r\n this._stylesId = 'gridstack-style-' + (Math.random() * 100000).toFixed();\r\n this._styles = Utils.createStylesheet(this._stylesId);\r\n if (this._styles !== null) {\r\n this._styles._max = 0;\r\n }\r\n };\r\n\r\n GridStack.prototype._updateStyles = function(maxHeight) {\r\n if (this._styles === null || typeof this._styles === 'undefined') {\r\n return;\r\n }\r\n\r\n var prefix = '.' + this.opts._class + ' .' + this.opts.itemClass;\r\n var self = this;\r\n var getHeight;\r\n\r\n if (typeof maxHeight == 'undefined') {\r\n maxHeight = this._styles._max;\r\n this._initStyles();\r\n this._updateContainerHeight();\r\n }\r\n if (!this.opts.cellHeight) { // The rest will be handled by CSS\r\n return ;\r\n }\r\n if (this._styles._max !== 0 && maxHeight <= this._styles._max) {\r\n return ;\r\n }\r\n\r\n if (!this.opts.verticalMargin || this.opts.cellHeightUnit === this.opts.verticalMarginUnit) {\r\n getHeight = function(nbRows, nbMargins) {\r\n return (self.opts.cellHeight * nbRows + self.opts.verticalMargin * nbMargins) +\r\n self.opts.cellHeightUnit;\r\n };\r\n } else {\r\n getHeight = function(nbRows, nbMargins) {\r\n if (!nbRows || !nbMargins) {\r\n return (self.opts.cellHeight * nbRows + self.opts.verticalMargin * nbMargins) +\r\n self.opts.cellHeightUnit;\r\n }\r\n return 'calc(' + ((self.opts.cellHeight * nbRows) + self.opts.cellHeightUnit) + ' + ' +\r\n ((self.opts.verticalMargin * nbMargins) + self.opts.verticalMarginUnit) + ')';\r\n };\r\n }\r\n\r\n if (this._styles._max === 0) {\r\n Utils.insertCSSRule(this._styles, prefix, 'min-height: ' + getHeight(1, 0) + ';', 0);\r\n }\r\n\r\n if (maxHeight > this._styles._max) {\r\n for (var i = this._styles._max; i < maxHeight; ++i) {\r\n Utils.insertCSSRule(this._styles,\r\n prefix + '[data-gs-height=\"' + (i + 1) + '\"]',\r\n 'height: ' + getHeight(i + 1, i) + ';',\r\n i\r\n );\r\n Utils.insertCSSRule(this._styles,\r\n prefix + '[data-gs-min-height=\"' + (i + 1) + '\"]',\r\n 'min-height: ' + getHeight(i + 1, i) + ';',\r\n i\r\n );\r\n Utils.insertCSSRule(this._styles,\r\n prefix + '[data-gs-max-height=\"' + (i + 1) + '\"]',\r\n 'max-height: ' + getHeight(i + 1, i) + ';',\r\n i\r\n );\r\n Utils.insertCSSRule(this._styles,\r\n prefix + '[data-gs-y=\"' + i + '\"]',\r\n 'top: ' + getHeight(i, i) + ';',\r\n i\r\n );\r\n }\r\n this._styles._max = maxHeight;\r\n }\r\n };\r\n\r\n GridStack.prototype._updateContainerHeight = function() {\r\n if (this.grid._updateCounter) {\r\n return;\r\n }\r\n var height = this.grid.getGridHeight();\r\n this.container.attr('data-gs-current-height', height);\r\n if (!this.opts.cellHeight) {\r\n return ;\r\n }\r\n if (!this.opts.verticalMargin) {\r\n this.container.css('height', (height * (this.opts.cellHeight)) + this.opts.cellHeightUnit);\r\n } else if (this.opts.cellHeightUnit === this.opts.verticalMarginUnit) {\r\n this.container.css('height', (height * (this.opts.cellHeight + this.opts.verticalMargin) -\r\n this.opts.verticalMargin) + this.opts.cellHeightUnit);\r\n } else {\r\n this.container.css('height', 'calc(' + ((height * (this.opts.cellHeight)) + this.opts.cellHeightUnit) +\r\n ' + ' + ((height * (this.opts.verticalMargin - 1)) + this.opts.verticalMarginUnit) + ')');\r\n }\r\n };\r\n\r\n GridStack.prototype._isOneColumnMode = function() {\r\n return (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) <=\r\n this.opts.minWidth;\r\n };\r\n\r\n GridStack.prototype._setupRemovingTimeout = function(el) {\r\n var self = this;\r\n var node = $(el).data('_gridstack_node');\r\n\r\n if (node._removeTimeout || !self.opts.removable) {\r\n return;\r\n }\r\n node._removeTimeout = setTimeout(function() {\r\n el.addClass('grid-stack-item-removing');\r\n node._isAboutToRemove = true;\r\n }, self.opts.removeTimeout);\r\n };\r\n\r\n GridStack.prototype._clearRemovingTimeout = function(el) {\r\n var node = $(el).data('_gridstack_node');\r\n\r\n if (!node._removeTimeout) {\r\n return;\r\n }\r\n clearTimeout(node._removeTimeout);\r\n node._removeTimeout = null;\r\n el.removeClass('grid-stack-item-removing');\r\n node._isAboutToRemove = false;\r\n };\r\n\r\n GridStack.prototype._prepareElementByNode = function(el, node) {\r\n var self = this;\r\n\r\n var cellWidth;\r\n var cellHeight;\r\n\r\n var onStartMoving = function (event, ui) {\r\n self.container.append(self.placeholder);\r\n var o = $(this);\r\n self.grid.cleanNodes();\r\n self.grid.beginUpdate(node);\r\n cellWidth = Math.ceil(o.outerWidth() / o.attr('data-gs-width'));\r\n var strictCellHeight = Math.ceil(o.outerHeight() / o.attr('data-gs-height'));\r\n cellHeight = self.container.height() / parseInt(self.container.attr('data-gs-current-height'));\r\n self.placeholder\r\n .attr('data-gs-x', o.attr('data-gs-x'))\r\n .attr('data-gs-y', o.attr('data-gs-y'))\r\n .attr('data-gs-width', o.attr('data-gs-width'))\r\n .attr('data-gs-height', o.attr('data-gs-height'))\r\n .show();\r\n node.el = self.placeholder;\r\n node._beforeDragX = node.x;\r\n node._beforeDragY = node.y;\r\n };\r\n\r\n var onDrag = function (event, ui) {\r\n var x = Math.ceil(ui.position.left / cellWidth);\r\n var y = Math.floor((ui.position.top + cellHeight / 2) / cellHeight);\r\n var width = node.width;\r\n var height = node.height;\r\n\r\n if (y > node._beforeDragY) {\r\n var nn = node;\r\n var hasLocked = Boolean(_.find(self.grid.nodes, function (n) { return n.locked; }));\r\n if (!self.grid.float && !hasLocked) {\r\n nn = { x: x, y: y, width: node.width, height: node.height };\r\n }\r\n var collisionNodes = _.filter(self.grid.nodes, _.bind(Utils._collisionNodeCheck, { node: node, nn: nn }));\r\n if (collisionNodes.length > 0) {\r\n //closest node from collision nodes array is node with min height\r\n var collisionNode = collisionNodes[0];\r\n for (var i = 0; i < collisionNodes.length; i++) {\r\n if (collisionNodes[i].height < collisionNode.height)\r\n collisionNode = collisionNodes[i];\r\n }\r\n var nodePlaceholderY = self.placeholder != undefined ? parseInt(self.placeholder.attr('data-gs-y')) : NaN;\r\n if (!isNaN(nodePlaceholderY) && collisionNode.y < y && collisionNode.y + collisionNode.height > y) {\r\n y = collisionNode.y + collisionNode.height;\r\n self.grid.moveNode(node, x, y, width, height);\r\n self._updateContainerHeight();\r\n return;\r\n }\r\n }\r\n } else {\r\n //remove element from grid if it dragged out from the grid and add it back\r\n /*if (x < 0 || x >= self.grid.width || y < 0) {\r\n if (self.opts.removable === true) {\r\n self._setupRemovingTimeout(el);\r\n }\r\n\r\n x = node._beforeDragX;\r\n y = node._beforeDragY;\r\n\r\n self.placeholder.detach();\r\n self.placeholder.hide();\r\n self.grid.removeNode(node);\r\n self._updateContainerHeight();\r\n\r\n node._temporaryRemoved = true;\r\n } else {\r\n self._clearRemovingTimeout(el);\r\n\r\n if (node._temporaryRemoved) {\r\n self.grid.addNode(node);\r\n self.placeholder\r\n .attr('data-gs-x', x)\r\n .attr('data-gs-y', y)\r\n .attr('data-gs-width', width)\r\n .attr('data-gs-height', height)\r\n .show();\r\n self.container.append(self.placeholder);\r\n node.el = self.placeholder;\r\n node._temporaryRemoved = false;\r\n }\r\n }*/\r\n\r\n if (!self.grid.canMoveNode(node, x, y, width, height)) {\r\n return;\r\n }\r\n self.grid.moveNode(node, x, y, width, height);\r\n self._updateContainerHeight();\r\n }\r\n };\r\n\r\n var onEndMoving = function (event, ui) {\r\n var o = $(this);\r\n if (!o.data('_gridstack_node')) {\r\n return;\r\n }\r\n\r\n var forceNotify = false;\r\n self.placeholder.detach();\r\n node.el = o;\r\n self.placeholder.hide();\r\n\r\n if (node._isAboutToRemove) {\r\n forceNotify = true;\r\n el.removeData('_gridstack_node');\r\n el.remove();\r\n } else {\r\n self._clearRemovingTimeout(el);\r\n if (!node._temporaryRemoved) {\r\n //limit x by actual grid width if dragged out from grid right border (smart snap)\r\n if (node.x + node.width + 1 >= self.grid.width && ui.helper.position().left > self.placeholder.position().left) {\r\n node.x = self.grid.width - node.width;\r\n }\r\n o\r\n .attr('data-gs-x', node.x)\r\n .attr('data-gs-y', node.y)\r\n .attr('data-gs-width', node.width)\r\n .attr('data-gs-height', node.height)\r\n .removeAttr('style');\r\n } else {\r\n o\r\n .attr('data-gs-x', node._beforeDragX)\r\n .attr('data-gs-y', node._beforeDragY)\r\n .attr('data-gs-width', node.width)\r\n .attr('data-gs-height', node.height)\r\n .removeAttr('style');\r\n node.x = node._beforeDragX;\r\n node.y = node._beforeDragY;\r\n self.grid.addNode(node);\r\n }\r\n }\r\n self._updateContainerHeight();\r\n self._triggerChangeEvent(forceNotify);\r\n\r\n self.grid.endUpdate();\r\n\r\n var nestedGrids = o.find('.grid-stack');\r\n if (nestedGrids.length && event.type == 'resizestop') {\r\n nestedGrids.each(function(index, el) {\r\n $(el).data('gridstack').onResizeHandler();\r\n });\r\n o.find('.grid-stack-item').trigger('resizestop');\r\n }\r\n };\r\n\r\n var lastY = 0;\r\n var onStartResize = function (event, ui) {\r\n lastY = event.pageY;\r\n self.container.append(self.placeholder);\r\n var o = $(this);\r\n self.grid.cleanNodes();\r\n self.grid.beginUpdate(node);\r\n cellWidth = Math.ceil(o.outerWidth() / o.attr('data-gs-width'));\r\n var strictCellHeight = Math.ceil(o.outerHeight() / o.attr('data-gs-height'));\r\n cellHeight = strictCellHeight;\r\n self.placeholder\r\n .attr('data-gs-x', o.attr('data-gs-x'))\r\n .attr('data-gs-y', o.attr('data-gs-y'))\r\n .attr('data-gs-width', o.attr('data-gs-width'))\r\n .attr('data-gs-height', o.attr('data-gs-height'))\r\n .show();\r\n node.el = self.placeholder;\r\n node._beforeResizeWidth = o.attr('data-gs-width');\r\n node._beforeResizeHeight = o.attr('data-gs-height');\r\n \r\n el.resizable('option', 'minWidth', cellWidth * (node.minWidth || 1));\r\n el.resizable('option', 'minHeight', strictCellHeight * (node.minHeight || 1));\r\n\r\n if (event.type == 'resizestart') {\r\n o.find('.grid-stack-item').trigger('resizestart');\r\n }\r\n };\r\n\r\n var onResize = function (event, ui) {\r\n var deltaY = event.pageY - lastY;\r\n var width = Math.round(ui.size.width / cellWidth);\r\n var height = Math.round(ui.size.height / cellHeight);\r\n\r\n if (deltaY > 0 && self.container.height() <= ui.position.top + ui.size.height + deltaY) {\r\n self.container.height(self.container.height() + deltaY);\r\n height += Math.round(deltaY / cellHeight);\r\n }\r\n\r\n if (!self.grid.canMoveNode(node, node.x, node.y, width, height)) {\r\n return;\r\n }\r\n self.grid.moveNode(node, node.x, node.y, width, height);\r\n self._updateContainerHeight();\r\n };\r\n\r\n var onEndResize = function (event, ui) {\r\n var o = $(this);\r\n if (!o.data('_gridstack_node')) {\r\n return;\r\n }\r\n\r\n var deltaY = event.pageY - lastY;\r\n //Calc width after resizing (smart snap)\r\n node.width = Math.round(ui.size.width / cellWidth) + 1;\r\n node.height = Math.round(ui.size.height / cellHeight);\r\n //limit width by actual grid width if resized out from grid right border (smart snap)\r\n if (node.x + node.width + 1 >= self.grid.width && ui.size.width > self.placeholder.width()) {\r\n node.width = self.grid.width - node.x;\r\n }\r\n //save expanding grid when resizing widget height over grid height\r\n if (deltaY > 0 && self.container.height() <= ui.position.top + ui.size.height + deltaY) {\r\n self.container.height(self.container.height() + deltaY);\r\n node.height += Math.round(deltaY / cellHeight);\r\n }\r\n\r\n var forceNotify = false;\r\n self.placeholder.detach();\r\n node.el = o;\r\n self.placeholder.hide();\r\n\r\n if (node._isAboutToRemove) {\r\n forceNotify = true;\r\n el.removeData('_gridstack_node');\r\n el.remove();\r\n } else {\r\n self._clearRemovingTimeout(el);\r\n if (!node._temporaryRemoved) {\r\n o\r\n .attr('data-gs-x', node.x)\r\n .attr('data-gs-y', node.y)\r\n .attr('data-gs-width', node.width)\r\n .attr('data-gs-height', node.height)\r\n .removeAttr('style');\r\n } else {\r\n o\r\n .attr('data-gs-x', node._beforeDragX)\r\n .attr('data-gs-y', node._beforeDragY)\r\n .attr('data-gs-width', node.width)\r\n .attr('data-gs-height', node.height)\r\n .removeAttr('style');\r\n node.x = node._beforeDragX;\r\n node.y = node._beforeDragY;\r\n self.grid.addNode(node);\r\n }\r\n }\r\n \r\n self._updateContainerHeight();\r\n self._triggerChangeEvent(forceNotify);\r\n\r\n self.grid.endUpdate();\r\n\r\n var nestedGrids = o.find('.grid-stack');\r\n if (nestedGrids.length && event.type == 'resizestop') {\r\n nestedGrids.each(function (index, el) {\r\n $(el).data('gridstack').onResizeHandler();\r\n });\r\n o.find('.grid-stack-item').trigger('resizestop');\r\n }\r\n };\r\n \r\n //separate handling for drag and resize\r\n el\r\n .draggable(_.extend(this.opts.draggable, {\r\n containment: this.opts.isNested ? this.container.parent() : null,\r\n start: onStartMoving,\r\n stop: onEndMoving,\r\n drag: onDrag\r\n }))\r\n .resizable(_.extend(this.opts.resizable, {\r\n start: onStartResize,\r\n stop: onEndResize,\r\n resize: onResize\r\n }));\r\n\r\n if (node.noMove || this._isOneColumnMode() || this.opts.staticGrid || this.opts.disableDrag) {\r\n el.draggable('disable');\r\n }\r\n\r\n if (node.noResize || this._isOneColumnMode() || this.opts.staticGrid || this.opts.disableResize) {\r\n el.resizable('disable');\r\n }\r\n\r\n el.attr('data-gs-locked', node.locked ? 'yes' : null);\r\n };\r\n\r\n GridStack.prototype._prepareElement = function(el, triggerAddEvent) {\r\n triggerAddEvent = typeof triggerAddEvent != 'undefined' ? triggerAddEvent : false;\r\n var self = this;\r\n el = $(el);\r\n\r\n el.addClass(this.opts.itemClass);\r\n var node = self.grid.addNode({\r\n x: el.attr('data-gs-x'),\r\n y: el.attr('data-gs-y'),\r\n width: el.attr('data-gs-width'),\r\n height: el.attr('data-gs-height'),\r\n maxWidth: el.attr('data-gs-max-width'),\r\n minWidth: el.attr('data-gs-min-width'),\r\n maxHeight: el.attr('data-gs-max-height'),\r\n minHeight: el.attr('data-gs-min-height'),\r\n autoPosition: Utils.toBool(el.attr('data-gs-auto-position')),\r\n noResize: Utils.toBool(el.attr('data-gs-no-resize')),\r\n noMove: Utils.toBool(el.attr('data-gs-no-move')),\r\n locked: Utils.toBool(el.attr('data-gs-locked')),\r\n el: el,\r\n id: el.attr('data-gs-id'),\r\n _grid: self\r\n }, triggerAddEvent);\r\n el.data('_gridstack_node', node);\r\n\r\n this._prepareElementByNode(el, node);\r\n };\r\n\r\n GridStack.prototype.setAnimation = function(enable) {\r\n if (enable) {\r\n this.container.addClass('grid-stack-animate');\r\n } else {\r\n this.container.removeClass('grid-stack-animate');\r\n }\r\n };\r\n\r\n GridStack.prototype.addWidget = function(el, x, y, width, height, autoPosition, minWidth, maxWidth,\r\n minHeight, maxHeight, id) {\r\n el = $(el);\r\n if (typeof x != 'undefined') { el.attr('data-gs-x', x); }\r\n if (typeof y != 'undefined') { el.attr('data-gs-y', y); }\r\n if (typeof width != 'undefined') { el.attr('data-gs-width', width); }\r\n if (typeof height != 'undefined') { el.attr('data-gs-height', height); }\r\n if (typeof autoPosition != 'undefined') { el.attr('data-gs-auto-position', autoPosition ? 'yes' : null); }\r\n if (typeof minWidth != 'undefined') { el.attr('data-gs-min-width', minWidth); }\r\n if (typeof maxWidth != 'undefined') { el.attr('data-gs-max-width', maxWidth); }\r\n if (typeof minHeight != 'undefined') { el.attr('data-gs-min-height', minHeight); }\r\n if (typeof maxHeight != 'undefined') { el.attr('data-gs-max-height', maxHeight); }\r\n if (typeof id != 'undefined') { el.attr('data-gs-id', id); }\r\n this.container.append(el);\r\n this._prepareElement(el, true);\r\n this._triggerAddEvent();\r\n this._updateContainerHeight();\r\n this._triggerChangeEvent(true);\r\n\r\n return el;\r\n };\r\n\r\n GridStack.prototype.makeWidget = function(el) {\r\n el = $(el);\r\n this._prepareElement(el, true);\r\n this._triggerAddEvent();\r\n this._updateContainerHeight();\r\n this._triggerChangeEvent(true);\r\n\r\n return el;\r\n };\r\n\r\n GridStack.prototype.willItFit = function(x, y, width, height, autoPosition) {\r\n var node = {x: x, y: y, width: width, height: height, autoPosition: autoPosition};\r\n return this.grid.canBePlacedWithRespectToHeight(node);\r\n };\r\n\r\n GridStack.prototype.removeWidget = function(el, detachNode) {\r\n detachNode = typeof detachNode === 'undefined' ? true : detachNode;\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n\r\n // For Meteor support: https://github.com/troolee/gridstack.js/pull/272\r\n if (!node) {\r\n node = this.grid.getNodeDataByDOMEl(el);\r\n }\r\n\r\n this.grid.removeNode(node, detachNode);\r\n el.removeData('_gridstack_node');\r\n this._updateContainerHeight();\r\n if (detachNode) {\r\n el.remove();\r\n }\r\n this._triggerChangeEvent(true);\r\n this._triggerRemoveEvent();\r\n };\r\n\r\n GridStack.prototype.removeAll = function(detachNode) {\r\n _.each(this.grid.nodes, _.bind(function(node) {\r\n this.removeWidget(node.el, detachNode);\r\n }, this));\r\n this.grid.nodes = [];\r\n this._updateContainerHeight();\r\n };\r\n\r\n GridStack.prototype.destroy = function(detachGrid) {\r\n $(window).off('resize', this.onResizeHandler);\r\n this.disable();\r\n if (typeof detachGrid != 'undefined' && !detachGrid) {\r\n this.removeAll(false);\r\n } else {\r\n this.container.remove();\r\n }\r\n Utils.removeStylesheet(this._stylesId);\r\n if (this.grid) {\r\n this.grid = null;\r\n }\r\n };\r\n\r\n GridStack.prototype.resizable = function(el, val) {\r\n var self = this;\r\n el = $(el);\r\n el.each(function(index, el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (typeof node == 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n node.noResize = !(val || false);\r\n if (node.noResize || self._isOneColumnMode()) {\r\n el.resizable('disable');\r\n } else {\r\n el.resizable('enable');\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n GridStack.prototype.movable = function(el, val) {\r\n var self = this;\r\n el = $(el);\r\n el.each(function(index, el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (typeof node == 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n node.noMove = !(val || false);\r\n if (node.noMove || self._isOneColumnMode()) {\r\n el.draggable('disable');\r\n el.removeClass('ui-draggable-handle');\r\n } else {\r\n el.draggable('enable');\r\n el.addClass('ui-draggable-handle');\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n GridStack.prototype.enableMove = function(doEnable, includeNewWidgets) {\r\n this.movable(this.container.children('.' + this.opts.itemClass), doEnable);\r\n if (includeNewWidgets) {\r\n this.opts.disableDrag = !doEnable;\r\n }\r\n };\r\n\r\n GridStack.prototype.enableResize = function(doEnable, includeNewWidgets) {\r\n this.resizable(this.container.children('.' + this.opts.itemClass), doEnable);\r\n if (includeNewWidgets) {\r\n this.opts.disableResize = !doEnable;\r\n }\r\n };\r\n\r\n GridStack.prototype.disable = function() {\r\n this.movable(this.container.children('.' + this.opts.itemClass), false);\r\n this.resizable(this.container.children('.' + this.opts.itemClass), false);\r\n this.container.trigger('disable');\r\n };\r\n\r\n GridStack.prototype.enable = function() {\r\n this.movable(this.container.children('.' + this.opts.itemClass), true);\r\n this.resizable(this.container.children('.' + this.opts.itemClass), true);\r\n this.container.trigger('enable');\r\n };\r\n\r\n GridStack.prototype.locked = function(el, val) {\r\n el = $(el);\r\n el.each(function(index, el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (typeof node == 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n node.locked = (val || false);\r\n el.attr('data-gs-locked', node.locked ? 'yes' : null);\r\n });\r\n return this;\r\n };\r\n\r\n GridStack.prototype.maxHeight = function(el, val) {\r\n el = $(el);\r\n el.each(function(index, el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (typeof node === 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n if (!isNaN(val)) {\r\n node.maxHeight = (val || false);\r\n el.attr('data-gs-max-height', val);\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n GridStack.prototype.minHeight = function(el, val) {\r\n el = $(el);\r\n el.each(function(index, el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (typeof node === 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n if (!isNaN(val)) {\r\n node.minHeight = (val || false);\r\n el.attr('data-gs-min-height', val);\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n GridStack.prototype.maxWidth = function(el, val) {\r\n el = $(el);\r\n el.each(function(index, el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (typeof node === 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n if (!isNaN(val)) {\r\n node.maxWidth = (val || false);\r\n el.attr('data-gs-max-width', val);\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n GridStack.prototype.minWidth = function(el, val) {\r\n el = $(el);\r\n el.each(function(index, el) {\r\n el = $(el);\r\n var node = el.data('_gridstack_node');\r\n if (typeof node === 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n if (!isNaN(val)) {\r\n node.minWidth = (val || false);\r\n el.attr('data-gs-min-width', val);\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n GridStack.prototype._updateElement = function(el, callback) {\r\n el = $(el).first();\r\n var node = el.data('_gridstack_node');\r\n if (typeof node == 'undefined' || node === null) {\r\n return;\r\n }\r\n\r\n var self = this;\r\n\r\n self.grid.cleanNodes();\r\n self.grid.beginUpdate(node);\r\n\r\n callback.call(this, el, node);\r\n\r\n self._updateContainerHeight();\r\n self._triggerChangeEvent();\r\n\r\n self.grid.endUpdate();\r\n };\r\n\r\n GridStack.prototype.resize = function(el, width, height) {\r\n this._updateElement(el, function(el, node) {\r\n width = (width !== null && typeof width != 'undefined') ? width : node.width;\r\n height = (height !== null && typeof height != 'undefined') ? height : node.height;\r\n\r\n this.grid.moveNode(node, node.x, node.y, width, height);\r\n });\r\n };\r\n\r\n GridStack.prototype.move = function(el, x, y) {\r\n this._updateElement(el, function(el, node) {\r\n x = (x !== null && typeof x != 'undefined') ? x : node.x;\r\n y = (y !== null && typeof y != 'undefined') ? y : node.y;\r\n\r\n this.grid.moveNode(node, x, y, node.width, node.height);\r\n });\r\n };\r\n\r\n GridStack.prototype.update = function(el, x, y, width, height) {\r\n this._updateElement(el, function(el, node) {\r\n x = (x !== null && typeof x != 'undefined') ? x : node.x;\r\n y = (y !== null && typeof y != 'undefined') ? y : node.y;\r\n width = (width !== null && typeof width != 'undefined') ? width : node.width;\r\n height = (height !== null && typeof height != 'undefined') ? height : node.height;\r\n\r\n this.grid.moveNode(node, x, y, width, height);\r\n });\r\n };\r\n\r\n GridStack.prototype.verticalMargin = function(val, noUpdate) {\r\n if (typeof val == 'undefined') {\r\n return this.opts.verticalMargin;\r\n }\r\n\r\n var heightData = Utils.parseHeight(val);\r\n\r\n if (this.opts.verticalMarginUnit === heightData.unit && this.opts.height === heightData.height) {\r\n return ;\r\n }\r\n this.opts.verticalMarginUnit = heightData.unit;\r\n this.opts.verticalMargin = heightData.height;\r\n\r\n if (!noUpdate) {\r\n this._updateStyles();\r\n }\r\n };\r\n\r\n GridStack.prototype.cellHeight = function(val, noUpdate) {\r\n if (typeof val == 'undefined') {\r\n if (this.opts.cellHeight) {\r\n return this.opts.cellHeight;\r\n }\r\n var o = this.container.children('.' + this.opts.itemClass).first();\r\n return Math.ceil(o.outerHeight() / o.attr('data-gs-height'));\r\n }\r\n var heightData = Utils.parseHeight(val);\r\n\r\n if (this.opts.cellHeightUnit === heightData.heightUnit && this.opts.height === heightData.height) {\r\n return ;\r\n }\r\n this.opts.cellHeightUnit = heightData.unit;\r\n this.opts.cellHeight = heightData.height;\r\n\r\n if (!noUpdate) {\r\n this._updateStyles();\r\n }\r\n\r\n };\r\n\r\n GridStack.prototype.cellWidth = function() {\r\n var o = this.container.children('.' + this.opts.itemClass).first();\r\n return Math.ceil(o.outerWidth() / parseInt(o.attr('data-gs-width'), 10));\r\n };\r\n\r\n GridStack.prototype.getCellFromPixel = function(position, useOffset) {\r\n var containerPos = (typeof useOffset != 'undefined' && useOffset) ?\r\n this.container.offset() : this.container.position();\r\n var relativeLeft = position.left - containerPos.left;\r\n var relativeTop = position.top - containerPos.top;\r\n\r\n var columnWidth = Math.floor(this.container.width() / this.opts.width);\r\n var rowHeight = Math.floor(this.container.height() / parseInt(this.container.attr('data-gs-current-height')));\r\n\r\n return {x: Math.floor(relativeLeft / columnWidth), y: Math.floor(relativeTop / rowHeight)};\r\n };\r\n\r\n GridStack.prototype.batchUpdate = function() {\r\n this.grid.batchUpdate();\r\n };\r\n\r\n GridStack.prototype.commit = function() {\r\n this.grid.commit();\r\n this._updateContainerHeight();\r\n };\r\n\r\n GridStack.prototype.isAreaEmpty = function(x, y, width, height) {\r\n return this.grid.isAreaEmpty(x, y, width, height);\r\n };\r\n\r\n GridStack.prototype.setStatic = function(staticValue) {\r\n this.opts.staticGrid = (staticValue === true);\r\n this.enableMove(!staticValue);\r\n this.enableResize(!staticValue);\r\n this._setStaticClass();\r\n };\r\n\r\n GridStack.prototype._setStaticClass = function() {\r\n var staticClassName = 'grid-stack-static';\r\n\r\n if (this.opts.staticGrid === true) {\r\n this.container.addClass(staticClassName);\r\n } else {\r\n this.container.removeClass(staticClassName);\r\n }\r\n };\r\n\r\n GridStack.prototype._updateNodeWidths = function(oldWidth, newWidth) {\r\n this.grid._sortNodes();\r\n this.grid.batchUpdate();\r\n var node = {};\r\n for (var i = 0; i < this.grid.nodes.length; i++) {\r\n node = this.grid.nodes[i];\r\n this.update(node.el, Math.round(node.x * newWidth / oldWidth), undefined,\r\n Math.round(node.width * newWidth / oldWidth), undefined);\r\n }\r\n this.grid.commit();\r\n };\r\n\r\n GridStack.prototype.setGridWidth = function(gridWidth,doNotPropagate) {\r\n this.container.removeClass('grid-stack-' + this.opts.width);\r\n if (doNotPropagate !== true) {\r\n this._updateNodeWidths(this.opts.width, gridWidth);\r\n }\r\n this.opts.width = gridWidth;\r\n this.grid.width = gridWidth;\r\n this.container.addClass('grid-stack-' + gridWidth);\r\n };\r\n\r\n // jscs:disable requireCamelCaseOrUpperCaseIdentifiers\r\n GridStackEngine.prototype.batch_update = obsolete(GridStackEngine.prototype.batchUpdate);\r\n GridStackEngine.prototype._fix_collisions = obsolete(GridStackEngine.prototype._fixCollisions,\r\n '_fix_collisions', '_fixCollisions');\r\n GridStackEngine.prototype.is_area_empty = obsolete(GridStackEngine.prototype.isAreaEmpty,\r\n 'is_area_empty', 'isAreaEmpty');\r\n GridStackEngine.prototype._sort_nodes = obsolete(GridStackEngine.prototype._sortNodes,\r\n '_sort_nodes', '_sortNodes');\r\n GridStackEngine.prototype._pack_nodes = obsolete(GridStackEngine.prototype._packNodes,\r\n '_pack_nodes', '_packNodes');\r\n GridStackEngine.prototype._prepare_node = obsolete(GridStackEngine.prototype._prepareNode,\r\n '_prepare_node', '_prepareNode');\r\n GridStackEngine.prototype.clean_nodes = obsolete(GridStackEngine.prototype.cleanNodes,\r\n 'clean_nodes', 'cleanNodes');\r\n GridStackEngine.prototype.get_dirty_nodes = obsolete(GridStackEngine.prototype.getDirtyNodes,\r\n 'get_dirty_nodes', 'getDirtyNodes');\r\n GridStackEngine.prototype.add_node = obsolete(GridStackEngine.prototype.addNode,\r\n 'add_node', 'addNode, ');\r\n GridStackEngine.prototype.remove_node = obsolete(GridStackEngine.prototype.removeNode,\r\n 'remove_node', 'removeNode');\r\n GridStackEngine.prototype.can_move_node = obsolete(GridStackEngine.prototype.canMoveNode,\r\n 'can_move_node', 'canMoveNode');\r\n GridStackEngine.prototype.move_node = obsolete(GridStackEngine.prototype.moveNode,\r\n 'move_node', 'moveNode');\r\n GridStackEngine.prototype.get_grid_height = obsolete(GridStackEngine.prototype.getGridHeight,\r\n 'get_grid_height', 'getGridHeight');\r\n GridStackEngine.prototype.begin_update = obsolete(GridStackEngine.prototype.beginUpdate,\r\n 'begin_update', 'beginUpdate');\r\n GridStackEngine.prototype.end_update = obsolete(GridStackEngine.prototype.endUpdate,\r\n 'end_update', 'endUpdate');\r\n GridStackEngine.prototype.can_be_placed_with_respect_to_height =\r\n obsolete(GridStackEngine.prototype.canBePlacedWithRespectToHeight,\r\n 'can_be_placed_with_respect_to_height', 'canBePlacedWithRespectToHeight');\r\n GridStack.prototype._trigger_change_event = obsolete(GridStack.prototype._triggerChangeEvent,\r\n '_trigger_change_event', '_triggerChangeEvent');\r\n GridStack.prototype._init_styles = obsolete(GridStack.prototype._initStyles,\r\n '_init_styles', '_initStyles');\r\n GridStack.prototype._update_styles = obsolete(GridStack.prototype._updateStyles,\r\n '_update_styles', '_updateStyles');\r\n GridStack.prototype._update_container_height = obsolete(GridStack.prototype._updateContainerHeight,\r\n '_update_container_height', '_updateContainerHeight');\r\n GridStack.prototype._is_one_column_mode = obsolete(GridStack.prototype._isOneColumnMode,\r\n '_is_one_column_mode','_isOneColumnMode');\r\n GridStack.prototype._prepare_element = obsolete(GridStack.prototype._prepareElement,\r\n '_prepare_element', '_prepareElement');\r\n GridStack.prototype.set_animation = obsolete(GridStack.prototype.setAnimation,\r\n 'set_animation', 'setAnimation');\r\n GridStack.prototype.add_widget = obsolete(GridStack.prototype.addWidget,\r\n 'add_widget', 'addWidget');\r\n GridStack.prototype.make_widget = obsolete(GridStack.prototype.makeWidget,\r\n 'make_widget', 'makeWidget');\r\n GridStack.prototype.will_it_fit = obsolete(GridStack.prototype.willItFit,\r\n 'will_it_fit', 'willItFit');\r\n GridStack.prototype.remove_widget = obsolete(GridStack.prototype.removeWidget,\r\n 'remove_widget', 'removeWidget');\r\n GridStack.prototype.remove_all = obsolete(GridStack.prototype.removeAll,\r\n 'remove_all', 'removeAll');\r\n GridStack.prototype.min_height = obsolete(GridStack.prototype.minHeight,\r\n 'min_height', 'minHeight');\r\n GridStack.prototype.min_width = obsolete(GridStack.prototype.minWidth,\r\n 'min_width', 'minWidth');\r\n GridStack.prototype._update_element = obsolete(GridStack.prototype._updateElement,\r\n '_update_element', '_updateElement');\r\n GridStack.prototype.cell_height = obsolete(GridStack.prototype.cellHeight,\r\n 'cell_height', 'cellHeight');\r\n GridStack.prototype.cell_width = obsolete(GridStack.prototype.cellWidth,\r\n 'cell_width', 'cellWidth');\r\n GridStack.prototype.get_cell_from_pixel = obsolete(GridStack.prototype.getCellFromPixel,\r\n 'get_cell_from_pixel', 'getCellFromPixel');\r\n GridStack.prototype.batch_update = obsolete(GridStack.prototype.batchUpdate,\r\n 'batch_update', 'batchUpdate');\r\n GridStack.prototype.is_area_empty = obsolete(GridStack.prototype.isAreaEmpty,\r\n 'is_area_empty', 'isAreaEmpty');\r\n GridStack.prototype.set_static = obsolete(GridStack.prototype.setStatic,\r\n 'set_static', 'setStatic');\r\n GridStack.prototype._set_static_class = obsolete(GridStack.prototype._setStaticClass,\r\n '_set_static_class', '_setStaticClass');\r\n // jscs:enable requireCamelCaseOrUpperCaseIdentifiers\r\n\r\n scope.GridStackUI = GridStack;\r\n\r\n scope.GridStackUI.Utils = Utils;\r\n scope.GridStackUI.Engine = GridStackEngine;\r\n\r\n $.fn.gridstack = function(opts) {\r\n return this.each(function() {\r\n var o = $(this);\r\n if (!o.data('gridstack')) {\r\n o\r\n .data('gridstack', new GridStack(this, opts));\r\n }\r\n });\r\n };\r\n\r\n return scope.GridStackUI;\r\n});\r\n","import '../Scripts/widget-page/gridstack'"],"sourceRoot":""}