gridstack 11.4.0 → 11.5.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 (106) hide show
  1. package/dist/angular/esm2020/lib/base-widget.mjs +2 -2
  2. package/dist/angular/esm2020/lib/gridstack-item.component.mjs +8 -8
  3. package/dist/angular/esm2020/lib/gridstack.component.mjs +13 -13
  4. package/dist/angular/esm2020/lib/gridstack.module.mjs +2 -2
  5. package/dist/angular/esm2020/lib/types.mjs +2 -2
  6. package/dist/angular/fesm2015/gridstack-angular.mjs +21 -21
  7. package/dist/angular/fesm2015/gridstack-angular.mjs.map +1 -1
  8. package/dist/angular/fesm2020/gridstack-angular.mjs +22 -22
  9. package/dist/angular/fesm2020/gridstack-angular.mjs.map +1 -1
  10. package/dist/angular/lib/gridstack-item.component.d.ts +1 -1
  11. package/dist/angular/lib/gridstack.component.d.ts +5 -5
  12. package/dist/angular/lib/types.d.ts +1 -1
  13. package/dist/angular/src/base-widget.ts +1 -1
  14. package/dist/angular/src/gridstack-item.component.ts +4 -4
  15. package/dist/angular/src/gridstack.component.ts +13 -14
  16. package/dist/angular/src/gridstack.module.ts +1 -1
  17. package/dist/dd-base-impl.d.ts +1 -1
  18. package/dist/dd-base-impl.js +1 -1
  19. package/dist/dd-base-impl.js.map +1 -1
  20. package/dist/dd-draggable.d.ts +1 -1
  21. package/dist/dd-draggable.js +1 -1
  22. package/dist/dd-draggable.js.map +1 -1
  23. package/dist/dd-droppable.d.ts +1 -1
  24. package/dist/dd-droppable.js +1 -1
  25. package/dist/dd-droppable.js.map +1 -1
  26. package/dist/dd-element.d.ts +1 -1
  27. package/dist/dd-element.js +1 -1
  28. package/dist/dd-element.js.map +1 -1
  29. package/dist/dd-gridstack.d.ts +1 -1
  30. package/dist/dd-gridstack.js +1 -1
  31. package/dist/dd-gridstack.js.map +1 -1
  32. package/dist/dd-manager.d.ts +1 -1
  33. package/dist/dd-manager.js +1 -1
  34. package/dist/dd-manager.js.map +1 -1
  35. package/dist/dd-resizable-handle.d.ts +1 -1
  36. package/dist/dd-resizable-handle.js +1 -1
  37. package/dist/dd-resizable-handle.js.map +1 -1
  38. package/dist/dd-resizable.d.ts +1 -1
  39. package/dist/dd-resizable.js +1 -1
  40. package/dist/dd-resizable.js.map +1 -1
  41. package/dist/dd-touch.d.ts +1 -1
  42. package/dist/dd-touch.js +2 -2
  43. package/dist/dd-touch.js.map +1 -1
  44. package/dist/es5/dd-base-impl.d.ts +1 -1
  45. package/dist/es5/dd-base-impl.js +1 -1
  46. package/dist/es5/dd-base-impl.js.map +1 -1
  47. package/dist/es5/dd-draggable.d.ts +1 -1
  48. package/dist/es5/dd-draggable.js +1 -1
  49. package/dist/es5/dd-draggable.js.map +1 -1
  50. package/dist/es5/dd-droppable.d.ts +1 -1
  51. package/dist/es5/dd-droppable.js +1 -1
  52. package/dist/es5/dd-droppable.js.map +1 -1
  53. package/dist/es5/dd-element.d.ts +1 -1
  54. package/dist/es5/dd-element.js +1 -1
  55. package/dist/es5/dd-element.js.map +1 -1
  56. package/dist/es5/dd-gridstack.d.ts +1 -1
  57. package/dist/es5/dd-gridstack.js +1 -1
  58. package/dist/es5/dd-gridstack.js.map +1 -1
  59. package/dist/es5/dd-manager.d.ts +1 -1
  60. package/dist/es5/dd-manager.js +1 -1
  61. package/dist/es5/dd-manager.js.map +1 -1
  62. package/dist/es5/dd-resizable-handle.d.ts +1 -1
  63. package/dist/es5/dd-resizable-handle.js +1 -1
  64. package/dist/es5/dd-resizable-handle.js.map +1 -1
  65. package/dist/es5/dd-resizable.d.ts +1 -1
  66. package/dist/es5/dd-resizable.js +1 -1
  67. package/dist/es5/dd-resizable.js.map +1 -1
  68. package/dist/es5/dd-touch.d.ts +1 -1
  69. package/dist/es5/dd-touch.js +4 -4
  70. package/dist/es5/dd-touch.js.map +1 -1
  71. package/dist/es5/gridstack-all.js +1 -1
  72. package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
  73. package/dist/es5/gridstack-all.js.map +1 -1
  74. package/dist/es5/gridstack-engine.d.ts +1 -1
  75. package/dist/es5/gridstack-engine.js +1 -1
  76. package/dist/es5/gridstack-engine.js.map +1 -1
  77. package/dist/es5/gridstack-poly.js +1 -1
  78. package/dist/es5/gridstack.d.ts +13 -3
  79. package/dist/es5/gridstack.js +90 -13
  80. package/dist/es5/gridstack.js.map +1 -1
  81. package/dist/es5/types.d.ts +1 -1
  82. package/dist/es5/types.js +1 -1
  83. package/dist/es5/types.js.map +1 -1
  84. package/dist/es5/utils.d.ts +1 -1
  85. package/dist/es5/utils.js +1 -1
  86. package/dist/es5/utils.js.map +1 -1
  87. package/dist/gridstack-all.js +1 -1
  88. package/dist/gridstack-all.js.LICENSE.txt +1 -1
  89. package/dist/gridstack-all.js.map +1 -1
  90. package/dist/gridstack-engine.d.ts +1 -1
  91. package/dist/gridstack-engine.js +1 -1
  92. package/dist/gridstack-engine.js.map +1 -1
  93. package/dist/gridstack.css +1 -1
  94. package/dist/gridstack.d.ts +13 -3
  95. package/dist/gridstack.js +88 -13
  96. package/dist/gridstack.js.map +1 -1
  97. package/dist/src/gridstack.scss +1 -1
  98. package/dist/types.d.ts +1 -1
  99. package/dist/types.js +1 -1
  100. package/dist/types.js.map +1 -1
  101. package/dist/utils.d.ts +1 -1
  102. package/dist/utils.js +1 -1
  103. package/dist/utils.js.map +1 -1
  104. package/doc/CHANGES.md +9 -0
  105. package/doc/README.md +6 -0
  106. 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.4.0
