From 6375d18d4c3cb255c9d4fa2d8c3d6ac874e8049d Mon Sep 17 00:00:00 2001 From: Kevin Gravier Date: Wed, 31 Aug 2016 16:56:21 -0400 Subject: [PATCH 1/4] Added Min/Max Width/Height --- dist/gridstack-angular.js | 26 +++++++++++++++++++++++++- dist/gridstack-angular.min.js | 2 +- src/gridstackitem.directive.js | 26 +++++++++++++++++++++++++- 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/dist/gridstack-angular.js b/dist/gridstack-angular.js index 259048a..6341097 100644 --- a/dist/gridstack-angular.js +++ b/dist/gridstack-angular.js @@ -117,7 +117,11 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { gsItemY: '=', gsItemWidth: '=', gsItemHeight: '=', - gsItemAutopos: '=' + gsItemAutopos: '=', + gsItemMinHeight: '=', + gsItemMaxHeight: '=', + gsItemMinWidth: '=', + gsItemMaxWidth: '=' }, link: function(scope, element, attrs, controller) { if (scope.gsItemId) { @@ -127,6 +131,10 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { $(element).attr('data-gs-y', scope.gsItemY); $(element).attr('data-gs-width', scope.gsItemWidth); $(element).attr('data-gs-height', scope.gsItemHeight); + $(element).attr('data-gs-min-width', scope.gsItemMinWidth); + $(element).attr('data-gs-min-height', scope.gsItemMinHeight); + $(element).attr('data-gs-max-width', scope.gsItemMaxWidth); + $(element).attr('data-gs-max-height', scope.gsItemMaxHeight); $(element).attr('data-gs-auto-position', scope.gsItemAutopos); var widget = controller.addItem(element); var item = element.data('_gridstack_node'); @@ -154,6 +162,22 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { scope.gsItemHeight = Number(val); }); + scope.$watch(function() { return $(element).attr('data-gs-min-width'); }, function(val) { + scope.gsItemMinWidth = Number(val); + }); + + scope.$watch(function() { return $(element).attr('data-gs-min-height'); }, function(val) { + scope.gsItemMinHeight = Number(val); + }); + + scope.$watch(function() { return $(element).attr('data-gs-max-width'); }, function(val) { + scope.gsItemMaxWidth = Number(val); + }); + + scope.$watch(function() { return $(element).attr('data-gs-max-height'); }, function(val) { + scope.gsItemMaxHeight = Number(val); + }); + element.bind('$destroy', function() { var item = element.data('_gridstack_node'); scope.onItemRemoved({item: item}); diff --git a/dist/gridstack-angular.min.js b/dist/gridstack-angular.min.js index aad166b..9335a07 100644 --- a/dist/gridstack-angular.min.js +++ b/dist/gridstack-angular.min.js @@ -7,4 +7,4 @@ */ !function(){"use strict";angular.module("gridstack-angular",[]);var t=angular.module("gridstack-angular");t.controller("GridstackController",["$scope",function(t){var r=null;this.init=function(t,n){return r=t.gridstack(n).data("gridstack")},this.removeItem=function(t){return r?r.removeWidget(t,!1):null},this.addItem=function(t){return r?(r.makeWidget(t),t):null}}])}(); !function(){"use strict";var n=angular.module("gridstack-angular");n.directive("gridstack",["$timeout",function(n){return{restrict:"A",controller:"GridstackController",scope:{onChange:"&",onDragStart:"&",onDragStop:"&",onResizeStart:"&",onResizeStop:"&",gridstackHandler:"=?",options:"="},link:function(t,o,e,i,r){var a=i.init(o,t.options);t.gridstackHandler=a,o.on("change",function(o,e){n(function(){t.$apply(),t.onChange({event:o,items:e})})}),o.on("dragstart",function(n,o){t.onDragStart({event:n,ui:o})}),o.on("dragstop",function(o,e){n(function(){t.$apply(),t.onDragStop({event:o,ui:e})})}),o.on("resizestart",function(n,o){t.onResizeStart({event:n,ui:o})}),o.on("resizestop",function(o,e){n(function(){t.$apply(),t.onResizeStop({event:o,ui:e})})})}}}])}(); -!function(){"use strict";var t=angular.module("gridstack-angular");t.directive("gridstackItem",["$timeout",function(t){return{restrict:"A",controller:"GridstackController",require:"^gridstack",scope:{gridstackItem:"=",onItemAdded:"&",onItemRemoved:"&",gsItemId:"=?",gsItemX:"=",gsItemY:"=",gsItemWidth:"=",gsItemHeight:"=",gsItemAutopos:"="},link:function(e,a,r,n){e.gsItemId&&$(a).attr("data-gs-id",e.gsItemId),$(a).attr("data-gs-x",e.gsItemX),$(a).attr("data-gs-y",e.gsItemY),$(a).attr("data-gs-width",e.gsItemWidth),$(a).attr("data-gs-height",e.gsItemHeight),$(a).attr("data-gs-auto-position",e.gsItemAutopos);var d=(n.addItem(a),a.data("_gridstack_node"));t(function(){e.onItemAdded({item:d})}),e.$watch(function(){return $(a).attr("data-gs-id")},function(t){e.gsItemId=t}),e.$watch(function(){return $(a).attr("data-gs-x")},function(t){e.gsItemX=Number(t)}),e.$watch(function(){return $(a).attr("data-gs-y")},function(t){e.gsItemY=Number(t)}),e.$watch(function(){return $(a).attr("data-gs-width")},function(t){e.gsItemWidth=Number(t)}),e.$watch(function(){return $(a).attr("data-gs-height")},function(t){e.gsItemHeight=Number(t)}),a.bind("$destroy",function(){var t=a.data("_gridstack_node");e.onItemRemoved({item:t}),n.removeItem(a)})}}}])}(); \ No newline at end of file +!function(){"use strict";var t=angular.module("gridstack-angular");t.directive("gridstackItem",["$timeout",function(t){return{restrict:"A",controller:"GridstackController",require:"^gridstack",scope:{gridstackItem:"=",onItemAdded:"&",onItemRemoved:"&",gsItemId:"=?",gsItemX:"=",gsItemY:"=",gsItemWidth:"=",gsItemHeight:"=",gsItemAutopos:"=",gsItemMinHeight:"=",gsItemMaxHeight:"=",gsItemMinWidth:"=",gsItemMaxWidth:"="},link:function(a,e,i,n){a.gsItemId&&$(e).attr("data-gs-id",a.gsItemId),$(e).attr("data-gs-x",a.gsItemX),$(e).attr("data-gs-y",a.gsItemY),$(e).attr("data-gs-width",a.gsItemWidth),$(e).attr("data-gs-height",a.gsItemHeight),$(e).attr("data-gs-min-width",a.gsItemMinWidth),$(e).attr("data-gs-min-height",a.gsItemMinHeight),$(e).attr("data-gs-max-width",a.gsItemMaxWidth),$(e).attr("data-gs-max-height",a.gsItemMaxHeight),$(e).attr("data-gs-auto-position",a.gsItemAutopos);var g=(n.addItem(e),e.data("_gridstack_node"));t(function(){a.onItemAdded({item:g})}),a.$watch(function(){return $(e).attr("data-gs-id")},function(t){a.gsItemId=t}),a.$watch(function(){return $(e).attr("data-gs-x")},function(t){a.gsItemX=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-y")},function(t){a.gsItemY=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-width")},function(t){a.gsItemWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-height")},function(t){a.gsItemHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-width")},function(t){a.gsItemMinWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-height")},function(t){a.gsItemMinHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-width")},function(t){a.gsItemMaxWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-height")},function(t){a.gsItemMaxHeight=Number(t)}),e.bind("$destroy",function(){var t=e.data("_gridstack_node");a.onItemRemoved({item:t}),n.removeItem(e)})}}}])}(); \ No newline at end of file diff --git a/src/gridstackitem.directive.js b/src/gridstackitem.directive.js index be3ad41..3bfd47f 100644 --- a/src/gridstackitem.directive.js +++ b/src/gridstackitem.directive.js @@ -18,7 +18,11 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { gsItemY: '=', gsItemWidth: '=', gsItemHeight: '=', - gsItemAutopos: '=' + gsItemAutopos: '=', + gsItemMinHeight: '=', + gsItemMaxHeight: '=', + gsItemMinWidth: '=', + gsItemMaxWidth: '=' }, link: function(scope, element, attrs, controller) { if (scope.gsItemId) { @@ -28,6 +32,10 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { $(element).attr('data-gs-y', scope.gsItemY); $(element).attr('data-gs-width', scope.gsItemWidth); $(element).attr('data-gs-height', scope.gsItemHeight); + $(element).attr('data-gs-min-width', scope.gsItemMinWidth); + $(element).attr('data-gs-min-height', scope.gsItemMinHeight); + $(element).attr('data-gs-max-width', scope.gsItemMaxWidth); + $(element).attr('data-gs-max-height', scope.gsItemMaxHeight); $(element).attr('data-gs-auto-position', scope.gsItemAutopos); var widget = controller.addItem(element); var item = element.data('_gridstack_node'); @@ -55,6 +63,22 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { scope.gsItemHeight = Number(val); }); + scope.$watch(function() { return $(element).attr('data-gs-min-width'); }, function(val) { + scope.gsItemMinWidth = Number(val); + }); + + scope.$watch(function() { return $(element).attr('data-gs-min-height'); }, function(val) { + scope.gsItemMinHeight = Number(val); + }); + + scope.$watch(function() { return $(element).attr('data-gs-max-width'); }, function(val) { + scope.gsItemMaxWidth = Number(val); + }); + + scope.$watch(function() { return $(element).attr('data-gs-max-height'); }, function(val) { + scope.gsItemMaxHeight = Number(val); + }); + element.bind('$destroy', function() { var item = element.data('_gridstack_node'); scope.onItemRemoved({item: item}); From b3e7edf09745fd2719256108e58998da2c61be7c Mon Sep 17 00:00:00 2001 From: Kevin Gravier Date: Thu, 1 Sep 2016 09:58:38 -0400 Subject: [PATCH 2/4] Made new properties optional --- dist/gridstack-angular.js | 8 ++++---- dist/gridstack-angular.min.js | 2 +- src/gridstackitem.directive.js | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dist/gridstack-angular.js b/dist/gridstack-angular.js index 6341097..25ad31a 100644 --- a/dist/gridstack-angular.js +++ b/dist/gridstack-angular.js @@ -118,10 +118,10 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { gsItemWidth: '=', gsItemHeight: '=', gsItemAutopos: '=', - gsItemMinHeight: '=', - gsItemMaxHeight: '=', - gsItemMinWidth: '=', - gsItemMaxWidth: '=' + gsItemMinHeight: '=?', + gsItemMaxHeight: '=?', + gsItemMinWidth: '=?', + gsItemMaxWidth: '=?' }, link: function(scope, element, attrs, controller) { if (scope.gsItemId) { diff --git a/dist/gridstack-angular.min.js b/dist/gridstack-angular.min.js index 9335a07..d4294e5 100644 --- a/dist/gridstack-angular.min.js +++ b/dist/gridstack-angular.min.js @@ -7,4 +7,4 @@ */ !function(){"use strict";angular.module("gridstack-angular",[]);var t=angular.module("gridstack-angular");t.controller("GridstackController",["$scope",function(t){var r=null;this.init=function(t,n){return r=t.gridstack(n).data("gridstack")},this.removeItem=function(t){return r?r.removeWidget(t,!1):null},this.addItem=function(t){return r?(r.makeWidget(t),t):null}}])}(); !function(){"use strict";var n=angular.module("gridstack-angular");n.directive("gridstack",["$timeout",function(n){return{restrict:"A",controller:"GridstackController",scope:{onChange:"&",onDragStart:"&",onDragStop:"&",onResizeStart:"&",onResizeStop:"&",gridstackHandler:"=?",options:"="},link:function(t,o,e,i,r){var a=i.init(o,t.options);t.gridstackHandler=a,o.on("change",function(o,e){n(function(){t.$apply(),t.onChange({event:o,items:e})})}),o.on("dragstart",function(n,o){t.onDragStart({event:n,ui:o})}),o.on("dragstop",function(o,e){n(function(){t.$apply(),t.onDragStop({event:o,ui:e})})}),o.on("resizestart",function(n,o){t.onResizeStart({event:n,ui:o})}),o.on("resizestop",function(o,e){n(function(){t.$apply(),t.onResizeStop({event:o,ui:e})})})}}}])}(); -!function(){"use strict";var t=angular.module("gridstack-angular");t.directive("gridstackItem",["$timeout",function(t){return{restrict:"A",controller:"GridstackController",require:"^gridstack",scope:{gridstackItem:"=",onItemAdded:"&",onItemRemoved:"&",gsItemId:"=?",gsItemX:"=",gsItemY:"=",gsItemWidth:"=",gsItemHeight:"=",gsItemAutopos:"=",gsItemMinHeight:"=",gsItemMaxHeight:"=",gsItemMinWidth:"=",gsItemMaxWidth:"="},link:function(a,e,i,n){a.gsItemId&&$(e).attr("data-gs-id",a.gsItemId),$(e).attr("data-gs-x",a.gsItemX),$(e).attr("data-gs-y",a.gsItemY),$(e).attr("data-gs-width",a.gsItemWidth),$(e).attr("data-gs-height",a.gsItemHeight),$(e).attr("data-gs-min-width",a.gsItemMinWidth),$(e).attr("data-gs-min-height",a.gsItemMinHeight),$(e).attr("data-gs-max-width",a.gsItemMaxWidth),$(e).attr("data-gs-max-height",a.gsItemMaxHeight),$(e).attr("data-gs-auto-position",a.gsItemAutopos);var g=(n.addItem(e),e.data("_gridstack_node"));t(function(){a.onItemAdded({item:g})}),a.$watch(function(){return $(e).attr("data-gs-id")},function(t){a.gsItemId=t}),a.$watch(function(){return $(e).attr("data-gs-x")},function(t){a.gsItemX=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-y")},function(t){a.gsItemY=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-width")},function(t){a.gsItemWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-height")},function(t){a.gsItemHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-width")},function(t){a.gsItemMinWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-height")},function(t){a.gsItemMinHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-width")},function(t){a.gsItemMaxWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-height")},function(t){a.gsItemMaxHeight=Number(t)}),e.bind("$destroy",function(){var t=e.data("_gridstack_node");a.onItemRemoved({item:t}),n.removeItem(e)})}}}])}(); \ No newline at end of file +!function(){"use strict";var t=angular.module("gridstack-angular");t.directive("gridstackItem",["$timeout",function(t){return{restrict:"A",controller:"GridstackController",require:"^gridstack",scope:{gridstackItem:"=",onItemAdded:"&",onItemRemoved:"&",gsItemId:"=?",gsItemX:"=",gsItemY:"=",gsItemWidth:"=",gsItemHeight:"=",gsItemAutopos:"=",gsItemMinHeight:"=?",gsItemMaxHeight:"=?",gsItemMinWidth:"=?",gsItemMaxWidth:"=?"},link:function(a,e,i,n){a.gsItemId&&$(e).attr("data-gs-id",a.gsItemId),$(e).attr("data-gs-x",a.gsItemX),$(e).attr("data-gs-y",a.gsItemY),$(e).attr("data-gs-width",a.gsItemWidth),$(e).attr("data-gs-height",a.gsItemHeight),$(e).attr("data-gs-min-width",a.gsItemMinWidth),$(e).attr("data-gs-min-height",a.gsItemMinHeight),$(e).attr("data-gs-max-width",a.gsItemMaxWidth),$(e).attr("data-gs-max-height",a.gsItemMaxHeight),$(e).attr("data-gs-auto-position",a.gsItemAutopos);var g=(n.addItem(e),e.data("_gridstack_node"));t(function(){a.onItemAdded({item:g})}),a.$watch(function(){return $(e).attr("data-gs-id")},function(t){a.gsItemId=t}),a.$watch(function(){return $(e).attr("data-gs-x")},function(t){a.gsItemX=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-y")},function(t){a.gsItemY=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-width")},function(t){a.gsItemWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-height")},function(t){a.gsItemHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-width")},function(t){a.gsItemMinWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-height")},function(t){a.gsItemMinHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-width")},function(t){a.gsItemMaxWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-height")},function(t){a.gsItemMaxHeight=Number(t)}),e.bind("$destroy",function(){var t=e.data("_gridstack_node");a.onItemRemoved({item:t}),n.removeItem(e)})}}}])}(); \ No newline at end of file diff --git a/src/gridstackitem.directive.js b/src/gridstackitem.directive.js index 3bfd47f..9c65ce6 100644 --- a/src/gridstackitem.directive.js +++ b/src/gridstackitem.directive.js @@ -19,10 +19,10 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { gsItemWidth: '=', gsItemHeight: '=', gsItemAutopos: '=', - gsItemMinHeight: '=', - gsItemMaxHeight: '=', - gsItemMinWidth: '=', - gsItemMaxWidth: '=' + gsItemMinHeight: '=?', + gsItemMaxHeight: '=?', + gsItemMinWidth: '=?', + gsItemMaxWidth: '=?' }, link: function(scope, element, attrs, controller) { if (scope.gsItemId) { From e5d764d442c8f9cd64aeb350d291fca6b5e69d09 Mon Sep 17 00:00:00 2001 From: Kevin Gravier Date: Thu, 1 Sep 2016 10:02:29 -0400 Subject: [PATCH 3/4] Removed writing to properties, they shouldn't change. --- src/gridstackitem.directive.js | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/gridstackitem.directive.js b/src/gridstackitem.directive.js index 9c65ce6..320a5b2 100644 --- a/src/gridstackitem.directive.js +++ b/src/gridstackitem.directive.js @@ -63,22 +63,6 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { scope.gsItemHeight = Number(val); }); - scope.$watch(function() { return $(element).attr('data-gs-min-width'); }, function(val) { - scope.gsItemMinWidth = Number(val); - }); - - scope.$watch(function() { return $(element).attr('data-gs-min-height'); }, function(val) { - scope.gsItemMinHeight = Number(val); - }); - - scope.$watch(function() { return $(element).attr('data-gs-max-width'); }, function(val) { - scope.gsItemMaxWidth = Number(val); - }); - - scope.$watch(function() { return $(element).attr('data-gs-max-height'); }, function(val) { - scope.gsItemMaxHeight = Number(val); - }); - element.bind('$destroy', function() { var item = element.data('_gridstack_node'); scope.onItemRemoved({item: item}); From 20268fb8d1a42a806293250d27c5ac2e33119e9e Mon Sep 17 00:00:00 2001 From: Kevin Gravier Date: Thu, 1 Sep 2016 10:03:25 -0400 Subject: [PATCH 4/4] Removed write backs. They min/max elements should not change. --- dist/gridstack-angular.js | 16 ---------------- dist/gridstack-angular.min.js | 2 +- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/dist/gridstack-angular.js b/dist/gridstack-angular.js index 25ad31a..27d4108 100644 --- a/dist/gridstack-angular.js +++ b/dist/gridstack-angular.js @@ -162,22 +162,6 @@ app.directive('gridstackItem', ['$timeout', function($timeout) { scope.gsItemHeight = Number(val); }); - scope.$watch(function() { return $(element).attr('data-gs-min-width'); }, function(val) { - scope.gsItemMinWidth = Number(val); - }); - - scope.$watch(function() { return $(element).attr('data-gs-min-height'); }, function(val) { - scope.gsItemMinHeight = Number(val); - }); - - scope.$watch(function() { return $(element).attr('data-gs-max-width'); }, function(val) { - scope.gsItemMaxWidth = Number(val); - }); - - scope.$watch(function() { return $(element).attr('data-gs-max-height'); }, function(val) { - scope.gsItemMaxHeight = Number(val); - }); - element.bind('$destroy', function() { var item = element.data('_gridstack_node'); scope.onItemRemoved({item: item}); diff --git a/dist/gridstack-angular.min.js b/dist/gridstack-angular.min.js index d4294e5..96c3d87 100644 --- a/dist/gridstack-angular.min.js +++ b/dist/gridstack-angular.min.js @@ -7,4 +7,4 @@ */ !function(){"use strict";angular.module("gridstack-angular",[]);var t=angular.module("gridstack-angular");t.controller("GridstackController",["$scope",function(t){var r=null;this.init=function(t,n){return r=t.gridstack(n).data("gridstack")},this.removeItem=function(t){return r?r.removeWidget(t,!1):null},this.addItem=function(t){return r?(r.makeWidget(t),t):null}}])}(); !function(){"use strict";var n=angular.module("gridstack-angular");n.directive("gridstack",["$timeout",function(n){return{restrict:"A",controller:"GridstackController",scope:{onChange:"&",onDragStart:"&",onDragStop:"&",onResizeStart:"&",onResizeStop:"&",gridstackHandler:"=?",options:"="},link:function(t,o,e,i,r){var a=i.init(o,t.options);t.gridstackHandler=a,o.on("change",function(o,e){n(function(){t.$apply(),t.onChange({event:o,items:e})})}),o.on("dragstart",function(n,o){t.onDragStart({event:n,ui:o})}),o.on("dragstop",function(o,e){n(function(){t.$apply(),t.onDragStop({event:o,ui:e})})}),o.on("resizestart",function(n,o){t.onResizeStart({event:n,ui:o})}),o.on("resizestop",function(o,e){n(function(){t.$apply(),t.onResizeStop({event:o,ui:e})})})}}}])}(); -!function(){"use strict";var t=angular.module("gridstack-angular");t.directive("gridstackItem",["$timeout",function(t){return{restrict:"A",controller:"GridstackController",require:"^gridstack",scope:{gridstackItem:"=",onItemAdded:"&",onItemRemoved:"&",gsItemId:"=?",gsItemX:"=",gsItemY:"=",gsItemWidth:"=",gsItemHeight:"=",gsItemAutopos:"=",gsItemMinHeight:"=?",gsItemMaxHeight:"=?",gsItemMinWidth:"=?",gsItemMaxWidth:"=?"},link:function(a,e,i,n){a.gsItemId&&$(e).attr("data-gs-id",a.gsItemId),$(e).attr("data-gs-x",a.gsItemX),$(e).attr("data-gs-y",a.gsItemY),$(e).attr("data-gs-width",a.gsItemWidth),$(e).attr("data-gs-height",a.gsItemHeight),$(e).attr("data-gs-min-width",a.gsItemMinWidth),$(e).attr("data-gs-min-height",a.gsItemMinHeight),$(e).attr("data-gs-max-width",a.gsItemMaxWidth),$(e).attr("data-gs-max-height",a.gsItemMaxHeight),$(e).attr("data-gs-auto-position",a.gsItemAutopos);var g=(n.addItem(e),e.data("_gridstack_node"));t(function(){a.onItemAdded({item:g})}),a.$watch(function(){return $(e).attr("data-gs-id")},function(t){a.gsItemId=t}),a.$watch(function(){return $(e).attr("data-gs-x")},function(t){a.gsItemX=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-y")},function(t){a.gsItemY=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-width")},function(t){a.gsItemWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-height")},function(t){a.gsItemHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-width")},function(t){a.gsItemMinWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-min-height")},function(t){a.gsItemMinHeight=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-width")},function(t){a.gsItemMaxWidth=Number(t)}),a.$watch(function(){return $(e).attr("data-gs-max-height")},function(t){a.gsItemMaxHeight=Number(t)}),e.bind("$destroy",function(){var t=e.data("_gridstack_node");a.onItemRemoved({item:t}),n.removeItem(e)})}}}])}(); \ No newline at end of file +!function(){"use strict";var t=angular.module("gridstack-angular");t.directive("gridstackItem",["$timeout",function(t){return{restrict:"A",controller:"GridstackController",require:"^gridstack",scope:{gridstackItem:"=",onItemAdded:"&",onItemRemoved:"&",gsItemId:"=?",gsItemX:"=",gsItemY:"=",gsItemWidth:"=",gsItemHeight:"=",gsItemAutopos:"=",gsItemMinHeight:"=?",gsItemMaxHeight:"=?",gsItemMinWidth:"=?",gsItemMaxWidth:"=?"},link:function(e,a,i,g){e.gsItemId&&$(a).attr("data-gs-id",e.gsItemId),$(a).attr("data-gs-x",e.gsItemX),$(a).attr("data-gs-y",e.gsItemY),$(a).attr("data-gs-width",e.gsItemWidth),$(a).attr("data-gs-height",e.gsItemHeight),$(a).attr("data-gs-min-width",e.gsItemMinWidth),$(a).attr("data-gs-min-height",e.gsItemMinHeight),$(a).attr("data-gs-max-width",e.gsItemMaxWidth),$(a).attr("data-gs-max-height",e.gsItemMaxHeight),$(a).attr("data-gs-auto-position",e.gsItemAutopos);var d=(g.addItem(a),a.data("_gridstack_node"));t(function(){e.onItemAdded({item:d})}),e.$watch(function(){return $(a).attr("data-gs-id")},function(t){e.gsItemId=t}),e.$watch(function(){return $(a).attr("data-gs-x")},function(t){e.gsItemX=Number(t)}),e.$watch(function(){return $(a).attr("data-gs-y")},function(t){e.gsItemY=Number(t)}),e.$watch(function(){return $(a).attr("data-gs-width")},function(t){e.gsItemWidth=Number(t)}),e.$watch(function(){return $(a).attr("data-gs-height")},function(t){e.gsItemHeight=Number(t)}),a.bind("$destroy",function(){var t=a.data("_gridstack_node");e.onItemRemoved({item:t}),g.removeItem(a)})}}}])}(); \ No newline at end of file