gridstack 11.0.1 → 11.1.1

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 (105) hide show
  1. package/README.md +4 -0
  2. package/dist/angular/README.md +6 -1
  3. package/dist/angular/esm2022/lib/base-widget.mjs +2 -2
  4. package/dist/angular/esm2022/lib/gridstack-item.component.mjs +2 -2
  5. package/dist/angular/esm2022/lib/gridstack.component.mjs +2 -2
  6. package/dist/angular/esm2022/lib/gridstack.module.mjs +2 -2
  7. package/dist/angular/fesm2022/gridstack-angular.mjs +4 -4
  8. package/dist/angular/fesm2022/gridstack-angular.mjs.map +1 -1
  9. package/dist/angular/lib/gridstack-item.component.d.ts +1 -1
  10. package/dist/angular/lib/gridstack.component.d.ts +1 -1
  11. package/dist/angular/package.json +1 -1
  12. package/dist/angular/src/base-widget.ts +1 -1
  13. package/dist/angular/src/gridstack-item.component.ts +1 -1
  14. package/dist/angular/src/gridstack.component.ts +1 -1
  15. package/dist/angular/src/gridstack.module.ts +1 -1
  16. package/dist/dd-base-impl.d.ts +1 -1
  17. package/dist/dd-base-impl.js +1 -1
  18. package/dist/dd-base-impl.js.map +1 -1
  19. package/dist/dd-draggable.d.ts +1 -1
  20. package/dist/dd-draggable.js +1 -1
  21. package/dist/dd-draggable.js.map +1 -1
  22. package/dist/dd-droppable.d.ts +1 -1
  23. package/dist/dd-droppable.js +1 -1
  24. package/dist/dd-droppable.js.map +1 -1
  25. package/dist/dd-element.d.ts +1 -1
  26. package/dist/dd-element.js +1 -1
  27. package/dist/dd-element.js.map +1 -1
  28. package/dist/dd-gridstack.d.ts +1 -1
  29. package/dist/dd-gridstack.js +1 -1
  30. package/dist/dd-gridstack.js.map +1 -1
  31. package/dist/dd-manager.d.ts +1 -1
  32. package/dist/dd-manager.js +1 -1
  33. package/dist/dd-manager.js.map +1 -1
  34. package/dist/dd-resizable-handle.d.ts +1 -1
  35. package/dist/dd-resizable-handle.js +1 -1
  36. package/dist/dd-resizable-handle.js.map +1 -1
  37. package/dist/dd-resizable.d.ts +1 -1
  38. package/dist/dd-resizable.js +1 -1
  39. package/dist/dd-resizable.js.map +1 -1
  40. package/dist/dd-touch.d.ts +1 -1
  41. package/dist/dd-touch.js +1 -1
  42. package/dist/dd-touch.js.map +1 -1
  43. package/dist/es5/dd-base-impl.d.ts +1 -1
  44. package/dist/es5/dd-base-impl.js +1 -1
  45. package/dist/es5/dd-base-impl.js.map +1 -1
  46. package/dist/es5/dd-draggable.d.ts +1 -1
  47. package/dist/es5/dd-draggable.js +1 -1
  48. package/dist/es5/dd-draggable.js.map +1 -1
  49. package/dist/es5/dd-droppable.d.ts +1 -1
  50. package/dist/es5/dd-droppable.js +1 -1
  51. package/dist/es5/dd-droppable.js.map +1 -1
  52. package/dist/es5/dd-element.d.ts +1 -1
  53. package/dist/es5/dd-element.js +1 -1
  54. package/dist/es5/dd-element.js.map +1 -1
  55. package/dist/es5/dd-gridstack.d.ts +1 -1
  56. package/dist/es5/dd-gridstack.js +1 -1
  57. package/dist/es5/dd-gridstack.js.map +1 -1
  58. package/dist/es5/dd-manager.d.ts +1 -1
  59. package/dist/es5/dd-manager.js +1 -1
  60. package/dist/es5/dd-manager.js.map +1 -1
  61. package/dist/es5/dd-resizable-handle.d.ts +1 -1
  62. package/dist/es5/dd-resizable-handle.js +1 -1
  63. package/dist/es5/dd-resizable-handle.js.map +1 -1
  64. package/dist/es5/dd-resizable.d.ts +1 -1
  65. package/dist/es5/dd-resizable.js +1 -1
  66. package/dist/es5/dd-resizable.js.map +1 -1
  67. package/dist/es5/dd-touch.d.ts +1 -1
  68. package/dist/es5/dd-touch.js +1 -1
  69. package/dist/es5/dd-touch.js.map +1 -1
  70. package/dist/es5/gridstack-all.js +1 -1
  71. package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
  72. package/dist/es5/gridstack-all.js.map +1 -1
  73. package/dist/es5/gridstack-engine.d.ts +2 -1
  74. package/dist/es5/gridstack-engine.js +23 -15
  75. package/dist/es5/gridstack-engine.js.map +1 -1
  76. package/dist/es5/gridstack-poly.js +1 -1
  77. package/dist/es5/gridstack.d.ts +5 -4
  78. package/dist/es5/gridstack.js +34 -18
  79. package/dist/es5/gridstack.js.map +1 -1
  80. package/dist/es5/types.d.ts +3 -1
  81. package/dist/es5/types.js +1 -1
  82. package/dist/es5/types.js.map +1 -1
  83. package/dist/es5/utils.d.ts +1 -1
  84. package/dist/es5/utils.js +1 -1
  85. package/dist/es5/utils.js.map +1 -1
  86. package/dist/gridstack-all.js +1 -1
  87. package/dist/gridstack-all.js.LICENSE.txt +1 -1
  88. package/dist/gridstack-all.js.map +1 -1
  89. package/dist/gridstack-engine.d.ts +2 -1
  90. package/dist/gridstack-engine.js +23 -15
  91. package/dist/gridstack-engine.js.map +1 -1
  92. package/dist/gridstack.css +1 -1
  93. package/dist/gridstack.d.ts +5 -4
  94. package/dist/gridstack.js +38 -18
  95. package/dist/gridstack.js.map +1 -1
  96. package/dist/src/gridstack.scss +1 -1
  97. package/dist/types.d.ts +3 -1
  98. package/dist/types.js +1 -1
  99. package/dist/types.js.map +1 -1
  100. package/dist/utils.d.ts +1 -1
  101. package/dist/utils.js +1 -1
  102. package/dist/utils.js.map +1 -1
  103. package/doc/CHANGES.md +12 -0
  104. package/doc/README.md +9 -8
  105. package/package.json +1 -1
