From 547c21328920bd08623663b948624955e9880e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Tue, 10 Jan 2017 12:38:45 +0100 Subject: [PATCH 01/38] Improvements to counter the datawall overlaying bug nr2 --- src/gridstack.js | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index ec983a19d..b3cd41748 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -207,17 +207,26 @@ // will try to fix the collision var newPos, - newY = node.y + node.height, wrongPos = !isClone && ((node.y + node.height + collisionNode.height) > this.height); if (wrongPos) { - // if the pos is out of bounds, put it on first available - newPos = this.findFreeSpace(collisionNode.width, collisionNode.height, collisionNode); - if (!newPos) { - newPos = this.findFreeSpace(); - } - if (!newPos) { - return; // hmm + // check the original Y position first + if (this.isAreaEmpty(collisionNode.x, collisionNode._origY, collisionNode.width, collisionNode.height, collisionNode)) { + newPos = { + x: collisionNode.x, + y: collisionNode._origY, + w: collisionNode.width, + h: collisionNode.height + }; + } else { + // if the pos is out of bounds, put it on first available + newPos = this.findFreeSpace(collisionNode.width, collisionNode.height, collisionNode); + if (!newPos) { + newPos = this.findFreeSpace(); + } + if (!newPos) { + return; // hmm + } } } else { newPos = { @@ -229,7 +238,8 @@ } if (newPos) { - this.moveNode(collisionNode, newPos.x, newPos.y, newPos.w, newPos.h, true, isClone); + // all recursive collision fixes are treated like they are isClone true + this.moveNode(collisionNode, newPos.x, newPos.y, newPos.w, newPos.h, true, true); } } @@ -243,14 +253,13 @@ return collisionNodes; }; - GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height) { - var collisionNodes = this.whatIsHere(x, y, width, height); - return collisionNodes.length === 0; + GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height, exceptNode) { + var collisionNodes = this.whatIsHere(x, y, width, height); + return (!collisionNodes.length || (exceptNode && collisionNodes.length === 1 && collisionNodes[0] === exceptNode)); }; GridStackEngine.prototype.findFreeSpace = function(w, h, forNode) { var freeSpace = null, - nodesHere = [], i, j; // first free for 1x1 or we have specified width and height @@ -265,8 +274,7 @@ if (freeSpace) { break; } - nodesHere = this.whatIsHere(i, j, w, h); - if (!nodesHere.length || (forNode && nodesHere.length === 1 && nodesHere[0] === forNode)) { + if (this.isAreaEmpty(i, j, w, h, forNode)) { freeSpace = {x: i, y: j, w: w, h: h}; } } From 8694619cb436346373c732809154355df6fbfa60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Tue, 10 Jan 2017 12:40:36 +0100 Subject: [PATCH 02/38] Assets built --- dist/gridstack.all.js | 10 +++++++--- dist/gridstack.js | 38 +++++++++++++++++++++++--------------- dist/gridstack.min.js | 10 +++++++--- dist/gridstack.min.map | 2 +- 4 files changed, 38 insertions(+), 22 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index f4b9c2a31..a8c002a21 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -17,11 +17,15 @@ g.is_intercepted=e(g.isIntercepted,"is_intercepted","isIntercepted"),g.create_st // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return; // will try to fix the collision -var h,i=(a.y+a.height,!c&&a.y+a.height+f.height>this.height);if(i){if( +var h,i=!c&&a.y+a.height+f.height>this.height;if(i){ +// check the original Y position first +if(this.isAreaEmpty(f.x,f._origY,f.width,f.height,f))h={x:f.x,y:f._origY,w:f.width,h:f.height};else if( // if the pos is out of bounds, put it on first available -h=this.findFreeSpace(f.width,f.height,f),h||(h=this.findFreeSpace()),!h)return}else h={x:f.x,y:a.y+a.height,w:f.width,h:f.height};h&&this.moveNode(f,h.x,h.y,h.w,h.h,!0,c)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d){var e=this.whatIsHere(a,b,c,d);return 0===e.length},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null,g=[];for( +h=this.findFreeSpace(f.width,f.height,f),h||(h=this.findFreeSpace()),!h)return}else h={x:f.x,y:a.y+a.height,w:f.width,h:f.height};h&& +// all recursive collision fixes are treated like they are isClone true +this.moveNode(f,h.x,h.y,h.w,h.h,!0,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( // first free for 1x1 or we have specified width and height -a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)g=this.whatIsHere(d,e,a,b),(!g.length||c&&1===g.length&&g[0]===c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; +a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; // always allow moving the one out of bounds 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,c.y+c.height>this.height&&(l=!0)),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,!1,!0),d.getGridHeight()<=this.height},i.prototype.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f,g){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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 h=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=e,a=this._prepareNode(a,h),this._fixCollisions(a,g),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(d,e){var g,h,j=this;e=e||{},this.container=a(d), // jscs:disable requireCamelCaseOrUpperCaseIdentifiers diff --git a/dist/gridstack.js b/dist/gridstack.js index ec983a19d..b3cd41748 100644 --- a/dist/gridstack.js +++ b/dist/gridstack.js @@ -207,17 +207,26 @@ // will try to fix the collision var newPos, - newY = node.y + node.height, wrongPos = !isClone && ((node.y + node.height + collisionNode.height) > this.height); if (wrongPos) { - // if the pos is out of bounds, put it on first available - newPos = this.findFreeSpace(collisionNode.width, collisionNode.height, collisionNode); - if (!newPos) { - newPos = this.findFreeSpace(); - } - if (!newPos) { - return; // hmm + // check the original Y position first + if (this.isAreaEmpty(collisionNode.x, collisionNode._origY, collisionNode.width, collisionNode.height, collisionNode)) { + newPos = { + x: collisionNode.x, + y: collisionNode._origY, + w: collisionNode.width, + h: collisionNode.height + }; + } else { + // if the pos is out of bounds, put it on first available + newPos = this.findFreeSpace(collisionNode.width, collisionNode.height, collisionNode); + if (!newPos) { + newPos = this.findFreeSpace(); + } + if (!newPos) { + return; // hmm + } } } else { newPos = { @@ -229,7 +238,8 @@ } if (newPos) { - this.moveNode(collisionNode, newPos.x, newPos.y, newPos.w, newPos.h, true, isClone); + // all recursive collision fixes are treated like they are isClone true + this.moveNode(collisionNode, newPos.x, newPos.y, newPos.w, newPos.h, true, true); } } @@ -243,14 +253,13 @@ return collisionNodes; }; - GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height) { - var collisionNodes = this.whatIsHere(x, y, width, height); - return collisionNodes.length === 0; + GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height, exceptNode) { + var collisionNodes = this.whatIsHere(x, y, width, height); + return (!collisionNodes.length || (exceptNode && collisionNodes.length === 1 && collisionNodes[0] === exceptNode)); }; GridStackEngine.prototype.findFreeSpace = function(w, h, forNode) { var freeSpace = null, - nodesHere = [], i, j; // first free for 1x1 or we have specified width and height @@ -265,8 +274,7 @@ if (freeSpace) { break; } - nodesHere = this.whatIsHere(i, j, w, h); - if (!nodesHere.length || (forNode && nodesHere.length === 1 && nodesHere[0] === forNode)) { + if (this.isAreaEmpty(i, j, w, h, forNode)) { freeSpace = {x: i, y: j, w: w, h: h}; } } diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js index 6e80d84da..a30fe2e3e 100644 --- a/dist/gridstack.min.js +++ b/dist/gridstack.min.js @@ -17,11 +17,15 @@ g.is_intercepted=e(g.isIntercepted,"is_intercepted","isIntercepted"),g.create_st // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return; // will try to fix the collision -var h,i=(a.y+a.height,!c&&a.y+a.height+f.height>this.height);if(i){if( +var h,i=!c&&a.y+a.height+f.height>this.height;if(i){ +// check the original Y position first +if(this.isAreaEmpty(f.x,f._origY,f.width,f.height,f))h={x:f.x,y:f._origY,w:f.width,h:f.height};else if( // if the pos is out of bounds, put it on first available -h=this.findFreeSpace(f.width,f.height,f),h||(h=this.findFreeSpace()),!h)return}else h={x:f.x,y:a.y+a.height,w:f.width,h:f.height};h&&this.moveNode(f,h.x,h.y,h.w,h.h,!0,c)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d){var e=this.whatIsHere(a,b,c,d);return 0===e.length},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null,g=[];for( +h=this.findFreeSpace(f.width,f.height,f),h||(h=this.findFreeSpace()),!h)return}else h={x:f.x,y:a.y+a.height,w:f.width,h:f.height};h&& +// all recursive collision fixes are treated like they are isClone true +this.moveNode(f,h.x,h.y,h.w,h.h,!0,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( // first free for 1x1 or we have specified width and height -a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)g=this.whatIsHere(d,e,a,b),(!g.length||c&&1===g.length&&g[0]===c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; +a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; // always allow moving the one out of bounds 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,c.y+c.height>this.height&&(l=!0)),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,!1,!0),d.getGridHeight()<=this.height},i.prototype.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f,g){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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 h=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=e,a=this._prepareNode(a,h),this._fixCollisions(a,g),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(d,e){var g,h,j=this;e=e||{},this.container=a(d), // jscs:disable requireCamelCaseOrUpperCaseIdentifiers diff --git a/dist/gridstack.min.map b/dist/gridstack.min.map index 7a5e1c85b..eb8e837af 100644 --- a/dist/gridstack.min.map +++ b/dist/gridstack.min.map @@ -1 +1 @@ -{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","isClone","_sortNodes","hasLocked","locked","collisionNode","bind","newPos","wrongPos","findFreeSpace","w","h","moveNode","whatIsHere","collisionNodes","filter","isAreaEmpty","length","forNode","i","j","freeSpace","nodesHere","each","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","max_height","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","originalEvent","target","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","refreshNodes","isDisabled","that","k","getCellFromAbsolutePixel","nodeOffset","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file +{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","isClone","_sortNodes","hasLocked","locked","collisionNode","bind","newPos","wrongPos","isAreaEmpty","_origY","w","h","findFreeSpace","moveNode","whatIsHere","collisionNodes","filter","exceptNode","length","forNode","i","j","freeSpace","each","_updating","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","max_height","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","originalEvent","target","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","refreshNodes","isDisabled","that","k","getCellFromAbsolutePixel","nodeOffset","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file From 37d9dc9ef545ffe5a306bcbd1a6953c276c521ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 25 Jan 2017 09:04:02 +0100 Subject: [PATCH 03/38] No automove of other blocks --- src/gridstack.js | 50 +++++++++++++----------------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index b3cd41748..750260304 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -205,43 +205,7 @@ return; } - // will try to fix the collision - var newPos, - wrongPos = !isClone && ((node.y + node.height + collisionNode.height) > this.height); - - if (wrongPos) { - // check the original Y position first - if (this.isAreaEmpty(collisionNode.x, collisionNode._origY, collisionNode.width, collisionNode.height, collisionNode)) { - newPos = { - x: collisionNode.x, - y: collisionNode._origY, - w: collisionNode.width, - h: collisionNode.height - }; - } else { - // if the pos is out of bounds, put it on first available - newPos = this.findFreeSpace(collisionNode.width, collisionNode.height, collisionNode); - if (!newPos) { - newPos = this.findFreeSpace(); - } - if (!newPos) { - return; // hmm - } - } - } else { - newPos = { - x: collisionNode.x, - y: node.y + node.height, - w: collisionNode.width, - h: collisionNode.height - }; - } - - if (newPos) { - // all recursive collision fixes are treated like they are isClone true - this.moveNode(collisionNode, newPos.x, newPos.y, newPos.w, newPos.h, true, true); - } - + this.moveNode(collisionNode, collisionNode.x, node.y + node.height, collisionNode.width, collisionNode.height, true); } }; @@ -254,6 +218,10 @@ }; GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height, exceptNode) { + // first check if is not out of bounds + if (y + height > this.height || x + width > this.width) { + return false; + } var collisionNodes = this.whatIsHere(x, y, width, height); return (!collisionNodes.length || (exceptNode && collisionNodes.length === 1 && collisionNodes[0] === exceptNode)); }; @@ -459,6 +427,10 @@ return true; } + if (!this.isAreaEmpty(x, y, width, height, node)) { + return false; + } + var clonedNode; var clone = new GridStackEngine( this.width, @@ -548,6 +520,10 @@ return node; } + if (!this.isAreaEmpty(x, y, width, height, node)) { + return node; + } + var resizing = node.width != width; node._dirty = true; From b1d37b7c1b54e03dcaa933c0a4770996fdf57428 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 25 Jan 2017 09:05:31 +0100 Subject: [PATCH 04/38] Assets --- dist/gridstack.all.js | 16 +++++--------- dist/gridstack.js | 50 +++++++++++------------------------------- dist/gridstack.min.js | 16 +++++--------- dist/gridstack.min.map | 2 +- 4 files changed, 24 insertions(+), 60 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index a8c002a21..0f5c843ca 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -15,19 +15,13 @@ function c(a){this.grid=a}var d=window,e=function(a,b,c){var d=function(){return // 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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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"],this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this["float"]=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this["float"]=this._float,this._packNodes(),this._notify())}, // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return; -// will try to fix the collision -var h,i=!c&&a.y+a.height+f.height>this.height;if(i){ -// check the original Y position first -if(this.isAreaEmpty(f.x,f._origY,f.width,f.height,f))h={x:f.x,y:f._origY,w:f.width,h:f.height};else if( -// if the pos is out of bounds, put it on first available -h=this.findFreeSpace(f.width,f.height,f),h||(h=this.findFreeSpace()),!h)return}else h={x:f.x,y:a.y+a.height,w:f.width,h:f.height};h&& -// all recursive collision fixes are treated like they are isClone true -this.moveNode(f,h.x,h.y,h.w,h.h,!0,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( +i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return;this.moveNode(f,f.x,a.y+a.height,f.width,f.height,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){ +// first check if is not out of bounds +if(b+d>this.height||a+c>this.width)return!1;var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( // first free for 1x1 or we have specified width and height -a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; +a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;var h=Boolean(b.find(this.nodes,function(a){return a.locked}));if(!this.height&&!h)return!0;if(!this.isAreaEmpty(d,e,f,g,c))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; // always allow moving the one out of bounds -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,c.y+c.height>this.height&&(l=!0)),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,!1,!0),d.getGridHeight()<=this.height},i.prototype.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f,g){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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 h=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=e,a=this._prepareNode(a,h),this._fixCollisions(a,g),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(d,e){var g,h,j=this;e=e||{},this.container=a(d), +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,c.y+c.height>this.height&&(l=!0)),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,!1,!0),d.getGridHeight()<=this.height},i.prototype.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f,g){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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;if(!this.isAreaEmpty(b,c,d,e,a))return a;var h=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=e,a=this._prepareNode(a,h),this._fixCollisions(a,g),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(d,e){var g,h,j=this;e=e||{},this.container=a(d), // jscs:disable requireCamelCaseOrUpperCaseIdentifiers "undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")), // jscs:enable requireCamelCaseOrUpperCaseIdentifiers diff --git a/dist/gridstack.js b/dist/gridstack.js index b3cd41748..750260304 100644 --- a/dist/gridstack.js +++ b/dist/gridstack.js @@ -205,43 +205,7 @@ return; } - // will try to fix the collision - var newPos, - wrongPos = !isClone && ((node.y + node.height + collisionNode.height) > this.height); - - if (wrongPos) { - // check the original Y position first - if (this.isAreaEmpty(collisionNode.x, collisionNode._origY, collisionNode.width, collisionNode.height, collisionNode)) { - newPos = { - x: collisionNode.x, - y: collisionNode._origY, - w: collisionNode.width, - h: collisionNode.height - }; - } else { - // if the pos is out of bounds, put it on first available - newPos = this.findFreeSpace(collisionNode.width, collisionNode.height, collisionNode); - if (!newPos) { - newPos = this.findFreeSpace(); - } - if (!newPos) { - return; // hmm - } - } - } else { - newPos = { - x: collisionNode.x, - y: node.y + node.height, - w: collisionNode.width, - h: collisionNode.height - }; - } - - if (newPos) { - // all recursive collision fixes are treated like they are isClone true - this.moveNode(collisionNode, newPos.x, newPos.y, newPos.w, newPos.h, true, true); - } - + this.moveNode(collisionNode, collisionNode.x, node.y + node.height, collisionNode.width, collisionNode.height, true); } }; @@ -254,6 +218,10 @@ }; GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height, exceptNode) { + // first check if is not out of bounds + if (y + height > this.height || x + width > this.width) { + return false; + } var collisionNodes = this.whatIsHere(x, y, width, height); return (!collisionNodes.length || (exceptNode && collisionNodes.length === 1 && collisionNodes[0] === exceptNode)); }; @@ -459,6 +427,10 @@ return true; } + if (!this.isAreaEmpty(x, y, width, height, node)) { + return false; + } + var clonedNode; var clone = new GridStackEngine( this.width, @@ -548,6 +520,10 @@ return node; } + if (!this.isAreaEmpty(x, y, width, height, node)) { + return node; + } + var resizing = node.width != width; node._dirty = true; diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js index a30fe2e3e..326bdb1fc 100644 --- a/dist/gridstack.min.js +++ b/dist/gridstack.min.js @@ -15,19 +15,13 @@ function c(a){this.grid=a}var d=window,e=function(a,b,c){var d=function(){return // 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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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"],this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this["float"]=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this["float"]=this._float,this._packNodes(),this._notify())}, // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return; -// will try to fix the collision -var h,i=!c&&a.y+a.height+f.height>this.height;if(i){ -// check the original Y position first -if(this.isAreaEmpty(f.x,f._origY,f.width,f.height,f))h={x:f.x,y:f._origY,w:f.width,h:f.height};else if( -// if the pos is out of bounds, put it on first available -h=this.findFreeSpace(f.width,f.height,f),h||(h=this.findFreeSpace()),!h)return}else h={x:f.x,y:a.y+a.height,w:f.width,h:f.height};h&& -// all recursive collision fixes are treated like they are isClone true -this.moveNode(f,h.x,h.y,h.w,h.h,!0,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( +i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return;this.moveNode(f,f.x,a.y+a.height,f.width,f.height,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){ +// first check if is not out of bounds +if(b+d>this.height||a+c>this.width)return!1;var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( // first free for 1x1 or we have specified width and height -a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; +a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;var h=Boolean(b.find(this.nodes,function(a){return a.locked}));if(!this.height&&!h)return!0;if(!this.isAreaEmpty(d,e,f,g,c))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; // always allow moving the one out of bounds -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,c.y+c.height>this.height&&(l=!0)),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,!1,!0),d.getGridHeight()<=this.height},i.prototype.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f,g){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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 h=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=e,a=this._prepareNode(a,h),this._fixCollisions(a,g),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(d,e){var g,h,j=this;e=e||{},this.container=a(d), +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,c.y+c.height>this.height&&(l=!0)),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,!1,!0),d.getGridHeight()<=this.height},i.prototype.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f,g){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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;if(!this.isAreaEmpty(b,c,d,e,a))return a;var h=a.width!=d;return a._dirty=!0,a.x=b,a.y=c,a.width=d,a.height=e,a.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=e,a=this._prepareNode(a,h),this._fixCollisions(a,g),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(d,e){var g,h,j=this;e=e||{},this.container=a(d), // jscs:disable requireCamelCaseOrUpperCaseIdentifiers "undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")), // jscs:enable requireCamelCaseOrUpperCaseIdentifiers diff --git a/dist/gridstack.min.map b/dist/gridstack.min.map index eb8e837af..435bbc3e2 100644 --- a/dist/gridstack.min.map +++ b/dist/gridstack.min.map @@ -1 +1 @@ -{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","isClone","_sortNodes","hasLocked","locked","collisionNode","bind","newPos","wrongPos","isAreaEmpty","_origY","w","h","findFreeSpace","moveNode","whatIsHere","collisionNodes","filter","exceptNode","length","forNode","i","j","freeSpace","each","_updating","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","max_height","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","originalEvent","target","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","refreshNodes","isDisabled","that","k","getCellFromAbsolutePixel","nodeOffset","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file +{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","isClone","_sortNodes","hasLocked","locked","collisionNode","bind","moveNode","whatIsHere","collisionNodes","filter","isAreaEmpty","exceptNode","length","findFreeSpace","w","h","forNode","i","j","freeSpace","each","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","max_height","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","originalEvent","target","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","refreshNodes","isDisabled","that","k","getCellFromAbsolutePixel","nodeOffset","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file From 9bf2f87e0ba92b6fffac23d838db26985b51b0f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 25 Jan 2017 10:31:13 +0100 Subject: [PATCH 05/38] Remove overlayed items at start --- src/gridstack.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index 750260304..0a620be96 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -1282,11 +1282,12 @@ el = $(el); 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'), + + var props = { + x: parseInt(el.attr('data-gs-x'), 10), + y: parseInt(el.attr('data-gs-y'), 10), + width: parseInt(el.attr('data-gs-width'), 10), + height: parseInt(el.attr('data-gs-height'), 10), maxWidth: el.attr('data-gs-max-width'), minWidth: el.attr('data-gs-min-width'), maxHeight: el.attr('data-gs-max-height'), @@ -1298,7 +1299,24 @@ el: el, id: el.attr('data-gs-id'), _grid: self - }, triggerAddEvent); + }; + + if (!this.isAreaEmpty(props.x, props.y, props.width, props.height)) { + var freeSpace = this.findFreeSpace(props.width, props.height); + if (!freeSpace) { + freeSpace = this.findFreeSpace(1, 1); + } + if (freeSpace) { + props.x = freeSpace.x; + props.y = freeSpace.y; + props.width = freeSpace.w; + props.height = freeSpace.h; + } else { + return; + } + } + + var node = self.grid.addNode(props, triggerAddEvent); el.data('_gridstack_node', node); this._prepareElementsByNode(el, node); From c429dfb4eda450c15fe8a77b203b2a3dc91f8276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 25 Jan 2017 10:31:45 +0100 Subject: [PATCH 06/38] Assets --- dist/gridstack.all.js | 2 +- dist/gridstack.js | 30 ++++++++++++++++++++++++------ dist/gridstack.min.js | 2 +- dist/gridstack.min.map | 2 +- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 0f5c843ca..83f2b9aee 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -32,7 +32,7 @@ this._updateStyles(),this._updateHeightsOnResize=b.throttle(function(){j.cellHei // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e=f.grid.width||k<0||f.grid.height&&k>=f.grid.height?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){if(f.opts.draggable.handle&&"dragstart"===g.type&&!a(g.originalEvent.target).closest(f.opts.draggable.handle).length)return!1;f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this.makeWidget(b),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){if(f.opts.draggable.handle&&"dragstart"===g.type&&!a(g.originalEvent.target).closest(f.opts.draggable.handle).length)return!1;f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e={x:parseInt(b.attr("data-gs-x"),10),y:parseInt(b.attr("data-gs-y"),10),width:parseInt(b.attr("data-gs-width"),10),height:parseInt(b.attr("data-gs-height"),10),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d};if(!this.isAreaEmpty(e.x,e.y,e.width,e.height)){var f=this.findFreeSpace(e.width,e.height);if(f||(f=this.findFreeSpace(1,1)),!f)return;e.x=f.x,e.y=f.y,e.width=f.w,e.height=f.h}var h=d.grid.addNode(e,c);b.data("_gridstack_node",h),this._prepareElementsByNode(b,h)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this.makeWidget(b),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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||"undefined"==typeof a.ui||d.opts.staticGrid||(f.noResize=!c,f.noResize||d._isOneColumnMode()?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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||"undefined"==typeof a.ui||d.opts.staticGrid||(f.noMove=!c,f.noMove||d._isOneColumnMode()?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.findFreeSpace=function(a,b){return this.grid.findFreeSpace(a,b)},j.prototype.setStatic=function(a){this.opts.staticGrid=a===!0,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype.refreshNodes=function(b){var c=this;this.removeAll(!1),this.container.find("."+this.opts.itemClass).each(function(b,d){a(d).off("dragstart dragstop drag resizestart resizestop resize"),c.makeWidget(d)}),this.opts.staticGrid&&b||(b?this.disable():this.enable())},j.prototype.getCellFromAbsolutePixel=function(a){var b=this.container.offset(),c=this.container.position(); // offset relative to gridstack container itself diff --git a/dist/gridstack.js b/dist/gridstack.js index 750260304..0a620be96 100644 --- a/dist/gridstack.js +++ b/dist/gridstack.js @@ -1282,11 +1282,12 @@ el = $(el); 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'), + + var props = { + x: parseInt(el.attr('data-gs-x'), 10), + y: parseInt(el.attr('data-gs-y'), 10), + width: parseInt(el.attr('data-gs-width'), 10), + height: parseInt(el.attr('data-gs-height'), 10), maxWidth: el.attr('data-gs-max-width'), minWidth: el.attr('data-gs-min-width'), maxHeight: el.attr('data-gs-max-height'), @@ -1298,7 +1299,24 @@ el: el, id: el.attr('data-gs-id'), _grid: self - }, triggerAddEvent); + }; + + if (!this.isAreaEmpty(props.x, props.y, props.width, props.height)) { + var freeSpace = this.findFreeSpace(props.width, props.height); + if (!freeSpace) { + freeSpace = this.findFreeSpace(1, 1); + } + if (freeSpace) { + props.x = freeSpace.x; + props.y = freeSpace.y; + props.width = freeSpace.w; + props.height = freeSpace.h; + } else { + return; + } + } + + var node = self.grid.addNode(props, triggerAddEvent); el.data('_gridstack_node', node); this._prepareElementsByNode(el, node); diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js index 326bdb1fc..b0c370bc2 100644 --- a/dist/gridstack.min.js +++ b/dist/gridstack.min.js @@ -32,7 +32,7 @@ this._updateStyles(),this._updateHeightsOnResize=b.throttle(function(){j.cellHei // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e=f.grid.width||k<0||f.grid.height&&k>=f.grid.height?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){if(f.opts.draggable.handle&&"dragstart"===g.type&&!a(g.originalEvent.target).closest(f.opts.draggable.handle).length)return!1;f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this.makeWidget(b),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){if(f.opts.draggable.handle&&"dragstart"===g.type&&!a(g.originalEvent.target).closest(f.opts.draggable.handle).length)return!1;f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e={x:parseInt(b.attr("data-gs-x"),10),y:parseInt(b.attr("data-gs-y"),10),width:parseInt(b.attr("data-gs-width"),10),height:parseInt(b.attr("data-gs-height"),10),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d};if(!this.isAreaEmpty(e.x,e.y,e.width,e.height)){var f=this.findFreeSpace(e.width,e.height);if(f||(f=this.findFreeSpace(1,1)),!f)return;e.x=f.x,e.y=f.y,e.width=f.w,e.height=f.h}var h=d.grid.addNode(e,c);b.data("_gridstack_node",h),this._prepareElementsByNode(b,h)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this.makeWidget(b),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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||"undefined"==typeof a.ui||d.opts.staticGrid||(f.noResize=!c,f.noResize||d._isOneColumnMode()?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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||"undefined"==typeof a.ui||d.opts.staticGrid||(f.noMove=!c,f.noMove||d._isOneColumnMode()?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.findFreeSpace=function(a,b){return this.grid.findFreeSpace(a,b)},j.prototype.setStatic=function(a){this.opts.staticGrid=a===!0,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype.refreshNodes=function(b){var c=this;this.removeAll(!1),this.container.find("."+this.opts.itemClass).each(function(b,d){a(d).off("dragstart dragstop drag resizestart resizestop resize"),c.makeWidget(d)}),this.opts.staticGrid&&b||(b?this.disable():this.enable())},j.prototype.getCellFromAbsolutePixel=function(a){var b=this.container.offset(),c=this.container.position(); // offset relative to gridstack container itself diff --git a/dist/gridstack.min.map b/dist/gridstack.min.map index 435bbc3e2..de3d38410 100644 --- a/dist/gridstack.min.map +++ b/dist/gridstack.min.map @@ -1 +1 @@ -{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","isClone","_sortNodes","hasLocked","locked","collisionNode","bind","moveNode","whatIsHere","collisionNodes","filter","isAreaEmpty","exceptNode","length","findFreeSpace","w","h","forNode","i","j","freeSpace","each","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","max_height","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","originalEvent","target","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","refreshNodes","isDisabled","that","k","getCellFromAbsolutePixel","nodeOffset","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file +{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","isClone","_sortNodes","hasLocked","locked","collisionNode","bind","moveNode","whatIsHere","collisionNodes","filter","isAreaEmpty","exceptNode","length","findFreeSpace","w","h","forNode","i","j","freeSpace","each","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","max_height","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","originalEvent","target","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","props","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","refreshNodes","isDisabled","that","k","getCellFromAbsolutePixel","nodeOffset","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file From af41e968f41082b558e6930ebc90c7859ffeb866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 25 Jan 2017 16:04:02 +0100 Subject: [PATCH 07/38] Fix placeholder when moving back in --- src/gridstack.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index 0a620be96..c7636792c 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -219,7 +219,7 @@ GridStackEngine.prototype.isAreaEmpty = function(x, y, width, height, exceptNode) { // first check if is not out of bounds - if (y + height > this.height || x + width > this.width) { + if (y < 0 || y + height > this.height || x < 0 || x + width > this.width) { return false; } var collisionNodes = this.whatIsHere(x, y, width, height); @@ -1118,7 +1118,17 @@ } if (event.type == 'drag') { - if (x < 0 || x >= self.grid.width || y < 0 || (self.grid.height && y >= self.grid.height)) { + var cannotPutHere = !self.isAreaEmpty(x, y), + whatIsHere; + + if (cannotPutHere) { + whatIsHere = self.grid.whatIsHere(x, y); + if (whatIsHere && whatIsHere[0] && whatIsHere[0].el !== this.placeholder) { + cannotPutHere = false; + } + } + + if (cannotPutHere) { if (self.opts.removable === true) { self._setupRemovingTimeout(el); } @@ -1675,8 +1685,8 @@ this._updateContainerHeight(); }; - GridStack.prototype.isAreaEmpty = function(x, y, width, height) { - return this.grid.isAreaEmpty(x, y, width, height); + GridStack.prototype.isAreaEmpty = function(x, y, width, height, exceptNode) { + return this.grid.isAreaEmpty(x, y, width, height, exceptNode); }; GridStack.prototype.findFreeSpace = function(w, h) { From 46143d9a6bfd5b9a68b6eeffe2f612cbb69151a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 25 Jan 2017 16:04:08 +0100 Subject: [PATCH 08/38] Assets --- dist/gridstack.all.js | 8 ++++---- dist/gridstack.js | 18 ++++++++++++++---- dist/gridstack.min.js | 8 ++++---- dist/gridstack.min.map | 2 +- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 83f2b9aee..443d21d66 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -17,7 +17,7 @@ g.is_intercepted=e(g.isIntercepted,"is_intercepted","isIntercepted"),g.create_st // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return;this.moveNode(f,f.x,a.y+a.height,f.width,f.height,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){ // first check if is not out of bounds -if(b+d>this.height||a+c>this.width)return!1;var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( +if(b<0||b+d>this.height||a<0||a+c>this.width)return!1;var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( // first free for 1x1 or we have specified width and height a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;var h=Boolean(b.find(this.nodes,function(a){return a.locked}));if(!this.height&&!h)return!0;if(!this.isAreaEmpty(d,e,f,g,c))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; // always allow moving the one out of bounds @@ -30,11 +30,11 @@ e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.it this._updateStyles(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e=f.grid.width||k<0||f.grid.height&&k>=f.grid.height?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; +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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e this.height || x + width > this.width) { + if (y < 0 || y + height > this.height || x < 0 || x + width > this.width) { return false; } var collisionNodes = this.whatIsHere(x, y, width, height); @@ -1118,7 +1118,17 @@ } if (event.type == 'drag') { - if (x < 0 || x >= self.grid.width || y < 0 || (self.grid.height && y >= self.grid.height)) { + var cannotPutHere = !self.isAreaEmpty(x, y), + whatIsHere; + + if (cannotPutHere) { + whatIsHere = self.grid.whatIsHere(x, y); + if (whatIsHere && whatIsHere[0] && whatIsHere[0].el !== this.placeholder) { + cannotPutHere = false; + } + } + + if (cannotPutHere) { if (self.opts.removable === true) { self._setupRemovingTimeout(el); } @@ -1675,8 +1685,8 @@ this._updateContainerHeight(); }; - GridStack.prototype.isAreaEmpty = function(x, y, width, height) { - return this.grid.isAreaEmpty(x, y, width, height); + GridStack.prototype.isAreaEmpty = function(x, y, width, height, exceptNode) { + return this.grid.isAreaEmpty(x, y, width, height, exceptNode); }; GridStack.prototype.findFreeSpace = function(w, h) { diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js index b0c370bc2..09d968d75 100644 --- a/dist/gridstack.min.js +++ b/dist/gridstack.min.js @@ -17,7 +17,7 @@ g.is_intercepted=e(g.isIntercepted,"is_intercepted","isIntercepted"),g.create_st // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},i.prototype._fixCollisions=function(a,c){this._sortNodes(-1);var d=a,e=Boolean(b.find(this.nodes,function(a){return a.locked}));for(this["float"]||e||(d={x:0,y:a.y,width:this.width,height:a.height});;){var f=b.find(this.nodes,b.bind(g._collisionNodeCheck,{node:a,nn:d}));if("undefined"==typeof f)return;this.moveNode(f,f.x,a.y+a.height,f.width,f.height,!0)}},i.prototype.whatIsHere=function(a,c,d,e){var f={x:a||0,y:c||0,width:d||1,height:e||1},h=b.filter(this.nodes,b.bind(function(a){return g.isIntercepted(a,f)},this));return h},i.prototype.isAreaEmpty=function(a,b,c,d,e){ // first check if is not out of bounds -if(b+d>this.height||a+c>this.width)return!1;var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( +if(b<0||b+d>this.height||a<0||a+c>this.width)return!1;var f=this.whatIsHere(a,b,c,d);return!f.length||e&&1===f.length&&f[0]===e},i.prototype.findFreeSpace=function(a,b,c){var d,e,f=null;for( // first free for 1x1 or we have specified width and height a||(a=1),b||(b=1),d=0;d<=this.width-a&&!f;d++)for(e=0;e<=this.height-b&&!f;e++)this.isAreaEmpty(d,e,a,b,c)&&(f={x:d,y:e,w:a,h:b});return f},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),this.height&&a.height>this.height?a.height=this.height: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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c,d){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 e=0;;++e){var f=e%this.width,i=Math.floor(e/this.width);if(!(f+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:f,y:i,node:a})))){a.x=f,a.y=i;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a,d),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){a&&(a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c))},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;var h=Boolean(b.find(this.nodes,function(a){return a.locked}));if(!this.height&&!h)return!0;if(!this.isAreaEmpty(d,e,f,g,c))return!1;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)}));if("undefined"==typeof j)return!0;k.moveNode(j,d,e,f,g,!1,!0);var l=!0; // always allow moving the one out of bounds @@ -30,11 +30,11 @@ e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.it this._updateStyles(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e=f.grid.width||k<0||f.grid.height&&k>=f.grid.height?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; +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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e Date: Thu, 26 Jan 2017 12:06:15 +0100 Subject: [PATCH 09/38] Fix previous fix --- src/gridstack.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index c7636792c..86db3763b 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -1118,12 +1118,12 @@ } if (event.type == 'drag') { - var cannotPutHere = !self.isAreaEmpty(x, y), + var cannotPutHere = !self.isAreaEmpty(x, y, node.width, node.height, node), whatIsHere; if (cannotPutHere) { - whatIsHere = self.grid.whatIsHere(x, y); - if (whatIsHere && whatIsHere[0] && whatIsHere[0].el !== this.placeholder) { + whatIsHere = self.grid.whatIsHere(x, y, node.width, node.height); + if (whatIsHere && whatIsHere.length === 1 && whatIsHere[0].el === this.placeholder) { cannotPutHere = false; } } From 641cad2d8b6eeba014359155c29839c299bdc2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Thu, 26 Jan 2017 12:06:37 +0100 Subject: [PATCH 10/38] Assets --- dist/gridstack.all.js | 2 +- dist/gridstack.js | 6 +++--- dist/gridstack.min.js | 2 +- dist/gridstack.min.map | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 443d21d66..77cf06b98 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -30,7 +30,7 @@ e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.it this._updateStyles(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e Date: Thu, 26 Jan 2017 20:50:03 +0100 Subject: [PATCH 11/38] External function on draggable start --- src/gridstack.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gridstack.js b/src/gridstack.js index 86db3763b..8ce3b130f 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -1211,6 +1211,10 @@ if (event.type == 'resizestart') { o.find('.grid-stack-item').trigger('resizestart'); } + + if (typeof self.opts.draggable.start === 'function') { + self.opts.draggable.start(event, ui); + } }; var onEndMoving = function(event, ui) { From 83a7dfbb3190dad1390b450a9b43f44da137a10f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Thu, 26 Jan 2017 20:50:43 +0100 Subject: [PATCH 12/38] Assets --- dist/gridstack.all.js | 2 +- dist/gridstack.js | 4 ++++ dist/gridstack.min.js | 2 +- dist/gridstack.min.map | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 77cf06b98..7ef922084 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -32,7 +32,7 @@ this._updateStyles(),this._updateHeightsOnResize=b.throttle(function(){j.cellHei // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if("undefined"==typeof a&&(a=this._styles._max||this.opts.height,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;e Date: Wed, 8 Feb 2017 16:19:59 +0000 Subject: [PATCH 13/38] Always create the styles to avoid an error that prevented the height and top being added to the inline style in Firefox. --- src/gridstack.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index 39d250ac2..4932ea735 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -937,9 +937,9 @@ if (typeof maxHeight == 'undefined') { maxHeight = this._styles._max; - this._initStyles(); - this._updateContainerHeight(); } + this._initStyles(); + this._updateContainerHeight(); if (!this.opts.cellHeight) { // The rest will be handled by CSS return ; } From 60eb3563bff2ad7eb153916ab438c22c4ab4cccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 15 Feb 2017 15:27:44 +0100 Subject: [PATCH 14/38] Show grid on small screens --- src/gridstack.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gridstack.css b/src/gridstack.css index 319d58a75..7feeaffa4 100644 --- a/src/gridstack.css +++ b/src/gridstack.css @@ -302,6 +302,7 @@ transform: rotate(180deg); } */ +/* @media (max-width: 768px) { .grid-stack-item { position: relative !important; @@ -318,3 +319,4 @@ height: auto !important; } } +*/ From 2618e630f6b9f6e979b60e74413884a8fa571aed Mon Sep 17 00:00:00 2001 From: Sylvain Nael Date: Tue, 21 Feb 2017 17:56:24 +0100 Subject: [PATCH 15/38] add disableOneColumnMode option --- doc/README.md | 1 + src/gridstack.js | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/README.md b/doc/README.md index 3320fdbde..27d7adbe7 100644 --- a/doc/README.md +++ b/doc/README.md @@ -78,6 +78,7 @@ gridstack.js API - `float` - enable floating widgets (default: `false`) See [example](http://troolee.github.io/gridstack.js/demo/float.html) - `itemClass` - widget class (default: `'grid-stack-item'`) - `minWidth` - minimal width. If window width is less, grid will be shown in one-column mode (default: `768`) +- `disableOneColumnMode` - disables the onColumnMode when the window width is less than minWidth (default: 'false') - `oneColumnModeClass` - class set on grid when in one column mode (default: 'grid-stack-one-column-mode') - `placeholderClass` - class for placeholder (default: `'grid-stack-placeholder'`) - `placeholderText` - placeholder default content (default: `''`) diff --git a/src/gridstack.js b/src/gridstack.js index 39d250ac2..2190b0e2e 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -606,6 +606,7 @@ removeTimeout: 2000, verticalMarginUnit: 'px', cellHeightUnit: 'px', + disableOneColumnMode: opts.disableOneColumnMode || false, oneColumnModeClass: opts.oneColumnModeClass || 'grid-stack-one-column-mode', ddPlugin: null }); @@ -699,7 +700,7 @@ self._updateHeightsOnResize(); } - if (self._isOneColumnMode()) { + if (self._isOneColumnMode() && !self.opts.disableOneColumnMode) { if (oneColumnMode) { return; } @@ -1204,11 +1205,11 @@ resize: dragOrResize }); - if (node.noMove || this._isOneColumnMode() || this.opts.disableDrag) { + if (node.noMove || (this._isOneColumnMode() && !self.opts.disableOneColumnMode) || this.opts.disableDrag) { this.dd.draggable(el, 'disable'); } - if (node.noResize || this._isOneColumnMode() || this.opts.disableResize) { + if (node.noResize || (this._isOneColumnMode() && !self.opts.disableOneColumnMode) || this.opts.disableResize) { this.dd.resizable(el, 'disable'); } @@ -1342,7 +1343,7 @@ } node.noResize = !(val || false); - if (node.noResize || self._isOneColumnMode()) { + if (node.noResize || (self._isOneColumnMode() && !self.opts.disableOneColumnMode )) { self.dd.resizable(el, 'disable'); } else { self.dd.resizable(el, 'enable'); @@ -1362,7 +1363,7 @@ } node.noMove = !(val || false); - if (node.noMove || self._isOneColumnMode()) { + if (node.noMove || (self._isOneColumnMode() && !self.opts.disableOneColumnMode)) { self.dd.draggable(el, 'disable'); el.removeClass('ui-draggable-handle'); } else { From 9b3a6ba581b6935ae6877e04b20f9f0717040bd8 Mon Sep 17 00:00:00 2001 From: Pavel Reznikov Date: Mon, 10 Apr 2017 23:59:32 -0700 Subject: [PATCH 16/38] fix lint error --- src/gridstack.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gridstack.js b/src/gridstack.js index 2190b0e2e..8236b91ee 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -1343,7 +1343,7 @@ } node.noResize = !(val || false); - if (node.noResize || (self._isOneColumnMode() && !self.opts.disableOneColumnMode )) { + if (node.noResize || (self._isOneColumnMode() && !self.opts.disableOneColumnMode)) { self.dd.resizable(el, 'disable'); } else { self.dd.resizable(el, 'enable'); From 7a7aed5a7139cb7067ae206b983ef5e1564dd3e3 Mon Sep 17 00:00:00 2001 From: Pavel Reznikov Date: Tue, 11 Apr 2017 00:00:31 -0700 Subject: [PATCH 17/38] build js --- dist/gridstack.all.js | 14 +++++++------- dist/gridstack.jQueryUI.min.js | 2 +- dist/gridstack.js | 11 ++++++----- dist/gridstack.min.js | 12 ++++++------ dist/gridstack.min.map | 2 +- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index d8165226b..55dfed6eb 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -5,7 +5,7 @@ * gridstack.js may be freely distributed under the MIT license. * @preserve */ -!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){ +!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],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){ // jscs:enable requireCamelCaseOrUpperCaseIdentifiers /** * @class GridStackDragDropPlugin @@ -13,27 +13,27 @@ */ function c(a){this.grid=a}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=c!=-1?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-style-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-style-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)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}}; // 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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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,this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())}, +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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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"],this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this["float"]=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this["float"]=this._float,this._packNodes(),this._notify())}, // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d), +i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d), // jscs:disable requireCamelCaseOrUpperCaseIdentifiers "undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")), // jscs:enable requireCamelCaseOrUpperCaseIdentifiers -e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; +e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d), +i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d), // jscs:disable requireCamelCaseOrUpperCaseIdentifiers "undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")), // jscs:enable requireCamelCaseOrUpperCaseIdentifiers -e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; +e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d Date: Tue, 11 Apr 2017 00:07:21 -0700 Subject: [PATCH 18/38] build js --- dist/gridstack.all.js | 2 +- dist/gridstack.js | 4 ++-- dist/gridstack.min.js | 2 +- dist/gridstack.min.map | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 55dfed6eb..d1d6a97b2 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -22,7 +22,7 @@ i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){ e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; +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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; // width and height are undefined if not resizing var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 diff --git a/dist/gridstack.js b/dist/gridstack.js index 8236b91ee..aeb566472 100644 --- a/dist/gridstack.js +++ b/dist/gridstack.js @@ -938,9 +938,9 @@ if (typeof maxHeight == 'undefined') { maxHeight = this._styles._max; - this._initStyles(); - this._updateContainerHeight(); } + this._initStyles(); + this._updateContainerHeight(); if (!this.opts.cellHeight) { // The rest will be handled by CSS return ; } diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js index bd3e9eab9..8a9fb5e89 100644 --- a/dist/gridstack.min.js +++ b/dist/gridstack.min.js @@ -22,7 +22,7 @@ i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){ e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; +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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; // width and height are undefined if not resizing var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 diff --git a/dist/gridstack.min.map b/dist/gridstack.min.map index bb4966b43..dfe81734c 100644 --- a/dist/gridstack.min.map +++ b/dist/gridstack.min.map @@ -1 +1 @@ -{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","_sortNodes","hasLocked","locked","collisionNode","bind","moveNode","isAreaEmpty","each","i","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","filter","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","length","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","disableOneColumnMode","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file +{"version":3,"sources":["../src/gridstack.js","../src/gridstack.jQueryUI.js"],"names":["factory","define","amd","exports","jQuery","require","e","_","$","GridStackDragDropPlugin","grid","this","scope","window","obsolete","f","oldName","newName","wrapper","console","warn","apply","arguments","prototype","obsoleteOpts","Utils","isIntercepted","a","b","x","width","y","height","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","_didCollide","bn","newY","_isAddNodeIntercepted","parseHeight","val","heightUnit","isString","match","Error","parseFloat","unit","is_intercepted","create_stylesheet","remove_stylesheet","insert_css_rule","registeredPlugins","registerPlugin","pluginClass","push","resizable","el","opts","draggable","droppable","isDroppable","on","eventName","callback","idSeq","GridStackEngine","onchange","floatMode","items","_updateCounter","_float","_addedNodes","_removedNodes","batchUpdate","commit","_packNodes","_notify","getNodeDataByDOMEl","find","get","_fixCollisions","_sortNodes","hasLocked","locked","collisionNode","bind","moveNode","isAreaEmpty","each","i","_updating","_origY","_dirty","canBeMoved","take","_prepareNode","resizing","defaults","parseInt","autoPosition","noResize","noMove","args","Array","slice","call","deletedNodes","concat","getDirtyNodes","cleanNodes","filter","addNode","triggerAddEvent","maxWidth","Math","min","maxHeight","minWidth","minHeight","_id","floor","clone","removeNode","detachNode","without","canMoveNode","isNodeChangedPosition","clonedNode","extend","res","getGridHeight","canBePlacedWithRespectToHeight","noPack","lastTriedX","lastTriedY","lastTriedWidth","lastTriedHeight","reduce","memo","beginUpdate","endUpdate","GridStack","oneColumnMode","isAutoCellHeight","self","container","handle_class","handleClass","item_class","itemClass","placeholder_class","placeholderClass","placeholder_text","placeholderText","cell_height","cellHeight","vertical_margin","verticalMargin","min_width","static_grid","staticGrid","is_nested","isNested","always_show_resize_handle","alwaysShowResizeHandle","closest","length","attr","handle","auto","float","_class","random","toFixed","animate","autoHide","handles","scroll","appendTo","disableDrag","disableResize","rtl","removable","removeTimeout","verticalMarginUnit","cellHeightUnit","disableOneColumnMode","oneColumnModeClass","ddPlugin","first","dd","css","addClass","cellWidth","_setStaticClass","_initStyles","_updateStyles","elements","_this","children","_prepareElement","setAnimation","placeholder","hide","_updateContainerHeight","_updateHeightsOnResize","throttle","onResizeHandler","_isOneColumnMode","append","trigger","removeClass","resize","trashZone","accept","event","ui","data","_grid","_setupRemovingTimeout","_clearRemovingTimeout","acceptWidgets","draggingElement","onDrag","pos","getCellFromPixel","offset","_added","show","_beforeDragX","_beforeDragY","is","origNode","ceil","outerWidth","outerHeight","_temporary","unbind","detach","removeAttr","enableSelection","removeData","_prepareElementsByNode","_triggerChangeEvent","forceTrigger","hasChanges","eventParams","_triggerAddEvent","_triggerRemoveEvent","_stylesId","_styles","_max","getHeight","prefix","nbRows","nbMargins","innerWidth","documentElement","clientWidth","body","_removeTimeout","setTimeout","_isAboutToRemove","clearTimeout","dragOrResize","round","position","left","top","type","size","_temporaryRemoved","onStartMoving","o","strictCellHeight","onEndMoving","forceNotify","nestedGrids","start","stop","drag","enable","addWidget","makeWidget","willItFit","removeWidget","removeAll","destroy","detachGrid","off","disable","movable","enableMove","doEnable","includeNewWidgets","enableResize","isNaN","_updateElement","move","update","noUpdate","heightData","useOffset","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","setStatic","staticValue","staticClassName","_updateNodeWidths","oldWidth","newWidth","undefined","setGridWidth","gridWidth","doNotPropagate","batch_update","_fix_collisions","is_area_empty","_sort_nodes","_pack_nodes","_prepare_node","clean_nodes","get_dirty_nodes","add_node","remove_node","can_move_node","move_node","get_grid_height","begin_update","end_update","can_be_placed_with_respect_to_height","_trigger_change_event","_init_styles","_update_styles","_update_container_height","_is_one_column_mode","_prepare_element","set_animation","add_widget","make_widget","will_it_fit","remove_widget","remove_all","min_height","_update_element","cell_width","get_cell_from_pixel","set_static","_set_static_class","GridStackUI","Engine","fn","gridstack","JQueryUIGridStackDragDropPlugin","Object","create","constructor","key","containment","parent"],"mappings":"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","file":"gridstack.all.js"} \ No newline at end of file From 0520073cc09a3ebfd93086565bbb4226a86eea50 Mon Sep 17 00:00:00 2001 From: Pavel Reznikov Date: Tue, 11 Apr 2017 00:16:04 -0700 Subject: [PATCH 19/38] trying to make ci working again --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f8cde4730..1c052e6d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: -- 5.7.0 +- 7.7.2 env: - CXX=g++-4.8 addons: From 88a328a8cb06bd868f3a43af331978635bd1d311 Mon Sep 17 00:00:00 2001 From: Pavel Reznikov Date: Tue, 11 Apr 2017 00:23:59 -0700 Subject: [PATCH 20/38] fixing protractir --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1c052e6d6..85581ed23 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ addons: packages: - g++-4.8 before_install: -- npm install -g protractor +- npm install -g protractor@3.3.0 install: - npm install -g npm@2 - npm install -g grunt-cli From 2e3c35b716991949039f3cecf419f22dfeb70b8b Mon Sep 17 00:00:00 2001 From: Pavel Reznikov Date: Tue, 11 Apr 2017 00:36:26 -0700 Subject: [PATCH 21/38] selenium-webdriver --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 85581ed23..ecc6963ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ install: - npm install -g npm@2 - npm install -g grunt-cli - npm install -g bower +- npm install selenium-webdriver - bower install - npm install - ./node_modules/protractor/bin/webdriver-manager update --standalone From ec5f7a08c5cda599047804b5cb052377bb662d13 Mon Sep 17 00:00:00 2001 From: Pavel Reznikov Date: Tue, 11 Apr 2017 00:40:52 -0700 Subject: [PATCH 22/38] disable e2e tests for now :( --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ecc6963ef..9e3585595 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ before_script: script: - npm run build - npm test -- grunt e2e-test +# - grunt e2e-test notifications: slack: secure: iGLGsYyVIyKVpVVCskGh/zc6Pkqe0D7jpUtbywSbnq6l5seE6bvBVqm0F2FSCIN+AIC+qal2mPEWysDVsLACm5tTEeA8NfL8dmCrAKbiFbi+gHl4mnHHCHl7ii/7UkoIIXNc5UXbgMSXRS5l8UcsSDlN8VxC5zWstbJvjeYIvbA= From f1a407b5a89c4140d0b801ad3143099672ca3fd5 Mon Sep 17 00:00:00 2001 From: d Date: Thu, 20 Apr 2017 13:03:25 -0400 Subject: [PATCH 23/38] Fixes #593. --- README.md | 1 + dist/gridstack.all.js | 12 ++++-------- dist/gridstack.js | 8 ++------ dist/gridstack.min.js | 12 ++++-------- dist/gridstack.min.map | 2 +- src/gridstack.js | 8 ++------ 6 files changed, 14 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index bd409d011..9b6773330 100644 --- a/README.md +++ b/README.md @@ -509,6 +509,7 @@ Changes #### v0.3.0-dev (Development Version) +- prevent dragging/resizing in oneColumnMode ([#593](https://github.com/troolee/gridstack.js/issues/593)). - add oneColumnModeClass option to grid. - remove 768px CSS styles, moved to grid-stack-one-column-mode class. - add max-width override on grid-stck-one-column-mode ([#462](https://github.com/troolee/gridstack.js/issues/462)). diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index d1d6a97b2..c9c46433b 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -11,20 +11,16 @@ * @class GridStackDragDropPlugin * Base class for drag'n'drop plugin. */ -function c(a){this.grid=a}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=c!=-1?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-style-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-style-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)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}}; +function c(a){this.grid=a}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-style-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-style-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)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}}; // 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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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"],this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this["float"]=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this["float"]=this._float,this._packNodes(),this._notify())}, // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d), +i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]?!0:a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c?!0:c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),"undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c?!0:c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return c&&c._grid===j?!1:b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // jscs:disable requireCamelCaseOrUpperCaseIdentifiers -"undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")), // jscs:enable requireCamelCaseOrUpperCaseIdentifiers -e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; -// 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; +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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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._setupRemovingTimeout=function(b){var c=this,d=a(b).data("_gridstack_node");!d._removeTimeout&&c.opts.removable&&(d._removeTimeout=setTimeout(function(){b.addClass("grid-stack-item-removing"),d._isAboutToRemove=!0},c.opts.removeTimeout))},j.prototype._clearRemovingTimeout=function(b){var c=a(b).data("_gridstack_node");c._removeTimeout&&(clearTimeout(c._removeTimeout),c._removeTimeout=null,b.removeClass("grid-stack-item-removing"),c._isAboutToRemove=!1)},j.prototype._prepareElementsByNode=function(b,c){if("undefined"!=typeof a.ui){var d,e,f=this,g=function(a,g){var h,i,j=Math.round(g.position.left/d),k=Math.floor((g.position.top+e/2)/e);if("drag"!=a.type&&(h=Math.round(g.size.width/d),i=Math.round(g.size.height/e)),"drag"==a.type)0>j||j>=f.grid.width||0>k?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&0>j)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d), +i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]?!0:a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c?!0:c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),"undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c?!0:c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return c&&c._grid===j?!1:b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; // jscs:disable requireCamelCaseOrUpperCaseIdentifiers -"undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")), // jscs:enable requireCamelCaseOrUpperCaseIdentifiers -e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||((a.noMove||j.opts.disableDrag)&&j.dd.draggable(a.el,"disable"),(a.noResize||j.opts.disableResize)&&j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; -// 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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;e=f.grid.width||k<0?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return; +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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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._setupRemovingTimeout=function(b){var c=this,d=a(b).data("_gridstack_node");!d._removeTimeout&&c.opts.removable&&(d._removeTimeout=setTimeout(function(){b.addClass("grid-stack-item-removing"),d._isAboutToRemove=!0},c.opts.removeTimeout))},j.prototype._clearRemovingTimeout=function(b){var c=a(b).data("_gridstack_node");c._removeTimeout&&(clearTimeout(c._removeTimeout),c._removeTimeout=null,b.removeClass("grid-stack-item-removing"),c._isAboutToRemove=!1)},j.prototype._prepareElementsByNode=function(b,c){if("undefined"!=typeof a.ui){var d,e,f=this,g=function(a,g){var h,i,j=Math.round(g.position.left/d),k=Math.floor((g.position.top+e/2)/e);if("drag"!=a.type&&(h=Math.round(g.size.width/d),i=Math.round(g.size.height/e)),"drag"==a.type)0>j||j>=f.grid.width||0>k?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&0>j)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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||c,b=a(b);var d=b.data("_gridstack_node"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d Date: Thu, 20 Apr 2017 15:59:11 -0400 Subject: [PATCH 24/38] Fixes #577 by introducing a new event (jqui was emitting resizestop already). --- src/gridstack.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gridstack.js b/src/gridstack.js index a998fa5d1..d37883da1 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -1187,6 +1187,9 @@ }); o.find('.grid-stack-item').trigger('resizestop'); } + if (event.type == 'resizestop') { + self.container.trigger('gsresizestop', o); + } }; this.dd From 8dbcb21d3631f9d7db31bf1b2ab2299dbf7ff5e0 Mon Sep 17 00:00:00 2001 From: d Date: Thu, 20 Apr 2017 16:03:46 -0400 Subject: [PATCH 25/38] Update documentation. --- README.md | 1 + dist/gridstack.all.js | 2 +- dist/gridstack.js | 3 +++ dist/gridstack.min.js | 2 +- dist/gridstack.min.map | 2 +- doc/README.md | 9 ++++----- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 9b6773330..5a8d5af2b 100644 --- a/README.md +++ b/README.md @@ -509,6 +509,7 @@ Changes #### v0.3.0-dev (Development Version) +- trigger custom event for resizestop (gsresizestop) ([#577](https://github.com/troolee/gridstack.js/issues/577)). - prevent dragging/resizing in oneColumnMode ([#593](https://github.com/troolee/gridstack.js/issues/593)). - add oneColumnModeClass option to grid. - remove 768px CSS styles, moved to grid-stack-one-column-mode class. diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index c9c46433b..f311ab869 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -20,7 +20,7 @@ i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){ // 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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._setupRemovingTimeout=function(b){var c=this,d=a(b).data("_gridstack_node");!d._removeTimeout&&c.opts.removable&&(d._removeTimeout=setTimeout(function(){b.addClass("grid-stack-item-removing"),d._isAboutToRemove=!0},c.opts.removeTimeout))},j.prototype._clearRemovingTimeout=function(b){var c=a(b).data("_gridstack_node");c._removeTimeout&&(clearTimeout(c._removeTimeout),c._removeTimeout=null,b.removeClass("grid-stack-item-removing"),c._isAboutToRemove=!1)},j.prototype._prepareElementsByNode=function(b,c){if("undefined"!=typeof a.ui){var d,e,f=this,g=function(a,g){var h,i,j=Math.round(g.position.left/d),k=Math.floor((g.position.top+e/2)/e);if("drag"!=a.type&&(h=Math.round(g.size.width/d),i=Math.round(g.size.height/e)),"drag"==a.type)0>j||j>=f.grid.width||0>k?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&0>j)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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._setupRemovingTimeout=function(b){var c=this,d=a(b).data("_gridstack_node");!d._removeTimeout&&c.opts.removable&&(d._removeTimeout=setTimeout(function(){b.addClass("grid-stack-item-removing"),d._isAboutToRemove=!0},c.opts.removeTimeout))},j.prototype._clearRemovingTimeout=function(b){var c=a(b).data("_gridstack_node");c._removeTimeout&&(clearTimeout(c._removeTimeout),c._removeTimeout=null,b.removeClass("grid-stack-item-removing"),c._isAboutToRemove=!1)},j.prototype._prepareElementsByNode=function(b,c){if("undefined"!=typeof a.ui){var d,e,f=this,g=function(a,g){var h,i,j=Math.round(g.position.left/d),k=Math.floor((g.position.top+e/2)/e);if("drag"!=a.type&&(h=Math.round(g.size.width/d),i=Math.round(g.size.height/e)),"drag"==a.type)0>j||j>=f.grid.width||0>k?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&0>j)return; // width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); +var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); // For Meteor support: https://github.com/troolee/gridstack.js/pull/272 d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d Date: Thu, 20 Apr 2017 16:22:09 -0400 Subject: [PATCH 26/38] Update dev-dependencies. Remove checks for $.ui (unnecessary with new plugin system). --- dist/gridstack-extra.min.css | 2 +- dist/gridstack.all.js | 26 +++----------------------- dist/gridstack.jQueryUI.min.js | 6 +----- dist/gridstack.js | 7 ++----- dist/gridstack.min.css | 2 +- dist/gridstack.min.js | 20 ++------------------ dist/gridstack.min.map | 2 +- package.json | 18 +++++++++--------- src/gridstack.js | 7 ++----- 9 files changed, 22 insertions(+), 68 deletions(-) diff --git a/dist/gridstack-extra.min.css b/dist/gridstack-extra.min.css index 074f4d56c..8a29cc21d 100644 --- a/dist/gridstack-extra.min.css +++ b/dist/gridstack-extra.min.css @@ -1 +1 @@ -.grid-stack.grid-stack-1>.grid-stack-item,.grid-stack.grid-stack-1>.grid-stack-item[data-gs-min-width='1']{min-width:100%}.grid-stack.grid-stack-1>.grid-stack-item[data-gs-width='1']{width:100%}.grid-stack.grid-stack-1>.grid-stack-item[data-gs-x='1']{left:100%}.grid-stack.grid-stack-2>.grid-stack-item,.grid-stack.grid-stack-2>.grid-stack-item[data-gs-min-width='1']{min-width:50%}.grid-stack.grid-stack-1>.grid-stack-item[data-gs-max-width='1']{max-width:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-width='1']{width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-x='1']{left:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-max-width='1']{max-width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-width='2']{width:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-x='2']{left:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-min-width='2']{min-width:100%}.grid-stack.grid-stack-3>.grid-stack-item,.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='1']{min-width:33.3333333333%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-max-width='2']{max-width:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='1']{width:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='1']{left:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='1']{max-width:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='2']{width:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='2']{left:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='2']{min-width:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='2']{max-width:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='3']{width:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='3']{left:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='3']{min-width:100%}.grid-stack.grid-stack-4>.grid-stack-item,.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='1']{min-width:25%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='3']{max-width:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='1']{width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='1']{left:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='1']{max-width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='2']{width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='2']{left:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='2']{min-width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='2']{max-width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='3']{width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='3']{left:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='3']{min-width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='3']{max-width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='4']{width:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='4']{left:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='4']{min-width:100%}.grid-stack.grid-stack-5>.grid-stack-item,.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='1']{min-width:20%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='4']{max-width:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='1']{width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='1']{left:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='1']{max-width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='2']{width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='2']{left:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='2']{min-width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='2']{max-width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='3']{width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='3']{left:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='3']{min-width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='3']{max-width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='4']{width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='4']{left:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='4']{min-width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='4']{max-width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='5']{width:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='5']{left:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='5']{min-width:100%}.grid-stack.grid-stack-6>.grid-stack-item,.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='1']{min-width:16.6666666667%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='5']{max-width:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='1']{width:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='1']{left:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='1']{max-width:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='2']{width:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='2']{left:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='2']{min-width:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='2']{max-width:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='3']{width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='3']{left:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='3']{min-width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='3']{max-width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='4']{width:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='4']{left:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='4']{min-width:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='4']{max-width:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='5']{width:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='5']{left:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='5']{min-width:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='5']{max-width:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='6']{width:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='6']{left:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='6']{min-width:100%}.grid-stack.grid-stack-7>.grid-stack-item,.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='1']{min-width:14.2857142857%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='6']{max-width:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='1']{width:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='1']{left:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='1']{max-width:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='2']{width:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='2']{left:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='2']{min-width:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='2']{max-width:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='3']{width:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='3']{left:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='3']{min-width:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='3']{max-width:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='4']{width:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='4']{left:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='4']{min-width:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='4']{max-width:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='5']{width:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='5']{left:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='5']{min-width:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='5']{max-width:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='6']{width:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='6']{left:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='6']{min-width:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='6']{max-width:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='7']{width:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='7']{left:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='7']{min-width:100%}.grid-stack.grid-stack-8>.grid-stack-item,.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='1']{min-width:12.5%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='7']{max-width:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='1']{width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='1']{left:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='1']{max-width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='2']{width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='2']{left:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='2']{min-width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='2']{max-width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='3']{width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='3']{left:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='3']{min-width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='3']{max-width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='4']{width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='4']{left:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='4']{min-width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='4']{max-width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='5']{width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='5']{left:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='5']{min-width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='5']{max-width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='6']{width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='6']{left:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='6']{min-width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='6']{max-width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='7']{width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='7']{left:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='7']{min-width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='7']{max-width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='8']{width:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='8']{left:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='8']{min-width:100%}.grid-stack.grid-stack-9>.grid-stack-item,.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='1']{min-width:11.1111111111%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='8']{max-width:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='1']{width:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='1']{left:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='1']{max-width:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='2']{width:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='2']{left:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='2']{min-width:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='2']{max-width:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='3']{width:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='3']{left:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='3']{min-width:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='3']{max-width:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='4']{width:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='4']{left:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='4']{min-width:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='4']{max-width:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='5']{width:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='5']{left:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='5']{min-width:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='5']{max-width:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='6']{width:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='6']{left:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='6']{min-width:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='6']{max-width:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='7']{width:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='7']{left:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='7']{min-width:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='7']{max-width:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='8']{width:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='8']{left:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='8']{min-width:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='8']{max-width:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='9']{width:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='9']{left:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='9']{min-width:100%}.grid-stack.grid-stack-10>.grid-stack-item,.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='1']{min-width:10%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='9']{max-width:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='1']{width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='1']{left:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='1']{max-width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='2']{width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='2']{left:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='2']{min-width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='2']{max-width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='3']{width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='3']{left:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='3']{min-width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='3']{max-width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='4']{width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='4']{left:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='4']{min-width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='4']{max-width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='5']{width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='5']{left:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='5']{min-width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='5']{max-width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='6']{width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='6']{left:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='6']{min-width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='6']{max-width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='7']{width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='7']{left:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='7']{min-width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='7']{max-width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='8']{width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='8']{left:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='8']{min-width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='8']{max-width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='9']{width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='9']{left:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='9']{min-width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='9']{max-width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='10']{width:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='10']{left:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='10']{min-width:100%}.grid-stack.grid-stack-11>.grid-stack-item,.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='1']{min-width:9.0909090909%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='10']{max-width:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='1']{width:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='1']{left:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='1']{max-width:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='2']{width:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='2']{left:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='2']{min-width:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='2']{max-width:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='3']{width:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='3']{left:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='3']{min-width:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='3']{max-width:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='4']{width:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='4']{left:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='4']{min-width:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='4']{max-width:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='5']{width:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='5']{left:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='5']{min-width:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='5']{max-width:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='6']{width:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='6']{left:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='6']{min-width:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='6']{max-width:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='7']{width:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='7']{left:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='7']{min-width:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='7']{max-width:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='8']{width:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='8']{left:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='8']{min-width:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='8']{max-width:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='9']{width:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='9']{left:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='9']{min-width:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='9']{max-width:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='10']{width:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='10']{left:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='10']{min-width:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='10']{max-width:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='11']{width:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='11']{left:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='11']{min-width:100%}.grid-stack.grid-stack-12>.grid-stack-item,.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='1']{min-width:8.3333333333%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='11']{max-width:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='1']{width:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='1']{left:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='1']{max-width:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='2']{width:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='2']{left:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='2']{min-width:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='2']{max-width:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='3']{width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='3']{left:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='3']{min-width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='3']{max-width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='4']{width:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='4']{left:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='4']{min-width:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='4']{max-width:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='5']{width:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='5']{left:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='5']{min-width:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='5']{max-width:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='6']{width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='6']{left:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='6']{min-width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='6']{max-width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='7']{width:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='7']{left:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='7']{min-width:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='7']{max-width:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='8']{width:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='8']{left:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='8']{min-width:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='8']{max-width:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='9']{width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='9']{left:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='9']{min-width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='9']{max-width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='10']{width:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='10']{left:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='10']{min-width:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='10']{max-width:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='11']{width:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='11']{left:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='11']{min-width:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='11']{max-width:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='12']{width:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='12']{left:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='12']{min-width:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='12']{max-width:100%} \ No newline at end of file +.grid-stack.grid-stack-1>.grid-stack-item{min-width:100%}.grid-stack.grid-stack-1>.grid-stack-item[data-gs-width='1']{width:100%}.grid-stack.grid-stack-1>.grid-stack-item[data-gs-x='1']{left:100%}.grid-stack.grid-stack-1>.grid-stack-item[data-gs-min-width='1']{min-width:100%}.grid-stack.grid-stack-1>.grid-stack-item[data-gs-max-width='1']{max-width:100%}.grid-stack.grid-stack-2>.grid-stack-item{min-width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-width='1']{width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-x='1']{left:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-min-width='1']{min-width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-max-width='1']{max-width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-width='2']{width:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-x='2']{left:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-min-width='2']{min-width:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-max-width='2']{max-width:100%}.grid-stack.grid-stack-3>.grid-stack-item{min-width:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='1']{width:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='1']{left:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='1']{min-width:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='1']{max-width:33.3333333333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='2']{width:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='2']{left:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='2']{min-width:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='2']{max-width:66.6666666667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='3']{width:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='3']{left:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='3']{min-width:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='3']{max-width:100%}.grid-stack.grid-stack-4>.grid-stack-item{min-width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='1']{width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='1']{left:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='1']{min-width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='1']{max-width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='2']{width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='2']{left:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='2']{min-width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='2']{max-width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='3']{width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='3']{left:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='3']{min-width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='3']{max-width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='4']{width:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='4']{left:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='4']{min-width:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='4']{max-width:100%}.grid-stack.grid-stack-5>.grid-stack-item{min-width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='1']{width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='1']{left:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='1']{min-width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='1']{max-width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='2']{width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='2']{left:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='2']{min-width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='2']{max-width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='3']{width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='3']{left:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='3']{min-width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='3']{max-width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='4']{width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='4']{left:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='4']{min-width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='4']{max-width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='5']{width:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='5']{left:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='5']{min-width:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='5']{max-width:100%}.grid-stack.grid-stack-6>.grid-stack-item{min-width:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='1']{width:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='1']{left:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='1']{min-width:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='1']{max-width:16.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='2']{width:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='2']{left:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='2']{min-width:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='2']{max-width:33.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='3']{width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='3']{left:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='3']{min-width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='3']{max-width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='4']{width:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='4']{left:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='4']{min-width:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='4']{max-width:66.6666666667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='5']{width:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='5']{left:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='5']{min-width:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='5']{max-width:83.3333333333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='6']{width:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='6']{left:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='6']{min-width:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='6']{max-width:100%}.grid-stack.grid-stack-7>.grid-stack-item{min-width:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='1']{width:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='1']{left:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='1']{min-width:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='1']{max-width:14.2857142857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='2']{width:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='2']{left:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='2']{min-width:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='2']{max-width:28.5714285714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='3']{width:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='3']{left:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='3']{min-width:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='3']{max-width:42.8571428571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='4']{width:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='4']{left:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='4']{min-width:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='4']{max-width:57.1428571429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='5']{width:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='5']{left:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='5']{min-width:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='5']{max-width:71.4285714286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='6']{width:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='6']{left:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='6']{min-width:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='6']{max-width:85.7142857143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='7']{width:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='7']{left:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='7']{min-width:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='7']{max-width:100%}.grid-stack.grid-stack-8>.grid-stack-item{min-width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='1']{width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='1']{left:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='1']{min-width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='1']{max-width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='2']{width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='2']{left:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='2']{min-width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='2']{max-width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='3']{width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='3']{left:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='3']{min-width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='3']{max-width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='4']{width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='4']{left:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='4']{min-width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='4']{max-width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='5']{width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='5']{left:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='5']{min-width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='5']{max-width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='6']{width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='6']{left:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='6']{min-width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='6']{max-width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='7']{width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='7']{left:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='7']{min-width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='7']{max-width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='8']{width:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='8']{left:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='8']{min-width:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='8']{max-width:100%}.grid-stack.grid-stack-9>.grid-stack-item{min-width:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='1']{width:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='1']{left:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='1']{min-width:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='1']{max-width:11.1111111111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='2']{width:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='2']{left:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='2']{min-width:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='2']{max-width:22.2222222222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='3']{width:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='3']{left:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='3']{min-width:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='3']{max-width:33.3333333333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='4']{width:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='4']{left:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='4']{min-width:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='4']{max-width:44.4444444444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='5']{width:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='5']{left:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='5']{min-width:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='5']{max-width:55.5555555556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='6']{width:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='6']{left:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='6']{min-width:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='6']{max-width:66.6666666667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='7']{width:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='7']{left:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='7']{min-width:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='7']{max-width:77.7777777778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='8']{width:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='8']{left:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='8']{min-width:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='8']{max-width:88.8888888889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='9']{width:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='9']{left:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='9']{min-width:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='9']{max-width:100%}.grid-stack.grid-stack-10>.grid-stack-item{min-width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='1']{width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='1']{left:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='1']{min-width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='1']{max-width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='2']{width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='2']{left:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='2']{min-width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='2']{max-width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='3']{width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='3']{left:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='3']{min-width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='3']{max-width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='4']{width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='4']{left:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='4']{min-width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='4']{max-width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='5']{width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='5']{left:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='5']{min-width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='5']{max-width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='6']{width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='6']{left:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='6']{min-width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='6']{max-width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='7']{width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='7']{left:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='7']{min-width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='7']{max-width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='8']{width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='8']{left:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='8']{min-width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='8']{max-width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='9']{width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='9']{left:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='9']{min-width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='9']{max-width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='10']{width:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='10']{left:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='10']{min-width:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='10']{max-width:100%}.grid-stack.grid-stack-11>.grid-stack-item{min-width:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='1']{width:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='1']{left:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='1']{min-width:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='1']{max-width:9.0909090909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='2']{width:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='2']{left:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='2']{min-width:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='2']{max-width:18.1818181818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='3']{width:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='3']{left:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='3']{min-width:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='3']{max-width:27.2727272727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='4']{width:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='4']{left:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='4']{min-width:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='4']{max-width:36.3636363636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='5']{width:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='5']{left:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='5']{min-width:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='5']{max-width:45.4545454545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='6']{width:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='6']{left:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='6']{min-width:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='6']{max-width:54.5454545455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='7']{width:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='7']{left:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='7']{min-width:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='7']{max-width:63.6363636364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='8']{width:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='8']{left:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='8']{min-width:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='8']{max-width:72.7272727273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='9']{width:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='9']{left:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='9']{min-width:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='9']{max-width:81.8181818182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='10']{width:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='10']{left:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='10']{min-width:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='10']{max-width:90.9090909091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='11']{width:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='11']{left:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='11']{min-width:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='11']{max-width:100%}.grid-stack.grid-stack-12>.grid-stack-item{min-width:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='1']{width:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='1']{left:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='1']{min-width:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='1']{max-width:8.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='2']{width:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='2']{left:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='2']{min-width:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='2']{max-width:16.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='3']{width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='3']{left:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='3']{min-width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='3']{max-width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='4']{width:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='4']{left:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='4']{min-width:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='4']{max-width:33.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='5']{width:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='5']{left:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='5']{min-width:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='5']{max-width:41.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='6']{width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='6']{left:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='6']{min-width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='6']{max-width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='7']{width:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='7']{left:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='7']{min-width:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='7']{max-width:58.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='8']{width:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='8']{left:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='8']{min-width:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='8']{max-width:66.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='9']{width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='9']{left:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='9']{min-width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='9']{max-width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='10']{width:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='10']{left:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='10']{min-width:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='10']{max-width:83.3333333333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='11']{width:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='11']{left:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='11']{min-width:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='11']{max-width:91.6666666667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='12']{width:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='12']{left:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='12']{min-width:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='12']{max-width:100%} \ No newline at end of file diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index f311ab869..33281be32 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -5,33 +5,13 @@ * gridstack.js may be freely distributed under the MIT license. * @preserve */ -!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],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){ -// jscs:enable requireCamelCaseOrUpperCaseIdentifiers -/** - * @class GridStackDragDropPlugin - * Base class for drag'n'drop plugin. - */ -function c(a){this.grid=a}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-style-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-style-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)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}}; -// 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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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"],this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this["float"]=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this["float"]=this._float,this._packNodes(),this._notify())}, -// For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]?!0:a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c?!0:c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),"undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c?!0:c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return c&&c._grid===j?!1:b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; -// 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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._setupRemovingTimeout=function(b){var c=this,d=a(b).data("_gridstack_node");!d._removeTimeout&&c.opts.removable&&(d._removeTimeout=setTimeout(function(){b.addClass("grid-stack-item-removing"),d._isAboutToRemove=!0},c.opts.removeTimeout))},j.prototype._clearRemovingTimeout=function(b){var c=a(b).data("_gridstack_node");c._removeTimeout&&(clearTimeout(c._removeTimeout),c._removeTimeout=null,b.removeClass("grid-stack-item-removing"),c._isAboutToRemove=!1)},j.prototype._prepareElementsByNode=function(b,c){if("undefined"!=typeof a.ui){var d,e,f=this,g=function(a,g){var h,i,j=Math.round(g.position.left/d),k=Math.floor((g.position.top+e/2)/e);if("drag"!=a.type&&(h=Math.round(g.size.width/d),i=Math.round(g.size.height/e)),"drag"==a.type)0>j||j>=f.grid.width||0>k?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&0>j)return; -// width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); -// For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0?(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d.ui-resizable-handle{filter:none}.grid-stack{position:relative}.grid-stack.grid-stack-rtl{direction:ltr}.grid-stack.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack .grid-stack-placeholder>.placeholder-content{border:1px dashed #d3d3d3;margin:0;position:absolute;top:0;left:10px;right:10px;bottom:0;width:auto;z-index:0!important;text-align:center}.grid-stack>.grid-stack-item{min-width:8.3333333333%;position:absolute;padding:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;position:absolute;top:0;left:10px;right:10px;bottom:0;width:auto;z-index:0!important;overflow-x:hidden;overflow-y:auto}.grid-stack>.grid-stack-item>.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.grid-stack>.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack>.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack>.grid-stack-item.ui-draggable-dragging,.grid-stack>.grid-stack-item.ui-resizable-resizing{z-index:100}.grid-stack>.grid-stack-item.ui-draggable-dragging>.grid-stack-item-content,.grid-stack>.grid-stack-item.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px rgba(0,0,0,.2);opacity:.8}.grid-stack>.grid-stack-item>.ui-resizable-se,.grid-stack>.grid-stack-item>.ui-resizable-sw{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMS42MjYgNTExLjYyNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTExLjYyNiA1MTEuNjI3OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTMyOC45MDYsNDAxLjk5NGgtMzYuNTUzVjEwOS42MzZoMzYuNTUzYzQuOTQ4LDAsOS4yMzYtMS44MDksMTIuODQ3LTUuNDI2YzMuNjEzLTMuNjE1LDUuNDIxLTcuODk4LDUuNDIxLTEyLjg0NSAgIGMwLTQuOTQ5LTEuODAxLTkuMjMxLTUuNDI4LTEyLjg1MWwtNzMuMDg3LTczLjA5QzI2NS4wNDQsMS44MDksMjYwLjc2LDAsMjU1LjgxMywwYy00Ljk0OCwwLTkuMjI5LDEuODA5LTEyLjg0Nyw1LjQyNCAgIGwtNzMuMDg4LDczLjA5Yy0zLjYxOCwzLjYxOS01LjQyNCw3LjkwMi01LjQyNCwxMi44NTFjMCw0Ljk0NiwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDVjMy42MTksMy42MTcsNy45MDEsNS40MjYsMTIuODUsNS40MjYgICBoMzYuNTQ1djI5Mi4zNThoLTM2LjU0MmMtNC45NTIsMC05LjIzNSwxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MjEtNS40MjQsNy45MDUtNS40MjQsMTIuODU0ICAgYzAsNC45NDUsMS44MDcsOS4yMjcsNS40MjQsMTIuODQ3bDczLjA4OSw3My4wODhjMy42MTcsMy42MTcsNy44OTgsNS40MjQsMTIuODQ3LDUuNDI0YzQuOTUsMCw5LjIzNC0xLjgwNywxMi44NDktNS40MjQgICBsNzMuMDg3LTczLjA4OGMzLjYxMy0zLjYyLDUuNDIxLTcuOTAxLDUuNDIxLTEyLjg0N2MwLTQuOTQ4LTEuODA4LTkuMjMyLTUuNDIxLTEyLjg1NCAgIEMzMzguMTQyLDQwMy44MDIsMzMzLjg1Nyw0MDEuOTk0LDMyOC45MDYsNDAxLjk5NHoiIGZpbGw9IiM2NjY2NjYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);background-repeat:no-repeat;background-position:center;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.grid-stack>.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;left:10px;top:0}.grid-stack>.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:0;left:25px;right:25px}.grid-stack>.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;right:10px;top:0}.grid-stack>.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;right:10px;top:15px;bottom:15px}.grid-stack>.grid-stack-item>.ui-resizable-se{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);cursor:se-resize;width:20px;height:20px;right:10px;bottom:0}.grid-stack>.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:0;right:25px}.grid-stack>.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;left:10px;bottom:0}.grid-stack>.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;left:10px;top:15px;bottom:15px}.grid-stack>.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack>.grid-stack-item[data-gs-width='1']{width:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='1']{left:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='1']{min-width:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='1']{max-width:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='2']{width:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='2']{left:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='2']{min-width:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='2']{max-width:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='3']{width:25%}.grid-stack>.grid-stack-item[data-gs-x='3']{left:25%}.grid-stack>.grid-stack-item[data-gs-min-width='3']{min-width:25%}.grid-stack>.grid-stack-item[data-gs-max-width='3']{max-width:25%}.grid-stack>.grid-stack-item[data-gs-width='4']{width:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='4']{left:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='4']{min-width:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='4']{max-width:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='5']{width:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='5']{left:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='5']{min-width:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='5']{max-width:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='6']{width:50%}.grid-stack>.grid-stack-item[data-gs-x='6']{left:50%}.grid-stack>.grid-stack-item[data-gs-min-width='6']{min-width:50%}.grid-stack>.grid-stack-item[data-gs-max-width='6']{max-width:50%}.grid-stack>.grid-stack-item[data-gs-width='7']{width:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='7']{left:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='7']{min-width:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='7']{max-width:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='8']{width:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='8']{left:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='8']{min-width:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='8']{max-width:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='9']{width:75%}.grid-stack>.grid-stack-item[data-gs-x='9']{left:75%}.grid-stack>.grid-stack-item[data-gs-min-width='9']{min-width:75%}.grid-stack>.grid-stack-item[data-gs-max-width='9']{max-width:75%}.grid-stack>.grid-stack-item[data-gs-width='10']{width:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='10']{left:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='10']{min-width:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='10']{max-width:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='11']{width:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='11']{left:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='11']{min-width:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='11']{max-width:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='12']{width:100%}.grid-stack>.grid-stack-item[data-gs-x='12']{left:100%}.grid-stack>.grid-stack-item[data-gs-min-width='12']{min-width:100%}.grid-stack>.grid-stack-item[data-gs-max-width='12']{max-width:100%}.grid-stack.grid-stack-animate,.grid-stack.grid-stack-animate .grid-stack-item{-webkit-transition:left .3s,top .3s,height .3s,width .3s;-moz-transition:left .3s,top .3s,height .3s,width .3s;-ms-transition:left .3s,top .3s,height .3s,width .3s;-o-transition:left .3s,top .3s,height .3s,width .3s;transition:left .3s,top .3s,height .3s,width .3s}.grid-stack.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack.grid-stack-animate .grid-stack-item.ui-resizable-resizing{-webkit-transition:left 0s,top 0s,height 0s,width 0s;-moz-transition:left 0s,top 0s,height 0s,width 0s;-ms-transition:left 0s,top 0s,height 0s,width 0s;-o-transition:left 0s,top 0s,height 0s,width 0s;transition:left 0s,top 0s,height 0s,width 0s}.grid-stack.grid-stack-one-column-mode{height:auto!important}.grid-stack.grid-stack-one-column-mode>.grid-stack-item{position:relative!important;width:auto!important;left:0!important;top:auto!important;margin-bottom:20px;max-width:none!important}.grid-stack.grid-stack-one-column-mode>.grid-stack-item>.ui-resizable-handle{display:none} \ No newline at end of file +:root .grid-stack-item>.ui-resizable-handle{filter:none}.grid-stack{position:relative}.grid-stack.grid-stack-rtl{direction:ltr}.grid-stack.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack .grid-stack-placeholder>.placeholder-content{border:1px dashed #d3d3d3;margin:0;position:absolute;top:0;left:10px;right:10px;bottom:0;width:auto;z-index:0!important;text-align:center}.grid-stack>.grid-stack-item{min-width:8.3333333333%;position:absolute;padding:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;position:absolute;top:0;left:10px;right:10px;bottom:0;width:auto;z-index:0!important;overflow-x:hidden;overflow-y:auto}.grid-stack>.grid-stack-item>.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.grid-stack>.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack>.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack>.grid-stack-item.ui-draggable-dragging,.grid-stack>.grid-stack-item.ui-resizable-resizing{z-index:100}.grid-stack>.grid-stack-item.ui-draggable-dragging>.grid-stack-item-content,.grid-stack>.grid-stack-item.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px rgba(0,0,0,.2);opacity:.8}.grid-stack>.grid-stack-item>.ui-resizable-se,.grid-stack>.grid-stack-item>.ui-resizable-sw{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMS42MjYgNTExLjYyNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTExLjYyNiA1MTEuNjI3OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTMyOC45MDYsNDAxLjk5NGgtMzYuNTUzVjEwOS42MzZoMzYuNTUzYzQuOTQ4LDAsOS4yMzYtMS44MDksMTIuODQ3LTUuNDI2YzMuNjEzLTMuNjE1LDUuNDIxLTcuODk4LDUuNDIxLTEyLjg0NSAgIGMwLTQuOTQ5LTEuODAxLTkuMjMxLTUuNDI4LTEyLjg1MWwtNzMuMDg3LTczLjA5QzI2NS4wNDQsMS44MDksMjYwLjc2LDAsMjU1LjgxMywwYy00Ljk0OCwwLTkuMjI5LDEuODA5LTEyLjg0Nyw1LjQyNCAgIGwtNzMuMDg4LDczLjA5Yy0zLjYxOCwzLjYxOS01LjQyNCw3LjkwMi01LjQyNCwxMi44NTFjMCw0Ljk0NiwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDVjMy42MTksMy42MTcsNy45MDEsNS40MjYsMTIuODUsNS40MjYgICBoMzYuNTQ1djI5Mi4zNThoLTM2LjU0MmMtNC45NTIsMC05LjIzNSwxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MjEtNS40MjQsNy45MDUtNS40MjQsMTIuODU0ICAgYzAsNC45NDUsMS44MDcsOS4yMjcsNS40MjQsMTIuODQ3bDczLjA4OSw3My4wODhjMy42MTcsMy42MTcsNy44OTgsNS40MjQsMTIuODQ3LDUuNDI0YzQuOTUsMCw5LjIzNC0xLjgwNywxMi44NDktNS40MjQgICBsNzMuMDg3LTczLjA4OGMzLjYxMy0zLjYyLDUuNDIxLTcuOTAxLDUuNDIxLTEyLjg0N2MwLTQuOTQ4LTEuODA4LTkuMjMyLTUuNDIxLTEyLjg1NCAgIEMzMzguMTQyLDQwMy44MDIsMzMzLjg1Nyw0MDEuOTk0LDMyOC45MDYsNDAxLjk5NHoiIGZpbGw9IiM2NjY2NjYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);background-repeat:no-repeat;background-position:center;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.grid-stack>.grid-stack-item>.ui-resizable-se{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.grid-stack>.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;left:10px;top:0}.grid-stack>.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:0;left:25px;right:25px}.grid-stack>.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;right:10px;top:0}.grid-stack>.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;right:10px;top:15px;bottom:15px}.grid-stack>.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;right:10px;bottom:0}.grid-stack>.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:0;right:25px}.grid-stack>.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;left:10px;bottom:0}.grid-stack>.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;left:10px;top:15px;bottom:15px}.grid-stack>.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack>.grid-stack-item[data-gs-width='1']{width:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='1']{left:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='1']{min-width:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='1']{max-width:8.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='2']{width:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='2']{left:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='2']{min-width:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='2']{max-width:16.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='3']{width:25%}.grid-stack>.grid-stack-item[data-gs-x='3']{left:25%}.grid-stack>.grid-stack-item[data-gs-min-width='3']{min-width:25%}.grid-stack>.grid-stack-item[data-gs-max-width='3']{max-width:25%}.grid-stack>.grid-stack-item[data-gs-width='4']{width:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='4']{left:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='4']{min-width:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='4']{max-width:33.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='5']{width:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='5']{left:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='5']{min-width:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='5']{max-width:41.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='6']{width:50%}.grid-stack>.grid-stack-item[data-gs-x='6']{left:50%}.grid-stack>.grid-stack-item[data-gs-min-width='6']{min-width:50%}.grid-stack>.grid-stack-item[data-gs-max-width='6']{max-width:50%}.grid-stack>.grid-stack-item[data-gs-width='7']{width:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='7']{left:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='7']{min-width:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='7']{max-width:58.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='8']{width:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='8']{left:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='8']{min-width:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='8']{max-width:66.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='9']{width:75%}.grid-stack>.grid-stack-item[data-gs-x='9']{left:75%}.grid-stack>.grid-stack-item[data-gs-min-width='9']{min-width:75%}.grid-stack>.grid-stack-item[data-gs-max-width='9']{max-width:75%}.grid-stack>.grid-stack-item[data-gs-width='10']{width:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-x='10']{left:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-min-width='10']{min-width:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-max-width='10']{max-width:83.3333333333%}.grid-stack>.grid-stack-item[data-gs-width='11']{width:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-x='11']{left:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-min-width='11']{min-width:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-max-width='11']{max-width:91.6666666667%}.grid-stack>.grid-stack-item[data-gs-width='12']{width:100%}.grid-stack>.grid-stack-item[data-gs-x='12']{left:100%}.grid-stack>.grid-stack-item[data-gs-min-width='12']{min-width:100%}.grid-stack>.grid-stack-item[data-gs-max-width='12']{max-width:100%}.grid-stack.grid-stack-animate,.grid-stack.grid-stack-animate .grid-stack-item{-webkit-transition:left .3s,top .3s,height .3s,width .3s;-moz-transition:left .3s,top .3s,height .3s,width .3s;-ms-transition:left .3s,top .3s,height .3s,width .3s;-o-transition:left .3s,top .3s,height .3s,width .3s;transition:left .3s,top .3s,height .3s,width .3s}.grid-stack.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack.grid-stack-animate .grid-stack-item.ui-resizable-resizing{-webkit-transition:left 0s,top 0s,height 0s,width 0s;-moz-transition:left 0s,top 0s,height 0s,width 0s;-ms-transition:left 0s,top 0s,height 0s,width 0s;-o-transition:left 0s,top 0s,height 0s,width 0s;transition:left 0s,top 0s,height 0s,width 0s}.grid-stack.grid-stack-one-column-mode{height:auto!important}.grid-stack.grid-stack-one-column-mode>.grid-stack-item{position:relative!important;width:auto!important;left:0!important;top:auto!important;margin-bottom:20px;max-width:none!important}.grid-stack.grid-stack-one-column-mode>.grid-stack-item>.ui-resizable-handle{display:none} \ No newline at end of file diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js index 51d4cc260..e2505bc5b 100644 --- a/dist/gridstack.min.js +++ b/dist/gridstack.min.js @@ -5,22 +5,6 @@ * gridstack.js may be freely distributed under the MIT license. * @preserve */ -!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],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){ -// jscs:enable requireCamelCaseOrUpperCaseIdentifiers -/** - * @class GridStackDragDropPlugin - * Base class for drag'n'drop plugin. - */ -function c(a){this.grid=a}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-style-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-style-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)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}}; -// 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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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"],this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this["float"]=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this["float"]=this._float,this._packNodes(),this._notify())}, -// For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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||"undefined"==typeof 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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]="undefined"==typeof a[0]?[]:[a[0]],a[1]="undefined"==typeof a[1]?!0:a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){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 d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width||b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a})))){a.x=e,a.y=f;break}}}return this.nodes.push(a),"undefined"!=typeof c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c="undefined"==typeof c?!0:c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if("undefined"==typeof j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"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},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),"undefined"!=typeof e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),"undefined"!=typeof e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),"undefined"!=typeof e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),"undefined"!=typeof e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),"undefined"!=typeof e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),"undefined"!=typeof e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),"undefined"!=typeof e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),"undefined"!=typeof e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),"undefined"!=typeof e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),"undefined"!=typeof e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),this.opts.ddPlugin===!1?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c="undefined"==typeof c?!0:c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts["float"],this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable),e=d.data("_gridstack_node");e._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return c&&c._grid===j?!1:b.is(j.opts.acceptWidgets===!0?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}}; -// 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._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&"undefined"!=typeof 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._setupRemovingTimeout=function(b){var c=this,d=a(b).data("_gridstack_node");!d._removeTimeout&&c.opts.removable&&(d._removeTimeout=setTimeout(function(){b.addClass("grid-stack-item-removing"),d._isAboutToRemove=!0},c.opts.removeTimeout))},j.prototype._clearRemovingTimeout=function(b){var c=a(b).data("_gridstack_node");c._removeTimeout&&(clearTimeout(c._removeTimeout),c._removeTimeout=null,b.removeClass("grid-stack-item-removing"),c._isAboutToRemove=!1)},j.prototype._prepareElementsByNode=function(b,c){if("undefined"!=typeof a.ui){var d,e,f=this,g=function(a,g){var h,i,j=Math.round(g.position.left/d),k=Math.floor((g.position.top+e/2)/e);if("drag"!=a.type&&(h=Math.round(g.size.width/d),i=Math.round(g.size.height/e)),"drag"==a.type)0>j||j>=f.grid.width||0>k?(f.opts.removable===!0&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&0>j)return; -// width and height are undefined if not resizing -var l="undefined"!=typeof h?h:c.lastTriedWidth,m="undefined"!=typeof i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)}},j.prototype._prepareElement=function(b,c){c="undefined"!=typeof c?c:!1;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){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),"undefined"!=typeof h&&b.attr("data-gs-min-width",h),"undefined"!=typeof i&&b.attr("data-gs-max-width",i),"undefined"!=typeof j&&b.attr("data-gs-min-height",j),"undefined"!=typeof k&&b.attr("data-gs-max-height",k),"undefined"!=typeof l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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"); -// For Meteor support: https://github.com/troolee/gridstack.js/pull/272 -d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),"undefined"==typeof b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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&&"undefined"!=typeof a.ui&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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&&"undefined"!=typeof a.ui&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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.maxHeight=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.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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.maxWidth=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.maxWidth=c||!1,d.attr("data-gs-max-width",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 c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if("undefined"==typeof a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c="undefined"!=typeof b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){var a="grid-stack-static";this.opts.staticGrid===!0?this.container.addClass(a):this.container.removeClass(a)},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0?(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d Date: Thu, 20 Apr 2017 18:03:37 -0400 Subject: [PATCH 27/38] Sorry doctor. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 349899df7..1a338a89f 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "connect": "^3.4.1", "coveralls": "^2.11.8", "doctoc": "^1.0.0", - "grunt": "^1.0.1", + "grunt": "^0.4.5", "grunt-cli": "^1.2.0", "grunt-contrib-connect": "^1.0.2", "grunt-contrib-copy": "^1.0.0", From f695d2208eb0026f9dbb055b746002f1b83f4922 Mon Sep 17 00:00:00 2001 From: Dylan Weiss Date: Thu, 20 Apr 2017 18:55:53 -0400 Subject: [PATCH 28/38] Update grunt and doctoc! --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 1a338a89f..407d0ef78 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,8 @@ "devDependencies": { "connect": "^3.4.1", "coveralls": "^2.11.8", - "doctoc": "^1.0.0", - "grunt": "^0.4.5", + "doctoc": "^1.3.0", + "grunt": "^1.0.1", "grunt-cli": "^1.2.0", "grunt-contrib-connect": "^1.0.2", "grunt-contrib-copy": "^1.0.0", @@ -41,7 +41,7 @@ "grunt-contrib-jshint": "^1.0.0", "grunt-contrib-uglify": "^2.3.0", "grunt-contrib-watch": "^1.0.0", - "grunt-doctoc": "^0.1.1", + "grunt-doctoc": "https://github.com/nickyout/grunt-doctoc.git#master", "grunt-jscs": "^3.0.1", "grunt-protractor-runner": "^5.0.0", "grunt-protractor-webdriver": "^0.2.5", From 1bc10c19e860b540303d37f81e3df90187a10976 Mon Sep 17 00:00:00 2001 From: d Date: Fri, 21 Apr 2017 14:42:59 -0400 Subject: [PATCH 29/38] #550 #607 --- README.md | 11 ++++++++--- dist/gridstack.all.js | 4 ++-- dist/gridstack.js | 33 ++++++++++++++++++++++----------- dist/gridstack.min.js | 4 ++-- dist/gridstack.min.map | 2 +- src/gridstack.js | 33 ++++++++++++++++++++++----------- 6 files changed, 57 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 5a8d5af2b..e41f20f41 100644 --- a/README.md +++ b/README.md @@ -509,9 +509,14 @@ Changes #### v0.3.0-dev (Development Version) -- trigger custom event for resizestop (gsresizestop) ([#577](https://github.com/troolee/gridstack.js/issues/577)). -- prevent dragging/resizing in oneColumnMode ([#593](https://github.com/troolee/gridstack.js/issues/593)). -- add oneColumnModeClass option to grid. +- remove placeholder when dragging widget below grid (already worked when dragging left, above, and to the right of grid). +- prevent extra checks for removing widget when dragging off grid. +- trigger `added` when a widget is added via dropping from one grid to another. +- trigger `removed` when a widget is removed via dropping from one grid to another. +- trigger `removed` when a widget is removed via dropping on a removable zone ([#607](https://github.com/troolee/gridstack.js/issues/607) and [#550])(https://github.com/troolee/gridstack.js/issues/550)). +- trigger custom event for `resizestop` called `gsresizestop` ([#577](https://github.com/troolee/gridstack.js/issues/577) and [#398](https://github.com/troolee/gridstack.js/issues/398)). +- prevent dragging/resizing in `oneColumnMode` ([#593](https://github.com/troolee/gridstack.js/issues/593)). +- add `oneColumnModeClass` option to grid. - remove 768px CSS styles, moved to grid-stack-one-column-mode class. - add max-width override on grid-stck-one-column-mode ([#462](https://github.com/troolee/gridstack.js/issues/462)). - add internal function`isNodeChangedPosition`, minor optimization to move/drag. diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 33281be32..eb4ea770b 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -5,8 +5,8 @@ * gridstack.js may be freely distributed under the MIT license. * @preserve */ -!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){this.grid=a}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-style-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-style-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())||"no"==a||"false"==a||"0"==a):Boolean(a)},_collisionNodeCheck:function(a){return a!=this.node&&g.isIntercepted(a,this.nn)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}};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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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,this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())},i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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(void 0===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||void 0===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&&void 0!==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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0?(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&f._grid._triggerRemoveEvent(),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d= self.grid.width || y < 0) { - if (self.opts.removable === true) { - self._setupRemovingTimeout(el); - } + if (x < 0 || x >= self.grid.width || y < 0 || (!self.grid.float && y > self.grid.getGridHeight())) { + if (!node._temporaryRemoved) { + if (self.opts.removable === true) { + self._setupRemovingTimeout(el); + } - x = node._beforeDragX; - y = node._beforeDragY; + x = node._beforeDragX; + y = node._beforeDragY; - self.placeholder.detach(); - self.placeholder.hide(); - self.grid.removeNode(node); - self._updateContainerHeight(); + self.placeholder.detach(); + self.placeholder.hide(); + self.grid.removeNode(node); + self._updateContainerHeight(); - node._temporaryRemoved = true; + node._temporaryRemoved = true; + } } else { self._clearRemovingTimeout(el); @@ -1149,6 +1157,8 @@ if (node._isAboutToRemove) { forceNotify = true; + var gridToNotify = el.data('_gridstack_node')._grid; + gridToNotify._triggerRemoveEvent(); el.removeData('_gridstack_node'); el.remove(); } else { @@ -1183,6 +1193,7 @@ $(el).data('gridstack').onResizeHandler(); }); o.find('.grid-stack-item').trigger('resizestop'); + o.find('.grid-stack-item').trigger('gsresizestop'); } if (event.type == 'resizestop') { self.container.trigger('gsresizestop', o); diff --git a/dist/gridstack.min.js b/dist/gridstack.min.js index e2505bc5b..cc4500d2a 100644 --- a/dist/gridstack.min.js +++ b/dist/gridstack.min.js @@ -5,6 +5,6 @@ * gridstack.js may be freely distributed under the MIT license. * @preserve */ -!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){this.grid=a}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-style-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-style-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())||"no"==a||"false"==a||"0"==a):Boolean(a)},_collisionNodeCheck:function(a){return a!=this.node&&g.isIntercepted(a,this.nn)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}};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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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,this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())},i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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(void 0===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||void 0===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&&void 0!==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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0?(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove?(h=!0,b.removeData("_gridstack_node"),b.remove()):(f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style")),f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&f._grid._triggerRemoveEvent(),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d= self.grid.width || y < 0) { - if (self.opts.removable === true) { - self._setupRemovingTimeout(el); - } + if (x < 0 || x >= self.grid.width || y < 0 || (!self.grid.float && y > self.grid.getGridHeight())) { + if (!node._temporaryRemoved) { + if (self.opts.removable === true) { + self._setupRemovingTimeout(el); + } - x = node._beforeDragX; - y = node._beforeDragY; + x = node._beforeDragX; + y = node._beforeDragY; - self.placeholder.detach(); - self.placeholder.hide(); - self.grid.removeNode(node); - self._updateContainerHeight(); + self.placeholder.detach(); + self.placeholder.hide(); + self.grid.removeNode(node); + self._updateContainerHeight(); - node._temporaryRemoved = true; + node._temporaryRemoved = true; + } } else { self._clearRemovingTimeout(el); @@ -1149,6 +1157,8 @@ if (node._isAboutToRemove) { forceNotify = true; + var gridToNotify = el.data('_gridstack_node')._grid; + gridToNotify._triggerRemoveEvent(); el.removeData('_gridstack_node'); el.remove(); } else { @@ -1183,6 +1193,7 @@ $(el).data('gridstack').onResizeHandler(); }); o.find('.grid-stack-item').trigger('resizestop'); + o.find('.grid-stack-item').trigger('gsresizestop'); } if (event.type == 'resizestop') { self.container.trigger('gsresizestop', o); From a1448f79f2bb9cac5506e1368dcbfcc766f7857d Mon Sep 17 00:00:00 2001 From: Dylan Weiss Date: Fri, 21 Apr 2017 20:32:09 -0400 Subject: [PATCH 30/38] Preparing to release 0.3.0. --- README.md | 4 ++-- bower.json | 2 +- dist/gridstack.all.js | 4 ++-- dist/gridstack.jQueryUI.js | 2 +- dist/gridstack.jQueryUI.min.js | 2 +- dist/gridstack.js | 2 +- dist/gridstack.min.js | 2 +- package.json | 2 +- src/gridstack.jQueryUI.js | 2 +- src/gridstack.js | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index e41f20f41..25ff0825b 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Join gridstack.js on Slack: https://gridstackjs.troolee.com - [Using AniJS](#using-anijs) - [The Team](#the-team) - [Changes](#changes) - - [v0.3.0-dev (Development Version)](#v030-dev-development-version) + - [v0.3.0 (2017-04-21)](#v030-2017-04-21) - [v0.2.6 (2016-08-17)](#v026-2016-08-17) - [v0.2.5 (2016-03-02)](#v025-2016-03-02) - [v0.2.4 (2016-02-15)](#v024-2016-02-15) @@ -507,7 +507,7 @@ for help. Changes ======= -#### v0.3.0-dev (Development Version) +#### v0.3.0 (2017-04-21) - remove placeholder when dragging widget below grid (already worked when dragging left, above, and to the right of grid). - prevent extra checks for removing widget when dragging off grid. diff --git a/bower.json b/bower.json index 37e390b63..ae9c1c949 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "gridstack", - "version": "0.3.0-dev", + "version": "0.3.0", "homepage": "https://github.com/troolee/gridstack.js", "authors": [ "Pavel Reznikov " diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index eb4ea770b..6039ba265 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -1,5 +1,5 @@ /** - * gridstack.js 0.3.0-dev + * gridstack.js 0.3.0 * http://troolee.github.io/gridstack.js/ * (c) 2014-2016 Pavel Reznikov, Dylan Weiss * gridstack.js may be freely distributed under the MIT license. @@ -7,7 +7,7 @@ */ !function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){this.grid=a}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-style-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-style-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())||"no"==a||"false"==a||"0"==a):Boolean(a)},_collisionNodeCheck:function(a){return a!=this.node&&g.isIntercepted(a,this.nn)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}};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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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,this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())},i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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(void 0===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||void 0===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&&void 0!==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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&f._grid._triggerRemoveEvent(),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d Date: Sat, 29 Apr 2017 13:59:35 -0400 Subject: [PATCH 31/38] Update copyright, fix dev dependency, start 1.0.0-dev. --- Gruntfile.js | 32 ++------------------------------ LICENSE | 2 +- README.md | 9 ++++++++- bower.json | 2 +- dist/gridstack.all.js | 8 ++++---- dist/gridstack.jQueryUI.js | 4 ++-- dist/gridstack.jQueryUI.min.js | 4 ++-- dist/gridstack.js | 4 ++-- dist/gridstack.min.js | 4 ++-- package.json | 6 +++--- src/gridstack.jQueryUI.js | 4 ++-- src/gridstack.js | 4 ++-- 12 files changed, 31 insertions(+), 52 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 77f58d42e..e94d699da 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -4,7 +4,6 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-doctoc'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-jscs'); grunt.loadNpmTasks('grunt-contrib-watch'); @@ -58,27 +57,6 @@ module.exports = function(grunt) { } }, - doctoc: { - options: { - removeAd: false - }, - readme: { - options: { - target: './README.md' - } - }, - doc: { - options: { - target: './doc/README.md' - } - }, - faq: { - options: { - target: './doc/FAQ.md' - } - }, - }, - jshint: { all: ['src/*.js'] }, @@ -99,13 +77,7 @@ module.exports = function(grunt) { tasks: ['sass', 'cssmin'], options: { }, - }, - docs: { - files: ['README.md', 'doc/README.md', 'doc/FAQ.md'], - tasks: ['doctoc'], - options: { - }, - }, + } }, protractor: { @@ -134,6 +106,6 @@ module.exports = function(grunt) { } }); - grunt.registerTask('default', ['sass', 'cssmin', 'jshint', 'jscs', 'copy', 'uglify', 'doctoc']); + grunt.registerTask('default', ['sass', 'cssmin', 'jshint', 'jscs', 'copy', 'uglify']); grunt.registerTask('e2e-test', ['connect', 'protractor_webdriver', 'protractor']); }; diff --git a/LICENSE b/LICENSE index f337ebad1..d8ca1d3a7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014-2016 Pavel Reznikov, Dylan Weiss +Copyright (c) 2014-2017 Pavel Reznikov, Dylan Weiss Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 25ff0825b..321a2550d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Join gridstack.js on Slack: https://gridstackjs.troolee.com - [Using gridstack.js with jQuery UI](#using-gridstackjs-with-jquery-ui) - [Install](#install) - [Basic usage](#basic-usage) + - [gridstack.js News](#gridstackjs-news) - [Migrating to v0.3.0](#migrating-to-v030) - [Migrating to v0.2.5](#migrating-to-v025) - [API Documentation](#api-documentation) @@ -140,6 +141,12 @@ $(function () { ``` +## gridstack.js News + +Version 1.0 is coming! Check out the blog post here for more information: +[https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/](https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/) + + ## Migrating to v0.3.0 As of v0.3.0, gridstack introduces a new plugin system. The drag'n'drop functionality has been modified to take advantage of this system. Because of this, and to avoid dependency on core code from jQuery UI, the plugin was functionality was moved to a separate file. @@ -167,7 +174,7 @@ when they will be completely removed. ## API Documentation -Please check out `doc/README.md` for more information about gridstack.js API. +Documentation can be found [here](https://github.com/troolee/gridstack.js/tree/develop/doc). ## Questions and Answers diff --git a/bower.json b/bower.json index ae9c1c949..34824238a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "gridstack", - "version": "0.3.0", + "version": "1.0.0-dev", "homepage": "https://github.com/troolee/gridstack.js", "authors": [ "Pavel Reznikov " diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 6039ba265..7ae619291 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -1,15 +1,15 @@ /** - * gridstack.js 0.3.0 + * gridstack.js 1.0.0-dev * http://troolee.github.io/gridstack.js/ - * (c) 2014-2016 Pavel Reznikov, Dylan Weiss + * (c) 2014-2017 Pavel Reznikov, Dylan Weiss * gridstack.js may be freely distributed under the MIT license. * @preserve */ !function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){this.grid=a}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-style-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-style-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())||"no"==a||"false"==a||"0"==a):Boolean(a)},_collisionNodeCheck:function(a){return a!=this.node&&g.isIntercepted(a,this.nn)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}};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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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,this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())},i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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(void 0===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||void 0===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&&void 0!==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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&f._grid._triggerRemoveEvent(),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d", + "contributors": ["Dylan Weiss (https://dylandreams.com)"], "license": "MIT", "bugs": { "url": "https://github.com/troolee/gridstack.js/issues" @@ -41,7 +42,6 @@ "grunt-contrib-jshint": "^1.0.0", "grunt-contrib-uglify": "^2.3.0", "grunt-contrib-watch": "^1.0.0", - "grunt-doctoc": "https://github.com/nickyout/grunt-doctoc.git#master", "grunt-jscs": "^3.0.1", "grunt-protractor-runner": "^5.0.0", "grunt-protractor-webdriver": "^0.2.5", diff --git a/src/gridstack.jQueryUI.js b/src/gridstack.jQueryUI.js index c9e0391c6..a7b62e5a2 100644 --- a/src/gridstack.jQueryUI.js +++ b/src/gridstack.jQueryUI.js @@ -1,7 +1,7 @@ /** - * gridstack.js 0.3.0 + * gridstack.js 1.0.0-dev * http://troolee.github.io/gridstack.js/ - * (c) 2014-2016 Pavel Reznikov, Dylan Weiss + * (c) 2014-2017 Pavel Reznikov, Dylan Weiss * gridstack.js may be freely distributed under the MIT license. * @preserve */ diff --git a/src/gridstack.js b/src/gridstack.js index fbdb524f0..80434b18a 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -1,7 +1,7 @@ /** - * gridstack.js 0.3.0 + * gridstack.js 1.0.0-dev * http://troolee.github.io/gridstack.js/ - * (c) 2014-2016 Pavel Reznikov, Dylan Weiss + * (c) 2014-2017 Pavel Reznikov, Dylan Weiss * gridstack.js may be freely distributed under the MIT license. * @preserve */ From 56effec979882cf39283459e55cb842d95329df1 Mon Sep 17 00:00:00 2001 From: d Date: Thu, 4 May 2017 10:45:29 -0400 Subject: [PATCH 32/38] Remove FAQ, update README, move change log to its own file. --- README.md | 372 ++++--------------------------------------------- doc/CHANGES.md | 104 ++++++++++++++ doc/FAQ.md | 51 ------- package.json | 2 +- 4 files changed, 130 insertions(+), 399 deletions(-) create mode 100644 doc/CHANGES.md delete mode 100644 doc/FAQ.md diff --git a/README.md b/README.md index 321a2550d..1a5e6b26a 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,8 @@ gridstack.js [![Coverage Status](https://coveralls.io/repos/github/troolee/gridstack.js/badge.svg?branch=master)](https://coveralls.io/github/troolee/gridstack.js?branch=master) [![Dependency Status](https://david-dm.org/troolee/gridstack.js.svg)](https://david-dm.org/troolee/gridstack.js) [![devDependency Status](https://david-dm.org/troolee/gridstack.js/dev-status.svg)](https://david-dm.org/troolee/gridstack.js#info=devDependencies) -[![Stories in Ready](https://badge.waffle.io/troolee/gridstack.js.png?label=ready&title=Ready)](http://waffle.io/troolee/gridstack.js) -gridstack.js is a jQuery plugin for widget layout. This is drag-and-drop multi-column grid. It allows you to build -draggable responsive bootstrap v3 friendly layouts. It also works great with [knockout.js](http://knockoutjs.com), [angular.js](https://angularjs.org) and touch devices. - -Inspired by [gridster.js](https://github.com/ducksboard/gridster.js). Built with love. +gridstack.js is a mobile-friendly Javascript library for dashboard layout and creation. Making a drag-and-drop, multi-column dashboard has never been easier. gridstack.js allows you to build draggable, responsive bootstrap v3-friendly layouts. It also works great with [knockout.js](http://knockoutjs.com), [angular.js](https://angularjs.org), [ember](https://www.emberjs.com/). Join gridstack.js on Slack: https://gridstackjs.troolee.com @@ -20,52 +16,40 @@ Join gridstack.js on Slack: https://gridstackjs.troolee.com **Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* -- [Demo](#demo) +- [gridstack.js News](#gridstackjs-news) +- [Demo and examples](#demo-and-examples) - [Usage](#usage) - [Requirements](#requirements) - [Using gridstack.js with jQuery UI](#using-gridstackjs-with-jquery-ui) - [Install](#install) - [Basic usage](#basic-usage) - - [gridstack.js News](#gridstackjs-news) - [Migrating to v0.3.0](#migrating-to-v030) - - [Migrating to v0.2.5](#migrating-to-v025) - [API Documentation](#api-documentation) - - [Questions and Answers](#questions-and-answers) - [Touch devices support](#touch-devices-support) - - [Use with knockout.js](#use-with-knockoutjs) - - [Use with angular.js](#use-with-angularjs) - - [Rails integration](#rails-integration) + - [gridstack.js for specific frameworks](#gridstackjs-for-specific-frameworks) - [Change grid width](#change-grid-width) - [Extra CSS](#extra-css) - [Different grid widths](#different-grid-widths) - - [Save grid to array](#save-grid-to-array) - - [Load grid from array](#load-grid-from-array) - [Override resizable/draggable options](#override-resizabledraggable-options) - [IE8 support](#ie8-support) - [Use with require.js](#use-with-requirejs) - - [Nested grids](#nested-grids) - - [Resizing active grid](#resizing-active-grid) - - [Using AniJS](#using-anijs) -- [The Team](#the-team) - [Changes](#changes) - - [v0.3.0 (2017-04-21)](#v030-2017-04-21) - - [v0.2.6 (2016-08-17)](#v026-2016-08-17) - - [v0.2.5 (2016-03-02)](#v025-2016-03-02) - - [v0.2.4 (2016-02-15)](#v024-2016-02-15) - - [v0.2.3 (2015-06-23)](#v023-2015-06-23) - - [v0.2.2 (2014-12-23)](#v022-2014-12-23) - - [v0.2.1 (2014-12-09)](#v021-2014-12-09) - - [v0.2.0 (2014-11-30)](#v020-2014-11-30) - - [v0.1.0 (2014-11-18)](#v010-2014-11-18) -- [License](#license) +- [The Team](#the-team) -Demo +gridstack.js News +===== + +Version 1.0 is coming! Check out the blog post here for more information: +[https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/](https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/) + + +Demo and examples ==== -Please visit http://troolee.github.io/gridstack.js/ for demo. Or check out [these example](http://troolee.github.io/gridstack.js/demo/). +Please visit http://troolee.github.io/gridstack.js/ for a demo or check out [these examples](http://troolee.github.io/gridstack.js/demo/). Usage @@ -85,6 +69,8 @@ Note: You can still use [underscore.js](http://underscorejs.org) (>= 1.7.0) inst ## Install +* In the browser: + ```html @@ -132,20 +118,11 @@ You can download files from `dist` directory as well. ``` -## gridstack.js News - -Version 1.0 is coming! Check out the blog post here for more information: -[https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/](https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/) - ## Migrating to v0.3.0 @@ -166,22 +143,11 @@ or We're working on implementing support for other drag'n'drop libraries through the new plugin system. -## Migrating to v0.2.5 - -As of v0.2.5 all methods and parameters are in camel case to respect [JavaScript Style Guide and Coding Conventions](http://www.w3schools.com/js/js_conventions.asp). -All old methods and parameters are marked as deprecated and still available but a warning will be displayed in js console. They will be available until v1.0 -when they will be completely removed. ## API Documentation Documentation can be found [here](https://github.com/troolee/gridstack.js/tree/develop/doc). -## Questions and Answers - -Please feel free to as a questions here in issues, using [Stackoverflow](http://stackoverflow.com/search?q=gridstack) or [Slack chat](https://gridstackjs.troolee.com). -We will glad to answer and help you as soon as we can. - -Also please check our FAQ `doc/FAQ.md` before asking in case the answer is already there. ## Touch devices support @@ -210,93 +176,12 @@ $(function () { If you're still experiencing issues on touch devices please check [#444](https://github.com/troolee/gridstack.js/issues/444) -## Use with knockout.js - -```javascript -ko.components.register('dashboard-grid', { - viewModel: { - createViewModel: function (controller, componentInfo) { - var ViewModel = function (controller, componentInfo) { - var grid = null; - - this.widgets = controller.widgets; - - this.afterAddWidget = function (items) { - if (grid == null) { - grid = $(componentInfo.element).find('.grid-stack').gridstack({ - auto: false - }).data('gridstack'); - } - - var item = _.find(items, function (i) { return i.nodeType == 1 }); - grid.addWidget(item); - ko.utils.domNodeDisposal.addDisposeCallback(item, function () { - grid.removeWidget(item); - }); - }; - }; - - return new ViewModel(controller, componentInfo); - } - }, - template: - [ - '
', - '
', - '
...
', - '
', - '
' - ].join('') -}); - -$(function () { - var Controller = function (widgets) { - this.widgets = ko.observableArray(widgets); - }; - - var widgets = [ - {x: 0, y: 0, width: 2, height: 2}, - {x: 2, y: 0, width: 4, height: 2}, - {x: 6, y: 0, width: 2, height: 4}, - {x: 1, y: 2, width: 4, height: 2} - ]; - - ko.applyBindings(new Controller(widgets)); -}); -``` - -and HTML: - -```html -
-``` - -See examples: [example 1](http://troolee.github.io/gridstack.js/demo/knockout.html), [example 2](http://troolee.github.io/gridstack.js/demo/knockout2.html). -**Notes:** It's very important to exclude training spaces after widget template: +## gridstack.js for specific frameworks -```javascript -template: - [ - '
', - '
', - ' ....', - '
', // <-- NO SPACE **AFTER**
- ' ' // <-- NO SPACE **BEFORE** - ].join('') // <-- JOIN WITH **EMPTY** STRING -``` - -Otherwise `addDisposeCallback` won't work. - - -## Use with angular.js - -Please check [gridstack-angular](https://github.com/kdietrich/gridstack-angular) - - -## Rails integration - -For rails users, integration of gridstack.js and its dependencies can be done through [gridstack-js-rails](https://github.com/randoum/gridstack-js-rails) +- AngularJS: [gridstack-angular](https://github.com/kdietrich/gridstack-angular) +- Rails: [gridstack-js-rails](https://github.com/randoum/gridstack-js-rails) +- ember: [gridstack-ember](https://github.com/yahoo/ember-gridstack) ## Change grid width @@ -365,60 +250,6 @@ $('.grid-stack').gridstack({width: N}); See example: [2 grids demo](http://troolee.github.io/gridstack.js/demo/two.html) -## Save grid to array - -Because gridstack doesn't track any kind of user-defined widget id there is no reason to make serialization to be part -of gridstack API. To serialize grid you can simply do something like this (let's say you store widget id inside `data-custom-id` -attribute): - -```javascript -var res = _.map($('.grid-stack .grid-stack-item:visible'), function (el) { - el = $(el); - var node = el.data('_gridstack_node'); - return { - id: el.attr('data-custom-id'), - x: node.x, - y: node.y, - width: node.width, - height: node.height - }; -}); -alert(JSON.stringify(res)); -``` - -See example: [Serialization demo](http://troolee.github.io/gridstack.js/demo/serialization.html) - -You can also use `onchange` event if you need to save only changed widgets right away they have been changed. - -## Load grid from array - -```javascript -var serialization = [ - {x: 0, y: 0, width: 2, height: 2}, - {x: 3, y: 1, width: 1, height: 2}, - {x: 4, y: 1, width: 1, height: 1}, - {x: 2, y: 3, width: 3, height: 1}, - {x: 1, y: 4, width: 1, height: 1}, - {x: 1, y: 3, width: 1, height: 1}, - {x: 2, y: 4, width: 1, height: 1}, - {x: 2, y: 5, width: 1, height: 1} -]; - -serialization = GridStackUI.Utils.sort(serialization); - -var grid = $('.grid-stack').data('gridstack'); -grid.removeAll(); - -_.each(serialization, function (node) { - grid.addWidget($('
'), - node.x, node.y, node.width, node.height); -}); -``` - -See example: [Serialization demo](http://troolee.github.io/gridstack.js/demo/serialization.html) - -If you're using knockout there is no need for such method at all. - ## Override resizable/draggable options You can override default `resizable`/`draggable` options. For instance to enable other then bottom right resizing handle @@ -485,166 +316,13 @@ If you're using require.js and a single file jQueryUI please check out this [Stackoverflow question](http://stackoverflow.com/questions/35582945/redundant-dependencies-with-requirejs) to get it working properly. +Changes +===== -## Nested grids - -Gridstack may be nested. All nested grids have an additional class `grid-stack-nested` which is assigned automatically -during initialization. -See example: [Nested grid demo](http://troolee.github.io/gridstack.js/demo/nested.html) - - -## Resizing active grid - -Resizing on-the-fly is possible, though experimental. This may be used to make gridstack responsive. gridstack will change the total number of columns and will attempt to update the width and x values of each widget to be more logical. -See example: [Responsive grid demo](http://troolee.github.io/gridstack.js/demo/responsive.html) - -## Using AniJS +View our change log [here](https://github.com/troolee/gridstack.js/tree/develop/doc/CHANGES.md). -Using AniJS with gridstack is a breeze. In the following example, a listener is added that gets triggered by a widget being added. -See widgets wiggle! [AniJS demo](http://troolee.github.io/gridstack.js/demo/anijs.html) The Team ======== -gridstack.js is currently maintained by [Pavel Reznikov](https://github.com/troolee), [Dylan Weiss](https://github.com/radiolips) -and [Kevin Dietrich](https://github.com/kdietrich). And we appreciate [all contributors](https://github.com/troolee/gridstack.js/graphs/contributors) -for help. - - -Changes -======= - -#### v0.3.0 (2017-04-21) - -- remove placeholder when dragging widget below grid (already worked when dragging left, above, and to the right of grid). -- prevent extra checks for removing widget when dragging off grid. -- trigger `added` when a widget is added via dropping from one grid to another. -- trigger `removed` when a widget is removed via dropping from one grid to another. -- trigger `removed` when a widget is removed via dropping on a removable zone ([#607](https://github.com/troolee/gridstack.js/issues/607) and [#550])(https://github.com/troolee/gridstack.js/issues/550)). -- trigger custom event for `resizestop` called `gsresizestop` ([#577](https://github.com/troolee/gridstack.js/issues/577) and [#398](https://github.com/troolee/gridstack.js/issues/398)). -- prevent dragging/resizing in `oneColumnMode` ([#593](https://github.com/troolee/gridstack.js/issues/593)). -- add `oneColumnModeClass` option to grid. -- remove 768px CSS styles, moved to grid-stack-one-column-mode class. -- add max-width override on grid-stck-one-column-mode ([#462](https://github.com/troolee/gridstack.js/issues/462)). -- add internal function`isNodeChangedPosition`, minor optimization to move/drag. -- drag'n'drop plugin system. Move jQuery UI dependencies to separate plugin file. - -#### v0.2.6 (2016-08-17) - -- update requirements to the latest versions of jQuery (v3.1.0+) and jquery-ui (v1.12.0+). -- fix jQuery `size()` ([#486](https://github.com/troolee/gridstack.js/issues/486)). -- update `destroy([detachGrid])` call ([#422](https://github.com/troolee/gridstack.js/issues/422)). -- don't mutate options when calling `draggable` and `resizable`. ([#505](https://github.com/troolee/gridstack.js/issues/505)). -- update _notify to allow detach ([#411](https://github.com/troolee/gridstack.js/issues/411)). -- fix code that checks for jquery-ui ([#481](https://github.com/troolee/gridstack.js/issues/481)). -- fix `cellWidth` calculation on empty grid - -#### v0.2.5 (2016-03-02) - -- update names to respect js naming convention. -- `cellHeight` and `verticalMargin` can now be string (e.g. '3em', '20px') (Thanks to @jlowcs). -- add `maxWidth`/`maxHeight` methods. -- add `enableMove`/`enableResize` methods. -- fix window resize issue #331. -- add options `disableDrag` and `disableResize`. -- fix `batchUpdate`/`commit` (Thank to @radiolips) -- remove dependency of FontAwesome -- RTL support -- `'auto'` value for `cellHeight` option -- fix `setStatic` method -- add `setAnimation` method to API -- add `setGridWidth` method ([#227](https://github.com/troolee/gridstack.js/issues/227)) -- add `removable`/`removeTimeout` *(experimental)* -- add `detachGrid` parameter to `destroy` method ([#216](https://github.com/troolee/gridstack.js/issues/216)) (thanks @jhpedemonte) -- add `useOffset` parameter to `getCellFromPixel` method ([#237](https://github.com/troolee/gridstack.js/issues/237)) -- add `minWidth`, `maxWidth`, `minHeight`, `maxHeight`, `id` parameters to `addWidget` ([#188](https://github.com/troolee/gridstack.js/issues/188)) -- add `added` and `removed` events for when a widget is added or removed, respectively. ([#54](https://github.com/troolee/gridstack.js/issues/54)) -- add `acceptWidgets` parameter. Widgets can now be draggable between grids or from outside *(experimental)* - -#### v0.2.4 (2016-02-15) - -- fix closure compiler/linter warnings -- add `static_grid` option. -- add `min_width`/`min_height` methods (Thanks to @cvillemure) -- add `destroy` method (Thanks to @zspitzer) -- add `placeholder_text` option (Thanks to @slauyama) -- add `handle_class` option. -- add `make_widget` method. -- lodash v 4.x support (Thanks to @andrewr88) - -#### v0.2.3 (2015-06-23) - -- gridstack-extra.css -- add support of lodash.js -- add `is_area_empty` method -- nested grids -- add `batch_update`/`commit` methods -- add `update` method -- allow to override `resizable`/`draggable` options -- add `disable`/`enable` methods -- add `get_cell_from_pixel` (thanks to @juchi) -- AMD support -- fix nodes sorting -- improved touch devices support -- add `always_show_resize_handle` option -- minor fixes and improvements - -#### v0.2.2 (2014-12-23) - -- fix grid initialization -- add `cell_height`/`cell_width` API methods -- fix boolean attributes (issue #31) - -#### v0.2.1 (2014-12-09) - -- add widgets locking (issue #19) -- add `will_it_fit` API method -- fix auto-positioning (issue #20) -- add animation (thanks to @ishields) -- fix `y` coordinate calculation when dragging (issue #18) -- fix `remove_widget` (issue #16) -- minor fixes - - -#### v0.2.0 (2014-11-30) - -- add `height` option -- auto-generate css rules (widgets `height` and `top`) -- add `GridStackUI.Utils.sort` utility function -- add `remove_all` API method -- add `resize` and `move` API methods -- add `resizable` and `movable` API methods -- add `data-gs-no-move` attribute -- add `float` option -- fix default css rule for inner content -- minor fixes - -#### v0.1.0 (2014-11-18) - -Very first version. - - -License -======= - -The MIT License (MIT) - -Copyright (c) 2014-2016 Pavel Reznikov, Dylan Weiss - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +gridstack.js is currently maintained by [Pavel Reznikov](https://github.com/troolee) and [Dylan Weiss](https://github.com/radiolips). We appreciate [all contributors](https://github.com/troolee/gridstack.js/graphs/contributors) for help. diff --git a/doc/CHANGES.md b/doc/CHANGES.md new file mode 100644 index 000000000..e6d13a01f --- /dev/null +++ b/doc/CHANGES.md @@ -0,0 +1,104 @@ +Change log +========================== + + + +**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* + +- [v0.3.0 (2017-04-21)](#v030-2017-04-21) +- [v0.2.6 (2016-08-17)](#v026-2016-08-17) +- [v0.2.4 (2016-02-15)](#v024-2016-02-15) +- [v0.2.3 (2015-06-23)](#v023-2015-06-23) +- [v0.2.2 (2014-12-23)](#v022-2014-12-23) +- [v0.2.1 (2014-12-09)](#v021-2014-12-09) +- [v0.2.0 (2014-11-30)](#v020-2014-11-30) +- [v0.1.0 (2014-11-18)](#v010-2014-11-18) + + + +## v0.3.0 (2017-04-21) + +- remove placeholder when dragging widget below grid (already worked when dragging left, above, and to the right of grid). +- prevent extra checks for removing widget when dragging off grid. +- trigger `added` when a widget is added via dropping from one grid to another. +- trigger `removed` when a widget is removed via dropping from one grid to another. +- trigger `removed` when a widget is removed via dropping on a removable zone ([#607](https://github.com/troolee/gridstack.js/issues/607) and [#550])(https://github.com/troolee/gridstack.js/issues/550)). +- trigger custom event for `resizestop` called `gsresizestop` ([#577](https://github.com/troolee/gridstack.js/issues/577) and [#398](https://github.com/troolee/gridstack.js/issues/398)). +- prevent dragging/resizing in `oneColumnMode` ([#593](https://github.com/troolee/gridstack.js/issues/593)). +- add `oneColumnModeClass` option to grid. +- remove 768px CSS styles, moved to grid-stack-one-column-mode class. +- add max-width override on grid-stck-one-column-mode ([#462](https://github.com/troolee/gridstack.js/issues/462)). +- add internal function`isNodeChangedPosition`, minor optimization to move/drag. +- drag'n'drop plugin system. Move jQuery UI dependencies to separate plugin file. + +## v0.2.6 (2016-08-17) + +- update requirements to the latest versions of jQuery (v3.1.0+) and jquery-ui (v1.12.0+). +- fix jQuery `size()` ([#486](https://github.com/troolee/gridstack.js/issues/486)). +- update `destroy([detachGrid])` call ([#422](https://github.com/troolee/gridstack.js/issues/422)). +- don't mutate options when calling `draggable` and `resizable`. ([#505](https://github.com/troolee/gridstack.js/issues/505)). +- update _notify to allow detach ([#411](https://github.com/troolee/gridstack.js/issues/411)). +- fix code that checks for jquery-ui ([#481](https://github.com/troolee/gridstack.js/issues/481)). +- fix `cellWidth` calculation on empty grid + +## v0.2.4 (2016-02-15) + +- fix closure compiler/linter warnings +- add `static_grid` option. +- add `min_width`/`min_height` methods (Thanks to @cvillemure) +- add `destroy` method (Thanks to @zspitzer) +- add `placeholder_text` option (Thanks to @slauyama) +- add `handle_class` option. +- add `make_widget` method. +- lodash v 4.x support (Thanks to @andrewr88) + +## v0.2.3 (2015-06-23) + +- gridstack-extra.css +- add support of lodash.js +- add `is_area_empty` method +- nested grids +- add `batch_update`/`commit` methods +- add `update` method +- allow to override `resizable`/`draggable` options +- add `disable`/`enable` methods +- add `get_cell_from_pixel` (thanks to @juchi) +- AMD support +- fix nodes sorting +- improved touch devices support +- add `always_show_resize_handle` option +- minor fixes and improvements + +## v0.2.2 (2014-12-23) + +- fix grid initialization +- add `cell_height`/`cell_width` API methods +- fix boolean attributes (issue #31) + +## v0.2.1 (2014-12-09) + +- add widgets locking (issue #19) +- add `will_it_fit` API method +- fix auto-positioning (issue #20) +- add animation (thanks to @ishields) +- fix `y` coordinate calculation when dragging (issue #18) +- fix `remove_widget` (issue #16) +- minor fixes + + +## v0.2.0 (2014-11-30) + +- add `height` option +- auto-generate css rules (widgets `height` and `top`) +- add `GridStackUI.Utils.sort` utility function +- add `remove_all` API method +- add `resize` and `move` API methods +- add `resizable` and `movable` API methods +- add `data-gs-no-move` attribute +- add `float` option +- fix default css rule for inner content +- minor fixes + +## v0.1.0 (2014-11-18) + +Very first version. \ No newline at end of file diff --git a/doc/FAQ.md b/doc/FAQ.md deleted file mode 100644 index 2e17c546f..000000000 --- a/doc/FAQ.md +++ /dev/null @@ -1,51 +0,0 @@ -Frequently asked questions -========================== - - - -**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* - -- [Gridstack doesn't use bootstrap 3 classes. Why you say it's bootstrap 3 friendly.](#gridstack-doesnt-use-bootstrap-3-classes-why-you-say-its-bootstrap-3-friendly) -- [How can I create a static layout using gridstack.](#how-can-i-create-a-static-layout-using-gridstack) - - - -### Gridstack doesn't use bootstrap 3 classes. Why you say it's bootstrap 3 friendly. - -**Q:** - -Original issue #390: - -> Hi, -> -> Excuse my ignorance but on your site you write "responsive bootstrap v3 friendly layouts" but how? -> -> In none of the examples you actually make use of any bootstrap classes. You add it to head but if you do that with gridster it works exactly the same.. -> -> What does gridstack do different then gridster? -> -> Reason I'm asking is because I have bootstrap HTML templates I want to put them in the grid so users can move it all around .. then when done have a normal html page (without the draggable grid). I thought gridstack would help to do that in favor of gridster but so far I have not seen any difference between the 2.. -> -> Thanks! - -**A:** - -We never declare that gridstack uses bootstrap classes. We say that gridstack could be responsive (widgets are not fixed width) it works well on bootstrap 3 pages with fixed or responsive layout. That's why it says bootstrap 3 friendly. - -It wasn't a goal for gridstack to create bootstrap 3 layouts. It's not a goal now neither. The goal of gridstack is to create dashboard layouts with draggable/resizable widgets. - -Gridstack uses internal grid to implement its logic. DOM nodes are just interpretation of this grid. So we or you probably could create a third party library which exports this internal grid into bootstrap 3/bootstrap 4/absolute divs/whatever layout. But I don't see this as part of gridstack core. As the same as support of angular/knockout/whatever libraries. We're doing all necessary for smooth support but it will never be a part of core. - -The main idea is to build as simple and flexible lib as possible. - - -### How can I create a static layout using gridstack. - -**Q:** - -How can I create a static layout not using jQuery UI, etc. - -**A:** - -The main propose of gridstack is creating dashboards with draggable and/or resizable widgets. You could disable this behavior by setting `static` option. At this point you will probably -still need to include jQuery UI. But we will try to decrease dependency of it in near future. diff --git a/package.json b/package.json index feacad37b..959a9686f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "url": "git+https://github.com/troolee/gridstack.js.git" }, "scripts": { - "build": "grunt ; doctoc ./README.md ; doctoc ./doc/README.md ; doctoc ./doc/FAQ.md", + "build": "grunt ; doctoc ./README.md ; doctoc ./doc/README.md ; doctoc ./doc/CHANGES.md", "test": "karma start karma.conf.js" }, "keywords": [ From a7cc0358dba07847120793cc9d73c5f2b7b93c93 Mon Sep 17 00:00:00 2001 From: d Date: Thu, 4 May 2017 10:49:31 -0400 Subject: [PATCH 33/38] Whoops, missed 0.2.5 updates. --- doc/CHANGES.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/doc/CHANGES.md b/doc/CHANGES.md index e6d13a01f..6d663c35b 100644 --- a/doc/CHANGES.md +++ b/doc/CHANGES.md @@ -7,6 +7,7 @@ Change log - [v0.3.0 (2017-04-21)](#v030-2017-04-21) - [v0.2.6 (2016-08-17)](#v026-2016-08-17) +- [v0.2.5 (2016-03-02)](#v025-2016-03-02) - [v0.2.4 (2016-02-15)](#v024-2016-02-15) - [v0.2.3 (2015-06-23)](#v023-2015-06-23) - [v0.2.2 (2014-12-23)](#v022-2014-12-23) @@ -41,6 +42,28 @@ Change log - fix code that checks for jquery-ui ([#481](https://github.com/troolee/gridstack.js/issues/481)). - fix `cellWidth` calculation on empty grid +## v0.2.5 (2016-03-02) + +- update names to respect js naming convention. +- `cellHeight` and `verticalMargin` can now be string (e.g. '3em', '20px') (Thanks to @jlowcs). +- add `maxWidth`/`maxHeight` methods. +- add `enableMove`/`enableResize` methods. +- fix window resize issue #331. +- add options `disableDrag` and `disableResize`. +- fix `batchUpdate`/`commit` (Thank to @radiolips) +- remove dependency of FontAwesome +- RTL support +- `'auto'` value for `cellHeight` option +- fix `setStatic` method +- add `setAnimation` method to API +- add `setGridWidth` method ([#227](https://github.com/troolee/gridstack.js/issues/227)) +- add `removable`/`removeTimeout` *(experimental)* +- add `detachGrid` parameter to `destroy` method ([#216](https://github.com/troolee/gridstack.js/issues/216)) (thanks @jhpedemonte) +- add `useOffset` parameter to `getCellFromPixel` method ([#237](https://github.com/troolee/gridstack.js/issues/237)) +- add `minWidth`, `maxWidth`, `minHeight`, `maxHeight`, `id` parameters to `addWidget` ([#188](https://github.com/troolee/gridstack.js/issues/188)) +- add `added` and `removed` events for when a widget is added or removed, respectively. ([#54](https://github.com/troolee/gridstack.js/issues/54)) +- add `acceptWidgets` parameter. Widgets can now be draggable between grids or from outside *(experimental)* + ## v0.2.4 (2016-02-15) - fix closure compiler/linter warnings From 837193401ab9610f560ffa7e237e02187e36d9ca Mon Sep 17 00:00:00 2001 From: d Date: Mon, 15 May 2017 11:40:28 -0400 Subject: [PATCH 34/38] Allow cloning sidebar items 661, 396, 499 --- README.md | 2 +- dist/gridstack.all.js | 4 ++-- dist/gridstack.js | 10 ++++++++-- dist/gridstack.min.js | 4 ++-- dist/gridstack.min.map | 2 +- doc/CHANGES.md | 5 +++++ src/gridstack.js | 10 ++++++++-- 7 files changed, 27 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1a5e6b26a..38c3e5a75 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ gridstack.js News ===== Version 1.0 is coming! Check out the blog post here for more information: -[https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/](https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/) +[https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/](https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/) and [https://dylandreams.com](subscribe to the blog) for more gridstack news and tutorials. Demo and examples diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index 7ae619291..feb10e75b 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -5,8 +5,8 @@ * gridstack.js may be freely distributed under the MIT license. * @preserve */ -!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){this.grid=a}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-style-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-style-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())||"no"==a||"false"==a||"0"==a):Boolean(a)},_collisionNodeCheck:function(a){return a!=this.node&&g.isIntercepted(a,this.nn)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}};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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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,this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())},i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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(void 0===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||void 0===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&&void 0!==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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&f._grid._triggerRemoveEvent(),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);if(d.data("_gridstack_node")){d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&void 0!==f._grid&&f._grid._triggerRemoveEvent(),a(c.helper).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate(),a(c.draggable).unbind("drag",p),a(c.draggable).removeData("_gridstack_node"),a(c.draggable).removeData("_gridstack_node_orig")})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&f._grid._triggerRemoveEvent(),a(c.draggable).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate()})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);if(d.data("_gridstack_node")){d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&void 0!==f._grid&&f._grid._triggerRemoveEvent(),a(c.helper).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate(),a(c.draggable).unbind("drag",p),a(c.draggable).removeData("_gridstack_node"),a(c.draggable).removeData("_gridstack_node_orig")})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d **Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* +- [v1.0.0 (development)](#v100-development) - [v0.3.0 (2017-04-21)](#v030-2017-04-21) - [v0.2.6 (2016-08-17)](#v026-2016-08-17) - [v0.2.5 (2016-03-02)](#v025-2016-03-02) @@ -17,6 +18,10 @@ Change log +## v1.0.0 (development) + +- enable sidebar items to be duplicated properly. Pass `helper: 'clone'` in `draggable` options. ([#661](https://github.com/troolee/gridstack.js/issues/661), ([#396](https://github.com/troolee/gridstack.js/issues/396), ([#499](https://github.com/troolee/gridstack.js/issues/499). + ## v0.3.0 (2017-04-21) - remove placeholder when dragging widget below grid (already worked when dragging left, above, and to the right of grid). diff --git a/src/gridstack.js b/src/gridstack.js index 80434b18a..aa422c308 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -844,6 +844,9 @@ }) .on(self.container, 'dropout', function(event, ui) { var el = $(ui.draggable); + if (!el.data('_gridstack_node')) { + return; + } el.unbind('drag', onDrag); var node = el.data('_gridstack_node'); node.el = null; @@ -860,10 +863,10 @@ var el = $(ui.draggable).clone(false); el.data('_gridstack_node', node); var originalNode = $(ui.draggable).data('_gridstack_node_orig'); - if (typeof originalNode !== 'undefined') { + if (typeof originalNode !== 'undefined' && typeof originalNode._grid !== 'undefined') { originalNode._grid._triggerRemoveEvent(); } - $(ui.draggable).remove(); + $(ui.helper).remove(); node.el = el; self.placeholder.hide(); el @@ -885,6 +888,9 @@ self._triggerChangeEvent(); self.grid.endUpdate(); + $(ui.draggable).unbind('drag', onDrag); + $(ui.draggable).removeData('_gridstack_node'); + $(ui.draggable).removeData('_gridstack_node_orig'); }); } }; From b5468d022bdc5a42e518de742bb152bd6ff6e0e6 Mon Sep 17 00:00:00 2001 From: d Date: Mon, 15 May 2017 13:34:11 -0400 Subject: [PATCH 35/38] Add `data-gs-resize-handles` option to allow for widgets to have their own resize handles. #494. --- dist/gridstack.all.js | 6 +++--- dist/gridstack.jQueryUI.js | 4 ++++ dist/gridstack.jQueryUI.min.js | 2 +- dist/gridstack.js | 1 + dist/gridstack.min.js | 4 ++-- dist/gridstack.min.map | 2 +- doc/CHANGES.md | 3 ++- doc/README.md | 1 + src/gridstack.jQueryUI.js | 4 ++++ src/gridstack.js | 1 + 10 files changed, 20 insertions(+), 8 deletions(-) diff --git a/dist/gridstack.all.js b/dist/gridstack.all.js index feb10e75b..c4e0d0305 100644 --- a/dist/gridstack.all.js +++ b/dist/gridstack.all.js @@ -5,13 +5,13 @@ * gridstack.js may be freely distributed under the MIT license. * @preserve */ -!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}a(jQuery,_)}else a(jQuery,_)}(function(a,b){function c(a){this.grid=a}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-style-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-style-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())||"no"==a||"false"==a||"0"==a):Boolean(a)},_collisionNodeCheck:function(a){return a!=this.node&&g.isIntercepted(a,this.nn)},_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)},parseHeight:function(a){var c=a,d="px";if(c&&b.isString(c)){var e=c.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!e)throw new Error("Invalid height");d=e[2]||"px",c=parseFloat(e[1])}return{height:c,unit:d}}};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"),c.registeredPlugins=[],c.registerPlugin=function(a){c.registeredPlugins.push(a)},c.prototype.resizable=function(a,b){return this},c.prototype.draggable=function(a,b){return this},c.prototype.droppable=function(a,b){return this},c.prototype.isDroppable=function(a){return!1},c.prototype.on=function(a,b,c){return this};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,this._addedNodes=[],this._removedNodes=[]};i.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},i.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())},i.prototype.getNodeDataByDOMEl=function(a){return b.find(this.nodes,function(b){return a.get(0)===b.el.get(0)})},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(void 0===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||void 0===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&&void 0!==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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);if(d.data("_gridstack_node")){d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&void 0!==f._grid&&f._grid._triggerRemoveEvent(),a(c.helper).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate(),a(c.draggable).unbind("drag",p),a(c.draggable).removeData("_gridstack_node"),a(c.draggable).removeData("_gridstack_node_orig")})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);if(d.data("_gridstack_node")){d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&void 0!==f._grid&&f._grid._triggerRemoveEvent(),a(c.helper).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate(),a(c.draggable).unbind("drag",p),a(c.draggable).removeData("_gridstack_node"),a(c.draggable).removeData("_gridstack_node_orig")})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),resizeHandles:b.attr("data-gs-resize-handles"),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);if(d.data("_gridstack_node")){d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&void 0!==f._grid&&f._grid._triggerRemoveEvent(),a(c.helper).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate(),a(c.draggable).unbind("drag",p),a(c.draggable).removeData("_gridstack_node"),a(c.draggable).removeData("_gridstack_node_orig")})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;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=void 0===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(){var a=Array.prototype.slice.call(arguments,0);if(a[0]=void 0===a[0]?[]:[a[0]],a[1]=void 0===a[1]||a[1],!this._updateCounter){var b=a[0].concat(this.getDirtyNodes());this.onchange(b,a[1])}},i.prototype.cleanNodes=function(){this._updateCounter||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,c){if(a=this._prepareNode(a),void 0!==a.maxWidth&&(a.width=Math.min(a.width,a.maxWidth)),void 0!==a.maxHeight&&(a.height=Math.min(a.height,a.maxHeight)),void 0!==a.minWidth&&(a.width=Math.max(a.width,a.minWidth)),void 0!==a.minHeight&&(a.height=Math.max(a.height,a.minHeight)),a._id=++h,a._dirty=!0,a.autoPosition){this._sortNodes();for(var d=0;;++d){var e=d%this.width,f=Math.floor(d/this.width);if(!(e+a.width>this.width)&&!b.find(this.nodes,b.bind(g._isAddNodeIntercepted,{x:e,y:f,node:a}))){a.x=e,a.y=f;break}}}return this.nodes.push(a),void 0!==c&&c&&this._addedNodes.push(b.clone(a)),this._fixCollisions(a),this._packNodes(),this._notify(),a},i.prototype.removeNode=function(a,c){c=void 0===c||c,this._removedNodes.push(b.clone(a)),a._id=null,this.nodes=b.without(this.nodes,a),this._packNodes(),this._notify(a,c)},i.prototype.canMoveNode=function(c,d,e,f,g){if(!this.isNodeChangedPosition(c,d,e,f,g))return!1;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)}));if(void 0===j)return!0;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.isNodeChangedPosition=function(a,b,c,d,e){return"number"!=typeof b&&(b=a.x),"number"!=typeof c&&(c=a.y),"number"!=typeof d&&(d=a.width),"number"!=typeof e&&(e=a.height),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==a.minHeight&&(e=Math.max(e,a.minHeight)),a.x!=b||a.y!=c||a.width!=d||a.height!=e},i.prototype.moveNode=function(a,b,c,d,e,f){if(!this.isNodeChangedPosition(a,b,c,d,e))return a;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),void 0!==a.maxWidth&&(d=Math.min(d,a.maxWidth)),void 0!==a.maxHeight&&(e=Math.min(e,a.maxHeight)),void 0!==a.minWidth&&(d=Math.max(d,a.minWidth)),void 0!==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.lastTriedX=b,a.lastTriedY=c,a.lastTriedWidth=d,a.lastTriedHeight=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(d,e){var g,h,j=this;e=e||{},this.container=a(d),void 0!==e.handle_class&&(e.handleClass=e.handle_class,f("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,f("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,f("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,f("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,f("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,f("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,f("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,f("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,f("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,f("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var k=this.container.closest("."+e.itemClass).length>0;if(this.opts=b.defaults(e||{},{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:e.alwaysShowResizeHandle||!1,resizable:b.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:b.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item-content",scroll:!1,appendTo:"body"}),disableDrag:e.disableDrag||!1,disableResize:e.disableResize||!1,rtl:"auto",removable:!1,removeTimeout:2e3,verticalMarginUnit:"px",cellHeightUnit:"px",disableOneColumnMode:e.disableOneColumnMode||!1,oneColumnModeClass:e.oneColumnModeClass||"grid-stack-one-column-mode",ddPlugin:null}),!1===this.opts.ddPlugin?this.opts.ddPlugin=c:null===this.opts.ddPlugin&&(this.opts.ddPlugin=b.first(c.registeredPlugins)||c),this.dd=new this.opts.ddPlugin(this),"auto"===this.opts.rtl&&(this.opts.rtl="rtl"===this.container.css("direction")),this.opts.rtl&&this.container.addClass("grid-stack-rtl"),this.opts.isNested=k,h="auto"===this.opts.cellHeight,h?j.cellHeight(j.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),k&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new i(this.opts.width,function(a,c){c=void 0===c||c;var d=0;b.each(a,function(a){c&&null===a._id?a.el&&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),d=Math.max(d,a.y+a.height))}),j._updateStyles(d+10)},this.opts.float,this.opts.height),this.opts.auto){var l=[],m=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(b,c){c=a(c),l.push({el:c,i:parseInt(c.attr("data-gs-x"))+parseInt(c.attr("data-gs-y"))*m.opts.width})}),b.chain(l).sortBy(function(a){return a.i}).each(function(a){j._prepareElement(a.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=a('
'+this.opts.placeholderText+"
").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=b.throttle(function(){j.cellHeight(j.cellWidth(),!1)},100),this.onResizeHandler=function(){if(h&&j._updateHeightsOnResize(),j._isOneColumnMode()&&!j.opts.disableOneColumnMode){if(g)return;j.container.addClass(j.opts.oneColumnModeClass),g=!0,j.grid._sortNodes(),b.each(j.grid.nodes,function(a){j.container.append(a.el),j.opts.staticGrid||(j.dd.draggable(a.el,"disable"),j.dd.resizable(a.el,"disable"),a.el.trigger("resize"))})}else{if(!g)return;if(j.container.removeClass(j.opts.oneColumnModeClass),g=!1,j.opts.staticGrid)return;b.each(j.grid.nodes,function(a){a.noMove||j.opts.disableDrag||j.dd.draggable(a.el,"enable"),a.noResize||j.opts.disableResize||j.dd.resizable(a.el,"enable"),a.el.trigger("resize")})}},a(window).resize(this.onResizeHandler),this.onResizeHandler(),!j.opts.staticGrid&&"string"==typeof j.opts.removable){var n=a(j.opts.removable);this.dd.isDroppable(n)||this.dd.droppable(n,{accept:"."+j.opts.itemClass}),this.dd.on(n,"dropover",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._setupRemovingTimeout(d)}).on(n,"dropout",function(b,c){var d=a(c.draggable);d.data("_gridstack_node")._grid===j&&j._clearRemovingTimeout(d)})}if(!j.opts.staticGrid&&j.opts.acceptWidgets){var o=null,p=function(a,b){var c=o,d=c.data("_gridstack_node"),e=j.getCellFromPixel(b.offset,!0),f=Math.max(0,e.x),g=Math.max(0,e.y);if(d._added){if(!j.grid.canMoveNode(d,f,g))return;j.grid.moveNode(d,f,g),j._updateContainerHeight()}else d._added=!0,d.el=c,d.x=f,d.y=g,j.grid.cleanNodes(),j.grid.beginUpdate(d),j.grid.addNode(d),j.container.append(j.placeholder),j.placeholder.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).show(),d.el=j.placeholder,d._beforeDragX=d.x,d._beforeDragY=d.y,j._updateContainerHeight()};this.dd.droppable(j.container,{accept:function(b){b=a(b);var c=b.data("_gridstack_node");return(!c||c._grid!==j)&&b.is(!0===j.opts.acceptWidgets?".grid-stack-item":j.opts.acceptWidgets)}}).on(j.container,"dropover",function(b,c){var d=(j.container.offset(),a(c.draggable)),e=j.cellWidth(),f=j.cellHeight(),g=d.data("_gridstack_node"),h=g?g.width:Math.ceil(d.outerWidth()/e),i=g?g.height:Math.ceil(d.outerHeight()/f);o=d;var k=j.grid._prepareNode({width:h,height:i,_added:!1,_temporary:!0});d.data("_gridstack_node",k),d.data("_gridstack_node_orig",g),d.on("drag",p)}).on(j.container,"dropout",function(b,c){var d=a(c.draggable);if(d.data("_gridstack_node")){d.unbind("drag",p);var e=d.data("_gridstack_node");e.el=null,j.grid.removeNode(e),j.placeholder.detach(),j._updateContainerHeight(),d.data("_gridstack_node",d.data("_gridstack_node_orig"))}}).on(j.container,"drop",function(b,c){j.placeholder.detach();var d=a(c.draggable).data("_gridstack_node");d._grid=j;var e=a(c.draggable).clone(!1);e.data("_gridstack_node",d);var f=a(c.draggable).data("_gridstack_node_orig");void 0!==f&&void 0!==f._grid&&f._grid._triggerRemoveEvent(),a(c.helper).remove(),d.el=e,j.placeholder.hide(),e.attr("data-gs-x",d.x).attr("data-gs-y",d.y).attr("data-gs-width",d.width).attr("data-gs-height",d.height).addClass(j.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),j.container.append(e),j._prepareElementsByNode(e,d),j._updateContainerHeight(),j.grid._addedNodes.push(d),j._triggerAddEvent(),j._triggerChangeEvent(),j.grid.endUpdate(),a(c.draggable).unbind("drag",p),a(c.draggable).removeData("_gridstack_node"),a(c.draggable).removeData("_gridstack_node_orig")})}};return j.prototype._triggerChangeEvent=function(a){var b=this.grid.getDirtyNodes(),c=!1,d=[];b&&b.length&&(d.push(b),c=!0),(c||!0===a)&&this.container.trigger("change",d)},j.prototype._triggerAddEvent=function(){this.grid._addedNodes&&this.grid._addedNodes.length>0&&(this.container.trigger("added",[b.map(this.grid._addedNodes,b.clone)]),this.grid._addedNodes=[])},j.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&this.grid._removedNodes.length>0&&(this.container.trigger("removed",[b.map(this.grid._removedNodes,b.clone)]),this.grid._removedNodes=[])},j.prototype._initStyles=function(){this._stylesId&&g.removeStylesheet(this._stylesId),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&&void 0!==this._styles){var b,c="."+this.opts._class+" ."+this.opts.itemClass,d=this;if(void 0===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;e=f.grid.width||k<0||!f.grid.float&&k>f.grid.getGridHeight()?c._temporaryRemoved||(!0===f.opts.removable&&f._setupRemovingTimeout(b),j=c._beforeDragX,k=c._beforeDragY,f.placeholder.detach(),f.placeholder.hide(),f.grid.removeNode(c),f._updateContainerHeight(),c._temporaryRemoved=!0):(f._clearRemovingTimeout(b),c._temporaryRemoved&&(f.grid.addNode(c),f.placeholder.attr("data-gs-x",j).attr("data-gs-y",k).attr("data-gs-width",h).attr("data-gs-height",i).show(),f.container.append(f.placeholder),c.el=f.placeholder,c._temporaryRemoved=!1));else if("resize"==a.type&&j<0)return;var l=void 0!==h?h:c.lastTriedWidth,m=void 0!==i?i:c.lastTriedHeight;!f.grid.canMoveNode(c,j,k,h,i)||c.lastTriedX===j&&c.lastTriedY===k&&c.lastTriedWidth===l&&c.lastTriedHeight===m||(c.lastTriedX=j,c.lastTriedY=k,c.lastTriedWidth=h,c.lastTriedHeight=i,f.grid.moveNode(c,j,k,h,i),f._updateContainerHeight())},h=function(g,h){f.container.append(f.placeholder);var i=a(this);f.grid.cleanNodes(),f.grid.beginUpdate(c),d=f.cellWidth();var j=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));e=f.container.height()/parseInt(f.container.attr("data-gs-current-height")),f.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(),c.el=f.placeholder,c._beforeDragX=c.x,c._beforeDragY=c.y,f.dd.resizable(b,"option","minWidth",d*(c.minWidth||1)),f.dd.resizable(b,"option","minHeight",j*(c.minHeight||1)),"resizestart"==g.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(d,e){var g=a(this);if(g.data("_gridstack_node")){var h=!1;if(f.placeholder.detach(),c.el=g,f.placeholder.hide(),c._isAboutToRemove){h=!0;b.data("_gridstack_node")._grid._triggerRemoveEvent(),b.removeData("_gridstack_node"),b.remove()}else f._clearRemovingTimeout(b),c._temporaryRemoved?(g.attr("data-gs-x",c._beforeDragX).attr("data-gs-y",c._beforeDragY).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style"),c.x=c._beforeDragX,c.y=c._beforeDragY,f.grid.addNode(c)):g.attr("data-gs-x",c.x).attr("data-gs-y",c.y).attr("data-gs-width",c.width).attr("data-gs-height",c.height).removeAttr("style");f._updateContainerHeight(),f._triggerChangeEvent(h),f.grid.endUpdate();var i=g.find(".grid-stack");i.length&&"resizestop"==d.type&&(i.each(function(b,c){a(c).data("gridstack").onResizeHandler()}),g.find(".grid-stack-item").trigger("resizestop"),g.find(".grid-stack-item").trigger("gsresizestop")),"resizestop"==d.type&&f.container.trigger("gsresizestop",g)}};this.dd.draggable(b,{start:h,stop:i,drag:g}).resizable(b,{start:h,stop:i,resize:g}),(c.noMove||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableDrag)&&this.dd.draggable(b,"disable"),(c.noResize||this._isOneColumnMode()&&!f.opts.disableOneColumnMode||this.opts.disableResize)&&this.dd.resizable(b,"disable"),b.attr("data-gs-locked",c.locked?"yes":null)},j.prototype._prepareElement=function(b,c){c=void 0!==c&&c;var d=this;b=a(b),b.addClass(this.opts.itemClass);var e=d.grid.addNode({x:b.attr("data-gs-x"),y:b.attr("data-gs-y"),width:b.attr("data-gs-width"),height:b.attr("data-gs-height"),maxWidth:b.attr("data-gs-max-width"),minWidth:b.attr("data-gs-min-width"),maxHeight:b.attr("data-gs-max-height"),minHeight:b.attr("data-gs-min-height"),autoPosition:g.toBool(b.attr("data-gs-auto-position")),noResize:g.toBool(b.attr("data-gs-no-resize")),noMove:g.toBool(b.attr("data-gs-no-move")),locked:g.toBool(b.attr("data-gs-locked")),resizeHandles:b.attr("data-gs-resize-handles"),el:b,id:b.attr("data-gs-id"),_grid:d},c);b.data("_gridstack_node",e),this._prepareElementsByNode(b,e)},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,h,i,j,k,l){return b=a(b),void 0!==c&&b.attr("data-gs-x",c),void 0!==d&&b.attr("data-gs-y",d),void 0!==e&&b.attr("data-gs-width",e),void 0!==f&&b.attr("data-gs-height",f),void 0!==g&&b.attr("data-gs-auto-position",g?"yes":null),void 0!==h&&b.attr("data-gs-min-width",h),void 0!==i&&b.attr("data-gs-max-width",i),void 0!==j&&b.attr("data-gs-min-height",j),void 0!==k&&b.attr("data-gs-max-height",k),void 0!==l&&b.attr("data-gs-id",l),this.container.append(b),this._prepareElement(b,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),b},j.prototype.makeWidget=function(b){return b=a(b),this._prepareElement(b,!0),this._triggerAddEvent(),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=void 0===c||c,b=a(b);var d=b.data("_gridstack_node");d||(d=this.grid.getNodeDataByDOMEl(b)),this.grid.removeNode(d,c),b.removeData("_gridstack_node"),this._updateContainerHeight(),c&&b.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},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(b){a(window).off("resize",this.onResizeHandler),this.disable(),void 0===b||b?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),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");void 0!==f&&null!==f&&(f.noResize=!c,f.noResize||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?d.dd.resizable(e,"disable"):d.dd.resizable(e,"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");void 0!==f&&null!==f&&(f.noMove=!c,f.noMove||d._isOneColumnMode()&&!d.opts.disableOneColumnMode?(d.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(d.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},j.prototype.enableMove=function(a,b){this.movable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableDrag=!a)},j.prototype.enableResize=function(a,b){this.resizable(this.container.children("."+this.opts.itemClass),a),b&&(this.opts.disableResize=!a)},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");void 0!==e&&null!==e&&(e.locked=c||!1,d.attr("data-gs-locked",e.locked?"yes":null))}),this},j.prototype.maxHeight=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxHeight=c||!1,d.attr("data-gs-max-height",c)))}),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");void 0!==e&&null!==e&&(isNaN(c)||(e.minHeight=c||!1,d.attr("data-gs-min-height",c)))}),this},j.prototype.maxWidth=function(b,c){return b=a(b),b.each(function(b,d){d=a(d);var e=d.data("_gridstack_node");void 0!==e&&null!==e&&(isNaN(c)||(e.maxWidth=c||!1,d.attr("data-gs-max-width",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");void 0!==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(void 0!==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&&void 0!==b?b:d.width,c=null!==c&&void 0!==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&&void 0!==b?b:d.x,c=null!==c&&void 0!==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&&void 0!==b?b:f.x,c=null!==c&&void 0!==c?c:f.y,d=null!==d&&void 0!==d?d:f.width,e=null!==e&&void 0!==e?e:f.height,this.grid.moveNode(f,b,c,d,e)})},j.prototype.verticalMargin=function(a,b){if(void 0===a)return this.opts.verticalMargin;var c=g.parseHeight(a);this.opts.verticalMarginUnit===c.unit&&this.opts.height===c.height||(this.opts.verticalMarginUnit=c.unit,this.opts.verticalMargin=c.height,b||this._updateStyles())},j.prototype.cellHeight=function(a,b){if(void 0===a){if(this.opts.cellHeight)return this.opts.cellHeight;var c=this.container.children("."+this.opts.itemClass).first();return Math.ceil(c.outerHeight()/c.attr("data-gs-height"))}var d=g.parseHeight(a);this.opts.cellHeightUnit===d.heightUnit&&this.opts.height===d.height||(this.opts.cellHeightUnit=d.unit,this.opts.cellHeight=d.height,b||this._updateStyles())},j.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},j.prototype.getCellFromPixel=function(a,b){var c=void 0!==b&&b?this.container.offset():this.container.position(),d=a.left-c.left,e=a.top-c.top,f=Math.floor(this.container.width()/this.opts.width),g=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(d/f),y:Math.floor(e/g)}},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=!0===a,this.enableMove(!a),this.enableResize(!a),this._setStaticClass()},j.prototype._setStaticClass=function(){!0===this.opts.staticGrid?this.container.addClass("grid-stack-static"):this.container.removeClass("grid-stack-static")},j.prototype._updateNodeWidths=function(a,b){this.grid._sortNodes(),this.grid.batchUpdate();for(var c={},d=0;d Date: Thu, 18 May 2017 15:23:07 +0200 Subject: [PATCH 36/38] Fix url to subscribe --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 38c3e5a75..1bf790473 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ gridstack.js News ===== Version 1.0 is coming! Check out the blog post here for more information: -[https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/](https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/) and [https://dylandreams.com](subscribe to the blog) for more gridstack news and tutorials. +[https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/](https://dylandreams.com/2017/04/26/gridstack-10-coming-soon/) and [subscribe to the blog](https://dylandreams.com) for more gridstack news and tutorials. Demo and examples From adfbfc0bd31338c1851ab4d7a6f2f162be3f7e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Mon, 29 May 2017 08:07:33 +0200 Subject: [PATCH 37/38] Cleanup --- src/gridstack.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index 8ce3b130f..070bd5f53 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -190,7 +190,7 @@ return _.find(this.nodes, function(n) { return el.get(0) === n.el.get(0); }); }; - GridStackEngine.prototype._fixCollisions = function(node, isClone) { + GridStackEngine.prototype._fixCollisions = function(node) { var self = this; this._sortNodes(-1); @@ -205,7 +205,8 @@ return; } - this.moveNode(collisionNode, collisionNode.x, node.y + node.height, collisionNode.width, collisionNode.height, true); + this.moveNode(collisionNode, collisionNode.x, node.y + node.height, + collisionNode.width, collisionNode.height, true); } }; @@ -368,7 +369,7 @@ return _.filter(this.nodes, function(n) { return n._dirty; }); }; - GridStackEngine.prototype.addNode = function(node, triggerAddEvent, isClone) { + GridStackEngine.prototype.addNode = function(node, triggerAddEvent) { node = this._prepareNode(node); if (typeof node.maxWidth != 'undefined') { node.width = Math.min(node.width, node.maxWidth); } @@ -401,7 +402,7 @@ this._addedNodes.push(_.clone(node)); } - this._fixCollisions(node, isClone); + this._fixCollisions(node); this._packNodes(); this._notify(); return node; @@ -449,7 +450,7 @@ return true; } - clone.moveNode(clonedNode, x, y, width, height, false, true); + clone.moveNode(clonedNode, x, y, width, height); var res = true; @@ -481,7 +482,7 @@ this.float, 0, _.map(this.nodes, function(n) { return $.extend({}, n); })); - clone.addNode(node, false, true); + clone.addNode(node); return clone.getGridHeight() <= this.height; }; @@ -502,7 +503,7 @@ return true; }; - GridStackEngine.prototype.moveNode = function(node, x, y, width, height, noPack, isClone) { + GridStackEngine.prototype.moveNode = function(node, x, y, width, height, noPack) { if (!this.isNodeChangedPosition(node, x, y, width, height)) { return node; } @@ -539,7 +540,7 @@ node = this._prepareNode(node, resizing); - this._fixCollisions(node, isClone); + this._fixCollisions(node); if (!noPack) { this._packNodes(); this._notify(); From 951d8fb5e14fef887e05ada7dccf488395aa896f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inga=20Br=C5=ABnava?= Date: Wed, 31 May 2017 07:35:36 +0200 Subject: [PATCH 38/38] No collision checking anymore --- src/gridstack.js | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/gridstack.js b/src/gridstack.js index 82bc1663c..15fd232e2 100644 --- a/src/gridstack.js +++ b/src/gridstack.js @@ -191,23 +191,23 @@ }; GridStackEngine.prototype._fixCollisions = function(node) { - var self = this; - this._sortNodes(-1); - - 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 collisionNode = _.find(this.nodes, _.bind(Utils._collisionNodeCheck, {node: node, nn: nn})); - if (typeof collisionNode == 'undefined') { - return; - } - - this.moveNode(collisionNode, collisionNode.x, node.y + node.height, - collisionNode.width, collisionNode.height, true); - } + // var self = this; + // this._sortNodes(-1); + + // 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 collisionNode = _.find(this.nodes, _.bind(Utils._collisionNodeCheck, {node: node, nn: nn})); + // if (typeof collisionNode == 'undefined') { + // return; + // } + + // this.moveNode(collisionNode, collisionNode.x, node.y + node.height, + // collisionNode.width, collisionNode.height, true); + // } }; GridStackEngine.prototype.whatIsHere = function(x, y, width, height) {