gridstack 7.2.2 → 7.3.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 (95) hide show
  1. package/LICENSE +2 -10
  2. package/README.md +17 -17
  3. package/dist/angular/README.md +6 -5
  4. package/dist/angular/gridstack-item.component.ts +21 -5
  5. package/dist/angular/gridstack.component.ts +59 -46
  6. package/dist/dd-base-impl.d.ts +1 -1
  7. package/dist/dd-base-impl.js +1 -1
  8. package/dist/dd-base-impl.js.map +1 -1
  9. package/dist/dd-draggable.d.ts +1 -1
  10. package/dist/dd-draggable.js +4 -5
  11. package/dist/dd-draggable.js.map +1 -1
  12. package/dist/dd-droppable.d.ts +1 -1
  13. package/dist/dd-droppable.js +1 -1
  14. package/dist/dd-droppable.js.map +1 -1
  15. package/dist/dd-element.d.ts +1 -1
  16. package/dist/dd-element.js +1 -1
  17. package/dist/dd-element.js.map +1 -1
  18. package/dist/dd-gridstack.d.ts +1 -1
  19. package/dist/dd-gridstack.js +1 -1
  20. package/dist/dd-gridstack.js.map +1 -1
  21. package/dist/dd-manager.d.ts +1 -1
  22. package/dist/dd-manager.js +1 -1
  23. package/dist/dd-manager.js.map +1 -1
  24. package/dist/dd-resizable-handle.d.ts +1 -1
  25. package/dist/dd-resizable-handle.js +1 -1
  26. package/dist/dd-resizable-handle.js.map +1 -1
  27. package/dist/dd-resizable.d.ts +1 -1
  28. package/dist/dd-resizable.js +1 -1
  29. package/dist/dd-resizable.js.map +1 -1
  30. package/dist/dd-touch.d.ts +1 -1
  31. package/dist/dd-touch.js +2 -1
  32. package/dist/dd-touch.js.map +1 -1
  33. package/dist/es5/dd-base-impl.d.ts +1 -1
  34. package/dist/es5/dd-base-impl.js +1 -1
  35. package/dist/es5/dd-base-impl.js.map +1 -1
  36. package/dist/es5/dd-draggable.d.ts +1 -1
  37. package/dist/es5/dd-draggable.js +4 -5
  38. package/dist/es5/dd-draggable.js.map +1 -1
  39. package/dist/es5/dd-droppable.d.ts +1 -1
  40. package/dist/es5/dd-droppable.js +1 -1
  41. package/dist/es5/dd-droppable.js.map +1 -1
  42. package/dist/es5/dd-element.d.ts +1 -1
  43. package/dist/es5/dd-element.js +1 -1
  44. package/dist/es5/dd-element.js.map +1 -1
  45. package/dist/es5/dd-gridstack.d.ts +1 -1
  46. package/dist/es5/dd-gridstack.js +1 -1
  47. package/dist/es5/dd-gridstack.js.map +1 -1
  48. package/dist/es5/dd-manager.d.ts +1 -1
  49. package/dist/es5/dd-manager.js +1 -1
  50. package/dist/es5/dd-manager.js.map +1 -1
  51. package/dist/es5/dd-resizable-handle.d.ts +1 -1
  52. package/dist/es5/dd-resizable-handle.js +1 -1
  53. package/dist/es5/dd-resizable-handle.js.map +1 -1
  54. package/dist/es5/dd-resizable.d.ts +1 -1
  55. package/dist/es5/dd-resizable.js +1 -1
  56. package/dist/es5/dd-resizable.js.map +1 -1
  57. package/dist/es5/dd-touch.d.ts +1 -1
  58. package/dist/es5/dd-touch.js +2 -1
  59. package/dist/es5/dd-touch.js.map +1 -1
  60. package/dist/es5/gridstack-all.js +1 -1
  61. package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
  62. package/dist/es5/gridstack-all.js.map +1 -1
  63. package/dist/es5/gridstack-engine.d.ts +5 -3
  64. package/dist/es5/gridstack-engine.js +38 -19
  65. package/dist/es5/gridstack-engine.js.map +1 -1
  66. package/dist/es5/gridstack-poly.js +1 -1
  67. package/dist/es5/gridstack.d.ts +1 -1
  68. package/dist/es5/gridstack.js +43 -35
  69. package/dist/es5/gridstack.js.map +1 -1
  70. package/dist/es5/types.d.ts +14 -7
  71. package/dist/es5/types.js +2 -2
  72. package/dist/es5/types.js.map +1 -1
  73. package/dist/es5/utils.d.ts +4 -2
  74. package/dist/es5/utils.js +5 -2
  75. package/dist/es5/utils.js.map +1 -1
  76. package/dist/gridstack-all.js +1 -1
  77. package/dist/gridstack-all.js.LICENSE.txt +1 -1
  78. package/dist/gridstack-all.js.map +1 -1
  79. package/dist/gridstack-engine.d.ts +5 -3
  80. package/dist/gridstack-engine.js +36 -18
  81. package/dist/gridstack-engine.js.map +1 -1
  82. package/dist/gridstack.css +1 -1
  83. package/dist/gridstack.d.ts +1 -1
  84. package/dist/gridstack.js +43 -35
  85. package/dist/gridstack.js.map +1 -1
  86. package/dist/src/gridstack.scss +1 -1
  87. package/dist/types.d.ts +14 -7
  88. package/dist/types.js +2 -2
  89. package/dist/types.js.map +1 -1
  90. package/dist/utils.d.ts +4 -2
  91. package/dist/utils.js +5 -2
  92. package/dist/utils.js.map +1 -1
  93. package/doc/CHANGES.md +12 -0
  94. package/doc/README.md +4 -1
  95. package/package.json +9 -9
