gridstack 9.1.1 → 9.2.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 (110) hide show
  1. package/angular/projects/lib/package.json +1 -1
  2. package/angular/projects/lib/src/lib/base-widget.ts +1 -1
  3. package/angular/projects/lib/src/lib/gridstack-item.component.ts +1 -1
  4. package/angular/projects/lib/src/lib/gridstack.component.ts +1 -1
  5. package/angular/projects/lib/src/lib/gridstack.module.ts +1 -1
  6. package/dist/angular/esm2020/lib/base-widget.mjs +2 -2
  7. package/dist/angular/esm2020/lib/gridstack-item.component.mjs +2 -2
  8. package/dist/angular/esm2020/lib/gridstack.component.mjs +2 -2
  9. package/dist/angular/esm2020/lib/gridstack.module.mjs +2 -2
  10. package/dist/angular/fesm2015/gridstack-angular.mjs +4 -4
  11. package/dist/angular/fesm2015/gridstack-angular.mjs.map +1 -1
  12. package/dist/angular/fesm2020/gridstack-angular.mjs +4 -4
  13. package/dist/angular/fesm2020/gridstack-angular.mjs.map +1 -1
  14. package/dist/angular/lib/gridstack-item.component.d.ts +1 -1
  15. package/dist/angular/lib/gridstack.component.d.ts +1 -1
  16. package/dist/angular/package.json +1 -1
  17. package/dist/angular/src/base-widget.ts +1 -1
  18. package/dist/angular/src/gridstack-item.component.ts +1 -1
  19. package/dist/angular/src/gridstack.component.ts +1 -1
  20. package/dist/angular/src/gridstack.module.ts +1 -1
  21. package/dist/dd-base-impl.d.ts +1 -1
  22. package/dist/dd-base-impl.js +1 -1
  23. package/dist/dd-base-impl.js.map +1 -1
  24. package/dist/dd-draggable.d.ts +1 -1
  25. package/dist/dd-draggable.js +1 -1
  26. package/dist/dd-draggable.js.map +1 -1
  27. package/dist/dd-droppable.d.ts +1 -1
  28. package/dist/dd-droppable.js +1 -1
  29. package/dist/dd-droppable.js.map +1 -1
  30. package/dist/dd-element.d.ts +1 -1
  31. package/dist/dd-element.js +1 -1
  32. package/dist/dd-element.js.map +1 -1
  33. package/dist/dd-gridstack.d.ts +1 -1
  34. package/dist/dd-gridstack.js +1 -1
  35. package/dist/dd-gridstack.js.map +1 -1
  36. package/dist/dd-manager.d.ts +1 -1
  37. package/dist/dd-manager.js +1 -1
  38. package/dist/dd-manager.js.map +1 -1
  39. package/dist/dd-resizable-handle.d.ts +1 -1
  40. package/dist/dd-resizable-handle.js +1 -1
  41. package/dist/dd-resizable-handle.js.map +1 -1
  42. package/dist/dd-resizable.d.ts +1 -1
  43. package/dist/dd-resizable.js +1 -1
  44. package/dist/dd-resizable.js.map +1 -1
  45. package/dist/dd-touch.d.ts +1 -1
  46. package/dist/dd-touch.js +1 -1
  47. package/dist/dd-touch.js.map +1 -1
  48. package/dist/es5/dd-base-impl.d.ts +1 -1
  49. package/dist/es5/dd-base-impl.js +1 -1
  50. package/dist/es5/dd-base-impl.js.map +1 -1
  51. package/dist/es5/dd-draggable.d.ts +1 -1
  52. package/dist/es5/dd-draggable.js +1 -1
  53. package/dist/es5/dd-draggable.js.map +1 -1
  54. package/dist/es5/dd-droppable.d.ts +1 -1
  55. package/dist/es5/dd-droppable.js +1 -1
  56. package/dist/es5/dd-droppable.js.map +1 -1
  57. package/dist/es5/dd-element.d.ts +1 -1
  58. package/dist/es5/dd-element.js +1 -1
  59. package/dist/es5/dd-element.js.map +1 -1
  60. package/dist/es5/dd-gridstack.d.ts +1 -1
  61. package/dist/es5/dd-gridstack.js +1 -1
  62. package/dist/es5/dd-gridstack.js.map +1 -1
  63. package/dist/es5/dd-manager.d.ts +1 -1
  64. package/dist/es5/dd-manager.js +1 -1
  65. package/dist/es5/dd-manager.js.map +1 -1
  66. package/dist/es5/dd-resizable-handle.d.ts +1 -1
  67. package/dist/es5/dd-resizable-handle.js +1 -1
  68. package/dist/es5/dd-resizable-handle.js.map +1 -1
  69. package/dist/es5/dd-resizable.d.ts +1 -1
  70. package/dist/es5/dd-resizable.js +1 -1
  71. package/dist/es5/dd-resizable.js.map +1 -1
  72. package/dist/es5/dd-touch.d.ts +1 -1
  73. package/dist/es5/dd-touch.js +1 -1
  74. package/dist/es5/dd-touch.js.map +1 -1
  75. package/dist/es5/gridstack-all.js +1 -1
  76. package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
  77. package/dist/es5/gridstack-all.js.map +1 -1
  78. package/dist/es5/gridstack-engine.d.ts +1 -1
  79. package/dist/es5/gridstack-engine.js +4 -3
  80. package/dist/es5/gridstack-engine.js.map +1 -1
  81. package/dist/es5/gridstack-poly.js +1 -1
  82. package/dist/es5/gridstack.d.ts +7 -6
  83. package/dist/es5/gridstack.js +61 -41
  84. package/dist/es5/gridstack.js.map +1 -1
  85. package/dist/es5/types.d.ts +5 -5
  86. package/dist/es5/types.js +1 -1
  87. package/dist/es5/types.js.map +1 -1
  88. package/dist/es5/utils.d.ts +1 -1
  89. package/dist/es5/utils.js +1 -1
  90. package/dist/es5/utils.js.map +1 -1
  91. package/dist/gridstack-all.js +1 -1
  92. package/dist/gridstack-all.js.LICENSE.txt +1 -1
  93. package/dist/gridstack-all.js.map +1 -1
  94. package/dist/gridstack-engine.d.ts +1 -1
  95. package/dist/gridstack-engine.js +4 -3
  96. package/dist/gridstack-engine.js.map +1 -1
  97. package/dist/gridstack.css +1 -1
  98. package/dist/gridstack.d.ts +7 -6
  99. package/dist/gridstack.js +63 -43
  100. package/dist/gridstack.js.map +1 -1
  101. package/dist/src/gridstack.scss +1 -1
  102. package/dist/types.d.ts +5 -5
  103. package/dist/types.js +1 -1
  104. package/dist/types.js.map +1 -1
  105. package/dist/utils.d.ts +1 -1
  106. package/dist/utils.js +1 -1
  107. package/dist/utils.js.map +1 -1
  108. package/doc/CHANGES.md +9 -0
  109. package/doc/README.md +7 -0
  110. 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 9.1.1