39
+ * GridStack 11.5.0
40
40
  * https://gridstackjs.com/
41
41
  *
42
42
  * Copyright (c) 2021-2024 Alain Dumesny
@@ -1223,6 +1223,54 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1223
1223
  }
1224
1224
  return this;
1225
1225
  };
1226
+ /**
1227
+ * Updates the passed in options on the grid (similar to update(widget) for for the grid options).
1228
+ * @param options PARTIAL grid options to update - only items specified will be updated.
1229
+ * NOTE: not all options updating are currently supported (lot of code, unlikely to change)
1230
+ */
1231
+ GridStack.prototype.updateOptions = function (o) {
1232
+ var _a;
1233
+ var opts = this.opts;
1234
+ if (o.acceptWidgets !== undefined)
1235
+ this._setupAcceptWidget();
1236
+ if (o.animate !== undefined)
1237
+ this.setAnimation();
1238
+ if (o.cellHeight) {
1239
+ this.cellHeight(o.cellHeight, true);
1240
+ delete o.cellHeight;
1241
+ }
1242
+ if (o.class && o.class !== opts.class) {
1243
+ if (opts.class)
1244
+ this.el.classList.remove(opts.class);
1245
+ this.el.classList.add(o.class);
1246
+ }
1247
+ if (typeof (o.column) === 'number' && !o.columnOpts) {
1248
+ this.column(o.column);
1249
+ delete o.column;
1250
+ } // responsive column take over actual count
1251
+ if (o.margin !== undefined)
1252
+ this.margin(o.margin);
1253
+ if (o.staticGrid !== undefined)
1254
+ this.setStatic(o.staticGrid);
1255
+ if (o.disableDrag !== undefined && !o.staticGrid)
1256
+ this.enableMove(!o.disableDrag);
1257
+ if (o.disableResize !== undefined && !o.staticGrid)
1258
+ this.enableResize(!o.disableResize);
1259
+ if (o.float !== undefined)
1260
+ this.float(o.float);
1261
+ if (o.row !== undefined) {
1262
+ opts.minRow = opts.maxRow = o.row;
1263
+ }
1264
+ if ((_a = o.children) === null || _a === void 0 ? void 0 : _a.length) {
1265
+ this.load(o.children);
1266
+ delete o.children;
1267
+ }
1268
+ // TBD if we have a real need for these (more complex code)
1269
+ // alwaysShowResizeHandle, draggable, handle, handleClass, itemClass, layout, placeholderClass, placeholderText, resizable, removable, row,...
1270
+ // rest are just copied over...
1271
+ this.opts = __assign(__assign({}, this.opts), o);
1272
+ return this;
1273
+ };
1226
1274
  /**
1227
1275
  * Updates widget position/size and other info. Note: if you need to call this on all nodes, use load() instead which will update what changed.
1228
1276
  * @param els widget or selector of objects to modify (note: setting the same x,y for multiple items will be indeterministic and likely unwanted)
@@ -1678,7 +1726,13 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1678
1726
  n.noResize = utils_1.Utils.toBool(el.getAttribute('gs-no-resize'));
1679
1727
  n.noMove = utils_1.Utils.toBool(el.getAttribute('gs-no-move'));
1680
1728
  n.locked = utils_1.Utils.toBool(el.getAttribute('gs-locked'));
1681
- n.sizeToContent = utils_1.Utils.toBool(el.getAttribute('gs-size-to-content'));
1729
+ var attr = el.getAttribute('gs-size-to-content');
1730
+ if (attr) {
1731
+ if (attr === 'true' || attr === 'false')
1732
+ n.sizeToContent = utils_1.Utils.toBool(attr);
1733
+ else
1734
+ n.sizeToContent = parseInt(attr, 10);
1735
+ }
1682
1736
  n.id = el.getAttribute('gs-id');
1683
1737
  // read but never written out
1684
1738
  n.maxW = utils_1.Utils.toNumber(el.getAttribute('gs-max-w'));
@@ -1700,11 +1754,11 @@ var GridStack = exports.GridStack = /** @class */ (function () {
1700
1754
  if (n.minH)
1701
1755
  el.removeAttribute('gs-min-h');
1702
1756
  }
1703
- // remove any key not found (null or false which is default)
1757
+ // remove any key not found (null or false which is default, unless sizeToContent=false override)
1704
1758
  for (var key in n) {
1705
1759
  if (!n.hasOwnProperty(key))
1706
1760
  return;
1707
- if (!n[key] && n[key] !== 0) { // 0 can be valid value (x,y only really)
1761
+ if (!n[key] && n[key] !== 0 && key !== 'gs-size-to-content') { // 0 can be valid value (x,y only really)
1708
1762
  delete n[key];
1709
1763
  }
1710
1764
  }
@@ -2156,6 +2210,11 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2156
2210
  // delete node._added; // reset this to track placeholder again in case we were over other grid #1484 (dropout doesn't always clear)
2157
2211
  return false; // prevent parent from receiving msg (which may be a grid as well)
2158
2212
  }
2213
+ // If sidebar item, restore the sidebar node size to ensure consistent behavior when dragging between grids
2214
+ if (node === null || node === void 0 ? void 0 : node._sidebarOrig) {
2215
+ node.w = node._sidebarOrig.w;
2216
+ node.h = node._sidebarOrig.h;
2217
+ }
2159
2218
  // fix #1578 when dragging fast, we may not get a leave on the previous grid so force one now
2160
2219
  if ((node === null || node === void 0 ? void 0 : node.grid) && node.grid !== _this && !node._temporaryRemoved) {
2161
2220
  // console.log('dropover without leave'); // TEST
@@ -2166,7 +2225,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2166
2225
  // cache cell dimensions (which don't change), position can animate if we removed an item in otherGrid that affects us...
2167
2226
  cellWidth = _this.cellWidth();
2168
2227
  cellHeight = _this.getCellHeight(true);
2169
- // sidebar items: load any element attributes if we don't have a node
2228
+ // sidebar items: load any element attributes if we don't have a node on first enter from the sidebar
2170
2229
  if (!node) {
2171
2230
  var attr = helper.getAttribute('data-gs-widget') || helper.getAttribute('gridstacknode'); // TBD: temp support for old V11.0.0 attribute
2172
2231
  if (attr) {
@@ -2181,6 +2240,8 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2181
2240
  }
2182
2241
  if (!node)
2183
2242
  node = _this._readAttr(helper); // used to pass false for #2354, but now we clone top level node
2243
+ // On first grid enter from sidebar, set the initial sidebar item size properties for the node
2244
+ node._sidebarOrig = { w: node.w, h: node.h };
2184
2245
  }
2185
2246
  if (!node.grid) { // sidebar item
2186
2247
  if (!node.el)
@@ -2350,20 +2411,30 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2350
2411
  }
2351
2412
  return this;
2352
2413
  };
2353
- /** prepares the element for drag&drop - this is normally called by makeWiget() unless are are delay loading */
2354
- GridStack.prototype.prepareDragDrop = function (el) {
2414
+ /**
2415
+ * prepares the element for drag&drop - this is normally called by makeWidget() unless are are delay loading
2416
+ * @param el GridItemHTMLElement of the widget
2417
+ * @param [force=false]
2418
+ * */
2419
+ GridStack.prototype.prepareDragDrop = function (el, force) {
2355
2420
  var _this = this;
2356
- var node = el.gridstackNode;
2421
+ if (force === void 0) { force = false; }
2422
+ var node = el === null || el === void 0 ? void 0 : el.gridstackNode;
2423
+ if (!node)
2424
+ return;
2357
2425
  var noMove = node.noMove || this.opts.disableDrag;
2358
2426
  var noResize = node.noResize || this.opts.disableResize;
2359
2427
  // check for disabled grid first
2360
- if (this.opts.staticGrid || (noMove && noResize)) {
2428
+ var disable = node.locked || this.opts.staticGrid || (noMove && noResize);
2429
+ if (force || disable) {
2361
2430
  if (node._initDD) {
2362
2431
  this._removeDD(el); // nukes everything instead of just disable, will add some styles back next
2363
2432
  delete node._initDD;
2364
2433
  }
2365
- el.classList.add('ui-draggable-disabled', 'ui-resizable-disabled'); // add styles one might depend on #1435
2366
- return this;
2434
+ if (disable) {
2435
+ el.classList.add('ui-draggable-disabled', 'ui-resizable-disabled'); // add styles one might depend on #1435
2436
+ return this;
2437
+ }
2367
2438
  }
2368
2439
  if (!node._initDD) {
2369
2440
  // variables used/cashed between the 3 start/move/end methods, in addition to node passed above
@@ -2579,7 +2650,10 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2579
2650
  this._extraDragRow = 0; // @ts-ignore
2580
2651
  this._updateContainerHeight();
2581
2652
  var target = event.target; // @ts-ignore
2582
- this._writePosAttr(target, node);
2653
+ // Do not write sidebar item attributes back to the original sidebar el
2654
+ if (!node._sidebarOrig) {
2655
+ this._writePosAttr(target, node);
2656
+ }
2583
2657
  if (this._gsEventHandler[event.type]) {
2584
2658
  this._gsEventHandler[event.type](event, target);
2585
2659
  }
@@ -2603,8 +2677,11 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2603
2677
  node._temporaryRemoved = true;
2604
2678
  this.engine.removeNode(node); // remove placeholder as well, otherwise it's a sign node is not in our list, which is a bigger issue
2605
2679
  node.el = node._isExternal && helper ? helper : el; // point back to real item being dragged
2680
+ var sidebarOrig = node._sidebarOrig;
2606
2681
  if (node._isExternal)
2607
2682
  this.engine.cleanupNode(node);
2683
+ // Restore sidebar item initial size info to stay consistent when dragging between multiple grids
2684
+ node._sidebarOrig = sidebarOrig;
2608
2685
  if (this.opts.removable === true) { // boolean vs a class string
2609
2686
  // item leaving us and we are supposed to remove on leave (no need to drag onto trash) mark it so
2610
2687
  GridStack._itemRemoving(el, true);
@@ -2634,7 +2711,7 @@ var GridStack = exports.GridStack = /** @class */ (function () {
2634
2711
  GridStack.Utils = utils_1.Utils;
2635
2712
  /** scoping so users can call new GridStack.Engine(12) for example */
2636
2713
  GridStack.Engine = gridstack_engine_1.GridStackEngine;
2637
- GridStack.GDRev = '11.4.0';
2714
+ GridStack.GDRev = '11.5.0';
2638
2715
  return GridStack;
2639
2716
  }());
2640
2717
  //# sourceMappingURL=gridstack.js.map