gridstack 5.1.0 → 6.0.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 (168) hide show
  1. package/README.md +54 -42
  2. package/dist/{h5/dd-base-impl.d.ts → dd-base-impl.d.ts} +1 -1
  3. package/dist/{h5/dd-base-impl.js → dd-base-impl.js} +1 -3
  4. package/dist/dd-base-impl.js.map +1 -0
  5. package/dist/{es5/h5/dd-draggable.d.ts → dd-draggable.d.ts} +6 -7
  6. package/dist/dd-draggable.js +313 -0
  7. package/dist/dd-draggable.js.map +1 -0
  8. package/dist/{h5/dd-droppable.d.ts → dd-droppable.d.ts} +3 -2
  9. package/dist/dd-droppable.js +149 -0
  10. package/dist/dd-droppable.js.map +1 -0
  11. package/dist/{h5/dd-element.d.ts → dd-element.d.ts} +2 -2
  12. package/dist/{h5/dd-element.js → dd-element.js} +1 -1
  13. package/dist/dd-element.js.map +1 -0
  14. package/dist/dd-gridstack.d.ts +36 -0
  15. package/dist/{gridstack-dd.js → dd-gridstack.js} +159 -69
  16. package/dist/dd-gridstack.js.map +1 -0
  17. package/dist/dd-manager.d.ts +20 -0
  18. package/dist/{h5/dd-manager.js → dd-manager.js} +4 -1
  19. package/dist/dd-manager.js.map +1 -0
  20. package/dist/{es5/h5/dd-resizable-handle.d.ts → dd-resizable-handle.d.ts} +1 -1
  21. package/dist/{h5/dd-resizable-handle.js → dd-resizable-handle.js} +32 -8
  22. package/dist/dd-resizable-handle.js.map +1 -0
  23. package/dist/{es5/h5/dd-resizable.d.ts → dd-resizable.d.ts} +2 -2
  24. package/dist/{h5/dd-resizable.js → dd-resizable.js} +41 -28
  25. package/dist/dd-resizable.js.map +1 -0
  26. package/dist/dd-touch.d.ts +33 -0
  27. package/dist/dd-touch.js +179 -0
  28. package/dist/dd-touch.js.map +1 -0
  29. package/dist/es5/{h5/dd-base-impl.d.ts → dd-base-impl.d.ts} +1 -1
  30. package/dist/es5/{h5/dd-base-impl.js → dd-base-impl.js} +1 -3
  31. package/dist/es5/dd-base-impl.js.map +1 -0
  32. package/dist/{h5 → es5}/dd-draggable.d.ts +6 -7
  33. package/dist/es5/dd-draggable.js +335 -0
  34. package/dist/es5/dd-draggable.js.map +1 -0
  35. package/dist/es5/{h5/dd-droppable.d.ts → dd-droppable.d.ts} +3 -2
  36. package/dist/es5/dd-droppable.js +180 -0
  37. package/dist/es5/dd-droppable.js.map +1 -0
  38. package/dist/es5/{h5/dd-element.d.ts → dd-element.d.ts} +2 -2
  39. package/dist/es5/{h5/dd-element.js → dd-element.js} +1 -1
  40. package/dist/es5/dd-element.js.map +1 -0
  41. package/dist/es5/dd-gridstack.d.ts +36 -0
  42. package/dist/es5/{gridstack-dd.js → dd-gridstack.js} +169 -88
  43. package/dist/es5/dd-gridstack.js.map +1 -0
  44. package/dist/es5/dd-manager.d.ts +20 -0
  45. package/dist/es5/{h5/dd-manager.js → dd-manager.js} +4 -1
  46. package/dist/es5/dd-manager.js.map +1 -0
  47. package/dist/{h5 → es5}/dd-resizable-handle.d.ts +1 -1
  48. package/dist/es5/{h5/dd-resizable-handle.js → dd-resizable-handle.js} +32 -8
  49. package/dist/es5/dd-resizable-handle.js.map +1 -0
  50. package/dist/{h5 → es5}/dd-resizable.d.ts +2 -2
  51. package/dist/es5/{h5/dd-resizable.js → dd-resizable.js} +41 -28
  52. package/dist/es5/dd-resizable.js.map +1 -0
  53. package/dist/es5/dd-touch.d.ts +33 -0
  54. package/dist/es5/dd-touch.js +182 -0
  55. package/dist/es5/dd-touch.js.map +1 -0
  56. package/dist/es5/gridstack-all.js +3 -0
  57. package/dist/{gridstack-static.js.LICENSE.txt → es5/gridstack-all.js.LICENSE.txt} +1 -1
  58. package/dist/es5/gridstack-all.js.map +1 -0
  59. package/dist/es5/gridstack-engine.d.ts +2 -3
  60. package/dist/es5/gridstack-engine.js +18 -18
  61. package/dist/es5/gridstack-engine.js.map +1 -1
  62. package/dist/es5/gridstack-poly.js +1 -1
  63. package/dist/es5/gridstack.d.ts +8 -9
  64. package/dist/es5/gridstack.js +47 -35
  65. package/dist/es5/gridstack.js.map +1 -1
  66. package/dist/es5/types.d.ts +12 -16
  67. package/dist/es5/types.js +1 -1
  68. package/dist/es5/types.js.map +1 -1
  69. package/dist/es5/utils.d.ts +11 -1
  70. package/dist/es5/utils.js +67 -6
  71. package/dist/es5/utils.js.map +1 -1
  72. package/dist/gridstack-all.js +3 -0
  73. package/dist/{es5/gridstack-h5.js.LICENSE.txt → gridstack-all.js.LICENSE.txt} +1 -1
  74. package/dist/gridstack-all.js.map +1 -0
  75. package/dist/gridstack-engine.d.ts +2 -3
  76. package/dist/gridstack-engine.js +17 -18
  77. package/dist/gridstack-engine.js.map +1 -1
  78. package/dist/gridstack.css +21 -9
  79. package/dist/gridstack.d.ts +8 -9
  80. package/dist/gridstack.js +45 -35
  81. package/dist/gridstack.js.map +1 -1
  82. package/dist/gridstack.min.css +1 -1
  83. package/dist/src/gridstack.scss +19 -12
  84. package/dist/types.d.ts +12 -16
  85. package/dist/types.js +1 -1
  86. package/dist/types.js.map +1 -1
  87. package/dist/utils.d.ts +11 -1
  88. package/dist/utils.js +64 -6
  89. package/dist/utils.js.map +1 -1
  90. package/doc/CHANGES.md +16 -1
  91. package/doc/README.md +19 -20
  92. package/package.json +2 -2
  93. package/dist/es5/gridstack-dd.d.ts +0 -35
  94. package/dist/es5/gridstack-dd.js.map +0 -1
  95. package/dist/es5/gridstack-ddi.d.ts +0 -17
  96. package/dist/es5/gridstack-ddi.js +0 -31
  97. package/dist/es5/gridstack-ddi.js.map +0 -1
  98. package/dist/es5/gridstack-h5.d.ts +0 -10
  99. package/dist/es5/gridstack-h5.js +0 -3
  100. package/dist/es5/gridstack-h5.js.map +0 -1
  101. package/dist/es5/gridstack-jq.d.ts +0 -10
  102. package/dist/es5/gridstack-jq.js +0 -3
  103. package/dist/es5/gridstack-jq.js.LICENSE.txt +0 -99
  104. package/dist/es5/gridstack-jq.js.map +0 -1
  105. package/dist/es5/gridstack-static.d.ts +0 -9
  106. package/dist/es5/gridstack-static.js +0 -3
  107. package/dist/es5/gridstack-static.js.LICENSE.txt +0 -7
  108. package/dist/es5/gridstack-static.js.map +0 -1
  109. package/dist/es5/h5/dd-base-impl.js.map +0 -1
  110. package/dist/es5/h5/dd-draggable.js +0 -326
  111. package/dist/es5/h5/dd-draggable.js.map +0 -1
  112. package/dist/es5/h5/dd-droppable.js +0 -199
  113. package/dist/es5/h5/dd-droppable.js.map +0 -1
  114. package/dist/es5/h5/dd-element.js.map +0 -1
  115. package/dist/es5/h5/dd-manager.d.ts +0 -8
  116. package/dist/es5/h5/dd-manager.js.map +0 -1
  117. package/dist/es5/h5/dd-resizable-handle.js.map +0 -1
  118. package/dist/es5/h5/dd-resizable.js.map +0 -1
  119. package/dist/es5/h5/dd-utils.d.ts +0 -19
  120. package/dist/es5/h5/dd-utils.js +0 -111
  121. package/dist/es5/h5/dd-utils.js.map +0 -1
  122. package/dist/es5/h5/gridstack-dd-native.d.ts +0 -26
  123. package/dist/es5/h5/gridstack-dd-native.js +0 -175
  124. package/dist/es5/h5/gridstack-dd-native.js.map +0 -1
  125. package/dist/es5/jq/gridstack-dd-jqueryui.d.ts +0 -22
  126. package/dist/es5/jq/gridstack-dd-jqueryui.js +0 -162
  127. package/dist/es5/jq/gridstack-dd-jqueryui.js.map +0 -1
  128. package/dist/gridstack-dd.d.ts +0 -35
  129. package/dist/gridstack-dd.js.map +0 -1
  130. package/dist/gridstack-ddi.d.ts +0 -17
  131. package/dist/gridstack-ddi.js +0 -28
  132. package/dist/gridstack-ddi.js.map +0 -1
  133. package/dist/gridstack-h5.d.ts +0 -10
  134. package/dist/gridstack-h5.js +0 -3
  135. package/dist/gridstack-h5.js.LICENSE.txt +0 -7
  136. package/dist/gridstack-h5.js.map +0 -1
  137. package/dist/gridstack-jq.d.ts +0 -10
  138. package/dist/gridstack-jq.js +0 -3
  139. package/dist/gridstack-jq.js.LICENSE.txt +0 -99
  140. package/dist/gridstack-jq.js.map +0 -1
  141. package/dist/gridstack-static.d.ts +0 -9
  142. package/dist/gridstack-static.js +0 -3
  143. package/dist/gridstack-static.js.map +0 -1
  144. package/dist/h5/dd-base-impl.js.map +0 -1
  145. package/dist/h5/dd-draggable.js +0 -302
  146. package/dist/h5/dd-draggable.js.map +0 -1
  147. package/dist/h5/dd-droppable.js +0 -168
  148. package/dist/h5/dd-droppable.js.map +0 -1
  149. package/dist/h5/dd-element.js.map +0 -1
  150. package/dist/h5/dd-manager.d.ts +0 -8
  151. package/dist/h5/dd-manager.js.map +0 -1
  152. package/dist/h5/dd-resizable-handle.js.map +0 -1
  153. package/dist/h5/dd-resizable.js.map +0 -1
  154. package/dist/h5/dd-utils.d.ts +0 -19
  155. package/dist/h5/dd-utils.js +0 -94
  156. package/dist/h5/dd-utils.js.map +0 -1
  157. package/dist/h5/gridstack-dd-native.d.ts +0 -26
  158. package/dist/h5/gridstack-dd-native.js +0 -140
  159. package/dist/h5/gridstack-dd-native.js.map +0 -1
  160. package/dist/jq/gridstack-dd-jqueryui.d.ts +0 -22
  161. package/dist/jq/gridstack-dd-jqueryui.js +0 -133
  162. package/dist/jq/gridstack-dd-jqueryui.js.map +0 -1
  163. package/dist/jq/jquery-ui.js +0 -2
  164. package/dist/jq/jquery-ui.js.map +0 -1
  165. package/dist/jq/jquery.js +0 -2
  166. package/dist/jq/jquery.js.map +0 -1
  167. package/dist/jq/jquery.ui.touch-punch.js +0 -2
  168. package/dist/jq/jquery.ui.touch-punch.js.map +0 -1