@@ -30,7 +30,7 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.GridStack = void 0;
32
32
  /*!
33
- * GridStack 7.2.2
33
+ * GridStack 7.3.0
34
34
  * https://gridstackjs.com/
35
35
  *
36
36
  * Copyright (c) 2021-2022 Alain Dumesny
@@ -182,20 +182,7 @@ var GridStack = /** @class */ (function () {
182
182
  });
183
183
  if (this.opts.auto) {
184
184
  this.batchUpdate(); // prevent in between re-layout #1535 TODO: this only set float=true, need to prevent collision check...
185
- var elements_1 = [];
186
- var column_1 = this.getColumn();
187
- if (column_1 === 1 && this._prevColumn)
188
- column_1 = this._prevColumn; // do 12 column when reading into 1 column mode
189
- this.getGridItems().forEach(function (el) {
190
- var x = parseInt(el.getAttribute('gs-x'));
191
- var y = parseInt(el.getAttribute('gs-y'));
192
- elements_1.push({
193
- el: el,
194
- // if x,y are missing (autoPosition) add them to end of list - but keep their respective DOM order
195
- i: (Number.isNaN(x) ? 1000 : x) + (Number.isNaN(y) ? 1000 : y) * column_1
196
- });
197
- });
198
- elements_1.sort(function (a, b) { return b.i - a.i; }).forEach(function (e) { return _this._prepareElement(e.el); }); // revert sort so lowest item wins
185
+ this.getGridItems().forEach(function (el) { return _this._prepareElement(el); });
199
186
  this.batchUpdate(false);
200
187
  }
201
188
  // load any passed in children as well, which overrides any DOM layout done above
