gridstack 8.2.1 → 8.2.3

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.
Files changed (115) hide show
  1. package/README.md +3 -3
  2. package/angular/README.md +21 -21
  3. package/angular/package.json +1 -1
  4. package/angular/projects/demo/src/app/app.component.ts +2 -3
  5. package/angular/projects/lib/package.json +1 -1
  6. package/angular/projects/lib/src/lib/base-widget.ts +1 -1
  7. package/angular/projects/lib/src/lib/gridstack-item.component.ts +1 -1
  8. package/angular/projects/lib/src/lib/gridstack.component.ts +1 -1
  9. package/angular/projects/lib/src/lib/gridstack.module.ts +1 -1
  10. package/dist/angular/README.md +21 -21
  11. package/dist/angular/esm2020/lib/base-widget.mjs +2 -2
  12. package/dist/angular/esm2020/lib/gridstack-item.component.mjs +2 -2
  13. package/dist/angular/esm2020/lib/gridstack.component.mjs +2 -2
  14. package/dist/angular/esm2020/lib/gridstack.module.mjs +2 -2
  15. package/dist/angular/fesm2015/gridstack-angular.mjs +4 -4
  16. package/dist/angular/fesm2015/gridstack-angular.mjs.map +1 -1
  17. package/dist/angular/fesm2020/gridstack-angular.mjs +4 -4
  18. package/dist/angular/fesm2020/gridstack-angular.mjs.map +1 -1
  19. package/dist/angular/lib/gridstack-item.component.d.ts +1 -1
  20. package/dist/angular/lib/gridstack.component.d.ts +1 -1
  21. package/dist/angular/package.json +1 -1
  22. package/dist/angular/src/base-widget.ts +1 -1
  23. package/dist/angular/src/gridstack-item.component.ts +1 -1
  24. package/dist/angular/src/gridstack.component.ts +1 -1
  25. package/dist/angular/src/gridstack.module.ts +1 -1
  26. package/dist/dd-base-impl.d.ts +1 -1
  27. package/dist/dd-base-impl.js +1 -1
  28. package/dist/dd-base-impl.js.map +1 -1
  29. package/dist/dd-draggable.d.ts +1 -1
  30. package/dist/dd-draggable.js +1 -2
  31. package/dist/dd-draggable.js.map +1 -1
  32. package/dist/dd-droppable.d.ts +1 -1
  33. package/dist/dd-droppable.js +1 -1
  34. package/dist/dd-droppable.js.map +1 -1
  35. package/dist/dd-element.d.ts +1 -1
  36. package/dist/dd-element.js +1 -1
  37. package/dist/dd-element.js.map +1 -1
  38. package/dist/dd-gridstack.d.ts +1 -1
  39. package/dist/dd-gridstack.js +1 -1
  40. package/dist/dd-gridstack.js.map +1 -1
  41. package/dist/dd-manager.d.ts +1 -1
  42. package/dist/dd-manager.js +1 -1
  43. package/dist/dd-manager.js.map +1 -1
  44. package/dist/dd-resizable-handle.d.ts +1 -1
  45. package/dist/dd-resizable-handle.js +1 -1
  46. package/dist/dd-resizable-handle.js.map +1 -1
  47. package/dist/dd-resizable.d.ts +1 -1
  48. package/dist/dd-resizable.js +1 -1
  49. package/dist/dd-resizable.js.map +1 -1
  50. package/dist/dd-touch.d.ts +1 -1
  51. package/dist/dd-touch.js +1 -1
  52. package/dist/dd-touch.js.map +1 -1
  53. package/dist/es5/dd-base-impl.d.ts +1 -1
  54. package/dist/es5/dd-base-impl.js +1 -1
  55. package/dist/es5/dd-base-impl.js.map +1 -1
  56. package/dist/es5/dd-draggable.d.ts +1 -1
  57. package/dist/es5/dd-draggable.js +1 -2
  58. package/dist/es5/dd-draggable.js.map +1 -1
  59. package/dist/es5/dd-droppable.d.ts +1 -1
  60. package/dist/es5/dd-droppable.js +1 -1
  61. package/dist/es5/dd-droppable.js.map +1 -1
  62. package/dist/es5/dd-element.d.ts +1 -1
  63. package/dist/es5/dd-element.js +1 -1
  64. package/dist/es5/dd-element.js.map +1 -1
  65. package/dist/es5/dd-gridstack.d.ts +1 -1
  66. package/dist/es5/dd-gridstack.js +1 -1
  67. package/dist/es5/dd-gridstack.js.map +1 -1
  68. package/dist/es5/dd-manager.d.ts +1 -1
  69. package/dist/es5/dd-manager.js +1 -1
  70. package/dist/es5/dd-manager.js.map +1 -1
  71. package/dist/es5/dd-resizable-handle.d.ts +1 -1
  72. package/dist/es5/dd-resizable-handle.js +1 -1
  73. package/dist/es5/dd-resizable-handle.js.map +1 -1
  74. package/dist/es5/dd-resizable.d.ts +1 -1
  75. package/dist/es5/dd-resizable.js +1 -1
  76. package/dist/es5/dd-resizable.js.map +1 -1
  77. package/dist/es5/dd-touch.d.ts +1 -1
  78. package/dist/es5/dd-touch.js +1 -1
  79. package/dist/es5/dd-touch.js.map +1 -1
  80. package/dist/es5/gridstack-all.js +1 -1
  81. package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
  82. package/dist/es5/gridstack-all.js.map +1 -1
  83. package/dist/es5/gridstack-engine.d.ts +1 -1
  84. package/dist/es5/gridstack-engine.js +1 -1
  85. package/dist/es5/gridstack-engine.js.map +1 -1
  86. package/dist/es5/gridstack-poly.js +1 -1
  87. package/dist/es5/gridstack.d.ts +4 -4
  88. package/dist/es5/gridstack.js +41 -43
  89. package/dist/es5/gridstack.js.map +1 -1
  90. package/dist/es5/types.d.ts +1 -1
  91. package/dist/es5/types.js +1 -1
  92. package/dist/es5/types.js.map +1 -1
  93. package/dist/es5/utils.d.ts +1 -1
  94. package/dist/es5/utils.js +3 -3
  95. package/dist/es5/utils.js.map +1 -1
  96. package/dist/gridstack-all.js +1 -1
  97. package/dist/gridstack-all.js.LICENSE.txt +1 -1
  98. package/dist/gridstack-all.js.map +1 -1
  99. package/dist/gridstack-engine.d.ts +1 -1
  100. package/dist/gridstack-engine.js +1 -1
  101. package/dist/gridstack-engine.js.map +1 -1
  102. package/dist/gridstack.css +11 -8
  103. package/dist/gridstack.d.ts +4 -4
  104. package/dist/gridstack.js +40 -43
  105. package/dist/gridstack.js.map +1 -1
  106. package/dist/gridstack.min.css +1 -1
  107. package/dist/src/gridstack.scss +12 -11
  108. package/dist/types.d.ts +1 -1
  109. package/dist/types.js +1 -1
  110. package/dist/types.js.map +1 -1
  111. package/dist/utils.d.ts +1 -1
  112. package/dist/utils.js +3 -3
  113. package/dist/utils.js.map +1 -1
  114. package/doc/CHANGES.md +7 -0
  115. package/package.json +1 -1