39
+ * GridStack 9.2.1
40
40
  * https://gridstackjs.com/
41
41
  *
42
42
  * Copyright (c) 2021-2022 Alain Dumesny
@@ -590,7 +590,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
590
590
  *
591
591
  * @example
592
592
  * see http://gridstackjs.com/demo/serialization.html
593
- **/
593
+ */
594
594
  GridStack.prototype.load = function (layout, addRemove) {
595
595
  var _this = this;
596
596
  if (addRemove === void 0) { addRemove = GridStack.addRemoveCB || true; }
@@ -752,7 +752,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
752
752
  * 'compact' might re-order items to fill any empty space
753
753
  *
754
754
  * doSort - 'false' to let you do your own sorting ahead in case you need to control a different order. (default to sort)
755
- **/
755
+ */
756
756
  GridStack.prototype.compact = function (layout, doSort) {
757
757
  if (layout === void 0) { layout = 'compact'; }
758
758
  if (doSort === void 0) { doSort = true; }
@@ -1193,11 +1193,13 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1193
1193
  * Updates widget height to match the content height to avoid v-scrollbar or dead space.
1194
1194
  * Note: this assumes only 1 child under resizeToContentParent='.grid-stack-item-content' (sized to gridItem minus padding) that is at the entire content size wanted.
1195
1195
  * useAttrSize set to true if GridStackNode.h should be used instead of actual container height when we don't need to wait for animation to finish to get actual DOM heights
1196
- **/
1196
+ */
1197
1197
  GridStack.prototype.resizeToContent = function (el, useAttrSize) {
1198
1198
  if (useAttrSize === void 0) { useAttrSize = false; }
1199
- el === null || el === void 0 ? void 0 : el.classList.remove('size-to-content-max');
1200
- if (!(el === null || el === void 0 ? void 0 : el.clientHeight))
1199
+ if (!el)
1200
+ return;
1201
+ el.classList.remove('size-to-content-max');
1202
+ if (!el.clientHeight)
1201
1203
  return; // 0 when hidden, skip
1202
1204
  var n = el.gridstackNode;
1203
1205
  if (!n)
@@ -1218,15 +1220,22 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1218
1220
  item = el.querySelector(GridStack.resizeToContentParent);
1219
1221
  if (!item)
1220
1222
  return;
1221
- var child = item.firstElementChild;
1222
- // NOTE: clientHeight & getBoundingClientRect() is undefined for text and other leaf nodes. use <div> container!
1223
- if (!child) {
1224
- console.log("Error: resizeToContent() '".concat(GridStack.resizeToContentParent, "'.firstElementChild is null, make sure to have a div like container. Skipping sizing."));
1225
- return;
1226
- }
1227
1223
  var padding = el.clientHeight - item.clientHeight; // full - available height to our child (minus border, padding...)
1228
1224
  var itemH = useAttrSize && 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)
1229
- var wantedH = child.getBoundingClientRect().height || itemH;
1225
+ var wantedH;
1226
+ if (n.subGrid) {
1227
+ // sub-grid - use their actual row count * their cell height
1228
+ wantedH = n.subGrid.getRow() * n.subGrid.getCellHeight();
1229
+ }
1230
+ else {
1231
+ // NOTE: clientHeight & getBoundingClientRect() is undefined for text and other leaf nodes. use <div> container!
1232
+ var child = item.firstElementChild;
1233
+ if (!child) {
1234
+ console.log("Error: resizeToContent() '".concat(GridStack.resizeToContentParent, "'.firstElementChild is null, make sure to have a div like container. Skipping sizing."));
1235
+ return;
1236
+ }
1237
+ wantedH = child.getBoundingClientRect().height || itemH;
1238
+ }
1230
1239
  if (itemH === wantedH)
1231
1240
  return;
1232
1241
  height += wantedH - itemH;
@@ -1247,11 +1256,11 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1247
1256
  delete grid._ignoreLayoutsNodeChange;
1248
1257
  }
1249
1258
  };
