Skip to content

Commit 2ddd6d5

Browse files
committed
Merge commit '50607a9797d98ce856ec8c4ee1e140928a88cf3a'
2 parents 4af1f27 + 50607a9 commit 2ddd6d5

File tree

9 files changed

+932
-77
lines changed

9 files changed

+932
-77
lines changed

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Join gridstack.js on Slack: https://gridstackjs.troolee.com
3737
- [Load grid from array](#load-grid-from-array)
3838
- [Override resizable/draggable options](#override-resizabledraggable-options)
3939
- [IE8 support](#ie8-support)
40+
- [Use with require.js](#use-with-requirejs)
4041
- [Nested grids](#nested-grids)
4142
- [Resizing active grid](#resizing-active-grid)
4243
- [Using AniJS](#using-anijs)
@@ -428,6 +429,12 @@ for i in range(N):
428429
There are at least two more issues with gridstack in IE8 with jQueryUI resizable (it seems it doesn't work) and
429430
droppable. If you have any suggestions about support of IE8 you are welcome here: https://github.com/troolee/gridstack.js/issues/76
430431

432+
## Use with require.js
433+
434+
If you're using require.js and a single file jQueryUI please check out this
435+
[Stackoverflow question](http://stackoverflow.com/questions/35582945/redundant-dependencies-with-requirejs) to get it
436+
working properly.
437+
431438

432439
## Nested grids
433440

@@ -472,11 +479,12 @@ Changes
472479
- fix `setStatic` method
473480
- add `setAnimation` method to API
474481
- add `setGridWidth` method ([#227](https://github.com/troolee/gridstack.js/issues/227))
475-
- add `removable`/`removeTimeout`
482+
- add `removable`/`removeTimeout` *(experimental)*
476483
- add `detachGrid` parameter to `destroy` method ([#216](https://github.com/troolee/gridstack.js/issues/216)) (thanks @jhpedemonte)
477484
- add `useOffset` parameter to `getCellFromPixel` method ([#237](https://github.com/troolee/gridstack.js/issues/237))
478485
- add `minWidth`, `maxWidth`, `minHeight`, `maxHeight`, `id` parameters to `addWidget` ([#188](https://github.com/troolee/gridstack.js/issues/188))
479486
- add `added` and `removed` events for when a widget is added or removed, respectively. ([#54](https://github.com/troolee/gridstack.js/issues/54))
487+
- add `acceptWidgets` parameter. Widgets can now be draggable between grids or from outside *(experimental)*
480488

481489
#### v0.2.4 (2016-02-15)
482490

demo/two.html

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,45 @@
4848
margin-bottom: 20px;
4949
background: rgba(255, 0, 0, 0.1) center center url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDQzOC41MjkgNDM4LjUyOSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDM4LjUyOSA0MzguNTI5OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQxNy42ODksNzUuNjU0Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2OC02LjU2My0yLjU2OGgtODguMjI0TDMwMi45MTcsMjUuNDFjLTIuODU0LTcuMDQ0LTcuOTk0LTEzLjA0LTE1LjQxMy0xNy45ODkgICAgQzI4MC4wNzgsMi40NzMsMjcyLjU1NiwwLDI2NC45NDUsMGgtOTEuMzYzYy03LjYxMSwwLTE1LjEzMSwyLjQ3My0yMi41NTQsNy40MjFjLTcuNDI0LDQuOTQ5LTEyLjU2MywxMC45NDQtMTUuNDE5LDE3Ljk4OSAgICBsLTE5Ljk4NSw0Ny42NzZoLTg4LjIyYy0yLjY2NywwLTQuODUzLDAuODU5LTYuNTY3LDIuNTY4Yy0xLjcwOSwxLjcxMy0yLjU2OCwzLjkwMy0yLjU2OCw2LjU2N3YxOC4yNzQgICAgYzAsMi42NjQsMC44NTUsNC44NTQsMi41NjgsNi41NjRjMS43MTQsMS43MTIsMy45MDQsMi41NjgsNi41NjcsMi41NjhoMjcuNDA2djI3MS44YzAsMTUuODAzLDQuNDczLDI5LjI2NiwxMy40MTgsNDAuMzk4ICAgIGM4Ljk0NywxMS4xMzksMTkuNzAxLDE2LjcwMywzMi4yNjQsMTYuNzAzaDIzNy41NDJjMTIuNTY2LDAsMjMuMzE5LTUuNzU2LDMyLjI2NS0xNy4yNjhjOC45NDUtMTEuNTIsMTMuNDE1LTI1LjE3NCwxMy40MTUtNDAuOTcxICAgIFYxMDkuNjI3aDI3LjQxMWMyLjY2MiwwLDQuODUzLTAuODU2LDYuNTYzLTIuNTY4YzEuNzA4LTEuNzA5LDIuNTctMy45LDIuNTctNi41NjRWODIuMjIxICAgIEM0MjAuMjYsNzkuNTU3LDQxOS4zOTcsNzcuMzY3LDQxNy42ODksNzUuNjU0eiBNMTY5LjMwMSwzOS42NzhjMS4zMzEtMS43MTIsMi45NS0yLjc2Miw0Ljg1My0zLjE0aDkwLjUwNCAgICBjMS45MDMsMC4zODEsMy41MjUsMS40Myw0Ljg1NCwzLjE0bDEzLjcwOSwzMy40MDRIMTU1LjMxMUwxNjkuMzAxLDM5LjY3OHogTTM0Ny4xNzMsMzgwLjI5MWMwLDQuMTg2LTAuNjY0LDguMDQyLTEuOTk5LDExLjU2MSAgICBjLTEuMzM0LDMuNTE4LTIuNzE3LDYuMDg4LTQuMTQxLDcuNzA2Yy0xLjQzMSwxLjYyMi0yLjQyMywyLjQyNy0yLjk5OCwyLjQyN0gxMDAuNDkzYy0wLjU3MSwwLTEuNTY1LTAuODA1LTIuOTk2LTIuNDI3ICAgIGMtMS40MjktMS42MTgtMi44MS00LjE4OC00LjE0My03LjcwNmMtMS4zMzEtMy41MTktMS45OTctNy4zNzktMS45OTctMTEuNTYxVjEwOS42MjdoMjU1LjgxNVYzODAuMjkxeiIgZmlsbD0iI2ZmOWNhZSIvPgoJCTxwYXRoIGQ9Ik0xMzcuMDQsMzQ3LjE3MmgxOC4yNzFjMi42NjcsMCw0Ljg1OC0wLjg1NSw2LjU2Ny0yLjU2N2MxLjcwOS0xLjcxOCwyLjU2OC0zLjkwMSwyLjU2OC02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTktNC44NTMtMi41NjgtNi41NjdjLTEuNzE0LTEuNzA5LTMuODk5LTIuNTY1LTYuNTY3LTIuNTY1SDEzNy4wNGMtMi42NjcsMC00Ljg1NCwwLjg1NS02LjU2NywyLjU2NSAgICBjLTEuNzExLDEuNzE0LTIuNTY4LDMuOTA0LTIuNTY4LDYuNTY3djE2NC40NTRjMCwyLjY2OSwwLjg1NCw0Ljg1MywyLjU2OCw2LjU3QzEzMi4xODYsMzQ2LjMxNiwxMzQuMzczLDM0Ny4xNzIsMTM3LjA0LDM0Ny4xNzJ6IiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTIxMC4xMjksMzQ3LjE3MmgxOC4yNzFjMi42NjYsMCw0Ljg1Ni0wLjg1NSw2LjU2NC0yLjU2N2MxLjcxOC0xLjcxOCwyLjU2OS0zLjkwMSwyLjU2OS02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTItNC44NTMtMi41NjktNi41NjdjLTEuNzA4LTEuNzA5LTMuODk4LTIuNTY1LTYuNTY0LTIuNTY1aC0xOC4yNzFjLTIuNjY0LDAtNC44NTQsMC44NTUtNi41NjcsMi41NjUgICAgYy0xLjcxNCwxLjcxNC0yLjU2OCwzLjkwNC0yLjU2OCw2LjU2N3YxNjQuNDU0YzAsMi42NjksMC44NTQsNC44NTMsMi41NjgsNi41N0MyMDUuMjc0LDM0Ni4zMTYsMjA3LjQ2NSwzNDcuMTcyLDIxMC4xMjksMzQ3LjE3MnogICAgIiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTI4My4yMiwzNDcuMTcyaDE4LjI2OGMyLjY2OSwwLDQuODU5LTAuODU1LDYuNTctMi41NjdjMS43MTEtMS43MTgsMi41NjItMy45MDEsMi41NjItNi41N1YxNzMuNTgxICAgIGMwLTIuNjYzLTAuODUyLTQuODUzLTIuNTYyLTYuNTY3Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2NS02LjU3LTIuNTY1SDI4My4yMmMtMi42NywwLTQuODUzLDAuODU1LTYuNTcxLDIuNTY1ICAgIGMtMS43MTEsMS43MTQtMi41NjYsMy45MDQtMi41NjYsNi41Njd2MTY0LjQ1NGMwLDIuNjY5LDAuODU1LDQuODUzLDIuNTY2LDYuNTdDMjc4LjM2NywzNDYuMzE2LDI4MC41NSwzNDcuMTcyLDI4My4yMiwzNDcuMTcyeiIgZmlsbD0iI2ZmOWNhZSIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=) no-repeat;
5050
}
51+
52+
.sidebar {
53+
background: rgba(0, 255, 0, 0.1);
54+
height: 150px;
55+
padding: 25px 0;
56+
text-align: center;
57+
}
58+
59+
.sidebar .grid-stack-item {
60+
width: 200px;
61+
height: 100px;
62+
border: 2px dashed green;
63+
text-align: center;
64+
line-height: 100px;
65+
z-index: 10;
66+
background: rgba(0, 255, 0, 0.1);
67+
cursor: default;
68+
display: inline-block;
69+
}
70+
71+
.sidebar .grid-stack-item .grid-stack-item-content {
72+
background: none;
73+
}
5174
</style>
5275
</head>
5376
<body>
5477
<div class="container-fluid">
5578
<h1>Two grids demo</h1>
5679

57-
<div class="trash">
80+
<div class="row">
81+
<div class="col-md-3">
82+
<div class="sidebar">
83+
<div class="grid-stack-item"><div class="grid-stack-item-content">Drag me</div></div>
84+
</div>
85+
</div>
86+
<div class="col-md-9">
87+
<div class="trash">
88+
</div>
89+
</div>
5890
</div>
5991

6092
<div class="row">
@@ -74,12 +106,15 @@ <h1>Two grids demo</h1>
74106
$(function () {
75107
var options = {
76108
width: 6,
77-
float: true,
109+
float: false,
78110
removable: '.trash',
79-
removeTimeout: 100
111+
removeTimeout: 100,
112+
acceptWidgets: '.grid-stack-item'
80113
};
81114
$('#grid1').gridstack(options);
82-
$('#grid2').gridstack(options);
115+
$('#grid2').gridstack(_.defaults({
116+
float: true
117+
}, options));
83118

84119
var items = [
85120
{x: 0, y: 0, width: 2, height: 2},
@@ -97,6 +132,13 @@ <h1>Two grids demo</h1>
97132
node.x, node.y, node.width, node.height);
98133
}, this);
99134
});
135+
136+
$('.sidebar .grid-stack-item').draggable({
137+
revert: 'invalid',
138+
handle: '.grid-stack-item-content',
139+
scroll: false,
140+
appendTo: 'body'
141+
});
100142
});
101143
</script>
102144
</body>

dist/gridstack.js

Lines changed: 156 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
var height = val;
100100
var heightUnit = 'px';
101101
if (height && _.isString(height)) {
102-
var match = height.match(/^([0-9]*\.[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);
102+
var match = height.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw)?$/);
103103
if (!match) {
104104
throw new Error('Invalid height');
105105
}
@@ -576,7 +576,9 @@
576576
var maxHeight = 0;
577577
_.each(nodes, function(n) {
578578
if (n._id === null) {
579-
n.el.remove();
579+
if (n.el) {
580+
n.el.remove();
581+
}
580582
} else {
581583
n.el
582584
.attr('data-gs-x', n.x)
@@ -671,7 +673,9 @@
671673
if (typeof self.opts.removable === 'string') {
672674
var trashZone = $(self.opts.removable);
673675
if (!trashZone.data('droppable')) {
674-
trashZone.droppable({});
676+
trashZone.droppable({
677+
accept: '.' + self.opts.itemClass
678+
});
675679
}
676680
trashZone
677681
.on('dropover', function(event, ui) {
@@ -691,6 +695,114 @@
691695
self._clearRemovingTimeout(el);
692696
});
693697
}
698+
699+
if (self.opts.acceptWidgets) {
700+
var draggingElement = null;
701+
702+
var onDrag = function(event, ui) {
703+
var el = draggingElement;
704+
var node = el.data('_gridstack_node');
705+
var pos = self.getCellFromPixel(ui.offset, true);
706+
var x = Math.max(0, pos.x);
707+
var y = Math.max(0, pos.y);
708+
if (!node._added) {
709+
node._added = true;
710+
711+
node.el = el;
712+
node.x = x;
713+
node.y = y;
714+
self.grid.cleanNodes();
715+
self.grid.beginUpdate(node);
716+
self.grid.addNode(node);
717+
718+
self.container.append(self.placeholder);
719+
self.placeholder
720+
.attr('data-gs-x', node.x)
721+
.attr('data-gs-y', node.y)
722+
.attr('data-gs-width', node.width)
723+
.attr('data-gs-height', node.height)
724+
.show();
725+
node.el = self.placeholder;
726+
node._beforeDragX = node.x;
727+
node._beforeDragY = node.y;
728+
729+
self._updateContainerHeight();
730+
} else {
731+
if (!self.grid.canMoveNode(node, x, y)) {
732+
return;
733+
}
734+
self.grid.moveNode(node, x, y);
735+
self._updateContainerHeight();
736+
}
737+
};
738+
739+
$(self.container).droppable({
740+
accept: function(el) {
741+
el = $(el);
742+
var node = el.data('_gridstack_node');
743+
if (node && node._grid === self) {
744+
return false;
745+
}
746+
return el.is(self.opts.acceptWidgets === true ? '.grid-stack-item' : self.opts.acceptWidgets);
747+
},
748+
over: function(event, ui) {
749+
var offset = self.container.offset();
750+
var el = $(ui.draggable);
751+
var cellWidth = self.cellWidth();
752+
var cellHeight = self.cellHeight();
753+
var origNode = el.data('_gridstack_node');
754+
755+
var width = origNode ? origNode.width : (Math.ceil(el.outerWidth() / cellWidth));
756+
var height = origNode ? origNode.height : (Math.ceil(el.outerHeight() / cellHeight));
757+
758+
draggingElement = el;
759+
760+
var node = self.grid._prepareNode({width: width, height: height, _added: false, _temporary: true});
761+
el.data('_gridstack_node', node);
762+
el.data('_gridstack_node_orig', origNode);
763+
764+
el.on('drag', onDrag);
765+
},
766+
out: function(event, ui) {
767+
var el = $(ui.draggable);
768+
el.unbind('drag', onDrag);
769+
var node = el.data('_gridstack_node');
770+
node.el = null;
771+
self.grid.removeNode(node);
772+
self.placeholder.detach();
773+
self._updateContainerHeight();
774+
el.data('_gridstack_node', el.data('_gridstack_node_orig'));
775+
},
776+
drop: function(event, ui) {
777+
self.placeholder.detach();
778+
779+
var node = $(ui.draggable).data('_gridstack_node');
780+
node._grid = self;
781+
var el = $(ui.draggable).clone(false);
782+
el.data('_gridstack_node', node);
783+
$(ui.draggable).remove();
784+
node.el = el;
785+
self.placeholder.hide();
786+
el
787+
.attr('data-gs-x', node.x)
788+
.attr('data-gs-y', node.y)
789+
.attr('data-gs-width', node.width)
790+
.attr('data-gs-height', node.height)
791+
.addClass(self.opts.itemClass)
792+
.removeAttr('style')
793+
.enableSelection()
794+
.removeData('draggable')
795+
.removeClass('ui-draggable ui-draggable-dragging ui-draggable-disabled')
796+
.unbind('drag', onDrag);
797+
self.container.append(el);
798+
self._prepareElementByNode(el, node);
799+
self._updateContainerHeight();
800+
self._triggerChangeEvent();
801+
802+
self.grid.endUpdate();
803+
}
804+
});
805+
}
694806
};
695807

696808
GridStack.prototype._triggerChangeEvent = function(forceTrigger) {
@@ -840,7 +952,6 @@
840952
};
841953

842954
GridStack.prototype._clearRemovingTimeout = function(el) {
843-
var self = this;
844955
var node = $(el).data('_gridstack_node');
845956

846957
if (!node._removeTimeout) {
@@ -852,30 +963,8 @@
852963
node._isAboutToRemove = false;
853964
};
854965

855-
GridStack.prototype._prepareElement = function(el, triggerAddEvent) {
856-
triggerAddEvent = typeof triggerAddEvent != 'undefined' ? triggerAddEvent : false;
966+
GridStack.prototype._prepareElementByNode = function(el, node) {
857967
var self = this;
858-
el = $(el);
859-
860-
el.addClass(this.opts.itemClass);
861-
var node = self.grid.addNode({
862-
x: el.attr('data-gs-x'),
863-
y: el.attr('data-gs-y'),
864-
width: el.attr('data-gs-width'),
865-
height: el.attr('data-gs-height'),
866-
maxWidth: el.attr('data-gs-max-width'),
867-
minWidth: el.attr('data-gs-min-width'),
868-
maxHeight: el.attr('data-gs-max-height'),
869-
minHeight: el.attr('data-gs-min-height'),
870-
autoPosition: Utils.toBool(el.attr('data-gs-auto-position')),
871-
noResize: Utils.toBool(el.attr('data-gs-no-resize')),
872-
noMove: Utils.toBool(el.attr('data-gs-no-move')),
873-
locked: Utils.toBool(el.attr('data-gs-locked')),
874-
el: el,
875-
id: el.attr('data-gs-id'),
876-
_grid: self
877-
}, triggerAddEvent);
878-
el.data('_gridstack_node', node);
879968

880969
var cellWidth;
881970
var cellHeight;
@@ -962,9 +1051,13 @@
9621051
};
9631052

9641053
var onEndMoving = function(event, ui) {
1054+
var o = $(this);
1055+
if (!o.data('_gridstack_node')) {
1056+
return;
1057+
}
1058+
9651059
var forceNotify = false;
9661060
self.placeholder.detach();
967-
var o = $(this);
9681061
node.el = o;
9691062
self.placeholder.hide();
9701063

@@ -1031,6 +1124,34 @@
10311124
el.attr('data-gs-locked', node.locked ? 'yes' : null);
10321125
};
10331126

1127+
GridStack.prototype._prepareElement = function(el, triggerAddEvent) {
1128+
triggerAddEvent = typeof triggerAddEvent != 'undefined' ? triggerAddEvent : false;
1129+
var self = this;
1130+
el = $(el);
1131+
1132+
el.addClass(this.opts.itemClass);
1133+
var node = self.grid.addNode({
1134+
x: el.attr('data-gs-x'),
1135+
y: el.attr('data-gs-y'),
1136+
width: el.attr('data-gs-width'),
1137+
height: el.attr('data-gs-height'),
1138+
maxWidth: el.attr('data-gs-max-width'),
1139+
minWidth: el.attr('data-gs-min-width'),
1140+
maxHeight: el.attr('data-gs-max-height'),
1141+
minHeight: el.attr('data-gs-min-height'),
1142+
autoPosition: Utils.toBool(el.attr('data-gs-auto-position')),
1143+
noResize: Utils.toBool(el.attr('data-gs-no-resize')),
1144+
noMove: Utils.toBool(el.attr('data-gs-no-move')),
1145+
locked: Utils.toBool(el.attr('data-gs-locked')),
1146+
el: el,
1147+
id: el.attr('data-gs-id'),
1148+
_grid: self
1149+
}, triggerAddEvent);
1150+
el.data('_gridstack_node', node);
1151+
1152+
this._prepareElementByNode(el, node);
1153+
};
1154+
10341155
GridStack.prototype.setAnimation = function(enable) {
10351156
if (enable) {
10361157
this.container.addClass('grid-stack-animate');
@@ -1360,7 +1481,7 @@
13601481

13611482
GridStack.prototype.cellWidth = function() {
13621483
var o = this.container.children('.' + this.opts.itemClass).first();
1363-
return Math.ceil(o.outerWidth() / o.attr('data-gs-width'));
1484+
return Math.ceil(o.outerWidth() / parseInt(o.attr('data-gs-width'), 10));
13641485
};
13651486

13661487
GridStack.prototype.getCellFromPixel = function(position, useOffset) {
@@ -1417,10 +1538,13 @@
14171538
this.grid.commit();
14181539
};
14191540

1420-
GridStack.prototype.setGridWidth = function(gridWidth) {
1541+
GridStack.prototype.setGridWidth = function(gridWidth,doNotPropagate) {
14211542
this.container.removeClass('grid-stack-' + this.opts.width);
1422-
this._updateNodeWidths(this.opts.width, gridWidth);
1543+
if (doNotPropagate !== true) {
1544+
this._updateNodeWidths(this.opts.width, gridWidth);
1545+
}
14231546
this.opts.width = gridWidth;
1547+
this.grid.width = gridWidth;
14241548
this.container.addClass('grid-stack-' + gridWidth);
14251549
};
14261550

@@ -1466,7 +1590,7 @@
14661590
GridStack.prototype._update_container_height = obsolete(GridStack.prototype._updateContainerHeight,
14671591
'_update_container_height', '_updateContainerHeight');
14681592
GridStack.prototype._is_one_column_mode = obsolete(GridStack.prototype._isOneColumnMode,
1469-
'_is_one_column_mode',' _isOneColumnMode');
1593+
'_is_one_column_mode','_isOneColumnMode');
14701594
GridStack.prototype._prepare_element = obsolete(GridStack.prototype._prepareElement,
14711595
'_prepare_element', '_prepareElement');
14721596
GridStack.prototype.set_animation = obsolete(GridStack.prototype.setAnimation,

0 commit comments

Comments
 (0)