@@ -36,7 +36,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.GridStack = void 0;
38
38
  /*!
39
- * GridStack 11.0.1
39
+ * GridStack 11.1.1
40
40
  * https://gridstackjs.com/
41
41
  *
42
42
  * Copyright (c) 2021-2024 Alain Dumesny
@@ -82,6 +82,8 @@ var GridStack = exports.GridStack = /** @class */ (function () {
82
82
  var _a, _b, _c;
83
83
  this.el = el;
84
84
  this.opts = opts;
85
+ /** time to wait for animation (if enabled) to be done so content sizing can happen */
86
+ this.animationDelay = 300 + 10;
85
87
  /** @internal */
86
88
  this._gsEventHandler = {};
87
89
  /** @internal extra row added when dragging at the bottom of the grid */
@@ -89,7 +91,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
89
91
  /** @internal meant to store the scale of the active grid */
90
92
  this.dragTransform = { xScale: 1, yScale: 1, xOffset: 0, yOffset: 0 };
91
93
  el.gridstack = this;
92
- opts = opts || {}; // handles null/undefined/0
94
+ this.opts = opts = opts || {}; // handles null/undefined/0
93
95
  if (!el.classList.contains('grid-stack')) {
94
96
  this.el.classList.add('grid-stack');
95
97
  }
@@ -411,7 +413,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
411
413
  var domAttr = this._readAttr(el);
412
414
  utils_1.Utils.defaults(w, domAttr);
413
415
  this.engine.prepareNode(w);
414
- this._writeAttr(el, w);
416
+ // this._writeAttr(el, w); why write possibly incorrect values back when makeWidget() will ?
415
417
  this.el.appendChild(el);
416
418
  this.makeWidget(el, w);
417
419
  return el;
@@ -442,7 +444,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
442
444
  grid = (_c = grid.parentGridNode) === null || _c === void 0 ? void 0 : _c.grid;
443
445
  }
444
446
  //... and set the create options
445
- ops = utils_1.Utils.cloneDeep(__assign(__assign(__assign({}, (subGridTemplate || {})), { children: undefined }), (ops || node.subGridOpts || {})));
447
+ ops = utils_1.Utils.cloneDeep(__assign(__assign(__assign(__assign({}, this.opts), { id: undefined, children: undefined, column: 'auto', columnOpts: undefined, layout: 'list', subGridOpts: undefined }), (subGridTemplate || {})), (ops || node.subGridOpts || {})));
446
448
  node.subGridOpts = ops;
447
449
  // if column special case it set, remember that flag and set default
448
450
  var autoColumn;
@@ -502,6 +504,8 @@ var GridStack = exports.GridStack = /** @class */ (function () {
502
504
  subGrid.makeWidget(node.el, node);
503
505
  }
504
506
  }
507
+ // if sizedToContent, we need to re-calc the size of ourself
508
+ this.resizeToContentCheck(false, node);
505
509
  return subGrid;
506
510
  };