1250
- /** call the user resize (so we can do extra work) else our build in version */
1259
+ /** call the user resize (so they can do extra work) else our build in version */
1251
1260
  GridStack.prototype.resizeToContentCheck = function (el, useAttr) {
1252
1261
  if (useAttr === void 0) { useAttr = false; }
1253
1262
  if (GridStack.resizeToContentCB)
1254
- GridStack.resizeToContentCB(el);
1263
+ GridStack.resizeToContentCB(el, useAttr);
1255
1264
  else
1256
1265
  this.resizeToContent(el, useAttr);
1257
1266
  };
@@ -1415,27 +1424,33 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1415
1424
  GridStack.prototype._updateContainerHeight = function () {
1416
1425
  if (!this.engine || this.engine.batchMode)
1417
1426
  return this;
1418
- var row = this.getRow() + this._extraDragRow; // checks for minRow already
1419
- // check for css min height
1420
- // Note: we don't handle %,rem correctly so comment out, beside we don't need need to create un-necessary
1421
- // rows as the CSS will make us bigger than our set height if needed... not sure why we had this.
1422
- // let cssMinHeight = parseInt(getComputedStyle(this.el)['min-height']);
1423
- // if (cssMinHeight > 0) {
1424
- // let minRow = Math.round(cssMinHeight / this.getCellHeight(true));
1425
- // if (row < minRow) {
1426
- // row = minRow;
1427
- // }
1428
- // }
1429
- this.el.setAttribute('gs-current-row', String(row));
1430
- if (row === 0) {
1431
- this.el.style.removeProperty('min-height');
1432
- return this;
1433
- }
1427
+ var parent = this.parentGridItem;
1428
+ var row = this.getRow() + this._extraDragRow; // this checks for minRow already
1434
1429
  var cellHeight = this.opts.cellHeight;
1435
1430
  var unit = this.opts.cellHeightUnit;
1436
1431
  if (!cellHeight)
1437
1432
  return this;
1438
- this.el.style.minHeight = row * cellHeight + unit;
1433
+ // check for css min height (non nested grid). TODO: support mismatch, say: min % while unit is px.
1434
+ if (!parent) {
1435
+ var cssMinHeight = utils_1.Utils.parseHeight(getComputedStyle(this.el)['minHeight']);
1436
+ if (cssMinHeight.h > 0 && cssMinHeight.unit === unit) {
1437
+ var minRow = Math.floor(cssMinHeight.h / cellHeight);
1438
+ if (row < minRow) {
1439
+ row = minRow;
1440
+ }
1441
+ }
1442
+ }
1443
+ this.el.setAttribute('gs-current-row', String(row));
1444
+ this.el.style.removeProperty('min-height');
1445
+ this.el.style.removeProperty('height');
1446
+ if (row) {
1447
+ // nested grids have 'insert:0' to fill the space of parent by default, but we may be taller so use min-height for possible scrollbars
1448
+ this.el.style[parent ? 'minHeight' : 'height'] = row * cellHeight + unit;
1449
+ }
1450
+ // if we're a nested grid inside an sizeToContent item, tell it to resize itself too
1451
+ if (parent && !parent.grid.engine.batchMode && utils_1.Utils.shouldSizeToContent(parent)) {
1452
+ parent.grid.resizeToContentCheck(parent.el);
1453
+ }
1439
1454
  return this;
1440
1455
  };