package/dist/gridstack.js CHANGED
@@ -12,7 +12,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.GridStack = void 0;
14
14
  /*!
15
- * GridStack 5.1.0
15
+ * GridStack 6.0.1
16
16
  * https://gridstackjs.com/
17
17
  *
18
18
  * Copyright (c) 2021-2022 Alain Dumesny
@@ -20,12 +20,10 @@ exports.GridStack = void 0;
20
20
  */
21
21
  const gridstack_engine_1 = require("./gridstack-engine");
22
22
  const utils_1 = require("./utils");
23
- const gridstack_ddi_1 = require("./gridstack-ddi");
24
23
  // export all dependent file as well to make it easier for users to just import the main file
25
24
  __exportStar(require("./types"), exports);
26
25
  __exportStar(require("./utils"), exports);
27
26
  __exportStar(require("./gridstack-engine"), exports);
28
- __exportStar(require("./gridstack-ddi"), exports);
29
27
  // default values for grid options - used during init and when saving out
30
28
  const GridDefaults = {
31
29
  column: 12,
@@ -45,14 +43,12 @@ const GridDefaults = {
45
43
  float: false,
46
44
  staticGrid: false,
47
45
  animate: true,
48
- alwaysShowResizeHandle: false,
46
+ alwaysShowResizeHandle: 'mobile',
49
47
  resizable: {
50
- autoHide: true,
51
48
  handles: 'se'
52
49
  },
53
50
  draggable: {
54
51
  handle: '.grid-stack-item-content',
55
- scroll: false,
56
52
  appendTo: 'body'
57
53
  },
58
54
  disableDrag: false,
@@ -65,7 +61,7 @@ const GridDefaults = {
65
61
  marginUnit: 'px',
66
62
  cellHeightUnit: 'px',
67
63
  disableOneColumnMode: false,
68
- oneColumnModeDomSort: false
64
+ oneColumnModeDomSort: false,
69
65
  };
70
66
  /**
71
67
  * Main gridstack class - you will need to call `GridStack.init()` first to initialize your grid.
@@ -107,16 +103,15 @@ class GridStack {
107
103
  opts.oneColumnSize = opts.oneColumnSize || anyOpts.minWidth;
108
104
  delete anyOpts.minWidth;
109
105
  }
110
- // elements attributes override any passed options (like CSS style) - merge the two together
111
- let defaults = Object.assign(Object.assign({}, utils_1.Utils.cloneDeep(GridDefaults)), { column: utils_1.Utils.toNumber(el.getAttribute('gs-column')) || 12, minRow: rowAttr ? rowAttr : utils_1.Utils.toNumber(el.getAttribute('gs-min-row')) || 0, maxRow: rowAttr ? rowAttr : utils_1.Utils.toNumber(el.getAttribute('gs-max-row')) || 0, staticGrid: utils_1.Utils.toBool(el.getAttribute('gs-static')) || false, _styleSheetClass: 'grid-stack-instance-' + (Math.random() * 10000).toFixed(0), alwaysShowResizeHandle: opts.alwaysShowResizeHandle || false, resizable: {
112
- autoHide: !(opts.alwaysShowResizeHandle || false),
113
- handles: 'se'
114
- }, draggable: {
115
- handle: (opts.handleClass ? '.' + opts.handleClass : (opts.handle ? opts.handle : '')) || '.grid-stack-item-content',
116
- scroll: false,
117
- appendTo: 'body'
106
+ // save original setting so we can restore on save
107
+ if (opts.alwaysShowResizeHandle !== undefined) {
108
+ opts._alwaysShowResizeHandle = opts.alwaysShowResizeHandle;
109
+ }
110
+ // elements DOM attributes override any passed options (like CSS style) - merge the two together
111
+ let defaults = Object.assign(Object.assign({}, utils_1.Utils.cloneDeep(GridDefaults)), { column: utils_1.Utils.toNumber(el.getAttribute('gs-column')) || GridDefaults.column, minRow: rowAttr ? rowAttr : utils_1.Utils.toNumber(el.getAttribute('gs-min-row')) || GridDefaults.minRow, maxRow: rowAttr ? rowAttr : utils_1.Utils.toNumber(el.getAttribute('gs-max-row')) || GridDefaults.maxRow, staticGrid: utils_1.Utils.toBool(el.getAttribute('gs-static')) || GridDefaults.staticGrid, _styleSheetClass: 'grid-stack-instance-' + (Math.random() * 10000).toFixed(0), draggable: {
112
+ handle: (opts.handleClass ? '.' + opts.handleClass : (opts.handle ? opts.handle : '')) || GridDefaults.draggable.handle,
118
113
  }, removableOptions: {
119
- accept: '.' + (opts.itemClass || 'grid-stack-item')
114
+ accept: opts.itemClass ? '.' + opts.itemClass : GridDefaults.removableOptions.accept,
120
115
  } });
121
116
  if (el.getAttribute('gs-animate')) { // default to true, but if set to false use that instead
122
117
  defaults.animate = utils_1.Utils.toBool(el.getAttribute('gs-animate'));
@@ -156,6 +151,10 @@ class GridStack {
156
151
  }
157
152
  this.cellHeight(this.opts.cellHeight, false);
158
153
  }
154
+ // see if we need to adjust auto-hide
155
+ if (this.opts.alwaysShowResizeHandle === 'mobile') {
156
+ this.opts.alwaysShowResizeHandle = dd_touch_1.isTouch;
157
+ }
159
158
  this.el.classList.add(this.opts._styleSheetClass);
160
159
  this._setStaticClass();
161
160
  let engineClass = this.opts.engineClass || GridStack.engineClass || gridstack_engine_1.GridStackEngine;
@@ -195,7 +194,7 @@ class GridStack {
195
194
  });
196
195
  });
197
196
  elements.sort((a, b) => a.i - b.i).forEach(e => this._prepareElement(e.el));
198
- this.commit();
197
+ this.batchUpdate(false);
199
198
  }
200
199
  this.setAnimation(this.opts.animate);
201
200
  this._updateStyles();
@@ -446,6 +445,14 @@ class GridStack {
446
445
  o.column = 'auto';
447
446
  delete o.disableOneColumnMode;
448
447
  }
448
+ const origShow = o._alwaysShowResizeHandle;
449
+ delete o._alwaysShowResizeHandle;
450
+ if (origShow !== undefined) {
451
+ o.alwaysShowResizeHandle = origShow;
452
+ }
453
+ else {
454
+ delete o.alwaysShowResizeHandle;
455
+ }
449
456
  utils_1.Utils.removeInternalAndSame(o, GridDefaults);
450
457
  o.children = list;
451
458
  return o;
@@ -512,17 +519,23 @@ class GridStack {
512
519
  }
513
520
  });
514
521
  this.engine.removedNodes = removed;
515
- this.commit();
522
+ this.batchUpdate(false);
516
523
  // after commit, clear that flag
517
524
  delete this._ignoreLayoutsNodeChange;
518
525
  delete this._insertNotAppend;
519
526
  return this;
520
527
  }
521
528
  /**
522
- * Initializes batch updates. You will see no changes until `commit()` method is called.
529
+ * use before calling a bunch of `addWidget()` to prevent un-necessary relayouts in between (more efficient)
530
+ * and get a single event callback. You will see no changes until `batchUpdate(false)` is called.
523
531
  */
524
- batchUpdate() {
525
- this.engine.batchUpdate();
532
+ batchUpdate(flag = true) {
533
+ this.engine.batchUpdate(flag);
534
+ if (!flag) {
535
+ this._triggerRemoveEvent();
536
+ this._triggerAddEvent();
537
+ this._triggerChangeEvent();
538
+ }
526
539
  return this;
527
540
  }
528
541
  /**
@@ -595,16 +608,6 @@ class GridStack {
595
608
  // https://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively
596
609
  return (this.el.clientWidth || this.el.parentElement.clientWidth || window.innerWidth);
597
610
  }
598
- /**
599
- * Finishes batch updates. Updates DOM nodes. You must call it after batchUpdate.
600
- */
601
- commit() {
602
- this.engine.commit();
603
- this._triggerRemoveEvent();
604
- this._triggerAddEvent();
605
- this._triggerChangeEvent();
606
- return this;
607
- }
608
611
  /** re-layout grid items to reclaim any empty space */
609
612
  compact() {
610
613
  this.engine.compact();
@@ -852,7 +855,7 @@ class GridStack {
852
855
  return;
853
856
  // remove our DOM data (circular link) and drag&drop permanently
854
857
  delete el.gridstackNode;
855
- gridstack_ddi_1.GridStackDDI.get().remove(el);
858
+ this._removeDD(el);
856
859
  this.engine.removeNode(node, removeDOM, triggerEvent);
857
860
  if (removeDOM && el.parentElement) {
858
861
  el.remove(); // in batch mode engine.removeNode doesn't call back to remove DOM
@@ -872,7 +875,7 @@ class GridStack {
872
875
  // always remove our DOM data (circular link) before list gets emptied and drag&drop permanently
873
876
  this.engine.nodes.forEach(n => {
874
877
  delete n.el.gridstackNode;
875
- gridstack_ddi_1.GridStackDDI.get().remove(n.el);
878
+ this._removeDD(n.el);
876
879
  });
877
880
  this.engine.removeAll(removeDOM);
878
881
  this._triggerRemoveEvent();
@@ -1396,7 +1399,7 @@ class GridStack {
1396
1399
  return this;
1397
1400
  }
1398
1401
  /*
1399
- * drag&drop empty stubs that will be implemented in gridstack-dd.ts for non static grid
1402
+ * drag&drop empty stubs that will be implemented in dd-gridstack.ts for non static grid
1400
1403
  * so we don't incur the load unless needed.
1401
1404
  * NOTE: had to make those methods public in order to define them else as
1402
1405
  * GridStack.prototype._setupAcceptWidget = function()
@@ -1408,7 +1411,7 @@ class GridStack {
1408
1411
  * Called during GridStack.init() as options, but can also be called directly (last param are cached) in case the toolbar
1409
1412
  * is dynamically create and needs to change later.
1410
1413
  * @param dragIn string selector (ex: '.sidebar .grid-stack-item')
1411
- * @param dragInOptions options - see DDDragInOpt. (default: {revert: 'invalid', handle: '.grid-stack-item-content', scroll: false, appendTo: 'body'}
1414
+ * @param dragInOptions options - see DDDragInOpt. (default: {handle: '.grid-stack-item-content', appendTo: 'body'}
1412
1415
  **/
1413
1416
  static setupDragIn(dragIn, dragInOptions) { }
1414
1417
  /**
@@ -1451,6 +1454,8 @@ class GridStack {
1451
1454
  * Enables/disables widget resizing. No-op for static grids.
1452
1455
  */
1453
1456
  enableResize(doEnable) { return this; }
1457
+ /** @internal removes any drag&drop present (called during destroy) */
1458
+ _removeDD(el) { return this; }
1454
1459
  /** @internal called to add drag over support to support widgets */
1455
1460
  _setupAcceptWidget() { return this; }
1456
1461
  /** @internal called to setup a trash drop zone if the user specifies it */
@@ -1463,10 +1468,15 @@ class GridStack {
1463
1468
  _dragOrResize(el, event, ui, node, cellWidth, cellHeight) { return; }
1464
1469
  /** @internal called when a node leaves our area (mouse out or shape outside) **/
1465
1470
  _leave(el, helper) { return; }
1471
+ // legacy method removed
1472
+ commit() { utils_1.obsolete(this, this.batchUpdate(false), 'commit', 'batchUpdate', '5.2'); return this; }
1466
1473
  }
1467
1474
  exports.GridStack = GridStack;
1468
1475
  /** scoping so users can call GridStack.Utils.sort() for example */
1469
1476
  GridStack.Utils = utils_1.Utils;
1470
1477
  /** scoping so users can call new GridStack.Engine(12) for example */
1471
1478
  GridStack.Engine = gridstack_engine_1.GridStackEngine;
1479
+ GridStack.GDRev = '6.0.1';
1480
+ const dd_touch_1 = require("./dd-touch");
1481
+ __exportStar(require("./dd-gridstack"), exports);
1472
1482
  //# sourceMappingURL=gridstack.js.map