gridstack 11.0.1 → 11.1.0

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 +29 -16
  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 +28 -16
  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 +7 -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.0
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;
@@ -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) {
@@ -1696,20 +1708,21 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1696
1708
  * and remember the prev columns we used, or get our count from parent, as well as check for cellHeight==='auto' (square)
1697
1709
  * or `sizeToContent` gridItem options.
1698
1710
  */
1699
- GridStack.prototype.onResize = function () {
1711
+ GridStack.prototype.onResize = function (clientWidth) {
1700
1712
  var _a;
1701
- if (!((_a = this.el) === null || _a === void 0 ? void 0 : _a.clientWidth))
1713
+ if (clientWidth === void 0) { clientWidth = (_a = this.el) === null || _a === void 0 ? void 0 : _a.clientWidth; }
1714
+ if (!clientWidth)
1702
1715
  return; // return if we're gone or no size yet (will get called again)
1703
- if (this.prevWidth === this.el.clientWidth)
1716
+ if (this.prevWidth === clientWidth)
1704
1717
  return; // no-op
1705
- this.prevWidth = this.el.clientWidth;
1706
- // console.log('onResize ', this.el.clientWidth);
1718
+ this.prevWidth = clientWidth;
1719
+ // console.log('onResize ', clientWidth);
1707
1720
  this.batchUpdate();
1708
1721
  // see if we're nested and take our column count from our parent....
1709
1722
  var columnChanged = false;
1710
1723
  if (this._autoColumn && this.parentGridNode) {
1711
1724
  if (this.opts.column !== this.parentGridNode.w) {
1712
- this.column(this.parentGridNode.w, 'none');
1725
+ this.column(this.parentGridNode.w, this.opts.layout || 'list');
1713
1726
  columnChanged = true;
1714
1727
  }
1715
1728
  }
@@ -1741,7 +1754,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1741
1754
  // update any gridItem height with sizeToContent, but wait for DOM $animation_speed to settle if we changed column count
1742
1755
  // 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
1756
  if (delay && this.hasAnimationCSS())
1744
- return setTimeout(function () { return _this.resizeToContentCheck(false, n); }, 300 + 10);
1757
+ return setTimeout(function () { return _this.resizeToContentCheck(false, n); }, this.animationDelay);
1745
1758
  if (n) {
1746
1759
  if (utils_1.Utils.shouldSizeToContent(n))
1747
1760
  this.resizeToContentCBCheck(n.el);
@@ -2579,7 +2592,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2579
2592
  GridStack.Utils = utils_1.Utils;
2580
2593
  /** scoping so users can call new GridStack.Engine(12) for example */
2581
2594
  GridStack.Engine = gridstack_engine_1.GridStackEngine;
2582
- GridStack.GDRev = '11.0.1';
2595
+ GridStack.GDRev = '11.1.0';
2583
2596
  return GridStack;
2584
2597
  }());
2585
2598
  //# sourceMappingURL=gridstack.js.map