1441
1456
  /** @internal */
@@ -1589,7 +1604,9 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1589
1604
  if (n.subGrid)
1590
1605
  n.subGrid.onResize();
1591
1606
  });
1592
- this.doContentResize(columnChanged); // wait for anim of column changed (DOM reflow before we can size correctly)
1607
+ if (!this._skipInitialResize)
1608
+ this.doContentResize(columnChanged); // wait for anim of column changed (DOM reflow before we can size correctly)
1609
+ delete this._skipInitialResize;
1593
1610
  this.batchUpdate(false);
1594
1611
  return this;
1595
1612
  };
@@ -1605,7 +1622,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1605
1622
  if (utils_1.Utils.shouldSizeToContent(n))
1606
1623
  _this.resizeToContentCheck(n.el, useAttr);
1607
1624
  }
1608
- else {
1625
+ else if (_this.engine.nodes.some(function (n) { return utils_1.Utils.shouldSizeToContent(n); })) {
1609
1626
  var nodes = __spreadArray([], _this.engine.nodes, true); // in case order changes while resizing one
1610
1627
  _this.batchUpdate();
1611
1628
  nodes.forEach(function (n) {
@@ -1614,6 +1631,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1614
1631
  });
1615
1632
  _this.batchUpdate(false);
1616
1633
  }
1634
+ // call this regardless of shouldSizeToContent because widget might need to stretch to take available space after a resize
1617
1635
  if (_this._gsEventHandler['resizecontent'])
1618
1636
  _this._gsEventHandler['resizecontent'](null, n ? [n] : _this.engine.nodes);
1619
1637
  }, delay ? 300 + 10 : 0);
@@ -1624,11 +1642,13 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1624
1642
  if (forceRemove === void 0) { forceRemove = false; }
1625
1643
  // only add event if we're not nested (parent will call us) and we're auto sizing cells or supporting oneColumn (i.e. doing work)
1626
1644
  // or supporting new sizeToContent option.
