gridstack 11.1.2 → 11.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 (104) hide show
  1. package/dist/angular/esm2020/lib/base-widget.mjs +2 -2
  2. package/dist/angular/esm2020/lib/gridstack-item.component.mjs +2 -2
  3. package/dist/angular/esm2020/lib/gridstack.component.mjs +2 -2
  4. package/dist/angular/esm2020/lib/gridstack.module.mjs +2 -2
  5. package/dist/angular/fesm2015/gridstack-angular.mjs +4 -4
  6. package/dist/angular/fesm2015/gridstack-angular.mjs.map +1 -1
  7. package/dist/angular/fesm2020/gridstack-angular.mjs +4 -4
  8. package/dist/angular/fesm2020/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/src/base-widget.ts +1 -1
  12. package/dist/angular/src/gridstack-item.component.ts +1 -1
  13. package/dist/angular/src/gridstack.component.ts +1 -1
  14. package/dist/angular/src/gridstack.module.ts +1 -1
  15. package/dist/dd-base-impl.d.ts +1 -1
  16. package/dist/dd-base-impl.js +1 -1
  17. package/dist/dd-base-impl.js.map +1 -1
  18. package/dist/dd-draggable.d.ts +1 -1
  19. package/dist/dd-draggable.js +5 -7
  20. package/dist/dd-draggable.js.map +1 -1
  21. package/dist/dd-droppable.d.ts +1 -1
  22. package/dist/dd-droppable.js +1 -1
  23. package/dist/dd-droppable.js.map +1 -1
  24. package/dist/dd-element.d.ts +1 -1
  25. package/dist/dd-element.js +1 -1
  26. package/dist/dd-element.js.map +1 -1
  27. package/dist/dd-gridstack.d.ts +1 -1
  28. package/dist/dd-gridstack.js +1 -1
  29. package/dist/dd-gridstack.js.map +1 -1
  30. package/dist/dd-manager.d.ts +1 -1
  31. package/dist/dd-manager.js +1 -1
  32. package/dist/dd-manager.js.map +1 -1
  33. package/dist/dd-resizable-handle.d.ts +1 -1
  34. package/dist/dd-resizable-handle.js +1 -1
  35. package/dist/dd-resizable-handle.js.map +1 -1
  36. package/dist/dd-resizable.d.ts +1 -1
  37. package/dist/dd-resizable.js +1 -1
  38. package/dist/dd-resizable.js.map +1 -1
  39. package/dist/dd-touch.d.ts +1 -1
  40. package/dist/dd-touch.js +1 -1
  41. package/dist/dd-touch.js.map +1 -1
  42. package/dist/es5/dd-base-impl.d.ts +1 -1
  43. package/dist/es5/dd-base-impl.js +1 -1
  44. package/dist/es5/dd-base-impl.js.map +1 -1
  45. package/dist/es5/dd-draggable.d.ts +1 -1
  46. package/dist/es5/dd-draggable.js +6 -7
  47. package/dist/es5/dd-draggable.js.map +1 -1
  48. package/dist/es5/dd-droppable.d.ts +1 -1
  49. package/dist/es5/dd-droppable.js +1 -1
  50. package/dist/es5/dd-droppable.js.map +1 -1
  51. package/dist/es5/dd-element.d.ts +1 -1
  52. package/dist/es5/dd-element.js +1 -1
  53. package/dist/es5/dd-element.js.map +1 -1
  54. package/dist/es5/dd-gridstack.d.ts +1 -1
  55. package/dist/es5/dd-gridstack.js +1 -1
  56. package/dist/es5/dd-gridstack.js.map +1 -1
  57. package/dist/es5/dd-manager.d.ts +1 -1
  58. package/dist/es5/dd-manager.js +1 -1
  59. package/dist/es5/dd-manager.js.map +1 -1
  60. package/dist/es5/dd-resizable-handle.d.ts +1 -1
  61. package/dist/es5/dd-resizable-handle.js +1 -1
  62. package/dist/es5/dd-resizable-handle.js.map +1 -1
  63. package/dist/es5/dd-resizable.d.ts +1 -1
  64. package/dist/es5/dd-resizable.js +1 -1
  65. package/dist/es5/dd-resizable.js.map +1 -1
  66. package/dist/es5/dd-touch.d.ts +1 -1
  67. package/dist/es5/dd-touch.js +1 -1
  68. package/dist/es5/dd-touch.js.map +1 -1
  69. package/dist/es5/gridstack-all.js +1 -1
  70. package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
  71. package/dist/es5/gridstack-all.js.map +1 -1
  72. package/dist/es5/gridstack-engine.d.ts +3 -1
  73. package/dist/es5/gridstack-engine.js +4 -7
  74. package/dist/es5/gridstack-engine.js.map +1 -1
  75. package/dist/es5/gridstack-poly.js +1 -1
  76. package/dist/es5/gridstack.d.ts +3 -2
  77. package/dist/es5/gridstack.js +41 -19
  78. package/dist/es5/gridstack.js.map +1 -1
  79. package/dist/es5/types.d.ts +1 -1
  80. package/dist/es5/types.js +1 -1
  81. package/dist/es5/types.js.map +1 -1
  82. package/dist/es5/utils.d.ts +3 -3
  83. package/dist/es5/utils.js +5 -8
  84. package/dist/es5/utils.js.map +1 -1
  85. package/dist/gridstack-all.js +1 -1
  86. package/dist/gridstack-all.js.LICENSE.txt +1 -1
  87. package/dist/gridstack-all.js.map +1 -1
  88. package/dist/gridstack-engine.d.ts +3 -1
  89. package/dist/gridstack-engine.js +4 -7
  90. package/dist/gridstack-engine.js.map +1 -1
  91. package/dist/gridstack.css +1 -1
  92. package/dist/gridstack.d.ts +3 -2
  93. package/dist/gridstack.js +39 -19
  94. package/dist/gridstack.js.map +1 -1
  95. package/dist/src/gridstack.scss +1 -1
  96. package/dist/types.d.ts +1 -1
  97. package/dist/types.js +1 -1
  98. package/dist/types.js.map +1 -1
  99. package/dist/utils.d.ts +3 -3
  100. package/dist/utils.js +5 -8
  101. package/dist/utils.js.map +1 -1
  102. package/doc/CHANGES.md +14 -2
  103. package/doc/README.md +1 -0
  104. package/package.json +1 -1
