!function(t){if("function"==typeof define&&define.amd)define(["jquery","lodash"],t);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(t){}try{_=require("lodash")}catch(t){}t(jQuery,_)}else t(jQuery,_)}(function(c,g){var t=window,e=function(t,e,i){var o=function(){return console.warn("gridstack.js: Function `"+e+"` is deprecated as of v0.2.5 and has been replaced with `"+i+"`. It will be **completely** removed in v1.0."),t.apply(this,arguments)};return o.prototype=t.prototype,o},n=function(t,e){console.warn("gridstack.js: Option `"+t+"` is deprecated as of v0.2.5 and has been replaced with `"+e+"`. It will be **completely** removed in v1.0.")},r={isIntercepted:function(t,e){return!(t.x+t.width<=e.x||e.x+e.width<=t.x||t.y+t.height<=e.y||e.y+e.height<=t.y)},sort:function(t,e,i){return i=i||g.chain(t).map(function(t){return t.x+t.width}).max().value(),e=-1!=e?1:-1,g.sortBy(t,function(t){return e*(t.x+t.y*i)})},createStylesheet:function(t){var e=document.createElement("style");return e.setAttribute("type","text/css"),e.setAttribute("data-gs-style-id",t),e.styleSheet?e.styleSheet.cssText="":e.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(e),e.sheet},removeStylesheet:function(t){c("STYLE[data-gs-style-id="+t+"]").remove()},insertCSSRule:function(t,e,i,o){"function"==typeof t.insertRule?t.insertRule(e+"{"+i+"}",o):"function"==typeof t.addRule&&t.addRule(e,i,o)},toBool:function(t){return"boolean"==typeof t?t:"string"==typeof t?!(""===(t=t.toLowerCase())||"no"==t||"false"==t||"0"==t):Boolean(t)},_collisionNodeCheck:function(t){return t!=this.node&&r.isIntercepted(t,this.nn)},_didCollide:function(t){return r.isIntercepted({x:this.n.x,y:this.newY,width:this.n.width,height:this.n.height},t)},_isAddNodeIntercepted:function(t){return r.isIntercepted({x:this.x,y:this.y,width:this.node.width,height:this.node.height},t)},parseHeight:function(t){var e=t,i="px";if(e&&g.isString(e)){var o=e.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);if(!o)throw new Error("Invalid height");i=o[2]||"px",e=parseFloat(o[1])}return{height:e,unit:i}}};function u(t){this.grid=t}r.is_intercepted=e(r.isIntercepted,"is_intercepted","isIntercepted"),r.create_stylesheet=e(r.createStylesheet,"create_stylesheet","createStylesheet"),r.remove_stylesheet=e(r.removeStylesheet,"remove_stylesheet","removeStylesheet"),r.insert_css_rule=e(r.insertCSSRule,"insert_css_rule","insertCSSRule"),u.registeredPlugins=[],u.registerPlugin=function(t){u.registeredPlugins.push(t)},u.prototype.resizable=function(t,e){return this},u.prototype.draggable=function(t,e){return this},u.prototype.droppable=function(t,e){return this},u.prototype.isDroppable=function(t){return!1},u.prototype.on=function(t,e,i){return this};var s=0,_=function(t,e,i,o,a){this.width=t,this.float=i||!1,this.height=o||0,this.nodes=a||[],this.onchange=e||function(){},this._updateCounter=0,this._float=this.float,this._addedNodes=[],this._removedNodes=[]};_.prototype.batchUpdate=function(){this._updateCounter=1,this.float=!0},_.prototype.commit=function(){0!==this._updateCounter&&(this._updateCounter=0,this.float=this._float,this._packNodes(),this._notify())},_.prototype.getNodeDataByDOMEl=function(e){return g.find(this.nodes,function(t){return e.get(0)===t.el.get(0)})},_.prototype._fixCollisions=function(t){this._sortNodes(-1);var e=t,i=Boolean(g.find(this.nodes,function(t){return t.locked}));for(this.float||i||(e={x:0,y:t.y,width:this.width,height:t.height});;){var o=g.find(this.nodes,g.bind(r._collisionNodeCheck,{node:t,nn:e}));if(void 0===o)return;this.moveNode(o,o.x,t.y+t.height,o.width,o.height,!0)}},_.prototype.isAreaEmpty=function(t,e,i,o){var a={x:t||0,y:e||0,width:i||1,height:o||1},s=g.find(this.nodes,g.bind(function(t){return r.isIntercepted(t,a)},this));return null==s},_.prototype._sortNodes=function(t){this.nodes=r.sort(this.nodes,t,this.width)},_.prototype._packNodes=function(){this._sortNodes(),this.float?g.each(this.nodes,g.bind(function(t,e){if(!t._updating&&void 0!==t._origY&&t.y!=t._origY)for(var i=t.y;i>=t._origY;){g.chain(this.nodes).find(g.bind(r._didCollide,{n:t,newY:i})).value()||(t._dirty=!0,t.y=i),--i}},this)):g.each(this.nodes,g.bind(function(t,e){if(!t.locked)for(;0<t.y;){var i=t.y-1,o=0===e;if(0<e)o=void 0===g.chain(this.nodes).take(e).find(g.bind(r._didCollide,{n:t,newY:i})).value();if(!o)break;t._dirty=t.y!=i,t.y=i}},this))},_.prototype._prepareNode=function(t,e){return(t=g.defaults(t||{},{width:1,height:1,x:0,y:0})).x=parseInt(""+t.x),t.y=parseInt(""+t.y),t.width=parseInt(""+t.width),t.height=parseInt(""+t.height),t.autoPosition=t.autoPosition||!1,t.noResize=t.noResize||!1,t.noMove=t.noMove||!1,t.width>this.width?t.width=this.width:t.width<1&&(t.width=1),t.height<1&&(t.height=1),t.x<0&&(t.x=0),t.x+t.width>this.width&&(e?t.width=this.width-t.x:t.x=this.width-t.width),t.y<0&&(t.y=0),t},_.prototype._notify=function(){var t=Array.prototype.slice.call(arguments,0);if(t[0]=void 0===t[0]?[]:[t[0]],t[1]=void 0===t[1]||t[1],!this._updateCounter){var e=t[0].concat(this.getDirtyNodes());this.onchange(e,t[1])}},_.prototype.cleanNodes=function(){this._updateCounter||g.each(this.nodes,function(t){t._dirty=!1})},_.prototype.getDirtyNodes=function(){return g.filter(this.nodes,function(t){return t._dirty})},_.prototype.addNode=function(t,e){if(void 0!==(t=this._prepareNode(t)).maxWidth&&(t.width=Math.min(t.width,t.maxWidth)),void 0!==t.maxHeight&&(t.height=Math.min(t.height,t.maxHeight)),void 0!==t.minWidth&&(t.width=Math.max(t.width,t.minWidth)),void 0!==t.minHeight&&(t.height=Math.max(t.height,t.minHeight)),t._id=++s,t._dirty=!0,t.autoPosition){this._sortNodes();for(var i=0;;++i){var o=i%this.width,a=Math.floor(i/this.width);if(!(o+t.width>this.width)&&!g.find(this.nodes,g.bind(r._isAddNodeIntercepted,{x:o,y:a,node:t}))){t.x=o,t.y=a;break}}}return this.nodes.push(t),void 0!==e&&e&&this._addedNodes.push(g.clone(t)),this._fixCollisions(t),this._packNodes(),this._notify(),t},_.prototype.removeNode=function(t,e){e=void 0===e||e,this._removedNodes.push(g.clone(t)),t._id=null,this.nodes=g.without(this.nodes,t),this._packNodes(),this._notify(t,e)},_.prototype.canMoveNode=function(e,t,i,o,a){if(!this.isNodeChangedPosition(e,t,i,o,a))return!1;var s,r=Boolean(g.find(this.nodes,function(t){return t.locked}));if(!this.height&&!r)return!0;var d=new _(this.width,null,this.float,0,g.map(this.nodes,function(t){return t==e?s=c.extend({},t):c.extend({},t)}));if(void 0===s)return!0;d.moveNode(s,t,i,o,a);var n=!0;return r&&(n&=!Boolean(g.find(d.nodes,function(t){return t!=s&&Boolean(t.locked)&&Boolean(t._dirty)}))),this.height&&(n&=d.getGridHeight()<=this.height),n},_.prototype.canBePlacedWithRespectToHeight=function(t){if(!this.height)return!0;var e=new _(this.width,null,this.float,0,g.map(this.nodes,function(t){return c.extend({},t)}));return e.addNode(t),e.getGridHeight()<=this.height},_.prototype.isNodeChangedPosition=function(t,e,i,o,a){return"number"!=typeof e&&(e=t.x),"number"!=typeof i&&(i=t.y),"number"!=typeof o&&(o=t.width),"number"!=typeof a&&(a=t.height),void 0!==t.maxWidth&&(o=Math.min(o,t.maxWidth)),void 0!==t.maxHeight&&(a=Math.min(a,t.maxHeight)),void 0!==t.minWidth&&(o=Math.max(o,t.minWidth)),void 0!==t.minHeight&&(a=Math.max(a,t.minHeight)),t.x!=e||t.y!=i||t.width!=o||t.height!=a},_.prototype.moveNode=function(t,e,i,o,a,s){if(!this.isNodeChangedPosition(t,e,i,o,a))return t;if("number"!=typeof e&&(e=t.x),"number"!=typeof i&&(i=t.y),"number"!=typeof o&&(o=t.width),"number"!=typeof a&&(a=t.height),void 0!==t.maxWidth&&(o=Math.min(o,t.maxWidth)),void 0!==t.maxHeight&&(a=Math.min(a,t.maxHeight)),void 0!==t.minWidth&&(o=Math.max(o,t.minWidth)),void 0!==t.minHeight&&(a=Math.max(a,t.minHeight)),t.x==e&&t.y==i&&t.width==o&&t.height==a)return t;var r=t.width!=o;return t._dirty=!0,t.x=e,t.y=i,t.width=o,t.height=a,t.lastTriedX=e,t.lastTriedY=i,t.lastTriedWidth=o,t.lastTriedHeight=a,t=this._prepareNode(t,r),this._fixCollisions(t),s||(this._packNodes(),this._notify()),t},_.prototype.getGridHeight=function(){return g.reduce(this.nodes,function(t,e){return Math.max(t,e.y+e.height)},0)},_.prototype.beginUpdate=function(t){g.each(this.nodes,function(t){t._origY=t.y}),t._updating=!0},_.prototype.endUpdate=function(){g.each(this.nodes,function(t){t._origY=t.y});var t=g.find(this.nodes,function(t){return t._updating});t&&(t._updating=!1)};var i=function(t,e){var i,o,h=this;e=e||{},this.container=c(t),void 0!==e.handle_class&&(e.handleClass=e.handle_class,n("handle_class","handleClass")),void 0!==e.item_class&&(e.itemClass=e.item_class,n("item_class","itemClass")),void 0!==e.placeholder_class&&(e.placeholderClass=e.placeholder_class,n("placeholder_class","placeholderClass")),void 0!==e.placeholder_text&&(e.placeholderText=e.placeholder_text,n("placeholder_text","placeholderText")),void 0!==e.cell_height&&(e.cellHeight=e.cell_height,n("cell_height","cellHeight")),void 0!==e.vertical_margin&&(e.verticalMargin=e.vertical_margin,n("vertical_margin","verticalMargin")),void 0!==e.min_width&&(e.minWidth=e.min_width,n("min_width","minWidth")),void 0!==e.static_grid&&(e.staticGrid=e.static_grid,n("static_grid","staticGrid")),void 0!==e.is_nested&&(e.isNested=e.is_nested,n("is_nested","isNested")),void 0!==e.always_show_resize_handle&&(e.alwaysShowResizeHandle=e.always_show_resize_handle,n("always_show_resize_handle","alwaysShowResizeHandle")),e.itemClass=e.itemClass||"grid-stack-item";var a=0<this.container.closest("."+e.itemClass).length;if(this.opts=g.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",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:g.defaults(e.resizable||{},{autoHide:!e.alwaysShowResizeHandle,handles:"se"}),draggable:g.defaults(e.draggable||{},{handle:(e.handleClass?"."+e.handleClass:e.handle?e.handle:"")||".grid-stack-item",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}),!1===this.opts.ddPlugin?this.opts.ddPlugin=u:null===this.opts.ddPlugin&&(this.opts.ddPlugin=g.first(u.registeredPlugins)||u),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=a,(o="auto"===this.opts.cellHeight)?h.cellHeight(h.cellWidth(),!0):this.cellHeight(this.opts.cellHeight,!0),this.verticalMargin(this.opts.verticalMargin,!0),this.container.addClass(this.opts._class),this._setStaticClass(),a&&this.container.addClass("grid-stack-nested"),this._initStyles(),this.grid=new _(this.opts.width,function(t,e){e=void 0===e||e;var i=0;g.each(t,function(t){e&&null===t._id?t.el&&t.el.remove():(t.el.attr("data-gs-x",t.x).attr("data-gs-y",t.y).attr("data-gs-width",t.width).attr("data-gs-height",t.height),i=Math.max(i,t.y+t.height))}),h._updateStyles(i+10)},this.opts.float,this.opts.height),this.opts.auto){var s=[],r=this;this.container.children("."+this.opts.itemClass+":not(."+this.opts.placeholderClass+")").each(function(t,e){e=c(e),s.push({el:e,i:parseInt(e.attr("data-gs-x"))+parseInt(e.attr("data-gs-y"))*r.opts.width})}),g.chain(s).sortBy(function(t){return t.i}).each(function(t){h._prepareElement(t.el)}).value()}if(this.setAnimation(this.opts.animate),this.placeholder=c('<div class="'+this.opts.placeholderClass+" "+this.opts.itemClass+'"><div class="placeholder-content">'+this.opts.placeholderText+"</div></div>").hide(),this._updateContainerHeight(),this._updateHeightsOnResize=g.throttle(function(){h.cellHeight(h.cellWidth(),!1)},100),this.onResizeHandler=function(){if(o&&h._updateHeightsOnResize(),h._isOneColumnMode()){if(i)return;h.container.addClass(h.opts.oneColumnModeClass),i=!0,h.grid._sortNodes(),g.each(h.grid.nodes,function(t){h.container.append(t.el),h.opts.staticGrid||((t.noMove||h.opts.disableDrag)&&h.dd.draggable(t.el,"disable"),(t.noResize||h.opts.disableResize)&&h.dd.resizable(t.el,"disable"),t.el.trigger("resize"))})}else{if(!i)return;if(h.container.removeClass(h.opts.oneColumnModeClass),i=!1,h.opts.staticGrid)return;g.each(h.grid.nodes,function(t){t.noMove||h.opts.disableDrag||h.dd.draggable(t.el,"enable"),t.noResize||h.opts.disableResize||h.dd.resizable(t.el,"enable"),t.el.trigger("resize")})}},c(window).resize(this.onResizeHandler),this.onResizeHandler(),!h.opts.staticGrid&&"string"==typeof h.opts.removable){var d=c(h.opts.removable);this.dd.isDroppable(d)||this.dd.droppable(d,{accept:"."+h.opts.itemClass}),this.dd.on(d,"dropover",function(t,e){var i=c(e.draggable);i.data("_gridstack_node")._grid===h&&h._setupRemovingTimeout(i)}).on(d,"dropout",function(t,e){var i=c(e.draggable);i.data("_gridstack_node")._grid===h&&h._clearRemovingTimeout(i)})}if(!h.opts.staticGrid&&h.opts.acceptWidgets){var l=null,p=function(t,e){var i=l,o=i.data("_gridstack_node"),a=h.getCellFromPixel(e.offset,!0),s=Math.max(0,a.x),r=Math.max(0,a.y);if(o._added){if(!h.grid.canMoveNode(o,s,r))return;h.grid.moveNode(o,s,r),h._updateContainerHeight()}else o._added=!0,o.el=i,o.x=s,o.y=r,h.grid.cleanNodes(),h.grid.beginUpdate(o),h.grid.addNode(o),h.container.append(h.placeholder),h.placeholder.attr("data-gs-x",o.x).attr("data-gs-y",o.y).attr("data-gs-width",o.width).attr("data-gs-height",o.height).show(),o.el=h.placeholder,o._beforeDragX=o.x,o._beforeDragY=o.y,h._updateContainerHeight()};this.dd.droppable(h.container,{accept:function(t){var e=(t=c(t)).data("_gridstack_node");return(!e||e._grid!==h)&&t.is(!0===h.opts.acceptWidgets?".grid-stack-item":h.opts.acceptWidgets)}}).on(h.container,"dropover",function(t,e){h.container.offset();var i=c(e.draggable),o=h.cellWidth(),a=h.cellHeight(),s=i.data("_gridstack_node"),r=s?s.width:Math.ceil(i.outerWidth()/o),d=s?s.height:Math.ceil(i.outerHeight()/a);l=i;var n=h.grid._prepareNode({width:r,height:d,_added:!1,_temporary:!0});i.data("_gridstack_node",n),i.data("_gridstack_node_orig",s),i.on("drag",p)}).on(h.container,"dropout",function(t,e){var i=c(e.draggable);i.unbind("drag",p);var o=i.data("_gridstack_node");o.el=null,h.grid.removeNode(o),h.placeholder.detach(),h._updateContainerHeight(),i.data("_gridstack_node",i.data("_gridstack_node_orig"))}).on(h.container,"drop",function(t,e){h.placeholder.detach();var i=c(e.draggable).data("_gridstack_node");i._grid=h;var o=c(e.draggable).clone(!1);o.data("_gridstack_node",i),c(e.draggable).remove(),i.el=o,h.placeholder.hide(),o.attr("data-gs-x",i.x).attr("data-gs-y",i.y).attr("data-gs-width",i.width).attr("data-gs-height",i.height).addClass(h.opts.itemClass).removeAttr("style").enableSelection().removeData("draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled").unbind("drag",p),h.container.append(o),h._prepareElementsByNode(o,i),h._updateContainerHeight(),h._triggerChangeEvent(),h.grid.endUpdate()})}};return i.prototype._triggerChangeEvent=function(t){var e=this.grid.getDirtyNodes(),i=!1,o=[];e&&e.length&&(o.push(e),i=!0),(i||!0===t)&&this.container.trigger("change",o)},i.prototype._triggerAddEvent=function(){this.grid._addedNodes&&0<this.grid._addedNodes.length&&(this.container.trigger("added",[g.map(this.grid._addedNodes,g.clone)]),this.grid._addedNodes=[])},i.prototype._triggerRemoveEvent=function(){this.grid._removedNodes&&0<this.grid._removedNodes.length&&(this.container.trigger("removed",[g.map(this.grid._removedNodes,g.clone)]),this.grid._removedNodes=[])},i.prototype._initStyles=function(){this._stylesId&&r.removeStylesheet(this._stylesId),this._stylesId="gridstack-style-"+(1e5*Math.random()).toFixed(),this._styles=r.createStylesheet(this._stylesId),null!==this._styles&&(this._styles._max=0)},i.prototype._updateStyles=function(t){if(null!==this._styles&&void 0!==this._styles){var e,i="."+this.opts._class+" ."+this.opts.itemClass,a=this;if(void 0===t&&(t=this._styles._max,this._initStyles(),this._updateContainerHeight()),this.opts.cellHeight&&!(0!==this._styles._max&&t<=this._styles._max)){var o=c(".grid-stack",".grid-stack-container").attr("data-layout");if(e=this.opts.verticalMargin&&this.opts.cellHeightUnit!==this.opts.verticalMarginUnit?function(t,e){if(!t||!e){if("grid"==o||"masonry"==o){var i=t/parseInt(c(".grid-stack-item:first-child",".grid-stack").attr("data-gs-height"));return i=isNaN(i)?0:Math.floor(i)-1,a.opts.cellHeight*t+a.opts.verticalMargin*i+a.opts.cellHeightUnit}return a.opts.cellHeight*t+a.opts.verticalMargin*e+a.opts.cellHeightUnit}var o=c(".grid-stack",".grid-stack-container").attr("data-layout");if("grid"==o){i=t/parseInt(c(".grid-stack-item:first-child",".grid-stack").attr("data-gs-height"));return i=isNaN(i)?0:Math.floor(i)-1,"calc("+(a.opts.cellHeight*t+a.opts.cellHeightUnit)+" + "+(a.opts.verticalMargin*i+a.opts.verticalMarginUnit)+")"}return"calc("+(a.opts.cellHeight*t+a.opts.cellHeightUnit)+" + "+(a.opts.verticalMargin*e+a.opts.verticalMarginUnit)+")"}:function(t,e){if("grid"==o){var i=t/parseInt(c(".grid-stack-item:first-child",".grid-stack").attr("data-gs-height"));return i=isNaN(i)?0:Math.floor(i)-1,a.opts.cellHeight*t+a.opts.verticalMargin*i}return a.opts.cellHeight*t+a.opts.verticalMargin*e},0===this._styles._max&&r.insertCSSRule(this._styles,i,"min-height: "+e(1,0)+a.opts.verticalMarginUnit+";",0),t>this._styles._max){for(var s=this._styles._max;s<t;++s)r.insertCSSRule(this._styles,i+'[data-gs-height="'+(s+1)+'"]',"height: "+e(s+1,s)+a.opts.verticalMarginUnit+";",s),r.insertCSSRule(this._styles,i+'[data-gs-min-height="'+(s+1)+'"]',"min-height: "+e(s+1,s)+a.opts.verticalMarginUnit+";",s),r.insertCSSRule(this._styles,i+'[data-gs-max-height="'+(s+1)+'"]',"max-height: "+e(s+1,s)+a.opts.verticalMargin+";",s),r.insertCSSRule(this._styles,i+'[data-gs-y="'+s+'"]',"top: "+(e(s,s)+a.opts.verticalMargin)+a.opts.verticalMarginUnit+";",s);this._styles._max=t}}}},i.prototype._updateContainerHeight=function(){if(!this.grid._updateCounter){var t=this.grid.getGridHeight();this.container.attr("data-gs-current-height",t),this.opts.cellHeight&&(this.opts.verticalMargin?this.opts.cellHeightUnit===this.opts.verticalMarginUnit?this.container.css("height",t*(this.opts.cellHeight+this.opts.verticalMargin)-this.opts.verticalMargin+this.opts.cellHeightUnit):this.container.css("height","calc("+(t*this.opts.cellHeight+this.opts.cellHeightUnit)+" + "+(t*(this.opts.verticalMargin-1)+this.opts.verticalMarginUnit)+")"):this.container.css("height",t*this.opts.cellHeight+this.opts.cellHeightUnit))}},i.prototype._isOneColumnMode=function(){return(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)<=this.opts.minWidth},i.prototype._setupRemovingTimeout=function(t){var e=c(t).data("_gridstack_node");!e._removeTimeout&&this.opts.removable&&(e._removeTimeout=setTimeout(function(){t.addClass("grid-stack-item-removing"),e._isAboutToRemove=!0},this.opts.removeTimeout))},i.prototype._clearRemovingTimeout=function(t){var e=c(t).data("_gridstack_node");e._removeTimeout&&(clearTimeout(e._removeTimeout),e._removeTimeout=null,t.removeClass("grid-stack-item-removing"),e._isAboutToRemove=!1)},i.prototype._prepareElementsByNode=function(n,h){if(void 0!==c.ui){var l,p,g=this,t=function(t,e){var i,o,a=Math.round(e.position.left/l),s=Math.floor((e.position.top+p/2)/p);if("drag"!=t.type&&(i=Math.round(e.size.width/l),o=Math.round(e.size.height/p)),"drag"==t.type)a<0||a>=g.grid.width||s<0?(!0===g.opts.removable&&g._setupRemovingTimeout(n),a=h._beforeDragX,s=h._beforeDragY,g.placeholder.detach(),g.placeholder.hide(),g.grid.removeNode(h),g._updateContainerHeight(),h._temporaryRemoved=!0):(g._clearRemovingTimeout(n),h._temporaryRemoved&&(g.grid.addNode(h),g.placeholder.attr("data-gs-x",a).attr("data-gs-y",s).attr("data-gs-width",i).attr("data-gs-height",o).show(),g.container.append(g.placeholder),h.el=g.placeholder,h._temporaryRemoved=!1));else if("resize"==t.type&&a<0)return;var r=void 0!==i?i:h.lastTriedWidth,d=void 0!==o?o:h.lastTriedHeight;!g.grid.canMoveNode(h,a,s,i,o)||h.lastTriedX===a&&h.lastTriedY===s&&h.lastTriedWidth===r&&h.lastTriedHeight===d||(h.lastTriedX=a,h.lastTriedY=s,h.lastTriedWidth=i,h.lastTriedHeight=o,g.grid.moveNode(h,a,s,i,o),g._updateContainerHeight())},e=function(t,e){g.container.append(g.placeholder);var i=c(this);g.grid.cleanNodes(),g.grid.beginUpdate(h),l=g.cellWidth();var o=Math.ceil(i.outerHeight()/i.attr("data-gs-height"));p=g.container.height()/parseInt(g.container.attr("data-gs-current-height")),g.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(),h.el=g.placeholder,h._beforeDragX=h.x,h._beforeDragY=h.y,g.dd.resizable(n,"option","minWidth",l*(h.minWidth||1)),g.dd.resizable(n,"option","minHeight",o*(h.minHeight||1)),"resizestart"==t.type&&i.find(".grid-stack-item").trigger("resizestart")},i=function(t,e){var i=e.element;"resizestop"==t.type&&setTimeout(function(){i.attr("data-item-height-ratio",i.height()),i.attr("data-item-width-ratio",i.width())},500);var o=c(this);if(o.data("_gridstack_node")){var a=!1;g.placeholder.detach(),h.el=o,g.placeholder.hide(),h._isAboutToRemove?(a=!0,n.removeData("_gridstack_node"),n.remove()):(g._clearRemovingTimeout(n),h._temporaryRemoved?(o.attr("data-gs-x",h._beforeDragX).attr("data-gs-y",h._beforeDragY).attr("data-gs-width",h.width).attr("data-gs-height",h.height).removeAttr("style"),h.x=h._beforeDragX,h.y=h._beforeDragY,g.grid.addNode(h)):o.attr("data-gs-x",h.x).attr("data-gs-y",h.y).attr("data-gs-width",h.width).attr("data-gs-height",h.height).removeAttr("style")),g._updateContainerHeight(),g._triggerChangeEvent(a),g.grid.endUpdate();var s=o.find(".grid-stack");s.length&&"resizestop"==t.type&&(s.each(function(t,e){c(e).data("gridstack").onResizeHandler()}),o.find(".grid-stack-item").trigger("resizestop"))}};this.dd.draggable(n,{start:e,stop:i,drag:t}).resizable(n,{start:e,stop:i,resize:t}),(h.noMove||this._isOneColumnMode()||this.opts.disableDrag)&&this.dd.draggable(n,"disable"),(h.noResize||this._isOneColumnMode()||this.opts.disableResize)&&this.dd.resizable(n,"disable"),n.attr("data-gs-locked",h.locked?"yes":null)}},i.prototype._prepareElement=function(t,e){e=void 0!==e&&e;(t=c(t)).addClass(this.opts.itemClass);var i=this.grid.addNode({x:t.attr("data-gs-x"),y:t.attr("data-gs-y"),width:t.attr("data-gs-width"),height:t.attr("data-gs-height"),maxWidth:t.attr("data-gs-max-width"),minWidth:t.attr("data-gs-min-width"),maxHeight:t.attr("data-gs-max-height"),minHeight:t.attr("data-gs-min-height"),autoPosition:r.toBool(t.attr("data-gs-auto-position")),noResize:r.toBool(t.attr("data-gs-no-resize")),noMove:r.toBool(t.attr("data-gs-no-move")),locked:r.toBool(t.attr("data-gs-locked")),el:t,id:t.attr("data-gs-id"),_grid:this},e);t.data("_gridstack_node",i),this._prepareElementsByNode(t,i)},i.prototype.setAnimation=function(t){t?this.container.addClass("grid-stack-animate"):this.container.removeClass("grid-stack-animate")},i.prototype.addWidget=function(t,e,i,o,a,s,r,d,n,h,l){return t=c(t),void 0!==e&&t.attr("data-gs-x",e),void 0!==i&&t.attr("data-gs-y",i),void 0!==o&&t.attr("data-gs-width",o),void 0!==a&&t.attr("data-gs-height",a),void 0!==s&&t.attr("data-gs-auto-position",s?"yes":null),void 0!==r&&t.attr("data-gs-min-width",r),void 0!==d&&t.attr("data-gs-max-width",d),void 0!==n&&t.attr("data-gs-min-height",n),void 0!==h&&t.attr("data-gs-max-height",h),void 0!==l&&t.attr("data-gs-id",l),this.container.append(t),this._prepareElement(t,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),t},i.prototype.makeWidget=function(t){return t=c(t),this._prepareElement(t,!0),this._triggerAddEvent(),this._updateContainerHeight(),this._triggerChangeEvent(!0),t},i.prototype.willItFit=function(t,e,i,o,a){var s={x:t,y:e,width:i,height:o,autoPosition:a};return this.grid.canBePlacedWithRespectToHeight(s)},i.prototype.removeWidget=function(t,e){e=void 0===e||e;var i=(t=c(t)).data("_gridstack_node");i||(i=this.grid.getNodeDataByDOMEl(t)),this.grid.removeNode(i,e),t.removeData("_gridstack_node"),this._updateContainerHeight(),e&&t.remove(),this._triggerChangeEvent(!0),this._triggerRemoveEvent()},i.prototype.removeAll=function(e){g.each(this.grid.nodes,g.bind(function(t){this.removeWidget(t.el,e)},this)),this.grid.nodes=[],this._updateContainerHeight()},i.prototype.destroy=function(t){c(window).off("resize",this.onResizeHandler),this.disable(),void 0===t||t?this.container.remove():(this.removeAll(!1),this.container.removeData("gridstack")),r.removeStylesheet(this._stylesId),this.grid&&(this.grid=null)},i.prototype.resizable=function(t,o){var a=this;return(t=c(t)).each(function(t,e){var i=(e=c(e)).data("_gridstack_node");null!=i&&void 0!==c.ui&&(i.noResize=!o,i.noResize||a._isOneColumnMode()?a.dd.resizable(e,"disable"):a.dd.resizable(e,"enable"))}),this},i.prototype.movable=function(t,o){var a=this;return(t=c(t)).each(function(t,e){var i=(e=c(e)).data("_gridstack_node");null!=i&&void 0!==c.ui&&(i.noMove=!o,i.noMove||a._isOneColumnMode()?(a.dd.draggable(e,"disable"),e.removeClass("ui-draggable-handle")):(a.dd.draggable(e,"enable"),e.addClass("ui-draggable-handle")))}),this},i.prototype.enableMove=function(t,e){this.movable(this.container.children("."+this.opts.itemClass),t),e&&(this.opts.disableDrag=!t)},i.prototype.enableResize=function(t,e){this.resizable(this.container.children("."+this.opts.itemClass),t),e&&(this.opts.disableResize=!t)},i.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")},i.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")},i.prototype.locked=function(t,o){return(t=c(t)).each(function(t,e){var i=(e=c(e)).data("_gridstack_node");null!=i&&(i.locked=o||!1,e.attr("data-gs-locked",i.locked?"yes":null))}),this},i.prototype.maxHeight=function(t,o){return(t=c(t)).each(function(t,e){var i=(e=c(e)).data("_gridstack_node");null!=i&&(isNaN(o)||(i.maxHeight=o||!1,e.attr("data-gs-max-height",o)))}),this},i.prototype.minHeight=function(t,o){return(t=c(t)).each(function(t,e){var i=(e=c(e)).data("_gridstack_node");null!=i&&(isNaN(o)||(i.minHeight=o||!1,e.attr("data-gs-min-height",o)))}),this},i.prototype.maxWidth=function(t,o){return(t=c(t)).each(function(t,e){var i=(e=c(e)).data("_gridstack_node");null!=i&&(isNaN(o)||(i.maxWidth=o||!1,e.attr("data-gs-max-width",o)))}),this},i.prototype.minWidth=function(t,o){return(t=c(t)).each(function(t,e){var i=(e=c(e)).data("_gridstack_node");null!=i&&(isNaN(o)||(i.minWidth=o||!1,e.attr("data-gs-min-width",o)))}),this},i.prototype._updateElement=function(t,e){var i=(t=c(t).first()).data("_gridstack_node");if(null!=i){var o=this;o.grid.cleanNodes(),o.grid.beginUpdate(i),e.call(this,t,i),o._updateContainerHeight(),o._triggerChangeEvent(),o.grid.endUpdate()}},i.prototype.resize=function(t,i,o){this._updateElement(t,function(t,e){i=null!=i?i:e.width,o=null!=o?o:e.height,this.grid.moveNode(e,e.x,e.y,i,o)})},i.prototype.move=function(t,i,o){this._updateElement(t,function(t,e){i=null!=i?i:e.x,o=null!=o?o:e.y,this.grid.moveNode(e,i,o,e.width,e.height)})},i.prototype.update=function(t,i,o,a,s){this._updateElement(t,function(t,e){i=null!=i?i:e.x,o=null!=o?o:e.y,a=null!=a?a:e.width,s=null!=s?s:e.height,this.grid.moveNode(e,i,o,a,s)})},i.prototype.verticalMargin=function(t,e){if(void 0===t)return this.opts.verticalMargin;var i=r.parseHeight(t);this.opts.verticalMarginUnit=i.unit,this.opts.verticalMargin=i.height,e||this._updateStyles()},i.prototype.cellHeight=function(t,e){if(void 0===t){if(this.opts.cellHeight)return this.opts.cellHeight;var i=this.container.children("."+this.opts.itemClass).first();return Math.ceil(i.outerHeight()/i.attr("data-gs-height"))}var o=r.parseHeight(t);this.opts.cellHeightUnit===o.heightUnit&&this.opts.height===o.height||(this.opts.cellHeightUnit=o.unit,this.opts.cellHeight=o.height,e||this._updateStyles())},i.prototype.cellWidth=function(){return Math.round(this.container.outerWidth()/this.opts.width)},i.prototype.getCellFromPixel=function(t,e){var i=void 0!==e&&e?this.container.offset():this.container.position(),o=t.left-i.left,a=t.top-i.top,s=Math.floor(this.container.width()/this.opts.width),r=Math.floor(this.container.height()/parseInt(this.container.attr("data-gs-current-height")));return{x:Math.floor(o/s),y:Math.floor(a/r)}},i.prototype.batchUpdate=function(){this.grid.batchUpdate()},i.prototype.commit=function(){this.grid.commit(),this._updateContainerHeight()},i.prototype.isAreaEmpty=function(t,e,i,o){return this.grid.isAreaEmpty(t,e,i,o)},i.prototype.setStatic=function(t){this.opts.staticGrid=!0===t,this.enableMove(!t),this.enableResize(!t),this._setStaticClass()},i.prototype._setStaticClass=function(){var t="grid-stack-static";!0===this.opts.staticGrid?this.container.addClass(t):this.container.removeClass(t)},i.prototype._updateNodeWidths=function(t,e){this.grid._sortNodes(),this.grid.batchUpdate();for(var i={},o=0;o<this.grid.nodes.length;o++)i=this.grid.nodes[o],this.update(i.el,Math.round(i.x*e/t),void 0,Math.round(i.width*e/t),void 0);this.grid.commit()},i.prototype.setGridWidth=function(t,e){this.container.removeClass("grid-stack-"+this.opts.width),!0!==e&&this._updateNodeWidths(this.opts.width,t),this.opts.width=t,this.grid.width=t,this.container.addClass("grid-stack-"+t)},_.prototype.batch_update=e(_.prototype.batchUpdate),_.prototype._fix_collisions=e(_.prototype._fixCollisions,"_fix_collisions","_fixCollisions"),_.prototype.is_area_empty=e(_.prototype.isAreaEmpty,"is_area_empty","isAreaEmpty"),_.prototype._sort_nodes=e(_.prototype._sortNodes,"_sort_nodes","_sortNodes"),_.prototype._pack_nodes=e(_.prototype._packNodes,"_pack_nodes","_packNodes"),_.prototype._prepare_node=e(_.prototype._prepareNode,"_prepare_node","_prepareNode"),_.prototype.clean_nodes=e(_.prototype.cleanNodes,"clean_nodes","cleanNodes"),_.prototype.get_dirty_nodes=e(_.prototype.getDirtyNodes,"get_dirty_nodes","getDirtyNodes"),_.prototype.add_node=e(_.prototype.addNode,"add_node","addNode, "),_.prototype.remove_node=e(_.prototype.removeNode,"remove_node","removeNode"),_.prototype.can_move_node=e(_.prototype.canMoveNode,"can_move_node","canMoveNode"),_.prototype.move_node=e(_.prototype.moveNode,"move_node","moveNode"),_.prototype.get_grid_height=e(_.prototype.getGridHeight,"get_grid_height","getGridHeight"),_.prototype.begin_update=e(_.prototype.beginUpdate,"begin_update","beginUpdate"),_.prototype.end_update=e(_.prototype.endUpdate,"end_update","endUpdate"),_.prototype.can_be_placed_with_respect_to_height=e(_.prototype.canBePlacedWithRespectToHeight,"can_be_placed_with_respect_to_height","canBePlacedWithRespectToHeight"),i.prototype._trigger_change_event=e(i.prototype._triggerChangeEvent,"_trigger_change_event","_triggerChangeEvent"),i.prototype._init_styles=e(i.prototype._initStyles,"_init_styles","_initStyles"),i.prototype._update_styles=e(i.prototype._updateStyles,"_update_styles","_updateStyles"),i.prototype._update_container_height=e(i.prototype._updateContainerHeight,"_update_container_height","_updateContainerHeight"),i.prototype._is_one_column_mode=e(i.prototype._isOneColumnMode,"_is_one_column_mode","_isOneColumnMode"),i.prototype._prepare_element=e(i.prototype._prepareElement,"_prepare_element","_prepareElement"),i.prototype.set_animation=e(i.prototype.setAnimation,"set_animation","setAnimation"),i.prototype.add_widget=e(i.prototype.addWidget,"add_widget","addWidget"),i.prototype.make_widget=e(i.prototype.makeWidget,"make_widget","makeWidget"),i.prototype.will_it_fit=e(i.prototype.willItFit,"will_it_fit","willItFit"),i.prototype.remove_widget=e(i.prototype.removeWidget,"remove_widget","removeWidget"),i.prototype.remove_all=e(i.prototype.removeAll,"remove_all","removeAll"),i.prototype.min_height=e(i.prototype.minHeight,"min_height","minHeight"),i.prototype.min_width=e(i.prototype.minWidth,"min_width","minWidth"),i.prototype._update_element=e(i.prototype._updateElement,"_update_element","_updateElement"),i.prototype.cell_height=e(i.prototype.cellHeight,"cell_height","cellHeight"),i.prototype.cell_width=e(i.prototype.cellWidth,"cell_width","cellWidth"),i.prototype.get_cell_from_pixel=e(i.prototype.getCellFromPixel,"get_cell_from_pixel","getCellFromPixel"),i.prototype.batch_update=e(i.prototype.batchUpdate,"batch_update","batchUpdate"),i.prototype.is_area_empty=e(i.prototype.isAreaEmpty,"is_area_empty","isAreaEmpty"),i.prototype.set_static=e(i.prototype.setStatic,"set_static","setStatic"),i.prototype._set_static_class=e(i.prototype._setStaticClass,"_set_static_class","_setStaticClass"),t.GridStackUI=i,t.GridStackUI.Utils=r,t.GridStackUI.Engine=_,t.GridStackUI.GridStackDragDropPlugin=u,c.fn.gridstack=function(t){return this.each(function(){c(this).data("gridstack",new i(this,t))})},t.GridStackUI});