1627
- var trackSize = !this.parentGridItem && (this._isAutoCellHeight || this.opts.sizeToContent || !this.opts.disableOneColumnMode || this.engine.nodes.find(function (n) { return n.sizeToContent; }));
1645
+ var trackSize = !this.parentGridItem && (this._isAutoCellHeight || this.opts.sizeToContent || !this.opts.disableOneColumnMode
1646
+ || this.engine.nodes.find(function (n) { return n.sizeToContent; }));
1628
1647
  if (!forceRemove && trackSize && !this.resizeObserver) {
1629
1648
  this._sizeThrottle = utils_1.Utils.throttle(function () { return _this.onResize(); }, this.opts.cellHeightThrottle);
1630
1649
  this.resizeObserver = new ResizeObserver(function (entries) { return _this._sizeThrottle(); });
1631
1650
  this.resizeObserver.observe(this.el);
1651
+ this._skipInitialResize = true; // makeWidget will originally have called on startup
1632
1652
  }
1633
1653
  else if ((forceRemove || !trackSize) && this.resizeObserver) {
1634
1654
  this.resizeObserver.disconnect();
@@ -1730,7 +1750,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1730
1750
  * @param dragIn string selector (ex: '.sidebar .grid-stack-item') or list of dom elements
1731
1751
  * @param dragInOptions options - see DDDragInOpt. (default: {handle: '.grid-stack-item-content', appendTo: 'body'}
1732
1752
  * @param root optional root which defaults to document (for shadow dom pas the parent HTMLDocument)
1733
- **/
1753
+ */
1734
1754
  GridStack.setupDragIn = function (dragIn, dragInOptions, root) {
1735
1755
  if (root === void 0) { root = document; }
1736
1756
  if ((dragInOptions === null || dragInOptions === void 0 ? void 0 : dragInOptions.pause) !== undefined) {
@@ -2120,7 +2140,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2120
2140
  }
2121
2141
  return this;
2122
2142
  };
2123
- /** @internal prepares the element for drag&drop **/
2143
+ /** @internal prepares the element for drag&drop */
2124
2144
  GridStack.prototype._prepareDragDropByNode = function (node) {
2125
2145
  var _this = this;
2126
2146
  var el = node.el;
@@ -2215,7 +2235,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2215
2235
  .resizable(el, noResize ? 'disable' : 'enable');
2216
2236
  return this;
2217
2237
  };
2218
- /** @internal handles actual drag/resize start **/
2238
+ /** @internal handles actual drag/resize start */
2219
2239
  GridStack.prototype._onStartMoving = function (el, event, ui, node, cellWidth, cellHeight) {
2220
2240
  this.engine.cleanNodes()
2221
2241
  .beginUpdate(node);
@@ -2246,7 +2266,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2246
2266
  }
2247
2267
  }
2248
2268
  };
2249
- /** @internal handles actual drag/resize **/
2269
+ /** @internal handles actual drag/resize */
2250
2270
  GridStack.prototype._dragOrResize = function (el, event, ui, node, cellWidth, cellHeight) {
2251
2271
  var p = __assign({}, node._orig); // could be undefined (_isExternal) which is ok (drag only set x,y and w,h will default to node value)
2252
2272
  var resizing;
@@ -2334,7 +2354,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2334
2354
  /** @internal called when item leaving our area by either cursor dropout event
2335
2355
  * or shape is outside our boundaries. remove it from us, and mark temporary if this was
2336
2356
  * our item to start with else restore prev node values from prev grid it came from.
2337
- **/
2357
+ */
2338
2358
  GridStack.prototype._leave = function (el, helper) {
2339
2359
  var node = el.gridstackNode;
2340
2360
  if (!node)
@@ -2372,7 +2392,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2372
2392
  GridStack.Utils = utils_1.Utils;
2373
2393
  /** scoping so users can call new GridStack.Engine(12) for example */
2374
2394
  GridStack.Engine = gridstack_engine_1.GridStackEngine;
2375
- GridStack.GDRev = '9.1.1';
2395
+ GridStack.GDRev = '9.2.1';
2376
2396
  return GridStack;
2377
2397
  }());
2378
2398
  //# sourceMappingURL=gridstack.js.map