package/dist/gridstack.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * GridStack 11.1.2
2
+ * GridStack 11.3.0
3
3
  * https://gridstackjs.com/
4
4
  *
5
5
  * Copyright (c) 2021-2024 Alain Dumesny
@@ -135,14 +135,11 @@ class GridStack {
135
135
  /** @internal create placeholder DIV as needed */
136
136
  get placeholder() {
137
137
  if (!this._placeholder) {
138
- const placeholderChild = document.createElement('div'); // child so padding match item-content
139
- placeholderChild.className = 'placeholder-content';
138
+ this._placeholder = Utils.createDiv([this.opts.placeholderClass, gridDefaults.itemClass, this.opts.itemClass]);
139
+ const placeholderChild = Utils.createDiv(['placeholder-content'], this._placeholder);
140
140
  if (this.opts.placeholderText) {
141
141
  placeholderChild.textContent = this.opts.placeholderText;
142
142
  }
143
- this._placeholder = document.createElement('div');
144
- this._placeholder.classList.add(this.opts.placeholderClass, gridDefaults.itemClass, this.opts.itemClass);
145
- this.placeholder.appendChild(placeholderChild);
146
143
  }
147
144
  return this._placeholder;
148
145
  }
@@ -338,7 +335,6 @@ class GridStack {
338
335
  * grid.addWidget({w: 3, content: 'hello'});
339
336
  *
340
337
  * @param w GridStackWidget definition. used MakeWidget(el) if you have dom element instead.
341
- * @param options widget position/size options (optional, and ignore if first param is already option) - see GridStackWidget
342
338
  */
343
339
  addWidget(w) {
344
340
  if (typeof w === 'string') {
@@ -580,16 +576,15 @@ class GridStack {
580
576
  items.forEach(n => { n.w = n.w || 1; n.h = n.h || 1; });
581
577
  // sort items. those without coord will be appended last
582
578
  items = Utils.sort(items);
579
+ this.engine.skipCacheUpdate = this._ignoreLayoutsNodeChange = true; // skip layout update
583
580
  // if we're loading a layout into for example 1 column and items don't fit, make sure to save
584
581
  // the original wanted layout so we can scale back up correctly #1471
585
582
  let maxColumn = 0;
586
583
  items.forEach(n => { maxColumn = Math.max(maxColumn, (n.x || 0) + n.w); });
587
584
  if (maxColumn > this.engine.defaultColumn)
588
585
  this.engine.defaultColumn = maxColumn;
589
- if (maxColumn > column) {
590
- this._ignoreLayoutsNodeChange = true; // skip layout update
586
+ if (maxColumn > column)
591
587
  this.engine.cacheLayout(items, maxColumn, true);
592
- }
593
588
  // if given a different callback, temporally set it as global option so creating will use it
594
589
  const prevCB = GridStack.addRemoveCB;
595
590
  if (typeof (addRemove) === 'function')
@@ -662,6 +657,7 @@ class GridStack {
662
657
  this.batchUpdate(false);
663
658
  // after commit, clear that flag
664
659
  delete this._ignoreLayoutsNodeChange;
660
+ delete this.engine.skipCacheUpdate;
665
661
  prevCB ? GridStack.addRemoveCB = prevCB : delete GridStack.addRemoveCB;
666
662
  // delay adding animation back
667
663
  if (blank && this.opts?.animate)
@@ -846,6 +842,8 @@ class GridStack {
846
842
  return Array.from(this.el.children)
847
843
  .filter((el) => el.matches('.' + this.opts.itemClass) && !el.matches('.' + this.opts.placeholderClass));
848
844
  }
845
+ /** true if changeCB should be ignored due to column change, sizeToContent, loading, etc... which caller can ignore for dirty flag case */
846
+ isIgnoreChangeCB() { return this._ignoreLayoutsNodeChange; }
849
847
  /**
850
848
  * Destroys a grid instance. DO NOT CALL any methods or access any vars after this as it will free up members.
851
849
  * @param removeDOM if `false` grid and items HTML elements will not be removed from the DOM (Optional. Default `true`).
@@ -866,10 +864,10 @@ class GridStack {
866
864
  this.el.parentNode.removeChild(this.el);
867
865
  }
868
866
  this._removeStylesheet();
869
- if (this.parentGridNode)
870
- delete this.parentGridNode.subGrid;
867
+ delete this.parentGridNode?.subGrid;
871
868
  delete this.parentGridNode;
872
869
  delete this.opts;
870
+ delete this._placeholder?.gridstackNode;
873
871
  delete this._placeholder;
874
872
  delete this.engine;
875
873
  delete this.el.gridstack; // remove circular dependency that would prevent a freeing
@@ -961,12 +959,14 @@ class GridStack {
961
959
  }
962
960
  // if we're adding an item into 1 column make sure
963
961
  // we don't override the larger 12 column layout that was already saved. #1985
964
- if (this.opts.column === 1) {
965
- this._ignoreLayoutsNodeChange = true;
962
+ let resetIgnoreLayoutsNodeChange;
963
+ if (this.opts.column === 1 && !this._ignoreLayoutsNodeChange) {
964
+ resetIgnoreLayoutsNodeChange = this._ignoreLayoutsNodeChange = true;
966
965
  }
967
966
  this._triggerAddEvent();
968
967
  this._triggerChangeEvent();
969
- delete this._ignoreLayoutsNodeChange;
968
+ if (resetIgnoreLayoutsNodeChange)
969
+ delete this._ignoreLayoutsNodeChange;
970
970
  return el;
971
971
  }
972
972
  on(name, callback) {
@@ -1910,6 +1910,22 @@ class GridStack {
1910
1910
  });
1911
1911
  return this;
1912
1912
  }
1913
+ /** @internal call when drag (and drop) needs to be cancelled (Esc key) */
1914
+ cancelDrag() {
1915
+ const n = this._placeholder?.gridstackNode;
1916
+ if (!n)
1917
+ return;
1918
+ if (n._isExternal) {
1919
+ // remove any newly inserted nodes (from outside)
1920
+ n._isAboutToRemove = true;
1921
+ this.engine.removeNode(n);
1922
+ }
1923
+ else if (n._isAboutToRemove) {
1924
+ // restore any temp removed (dragged over trash)
1925
+ GridStack._itemRemoving(n.el, false);
1926
+ }
1927
+ this.engine.restoreInitial();
1928
+ }
1913
1929
  /** @internal removes any drag&drop present (called during destroy) */
1914
1930
  _removeDD(el) {
1915
1931
  dd.draggable(el, 'destroy').resizable(el, 'destroy');
@@ -2028,13 +2044,15 @@ class GridStack {
2028
2044
  cellHeight = this.getCellHeight(true);
2029
2045
  // sidebar items: load any element attributes if we don't have a node
2030
2046
  if (!node) {
2031
- if (helper.hasAttribute('gridstacknode')) {
2047
+ const attr = helper.getAttribute('data-gs-widget') || helper.getAttribute('gridstacknode'); // TBD: temp support for old V11.0.0 attribute
2048
+ if (attr) {
2032
2049
  try {
2033
- node = JSON.parse(helper.getAttribute('gridstacknode'));
2050
+ node = JSON.parse(attr);
2034
2051
  }
2035
2052
  catch (error) {
2036
- console.error("Gridstack dropover: Bad JSON format: ", helper.getAttribute('gridstacknode'));
2053
+ console.error("Gridstack dropover: Bad JSON format: ", attr);
2037
2054
  }
2055
+ helper.removeAttribute('data-gs-widget');
2038
2056
  helper.removeAttribute('gridstacknode');
2039
2057
  }
2040
2058
  if (!node)
@@ -2107,6 +2125,7 @@ class GridStack {
2107
2125
  const wasAdded = !!this.placeholder.parentElement; // skip items not actually added to us because of constrains, but do cleanup #1419
2108
2126
  const wasSidebar = el !== helper;
2109
2127
  this.placeholder.remove();
2128
+ delete this.placeholder.gridstackNode;
2110
2129
  // disable animation when replacing a placeholder (already positioned) with actual content
2111
2130
  const noAnim = wasAdded && this.opts.animate;
2112
2131
  if (noAnim)
@@ -2241,6 +2260,7 @@ class GridStack {
2241
2260
  /** called when the item stops moving/resizing */
2242
2261
  const onEndMoving = (event) => {
2243
2262
  this.placeholder.remove();
2263
+ delete this.placeholder.gridstackNode;
2244
2264
  delete node._moving;
2245
2265
  delete node._event;
2246
2266
  delete node._lastTried;
@@ -2488,6 +2508,6 @@ GridStack.resizeToContentParent = '.grid-stack-item-content';
2488
2508
  GridStack.Utils = Utils;
2489
2509
  /** scoping so users can call new GridStack.Engine(12) for example */
2490
2510
  GridStack.Engine = GridStackEngine;
2491
- GridStack.GDRev = '11.1.2';
2511
+ GridStack.GDRev = '11.3.0';
2492
2512
  export { GridStack };
2493
2513
  //# sourceMappingURL=gridstack.js.map