507
511
  /**
@@ -626,6 +630,8 @@ var GridStack = exports.GridStack = /** @class */ (function () {
626
630
  // the original wanted layout so we can scale back up correctly #1471
627
631
  var maxColumn = 0;
628
632
  items.forEach(function (n) { maxColumn = Math.max(maxColumn, (n.x || 0) + n.w); });
633
+ if (maxColumn > this.engine.defaultColumn)
634
+ this.engine.defaultColumn = maxColumn;
629
635
  if (maxColumn > column) {
630
636
  this._ignoreLayoutsNodeChange = true; // skip layout update
631
637
  this.engine.cacheLayout(items, maxColumn, true);
@@ -682,8 +688,9 @@ var GridStack = exports.GridStack = /** @class */ (function () {
682
688
  }
683
689
  // add back to current list BUT force a collision check if it 'appears' we didn't change to make sure we don't overlap others now
684
690
  _this.engine.nodes.push(item);
685
- if (utils_1.Utils.samePos(item, w)) {
691
+ if (utils_1.Utils.samePos(item, w) && _this.engine.nodes.length > 1) {
686
692
  _this.moveNode(item, __assign(__assign({}, w), { forceCollide: true }));
693
+ utils_1.Utils.copyPos(w, item); // use possily updated values before update() is called next (no-op since already moved)
687
694
  }
688
695
  _this.update(item.el, w);
689
696
  if ((_a = w.subGridOpts) === null || _a === void 0 ? void 0 : _a.children) { // update any sub grid as well
@@ -994,8 +1001,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
994
1001
  *
995
1002
  * @example
996
1003
  * const grid = GridStack.init();
997
- * grid.el.appendChild('<div id="1" gs-w="3"></div>');
998
- * grid.el.appendChild('<div id="2"></div>');
1004
+ * grid.el.innerHtml = '<div id="1" gs-w="3"></div><div id="2"></div>';
999
1005
  * grid.makeWidget('1');
1000
1006
  * grid.makeWidget('2', {w:2, content: 'hello'});
1001
1007
  */
@@ -1217,7 +1223,6 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1217
1223
  var w = utils_1.Utils.cloneDeep(opt); // make a copy we can modify in case they re-use it or multiple items
1218
1224
  _this.engine.nodeBoundFix(w);
1219
1225
  delete w.autoPosition;
1220
- delete w.id;
1221
1226
  // move/resize widget if anything changed
1222
1227
  var keys = ['x', 'y', 'w', 'h'];
1223
1228
  var m;
@@ -1236,6 +1241,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1236
1241
  if (w.content !== undefined) {
1237
1242
  var itemContent = el.querySelector('.grid-stack-item-content');
1238
1243
  if (itemContent && itemContent.textContent !== w.content) {
1244
+ n.content = w.content;
1239
1245
  GridStack.renderCB(itemContent, w);
1240
1246
  // restore any sub-grid back
1241
1247
  if ((_a = n.subGrid) === null || _a === void 0 ? void 0 : _a.el) {
@@ -1261,7 +1267,13 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1261
1267
  if (m) {
1262
1268
  var widthChanged = (m.w !== undefined && m.w !== n.w);
1263
1269
  _this.moveNode(n, m);
1264
- _this.resizeToContentCheck(widthChanged, n); // wait for animation if we changed width
1270
+ if (widthChanged && n.subGrid) {
1271
+ // if we're animating the client size hasn't changed yet, so force a change (not exact size)
1272
+ n.subGrid.onResize(_this.hasAnimationCSS() ? n.w : undefined);
1273
+ }
1274
+ else {
1275
+ _this.resizeToContentCheck(widthChanged, n);
1276
+ }
1265
1277
  delete n._orig; // clear out original position now that we moved #2669
1266
1278
  }
1267
1279
  if (m || changed) {
@@ -1318,8 +1330,11 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1318
1330
  var itemH = n.h ? n.h * cell - padding : item.clientHeight; // calculated to what cellHeight is or will become (rather than actual to prevent waiting for animation to finish)
1319
1331
  var wantedH;
1320
1332
  if (n.subGrid) {
1321
- // sub-grid - use their actual row count * their cell height
1333
+ // sub-grid - use their actual row count * their cell height, BUT append any content outside of the grid (eg: above text)
1322
1334
  wantedH = n.subGrid.getRow() * n.subGrid.getCellHeight(true);
1335
+ var subRec = n.subGrid.el.getBoundingClientRect();
1336
+ var parentRec = n.subGrid.el.parentElement.getBoundingClientRect();
1337
+ wantedH += subRec.top - parentRec.top;
1323
1338
  }
1324
1339
  else if ((_b = (_a = n.subGridOpts) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.length) {
1325
1340
  // not sub-grid just yet (case above) wait until we do
@@ -1696,20 +1711,21 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1696
1711
  * and remember the prev columns we used, or get our count from parent, as well as check for cellHeight==='auto' (square)
1697
1712
  * or `sizeToContent` gridItem options.
1698
1713
  */
1699
- GridStack.prototype.onResize = function () {
1714
+ GridStack.prototype.onResize = function (clientWidth) {
1700
1715
  var _a;
1701
- if (!((_a = this.el) === null || _a === void 0 ? void 0 : _a.clientWidth))
1716
+ if (clientWidth === void 0) { clientWidth = (_a = this.el) === null || _a === void 0 ? void 0 : _a.clientWidth; }
1717
+ if (!clientWidth)
1702
1718
  return; // return if we're gone or no size yet (will get called again)
1703
- if (this.prevWidth === this.el.clientWidth)
1719
+ if (this.prevWidth === clientWidth)
1704
1720
  return; // no-op
1705
- this.prevWidth = this.el.clientWidth;
1706
- // console.log('onResize ', this.el.clientWidth);
1721
+ this.prevWidth = clientWidth;
1722
+ // console.log('onResize ', clientWidth);
1707
1723
  this.batchUpdate();
1708
1724
  // see if we're nested and take our column count from our parent....
1709
1725
  var columnChanged = false;
1710
1726
  if (this._autoColumn && this.parentGridNode) {
1711
1727
  if (this.opts.column !== this.parentGridNode.w) {
1712
- this.column(this.parentGridNode.w, 'none');
1728
+ this.column(this.parentGridNode.w, this.opts.layout || 'list');
1713
1729
  columnChanged = true;
1714
1730
  }
1715
1731
  }
@@ -1741,7 +1757,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1741
1757
  // update any gridItem height with sizeToContent, but wait for DOM $animation_speed to settle if we changed column count
1742
1758
  // TODO: is there a way to know what the final (post animation) size of the content will be so we can animate the column width and height together rather than sequentially ?
1743
1759
  if (delay && this.hasAnimationCSS())
1744
- return setTimeout(function () { return _this.resizeToContentCheck(false, n); }, 300 + 10);
1760
+ return setTimeout(function () { return _this.resizeToContentCheck(false, n); }, this.animationDelay);
1745
1761
  if (n) {
1746
1762
  if (utils_1.Utils.shouldSizeToContent(n))
1747
1763
  this.resizeToContentCBCheck(n.el);
@@ -2579,7 +2595,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2579
2595
  GridStack.Utils = utils_1.Utils;
2580
2596
  /** scoping so users can call new GridStack.Engine(12) for example */
2581
2597
  GridStack.Engine = gridstack_engine_1.GridStackEngine;
2582
- GridStack.GDRev = '11.0.1';
2598
+ GridStack.GDRev = '11.1.1';
2583
2599
  return GridStack;
2584
2600
  }());
2585
2601
  //# sourceMappingURL=gridstack.js.map