@@ -296,11 +283,17 @@ var GridStack = /** @class */ (function () {
296
283
  return null;
297
284
  // create the grid element, but check if the passed 'parent' already has grid styling and should be used instead
298
285
  var el = parent;
299
- if (!parent.classList.contains('grid-stack')) {
300
- var doc = document.implementation.createHTMLDocument(''); // IE needs a param
301
- doc.body.innerHTML = "<div class=\"grid-stack " + (opt.class || '') + "\"></div>";
302
- el = doc.body.children[0];
303
- parent.appendChild(el);
286
+ var parentIsGrid = parent.classList.contains('grid-stack');
287
+ if (!parentIsGrid || opt.addRemoveCB) {
288
+ if (opt.addRemoveCB) {
289
+ el = opt.addRemoveCB(parent, opt, true, true);
290
+ }
291
+ else {
292
+ var doc = document.implementation.createHTMLDocument(''); // IE needs a param
293
+ doc.body.innerHTML = "<div class=\"grid-stack " + (opt.class || '') + "\"></div>";
294
+ el = doc.body.children[0];
295
+ parent.appendChild(el);
296
+ }
304
297
  }
305
298
  // create grid class and load any children
306
299
  var grid = GridStack.init(opt, el);
@@ -348,7 +341,7 @@ var GridStack = /** @class */ (function () {
348
341
  */
349
342
  GridStack.prototype.addWidget = function (els, options) {
350
343
  function isGridStackWidget(w) {
351
- return w.x !== undefined || w.y !== undefined || w.w !== undefined || w.h !== undefined || w.content !== undefined ? true : false;
344
+ return w.el !== undefined || w.x !== undefined || w.y !== undefined || w.w !== undefined || w.h !== undefined || w.content !== undefined ? true : false;
352
345
  }
353
346
  var el;
354
347
  var node;
@@ -363,7 +356,7 @@ var GridStack = /** @class */ (function () {
363
356
  el = node.el; // re-use element stored in the node
364
357
  }
365
358
  else if (this.opts.addRemoveCB) {
366
- el = this.opts.addRemoveCB(this, options, true);
359
+ el = this.opts.addRemoveCB(this.el, options, true, false);
367
360
  }
368
361
  else {
369
362
  var content = (options === null || options === void 0 ? void 0 : options.content) || '';
@@ -396,7 +389,7 @@ var GridStack = /** @class */ (function () {
396
389
  this._updateContainerHeight();
397
390
  // see if there is a sub-grid to create
398
391
  if (node.subGrid) {
399
- this.makeSubGrid(node.el, undefined, undefined, false);
392
+ this.makeSubGrid(node.el, undefined, undefined, false); //node.subGrid will be used as option in method, no need to pass
400
393
  }
401
394
  // if we're adding an item into 1 column (_prevColumn is set only when going to 1) make sure
402
395
  // we don't override the larger 12 column layout that was already saved. #1985
@@ -443,16 +436,11 @@ var GridStack = /** @class */ (function () {
443
436
  ops.disableOneColumnMode = true; // driven by parent
444
437
  }
445
438
  // if we're converting an existing full item, move over the content to be the first sub item in the new grid
446
- // TODO: support this.opts.addRemoveCB for frameworks
447
439
  var content = node.el.querySelector('.grid-stack-item-content');
448
440
  var newItem;
449
441
  var newItemOpt;
450
442
  if (saveContent) {
451
443
  this._removeDD(node.el); // remove D&D since it's set on content div
452
- var doc = document.implementation.createHTMLDocument(''); // IE needs a param
453
- doc.body.innerHTML = "<div class=\"grid-stack-item\"></div>";
454
- newItem = doc.body.children[0];
455
- newItem.appendChild(content);
456
444
  newItemOpt = __assign(__assign({}, node), { x: 0, y: 0 });
457
445
  utils_1.Utils.removeInternalForSave(newItemOpt);
458
446
  delete newItemOpt.subGrid;
@@ -460,9 +448,18 @@ var GridStack = /** @class */ (function () {
460
448
  newItemOpt.content = node.content;
461
449
  delete node.content;
462
450
  }
463
- doc.body.innerHTML = "<div class=\"grid-stack-item-content\"></div>";
464
- content = doc.body.children[0];
465
- node.el.appendChild(content);
451
+ if (this.opts.addRemoveCB) {
452
+ newItem = this.opts.addRemoveCB(this.el, newItemOpt, true, false);
453
+ }
454
+ else {
455
+ var doc = document.implementation.createHTMLDocument(''); // IE needs a param
456
+ doc.body.innerHTML = "<div class=\"grid-stack-item\"></div>";
457
+ newItem = doc.body.children[0];
458
+ newItem.appendChild(content);
459
+ doc.body.innerHTML = "<div class=\"grid-stack-item-content\"></div>";
460
+ content = doc.body.children[0];
461
+ node.el.appendChild(content);
462
+ }
466
463
  this._prepareDragDropByNode(node); // ... and restore original D&D
467
464
  }
468
465
  // if we're adding an additional item, make the container large enough to have them both
@@ -474,6 +471,9 @@ var GridStack = /** @class */ (function () {
474
471
  this.update(node.el, { w: w, h: h });
475
472
  setTimeout(function () { return style_1.transition = null; }); // recover animation
476
473
  }
474
+ if (this.opts.addRemoveCB) {
475
+ ops.addRemoveCB = ops.addRemoveCB || this.opts.addRemoveCB;
476
+ }
477
477
  var subGrid = node.subGrid = GridStack.addGrid(content, ops);
478
478
  if (nodeToAdd === null || nodeToAdd === void 0 ? void 0 : nodeToAdd._moving)
479
479
  subGrid._isTemp = true; // prevent re-nesting as we add over
@@ -514,6 +514,8 @@ var GridStack = /** @class */ (function () {
514
514
  pGrid.addWidget(n.el, n);
515
515
  });
516
516
  pGrid.batchUpdate(false);
517
+ if (this.parentGridItem)
518
+ delete this.parentGridItem.subGrid;
517
519
  delete this.parentGridItem;
518
520
  // create an artificial event for the original grid now that this one is gone (got a leave, but won't get enter)
519
521
  if (nodeThatRemoved) {
@@ -624,7 +626,7 @@ var GridStack = /** @class */ (function () {
624
626
  var item = items.find(function (w) { return n.id === w.id; });
625
627
  if (!item) {
626
628
  if (_this.opts.addRemoveCB)
627
- _this.opts.addRemoveCB(_this, n, false);
629
+ _this.opts.addRemoveCB(_this.el, n, false, false);
628
630
  removed.push(n); // batch keep track
629
631
  _this.removeWidget(n.el, true, false);
630
632
  }
@@ -826,6 +828,8 @@ var GridStack = /** @class */ (function () {
826
828
  }
827
829
  this._removeStylesheet();
828
830
  this.el.removeAttribute('gs-current-row');
831
+ if (this.parentGridItem)
832
+ delete this.parentGridItem.subGrid;
829
833
  delete this.parentGridItem;
830
834
  delete this.opts;
831
835
  delete this._placeholder;
@@ -1254,7 +1258,9 @@ var GridStack = /** @class */ (function () {
1254
1258
  if (!this._styles) {
1255
1259
  // insert style to parent (instead of 'head' by default) to support WebComponent
1256
1260
  var styleLocation = this.opts.styleInHead ? undefined : this.el.parentNode;
1257
- this._styles = utils_1.Utils.createStylesheet(this._styleSheetClass, styleLocation);
1261
+ this._styles = utils_1.Utils.createStylesheet(this._styleSheetClass, styleLocation, {
1262
+ nonce: this.opts.nonce,
1263
+ });
1258
1264
  if (!this._styles)
1259
1265
  return this;
1260
1266
  this._styles._max = 0;
@@ -2112,7 +2118,9 @@ var GridStack = /** @class */ (function () {
2112
2118
  return; // handled by dropover
2113
2119
  var distance = ui.position.top - node._prevYPix;
2114
2120
  node._prevYPix = ui.position.top;
2115
- utils_1.Utils.updateScrollPosition(el, ui.position, distance);
2121
+ if (this.opts.draggable.scroll !== false) {
2122
+ utils_1.Utils.updateScrollPosition(el, ui.position, distance);
2123
+ }
2116
2124
  // get new position taking into account the margin in the direction we are moving! (need to pass mid point by margin)
2117
2125
  var left = ui.position.left + (ui.position.left > node._lastUiPosition.left ? -mRight : mLeft);
2118
2126
  var top_2 = ui.position.top + (ui.position.top > node._lastUiPosition.top ? -mBottom : mTop);
@@ -2219,7 +2227,7 @@ var GridStack = /** @class */ (function () {
2219
2227
  GridStack.Utils = utils_1.Utils;
2220
2228
  /** scoping so users can call new GridStack.Engine(12) for example */
2221
2229
  GridStack.Engine = gridstack_engine_1.GridStackEngine;
2222
- GridStack.GDRev = '7.2.2';
2230
+ GridStack.GDRev = '7.3.0';
2223
2231
  return GridStack;
2224
2232
  }());
2225
2233
  exports.GridStack = GridStack;