package/dist/gridstack.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * GridStack 8.2.1
2
+ * GridStack 8.2.3
3
3
  * https://gridstackjs.com/
4
4
  *
5
5
  * Copyright (c) 2021-2022 Alain Dumesny
@@ -617,7 +617,7 @@ class GridStack {
617
617
  // else get first cell height
618
618
  let el = this.el.querySelector('.' + this.opts.itemClass);
619
619
  if (el) {
620
- 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
621
621
  return Math.round(el.offsetHeight / height);
622
622
  }
623
623
  // else do entire grid and # of rows (but doesn't work if min-height is the actual constrain)
@@ -997,9 +997,9 @@ class GridStack {
997
997
  * @param recurse true (default) if sub-grids also get updated
998
998
  */
999
999
  setStatic(val, updateClass = true, recurse = true) {
1000
- if (this.opts.staticGrid === val)
1000
+ if (!!this.opts.staticGrid === val)
1001
1001
  return this;
1002
- this.opts.staticGrid = val;
1002
+ val ? this.opts.staticGrid = true : delete this.opts.staticGrid;
1003
1003
  this._setupRemoveDrop();
1004
1004
  this._setupAcceptWidget();
1005
1005
  this.engine.nodes.forEach(n => {
@@ -1314,16 +1314,12 @@ class GridStack {
1314
1314
  return this;
1315
1315
  }
1316
1316
  /** @internal call to read any default attributes from element */
1317
- _readAttr(el) {
1317
+ _readAttr(el, clearDefaultAttr = true) {
1318
1318
  let n = {};
1319
1319
  n.x = Utils.toNumber(el.getAttribute('gs-x'));
1320
1320
  n.y = Utils.toNumber(el.getAttribute('gs-y'));
1321
1321
  n.w = Utils.toNumber(el.getAttribute('gs-w'));
1322
1322
  n.h = Utils.toNumber(el.getAttribute('gs-h'));
1323
- if (!(n.w > 1))
1324
- el.removeAttribute('gs-w');
1325
- if (!(n.h > 1))
1326
- el.removeAttribute('gs-h');
1327
1323
  n.autoPosition = Utils.toBool(el.getAttribute('gs-auto-position'));
1328
1324
  n.noResize = Utils.toBool(el.getAttribute('gs-no-resize'));
1329
1325
  n.noMove = Utils.toBool(el.getAttribute('gs-no-move'));
@@ -1331,17 +1327,24 @@ class GridStack {
1331
1327
  n.id = el.getAttribute('gs-id');
1332
1328
  // read but never written out
1333
1329
  n.maxW = Utils.toNumber(el.getAttribute('gs-max-w'));
1334
- if (n.maxW)
1335
- el.removeAttribute('gs-max-w');
1336
1330
  n.minW = Utils.toNumber(el.getAttribute('gs-min-w'));
1337
- if (n.minW)
1338
- el.removeAttribute('gs-min-w');
1339
1331
  n.maxH = Utils.toNumber(el.getAttribute('gs-max-h'));
1340
- if (n.maxH)
1341
- el.removeAttribute('gs-max-h');
1342
1332
  n.minH = Utils.toNumber(el.getAttribute('gs-min-h'));
1343
- if (n.minH)
1344
- el.removeAttribute('gs-min-h');
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
+ }
1345
1348
  // remove any key not found (null or false which is default)
1346
1349
  for (const key in n) {
1347
1350
  if (!n.hasOwnProperty(key))
@@ -1532,40 +1535,34 @@ class GridStack {
1532
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.
1533
1536
  * IF you are looking to prevent an item from moving (due to being pushed around by another during collision) use locked property instead.
1534
1537
  * @param els widget or selector to modify.
1535
- * @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.
1536
1539
  */
1537
1540
  movable(els, val) {
1538
1541
  if (this.opts.staticGrid)
1539
1542
  return this; // can't move a static grid!
1540
1543
  GridStack.getElements(els).forEach(el => {
1541
- let node = el.gridstackNode;
1542
- if (!node)
1544
+ let n = el.gridstackNode;
1545
+ if (!n)
1543
1546
  return;
1544
- if (val)
1545
- delete node.noMove;
1546
- else
1547
- node.noMove = true;
1548
- 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
1549
1549
  });
1550
1550
  return this;
1551
1551
  }
1552
1552
  /**
1553
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.
1554
1554
  * @param els widget or selector to modify
1555
- * @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.
1556
1556
  */
1557
1557
  resizable(els, val) {
1558
1558
  if (this.opts.staticGrid)
1559
1559
  return this; // can't resize a static grid!
1560
1560
  GridStack.getElements(els).forEach(el => {
1561
- let node = el.gridstackNode;
1562
- if (!node)
1561
+ let n = el.gridstackNode;
1562
+ if (!n)
1563
1563
  return;
1564
- if (val)
1565
- delete node.noResize;
1566
- else
1567
- node.noResize = true;
1568
- 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
1569
1566
  });
1570
1567
  return this;
1571
1568
  }
@@ -1583,7 +1580,7 @@ class GridStack {
1583
1580
  if (this.opts.staticGrid)
1584
1581
  return;
1585
1582
  this.enableMove(false, recurse);
1586
- this.enableResize(false, recurse); // @ts-ignore
1583
+ this.enableResize(false, recurse);
1587
1584
  this._triggerEvent('disable');
1588
1585
  return this;
1589
1586
  }
@@ -1600,20 +1597,20 @@ class GridStack {
1600
1597
  if (this.opts.staticGrid)
1601
1598
  return;
1602
1599
  this.enableMove(true, recurse);
1603
- this.enableResize(true, recurse); // @ts-ignore
1600
+ this.enableResize(true, recurse);
1604
1601
  this._triggerEvent('enable');
1605
1602
  return this;
1606
1603
  }
1607
1604
  /**
1608
- * 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
1609
1606
  * @param recurse true (default) if sub-grids also get updated
1610
1607
  */
1611
1608
  enableMove(doEnable, recurse = true) {
1612
1609
  if (this.opts.staticGrid)
1613
1610
  return this; // can't move a static grid!
1614
- this.opts.disableDrag = !doEnable; // FIRST before we update children as grid overrides #1658
1611
+ doEnable ? delete this.opts.disableDrag : this.opts.disableDrag = true; // FIRST before we update children as grid overrides #1658
1615
1612
  this.engine.nodes.forEach(n => {
1616
- this.movable(n.el, doEnable);
1613
+ this._prepareDragDropByNode(n);
1617
1614
  if (n.subGrid && recurse)
1618
1615
  n.subGrid.enableMove(doEnable, recurse);
1619
1616
  });
@@ -1626,9 +1623,9 @@ class GridStack {
1626
1623
  enableResize(doEnable, recurse = true) {
1627
1624
  if (this.opts.staticGrid)
1628
1625
  return this; // can't size a static grid!
1629
- this.opts.disableResize = !doEnable; // FIRST before we update children as grid overrides #1658
1626
+ doEnable ? delete this.opts.disableResize : this.opts.disableResize = true; // FIRST before we update children as grid overrides #1658
1630
1627
  this.engine.nodes.forEach(n => {
1631
- this.resizable(n.el, doEnable);
1628
+ this._prepareDragDropByNode(n);
1632
1629
  if (n.subGrid && recurse)
1633
1630
  n.subGrid.enableResize(doEnable, recurse);
1634
1631
  });
@@ -1734,8 +1731,8 @@ class GridStack {
1734
1731
  cellWidth = this.cellWidth();
1735
1732
  cellHeight = this.getCellHeight(true);
1736
1733
  // load any element attributes if we don't have a node
1737
- if (!node) { // @ts-ignore private read only on ourself
1738
- node = this._readAttr(el);
1734
+ if (!node) {
1735
+ node = this._readAttr(el, false); // don't wipe external (e.g. drag toolbar) attr #2354
1739
1736
  }
1740
1737
  if (!node.grid) {
1741
1738
  node._isExternal = true;
@@ -2148,6 +2145,6 @@ class GridStack {
2148
2145
  GridStack.Utils = Utils;
2149
2146
  /** scoping so users can call new GridStack.Engine(12) for example */
2150
2147
  GridStack.Engine = GridStackEngine;
2151
- GridStack.GDRev = '8.2.1';
2148
+ GridStack.GDRev = '8.2.3';
2152
2149
  export { GridStack };
2153
2150
  //# sourceMappingURL=gridstack.js.map