{"version":3,"sources":["vendor/gridstack/gridstack.js"],"names":["factory","define","amd","jQuery","_","$","scope","window","Utils","is_intercepted","a","b","x","width","y","height","sort","nodes","dir","chain","map","node","max","value","sortBy","n","create_stylesheet","id","style","document","createElement","setAttribute","styleSheet","cssText","appendChild","createTextNode","getElementsByTagName","sheet","insert_css_rule","selector","rules","index","insertRule","addRule","toBool","v","toLowerCase","Boolean","id_seq","GridStackEngine","onchange","float","items","layout","this","_update_counter","_float","prototype","batch_update","commit","_pack_nodes","_notify","_fix_collisions","_sort_nodes","nn","has_locked","find","locked","collision_node","isDragging","move_node","is_area_empty","forEach","i","_updating","_orig_y","new_y","bn","_dirty","bind","can_be_moved","take","_prepare_node","resizing","defaults","parseInt","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","w","last","undefined","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","move_node_nofix","reduce","memo","begin_update","end_update","GridStack","el","opts","one_column_mode","self","container","item_class","is_nested","closest","size","attr","placeholder_class","handle","cell_height","vertical_margin","auto","_class","toFixed","animate","always_show_resize_handle","resizable","autoHide","handles","draggable","scroll","appendTo","addClass","_init_styles","grid","remove","_update_styles","elements","_this","children","each","_prepare_element","set_animation","placeholder","hide","on_resize_handler","_is_one_column_mode","append","resize","_styles_id","random","_styles","_max","prefix","_update_container_height","innerWidth","documentElement","clientWidth","body","data","cell_width","on_start_moving","event","ui","o","ceil","outerWidth","show","on_end_moving","detach","removeAttr","length","trigger","start","stop","drag","round","position","left","top","containment","parent","enable","removeClass","add_widget","will_it_fit","remove_widget","detach_node","removeData","remove_all","val","movable","disable","_update_element","callback","first","move","update","get_cell_from_pixel","containerPos","relativeLeft","relativeTop","column_width","row_height","GridStackUI","fn","gridstack"],"mappings":"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","file":"vendor/gridstack/gridstack.js","sourcesContent":["// gridstack.js 0.2.3-dev\r\n// http://troolee.github.io/gridstack.js/\r\n// (c) 2014-2015 Pavel Reznikov\r\n// gridstack.js may be freely distributed under the MIT license.\r\n\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(['jquery', 'lodash', 'jquery-ui/core', 'jquery-ui/widget', 'jquery-ui/mouse', 'jquery-ui/draggable', 'jquery-ui/resizable'], factory);\r\n }\r\n else {\r\n factory(jQuery, _);\r\n }\r\n})(function ($, _) {\r\n\r\n var scope = window;\r\n var Utils = {\r\n is_intercepted: function (a, b) {\r\n return !(a.x + a.width <= b.x || b.x + b.width <= a.x || a.y + a.height <= b.y || b.y + b.height <= a.y);\r\n },\r\n\r\n sort: function (nodes, dir, width) {\r\n width = width || _.chain(nodes).map(function (node) { return node.x + node.width; }).max().value();\r\n dir = dir != -1 ? 1 : -1;\r\n return _.sortBy(nodes, function (n) { return dir * (n.x + n.y * width); });\r\n },\r\n\r\n create_stylesheet: function (id) {\r\n var style = document.createElement(\"style\");\r\n style.setAttribute(\"type\", \"text/css\");\r\n style.setAttribute(\"data-gs-id\", id);\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = \"\";\r\n }\r\n else {\r\n style.appendChild(document.createTextNode(\"\"));\r\n }\r\n document.getElementsByTagName('head')[0].appendChild(style);\r\n return style.sheet;\r\n },\r\n\r\n insert_css_rule: function (sheet, selector, rules, index) {\r\n if(typeof sheet.insertRule === 'function') {\r\n sheet.insertRule(selector + \"{\" + rules + \"}\", index);\r\n }\r\n else if(typeof sheet.addRule === 'function') {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n },\r\n\r\n toBool: function (v) {\r\n if (typeof v == 'boolean')\r\n return v;\r\n if (typeof v == 'string') {\r\n v = v.toLowerCase();\r\n return !(v == '' || v == 'no' || v == 'false' || v == '0');\r\n }\r\n return Boolean(v);\r\n }\r\n };\r\n\r\n var id_seq = 0;\r\n\r\n var GridStackEngine = function (width, onchange, float, height, items, layout) {\r\n this.width = width;\r\n this.float = float || false;\r\n this.height = height || 0;\r\n this.layout = layout;\r\n\r\n this.nodes = items || [];\r\n this.onchange = onchange || function () {};\r\n\r\n this._update_counter = 0;\r\n this._float = this.float;\r\n };\r\n\r\n GridStackEngine.prototype.batch_update = function () {\r\n this._update_counter = 1;\r\n this.float = true;\r\n };\r\n\r\n GridStackEngine.prototype.commit = function () {\r\n this._update_counter = 0;\r\n if (this._update_counter == 0) {\r\n this.float = this._float;\r\n this._pack_nodes();\r\n this._notify();\r\n }\r\n };\r\n\r\n GridStackEngine.prototype._fix_collisions = function (node) {\r\n this._sort_nodes(-1);\r\n\r\n var nn = node, has_locked = Boolean(_.find(this.nodes, function (n) { return n.locked }));\r\n if (!this.float && !has_locked) {\r\n nn = {x: 0, y: node.y, width: this.width, height: node.height};\r\n }\r\n\r\n while (true) {\r\n var collision_node = _.find(this.nodes, function (n) {\r\n return n != node && Utils.is_intercepted(n, nn);\r\n }, this);\r\n\r\n if (typeof collision_node == 'undefined') {\r\n return;\r\n }\r\n\r\n // If during drag, fix the actual node to go below\r\n if (node.isDragging && (node.y > collision_node.y)) {\r\n this.move_node(node, node.x, collision_node.y + collision_node.height, node.width, node.height, false);\r\n return;\r\n }\r\n\r\n this.move_node(collision_node, collision_node.x, node.y + node.height,\r\n collision_node.width, collision_node.height, true);\r\n }\r\n };\r\n\r\n GridStackEngine.prototype.is_area_empty = function (x, y, width, height) {\r\n var nn = {x: x || 0, y: y || 0, width: width || 1, height: height || 1};\r\n var collision_node = _.find(this.nodes, function (n) {\r\n return Utils.is_intercepted(n, nn);\r\n }, this);\r\n return collision_node == null;\r\n };\r\n\r\n GridStackEngine.prototype._sort_nodes = function (dir) {\r\n this.nodes = Utils.sort(this.nodes, dir, this.width);\r\n };\r\n\r\n GridStackEngine.prototype._pack_nodes = function () {\r\n this._sort_nodes();\r\n\r\n if (this.float) {\r\n _.forEach(this.nodes, function (n, i) {\r\n if (n._updating || typeof n._orig_y == 'undefined' || n.y == n._orig_y)\r\n return;\r\n\r\n var new_y = n.y;\r\n while (new_y >= n._orig_y) {\r\n var collision_node = _.chain(this.nodes)\r\n .find(function (bn) {\r\n return n != bn && Utils.is_intercepted({x: n.x, y: new_y, width: n.width, height: n.height}, bn);\r\n })\r\n .value();\r\n\r\n if (!collision_node) {\r\n n._dirty = true;\r\n n.y = new_y;\r\n }\r\n --new_y;\r\n }\r\n }.bind(this));\r\n }\r\n else {\r\n _.forEach(this.nodes, function (n, i) {\r\n if (n.locked)\r\n return;\r\n while (n.y > 0) {\r\n var new_y = n.y - 1;\r\n var can_be_moved = i == 0;\r\n\r\n if (i > 0) {\r\n var collision_node = _.chain(this.nodes)\r\n .take(i)\r\n .find(function (bn) {\r\n return Utils.is_intercepted({x: n.x, y: new_y, width: n.width, height: n.height}, bn);\r\n })\r\n .value();\r\n can_be_moved = typeof collision_node == 'undefined';\r\n }\r\n\r\n if (!can_be_moved) {\r\n break;\r\n }\r\n n._dirty = n.y != new_y;\r\n n.y = new_y;\r\n }\r\n }.bind(this));\r\n }\r\n };\r\n\r\n GridStackEngine.prototype._prepare_node = function (node, resizing) {\r\n node = _.defaults(node || {}, {width: 1, height: 1, x: 0, y: 0 });\r\n\r\n node.x = parseInt('' + node.x);\r\n node.y = parseInt('' + node.y);\r\n node.width = parseInt('' + node.width);\r\n node.height = parseInt('' + node.height);\r\n node.auto_position = node.auto_position || false;\r\n node.no_resize = node.no_resize || false;\r\n node.no_move = node.no_move || false;\r\n\r\n if (node.width > this.width) {\r\n node.width = this.width;\r\n }\r\n else if (node.width < 1) {\r\n node.width = 1;\r\n }\r\n\r\n if (node.height < 1) {\r\n node.height = 1;\r\n }\r\n\r\n if (node.x < 0) {\r\n node.x = 0;\r\n }\r\n\r\n if (node.x + node.width > this.width) {\r\n if (resizing) {\r\n node.width = this.width - node.x;\r\n }\r\n else {\r\n node.x = this.width - node.width;\r\n }\r\n }\r\n\r\n if (node.y < 0) {\r\n node.y = 0;\r\n }\r\n\r\n return node;\r\n };\r\n\r\n GridStackEngine.prototype._notify = function () {\r\n if (this._update_counter) {\r\n return;\r\n }\r\n var deleted_nodes = Array.prototype.slice.call(arguments, 1).concat(this.get_dirty_nodes());\r\n deleted_nodes = deleted_nodes.concat(this.get_dirty_nodes());\r\n this.onchange(deleted_nodes);\r\n };\r\n\r\n GridStackEngine.prototype.clean_nodes = function () {\r\n _.forEach(this.nodes, function (n) {n._dirty = false });\r\n };\r\n\r\n GridStackEngine.prototype.get_dirty_nodes = function () {\r\n return _.filter(this.nodes, function (n) { return n._dirty; });\r\n };\r\n\r\n GridStackEngine.prototype.add_node = function(node) {\r\n node = this._prepare_node(node);\r\n\r\n if (typeof node.max_width != 'undefined') node.width = Math.min(node.width, node.max_width);\r\n if (typeof node.max_height != 'undefined') node.height = Math.min(node.height, node.max_height);\r\n if (typeof node.min_width != 'undefined') node.width = Math.max(node.width, node.min_width);\r\n if (typeof node.min_height != 'undefined') node.height = Math.max(node.height, node.min_height);\r\n\r\n node._id = ++id_seq;\r\n node._dirty = true;\r\n\r\n if (node.auto_position) {\r\n this._sort_nodes();\r\n\r\n if (this.layout == 'stacked') {\r\n var x = 0, y = 0, w = this.width;\r\n var last = _.last(this.nodes);\r\n if (last != undefined) {\r\n y = last.y + last.height;\r\n }\r\n\r\n node.x = x;\r\n node.y = y;\r\n node.width = w;\r\n } else if (this.layout == 'column') {\r\n // No adjustment necessary\r\n } else { // default: horizontal\r\n for (var i = 0; ; ++i) {\r\n var x = i % this.width, y = Math.floor(i / this.width);\r\n if (x + node.width > this.width) {\r\n continue;\r\n }\r\n if (!_.find(this.nodes, function (n) {\r\n return Utils.is_intercepted({x: x, y: y, width: node.width, height: node.height}, n);\r\n })) {\r\n node.x = x;\r\n node.y = y;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.nodes.push(node);\r\n\r\n this._fix_collisions(node);\r\n this._pack_nodes();\r\n this._notify();\r\n return node;\r\n };\r\n\r\n GridStackEngine.prototype.remove_node = function (node) {\r\n node._id = null;\r\n this.nodes = _.without(this.nodes, node);\r\n this._pack_nodes();\r\n this._notify(node);\r\n };\r\n\r\n GridStackEngine.prototype.can_move_node = function (node, x, y, width, height) {\r\n var has_locked = Boolean(_.find(this.nodes, function (n) { return n.locked }));\r\n\r\n if (!this.height && !has_locked)\r\n return true;\r\n\r\n var cloned_node;\r\n var clone = new GridStackEngine(\r\n this.width,\r\n null,\r\n this.float,\r\n 0,\r\n _.map(this.nodes, function (n) { if (n == node) { cloned_node = $.extend({}, n); return cloned_node; } return $.extend({}, n) }),\r\n this.layout);\r\n\r\n clone.move_node(cloned_node, x, y, width, height);\r\n\r\n var res = true;\r\n\r\n if (has_locked)\r\n res &= !Boolean(_.find(clone.nodes, function (n) { return n != cloned_node && Boolean(n.locked) && Boolean(n._dirty); }));\r\n if (this.height)\r\n res &= clone.get_grid_height() <= this.height;\r\n\r\n return res;\r\n };\r\n\r\n GridStackEngine.prototype.can_be_placed_with_respect_to_height = function (node) {\r\n if (!this.height)\r\n return true;\r\n\r\n var clone = new GridStackEngine(\r\n this.width,\r\n null,\r\n this.float,\r\n 0,\r\n _.map(this.nodes, function (n) { return $.extend({}, n) }),\r\n this.layout);\r\n clone.add_node(node);\r\n return clone.get_grid_height() <= this.height;\r\n };\r\n\r\n GridStackEngine.prototype.move_node = function (node, x, y, width, height, no_pack) {\r\n if (typeof x != 'number') x = node.x;\r\n if (typeof y != 'number') y = node.y;\r\n if (typeof width != 'number') width = node.width;\r\n if (typeof height != 'number') height = node.height;\r\n\r\n if (typeof node.max_width != 'undefined') width = Math.min(width, node.max_width);\r\n if (typeof node.max_height != 'undefined') height = Math.min(height, node.max_height);\r\n if (typeof node.min_width != 'undefined') width = Math.max(width, node.min_width);\r\n if (typeof node.min_height != 'undefined') height = Math.max(height, node.min_height);\r\n\r\n if (node.x == x && node.y == y && node.width == width && node.height == height) {\r\n return node;\r\n }\r\n\r\n var resizing = node.width != width;\r\n node._dirty = true;\r\n\r\n node.x = x;\r\n node.y = y;\r\n node.width = width;\r\n node.height = height;\r\n\r\n node = this._prepare_node(node, resizing);\r\n\r\n this._fix_collisions(node);\r\n if (!no_pack) {\r\n this._pack_nodes();\r\n this._notify();\r\n }\r\n return node;\r\n };\r\n\r\n GridStackEngine.prototype.move_node_nofix = function (node, x, y, width, height) {\r\n if (typeof x != 'number') x = node.x;\r\n if (typeof y != 'number') y = node.y;\r\n if (typeof width != 'number') width = node.width;\r\n if (typeof height != 'number') height = node.height;\r\n\r\n if (typeof node.max_width != 'undefined') width = Math.min(width, node.max_width);\r\n if (typeof node.max_height != 'undefined') height = Math.min(height, node.max_height);\r\n if (typeof node.min_width != 'undefined') width = Math.max(width, node.min_width);\r\n if (typeof node.min_height != 'undefined') height = Math.max(height, node.min_height);\r\n\r\n if (node.x == x && node.y == y && node.width == width && node.height == height) {\r\n return node;\r\n }\r\n\r\n var resizing = node.width != width;\r\n node._dirty = true;\r\n\r\n node.x = x;\r\n node.y = y;\r\n node.width = width;\r\n node.height = height;\r\n\r\n node = this._prepare_node(node, resizing);\r\n\r\n return node;\r\n };\r\n\r\n GridStackEngine.prototype.get_grid_height = function () {\r\n return _.reduce(this.nodes, function (memo, n) { return Math.max(memo, n.y + n.height); }, 0);\r\n };\r\n\r\n GridStackEngine.prototype.begin_update = function (node) {\r\n _.forEach(this.nodes, function (n) {\r\n n._orig_y = n.y;\r\n });\r\n node._updating = true;\r\n };\r\n\r\n GridStackEngine.prototype.end_update = function () {\r\n _.forEach(this.nodes, function (n) {\r\n n._orig_y = n.y;\r\n });\r\n var n = _.find(this.nodes, function (n) { return n._updating; });\r\n if (n) {\r\n n._updating = false;\r\n }\r\n };\r\n\r\n var GridStack = function (el, opts) {\r\n var self = this, one_column_mode;\r\n\r\n this.container = $(el);\r\n\r\n opts.item_class = opts.item_class || 'grid-stack-item';\r\n var is_nested = this.container.closest('.' + opts.item_class).size() > 0;\r\n\r\n this.opts = _.defaults(opts || {}, {\r\n width: parseInt(this.container.attr('data-gs-width')) || 12,\r\n height: parseInt(this.container.attr('data-gs-height')) || 0,\r\n item_class: 'grid-stack-item',\r\n placeholder_class: 'grid-stack-placeholder',\r\n handle: '.grid-stack-item-handle',\r\n cell_height: 60,\r\n vertical_margin: 20,\r\n auto: true,\r\n min_width: 768,\r\n float: false,\r\n layout: 'interactive', // horizontal, stacked\r\n _class: 'grid-stack-' + (parseInt(this.container.attr('data-gs-width')) || 12).toFixed(0),\r\n animate: Boolean(this.container.attr('data-gs-animate')) || false,\r\n always_show_resize_handle: opts.always_show_resize_handle || false,\r\n resizable: _.defaults(opts.resizable || {}, {\r\n autoHide: !(opts.always_show_resize_handle || false),\r\n handles: 'se'\r\n }),\r\n draggable: _.defaults(opts.draggable || {}, {\r\n handle: '.grid-stack-item-handle',\r\n scroll: false,\r\n appendTo: 'body'\r\n })\r\n });\r\n this.opts.is_nested = is_nested;\r\n\r\n this.container.addClass(this.opts._class);\r\n if (is_nested) {\r\n this.container.addClass('grid-stack-nested');\r\n }\r\n\r\n this._init_styles();\r\n\r\n this.grid = new GridStackEngine(this.opts.width, function (nodes) {\r\n var max_height = 0;\r\n _.forEach(nodes, function (n) {\r\n if (n._id == null) {\r\n n.el.remove();\r\n }\r\n else {\r\n n.el\r\n .attr('data-gs-x', n.x)\r\n .attr('data-gs-y', n.y)\r\n .attr('data-gs-width', n.width)\r\n .attr('data-gs-height', n.height);\r\n max_height = Math.max(max_height, n.y + n.height);\r\n }\r\n });\r\n self._update_styles(max_height + 10);\r\n }, this.opts.float, this.opts.height, undefined, this.opts.layout);\r\n\r\n if (this.opts.auto) {\r\n var elements = [];\r\n var _this = this;\r\n this.container.children('.' + this.opts.item_class).each(function (index, el) {\r\n el = $(el);\r\n elements.push({\r\n el: el,\r\n i: parseInt(el.attr('data-gs-x')) + parseInt(el.attr('data-gs-y')) * _this.opts.width // Use opts.width as weight for Y\r\n });\r\n });\r\n _.chain(elements).sortBy(function (x) { return x.i; }).each(function (i) {\r\n self._prepare_element(i.el);\r\n }).value();\r\n }\r\n\r\n this.set_animation(this.opts.animate);\r\n\r\n this.placeholder = $('