gridstack 8.2.0 → 8.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/angular/README.md +21 -21
- package/angular/package.json +1 -1
- package/angular/projects/demo/src/app/app.component.ts +7 -7
- package/angular/projects/demo/src/app/dummy.component.ts +1 -1
- package/angular/projects/lib/package.json +1 -1
- package/angular/projects/lib/src/lib/base-widget.ts +1 -1
- package/angular/projects/lib/src/lib/gridstack-item.component.ts +1 -1
- package/angular/projects/lib/src/lib/gridstack.component.ts +1 -1
- package/angular/projects/lib/src/lib/gridstack.module.ts +1 -1
- package/dist/angular/README.md +21 -21
- package/dist/angular/esm2020/lib/base-widget.mjs +2 -2
- package/dist/angular/esm2020/lib/gridstack-item.component.mjs +2 -2
- package/dist/angular/esm2020/lib/gridstack.component.mjs +2 -2
- package/dist/angular/esm2020/lib/gridstack.module.mjs +2 -2
- package/dist/angular/fesm2015/gridstack-angular.mjs +4 -4
- package/dist/angular/fesm2015/gridstack-angular.mjs.map +1 -1
- package/dist/angular/fesm2020/gridstack-angular.mjs +4 -4
- package/dist/angular/fesm2020/gridstack-angular.mjs.map +1 -1
- package/dist/angular/lib/gridstack-item.component.d.ts +1 -1
- package/dist/angular/lib/gridstack.component.d.ts +1 -1
- package/dist/angular/package.json +1 -1
- package/dist/angular/src/base-widget.ts +1 -1
- package/dist/angular/src/gridstack-item.component.ts +1 -1
- package/dist/angular/src/gridstack.component.ts +1 -1
- package/dist/angular/src/gridstack.module.ts +1 -1
- package/dist/dd-base-impl.d.ts +1 -1
- package/dist/dd-base-impl.js +1 -1
- package/dist/dd-base-impl.js.map +1 -1
- package/dist/dd-draggable.d.ts +1 -1
- package/dist/dd-draggable.js +1 -2
- package/dist/dd-draggable.js.map +1 -1
- package/dist/dd-droppable.d.ts +1 -1
- package/dist/dd-droppable.js +1 -1
- package/dist/dd-droppable.js.map +1 -1
- package/dist/dd-element.d.ts +1 -1
- package/dist/dd-element.js +1 -1
- package/dist/dd-element.js.map +1 -1
- package/dist/dd-gridstack.d.ts +1 -1
- package/dist/dd-gridstack.js +1 -1
- package/dist/dd-gridstack.js.map +1 -1
- package/dist/dd-manager.d.ts +1 -1
- package/dist/dd-manager.js +1 -1
- package/dist/dd-manager.js.map +1 -1
- package/dist/dd-resizable-handle.d.ts +1 -1
- package/dist/dd-resizable-handle.js +1 -1
- package/dist/dd-resizable-handle.js.map +1 -1
- package/dist/dd-resizable.d.ts +1 -1
- package/dist/dd-resizable.js +1 -1
- package/dist/dd-resizable.js.map +1 -1
- package/dist/dd-touch.d.ts +1 -1
- package/dist/dd-touch.js +1 -1
- package/dist/dd-touch.js.map +1 -1
- package/dist/es5/dd-base-impl.d.ts +1 -1
- package/dist/es5/dd-base-impl.js +1 -1
- package/dist/es5/dd-base-impl.js.map +1 -1
- package/dist/es5/dd-draggable.d.ts +1 -1
- package/dist/es5/dd-draggable.js +1 -2
- package/dist/es5/dd-draggable.js.map +1 -1
- package/dist/es5/dd-droppable.d.ts +1 -1
- package/dist/es5/dd-droppable.js +1 -1
- package/dist/es5/dd-droppable.js.map +1 -1
- package/dist/es5/dd-element.d.ts +1 -1
- package/dist/es5/dd-element.js +1 -1
- package/dist/es5/dd-element.js.map +1 -1
- package/dist/es5/dd-gridstack.d.ts +1 -1
- package/dist/es5/dd-gridstack.js +1 -1
- package/dist/es5/dd-gridstack.js.map +1 -1
- package/dist/es5/dd-manager.d.ts +1 -1
- package/dist/es5/dd-manager.js +1 -1
- package/dist/es5/dd-manager.js.map +1 -1
- package/dist/es5/dd-resizable-handle.d.ts +1 -1
- package/dist/es5/dd-resizable-handle.js +1 -1
- package/dist/es5/dd-resizable-handle.js.map +1 -1
- package/dist/es5/dd-resizable.d.ts +1 -1
- package/dist/es5/dd-resizable.js +1 -1
- package/dist/es5/dd-resizable.js.map +1 -1
- package/dist/es5/dd-touch.d.ts +1 -1
- package/dist/es5/dd-touch.js +1 -1
- package/dist/es5/dd-touch.js.map +1 -1
- package/dist/es5/gridstack-all.js +1 -3
- package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
- package/dist/es5/gridstack-all.js.map +1 -1
- package/dist/es5/gridstack-engine.d.ts +1 -1
- package/dist/es5/gridstack-engine.js +10 -6
- package/dist/es5/gridstack-engine.js.map +1 -1
- package/dist/es5/gridstack-poly.js +1 -1
- package/dist/es5/gridstack.d.ts +4 -4
- package/dist/es5/gridstack.js +58 -59
- package/dist/es5/gridstack.js.map +1 -1
- package/dist/es5/types.d.ts +2 -4
- package/dist/es5/types.js +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/es5/utils.d.ts +1 -1
- package/dist/es5/utils.js +3 -3
- package/dist/es5/utils.js.map +1 -1
- package/dist/gridstack-all.js +1 -3
- package/dist/gridstack-all.js.LICENSE.txt +1 -1
- package/dist/gridstack-all.js.map +1 -1
- package/dist/gridstack-engine.d.ts +1 -1
- package/dist/gridstack-engine.js +10 -6
- package/dist/gridstack-engine.js.map +1 -1
- package/dist/gridstack.css +11 -8
- package/dist/gridstack.d.ts +4 -4
- package/dist/gridstack.js +57 -59
- package/dist/gridstack.js.map +1 -1
- package/dist/gridstack.min.css +1 -1
- package/dist/src/gridstack.scss +12 -11
- package/dist/types.d.ts +2 -4
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +3 -3
- package/dist/utils.js.map +1 -1
- package/doc/CHANGES.md +13 -0
- package/package.json +1 -1
package/dist/gridstack.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* GridStack 8.2.
|
|
2
|
+
* GridStack 8.2.2
|
|
3
3
|
* https://gridstackjs.com/
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) 2021-2022 Alain Dumesny
|
|
@@ -327,6 +327,10 @@ class GridStack {
|
|
|
327
327
|
}
|
|
328
328
|
if (!el)
|
|
329
329
|
return;
|
|
330
|
+
// if the caller ended up initializing the widget in addRemoveCB, or we stared with one already, skip the rest
|
|
331
|
+
node = el.gridstackNode;
|
|
332
|
+
if (node && el.parentElement === this.el && this.engine.nodes.find(n => n._id === node._id))
|
|
333
|
+
return el;
|
|
330
334
|
// Tempting to initialize the passed in opt with default and valid values, but this break knockout demos
|
|
331
335
|
// as the actual value are filled in when _prepareElement() calls el.getAttribute('gs-xyz') before adding the node.
|
|
332
336
|
// So make sure we load any DOM attributes that are not specified in passed in options (which override)
|
|
@@ -341,21 +345,7 @@ class GridStack {
|
|
|
341
345
|
else {
|
|
342
346
|
this.el.appendChild(el);
|
|
343
347
|
}
|
|
344
|
-
|
|
345
|
-
this._prepareElement(el, true, options);
|
|
346
|
-
this._updateContainerHeight();
|
|
347
|
-
// see if there is a sub-grid to create
|
|
348
|
-
if (node.subGridOpts) {
|
|
349
|
-
this.makeSubGrid(node.el, node.subGridOpts, undefined, false); // node.subGrid will be used as option in method, no need to pass
|
|
350
|
-
}
|
|
351
|
-
// if we're adding an item into 1 column (_prevColumn is set only when going to 1) make sure
|
|
352
|
-
// we don't override the larger 12 column layout that was already saved. #1985
|
|
353
|
-
if (this._prevColumn && this.opts.column === 1) {
|
|
354
|
-
this._ignoreLayoutsNodeChange = true;
|
|
355
|
-
}
|
|
356
|
-
this._triggerAddEvent();
|
|
357
|
-
this._triggerChangeEvent();
|
|
358
|
-
delete this._ignoreLayoutsNodeChange;
|
|
348
|
+
this.makeWidget(el, options);
|
|
359
349
|
return el;
|
|
360
350
|
}
|
|
361
351
|
/**
|
|
@@ -580,7 +570,7 @@ class GridStack {
|
|
|
580
570
|
}
|
|
581
571
|
// now add/update the widgets
|
|
582
572
|
items.forEach(w => {
|
|
583
|
-
let item = (w.id
|
|
573
|
+
let item = (w.id !== undefined) ? this.engine.nodes.find(n => n.id === w.id) : undefined;
|
|
584
574
|
if (item) {
|
|
585
575
|
this.update(item.el, w);
|
|
586
576
|
if (w.subGridOpts?.children) { // update any sub grid as well
|
|
@@ -627,7 +617,7 @@ class GridStack {
|
|
|
627
617
|
// else get first cell height
|
|
628
618
|
let el = this.el.querySelector('.' + this.opts.itemClass);
|
|
629
619
|
if (el) {
|
|
630
|
-
let height = Utils.toNumber(el.getAttribute('gs-h'));
|
|
620
|
+
let height = Utils.toNumber(el.getAttribute('gs-h')) || 1; // since we don't write 1 anymore
|
|
631
621
|
return Math.round(el.offsetHeight / height);
|
|
632
622
|
}
|
|
633
623
|
// else do entire grid and # of rows (but doesn't work if min-height is the actual constrain)
|
|
@@ -854,8 +844,19 @@ class GridStack {
|
|
|
854
844
|
let el = GridStack.getElement(els);
|
|
855
845
|
this._prepareElement(el, true, options);
|
|
856
846
|
this._updateContainerHeight();
|
|
847
|
+
// see if there is a sub-grid to create
|
|
848
|
+
const node = el.gridstackNode;
|
|
849
|
+
if (node.subGridOpts) {
|
|
850
|
+
this.makeSubGrid(el, node.subGridOpts, undefined, false); // node.subGrid will be used as option in method, no need to pass
|
|
851
|
+
}
|
|
852
|
+
// if we're adding an item into 1 column (_prevColumn is set only when going to 1) make sure
|
|
853
|
+
// we don't override the larger 12 column layout that was already saved. #1985
|
|
854
|
+
if (this._prevColumn && this.opts.column === 1) {
|
|
855
|
+
this._ignoreLayoutsNodeChange = true;
|
|
856
|
+
}
|
|
857
857
|
this._triggerAddEvent();
|
|
858
858
|
this._triggerChangeEvent();
|
|
859
|
+
delete this._ignoreLayoutsNodeChange;
|
|
859
860
|
return el;
|
|
860
861
|
}
|
|
861
862
|
/**
|
|
@@ -996,9 +997,9 @@ class GridStack {
|
|
|
996
997
|
* @param recurse true (default) if sub-grids also get updated
|
|
997
998
|
*/
|
|
998
999
|
setStatic(val, updateClass = true, recurse = true) {
|
|
999
|
-
if (this.opts.staticGrid === val)
|
|
1000
|
+
if (!!this.opts.staticGrid === val)
|
|
1000
1001
|
return this;
|
|
1001
|
-
this.opts.staticGrid =
|
|
1002
|
+
val ? this.opts.staticGrid = true : delete this.opts.staticGrid;
|
|
1002
1003
|
this._setupRemoveDrop();
|
|
1003
1004
|
this._setupAcceptWidget();
|
|
1004
1005
|
this.engine.nodes.forEach(n => {
|
|
@@ -1313,16 +1314,12 @@ class GridStack {
|
|
|
1313
1314
|
return this;
|
|
1314
1315
|
}
|
|
1315
1316
|
/** @internal call to read any default attributes from element */
|
|
1316
|
-
_readAttr(el) {
|
|
1317
|
+
_readAttr(el, clearDefaultAttr = true) {
|
|
1317
1318
|
let n = {};
|
|
1318
1319
|
n.x = Utils.toNumber(el.getAttribute('gs-x'));
|
|
1319
1320
|
n.y = Utils.toNumber(el.getAttribute('gs-y'));
|
|
1320
1321
|
n.w = Utils.toNumber(el.getAttribute('gs-w'));
|
|
1321
1322
|
n.h = Utils.toNumber(el.getAttribute('gs-h'));
|
|
1322
|
-
if (!(n.w > 1))
|
|
1323
|
-
el.removeAttribute('gs-w');
|
|
1324
|
-
if (!(n.h > 1))
|
|
1325
|
-
el.removeAttribute('gs-h');
|
|
1326
1323
|
n.autoPosition = Utils.toBool(el.getAttribute('gs-auto-position'));
|
|
1327
1324
|
n.noResize = Utils.toBool(el.getAttribute('gs-no-resize'));
|
|
1328
1325
|
n.noMove = Utils.toBool(el.getAttribute('gs-no-move'));
|
|
@@ -1330,17 +1327,24 @@ class GridStack {
|
|
|
1330
1327
|
n.id = el.getAttribute('gs-id');
|
|
1331
1328
|
// read but never written out
|
|
1332
1329
|
n.maxW = Utils.toNumber(el.getAttribute('gs-max-w'));
|
|
1333
|
-
if (n.maxW)
|
|
1334
|
-
el.removeAttribute('gs-max-w');
|
|
1335
1330
|
n.minW = Utils.toNumber(el.getAttribute('gs-min-w'));
|
|
1336
|
-
if (n.minW)
|
|
1337
|
-
el.removeAttribute('gs-min-w');
|
|
1338
1331
|
n.maxH = Utils.toNumber(el.getAttribute('gs-max-h'));
|
|
1339
|
-
if (n.maxH)
|
|
1340
|
-
el.removeAttribute('gs-max-h');
|
|
1341
1332
|
n.minH = Utils.toNumber(el.getAttribute('gs-min-h'));
|
|
1342
|
-
|
|
1343
|
-
|
|
1333
|
+
// v8.x optimization to reduce un-needed attr that don't render or are default CSS
|
|
1334
|
+
if (clearDefaultAttr) {
|
|
1335
|
+
if (n.w === 1)
|
|
1336
|
+
el.removeAttribute('gs-w');
|
|
1337
|
+
if (n.h === 1)
|
|
1338
|
+
el.removeAttribute('gs-h');
|
|
1339
|
+
if (n.maxW)
|
|
1340
|
+
el.removeAttribute('gs-max-w');
|
|
1341
|
+
if (n.minW)
|
|
1342
|
+
el.removeAttribute('gs-min-w');
|
|
1343
|
+
if (n.maxH)
|
|
1344
|
+
el.removeAttribute('gs-max-h');
|
|
1345
|
+
if (n.minH)
|
|
1346
|
+
el.removeAttribute('gs-min-h');
|
|
1347
|
+
}
|
|
1344
1348
|
// remove any key not found (null or false which is default)
|
|
1345
1349
|
for (const key in n) {
|
|
1346
1350
|
if (!n.hasOwnProperty(key))
|
|
@@ -1531,40 +1535,34 @@ class GridStack {
|
|
|
1531
1535
|
* Enables/Disables dragging by the user of specific grid element. If you want all items, and have it affect future items, use enableMove() instead. No-op for static grids.
|
|
1532
1536
|
* IF you are looking to prevent an item from moving (due to being pushed around by another during collision) use locked property instead.
|
|
1533
1537
|
* @param els widget or selector to modify.
|
|
1534
|
-
* @param val if true widget will be draggable.
|
|
1538
|
+
* @param val if true widget will be draggable, assuming the parent grid isn't noMove or static.
|
|
1535
1539
|
*/
|
|
1536
1540
|
movable(els, val) {
|
|
1537
1541
|
if (this.opts.staticGrid)
|
|
1538
1542
|
return this; // can't move a static grid!
|
|
1539
1543
|
GridStack.getElements(els).forEach(el => {
|
|
1540
|
-
let
|
|
1541
|
-
if (!
|
|
1544
|
+
let n = el.gridstackNode;
|
|
1545
|
+
if (!n)
|
|
1542
1546
|
return;
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
else
|
|
1546
|
-
node.noMove = true;
|
|
1547
|
-
this._prepareDragDropByNode(node); // init DD if need be, and adjust
|
|
1547
|
+
val ? delete n.noMove : n.noMove = true;
|
|
1548
|
+
this._prepareDragDropByNode(n); // init DD if need be, and adjust
|
|
1548
1549
|
});
|
|
1549
1550
|
return this;
|
|
1550
1551
|
}
|
|
1551
1552
|
/**
|
|
1552
1553
|
* Enables/Disables user resizing of specific grid element. If you want all items, and have it affect future items, use enableResize() instead. No-op for static grids.
|
|
1553
1554
|
* @param els widget or selector to modify
|
|
1554
|
-
* @param val if true widget will be resizable.
|
|
1555
|
+
* @param val if true widget will be resizable, assuming the parent grid isn't noResize or static.
|
|
1555
1556
|
*/
|
|
1556
1557
|
resizable(els, val) {
|
|
1557
1558
|
if (this.opts.staticGrid)
|
|
1558
1559
|
return this; // can't resize a static grid!
|
|
1559
1560
|
GridStack.getElements(els).forEach(el => {
|
|
1560
|
-
let
|
|
1561
|
-
if (!
|
|
1561
|
+
let n = el.gridstackNode;
|
|
1562
|
+
if (!n)
|
|
1562
1563
|
return;
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
else
|
|
1566
|
-
node.noResize = true;
|
|
1567
|
-
this._prepareDragDropByNode(node); // init DD if need be, and adjust
|
|
1564
|
+
val ? delete n.noResize : n.noResize = true;
|
|
1565
|
+
this._prepareDragDropByNode(n); // init DD if need be, and adjust
|
|
1568
1566
|
});
|
|
1569
1567
|
return this;
|
|
1570
1568
|
}
|
|
@@ -1582,7 +1580,7 @@ class GridStack {
|
|
|
1582
1580
|
if (this.opts.staticGrid)
|
|
1583
1581
|
return;
|
|
1584
1582
|
this.enableMove(false, recurse);
|
|
1585
|
-
this.enableResize(false, recurse);
|
|
1583
|
+
this.enableResize(false, recurse);
|
|
1586
1584
|
this._triggerEvent('disable');
|
|
1587
1585
|
return this;
|
|
1588
1586
|
}
|
|
@@ -1599,20 +1597,20 @@ class GridStack {
|
|
|
1599
1597
|
if (this.opts.staticGrid)
|
|
1600
1598
|
return;
|
|
1601
1599
|
this.enableMove(true, recurse);
|
|
1602
|
-
this.enableResize(true, recurse);
|
|
1600
|
+
this.enableResize(true, recurse);
|
|
1603
1601
|
this._triggerEvent('enable');
|
|
1604
1602
|
return this;
|
|
1605
1603
|
}
|
|
1606
1604
|
/**
|
|
1607
|
-
* Enables/disables widget moving. No-op for static grids
|
|
1605
|
+
* Enables/disables widget moving. No-op for static grids, and locally defined items still overrule
|
|
1608
1606
|
* @param recurse true (default) if sub-grids also get updated
|
|
1609
1607
|
*/
|
|
1610
1608
|
enableMove(doEnable, recurse = true) {
|
|
1611
1609
|
if (this.opts.staticGrid)
|
|
1612
1610
|
return this; // can't move a static grid!
|
|
1613
|
-
this.opts.disableDrag =
|
|
1611
|
+
doEnable ? delete this.opts.disableDrag : this.opts.disableDrag = true; // FIRST before we update children as grid overrides #1658
|
|
1614
1612
|
this.engine.nodes.forEach(n => {
|
|
1615
|
-
this.
|
|
1613
|
+
this._prepareDragDropByNode(n);
|
|
1616
1614
|
if (n.subGrid && recurse)
|
|
1617
1615
|
n.subGrid.enableMove(doEnable, recurse);
|
|
1618
1616
|
});
|
|
@@ -1625,9 +1623,9 @@ class GridStack {
|
|
|
1625
1623
|
enableResize(doEnable, recurse = true) {
|
|
1626
1624
|
if (this.opts.staticGrid)
|
|
1627
1625
|
return this; // can't size a static grid!
|
|
1628
|
-
this.opts.disableResize =
|
|
1626
|
+
doEnable ? delete this.opts.disableResize : this.opts.disableResize = true; // FIRST before we update children as grid overrides #1658
|
|
1629
1627
|
this.engine.nodes.forEach(n => {
|
|
1630
|
-
this.
|
|
1628
|
+
this._prepareDragDropByNode(n);
|
|
1631
1629
|
if (n.subGrid && recurse)
|
|
1632
1630
|
n.subGrid.enableResize(doEnable, recurse);
|
|
1633
1631
|
});
|
|
@@ -1733,8 +1731,8 @@ class GridStack {
|
|
|
1733
1731
|
cellWidth = this.cellWidth();
|
|
1734
1732
|
cellHeight = this.getCellHeight(true);
|
|
1735
1733
|
// load any element attributes if we don't have a node
|
|
1736
|
-
if (!node) {
|
|
1737
|
-
node = this._readAttr(el);
|
|
1734
|
+
if (!node) {
|
|
1735
|
+
node = this._readAttr(el, false); // don't wipe external (e.g. drag toolbar) attr #2354
|
|
1738
1736
|
}
|
|
1739
1737
|
if (!node.grid) {
|
|
1740
1738
|
node._isExternal = true;
|
|
@@ -2147,6 +2145,6 @@ class GridStack {
|
|
|
2147
2145
|
GridStack.Utils = Utils;
|
|
2148
2146
|
/** scoping so users can call new GridStack.Engine(12) for example */
|
|
2149
2147
|
GridStack.Engine = GridStackEngine;
|
|
2150
|
-
GridStack.GDRev = '8.2.
|
|
2148
|
+
GridStack.GDRev = '8.2.2';
|
|
2151
2149
|
export { GridStack };
|
|
2152
2150
|
//# sourceMappingURL=gridstack.js.map
|