diff --git a/dist/gridstack.js b/dist/gridstack.js
index 36689a4..7396fe5 100644
--- a/dist/gridstack.js
+++ b/dist/gridstack.js
@@ -9,21 +9,35 @@
if (typeof define === 'function' && define.amd) {
define(['jquery', 'lodash', 'jquery-ui/core', 'jquery-ui/widget', 'jquery-ui/mouse', 'jquery-ui/draggable',
'jquery-ui/resizable'], factory);
- }
- else if (typeof exports !== 'undefined') {
- try { jQuery = require('jquery'); } catch(e) {}
- try { _ = require('lodash'); } catch(e) {}
- factory(jQuery, _);
- }
- else {
+ } else if (typeof exports !== 'undefined') {
+ try { jQuery = require('jquery'); } catch (e) {}
+ try { _ = require('lodash'); } catch (e) {}
+ factory(jQuery, _);
+ } else {
factory(jQuery, _);
}
})(function($, _) {
var scope = window;
+ var obsolete = function(f, oldName, newName) {
+ var wrapper = function() {
+ console.warn('gridstack.js: Function `' + oldName + '` is deprecated as of v0.2.5 and has been replaced with `' +
+ newName + '`. It will be **completely** removed in v1.0.');
+ return f.apply(this, arguments);
+ };
+ wrapper.prototype = f.prototype;
+
+ return wrapper;
+ };
+
+ var obsoleteOpts = function(oldName, newName) {
+ console.warn('gridstack.js: Option `' + oldName + '` is deprecated as of v0.2.5 and has been replaced with `' +
+ newName + '`. It will be **completely** removed in v1.0.');
+ };
+
var Utils = {
- is_intercepted: function(a, b) {
+ isIntercepted: function(a, b) {
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);
},
@@ -33,170 +47,192 @@
return _.sortBy(nodes, function(n) { return dir * (n.x + n.y * width); });
},
- create_stylesheet: function(id) {
+ createStylesheet: function(id) {
var style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.setAttribute('data-gs-id', id);
if (style.styleSheet) {
style.styleSheet.cssText = '';
- }
- else {
+ } else {
style.appendChild(document.createTextNode(''));
}
document.getElementsByTagName('head')[0].appendChild(style);
return style.sheet;
},
- remove_stylesheet: function(id) {
- $("STYLE[data-gs-id=" + id +"]").remove();
+
+ removeStylesheet: function(id) {
+ $('STYLE[data-gs-id=' + id + ']').remove();
},
- insert_css_rule: function(sheet, selector, rules, index) {
+
+ insertCSSRule: function(sheet, selector, rules, index) {
if (typeof sheet.insertRule === 'function') {
sheet.insertRule(selector + '{' + rules + '}', index);
- }
- else if (typeof sheet.addRule === 'function') {
+ } else if (typeof sheet.addRule === 'function') {
sheet.addRule(selector, rules, index);
}
},
toBool: function(v) {
- if (typeof v == 'boolean')
+ if (typeof v == 'boolean') {
return v;
+ }
if (typeof v == 'string') {
v = v.toLowerCase();
- return !(v == '' || v == 'no' || v == 'false' || v == '0');
+ return !(v === '' || v == 'no' || v == 'false' || v == '0');
}
return Boolean(v);
+ },
+
+ _collisionNodeCheck: function(n) {
+ return n != this.node && Utils.isIntercepted(n, this.nn);
+ },
+
+ _didCollideFloat: function(bn) {
+ return this.n != bn &&
+ Utils.isIntercepted({x: this.n.x, y: this.newY, width: this.n.width, height: this.n.height}, bn);
+ },
+
+ _didCollide: function(bn) {
+ return Utils.isIntercepted({x: this.n.x, y: this.newY, width: this.n.width, height: this.n.height}, bn);
+ },
+
+ _isAddNodeIntercepted: function(n) {
+ return Utils.isIntercepted({x: this.x, y: this.y, width: this.node.width, height: this.node.height}, n);
}
};
- var id_seq = 0;
+ // jscs:disable requireCamelCaseOrUpperCaseIdentifiers
+ Utils.is_intercepted = obsolete(Utils.isIntercepted, 'is_intercepted', 'isIntercepted');
- var GridStackEngine = function(width, onchange, float_mode, height, items) {
+ Utils.create_stylesheet = obsolete(Utils.createStylesheet, 'create_stylesheet', 'createStylesheet');
+
+ Utils.remove_stylesheet = obsolete(Utils.removeStylesheet, 'remove_stylesheet', 'removeStylesheet');
+
+ Utils.insert_css_rule = obsolete(Utils.insertCSSRule, 'insert_css_rule', 'insertCSSRule');
+ // jscs:enable requireCamelCaseOrUpperCaseIdentifiers
+
+ var idSeq = 0;
+
+ var GridStackEngine = function(width, onchange, floatMode, height, items) {
this.width = width;
- this['float'] = float_mode || false;
+ this.float = floatMode || false;
this.height = height || 0;
this.nodes = items || [];
this.onchange = onchange || function() {};
- this._update_counter = 0;
- this._float = this['float'];
+ this._updateCounter = 0;
+ this._float = this.float;
};
- GridStackEngine.prototype.batch_update = function() {
- this._update_counter = 1;
+ GridStackEngine.prototype.batchUpdate = function() {
+ this._updateCounter = 1;
this.float = true;
};
GridStackEngine.prototype.commit = function() {
- this._update_counter = 0;
- if (this._update_counter == 0) {
+ this._updateCounter = 0;
+ if (this._updateCounter === 0) {
this.float = this._float;
- this._pack_nodes();
+ this._packNodes();
this._notify();
}
};
- GridStackEngine.prototype._fix_collisions = function(node) {
- this._sort_nodes(-1);
+ GridStackEngine.prototype._fixCollisions = function(node) {
+ var self = this;
+ this._sortNodes(-1);
- var nn = node, has_locked = Boolean(_.find(this.nodes, function(n) { return n.locked }));
- if (!this.float && !has_locked) {
+ var nn = node;
+ var hasLocked = Boolean(_.find(this.nodes, function(n) { return n.locked; }));
+ if (!this.float && !hasLocked) {
nn = {x: 0, y: node.y, width: this.width, height: node.height};
}
-
while (true) {
- var collision_node = _.find(this.nodes, _.bind(function(n) {
- return n != node && Utils.is_intercepted(n, nn);
- }, this));
- if (typeof collision_node == 'undefined') {
+ var collisionNode = _.find(this.nodes, _.bind(Utils._collisionNodeCheck, {node: node, nn: nn}));
+ if (typeof collisionNode == 'undefined') {
return;
}
- this.move_node(collision_node, collision_node.x, node.y + node.height,
- collision_node.width, collision_node.height, true);
+ this.moveNode(collisionNode, collisionNode.x, node.y + node.height,
+ collisionNode.width, collisionNode.height, true);
}
};
- GridStackEngine.prototype.is_area_empty = function(x, y, width, height) {
+ GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height) {
var nn = {x: x || 0, y: y || 0, width: width || 1, height: height || 1};
- var collision_node = _.find(this.nodes, _.bind(function(n) {
- return Utils.is_intercepted(n, nn);
+ var collisionNode = _.find(this.nodes, _.bind(function(n) {
+ return Utils.isIntercepted(n, nn);
}, this));
- return collision_node == null;
+ return collisionNode === null;
};
- GridStackEngine.prototype._sort_nodes = function(dir) {
+ GridStackEngine.prototype._sortNodes = function(dir) {
this.nodes = Utils.sort(this.nodes, dir, this.width);
};
- GridStackEngine.prototype._pack_nodes = function() {
- this._sort_nodes();
+ GridStackEngine.prototype._packNodes = function() {
+ this._sortNodes();
if (this.float) {
_.each(this.nodes, _.bind(function(n, i) {
- if (n._updating || typeof n._orig_y == 'undefined' || n.y == n._orig_y)
+ if (n._updating || typeof n._origY == 'undefined' || n.y == n._origY) {
return;
+ }
- var new_y = n.y;
- while (new_y >= n._orig_y) {
- var collision_node = _.chain(this.nodes)
- .find(function(bn) {
- return n != bn &&
- Utils.is_intercepted({x: n.x, y: new_y, width: n.width, height: n.height}, bn);
- })
+ var newY = n.y;
+ while (newY >= n._origY) {
+ var collisionNode = _.chain(this.nodes)
+ .find(_.bind(Utils._didCollide, {n: n, newY: newY}))
.value();
- if (!collision_node) {
+ if (!collisionNode) {
n._dirty = true;
- n.y = new_y;
+ n.y = newY;
}
- --new_y;
+ --newY;
}
}, this));
- }
- else {
+ } else {
_.each(this.nodes, _.bind(function(n, i) {
- if (n.locked)
+ if (n.locked) {
return;
+ }
while (n.y > 0) {
- var new_y = n.y - 1;
- var can_be_moved = i == 0;
+ var newY = n.y - 1;
+ var canBeMoved = i === 0;
if (i > 0) {
- var collision_node = _.chain(this.nodes)
+ var collisionNode = _.chain(this.nodes)
.take(i)
- .find(function(bn) {
- return Utils.is_intercepted({x: n.x, y: new_y, width: n.width, height: n.height}, bn);
- })
+ .find(_.bind(Utils._didCollide, {n: n, newY: newY}))
.value();
- can_be_moved = typeof collision_node == 'undefined';
+ canBeMoved = typeof collisionNode == 'undefined';
}
- if (!can_be_moved) {
+ if (!canBeMoved) {
break;
}
- n._dirty = n.y != new_y;
- n.y = new_y;
+ n._dirty = n.y != newY;
+ n.y = newY;
}
}, this));
}
};
- GridStackEngine.prototype._prepare_node = function(node, resizing) {
- node = _.defaults(node || {}, {width: 1, height: 1, x: 0, y: 0 });
+ GridStackEngine.prototype._prepareNode = function(node, resizing) {
+ node = _.defaults(node || {}, {width: 1, height: 1, x: 0, y: 0});
node.x = parseInt('' + node.x);
node.y = parseInt('' + node.y);
node.width = parseInt('' + node.width);
node.height = parseInt('' + node.height);
- node.auto_position = node.auto_position || false;
- node.no_resize = node.no_resize || false;
- node.no_move = node.no_move || false;
+ node.autoPosition = node.autoPosition || false;
+ node.noResize = node.noResize || false;
+ node.noMove = node.noMove || false;
if (node.width > this.width) {
node.width = this.width;
- }
- else if (node.width < 1) {
+ } else if (node.width < 1) {
node.width = 1;
}
@@ -211,8 +247,7 @@
if (node.x + node.width > this.width) {
if (resizing) {
node.width = this.width - node.x;
- }
- else {
+ } else {
node.x = this.width - node.width;
}
}
@@ -225,44 +260,43 @@
};
GridStackEngine.prototype._notify = function() {
- if (this._update_counter) {
+ if (this._updateCounter) {
return;
}
- var deleted_nodes = Array.prototype.slice.call(arguments, 1).concat(this.get_dirty_nodes());
- deleted_nodes = deleted_nodes.concat(this.get_dirty_nodes());
- this.onchange(deleted_nodes);
+ var deletedNodes = Array.prototype.slice.call(arguments, 1).concat(this.getDirtyNodes());
+ deletedNodes = deletedNodes.concat(this.getDirtyNodes());
+ this.onchange(deletedNodes);
};
- GridStackEngine.prototype.clean_nodes = function() {
- _.each(this.nodes, function(n) {n._dirty = false });
+ GridStackEngine.prototype.cleanNodes = function() {
+ _.each(this.nodes, function(n) {n._dirty = false; });
};
- GridStackEngine.prototype.get_dirty_nodes = function() {
+ GridStackEngine.prototype.getDirtyNodes = function() {
return _.filter(this.nodes, function(n) { return n._dirty; });
};
- GridStackEngine.prototype.add_node = function(node) {
- node = this._prepare_node(node);
+ GridStackEngine.prototype.addNode = function(node) {
+ node = this._prepareNode(node);
- if (typeof node.max_width != 'undefined') node.width = Math.min(node.width, node.max_width);
- if (typeof node.max_height != 'undefined') node.height = Math.min(node.height, node.max_height);
- if (typeof node.min_width != 'undefined') node.width = Math.max(node.width, node.min_width);
- if (typeof node.min_height != 'undefined') node.height = Math.max(node.height, node.min_height);
+ if (typeof node.maxWidth != 'undefined') { node.width = Math.min(node.width, node.maxWidth); }
+ if (typeof node.maxHeight != 'undefined') { node.height = Math.min(node.height, node.maxHeight); }
+ if (typeof node.minWidth != 'undefined') { node.width = Math.max(node.width, node.minWidth); }
+ if (typeof node.minHeight != 'undefined') { node.height = Math.max(node.height, node.minHeight); }
- node._id = ++id_seq;
+ node._id = ++idSeq;
node._dirty = true;
- if (node.auto_position) {
- this._sort_nodes();
+ if (node.autoPosition) {
+ this._sortNodes();
for (var i = 0;; ++i) {
- var x = i % this.width, y = Math.floor(i / this.width);
+ var x = i % this.width;
+ var y = Math.floor(i / this.width);
if (x + node.width > this.width) {
continue;
}
- if (!_.find(this.nodes, function(n) {
- return Utils.is_intercepted({x: x, y: y, width: node.width, height: node.height}, n);
- })) {
+ if (!_.find(this.nodes, _.bind(Utils._isAddNodeIntercepted, {x: x, y: y, node: node}))) {
node.x = x;
node.y = y;
break;
@@ -272,26 +306,27 @@
this.nodes.push(node);
- this._fix_collisions(node);
- this._pack_nodes();
+ this._fixCollisions(node);
+ this._packNodes();
this._notify();
return node;
};
- GridStackEngine.prototype.remove_node = function(node) {
+ GridStackEngine.prototype.removeNode = function(node) {
node._id = null;
this.nodes = _.without(this.nodes, node);
- this._pack_nodes();
+ this._packNodes();
this._notify(node);
};
- GridStackEngine.prototype.can_move_node = function(node, x, y, width, height) {
- var has_locked = Boolean(_.find(this.nodes, function(n) { return n.locked }));
+ GridStackEngine.prototype.canMoveNode = function(node, x, y, width, height) {
+ var hasLocked = Boolean(_.find(this.nodes, function(n) { return n.locked; }));
- if (!this.height && !has_locked)
+ if (!this.height && !hasLocked) {
return true;
+ }
- var cloned_node;
+ var clonedNode;
var clone = new GridStackEngine(
this.width,
null,
@@ -299,50 +334,53 @@
0,
_.map(this.nodes, function(n) {
if (n == node) {
- cloned_node = $.extend({}, n);
- return cloned_node;
+ clonedNode = $.extend({}, n);
+ return clonedNode;
}
return $.extend({}, n);
}));
- clone.move_node(cloned_node, x, y, width, height);
+ clone.moveNode(clonedNode, x, y, width, height);
var res = true;
- if (has_locked)
+ if (hasLocked) {
res &= !Boolean(_.find(clone.nodes, function(n) {
- return n != cloned_node && Boolean(n.locked) && Boolean(n._dirty);
+ return n != clonedNode && Boolean(n.locked) && Boolean(n._dirty);
}));
- if (this.height)
- res &= clone.get_grid_height() <= this.height;
+ }
+ if (this.height) {
+ res &= clone.getGridHeight() <= this.height;
+ }
return res;
};
- GridStackEngine.prototype.can_be_placed_with_respect_to_height = function(node) {
- if (!this.height)
+ GridStackEngine.prototype.canBePlacedWithRespectToHeight = function(node) {
+ if (!this.height) {
return true;
+ }
var clone = new GridStackEngine(
this.width,
null,
this.float,
0,
- _.map(this.nodes, function(n) { return $.extend({}, n) }));
- clone.add_node(node);
- return clone.get_grid_height() <= this.height;
+ _.map(this.nodes, function(n) { return $.extend({}, n); }));
+ clone.addNode(node);
+ return clone.getGridHeight() <= this.height;
};
- GridStackEngine.prototype.move_node = function(node, x, y, width, height, no_pack) {
- if (typeof x != 'number') x = node.x;
- if (typeof y != 'number') y = node.y;
- if (typeof width != 'number') width = node.width;
- if (typeof height != 'number') height = node.height;
+ GridStackEngine.prototype.moveNode = function(node, x, y, width, height, noPack) {
+ if (typeof x != 'number') { x = node.x; }
+ if (typeof y != 'number') { y = node.y; }
+ if (typeof width != 'number') { width = node.width; }
+ if (typeof height != 'number') { height = node.height; }
- if (typeof node.max_width != 'undefined') width = Math.min(width, node.max_width);
- if (typeof node.max_height != 'undefined') height = Math.min(height, node.max_height);
- if (typeof node.min_width != 'undefined') width = Math.max(width, node.min_width);
- if (typeof node.min_height != 'undefined') height = Math.max(height, node.min_height);
+ if (typeof node.maxWidth != 'undefined') { width = Math.min(width, node.maxWidth); }
+ if (typeof node.maxHeight != 'undefined') { height = Math.min(height, node.maxHeight); }
+ if (typeof node.minWidth != 'undefined') { width = Math.max(width, node.minWidth); }
+ if (typeof node.minHeight != 'undefined') { height = Math.max(height, node.minHeight); }
if (node.x == x && node.y == y && node.width == width && node.height == height) {
return node;
@@ -356,30 +394,30 @@
node.width = width;
node.height = height;
- node = this._prepare_node(node, resizing);
+ node = this._prepareNode(node, resizing);
- this._fix_collisions(node);
- if (!no_pack) {
- this._pack_nodes();
+ this._fixCollisions(node);
+ if (!noPack) {
+ this._packNodes();
this._notify();
}
return node;
};
- GridStackEngine.prototype.get_grid_height = function() {
+ GridStackEngine.prototype.getGridHeight = function() {
return _.reduce(this.nodes, function(memo, n) { return Math.max(memo, n.y + n.height); }, 0);
};
- GridStackEngine.prototype.begin_update = function(node) {
+ GridStackEngine.prototype.beginUpdate = function(node) {
_.each(this.nodes, function(n) {
- n._orig_y = n.y;
+ n._origY = n.y;
});
node._updating = true;
};
- GridStackEngine.prototype.end_update = function() {
+ GridStackEngine.prototype.endUpdate = function() {
_.each(this.nodes, function(n) {
- n._orig_y = n.y;
+ n._origY = n.y;
});
var n = _.find(this.nodes, function(n) { return n._updating; });
if (n) {
@@ -388,79 +426,128 @@
};
var GridStack = function(el, opts) {
- var self = this, one_column_mode;
+ var self = this;
+ var oneColumnMode;
opts = opts || {};
this.container = $(el);
- opts.item_class = opts.item_class || 'grid-stack-item';
- var is_nested = this.container.closest('.' + opts.item_class).size() > 0;
+ // jscs:disable requireCamelCaseOrUpperCaseIdentifiers
+ if (typeof opts.handle_class !== 'undefined') {
+ opts.handleClass = opts.handle_class;
+ obsoleteOpts('handle_class', 'handleClass');
+ }
+ if (typeof opts.item_class !== 'undefined') {
+ opts.itemClass = opts.item_class;
+ obsoleteOpts('item_class', 'itemClass');
+ }
+ if (typeof opts.placeholder_class !== 'undefined') {
+ opts.placeholderClass = opts.placeholder_class;
+ obsoleteOpts('placeholder_class', 'placeholderClass');
+ }
+ if (typeof opts.placeholder_text !== 'undefined') {
+ opts.placeholderText = opts.placeholder_text;
+ obsoleteOpts('placeholder_text', 'placeholderText');
+ }
+ if (typeof opts.item_class !== 'undefined') {
+ opts.itemClass = opts.item_class;
+ obsoleteOpts('item_class', 'itemClass');
+ }
+ if (typeof opts.cell_height !== 'undefined') {
+ opts.cellHeight = opts.cell_height;
+ obsoleteOpts('cell_height', 'cellHeight');
+ }
+ if (typeof opts.vertical_margin !== 'undefined') {
+ opts.verticalMargin = opts.vertical_margin;
+ obsoleteOpts('vertical_margin', 'verticalMargin');
+ }
+ if (typeof opts.min_width !== 'undefined') {
+ opts.minWidth = opts.min_width;
+ obsoleteOpts('min_width', 'minWidth');
+ }
+ if (typeof opts.static_grid !== 'undefined') {
+ opts.staticGrid = opts.static_grid;
+ obsoleteOpts('static_grid', 'staticGrid');
+ }
+ if (typeof opts.is_nested !== 'undefined') {
+ opts.isNested = opts.is_nested;
+ obsoleteOpts('is_nested', 'isNested');
+ }
+ if (typeof opts.always_show_resize_handle !== 'undefined') {
+ opts.alwaysShowResizeHandle = opts.always_show_resize_handle;
+ obsoleteOpts('always_show_resize_handle', 'alwaysShowResizeHandle');
+ }
+ // jscs:enable requireCamelCaseOrUpperCaseIdentifiers
+
+ opts.itemClass = opts.itemClass || 'grid-stack-item';
+ var isNested = this.container.closest('.' + opts.itemClass).size() > 0;
this.opts = _.defaults(opts || {}, {
width: parseInt(this.container.attr('data-gs-width')) || 12,
height: parseInt(this.container.attr('data-gs-height')) || 0,
- item_class: 'grid-stack-item',
- placeholder_class: 'grid-stack-placeholder',
- placeholder_text: '',
+ itemClass: 'grid-stack-item',
+ placeholderClass: 'grid-stack-placeholder',
+ placeholderText: '',
handle: '.grid-stack-item-content',
- handle_class: null,
- cell_height: 60,
- vertical_margin: 20,
+ handleClass: null,
+ cellHeight: 60,
+ verticalMargin: 20,
auto: true,
- min_width: 768,
+ minWidth: 768,
float: false,
- static_grid: false,
+ staticGrid: false,
_class: 'grid-stack-instance-' + (Math.random() * 10000).toFixed(0),
animate: Boolean(this.container.attr('data-gs-animate')) || false,
- always_show_resize_handle: opts.always_show_resize_handle || false,
+ alwaysShowResizeHandle: opts.alwaysShowResizeHandle || false,
resizable: _.defaults(opts.resizable || {}, {
- autoHide: !(opts.always_show_resize_handle || false),
+ autoHide: !(opts.alwaysShowResizeHandle || false),
handles: 'se'
}),
draggable: _.defaults(opts.draggable || {}, {
- handle: (opts.handle_class ? '.' + opts.handle_class : (opts.handle ? opts.handle : '')) || '.grid-stack-item-content',
+ handle: (opts.handleClass ? '.' + opts.handleClass : (opts.handle ? opts.handle : '')) ||
+ '.grid-stack-item-content',
scroll: false,
appendTo: 'body'
})
});
- this.opts.is_nested = is_nested;
+ this.opts.isNested = isNested;
- this.cell_height(this.opts.cell_height, true);
- this.vertical_margin(this.opts.vertical_margin, true);
+ this.cellHeight(this.opts.cellHeight, true);
+ this.verticalMargin(this.opts.verticalMargin, true);
this.container.addClass(this.opts._class);
- this._set_static_class();
+ this._setStaticClass();
- if (is_nested) {
+ if (isNested) {
this.container.addClass('grid-stack-nested');
}
- this._init_styles();
+ this._initStyles();
this.grid = new GridStackEngine(this.opts.width, function(nodes) {
- var max_height = 0;
+ var maxHeight = 0;
_.each(nodes, function(n) {
- if (n._id == null) {
+ if (n._id === null) {
n.el.remove();
- }
- else {
+ } else {
n.el
.attr('data-gs-x', n.x)
.attr('data-gs-y', n.y)
.attr('data-gs-width', n.width)
.attr('data-gs-height', n.height);
- max_height = Math.max(max_height, n.y + n.height);
+ maxHeight = Math.max(maxHeight, n.y + n.height);
}
});
- self._update_styles(max_height + 10);
+ self._updateStyles(maxHeight + 10);
}, this.opts.float, this.opts.height);
if (this.opts.auto) {
var elements = [];
var _this = this;
- this.container.children('.' + this.opts.item_class + ':not(.' + this.opts.placeholder_class + ')').each(function(index, el) {
+ this.container.children('.' + this.opts.itemClass + ':not(.' + this.opts.placeholderClass + ')')
+ .each(function(index, el) {
el = $(el);
elements.push({
el: el,
@@ -468,67 +555,68 @@
});
});
_.chain(elements).sortBy(function(x) { return x.i; }).each(function(i) {
- self._prepare_element(i.el);
+ self._prepareElement(i.el);
}).value();
}
- this.set_animation(this.opts.animate);
+ this.setAnimation(this.opts.animate);
this.placeholder = $(
- '
' +
- '
' + this.opts.placeholder_text + '
').hide();
+ '' +
+ '
' + this.opts.placeholderText + '
').hide();
- this._update_container_height();
+ this._updateContainerHeight();
- this.on_resize_handler = function() {
- if (self._is_one_column_mode()) {
- if (one_column_mode)
+ this.onResizeHandler = function() {
+ if (self._isOneColumnMode()) {
+ if (oneColumnMode) {
return;
+ }
- one_column_mode = true;
+ oneColumnMode = true;
- self.grid._sort_nodes();
+ self.grid._sortNodes();
_.each(self.grid.nodes, function(node) {
self.container.append(node.el);
- if (self.opts.static_grid) {
+ if (self.opts.staticGrid) {
return;
}
- if (!node.no_move) {
+ if (!node.noMove) {
node.el.draggable('disable');
}
- if (!node.no_resize) {
+ if (!node.noResize) {
node.el.resizable('disable');
}
});
- }
- else {
- if (!one_column_mode)
+ } else {
+ if (!oneColumnMode) {
return;
+ }
- one_column_mode = false;
+ oneColumnMode = false;
- if (self.opts.static_grid) {
+ if (self.opts.staticGrid) {
return;
}
_.each(self.grid.nodes, function(node) {
- if (!node.no_move) {
+ if (!node.noMove) {
node.el.draggable('enable');
}
- if (!node.no_resize) {
+ if (!node.noResize) {
node.el.resizable('enable');
}
});
}
};
- $(window).resize(this.on_resize_handler);
- this.on_resize_handler();
+ $(window).resize(this.onResizeHandler);
+ this.onResizeHandler();
};
- GridStack.prototype._trigger_change_event = function(forceTrigger) {
- var elements = this.grid.get_dirty_nodes();
+ GridStack.prototype._triggerChangeEvent = function(forceTrigger) {
+ var elements = this.grid.getDirtyNodes();
var hasChanges = false;
var eventParams = [];
@@ -542,162 +630,165 @@
}
};
- GridStack.prototype._init_styles = function() {
- if (!this.opts.cell_height) { //that will be handled by CSS
+ GridStack.prototype._initStyles = function() {
+ if (!this.opts.cellHeight) { //that will be handled by CSS
return ;
}
- if (this._styles_id) {
- $('[data-gs-id="' + this._styles_id + '"]').remove();
+ if (this._stylesId) {
+ $('[data-gs-id="' + this._stylesId + '"]').remove();
}
- this._styles_id = 'gridstack-style-' + (Math.random() * 100000).toFixed();
- this._styles = Utils.create_stylesheet(this._styles_id);
- if (this._styles != null)
+ this._stylesId = 'gridstack-style-' + (Math.random() * 100000).toFixed();
+ this._styles = Utils.createStylesheet(this._stylesId);
+ if (this._styles != null) {
this._styles._max = 0;
+ }
};
- GridStack.prototype._update_styles = function(max_height) {
- if (this._styles == null) {
+ GridStack.prototype._updateStyles = function(maxHeight) {
+ if (this._styles === null) {
return;
}
- var prefix = '.' + this.opts._class + ' .' + this.opts.item_class,
- self = this,
- get_height
- ;
+ var prefix = '.' + this.opts._class + ' .' + this.opts.itemClass;
+ var self = this;
+ var getHeight;
- if (typeof max_height == 'undefined') {
- max_height = this._styles._max;
- this._init_styles();
- this._update_container_height();
+ if (typeof maxHeight == 'undefined') {
+ maxHeight = this._styles._max;
+ this._initStyles();
+ this._updateContainerHeight();
}
-
- if (!this.opts.cell_height) { //the rest will be handled by CSS
+ if (!this.opts.cellHeight) { //the rest will be handled by CSS
return ;
}
- if (this._styles._max !== 0 && max_height <= this._styles._max) {
+ if (this._styles._max !== 0 && maxHeight <= this._styles._max) {
return ;
}
- if (!this.opts.vertical_margin || this.opts.cell_height_unit === this.opts.vertical_margin_unit) {
- get_height = function (nbRows, nbMargins) {
- return (self.opts.cell_height * nbRows + self.opts.vertical_margin * nbMargins) + self.opts.cell_height_unit;
- }
+ if (!this.opts.verticalMargin || this.opts.cellHeightUnit === this.opts.verticalMarginUnit) {
+ getHeight = function(nbRows, nbMargins) {
+ return (self.opts.cellHeight * nbRows + self.opts.verticalMargin * nbMargins) + self.opts.cellHeightUnit;
+ };
} else {
- get_height = function (nbRows, nbMargins) {
+ getHeight = function(nbRows, nbMargins) {
if (!nbRows || !nbMargins) {
- return (self.opts.cell_height * nbRows + self.opts.vertical_margin * nbMargins) + self.opts.cell_height_unit;
+ return (self.opts.cellHeight * nbRows + self.opts.verticalMargin * nbMargins) + self.opts.cellHeightUnit;
}
- return 'calc(' + ((self.opts.cell_height * nbRows) + self.opts.cell_height_unit) + ' + ' + ((self.opts.vertical_margin * nbMargins) + self.opts.vertical_margin_unit) + ')';
- }
+ return 'calc(' + ((self.opts.cellHeight * nbRows) + self.opts.cellHeightUnit) + ' + ' +
+ ((self.opts.verticalMargin * nbMargins) + self.opts.verticalMarginUnit) + ')';
+ };
}
- if (this._styles._max == 0) {
- Utils.insert_css_rule(this._styles, prefix, 'min-height: ' + get_height(1, 0) + ';', 0);
+ if (this._styles._max === 0) {
+ Utils.insertCSSRule(this._styles, prefix, 'min-height: ' + getHeight(1, 0) + ';', 0);
}
- if (max_height > this._styles._max) {
- for (var i = this._styles._max; i < max_height; ++i) {
- Utils.insert_css_rule(this._styles,
+ if (maxHeight > this._styles._max) {
+ for (var i = this._styles._max; i < maxHeight; ++i) {
+ Utils.insertCSSRule(this._styles,
prefix + '[data-gs-height="' + (i + 1) + '"]',
- 'height: ' + get_height(i + 1, i) + ';',
+ 'height: ' + getHeight(i + 1, i) + ';',
i
);
- Utils.insert_css_rule(this._styles,
+ Utils.insertCSSRule(this._styles,
prefix + '[data-gs-min-height="' + (i + 1) + '"]',
- 'min-height: ' + get_height(i + 1, i) + ';',
+ 'min-height: ' + getHeight(i + 1, i) + ';',
i
);
- Utils.insert_css_rule(this._styles,
+ Utils.insertCSSRule(this._styles,
prefix + '[data-gs-max-height="' + (i + 1) + '"]',
- 'max-height: ' + get_height(i + 1, i) + ';',
+ 'max-height: ' + getHeight(i + 1, i) + ';',
i
);
- Utils.insert_css_rule(this._styles,
+ Utils.insertCSSRule(this._styles,
prefix + '[data-gs-y="' + i + '"]',
- 'top: ' + get_height(i, i) + ';',
+ 'top: ' + getHeight(i, i) + ';',
i
);
}
- this._styles._max = max_height;
+ this._styles._max = maxHeight;
}
};
- GridStack.prototype._update_container_height = function() {
- if (this.grid._update_counter) {
+ GridStack.prototype._updateContainerHeight = function() {
+ if (this.grid._updateCounter) {
return;
}
- var height = this.grid.get_grid_height();
+ var height = this.grid.getGridHeight();
this.container.attr('data-gs-current-height', height);
- if (!this.opts.cell_height) {
+ if (!this.opts.cellHeight) {
return ;
}
- if (!this.opts.vertical_margin) {
- this.container.css('height', (height * (this.opts.cell_height)) + this.opts.cell_height_unit);
- } else if (this.opts.cell_height_unit === this.opts.vertical_margin_unit) {
- this.container.css('height', (height * (this.opts.cell_height + this.opts.vertical_margin) - this.opts.vertical_margin) + this.opts.cell_height_unit);
+ if (!this.opts.verticalMargin) {
+ this.container.css('height', (height * (this.opts.cellHeight)) + this.opts.cellHeightUnit);
+ } else if (this.opts.cellHeightUnit === this.opts.verticalMarginUnit) {
+ this.container.css('height', (height * (this.opts.cellHeight + this.opts.verticalMargin) -
+ this.opts.verticalMargin) + this.opts.cellHeightUnit);
} else {
- this.container.css('height', 'calc(' + ((height * (this.opts.cell_height)) + this.opts.cell_height_unit) + ' + ' + ((height * (this.opts.vertical_margin - 1)) + this.opts.vertical_margin_unit) + ')');
+ this.container.css('height', 'calc(' + ((height * (this.opts.cellHeight)) + this.opts.cellHeightUnit) +
+ ' + ' + ((height * (this.opts.verticalMargin - 1)) + this.opts.verticalMarginUnit) + ')');
}
};
- GridStack.prototype._is_one_column_mode = function() {
+ GridStack.prototype._isOneColumnMode = function() {
return (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) <=
- this.opts.min_width;
+ this.opts.minWidth;
};
- GridStack.prototype._prepare_element = function(el) {
+ GridStack.prototype._prepareElement = function(el) {
var self = this;
el = $(el);
- el.addClass(this.opts.item_class);
-
- var node = self.grid.add_node({
+ el.addClass(this.opts.itemClass);
+ var node = self.grid.addNode({
x: el.attr('data-gs-x'),
y: el.attr('data-gs-y'),
width: el.attr('data-gs-width'),
height: el.attr('data-gs-height'),
- max_width: el.attr('data-gs-max-width'),
- min_width: el.attr('data-gs-min-width'),
- max_height: el.attr('data-gs-max-height'),
- min_height: el.attr('data-gs-min-height'),
- auto_position: Utils.toBool(el.attr('data-gs-auto-position')),
- no_resize: Utils.toBool(el.attr('data-gs-no-resize')),
- no_move: Utils.toBool(el.attr('data-gs-no-move')),
+ maxWidth: el.attr('data-gs-max-width'),
+ minWidth: el.attr('data-gs-min-width'),
+ maxHeight: el.attr('data-gs-max-height'),
+ minHeight: el.attr('data-gs-min-height'),
+ autoPosition: Utils.toBool(el.attr('data-gs-auto-position')),
+ noResize: Utils.toBool(el.attr('data-gs-no-resize')),
+ noMove: Utils.toBool(el.attr('data-gs-no-move')),
locked: Utils.toBool(el.attr('data-gs-locked')),
el: el
});
el.data('_gridstack_node', node);
- if (self.opts.static_grid) {
+ if (self.opts.staticGrid) {
return;
}
- var cell_width, cell_height;
+ var cellWidth;
+ var cellHeight;
- var drag_or_resize = function(event, ui) {
- var x = Math.round(ui.position.left / cell_width),
- y = Math.floor((ui.position.top + cell_height / 2) / cell_height),
- width, height;
- if (event.type != "drag") {
- width = Math.round(ui.size.width / cell_width);
- height = Math.round(ui.size.height / cell_height);
+ var dragOrResize = function(event, ui) {
+ var x = Math.round(ui.position.left / cellWidth);
+ var y = Math.floor((ui.position.top + cellHeight / 2) / cellHeight);
+ var width;
+ var height;
+ if (event.type != 'drag') {
+ width = Math.round(ui.size.width / cellWidth);
+ height = Math.round(ui.size.height / cellHeight);
}
- if (!self.grid.can_move_node(node, x, y, width, height)) {
+ if (!self.grid.canMoveNode(node, x, y, width, height)) {
return;
}
- self.grid.move_node(node, x, y, width, height);
- self._update_container_height();
+ self.grid.moveNode(node, x, y, width, height);
+ self._updateContainerHeight();
};
- var on_start_moving = function(event, ui) {
+ var onStartMoving = function(event, ui) {
self.container.append(self.placeholder);
var o = $(this);
- self.grid.clean_nodes();
- self.grid.begin_update(node);
- cell_width = Math.ceil(o.outerWidth() / o.attr('data-gs-width'));
- var strict_cell_height = Math.ceil(o.outerHeight() / o.attr('data-gs-height'));
- cell_height = self.container.height() / parseInt(self.container.attr('data-gs-current-height'));
+ self.grid.cleanNodes();
+ self.grid.beginUpdate(node);
+ cellWidth = Math.ceil(o.outerWidth() / o.attr('data-gs-width'));
+ var strictCellHeight = Math.ceil(o.outerHeight() / o.attr('data-gs-height'));
+ cellHeight = self.container.height() / parseInt(self.container.attr('data-gs-current-height'));
self.placeholder
.attr('data-gs-x', o.attr('data-gs-x'))
.attr('data-gs-y', o.attr('data-gs-y'))
@@ -706,15 +797,15 @@
.show();
node.el = self.placeholder;
- el.resizable('option', 'minWidth', cell_width * (node.min_width || 1));
- el.resizable('option', 'minHeight', strict_cell_height * (node.min_height || 1));
+ el.resizable('option', 'minWidth', cellWidth * (node.minWidth || 1));
+ el.resizable('option', 'minHeight', strictCellHeight * (node.minHeight || 1));
if (event.type == 'resizestart') {
o.find('.grid-stack-item').trigger('resizestart');
}
};
- var on_end_moving = function(event, ui) {
+ var onEndMoving = function(event, ui) {
self.placeholder.detach();
var o = $(this);
node.el = o;
@@ -725,15 +816,15 @@
.attr('data-gs-width', node.width)
.attr('data-gs-height', node.height)
.removeAttr('style');
- self._update_container_height();
- self._trigger_change_event();
+ self._updateContainerHeight();
+ self._triggerChangeEvent();
- self.grid.end_update();
+ self.grid.endUpdate();
- var nested_grids = o.find('.grid-stack');
- if (nested_grids.length && event.type == 'resizestop') {
- nested_grids.each(function(index, el) {
- $(el).data('gridstack').on_resize_handler();
+ var nestedGrids = o.find('.grid-stack');
+ if (nestedGrids.length && event.type == 'resizestop') {
+ nestedGrids.each(function(index, el) {
+ $(el).data('gridstack').onResizeHandler();
});
o.find('.grid-stack-item').trigger('resizestop');
}
@@ -741,93 +832,94 @@
el
.draggable(_.extend(this.opts.draggable, {
- containment: this.opts.is_nested ? this.container.parent() : null,
- start: on_start_moving,
- stop: on_end_moving,
- drag: drag_or_resize
+ containment: this.opts.isNested ? this.container.parent() : null,
+ start: onStartMoving,
+ stop: onEndMoving,
+ drag: dragOrResize
}))
.resizable(_.extend(this.opts.resizable, {
- start: on_start_moving,
- stop: on_end_moving,
- resize: drag_or_resize
+ start: onStartMoving,
+ stop: onEndMoving,
+ resize: dragOrResize
}));
- if (node.no_move || this._is_one_column_mode()) {
+ if (node.noMove || this._isOneColumnMode()) {
el.draggable('disable');
}
- if (node.no_resize || this._is_one_column_mode()) {
+ if (node.noResize || this._isOneColumnMode()) {
el.resizable('disable');
}
el.attr('data-gs-locked', node.locked ? 'yes' : null);
};
- GridStack.prototype.set_animation = function(enable) {
+ GridStack.prototype.setAnimation = function(enable) {
if (enable) {
this.container.addClass('grid-stack-animate');
- }
- else {
+ } else {
this.container.removeClass('grid-stack-animate');
}
};
- GridStack.prototype.add_widget = function(el, x, y, width, height, auto_position) {
+ GridStack.prototype.addWidget = function(el, x, y, width, height, autoPosition) {
el = $(el);
- if (typeof x != 'undefined') el.attr('data-gs-x', x);
- if (typeof y != 'undefined') el.attr('data-gs-y', y);
- if (typeof width != 'undefined') el.attr('data-gs-width', width);
- if (typeof height != 'undefined') el.attr('data-gs-height', height);
- if (typeof auto_position != 'undefined') el.attr('data-gs-auto-position', auto_position ? 'yes' : null);
+ if (typeof x != 'undefined') { el.attr('data-gs-x', x); }
+ if (typeof y != 'undefined') { el.attr('data-gs-y', y); }
+ if (typeof width != 'undefined') { el.attr('data-gs-width', width); }
+ if (typeof height != 'undefined') { el.attr('data-gs-height', height); }
+ if (typeof autoPosition != 'undefined') { el.attr('data-gs-auto-position', autoPosition ? 'yes' : null); }
this.container.append(el);
- this._prepare_element(el);
- this._update_container_height();
- this._trigger_change_event(true);
+ this._prepareElement(el);
+ this._updateContainerHeight();
+ this._triggerChangeEvent(true);
return el;
};
- GridStack.prototype.make_widget = function(el) {
+ GridStack.prototype.makeWidget = function(el) {
el = $(el);
- this._prepare_element(el);
- this._update_container_height();
- this._trigger_change_event(true);
+ this._prepareElement(el);
+ this._updateContainerHeight();
+ this._triggerChangeEvent(true);
return el;
};
- GridStack.prototype.will_it_fit = function(x, y, width, height, auto_position) {
- var node = {x: x, y: y, width: width, height: height, auto_position: auto_position};
- return this.grid.can_be_placed_with_respect_to_height(node);
+ GridStack.prototype.willItFit = function(x, y, width, height, autoPosition) {
+ var node = {x: x, y: y, width: width, height: height, autoPosition: autoPosition};
+ return this.grid.canBePlacedWithRespectToHeight(node);
};
- GridStack.prototype.remove_widget = function(el, detach_node) {
- detach_node = typeof detach_node === 'undefined' ? true : detach_node;
+ GridStack.prototype.removeWidget = function(el, detachNode) {
+ detachNode = typeof detachNode === 'undefined' ? true : detachNode;
el = $(el);
var node = el.data('_gridstack_node');
- this.grid.remove_node(node);
+ this.grid.removeNode(node);
el.removeData('_gridstack_node');
- this._update_container_height();
- if (detach_node)
+ this._updateContainerHeight();
+ if (detachNode) {
el.remove();
- this._trigger_change_event(true);
+ }
+ this._triggerChangeEvent(true);
};
- GridStack.prototype.remove_all = function(detach_node) {
+ GridStack.prototype.removeAll = function(detachNode) {
_.each(this.grid.nodes, _.bind(function(node) {
- this.remove_widget(node.el, detach_node);
+ this.removeWidget(node.el, detachNode);
}, this));
this.grid.nodes = [];
- this._update_container_height();
+ this._updateContainerHeight();
};
GridStack.prototype.destroy = function() {
- $(window).off("resize", this.on_resize_handler);
+ $(window).off('resize', this.onResizeHandler);
this.disable();
this.container.remove();
- Utils.remove_stylesheet(this._styles_id);
- if (this.grid)
+ Utils.removeStylesheet(this._stylesId);
+ if (this.grid) {
this.grid = null;
+ }
};
GridStack.prototype.resizable = function(el, val) {
@@ -836,15 +928,14 @@
el.each(function(index, el) {
el = $(el);
var node = el.data('_gridstack_node');
- if (typeof node == 'undefined' || node == null) {
+ if (typeof node == 'undefined' || node === null) {
return;
}
- node.no_resize = !(val || false);
- if (node.no_resize || self._is_one_column_mode()) {
+ node.noResize = !(val || false);
+ if (node.noResize || self._isOneColumnMode()) {
el.resizable('disable');
- }
- else {
+ } else {
el.resizable('enable');
}
});
@@ -857,16 +948,15 @@
el.each(function(index, el) {
el = $(el);
var node = el.data('_gridstack_node');
- if (typeof node == 'undefined' || node == null) {
+ if (typeof node == 'undefined' || node === null) {
return;
}
- node.no_move = !(val || false);
- if (node.no_move || self._is_one_column_mode()) {
+ node.noMove = !(val || false);
+ if (node.noMove || self._isOneColumnMode()) {
el.draggable('disable');
el.removeClass('ui-draggable-handle');
- }
- else {
+ } else {
el.draggable('enable');
el.addClass('ui-draggable-handle');
}
@@ -875,14 +965,14 @@
};
GridStack.prototype.disable = function() {
- this.movable(this.container.children('.' + this.opts.item_class), false);
- this.resizable(this.container.children('.' + this.opts.item_class), false);
+ this.movable(this.container.children('.' + this.opts.itemClass), false);
+ this.resizable(this.container.children('.' + this.opts.itemClass), false);
this.container.trigger('disable');
};
GridStack.prototype.enable = function() {
- this.movable(this.container.children('.' + this.opts.item_class), true);
- this.resizable(this.container.children('.' + this.opts.item_class), true);
+ this.movable(this.container.children('.' + this.opts.itemClass), true);
+ this.resizable(this.container.children('.' + this.opts.itemClass), true);
this.container.trigger('enable');
};
@@ -891,7 +981,7 @@
el.each(function(index, el) {
el = $(el);
var node = el.data('_gridstack_node');
- if (typeof node == 'undefined' || node == null) {
+ if (typeof node == 'undefined' || node === null) {
return;
}
@@ -901,188 +991,268 @@
return this;
};
- GridStack.prototype.min_height = function (el, val) {
+ GridStack.prototype.minHeight = function(el, val) {
el = $(el);
- el.each(function (index, el) {
+ el.each(function(index, el) {
el = $(el);
var node = el.data('_gridstack_node');
if (typeof node == 'undefined' || node == null) {
return;
}
- if(!isNaN(val)){
- node.min_height = (val || false);
+ if (!isNaN(val)) {
+ node.minHeight = (val || false);
el.attr('data-gs-min-height', val);
}
});
return this;
};
- GridStack.prototype.min_width = function (el, val) {
+ GridStack.prototype.minWidth = function(el, val) {
el = $(el);
- el.each(function (index, el) {
+ el.each(function(index, el) {
el = $(el);
var node = el.data('_gridstack_node');
if (typeof node == 'undefined' || node == null) {
return;
}
- if(!isNaN(val)){
- node.min_width = (val || false);
+ if (!isNaN(val)) {
+ node.minWidth = (val || false);
el.attr('data-gs-min-width', val);
}
});
return this;
};
- GridStack.prototype._update_element = function(el, callback) {
+ GridStack.prototype._updateElement = function(el, callback) {
el = $(el).first();
var node = el.data('_gridstack_node');
- if (typeof node == 'undefined' || node == null) {
+ if (typeof node == 'undefined' || node === null) {
return;
}
var self = this;
- self.grid.clean_nodes();
- self.grid.begin_update(node);
+ self.grid.cleanNodes();
+ self.grid.beginUpdate(node);
callback.call(this, el, node);
- self._update_container_height();
- self._trigger_change_event();
+ self._updateContainerHeight();
+ self._triggerChangeEvent();
- self.grid.end_update();
+ self.grid.endUpdate();
};
GridStack.prototype.resize = function(el, width, height) {
- this._update_element(el, function(el, node) {
- width = (width != null && typeof width != 'undefined') ? width : node.width;
- height = (height != null && typeof height != 'undefined') ? height : node.height;
+ this._updateElement(el, function(el, node) {
+ width = (width !== null && typeof width != 'undefined') ? width : node.width;
+ height = (height !== null && typeof height != 'undefined') ? height : node.height;
- this.grid.move_node(node, node.x, node.y, width, height);
+ this.grid.moveNode(node, node.x, node.y, width, height);
});
};
GridStack.prototype.move = function(el, x, y) {
- this._update_element(el, function(el, node) {
- x = (x != null && typeof x != 'undefined') ? x : node.x;
- y = (y != null && typeof y != 'undefined') ? y : node.y;
+ this._updateElement(el, function(el, node) {
+ x = (x !== null && typeof x != 'undefined') ? x : node.x;
+ y = (y !== null && typeof y != 'undefined') ? y : node.y;
- this.grid.move_node(node, x, y, node.width, node.height);
+ this.grid.moveNode(node, x, y, node.width, node.height);
});
};
GridStack.prototype.update = function(el, x, y, width, height) {
- this._update_element(el, function(el, node) {
- x = (x != null && typeof x != 'undefined') ? x : node.x;
- y = (y != null && typeof y != 'undefined') ? y : node.y;
- width = (width != null && typeof width != 'undefined') ? width : node.width;
- height = (height != null && typeof height != 'undefined') ? height : node.height;
+ this._updateElement(el, function(el, node) {
+ x = (x !== null && typeof x != 'undefined') ? x : node.x;
+ y = (y !== null && typeof y != 'undefined') ? y : node.y;
+ width = (width !== null && typeof width != 'undefined') ? width : node.width;
+ height = (height !== null && typeof height != 'undefined') ? height : node.height;
- this.grid.move_node(node, x, y, width, height);
+ this.grid.moveNode(node, x, y, width, height);
});
};
function parseHeight(val) {
var height = val;
- var height_unit = 'px';
+ var heightUnit = 'px';
if (height && _.isString(height)) {
var match = height.match(/^([0-9]+)(px|em|rem)?$/);
if (!match) {
throw new Error('Invalid height');
}
- height_unit = match[2];
+ heightUnit = match[2];
height = parseInt(match[1]);
}
- return {height: height, unit: height_unit};
+ return {height: height, unit: heightUnit};
}
- GridStack.prototype.vertical_margin = function (val, noUpdate) {
+ GridStack.prototype.verticalMargin = function(val, noUpdate) {
if (typeof val == 'undefined') {
- return this.opts.vertical_margin;
+ return this.opts.verticalMargin;
}
var heightData = parseHeight(val);
- if (this.opts.vertical_margin_unit === heightData.unit && this.opts.height === heightData.height) {
+ if (this.opts.verticalMarginUnit === heightData.unit && this.opts.height === heightData.height) {
return ;
}
- this.opts.vertical_margin_unit = heightData.unit;
- this.opts.vertical_margin = heightData.height;
+ this.opts.verticalMarginUnit = heightData.unit;
+ this.opts.verticalMargin = heightData.height;
if (!noUpdate) {
- this._update_styles();
+ this._updateStyles();
}
};
- GridStack.prototype.cell_height = function (val, noUpdate) {
+ GridStack.prototype.cellHeight = function(val, noUpdate) {
if (typeof val == 'undefined') {
- if (this.opts.cell_height) {
- return this.opts.cell_height;
+ if (this.opts.cellHeight) {
+ return this.opts.cellHeight;
} else {
- var o = this.container.children('.' + this.opts.item_class).first();
+ var o = this.container.children('.' + this.opts.itemClass).first();
return Math.ceil(o.outerHeight() / o.attr('data-gs-height'));
}
- }
+ }
var heightData = parseHeight(val);
- if (this.opts.cell_height_unit === heightData.height_unit && this.opts.height === heightData.height) {
+ if (this.opts.cellHeightUnit === heightData.heightUnit && this.opts.height === heightData.height) {
return ;
}
- this.opts.cell_height_unit = heightData.unit;
- this.opts.cell_height = heightData.height;
+ this.opts.cellHeightUnit = heightData.unit;
+ this.opts.cellHeight = heightData.height;
if (!noUpdate) {
- this._update_styles();
+ this._updateStyles();
}
+
};
- GridStack.prototype.cell_width = function() {
- var o = this.container.children('.' + this.opts.item_class).first();
+ GridStack.prototype.cellWidth = function() {
+ var o = this.container.children('.' + this.opts.itemClass).first();
return Math.ceil(o.outerWidth() / o.attr('data-gs-width'));
};
- GridStack.prototype.get_cell_from_pixel = function(position) {
+ GridStack.prototype.getCellFromPixel = function(position) {
var containerPos = this.container.position();
var relativeLeft = position.left - containerPos.left;
var relativeTop = position.top - containerPos.top;
- var column_width = Math.floor(this.container.width() / this.opts.width);
- var row_height = Math.floor(this.container.height() / parseInt(this.container.attr('data-gs-current-height')));
+ var columnWidth = Math.floor(this.container.width() / this.opts.width);
+ var rowHeight = Math.floor(this.container.height() / parseInt(this.container.attr('data-gs-current-height')));
- return {x: Math.floor(relativeLeft / column_width), y: Math.floor(relativeTop / row_height)};
+ return {x: Math.floor(relativeLeft / columnWidth), y: Math.floor(relativeTop / rowHeight)};
};
- GridStack.prototype.batch_update = function() {
- this.grid.batch_update();
+ GridStack.prototype.batchUpdate = function() {
+ this.grid.batchUpdate();
};
GridStack.prototype.commit = function() {
this.grid.commit();
- this._update_container_height();
+ this._updateContainerHeight();
};
- GridStack.prototype.is_area_empty = function(x, y, width, height) {
- return this.grid.is_area_empty(x, y, width, height);
+ GridStack.prototype.isAreaEmpty = function(x, y, width, height) {
+ return this.grid.isAreaEmpty(x, y, width, height);
};
- GridStack.prototype.set_static = function(static_value) {
- this.opts.static_grid = (static_value === true);
- this._set_static_class();
+ GridStack.prototype.setStatic = function(staticValue) {
+ this.opts.staticGrid = (staticValue === true);
+ this._setStaticClass();
};
- GridStack.prototype._set_static_class = function() {
- var static_class_name = 'grid-stack-static';
+ GridStack.prototype._setStaticClass = function() {
+ var staticClassName = 'grid-stack-static';
- if (this.opts.static_grid === true) {
- this.container.addClass(static_class_name);
+ if (this.opts.staticGrid === true) {
+ this.container.addClass(staticClassName);
} else {
- this.container.removeClass(static_class_name);
+ this.container.removeClass(staticClassName);
}
};
+ // jscs:disable requireCamelCaseOrUpperCaseIdentifiers
+ GridStackEngine.prototype.batch_update = obsolete(GridStackEngine.prototype.batchUpdate);
+ GridStackEngine.prototype._fix_collisions = obsolete(GridStackEngine.prototype._fixCollisions,
+ '_fix_collisions', '_fixCollisions');
+ GridStackEngine.prototype.is_area_empty = obsolete(GridStackEngine.prototype.isAreaEmpty,
+ 'is_area_empty', 'isAreaEmpty');
+ GridStackEngine.prototype._sort_nodes = obsolete(GridStackEngine.prototype._sortNodes,
+ '_sort_nodes', '_sortNodes');
+ GridStackEngine.prototype._pack_nodes = obsolete(GridStackEngine.prototype._packNodes,
+ '_pack_nodes', '_packNodes');
+ GridStackEngine.prototype._prepare_node = obsolete(GridStackEngine.prototype._prepareNode,
+ '_prepare_node', '_prepareNode');
+ GridStackEngine.prototype.clean_nodes = obsolete(GridStackEngine.prototype.cleanNodes,
+ 'clean_nodes', 'cleanNodes');
+ GridStackEngine.prototype.get_dirty_nodes = obsolete(GridStackEngine.prototype.getDirtyNodes,
+ 'get_dirty_nodes', 'getDirtyNodes');
+ GridStackEngine.prototype.add_node = obsolete(GridStackEngine.prototype.addNode,
+ 'add_node', 'addNode, ');
+ GridStackEngine.prototype.remove_node = obsolete(GridStackEngine.prototype.removeNode,
+ 'remove_node', 'removeNode');
+ GridStackEngine.prototype.can_move_node = obsolete(GridStackEngine.prototype.canMoveNode,
+ 'can_move_node', 'canMoveNode');
+ GridStackEngine.prototype.move_node = obsolete(GridStackEngine.prototype.moveNode,
+ 'move_node', 'moveNode');
+ GridStackEngine.prototype.get_grid_height = obsolete(GridStackEngine.prototype.getGridHeight,
+ 'get_grid_height', 'getGridHeight');
+ GridStackEngine.prototype.begin_update = obsolete(GridStackEngine.prototype.beginUpdate,
+ 'begin_update', 'beginUpdate');
+ GridStackEngine.prototype.end_update = obsolete(GridStackEngine.prototype.endUpdate,
+ 'end_update', 'endUpdate');
+ GridStackEngine.prototype.can_be_placed_with_respect_to_height =
+ obsolete(GridStackEngine.prototype.canBePlacedWithRespectToHeight,
+ 'can_be_placed_with_respect_to_height', 'canBePlacedWithRespectToHeight');
+ GridStack.prototype._trigger_change_event = obsolete(GridStack.prototype._triggerChangeEvent,
+ '_trigger_change_event', '_triggerChangeEvent');
+ GridStack.prototype._init_styles = obsolete(GridStack.prototype._initStyles,
+ '_init_styles', '_initStyles');
+ GridStack.prototype._update_styles = obsolete(GridStack.prototype._updateStyles,
+ '_update_styles', '_updateStyles');
+ GridStack.prototype._update_container_height = obsolete(GridStack.prototype._updateContainerHeight,
+ '_update_container_height', '_updateContainerHeight');
+ GridStack.prototype._is_one_column_mode = obsolete(GridStack.prototype._isOneColumnMode,
+ '_is_one_column_mode',' _isOneColumnMode');
+ GridStack.prototype._prepare_element = obsolete(GridStack.prototype._prepareElement,
+ '_prepare_element', '_prepareElement');
+ GridStack.prototype.set_animation = obsolete(GridStack.prototype.setAnimation,
+ 'set_animation', 'setAnimation');
+ GridStack.prototype.add_widget = obsolete(GridStack.prototype.addWidget,
+ 'add_widget', 'addWidget');
+ GridStack.prototype.make_widget = obsolete(GridStack.prototype.makeWidget,
+ 'make_widget', 'makeWidget');
+ GridStack.prototype.will_it_fit = obsolete(GridStack.prototype.willItFit,
+ 'will_it_fit', 'willItFit');
+ GridStack.prototype.remove_widget = obsolete(GridStack.prototype.removeWidget,
+ 'remove_widget', 'removeWidget');
+ GridStack.prototype.remove_all = obsolete(GridStack.prototype.removeAll,
+ 'remove_all', 'removeAll');
+ GridStack.prototype.min_height = obsolete(GridStack.prototype.minHeight,
+ 'min_height', 'minHeight');
+ GridStack.prototype.min_width = obsolete(GridStack.prototype.minWidth,
+ 'min_width', 'minWidth');
+ GridStack.prototype._update_element = obsolete(GridStack.prototype._updateElement,
+ '_update_element', '_updateElement');
+ GridStack.prototype.cell_height = obsolete(GridStack.prototype.cellHeight,
+ 'cell_height', 'cellHeight');
+ GridStack.prototype.cell_width = obsolete(GridStack.prototype.cellWidth,
+ 'cell_width', 'cellWidth');
+ GridStack.prototype.get_cell_from_pixel = obsolete(GridStack.prototype.getCellFromPixel,
+ 'get_cell_from_pixel', 'getCellFromPixel');
+ GridStack.prototype.batch_update = obsolete(GridStack.prototype.batchUpdate,
+ 'batch_update', 'batchUpdate');
+ GridStack.prototype.is_area_empty = obsolete(GridStack.prototype.isAreaEmpty,
+ 'is_area_empty', 'isAreaEmpty');
+ GridStack.prototype.set_static = obsolete(GridStack.prototype.setStatic,
+ 'set_static', 'setStatic');
+ GridStack.prototype._set_static_class = obsolete(GridStack.prototype._setStaticClass,
+ '_set_static_class', '_setStaticClass');
+ // jscs:enable requireCamelCaseOrUpperCaseIdentifiers
+
scope.GridStackUI = GridStack;
scope.GridStackUI.Utils = Utils;
diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js
index df10912..2b5b230 100644
--- a/dist/gridstack.min.js
+++ b/dist/gridstack.min.js
@@ -5,5 +5,12 @@
* gridstack.js may be freely distributed under the MIT license.
* @preserve
*/
-!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash","jquery-ui/core","jquery-ui/widget","jquery-ui/mouse","jquery-ui/draggable","jquery-ui/resizable"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(b){}try{_=require("lodash")}catch(b){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^([0-9]+)(px|em|rem)?$/);if(!e)throw new Error("Invalid height");d=e[2],c=parseInt(e[1])}return{height:c,unit:d}}var d=window,e={is_intercepted:function(a,b){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)},sort:function(a,c,d){return d=d||b.chain(a).map(function(a){return a.x+a.width}).max().value(),c=-1!=c?1:-1,b.sortBy(a,function(a){return c*(a.x+a.y*d)})},create_stylesheet:function(a){var b=document.createElement("style");return b.setAttribute("type","text/css"),b.setAttribute("data-gs-id",a),b.styleSheet?b.styleSheet.cssText="":b.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(b),b.sheet},remove_stylesheet:function(b){a("STYLE[data-gs-id="+b+"]").remove()},insert_css_rule:function(a,b,c,d){"function"==typeof a.insertRule?a.insertRule(b+"{"+c+"}",d):"function"==typeof a.addRule&&a.addRule(b,c,d)},toBool:function(a){return"boolean"==typeof a?a:"string"==typeof a?(a=a.toLowerCase(),!(""==a||"no"==a||"false"==a||"0"==a)):Boolean(a)}},f=0,g=function(a,b,c,d,e){this.width=a,this["float"]=c||!1,this.height=d||0,this.nodes=e||[],this.onchange=b||function(){},this._update_counter=0,this._float=this["float"]};g.prototype.batch_update=function(){this._update_counter=1,this["float"]=!0},g.prototype.commit=function(){this._update_counter=0,0==this._update_counter&&(this["float"]=this._float,this._pack_nodes(),this._notify())},g.prototype._fix_collisions=function(a){this._sort_nodes(-1);var c=a,d=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||d||(c={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(function(b){return b!=a&&e.is_intercepted(b,c)},this));if("undefined"==typeof f)return;this.move_node(f,f.x,a.y+a.height,f.width,f.height,!0)}},g.prototype.is_area_empty=function(a,c,d,f){var g={x:a||0,y:c||0,width:d||1,height:f||1},h=b.find(this.nodes,b.bind(function(a){return e.is_intercepted(a,g)},this));return null==h},g.prototype._sort_nodes=function(a){this.nodes=e.sort(this.nodes,a,this.width)},g.prototype._pack_nodes=function(){this._sort_nodes(),this["float"]?b.each(this.nodes,b.bind(function(a,c){if(!a._updating&&"undefined"!=typeof a._orig_y&&a.y!=a._orig_y)for(var d=a.y;d>=a._orig_y;){var f=b.chain(this.nodes).find(function(b){return a!=b&&e.is_intercepted({x:a.x,y:d,width:a.width,height:a.height},b)}).value();f||(a._dirty=!0,a.y=d),--d}},this)):b.each(this.nodes,b.bind(function(a,c){if(!a.locked)for(;a.y>0;){var d=a.y-1,f=0==c;if(c>0){var g=b.chain(this.nodes).take(c).find(function(b){return e.is_intercepted({x:a.x,y:d,width:a.width,height:a.height},b)}).value();f="undefined"==typeof g}if(!f)break;a._dirty=a.y!=d,a.y=d}},this))},g.prototype._prepare_node=function(a,c){return a=b.defaults(a||{},{width:1,height:1,x:0,y:0}),a.x=parseInt(""+a.x),a.y=parseInt(""+a.y),a.width=parseInt(""+a.width),a.height=parseInt(""+a.height),a.auto_position=a.auto_position||!1,a.no_resize=a.no_resize||!1,a.no_move=a.no_move||!1,a.width>this.width?a.width=this.width:a.width<1&&(a.width=1),a.height<1&&(a.height=1),a.x<0&&(a.x=0),a.x+a.width>this.width&&(c?a.width=this.width-a.x:a.x=this.width-a.width),a.y<0&&(a.y=0),a},g.prototype._notify=function(){if(!this._update_counter){var a=Array.prototype.slice.call(arguments,1).concat(this.get_dirty_nodes());a=a.concat(this.get_dirty_nodes()),this.onchange(a)}},g.prototype.clean_nodes=function(){b.each(this.nodes,function(a){a._dirty=!1})},g.prototype.get_dirty_nodes=function(){return b.filter(this.nodes,function(a){return a._dirty})},g.prototype.add_node=function(a){if(a=this._prepare_node(a),"undefined"!=typeof a.max_width&&(a.width=Math.min(a.width,a.max_width)),"undefined"!=typeof a.max_height&&(a.height=Math.min(a.height,a.max_height)),"undefined"!=typeof a.min_width&&(a.width=Math.max(a.width,a.min_width)),"undefined"!=typeof a.min_height&&(a.height=Math.max(a.height,a.min_height)),a._id=++f,a._dirty=!0,a.auto_position){this._sort_nodes();for(var c=0;;++c){var d=c%this.width,g=Math.floor(c/this.width);if(!(d+a.width>this.width||b.find(this.nodes,function(b){return e.is_intercepted({x:d,y:g,width:a.width,height:a.height},b)}))){a.x=d,a.y=g;break}}}return this.nodes.push(a),this._fix_collisions(a),this._pack_nodes(),this._notify(),a},g.prototype.remove_node=function(a){a._id=null,this.nodes=b.without(this.nodes,a),this._pack_nodes(),this._notify(a)},g.prototype.can_move_node=function(c,d,e,f,h){var i=Boolean(b.find(this.nodes,function(a){return a.locked}));if(!this.height&&!i)return!0;var j,k=new g(this.width,null,this["float"],0,b.map(this.nodes,function(b){return b==c?j=a.extend({},b):a.extend({},b)}));k.move_node(j,d,e,f,h);var l=!0;return i&&(l&=!Boolean(b.find(k.nodes,function(a){return a!=j&&Boolean(a.locked)&&Boolean(a._dirty)}))),this.height&&(l&=k.get_grid_height()<=this.height),l},g.prototype.can_be_placed_with_respect_to_height=function(c){if(!this.height)return!0;var d=new g(this.width,null,this["float"],0,b.map(this.nodes,function(b){return a.extend({},b)}));return d.add_node(c),d.get_grid_height()<=this.height},g.prototype.move_node=function(a,b,c,d,e,f){if("number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),"undefined"!=typeof a.max_width&&(d=Math.min(d,a.max_width)),"undefined"!=typeof a.max_height&&(e=Math.min(e,a.max_height)),"undefined"!=typeof a.min_width&&(d=Math.max(d,a.min_width)),"undefined"!=typeof a.min_height&&(e=Math.max(e,a.min_height)),a.x==b&&a.y==c&&a.width==d&&a.height==e)return a;var g=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a=this._prepare_node(a,g),this._fix_collisions(a),f||(this._pack_nodes(),this._notify()),a},g.prototype.get_grid_height=function(){return b.reduce(this.nodes,function(a,b){return Math.max(a,b.y+b.height)},0)},g.prototype.begin_update=function(a){b.each(this.nodes,function(a){a._orig_y=a.y}),a._updating=!0},g.prototype.end_update=function(){b.each(this.nodes,function(a){a._orig_y=a.y});var a=b.find(this.nodes,function(a){return a._updating});a&&(a._updating=!1)};var h=function(c,d){var e,f=this;d=d||{},this.container=a(c),d.item_class=d.item_class||"grid-stack-item";var h=this.container.closest("."+d.item_class).size()>0;if(this.opts=b.defaults(d||{},{width:parseInt(this.container.attr("data-gs-width"))||12,height:parseInt(this.container.attr("data-gs-height"))||0,item_class:"grid-stack-item",placeholder_class:"grid-stack-placeholder",placeholder_text:"",handle:".grid-stack-item-content",handle_class:null,cell_height:60,vertical_margin:20,auto:!0,min_width:768,"float":!1,static_grid:!1,_class:"grid-stack-instance-"+(1e4*Math.random()).toFixed(0),animate:Boolean(this.container.attr("data-gs-animate"))||!1,always_show_resize_handle:d.always_show_resize_handle||!1,resizable:b.defaults(d.resizable||{},{autoHide:!d.always_show_resize_handle,handles:"se"}),draggable:b.defaults(d.draggable||{},{handle:(d.handle_class?"."+d.handle_class:d.handle?d.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"})}),this.opts.is_nested=h,this.cell_height(this.opts.cell_height,!0),this.vertical_margin(this.opts.vertical_margin,!0),this.container.addClass(this.opts._class),this._set_static_class(),h&&this.container.addClass("grid-stack-nested"),this._init_styles(),this.grid=new g(this.opts.width,function(a){var c=0;b.each(a,function(a){null==a._id?a.el.remove():(a.el.attr("data-gs-x",a.x).attr("data-gs-y",a.y).attr("data-gs-width",a.width).attr("data-gs-height",a.height),c=Math.max(c,a.y+a.height))}),f._update_styles(c+10)},this.opts["float"],this.opts.height),this.opts.auto){var i=[],j=this;this.container.children("."+this.opts.item_class+":not(."+this.opts.placeholder_class+")").each(function(b,c){c=a(c),i.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*j.opts.width})}),b.chain(i).sortBy(function(a){return a.i}).each(function(a){f._prepare_element(a.el)}).value()}this.set_animation(this.opts.animate),this.placeholder=a(''+this.opts.placeholder_text+"
").hide(),this._update_container_height(),this.on_resize_handler=function(){if(f._is_one_column_mode()){if(e)return;e=!0,f.grid._sort_nodes(),b.each(f.grid.nodes,function(a){f.container.append(a.el),f.opts.static_grid||(a.no_move||a.el.draggable("disable"),a.no_resize||a.el.resizable("disable"))})}else{if(!e)return;if(e=!1,f.opts.static_grid)return;b.each(f.grid.nodes,function(a){a.no_move||a.el.draggable("enable"),a.no_resize||a.el.resizable("enable")})}},a(window).resize(this.on_resize_handler),this.on_resize_handler()};return h.prototype._trigger_change_event=function(a){var b=this.grid.get_dirty_nodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||a===!0)&&this.container.trigger("change",d)},h.prototype._init_styles=function(){this.opts.cell_height&&(this._styles_id&&a('[data-gs-id="'+this._styles_id+'"]').remove(),this._styles_id="gridstack-style-"+(1e5*Math.random()).toFixed(),this._styles=e.create_stylesheet(this._styles_id),null!=this._styles&&(this._styles._max=0))},h.prototype._update_styles=function(a){if(null!=this._styles){var b,c="."+this.opts._class+" ."+this.opts.item_class,d=this;if("undefined"==typeof a&&(a=this._styles._max,this._init_styles(),this._update_container_height()),this.opts.cell_height&&!(0!==this._styles._max&&a<=this._styles._max)&&(b=this.opts.vertical_margin&&this.opts.cell_height_unit!==this.opts.vertical_margin_unit?function(a,b){return a&&b?"calc("+(d.opts.cell_height*a+d.opts.cell_height_unit)+" + "+(d.opts.vertical_margin*b+d.opts.vertical_margin_unit)+")":d.opts.cell_height*a+d.opts.vertical_margin*b+d.opts.cell_height_unit}:function(a,b){return d.opts.cell_height*a+d.opts.vertical_margin*b+d.opts.cell_height_unit},0==this._styles._max&&e.insert_css_rule(this._styles,c,"min-height: "+b(1,0)+";",0),a>this._styles._max)){for(var f=this._styles._max;a>f;++f)e.insert_css_rule(this._styles,c+'[data-gs-height="'+(f+1)+'"]',"height: "+b(f+1,f)+";",f),e.insert_css_rule(this._styles,c+'[data-gs-min-height="'+(f+1)+'"]',"min-height: "+b(f+1,f)+";",f),e.insert_css_rule(this._styles,c+'[data-gs-max-height="'+(f+1)+'"]',"max-height: "+b(f+1,f)+";",f),e.insert_css_rule(this._styles,c+'[data-gs-y="'+f+'"]',"top: "+b(f,f)+";",f);this._styles._max=a}}},h.prototype._update_container_height=function(){if(!this.grid._update_counter){var a=this.grid.get_grid_height();this.container.attr("data-gs-current-height",a),this.opts.cell_height&&(this.opts.vertical_margin?this.opts.cell_height_unit===this.opts.vertical_margin_unit?this.container.css("height",a*(this.opts.cell_height+this.opts.vertical_margin)-this.opts.vertical_margin+this.opts.cell_height_unit):this.container.css("height","calc("+(a*this.opts.cell_height+this.opts.cell_height_unit)+" + "+(a*(this.opts.vertical_margin-1)+this.opts.vertical_margin_unit)+")"):this.container.css("height",a*this.opts.cell_height+this.opts.cell_height_unit))}},h.prototype._is_one_column_mode=function(){return(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)<=this.opts.min_width},h.prototype._prepare_element=function(c){var d=this;c=a(c),c.addClass(this.opts.item_class);var f=d.grid.add_node({x:c.attr("data-gs-x"),y:c.attr("data-gs-y"),width:c.attr("data-gs-width"),height:c.attr("data-gs-height"),max_width:c.attr("data-gs-max-width"),min_width:c.attr("data-gs-min-width"),max_height:c.attr("data-gs-max-height"),min_height:c.attr("data-gs-min-height"),auto_position:e.toBool(c.attr("data-gs-auto-position")),no_resize:e.toBool(c.attr("data-gs-no-resize")),no_move:e.toBool(c.attr("data-gs-no-move")),locked:e.toBool(c.attr("data-gs-locked")),el:c});if(c.data("_gridstack_node",f),!d.opts.static_grid){var g,h,i=function(a,b){var c,e,i=Math.round(b.position.left/g),j=Math.floor((b.position.top+h/2)/h);"drag"!=a.type&&(c=Math.round(b.size.width/g),e=Math.round(b.size.height/h)),d.grid.can_move_node(f,i,j,c,e)&&(d.grid.move_node(f,i,j,c,e),d._update_container_height())},j=function(b,e){d.container.append(d.placeholder);var i=a(this);d.grid.clean_nodes(),d.grid.begin_update(f),g=Math.ceil(i.outerWidth()/i.attr("data-gs-width"));var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));h=d.container.height()/parseInt(d.container.attr("data-gs-current-height")),d.placeholder.attr("data-gs-x",i.attr("data-gs-x")).attr("data-gs-y",i.attr("data-gs-y")).attr("data-gs-width",i.attr("data-gs-width")).attr("data-gs-height",i.attr("data-gs-height")).show(),f.el=d.placeholder,c.resizable("option","minWidth",g*(f.min_width||1)),c.resizable("option","minHeight",j*(f.min_height||1)),"resizestart"==b.type&&i.find(".grid-stack-item").trigger("resizestart")},k=function(b,c){d.placeholder.detach();var e=a(this);f.el=e,d.placeholder.hide(),e.attr("data-gs-x",f.x).attr("data-gs-y",f.y).attr("data-gs-width",f.width).attr("data-gs-height",f.height).removeAttr("style"),d._update_container_height(),d._trigger_change_event(),d.grid.end_update();var g=e.find(".grid-stack");g.length&&"resizestop"==b.type&&(g.each(function(b,c){a(c).data("gridstack").on_resize_handler()}),e.find(".grid-stack-item").trigger("resizestop"))};c.draggable(b.extend(this.opts.draggable,{containment:this.opts.is_nested?this.container.parent():null,start:j,stop:k,drag:i})).resizable(b.extend(this.opts.resizable,{start:j,stop:k,resize:i})),(f.no_move||this._is_one_column_mode())&&c.draggable("disable"),(f.no_resize||this._is_one_column_mode())&&c.resizable("disable"),c.attr("data-gs-locked",f.locked?"yes":null)}},h.prototype.set_animation=function(a){a?this.container.addClass("grid-stack-animate"):this.container.removeClass("grid-stack-animate")},h.prototype.add_widget=function(b,c,d,e,f,g){return b=a(b),"undefined"!=typeof c&&b.attr("data-gs-x",c),"undefined"!=typeof d&&b.attr("data-gs-y",d),"undefined"!=typeof e&&b.attr("data-gs-width",e),"undefined"!=typeof f&&b.attr("data-gs-height",f),"undefined"!=typeof g&&b.attr("data-gs-auto-position",g?"yes":null),this.container.append(b),this._prepare_element(b),this._update_container_height(),this._trigger_change_event(!0),b},h.prototype.make_widget=function(b){return b=a(b),this._prepare_element(b),this._update_container_height(),this._trigger_change_event(!0),b},h.prototype.will_it_fit=function(a,b,c,d,e){var f={x:a,y:b,width:c,height:d,auto_position:e};return this.grid.can_be_placed_with_respect_to_height(f)},h.prototype.remove_widget=function(b,c){c="undefined"==typeof c?!0:c,b=a(b);var d=b.data("_gridstack_node");this.grid.remove_node(d),b.removeData("_gridstack_node"),this._update_container_height(),c&&b.remove(),this._trigger_change_event(!0)},h.prototype.remove_all=function(a){b.each(this.grid.nodes,b.bind(function(b){this.remove_widget(b.el,a)},this)),this.grid.nodes=[],this._update_container_height()},h.prototype.destroy=function(){a(window).off("resize",this.on_resize_handler),this.disable(),this.container.remove(),e.remove_stylesheet(this._styles_id),this.grid&&(this.grid=null)},h.prototype.resizable=function(b,c){var d=this;return b=a(b),b.each(function(b,e){e=a(e);var f=e.data("_gridstack_node");"undefined"!=typeof f&&null!=f&&(f.no_resize=!c,f.no_resize||d._is_one_column_mode()?e.resizable("disable"):e.resizable("enable"))}),this},h.prototype.movable=function(b,c){var d=this;return b=a(b),b.each(function(b,e){e=a(e);var f=e.data("_gridstack_node");"undefined"!=typeof f&&null!=f&&(f.no_move=!c,f.no_move||d._is_one_column_mode()?(e.draggable("disable"),e.removeClass("ui-draggable-handle")):(e.draggable("enable"),e.addClass("ui-draggable-handle")))}),this},h.prototype.disable=function(){this.movable(this.container.children("."+this.opts.item_class),!1),this.resizable(this.container.children("."+this.opts.item_class),!1),this.container.trigger("disable")},h.prototype.enable=function(){this.movable(this.container.children("."+this.opts.item_class),!0),this.resizable(this.container.children("."+this.opts.item_class),!0),this.container.trigger("enable")},h.prototype.locked=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");"undefined"!=typeof e&&null!=e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},h.prototype.min_height=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");"undefined"!=typeof e&&null!=e&&(isNaN(c)||(e.min_height=c||!1,d.attr("data-gs-min-height",c)))}),this},h.prototype.min_width=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");"undefined"!=typeof e&&null!=e&&(isNaN(c)||(e.min_width=c||!1,d.attr("data-gs-min-width",c)))}),this},h.prototype._update_element=function(b,c){b=a(b).first();var d=b.data("_gridstack_node");if("undefined"!=typeof d&&null!=d){var e=this;e.grid.clean_nodes(),e.grid.begin_update(d),c.call(this,b,d),e._update_container_height(),e._trigger_change_event(),e.grid.end_update()}},h.prototype.resize=function(a,b,c){this._update_element(a,function(a,d){b=null!=b&&"undefined"!=typeof b?b:d.width,c=null!=c&&"undefined"!=typeof c?c:d.height,this.grid.move_node(d,d.x,d.y,b,c)})},h.prototype.move=function(a,b,c){this._update_element(a,function(a,d){b=null!=b&&"undefined"!=typeof b?b:d.x,c=null!=c&&"undefined"!=typeof c?c:d.y,this.grid.move_node(d,b,c,d.width,d.height)})},h.prototype.update=function(a,b,c,d,e){this._update_element(a,function(a,f){b=null!=b&&"undefined"!=typeof b?b:f.x,c=null!=c&&"undefined"!=typeof c?c:f.y,d=null!=d&&"undefined"!=typeof d?d:f.width,e=null!=e&&"undefined"!=typeof e?e:f.height,this.grid.move_node(f,b,c,d,e)})},h.prototype.vertical_margin=function(a,b){if("undefined"==typeof a)return this.opts.vertical_margin;var d=c(a);(this.opts.vertical_margin_unit!==d.unit||this.opts.height!==d.height)&&(this.opts.vertical_margin_unit=d.unit,this.opts.vertical_margin=d.height,b||this._update_styles())},h.prototype.cell_height=function(a,b){if("undefined"==typeof a){if(this.opts.cell_height)return this.opts.cell_height;var d=this.container.children("."+this.opts.item_class).first();return Math.ceil(d.outerHeight()/d.attr("data-gs-height"))}var e=c(a);(this.opts.cell_height_unit!==e.height_unit||this.opts.height!==e.height)&&(this.opts.cell_height_unit=e.unit,this.opts.cell_height=e.height,b||this._update_styles())},h.prototype.cell_width=function(){var a=this.container.children("."+this.opts.item_class).first();return Math.ceil(a.outerWidth()/a.attr("data-gs-width"))},h.prototype.get_cell_from_pixel=function(a){var b=this.container.position(),c=a.left-b.left,d=a.top-b.top,e=Math.floor(this.container.width()/this.opts.width),f=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(c/e),y:Math.floor(d/f)}},h.prototype.batch_update=function(){this.grid.batch_update()},h.prototype.commit=function(){this.grid.commit(),this._update_container_height()},h.prototype.is_area_empty=function(a,b,c,d){return this.grid.is_area_empty(a,b,c,d)},h.prototype.set_static=function(a){this.opts.static_grid=a===!0,this._set_static_class()},h.prototype._set_static_class=function(){var a="grid-stack-static";this.opts.static_grid===!0?this.container.addClass(a):this.container.removeClass(a)},d.GridStackUI=h,d.GridStackUI.Utils=e,a.fn.gridstack=function(b){return this.each(function(){var c=a(this);c.data("gridstack")||c.data("gridstack",new h(this,b))})},d.GridStackUI});
+!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash","jquery-ui/core","jquery-ui/widget","jquery-ui/mouse","jquery-ui/draggable","jquery-ui/resizable"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(b){}try{_=require("lodash")}catch(b){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^([0-9]+)(px|em|rem)?$/);if(!e)throw new Error("Invalid height");d=e[2],c=parseInt(e[1])}return{height:c,unit:d}}var d=window,e=function(a,b,c){var d=function(){return console.warn("gridstack.js: Function `"+b+"` is deprecated as of v0.2.5 and has been replaced with `"+c+"`. It will be **completely** removed in v1.0."),a.apply(this,arguments)};return d.prototype=a.prototype,d},f=function(a,b){console.warn("gridstack.js: Option `"+a+"` is deprecated as of v0.2.5 and has been replaced with `"+b+"`. It will be **completely** removed in v1.0.")},g={isIntercepted:function(a,b){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)},sort:function(a,c,d){return d=d||b.chain(a).map(function(a){return a.x+a.width}).max().value(),c=-1!=c?1:-1,b.sortBy(a,function(a){return c*(a.x+a.y*d)})},createStylesheet:function(a){var b=document.createElement("style");return b.setAttribute("type","text/css"),b.setAttribute("data-gs-id",a),b.styleSheet?b.styleSheet.cssText="":b.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(b),b.sheet},removeStylesheet:function(b){a("STYLE[data-gs-id="+b+"]").remove()},insertCSSRule:function(a,b,c,d){"function"==typeof a.insertRule?a.insertRule(b+"{"+c+"}",d):"function"==typeof a.addRule&&a.addRule(b,c,d)},toBool:function(a){return"boolean"==typeof a?a:"string"==typeof a?(a=a.toLowerCase(),!(""===a||"no"==a||"false"==a||"0"==a)):Boolean(a)},_collisionNodeCheck:function(a){return a!=this.node&&g.isIntercepted(a,this.nn)},_didCollideFloat:function(a){return this.n!=a&&g.isIntercepted({x:this.n.x,y:this.newY,width:this.n.width,height:this.n.height},a)},_didCollide:function(a){return g.isIntercepted({x:this.n.x,y:this.newY,width:this.n.width,height:this.n.height},a)},_isAddNodeIntercepted:function(a){return g.isIntercepted({x:this.x,y:this.y,width:this.node.width,height:this.node.height},a)}};
+// jscs:disable requireCamelCaseOrUpperCaseIdentifiers
+g.is_intercepted=e(g.isIntercepted,"is_intercepted","isIntercepted"),g.create_stylesheet=e(g.createStylesheet,"create_stylesheet","createStylesheet"),g.remove_stylesheet=e(g.removeStylesheet,"remove_stylesheet","removeStylesheet"),g.insert_css_rule=e(g.insertCSSRule,"insert_css_rule","insertCSSRule");
+// jscs:enable requireCamelCaseOrUpperCaseIdentifiers
+var h=0,i=function(a,b,c,d,e){this.width=a,this["float"]=c||!1,this.height=d||0,this.nodes=e||[],this.onchange=b||function(){},this._updateCounter=0,this._float=this["float"]};i.prototype.batchUpdate=function(){this._updateCounter=1,this["float"]=!0},i.prototype.commit=function(){this._updateCounter=0,0===this._updateCounter&&(this["float"]=this._float,this._packNodes(),this._notify())},i.prototype._fixCollisions=function(a){this._sortNodes(-1);var c=a,d=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||d||(c={x:0,y:a.y,width:this.width,height:a.height});;){var e=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:c}));if("undefined"==typeof e)return;this.moveNode(e,e.x,a.y+a.height,e.width,e.height,!0)}},i.prototype.isAreaEmpty=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.find(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return null===h},i.prototype._sortNodes=function(a){this.nodes=g.sort(this.nodes,a,this.width)},i.prototype._packNodes=function(){this._sortNodes(),this["float"]?b.each(this.nodes,b.bind(function(a,c){if(!a._updating&&"undefined"!=typeof a._origY&&a.y!=a._origY)for(var d=a.y;d>=a._origY;){var e=b.chain(this.nodes).find(b.bind(g._didCollide,{n:a,newY:d})).value();e||(a._dirty=!0,a.y=d),--d}},this)):b.each(this.nodes,b.bind(function(a,c){if(!a.locked)for(;a.y>0;){var d=a.y-1,e=0===c;if(c>0){var f=b.chain(this.nodes).take(c).find(b.bind(g._didCollide,{n:a,newY:d})).value();e="undefined"==typeof f}if(!e)break;a._dirty=a.y!=d,a.y=d}},this))},i.prototype._prepareNode=function(a,c){return a=b.defaults(a||{},{width:1,height:1,x:0,y:0}),a.x=parseInt(""+a.x),a.y=parseInt(""+a.y),a.width=parseInt(""+a.width),a.height=parseInt(""+a.height),a.autoPosition=a.autoPosition||!1,a.noResize=a.noResize||!1,a.noMove=a.noMove||!1,a.width>this.width?a.width=this.width:a.width<1&&(a.width=1),a.height<1&&(a.height=1),a.x<0&&(a.x=0),a.x+a.width>this.width&&(c?a.width=this.width-a.x:a.x=this.width-a.width),a.y<0&&(a.y=0),a},i.prototype._notify=function(){if(!this._updateCounter){var a=Array.prototype.slice.call(arguments,1).concat(this.getDirtyNodes());a=a.concat(this.getDirtyNodes()),this.onchange(a)}},i.prototype.cleanNodes=function(){b.each(this.nodes,function(a){a._dirty=!1})},i.prototype.getDirtyNodes=function(){return b.filter(this.nodes,function(a){return a._dirty})},i.prototype.addNode=function(a){if(a=this._prepareNode(a),"undefined"!=typeof a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),"undefined"!=typeof a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),"undefined"!=typeof a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),"undefined"!=typeof a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var c=0;;++c){var d=c%this.width,e=Math.floor(c/this.width);if(!(d+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:d,y:e,node:a})))){a.x=d,a.y=e;break}}}return this.nodes.push(a),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a){a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a)},i.prototype.canMoveNode=function(c,d,e,f,g){var h=Boolean(b.find(this.nodes,function(a){return a.locked}));if(!this.height&&!h)return!0;var j,k=new i(this.width,null,this["float"],0,b.map(this.nodes,function(b){return b==c?j=a.extend({},b):a.extend({},b)}));k.moveNode(j,d,e,f,g);var l=!0;return h&&(l&=!Boolean(b.find(k.nodes,function(a){return a!=j&&Boolean(a.locked)&&Boolean(a._dirty)}))),this.height&&(l&=k.getGridHeight()<=this.height),l},i.prototype.canBePlacedWithRespectToHeight=function(c){if(!this.height)return!0;var d=new i(this.width,null,this["float"],0,b.map(this.nodes,function(b){return a.extend({},b)}));return d.addNode(c),d.getGridHeight()<=this.height},i.prototype.moveNode=function(a,b,c,d,e,f){if("number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),"undefined"!=typeof a.maxWidth&&(d=Math.min(d,a.maxWidth)),"undefined"!=typeof a.maxHeight&&(e=Math.min(e,a.maxHeight)),"undefined"!=typeof a.minWidth&&(d=Math.max(d,a.minWidth)),"undefined"!=typeof a.minHeight&&(e=Math.max(e,a.minHeight)),a.x==b&&a.y==c&&a.width==d&&a.height==e)return a;var g=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a=this._prepareNode(a,g),this._fixCollisions(a),f||(this._packNodes(),this._notify()),a},i.prototype.getGridHeight=function(){return b.reduce(this.nodes,function(a,b){return Math.max(a,b.y+b.height)},0)},i.prototype.beginUpdate=function(a){b.each(this.nodes,function(a){a._origY=a.y}),a._updating=!0},i.prototype.endUpdate=function(){b.each(this.nodes,function(a){a._origY=a.y});var a=b.find(this.nodes,function(a){return a._updating});a&&(a._updating=!1)};var j=function(c,d){var e,g=this;d=d||{},this.container=a(c),"undefined"!=typeof d.handle_class&&(d.handleClass=d.handle_class,f("handle_class","handleClass")),"undefined"!=typeof d.item_class&&(d.itemClass=d.item_class,f("item_class","itemClass")),"undefined"!=typeof d.placeholder_class&&(d.placeholderClass=d.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof d.placeholder_text&&(d.placeholderText=d.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof d.item_class&&(d.itemClass=d.item_class,f("item_class","itemClass")),"undefined"!=typeof d.cell_height&&(d.cellHeight=d.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof d.vertical_margin&&(d.verticalMargin=d.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof d.min_width&&(d.minWidth=d.min_width,f("min_width","minWidth")),"undefined"!=typeof d.static_grid&&(d.staticGrid=d.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof d.is_nested&&(d.isNested=d.is_nested,f("is_nested","isNested")),"undefined"!=typeof d.always_show_resize_handle&&(d.alwaysShowResizeHandle=d.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),d.itemClass=d.itemClass||"grid-stack-item";var h=this.container.closest("."+d.itemClass).size()>0;if(this.opts=b.defaults(d||{},{width:parseInt(this.container.attr("data-gs-width"))||12,height:parseInt(this.container.attr("data-gs-height"))||0,itemClass:"grid-stack-item",placeholderClass:"grid-stack-placeholder",placeholderText:"",handle:".grid-stack-item-content",handleClass:null,cellHeight:60,verticalMargin:20,auto:!0,minWidth:768,"float":!1,staticGrid:!1,_class:"grid-stack-instance-"+(1e4*Math.random()).toFixed(0),animate:Boolean(this.container.attr("data-gs-animate"))||!1,alwaysShowResizeHandle:d.alwaysShowResizeHandle||!1,resizable:b.defaults(d.resizable||{},{autoHide:!d.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(d.draggable||{},{handle:(d.handleClass?"."+d.handleClass:d.handle?d.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"})}),this.opts.isNested=h,this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),h&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a){var c=0;b.each(a,function(a){null===a._id?a.el.remove():(a.el.attr("data-gs-x",a.x).attr("data-gs-y",a.y).attr("data-gs-width",a.width).attr("data-gs-height",a.height),c=Math.max(c,a.y+a.height))}),g._updateStyles(c+10)},this.opts["float"],this.opts.height),this.opts.auto){var j=[],k=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),j.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*k.opts.width})}),b.chain(j).sortBy(function(a){return a.i}).each(function(a){g._prepareElement(a.el)}).value()}this.setAnimation(this.opts.animate),this.placeholder=a(''+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this.onResizeHandler=function(){if(g._isOneColumnMode()){if(e)return;e=!0,g.grid._sortNodes(),b.each(g.grid.nodes,function(a){g.container.append(a.el),g.opts.staticGrid||(a.noMove||a.el.draggable("disable"),a.noResize||a.el.resizable("disable"))})}else{if(!e)return;if(e=!1,g.opts.staticGrid)return;b.each(g.grid.nodes,function(a){a.noMove||a.el.draggable("enable"),a.noResize||a.el.resizable("enable")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler()};
+// jscs:disable requireCamelCaseOrUpperCaseIdentifiers
+// jscs:enable requireCamelCaseOrUpperCaseIdentifiers
+return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||a===!0)&&this.container.trigger("change",d)},j.prototype._initStyles=function(){this.opts.cellHeight&&(this._stylesId&&a('[data-gs-id="'+this._stylesId+'"]').remove(),this._stylesId="gridstack-style-"+(1e5*Math.random()).toFixed(),this._styles=g.createStylesheet(this._stylesId),null!=this._styles&&(this._styles._max=0))},j.prototype._updateStyles=function(a){if(null!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max,this._initStyles(),this._updateContainerHeight()),this.opts.cellHeight&&!(0!==this._styles._max&&a<=this._styles._max)&&(b=this.opts.verticalMargin&&this.opts.cellHeightUnit!==this.opts.verticalMarginUnit?function(a,b){return a&&b?"calc("+(d.opts.cellHeight*a+d.opts.cellHeightUnit)+" + "+(d.opts.verticalMargin*b+d.opts.verticalMarginUnit)+")":d.opts.cellHeight*a+d.opts.verticalMargin*b+d.opts.cellHeightUnit}:function(a,b){return d.opts.cellHeight*a+d.opts.verticalMargin*b+d.opts.cellHeightUnit},0===this._styles._max&&g.insertCSSRule(this._styles,c,"min-height: "+b(1,0)+";",0),a>this._styles._max)){for(var e=this._styles._max;a>e;++e)g.insertCSSRule(this._styles,c+'[data-gs-height="'+(e+1)+'"]',"height: "+b(e+1,e)+";",e),g.insertCSSRule(this._styles,c+'[data-gs-min-height="'+(e+1)+'"]',"min-height: "+b(e+1,e)+";",e),g.insertCSSRule(this._styles,c+'[data-gs-max-height="'+(e+1)+'"]',"max-height: "+b(e+1,e)+";",e),g.insertCSSRule(this._styles,c+'[data-gs-y="'+e+'"]',"top: "+b(e,e)+";",e);this._styles._max=a}}},j.prototype._updateContainerHeight=function(){if(!this.grid._updateCounter){var a=this.grid.getGridHeight();this.container.attr("data-gs-current-height",a),this.opts.cellHeight&&(this.opts.verticalMargin?this.opts.cellHeightUnit===this.opts.verticalMarginUnit?this.container.css("height",a*(this.opts.cellHeight+this.opts.verticalMargin)-this.opts.verticalMargin+this.opts.cellHeightUnit):this.container.css("height","calc("+(a*this.opts.cellHeight+this.opts.cellHeightUnit)+" + "+(a*(this.opts.verticalMargin-1)+this.opts.verticalMarginUnit)+")"):this.container.css("height",a*this.opts.cellHeight+this.opts.cellHeightUnit))}},j.prototype._isOneColumnMode=function(){return(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)<=this.opts.minWidth},j.prototype._prepareElement=function(c){var d=this;c=a(c),c.addClass(this.opts.itemClass);var e=d.grid.addNode({x:c.attr("data-gs-x"),y:c.attr("data-gs-y"),width:c.attr("data-gs-width"),height:c.attr("data-gs-height"),maxWidth:c.attr("data-gs-max-width"),minWidth:c.attr("data-gs-min-width"),maxHeight:c.attr("data-gs-max-height"),minHeight:c.attr("data-gs-min-height"),autoPosition:g.toBool(c.attr("data-gs-auto-position")),noResize:g.toBool(c.attr("data-gs-no-resize")),noMove:g.toBool(c.attr("data-gs-no-move")),locked:g.toBool(c.attr("data-gs-locked")),el:c});if(c.data("_gridstack_node",e),!d.opts.staticGrid){var f,h,i=function(a,b){var c,g,i=Math.round(b.position.left/f),j=Math.floor((b.position.top+h/2)/h);"drag"!=a.type&&(c=Math.round(b.size.width/f),g=Math.round(b.size.height/h)),d.grid.canMoveNode(e,i,j,c,g)&&(d.grid.moveNode(e,i,j,c,g),d._updateContainerHeight())},j=function(b,g){d.container.append(d.placeholder);var i=a(this);d.grid.cleanNodes(),d.grid.beginUpdate(e),f=Math.ceil(i.outerWidth()/i.attr("data-gs-width"));var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));h=d.container.height()/parseInt(d.container.attr("data-gs-current-height")),d.placeholder.attr("data-gs-x",i.attr("data-gs-x")).attr("data-gs-y",i.attr("data-gs-y")).attr("data-gs-width",i.attr("data-gs-width")).attr("data-gs-height",i.attr("data-gs-height")).show(),e.el=d.placeholder,c.resizable("option","minWidth",f*(e.minWidth||1)),c.resizable("option","minHeight",j*(e.minHeight||1)),"resizestart"==b.type&&i.find(".grid-stack-item").trigger("resizestart")},k=function(b,c){d.placeholder.detach();var f=a(this);e.el=f,d.placeholder.hide(),f.attr("data-gs-x",e.x).attr("data-gs-y",e.y).attr("data-gs-width",e.width).attr("data-gs-height",e.height).removeAttr("style"),d._updateContainerHeight(),d._triggerChangeEvent(),d.grid.endUpdate();var g=f.find(".grid-stack");g.length&&"resizestop"==b.type&&(g.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),f.find(".grid-stack-item").trigger("resizestop"))};c.draggable(b.extend(this.opts.draggable,{containment:this.opts.isNested?this.container.parent():null,start:j,stop:k,drag:i})).resizable(b.extend(this.opts.resizable,{start:j,stop:k,resize:i})),(e.noMove||this._isOneColumnMode())&&c.draggable("disable"),(e.noResize||this._isOneColumnMode())&&c.resizable("disable"),c.attr("data-gs-locked",e.locked?"yes":null)}},j.prototype.setAnimation=function(a){a?this.container.addClass("grid-stack-animate"):this.container.removeClass("grid-stack-animate")},j.prototype.addWidget=function(b,c,d,e,f,g){return b=a(b),"undefined"!=typeof c&&b.attr("data-gs-x",c),"undefined"!=typeof d&&b.attr("data-gs-y",d),"undefined"!=typeof e&&b.attr("data-gs-width",e),"undefined"!=typeof f&&b.attr("data-gs-height",f),"undefined"!=typeof g&&b.attr("data-gs-auto-position",g?"yes":null),this.container.append(b),this._prepareElement(b),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.willItFit=function(a,b,c,d,e){var f={x:a,y:b,width:c,height:d,autoPosition:e};return this.grid.canBePlacedWithRespectToHeight(f)},j.prototype.removeWidget=function(b,c){c="undefined"==typeof c?!0:c,b=a(b);var d=b.data("_gridstack_node");this.grid.removeNode(d),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0)},j.prototype.removeAll=function(a){b.each(this.grid.nodes,b.bind(function(b){this.removeWidget(b.el,a)},this)),this.grid.nodes=[],this._updateContainerHeight()},j.prototype.destroy=function(){a(window).off("resize",this.onResizeHandler),this.disable(),this.container.remove(),g.removeStylesheet(this._stylesId),this.grid&&(this.grid=null)},j.prototype.resizable=function(b,c){var d=this;return b=a(b),b.each(function(b,e){e=a(e);var f=e.data("_gridstack_node");"undefined"!=typeof f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()?e.resizable("disable"):e.resizable("enable"))}),this},j.prototype.movable=function(b,c){var d=this;return b=a(b),b.each(function(b,e){e=a(e);var f=e.data("_gridstack_node");"undefined"!=typeof f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()?(e.draggable("disable"),e.removeClass("ui-draggable-handle")):(e.draggable("enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.disable=function(){this.movable(this.container.children("."+this.opts.itemClass),!1),this.resizable(this.container.children("."+this.opts.itemClass),!1),this.container.trigger("disable")},j.prototype.enable=function(){this.movable(this.container.children("."+this.opts.itemClass),!0),this.resizable(this.container.children("."+this.opts.itemClass),!0),this.container.trigger("enable")},j.prototype.locked=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");"undefined"!=typeof e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.minHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");"undefined"!=typeof e&&null!=e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.minWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");"undefined"!=typeof e&&null!=e&&(isNaN(c)||(e.minWidth=c||!1,d.attr("data-gs-min-width",c)))}),this},j.prototype._updateElement=function(b,c){b=a(b).first();var d=b.data("_gridstack_node");if("undefined"!=typeof d&&null!==d){var e=this;e.grid.cleanNodes(),e.grid.beginUpdate(d),c.call(this,b,d),e._updateContainerHeight(),e._triggerChangeEvent(),e.grid.endUpdate()}},j.prototype.resize=function(a,b,c){this._updateElement(a,function(a,d){b=null!==b&&"undefined"!=typeof b?b:d.width,c=null!==c&&"undefined"!=typeof c?c:d.height,this.grid.moveNode(d,d.x,d.y,b,c)})},j.prototype.move=function(a,b,c){this._updateElement(a,function(a,d){b=null!==b&&"undefined"!=typeof b?b:d.x,c=null!==c&&"undefined"!=typeof c?c:d.y,this.grid.moveNode(d,b,c,d.width,d.height)})},j.prototype.update=function(a,b,c,d,e){this._updateElement(a,function(a,f){b=null!==b&&"undefined"!=typeof b?b:f.x,c=null!==c&&"undefined"!=typeof c?c:f.y,d=null!==d&&"undefined"!=typeof d?d:f.width,e=null!==e&&"undefined"!=typeof e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if("undefined"==typeof a)return this.opts.verticalMargin;var d=c(a);(this.opts.verticalMarginUnit!==d.unit||this.opts.height!==d.height)&&(this.opts.verticalMarginUnit=d.unit,this.opts.verticalMargin=d.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var d=this.container.children("."+this.opts.itemClass).first();return Math.ceil(d.outerHeight()/d.attr("data-gs-height"))}var e=c(a);(this.opts.cellHeightUnit!==e.heightUnit||this.opts.height!==e.height)&&(this.opts.cellHeightUnit=e.unit,this.opts.cellHeight=e.height,b||this._updateStyles())},j.prototype.cellWidth=function(){var a=this.container.children("."+this.opts.itemClass).first();return Math.ceil(a.outerWidth()/a.attr("data-gs-width"))},j.prototype.getCellFromPixel=function(a){var b=this.container.position(),c=a.left-b.left,d=a.top-b.top,e=Math.floor(this.container.width()/this.opts.width),f=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(c/e),y:Math.floor(d/f)}},j.prototype.batchUpdate=function(){this.grid.batchUpdate()},j.prototype.commit=function(){this.grid.commit(),this._updateContainerHeight()},j.prototype.isAreaEmpty=function(a,b,c,d){return this.grid.isAreaEmpty(a,b,c,d)},j.prototype.setStatic=function(a){this.opts.staticGrid=a===!0,this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},i.prototype.batch_update=e(i.prototype.batchUpdate),i.prototype._fix_collisions=e(i.prototype._fixCollisions,"_fix_collisions","_fixCollisions"),i.prototype.is_area_empty=e(i.prototype.isAreaEmpty,"is_area_empty","isAreaEmpty"),i.prototype._sort_nodes=e(i.prototype._sortNodes,"_sort_nodes","_sortNodes"),i.prototype._pack_nodes=e(i.prototype._packNodes,"_pack_nodes","_packNodes"),i.prototype._prepare_node=e(i.prototype._prepareNode,"_prepare_node","_prepareNode"),i.prototype.clean_nodes=e(i.prototype.cleanNodes,"clean_nodes","cleanNodes"),i.prototype.get_dirty_nodes=e(i.prototype.getDirtyNodes,"get_dirty_nodes","getDirtyNodes"),i.prototype.add_node=e(i.prototype.addNode,"add_node","addNode, "),i.prototype.remove_node=e(i.prototype.removeNode,"remove_node","removeNode"),i.prototype.can_move_node=e(i.prototype.canMoveNode,"can_move_node","canMoveNode"),i.prototype.move_node=e(i.prototype.moveNode,"move_node","moveNode"),i.prototype.get_grid_height=e(i.prototype.getGridHeight,"get_grid_height","getGridHeight"),i.prototype.begin_update=e(i.prototype.beginUpdate,"begin_update","beginUpdate"),i.prototype.end_update=e(i.prototype.endUpdate,"end_update","endUpdate"),i.prototype.can_be_placed_with_respect_to_height=e(i.prototype.canBePlacedWithRespectToHeight,"can_be_placed_with_respect_to_height","canBePlacedWithRespectToHeight"),j.prototype._trigger_change_event=e(j.prototype._triggerChangeEvent,"_trigger_change_event","_triggerChangeEvent"),j.prototype._init_styles=e(j.prototype._initStyles,"_init_styles","_initStyles"),j.prototype._update_styles=e(j.prototype._updateStyles,"_update_styles","_updateStyles"),j.prototype._update_container_height=e(j.prototype._updateContainerHeight,"_update_container_height","_updateContainerHeight"),j.prototype._is_one_column_mode=e(j.prototype._isOneColumnMode,"_is_one_column_mode"," _isOneColumnMode"),j.prototype._prepare_element=e(j.prototype._prepareElement,"_prepare_element","_prepareElement"),j.prototype.set_animation=e(j.prototype.setAnimation,"set_animation","setAnimation"),j.prototype.add_widget=e(j.prototype.addWidget,"add_widget","addWidget"),j.prototype.make_widget=e(j.prototype.makeWidget,"make_widget","makeWidget"),j.prototype.will_it_fit=e(j.prototype.willItFit,"will_it_fit","willItFit"),j.prototype.remove_widget=e(j.prototype.removeWidget,"remove_widget","removeWidget"),j.prototype.remove_all=e(j.prototype.removeAll,"remove_all","removeAll"),j.prototype.min_height=e(j.prototype.minHeight,"min_height","minHeight"),j.prototype.min_width=e(j.prototype.minWidth,"min_width","minWidth"),j.prototype._update_element=e(j.prototype._updateElement,"_update_element","_updateElement"),j.prototype.cell_height=e(j.prototype.cellHeight,"cell_height","cellHeight"),j.prototype.cell_width=e(j.prototype.cellWidth,"cell_width","cellWidth"),j.prototype.get_cell_from_pixel=e(j.prototype.getCellFromPixel,"get_cell_from_pixel","getCellFromPixel"),j.prototype.batch_update=e(j.prototype.batchUpdate,"batch_update","batchUpdate"),j.prototype.is_area_empty=e(j.prototype.isAreaEmpty,"is_area_empty","isAreaEmpty"),j.prototype.set_static=e(j.prototype.setStatic,"set_static","setStatic"),j.prototype._set_static_class=e(j.prototype._setStaticClass,"_set_static_class","_setStaticClass"),d.GridStackUI=j,d.GridStackUI.Utils=g,a.fn.gridstack=function(b){return this.each(function(){var c=a(this);c.data("gridstack")||c.data("gridstack",new j(this,b))})},d.GridStackUI});
//# sourceMappingURL=gridstack.min.map
\ No newline at end of file
diff --git a/dist/gridstack.min.map b/dist/gridstack.min.map
index 44d7f2f..5527ac9 100644
--- a/dist/gridstack.min.map
+++ b/dist/gridstack.min.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/gridstack.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","parseHeight","val","height","height_unit","isString","match","Error","parseInt","unit","scope","window","Utils","is_intercepted","a","b","x","width","y","sort","nodes","dir","chain","map","node","max","value","sortBy","n","create_stylesheet","id","style","document","createElement","setAttribute","styleSheet","cssText","appendChild","createTextNode","getElementsByTagName","sheet","remove_stylesheet","remove","insert_css_rule","selector","rules","index","insertRule","addRule","toBool","v","toLowerCase","Boolean","id_seq","GridStackEngine","onchange","float_mode","items","this","_update_counter","_float","prototype","batch_update","commit","_pack_nodes","_notify","_fix_collisions","_sort_nodes","nn","has_locked","find","locked","collision_node","bind","move_node","is_area_empty","each","i","_updating","_orig_y","new_y","bn","_dirty","can_be_moved","take","_prepare_node","resizing","defaults","auto_position","no_resize","no_move","deleted_nodes","Array","slice","call","arguments","concat","get_dirty_nodes","clean_nodes","filter","add_node","max_width","Math","min","max_height","min_width","min_height","_id","floor","push","remove_node","without","can_move_node","cloned_node","clone","extend","res","get_grid_height","can_be_placed_with_respect_to_height","no_pack","reduce","memo","begin_update","end_update","GridStack","el","opts","one_column_mode","self","container","item_class","is_nested","closest","size","attr","placeholder_class","placeholder_text","handle","handle_class","cell_height","vertical_margin","auto","float","static_grid","_class","random","toFixed","animate","always_show_resize_handle","resizable","autoHide","handles","draggable","scroll","appendTo","addClass","_set_static_class","_init_styles","grid","_update_styles","elements","_this","children","_prepare_element","set_animation","placeholder","hide","_update_container_height","on_resize_handler","_is_one_column_mode","append","resize","_trigger_change_event","forceTrigger","hasChanges","eventParams","length","trigger","_styles_id","_styles","_max","get_height","prefix","cell_height_unit","vertical_margin_unit","nbRows","nbMargins","css","innerWidth","documentElement","clientWidth","body","data","cell_width","drag_or_resize","event","ui","round","position","left","top","type","on_start_moving","o","ceil","outerWidth","strict_cell_height","outerHeight","show","on_end_moving","detach","removeAttr","nested_grids","containment","parent","start","stop","drag","enable","removeClass","add_widget","make_widget","will_it_fit","remove_widget","detach_node","removeData","remove_all","destroy","off","disable","movable","isNaN","_update_element","callback","first","move","update","noUpdate","heightData","get_cell_from_pixel","containerPos","relativeLeft","relativeTop","column_width","row_height","set_static","static_value","static_class_name","GridStackUI","fn","gridstack"],"mappings":"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","file":"gridstack.min.js"}
\ No newline at end of file
+{"version":3,"sources":["../src/gridstack.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","parseHeight","val","height","heightUnit","isString","match","Error","parseInt","unit","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","this","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","sort","nodes","dir","chain","map","node","max","value","sortBy","n","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","_didCollideFloat","bn","newY","_didCollide","_isAddNodeIntercepted","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","batchUpdate","commit","_packNodes","_notify","_fixCollisions","_sortNodes","hasLocked","find","locked","collisionNode","bind","moveNode","isAreaEmpty","each","i","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","autoPosition","noResize","noMove","deletedNodes","Array","slice","call","concat","getDirtyNodes","cleanNodes","filter","addNode","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","push","removeNode","without","canMoveNode","clonedNode","clone","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","reduce","memo","beginUpdate","endUpdate","GridStack","el","opts","oneColumnMode","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","float","_class","random","toFixed","animate","resizable","autoHide","handles","draggable","scroll","appendTo","addClass","_setStaticClass","_initStyles","grid","_updateStyles","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","onResizeHandler","_isOneColumnMode","append","resize","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","length","trigger","_stylesId","_styles","_max","getHeight","prefix","cellHeightUnit","verticalMarginUnit","nbRows","nbMargins","css","innerWidth","documentElement","clientWidth","body","data","cellWidth","dragOrResize","event","ui","round","position","left","top","type","onStartMoving","o","ceil","outerWidth","strictCellHeight","outerHeight","show","onEndMoving","detach","removeAttr","nestedGrids","containment","parent","start","stop","drag","enable","removeClass","addWidget","makeWidget","willItFit","removeWidget","detachNode","removeData","removeAll","destroy","off","disable","movable","isNaN","_updateElement","callback","first","move","update","noUpdate","heightData","getCellFromPixel","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","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","fn","gridstack"],"mappings":"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","file":"gridstack.min.js"}
\ No newline at end of file