gridstack 4.3.1 → 4.4.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 (125) hide show
  1. package/README.md +14 -5
  2. package/dist/es5/gridstack-dd.d.ts +35 -0
  3. package/dist/es5/gridstack-dd.js +683 -0
  4. package/dist/es5/gridstack-dd.js.map +1 -0
  5. package/dist/es5/gridstack-ddi.d.ts +17 -0
  6. package/dist/es5/gridstack-ddi.js +31 -0
  7. package/dist/es5/gridstack-ddi.js.map +1 -0
  8. package/dist/es5/gridstack-engine.d.ts +93 -0
  9. package/dist/es5/gridstack-engine.js +955 -0
  10. package/dist/es5/gridstack-engine.js.map +1 -0
  11. package/dist/es5/gridstack-h5.d.ts +10 -0
  12. package/dist/es5/gridstack-h5.js +3 -0
  13. package/dist/es5/gridstack-h5.js.LICENSE.txt +7 -0
  14. package/dist/es5/gridstack-h5.js.map +1 -0
  15. package/dist/es5/gridstack-jq.d.ts +10 -0
  16. package/dist/es5/gridstack-jq.js +3 -0
  17. package/dist/es5/gridstack-jq.js.LICENSE.txt +99 -0
  18. package/dist/es5/gridstack-jq.js.map +1 -0
  19. package/dist/{gridstack-poly.js → es5/gridstack-poly.js} +152 -1
  20. package/dist/es5/gridstack-static.d.ts +9 -0
  21. package/dist/es5/gridstack-static.js +3 -0
  22. package/dist/es5/gridstack-static.js.LICENSE.txt +7 -0
  23. package/dist/es5/gridstack-static.js.map +1 -0
  24. package/dist/es5/gridstack.d.ts +346 -0
  25. package/dist/es5/gridstack.js +1482 -0
  26. package/dist/es5/gridstack.js.map +1 -0
  27. package/dist/es5/h5/dd-base-impl.d.ts +20 -0
  28. package/dist/es5/h5/dd-base-impl.js +43 -0
  29. package/dist/es5/h5/dd-base-impl.js.map +1 -0
  30. package/dist/es5/h5/dd-draggable.d.ts +30 -0
  31. package/dist/es5/h5/dd-draggable.js +319 -0
  32. package/dist/es5/h5/dd-draggable.js.map +1 -0
  33. package/dist/es5/h5/dd-droppable.d.ts +23 -0
  34. package/dist/es5/h5/dd-droppable.js +182 -0
  35. package/dist/es5/h5/dd-droppable.js.map +1 -0
  36. package/dist/es5/h5/dd-element.d.ts +27 -0
  37. package/dist/es5/h5/dd-element.js +96 -0
  38. package/dist/es5/h5/dd-element.js.map +1 -0
  39. package/dist/es5/h5/dd-manager.d.ts +8 -0
  40. package/dist/es5/h5/dd-manager.js +14 -0
  41. package/dist/es5/h5/dd-manager.js.map +1 -0
  42. package/dist/es5/h5/dd-resizable-handle.d.ts +14 -0
  43. package/dist/es5/h5/dd-resizable-handle.js +83 -0
  44. package/dist/es5/h5/dd-resizable-handle.js.map +1 -0
  45. package/dist/es5/h5/dd-resizable.d.ts +29 -0
  46. package/dist/es5/h5/dd-resizable.js +302 -0
  47. package/dist/es5/h5/dd-resizable.js.map +1 -0
  48. package/dist/es5/h5/dd-utils.d.ts +17 -0
  49. package/dist/es5/h5/dd-utils.js +99 -0
  50. package/dist/es5/h5/dd-utils.js.map +1 -0
  51. package/dist/es5/h5/gridstack-dd-native.d.ts +26 -0
  52. package/dist/es5/h5/gridstack-dd-native.js +175 -0
  53. package/dist/es5/h5/gridstack-dd-native.js.map +1 -0
  54. package/dist/es5/jq/gridstack-dd-jqueryui.d.ts +22 -0
  55. package/dist/es5/jq/gridstack-dd-jqueryui.js +162 -0
  56. package/dist/es5/jq/gridstack-dd-jqueryui.js.map +1 -0
  57. package/dist/es5/types.d.ts +258 -0
  58. package/dist/es5/types.js +7 -0
  59. package/dist/es5/types.js.map +1 -0
  60. package/dist/es5/utils.d.ts +73 -0
  61. package/dist/es5/utils.js +444 -0
  62. package/dist/es5/utils.js.map +1 -0
  63. package/dist/gridstack-dd.d.ts +1 -1
  64. package/dist/gridstack-dd.js +7 -5
  65. package/dist/gridstack-dd.js.map +1 -1
  66. package/dist/gridstack-ddi.d.ts +1 -1
  67. package/dist/gridstack-ddi.js +1 -1
  68. package/dist/gridstack-ddi.js.map +1 -1
  69. package/dist/gridstack-engine.d.ts +1 -1
  70. package/dist/gridstack-engine.js +63 -45
  71. package/dist/gridstack-engine.js.map +1 -1
  72. package/dist/gridstack-h5.d.ts +1 -1
  73. package/dist/gridstack-h5.js +1 -1
  74. package/dist/gridstack-h5.js.LICENSE.txt +1 -1
  75. package/dist/gridstack-h5.js.map +1 -1
  76. package/dist/gridstack-jq.d.ts +1 -1
  77. package/dist/gridstack-jq.js +1 -1
  78. package/dist/gridstack-jq.js.LICENSE.txt +1 -1
  79. package/dist/gridstack-jq.js.map +1 -1
  80. package/dist/gridstack-static.d.ts +1 -1
  81. package/dist/gridstack-static.js +1 -1
  82. package/dist/gridstack-static.js.LICENSE.txt +1 -1
  83. package/dist/gridstack-static.js.map +1 -1
  84. package/dist/gridstack.css +1 -2
  85. package/dist/gridstack.d.ts +1 -1
  86. package/dist/gridstack.js +13 -11
  87. package/dist/gridstack.js.map +1 -1
  88. package/dist/gridstack.min.css +1 -1
  89. package/dist/h5/dd-base-impl.d.ts +1 -1
  90. package/dist/h5/dd-base-impl.js +1 -1
  91. package/dist/h5/dd-base-impl.js.map +1 -1
  92. package/dist/h5/dd-draggable.d.ts +1 -1
  93. package/dist/h5/dd-draggable.js +1 -1
  94. package/dist/h5/dd-draggable.js.map +1 -1
  95. package/dist/h5/dd-droppable.d.ts +1 -1
  96. package/dist/h5/dd-droppable.js +1 -1
  97. package/dist/h5/dd-droppable.js.map +1 -1
  98. package/dist/h5/dd-element.d.ts +1 -1
  99. package/dist/h5/dd-element.js +1 -1
  100. package/dist/h5/dd-element.js.map +1 -1
  101. package/dist/h5/dd-manager.d.ts +1 -1
  102. package/dist/h5/dd-manager.js +1 -1
  103. package/dist/h5/dd-manager.js.map +1 -1
  104. package/dist/h5/dd-resizable-handle.d.ts +1 -1
  105. package/dist/h5/dd-resizable-handle.js +1 -1
  106. package/dist/h5/dd-resizable-handle.js.map +1 -1
  107. package/dist/h5/dd-resizable.d.ts +1 -1
  108. package/dist/h5/dd-resizable.js +1 -1
  109. package/dist/h5/dd-resizable.js.map +1 -1
  110. package/dist/h5/dd-utils.d.ts +1 -1
  111. package/dist/h5/dd-utils.js +1 -1
  112. package/dist/h5/dd-utils.js.map +1 -1
  113. package/dist/h5/gridstack-dd-native.d.ts +1 -1
  114. package/dist/h5/gridstack-dd-native.js +1 -1
  115. package/dist/h5/gridstack-dd-native.js.map +1 -1
  116. package/dist/jq/gridstack-dd-jqueryui.js.map +1 -1
  117. package/dist/src/gridstack.scss +2 -2
  118. package/dist/types.d.ts +3 -2
  119. package/dist/types.js +1 -1
  120. package/dist/types.js.map +1 -1
  121. package/dist/utils.d.ts +3 -1
  122. package/dist/utils.js +4 -4
  123. package/dist/utils.js.map +1 -1
  124. package/doc/CHANGES.md +7 -1
  125. package/package.json +5 -3
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * dd-elements.ts 4.4.0
4
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DDElement = void 0;
8
+ var dd_resizable_1 = require("./dd-resizable");
9
+ var dd_draggable_1 = require("./dd-draggable");
10
+ var dd_droppable_1 = require("./dd-droppable");
11
+ var DDElement = /** @class */ (function () {
12
+ function DDElement(el) {
13
+ this.el = el;
14
+ }
15
+ DDElement.init = function (el) {
16
+ if (!el.ddElement) {
17
+ el.ddElement = new DDElement(el);
18
+ }
19
+ return el.ddElement;
20
+ };
21
+ DDElement.prototype.on = function (eventName, callback) {
22
+ if (this.ddDraggable && ['drag', 'dragstart', 'dragstop'].indexOf(eventName) > -1) {
23
+ this.ddDraggable.on(eventName, callback);
24
+ }
25
+ else if (this.ddDroppable && ['drop', 'dropover', 'dropout'].indexOf(eventName) > -1) {
26
+ this.ddDroppable.on(eventName, callback);
27
+ }
28
+ else if (this.ddResizable && ['resizestart', 'resize', 'resizestop'].indexOf(eventName) > -1) {
29
+ this.ddResizable.on(eventName, callback);
30
+ }
31
+ return this;
32
+ };
33
+ DDElement.prototype.off = function (eventName) {
34
+ if (this.ddDraggable && ['drag', 'dragstart', 'dragstop'].indexOf(eventName) > -1) {
35
+ this.ddDraggable.off(eventName);
36
+ }
37
+ else if (this.ddDroppable && ['drop', 'dropover', 'dropout'].indexOf(eventName) > -1) {
38
+ this.ddDroppable.off(eventName);
39
+ }
40
+ else if (this.ddResizable && ['resizestart', 'resize', 'resizestop'].indexOf(eventName) > -1) {
41
+ this.ddResizable.off(eventName);
42
+ }
43
+ return this;
44
+ };
45
+ DDElement.prototype.setupDraggable = function (opts) {
46
+ if (!this.ddDraggable) {
47
+ this.ddDraggable = new dd_draggable_1.DDDraggable(this.el, opts);
48
+ }
49
+ else {
50
+ this.ddDraggable.updateOption(opts);
51
+ }
52
+ return this;
53
+ };
54
+ DDElement.prototype.cleanDraggable = function () {
55
+ if (this.ddDraggable) {
56
+ this.ddDraggable.destroy();
57
+ delete this.ddDraggable;
58
+ }
59
+ return this;
60
+ };
61
+ DDElement.prototype.setupResizable = function (opts) {
62
+ if (!this.ddResizable) {
63
+ this.ddResizable = new dd_resizable_1.DDResizable(this.el, opts);
64
+ }
65
+ else {
66
+ this.ddResizable.updateOption(opts);
67
+ }
68
+ return this;
69
+ };
70
+ DDElement.prototype.cleanResizable = function () {
71
+ if (this.ddResizable) {
72
+ this.ddResizable.destroy();
73
+ delete this.ddResizable;
74
+ }
75
+ return this;
76
+ };
77
+ DDElement.prototype.setupDroppable = function (opts) {
78
+ if (!this.ddDroppable) {
79
+ this.ddDroppable = new dd_droppable_1.DDDroppable(this.el, opts);
80
+ }
81
+ else {
82
+ this.ddDroppable.updateOption(opts);
83
+ }
84
+ return this;
85
+ };
86
+ DDElement.prototype.cleanDroppable = function () {
87
+ if (this.ddDroppable) {
88
+ this.ddDroppable.destroy();
89
+ delete this.ddDroppable;
90
+ }
91
+ return this;
92
+ };
93
+ return DDElement;
94
+ }());
95
+ exports.DDElement = DDElement;
96
+ //# sourceMappingURL=dd-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dd-element.js","sourceRoot":"","sources":["../../../src/h5/dd-element.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+CAA6D;AAE7D,+CAA6D;AAC7D,+CAA6D;AAM7D;IAYE,mBAAY,EAAiB;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAZM,cAAI,GAAX,UAAY,EAAiB;QAC3B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;YAAE,EAAE,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;SAAE;QACxD,OAAO,EAAE,CAAC,SAAS,CAAC;IACtB,CAAC;IAWM,sBAAE,GAAT,UAAU,SAAiB,EAAE,QAAqC;QAChE,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YACjF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAA8C,EAAE,QAAQ,CAAC,CAAC;SAC/E;aAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YACtF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAA4C,EAAE,QAAQ,CAAC,CAAC;SAC7E;aAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9F,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAoD,EAAE,QAAQ,CAAC,CAAC;SACrF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,uBAAG,GAAV,UAAW,SAAiB;QAC1B,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YACjF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAA8C,CAAC,CAAC;SACtE;aAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YACtF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAA4C,CAAC,CAAC;SACpE;aAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9F,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAoD,CAAC,CAAC;SAC5E;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kCAAc,GAArB,UAAsB,IAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kCAAc,GAArB;QACE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kCAAc,GAArB,UAAsB,IAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kCAAc,GAArB;QACE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kCAAc,GAArB,UAAsB,IAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kCAAc,GAArB;QACE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,gBAAC;AAAD,CAAC,AAxFD,IAwFC;AAxFY,8BAAS","sourcesContent":["/**\n * dd-elements.ts 4.4.0\n * Copyright (c) 2021 Alain Dumesny - see GridStack root license\n */\n\nimport { DDResizable, DDResizableOpt } from './dd-resizable';\nimport { GridItemHTMLElement } from './../types';\nimport { DDDraggable, DDDraggableOpt } from './dd-draggable';\nimport { DDDroppable, DDDroppableOpt } from './dd-droppable';\n\nexport interface DDElementHost extends GridItemHTMLElement {\n ddElement?: DDElement;\n}\n\nexport class DDElement {\n\n static init(el: DDElementHost): DDElement {\n if (!el.ddElement) { el.ddElement = new DDElement(el); }\n return el.ddElement;\n }\n\n public el: DDElementHost;\n public ddDraggable?: DDDraggable;\n public ddDroppable?: DDDroppable;\n public ddResizable?: DDResizable;\n\n constructor(el: DDElementHost) {\n this.el = el;\n }\n\n public on(eventName: string, callback: (event: MouseEvent) => void): DDElement {\n if (this.ddDraggable && ['drag', 'dragstart', 'dragstop'].indexOf(eventName) > -1) {\n this.ddDraggable.on(eventName as 'drag' | 'dragstart' | 'dragstop', callback);\n } else if (this.ddDroppable && ['drop', 'dropover', 'dropout'].indexOf(eventName) > -1) {\n this.ddDroppable.on(eventName as 'drop' | 'dropover' | 'dropout', callback);\n } else if (this.ddResizable && ['resizestart', 'resize', 'resizestop'].indexOf(eventName) > -1) {\n this.ddResizable.on(eventName as 'resizestart' | 'resize' | 'resizestop', callback);\n }\n return this;\n }\n\n public off(eventName: string): DDElement {\n if (this.ddDraggable && ['drag', 'dragstart', 'dragstop'].indexOf(eventName) > -1) {\n this.ddDraggable.off(eventName as 'drag' | 'dragstart' | 'dragstop');\n } else if (this.ddDroppable && ['drop', 'dropover', 'dropout'].indexOf(eventName) > -1) {\n this.ddDroppable.off(eventName as 'drop' | 'dropover' | 'dropout');\n } else if (this.ddResizable && ['resizestart', 'resize', 'resizestop'].indexOf(eventName) > -1) {\n this.ddResizable.off(eventName as 'resizestart' | 'resize' | 'resizestop');\n }\n return this;\n }\n\n public setupDraggable(opts: DDDraggableOpt): DDElement {\n if (!this.ddDraggable) {\n this.ddDraggable = new DDDraggable(this.el, opts);\n } else {\n this.ddDraggable.updateOption(opts);\n }\n return this;\n }\n\n public cleanDraggable(): DDElement {\n if (this.ddDraggable) {\n this.ddDraggable.destroy();\n delete this.ddDraggable;\n }\n return this;\n }\n\n public setupResizable(opts: DDResizableOpt): DDElement {\n if (!this.ddResizable) {\n this.ddResizable = new DDResizable(this.el, opts);\n } else {\n this.ddResizable.updateOption(opts);\n }\n return this;\n }\n\n public cleanResizable(): DDElement {\n if (this.ddResizable) {\n this.ddResizable.destroy();\n delete this.ddResizable;\n }\n return this;\n }\n\n public setupDroppable(opts: DDDroppableOpt): DDElement {\n if (!this.ddDroppable) {\n this.ddDroppable = new DDDroppable(this.el, opts);\n } else {\n this.ddDroppable.updateOption(opts);\n }\n return this;\n }\n\n public cleanDroppable(): DDElement {\n if (this.ddDroppable) {\n this.ddDroppable.destroy();\n delete this.ddDroppable;\n }\n return this;\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * dd-manager.ts 4.4.0
3
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
4
+ */
5
+ import { DDDraggable } from './dd-draggable';
6
+ export declare class DDManager {
7
+ static dragElement: DDDraggable;
8
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * dd-manager.ts 4.4.0
4
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DDManager = void 0;
8
+ var DDManager = /** @class */ (function () {
9
+ function DDManager() {
10
+ }
11
+ return DDManager;
12
+ }());
13
+ exports.DDManager = DDManager;
14
+ //# sourceMappingURL=dd-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dd-manager.js","sourceRoot":"","sources":["../../../src/h5/dd-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;IAAA;IAEA,CAAC;IAAD,gBAAC;AAAD,CAAC,AAFD,IAEC;AAFY,8BAAS","sourcesContent":["/**\n * dd-manager.ts 4.4.0\n * Copyright (c) 2021 Alain Dumesny - see GridStack root license\n */\n\nimport { DDDraggable } from './dd-draggable';\n\nexport class DDManager {\n static dragElement: DDDraggable;\n}\n"]}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * dd-resizable-handle.ts 4.4.0
3
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
4
+ */
5
+ export interface DDResizableHandleOpt {
6
+ start?: (event: any) => void;
7
+ move?: (event: any) => void;
8
+ stop?: (event: any) => void;
9
+ }
10
+ export declare class DDResizableHandle {
11
+ constructor(host: HTMLElement, direction: string, option: DDResizableHandleOpt);
12
+ /** call this when resize handle needs to be removed and cleaned up */
13
+ destroy(): DDResizableHandle;
14
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * dd-resizable-handle.ts 4.4.0
4
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DDResizableHandle = void 0;
8
+ var DDResizableHandle = /** @class */ (function () {
9
+ function DDResizableHandle(host, direction, option) {
10
+ /** @internal true after we've moved enough pixels to start a resize */
11
+ this.moving = false;
12
+ this.host = host;
13
+ this.dir = direction;
14
+ this.option = option;
15
+ // create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)
16
+ this._mouseDown = this._mouseDown.bind(this);
17
+ this._mouseMove = this._mouseMove.bind(this);
18
+ this._mouseUp = this._mouseUp.bind(this);
19
+ this._init();
20
+ }
21
+ /** @internal */
22
+ DDResizableHandle.prototype._init = function () {
23
+ var el = document.createElement('div');
24
+ el.classList.add('ui-resizable-handle');
25
+ el.classList.add("" + DDResizableHandle.prefix + this.dir);
26
+ el.style.zIndex = '100';
27
+ el.style.userSelect = 'none';
28
+ this.el = el;
29
+ this.host.appendChild(this.el);
30
+ this.el.addEventListener('mousedown', this._mouseDown);
31
+ return this;
32
+ };
33
+ /** call this when resize handle needs to be removed and cleaned up */
34
+ DDResizableHandle.prototype.destroy = function () {
35
+ if (this.moving)
36
+ this._mouseUp(this.mouseDownEvent);
37
+ this.el.removeEventListener('mousedown', this._mouseDown);
38
+ this.host.removeChild(this.el);
39
+ delete this.el;
40
+ delete this.host;
41
+ return this;
42
+ };
43
+ /** @internal called on mouse down on us: capture move on the entire document (mouse might not stay on us) until we release the mouse */
44
+ DDResizableHandle.prototype._mouseDown = function (e) {
45
+ e.preventDefault();
46
+ this.mouseDownEvent = e;
47
+ document.addEventListener('mousemove', this._mouseMove, true); // capture, not bubble
48
+ document.addEventListener('mouseup', this._mouseUp);
49
+ };
50
+ /** @internal */
51
+ DDResizableHandle.prototype._mouseMove = function (e) {
52
+ var s = this.mouseDownEvent;
53
+ // don't start unless we've moved at least 3 pixels
54
+ if (!this.moving && Math.abs(e.x - s.x) + Math.abs(e.y - s.y) > 2) {
55
+ this.moving = true;
56
+ this._triggerEvent('start', this.mouseDownEvent);
57
+ }
58
+ else if (this.moving) {
59
+ this._triggerEvent('move', e);
60
+ }
61
+ };
62
+ /** @internal */
63
+ DDResizableHandle.prototype._mouseUp = function (e) {
64
+ if (this.moving) {
65
+ this._triggerEvent('stop', e);
66
+ }
67
+ document.removeEventListener('mousemove', this._mouseMove, true);
68
+ document.removeEventListener('mouseup', this._mouseUp);
69
+ delete this.moving;
70
+ delete this.mouseDownEvent;
71
+ };
72
+ /** @internal */
73
+ DDResizableHandle.prototype._triggerEvent = function (name, event) {
74
+ if (this.option[name])
75
+ this.option[name](event);
76
+ return this;
77
+ };
78
+ /** @internal */
79
+ DDResizableHandle.prefix = 'ui-resizable-';
80
+ return DDResizableHandle;
81
+ }());
82
+ exports.DDResizableHandle = DDResizableHandle;
83
+ //# sourceMappingURL=dd-resizable-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dd-resizable-handle.js","sourceRoot":"","sources":["../../../src/h5/dd-resizable-handle.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * dd-resizable-handle.ts 4.4.0\n * Copyright (c) 2021 Alain Dumesny - see GridStack root license\n */\n\nexport interface DDResizableHandleOpt {\n start?: (event) => void;\n move?: (event) => void;\n stop?: (event) => void;\n}\n\nexport class DDResizableHandle {\n /** @internal */\n private el: HTMLElement;\n /** @internal */\n private host: HTMLElement;\n /** @internal */\n private option: DDResizableHandleOpt;\n /** @internal */\n private dir: string;\n /** @internal true after we've moved enough pixels to start a resize */\n private moving = false;\n /** @internal */\n private mouseDownEvent: MouseEvent;\n /** @internal */\n private static prefix = 'ui-resizable-';\n\n constructor(host: HTMLElement, direction: string, option: DDResizableHandleOpt) {\n this.host = host;\n this.dir = direction;\n this.option = option;\n // create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)\n this._mouseDown = this._mouseDown.bind(this);\n this._mouseMove = this._mouseMove.bind(this);\n this._mouseUp = this._mouseUp.bind(this);\n\n this._init();\n }\n\n /** @internal */\n private _init(): DDResizableHandle {\n const el = document.createElement('div');\n el.classList.add('ui-resizable-handle');\n el.classList.add(`${DDResizableHandle.prefix}${this.dir}`);\n el.style.zIndex = '100';\n el.style.userSelect = 'none';\n this.el = el;\n this.host.appendChild(this.el);\n this.el.addEventListener('mousedown', this._mouseDown);\n return this;\n }\n\n /** call this when resize handle needs to be removed and cleaned up */\n public destroy(): DDResizableHandle {\n if (this.moving) this._mouseUp(this.mouseDownEvent);\n this.el.removeEventListener('mousedown', this._mouseDown);\n this.host.removeChild(this.el);\n delete this.el;\n delete this.host;\n return this;\n }\n\n /** @internal called on mouse down on us: capture move on the entire document (mouse might not stay on us) until we release the mouse */\n private _mouseDown(e: MouseEvent): void {\n e.preventDefault();\n this.mouseDownEvent = e;\n document.addEventListener('mousemove', this._mouseMove, true); // capture, not bubble\n document.addEventListener('mouseup', this._mouseUp);\n }\n\n /** @internal */\n private _mouseMove(e: MouseEvent): void {\n let s = this.mouseDownEvent;\n // don't start unless we've moved at least 3 pixels\n if (!this.moving && Math.abs(e.x - s.x) + Math.abs(e.y - s.y) > 2) {\n this.moving = true;\n this._triggerEvent('start', this.mouseDownEvent);\n } else if (this.moving) {\n this._triggerEvent('move', e);\n }\n }\n\n /** @internal */\n private _mouseUp(e: MouseEvent): void {\n if (this.moving) {\n this._triggerEvent('stop', e);\n }\n document.removeEventListener('mousemove', this._mouseMove, true);\n document.removeEventListener('mouseup', this._mouseUp);\n delete this.moving;\n delete this.mouseDownEvent;\n }\n\n /** @internal */\n private _triggerEvent(name: string, event: MouseEvent): DDResizableHandle {\n if (this.option[name]) this.option[name](event);\n return this;\n }\n}\n"]}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * dd-resizable.ts 4.4.0
3
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
4
+ */
5
+ import { DDBaseImplement, HTMLElementExtendOpt } from './dd-base-impl';
6
+ import { DDUIData } from '../types';
7
+ export interface DDResizableOpt {
8
+ autoHide?: boolean;
9
+ handles?: string;
10
+ maxHeight?: number;
11
+ maxWidth?: number;
12
+ minHeight?: number;
13
+ minWidth?: number;
14
+ basePosition?: 'fixed' | 'absolute';
15
+ start?: (event: Event, ui: DDUIData) => void;
16
+ stop?: (event: Event) => void;
17
+ resize?: (event: Event, ui: DDUIData) => void;
18
+ }
19
+ export declare class DDResizable extends DDBaseImplement implements HTMLElementExtendOpt<DDResizableOpt> {
20
+ el: HTMLElement;
21
+ option: DDResizableOpt;
22
+ constructor(el: HTMLElement, opts?: DDResizableOpt);
23
+ on(event: 'resizestart' | 'resize' | 'resizestop', callback: (event: DragEvent) => void): void;
24
+ off(event: 'resizestart' | 'resize' | 'resizestop'): void;
25
+ enable(): void;
26
+ disable(): void;
27
+ destroy(): void;
28
+ updateOption(opts: DDResizableOpt): DDResizable;
29
+ }
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ /**
3
+ * dd-resizable.ts 4.4.0
4
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
5
+ */
6
+ var __extends = (this && this.__extends) || (function () {
7
+ var extendStatics = function (d, b) {
8
+ extendStatics = Object.setPrototypeOf ||
9
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
11
+ return extendStatics(d, b);
12
+ };
13
+ return function (d, b) {
14
+ extendStatics(d, b);
15
+ function __() { this.constructor = d; }
16
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17
+ };
18
+ })();
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.DDResizable = void 0;
21
+ var dd_resizable_handle_1 = require("./dd-resizable-handle");
22
+ var dd_base_impl_1 = require("./dd-base-impl");
23
+ var dd_utils_1 = require("./dd-utils");
24
+ var utils_1 = require("../utils");
25
+ var DDResizable = /** @class */ (function (_super) {
26
+ __extends(DDResizable, _super);
27
+ function DDResizable(el, opts) {
28
+ if (opts === void 0) { opts = {}; }
29
+ var _this = _super.call(this) || this;
30
+ /** @internal */
31
+ _this._showHandlers = function () {
32
+ _this.el.classList.remove('ui-resizable-autohide');
33
+ };
34
+ /** @internal */
35
+ _this._hideHandlers = function () {
36
+ _this.el.classList.add('ui-resizable-autohide');
37
+ };
38
+ /** @internal */
39
+ _this._ui = function () {
40
+ var containmentEl = _this.el.parentElement;
41
+ var containmentRect = containmentEl.getBoundingClientRect();
42
+ var newRect = {
43
+ width: _this.originalRect.width,
44
+ height: _this.originalRect.height + _this.scrolled,
45
+ left: _this.originalRect.left,
46
+ top: _this.originalRect.top - _this.scrolled
47
+ };
48
+ var rect = _this.temporalRect || newRect;
49
+ return {
50
+ position: {
51
+ left: rect.left - containmentRect.left,
52
+ top: rect.top - containmentRect.top
53
+ },
54
+ size: {
55
+ width: rect.width,
56
+ height: rect.height
57
+ }
58
+ /* Gridstack ONLY needs position set above... keep around in case.
59
+ element: [this.el], // The object representing the element to be resized
60
+ helper: [], // TODO: not support yet - The object representing the helper that's being resized
61
+ originalElement: [this.el],// we don't wrap here, so simplify as this.el //The object representing the original element before it is wrapped
62
+ originalPosition: { // The position represented as { left, top } before the resizable is resized
63
+ left: this.originalRect.left - containmentRect.left,
64
+ top: this.originalRect.top - containmentRect.top
65
+ },
66
+ originalSize: { // The size represented as { width, height } before the resizable is resized
67
+ width: this.originalRect.width,
68
+ height: this.originalRect.height
69
+ }
70
+ */
71
+ };
72
+ };
73
+ _this.el = el;
74
+ _this.option = opts;
75
+ _this.enable();
76
+ _this._setupAutoHide();
77
+ _this._setupHandlers();
78
+ return _this;
79
+ }
80
+ DDResizable.prototype.on = function (event, callback) {
81
+ _super.prototype.on.call(this, event, callback);
82
+ };
83
+ DDResizable.prototype.off = function (event) {
84
+ _super.prototype.off.call(this, event);
85
+ };
86
+ DDResizable.prototype.enable = function () {
87
+ _super.prototype.enable.call(this);
88
+ this.el.classList.add('ui-resizable');
89
+ this.el.classList.remove('ui-resizable-disabled');
90
+ };
91
+ DDResizable.prototype.disable = function () {
92
+ _super.prototype.disable.call(this);
93
+ this.el.classList.add('ui-resizable-disabled');
94
+ this.el.classList.remove('ui-resizable');
95
+ };
96
+ DDResizable.prototype.destroy = function () {
97
+ this._removeHandlers();
98
+ if (this.option.autoHide) {
99
+ this.el.removeEventListener('mouseover', this._showHandlers);
100
+ this.el.removeEventListener('mouseout', this._hideHandlers);
101
+ }
102
+ this.el.classList.remove('ui-resizable');
103
+ delete this.el;
104
+ _super.prototype.destroy.call(this);
105
+ };
106
+ DDResizable.prototype.updateOption = function (opts) {
107
+ var _this = this;
108
+ var updateHandles = (opts.handles && opts.handles !== this.option.handles);
109
+ var updateAutoHide = (opts.autoHide && opts.autoHide !== this.option.autoHide);
110
+ Object.keys(opts).forEach(function (key) { return _this.option[key] = opts[key]; });
111
+ if (updateHandles) {
112
+ this._removeHandlers();
113
+ this._setupHandlers();
114
+ }
115
+ if (updateAutoHide) {
116
+ this._setupAutoHide();
117
+ }
118
+ return this;
119
+ };
120
+ /** @internal */
121
+ DDResizable.prototype._setupAutoHide = function () {
122
+ if (this.option.autoHide) {
123
+ this.el.classList.add('ui-resizable-autohide');
124
+ // use mouseover/mouseout instead of mouseenter/mouseleave to get better performance;
125
+ this.el.addEventListener('mouseover', this._showHandlers);
126
+ this.el.addEventListener('mouseout', this._hideHandlers);
127
+ }
128
+ else {
129
+ this.el.classList.remove('ui-resizable-autohide');
130
+ this.el.removeEventListener('mouseover', this._showHandlers);
131
+ this.el.removeEventListener('mouseout', this._hideHandlers);
132
+ }
133
+ return this;
134
+ };
135
+ /** @internal */
136
+ DDResizable.prototype._setupHandlers = function () {
137
+ var _this = this;
138
+ var handlerDirection = this.option.handles || 'e,s,se';
139
+ if (handlerDirection === 'all') {
140
+ handlerDirection = 'n,e,s,w,se,sw,ne,nw';
141
+ }
142
+ this.handlers = handlerDirection.split(',')
143
+ .map(function (dir) { return dir.trim(); })
144
+ .map(function (dir) { return new dd_resizable_handle_1.DDResizableHandle(_this.el, dir, {
145
+ start: function (event) {
146
+ _this._resizeStart(event);
147
+ },
148
+ stop: function (event) {
149
+ _this._resizeStop(event);
150
+ },
151
+ move: function (event) {
152
+ _this._resizing(event, dir);
153
+ }
154
+ }); });
155
+ return this;
156
+ };
157
+ /** @internal */
158
+ DDResizable.prototype._resizeStart = function (event) {
159
+ this.originalRect = this.el.getBoundingClientRect();
160
+ this.scrollEl = utils_1.Utils.getScrollElement(this.el);
161
+ this.scrollY = this.scrollEl.scrollTop;
162
+ this.scrolled = 0;
163
+ this.startEvent = event;
164
+ this._setupHelper();
165
+ this._applyChange();
166
+ var ev = dd_utils_1.DDUtils.initEvent(event, { type: 'resizestart', target: this.el });
167
+ if (this.option.start) {
168
+ this.option.start(ev, this._ui());
169
+ }
170
+ this.el.classList.add('ui-resizable-resizing');
171
+ this.triggerEvent('resizestart', ev);
172
+ return this;
173
+ };
174
+ /** @internal */
175
+ DDResizable.prototype._resizing = function (event, dir) {
176
+ this.scrolled = this.scrollEl.scrollTop - this.scrollY;
177
+ this.temporalRect = this._getChange(event, dir);
178
+ this._applyChange();
179
+ var ev = dd_utils_1.DDUtils.initEvent(event, { type: 'resize', target: this.el });
180
+ if (this.option.resize) {
181
+ this.option.resize(ev, this._ui());
182
+ }
183
+ this.triggerEvent('resize', ev);
184
+ return this;
185
+ };
186
+ /** @internal */
187
+ DDResizable.prototype._resizeStop = function (event) {
188
+ var ev = dd_utils_1.DDUtils.initEvent(event, { type: 'resizestop', target: this.el });
189
+ if (this.option.stop) {
190
+ this.option.stop(ev); // Note: ui() not used by gridstack so don't pass
191
+ }
192
+ this.el.classList.remove('ui-resizable-resizing');
193
+ this.triggerEvent('resizestop', ev);
194
+ this._cleanHelper();
195
+ delete this.startEvent;
196
+ delete this.originalRect;
197
+ delete this.temporalRect;
198
+ delete this.scrollY;
199
+ delete this.scrolled;
200
+ return this;
201
+ };
202
+ /** @internal */
203
+ DDResizable.prototype._setupHelper = function () {
204
+ var _this = this;
205
+ this.elOriginStyleVal = DDResizable._originStyleProp.map(function (prop) { return _this.el.style[prop]; });
206
+ this.parentOriginStylePosition = this.el.parentElement.style.position;
207
+ if (window.getComputedStyle(this.el.parentElement).position.match(/static/)) {
208
+ this.el.parentElement.style.position = 'relative';
209
+ }
210
+ this.el.style.position = this.option.basePosition || 'absolute'; // or 'fixed'
211
+ this.el.style.opacity = '0.8';
212
+ this.el.style.zIndex = '1000';
213
+ return this;
214
+ };
215
+ /** @internal */
216
+ DDResizable.prototype._cleanHelper = function () {
217
+ var _this = this;
218
+ DDResizable._originStyleProp.forEach(function (prop, i) {
219
+ _this.el.style[prop] = _this.elOriginStyleVal[i] || null;
220
+ });
221
+ this.el.parentElement.style.position = this.parentOriginStylePosition || null;
222
+ return this;
223
+ };
224
+ /** @internal */
225
+ DDResizable.prototype._getChange = function (event, dir) {
226
+ var oEvent = this.startEvent;
227
+ var newRect = {
228
+ width: this.originalRect.width,
229
+ height: this.originalRect.height + this.scrolled,
230
+ left: this.originalRect.left,
231
+ top: this.originalRect.top - this.scrolled
232
+ };
233
+ var offsetX = event.clientX - oEvent.clientX;
234
+ var offsetY = event.clientY - oEvent.clientY;
235
+ if (dir.indexOf('e') > -1) {
236
+ newRect.width += offsetX;
237
+ }
238
+ else if (dir.indexOf('w') > -1) {
239
+ newRect.width -= offsetX;
240
+ newRect.left += offsetX;
241
+ }
242
+ if (dir.indexOf('s') > -1) {
243
+ newRect.height += offsetY;
244
+ }
245
+ else if (dir.indexOf('n') > -1) {
246
+ newRect.height -= offsetY;
247
+ newRect.top += offsetY;
248
+ }
249
+ var constrain = this._constrainSize(newRect.width, newRect.height);
250
+ if (Math.round(newRect.width) !== Math.round(constrain.width)) { // round to ignore slight round-off errors
251
+ if (dir.indexOf('w') > -1) {
252
+ newRect.left += newRect.width - constrain.width;
253
+ }
254
+ newRect.width = constrain.width;
255
+ }
256
+ if (Math.round(newRect.height) !== Math.round(constrain.height)) {
257
+ if (dir.indexOf('n') > -1) {
258
+ newRect.top += newRect.height - constrain.height;
259
+ }
260
+ newRect.height = constrain.height;
261
+ }
262
+ return newRect;
263
+ };
264
+ /** @internal constrain the size to the set min/max values */
265
+ DDResizable.prototype._constrainSize = function (oWidth, oHeight) {
266
+ var maxWidth = this.option.maxWidth || Number.MAX_SAFE_INTEGER;
267
+ var minWidth = this.option.minWidth || oWidth;
268
+ var maxHeight = this.option.maxHeight || Number.MAX_SAFE_INTEGER;
269
+ var minHeight = this.option.minHeight || oHeight;
270
+ var width = Math.min(maxWidth, Math.max(minWidth, oWidth));
271
+ var height = Math.min(maxHeight, Math.max(minHeight, oHeight));
272
+ return { width: width, height: height };
273
+ };
274
+ /** @internal */
275
+ DDResizable.prototype._applyChange = function () {
276
+ var _this = this;
277
+ var containmentRect = { left: 0, top: 0, width: 0, height: 0 };
278
+ if (this.el.style.position === 'absolute') {
279
+ var containmentEl = this.el.parentElement;
280
+ var _a = containmentEl.getBoundingClientRect(), left = _a.left, top_1 = _a.top;
281
+ containmentRect = { left: left, top: top_1, width: 0, height: 0 };
282
+ }
283
+ if (!this.temporalRect)
284
+ return this;
285
+ Object.keys(this.temporalRect).forEach(function (key) {
286
+ var value = _this.temporalRect[key];
287
+ _this.el.style[key] = value - containmentRect[key] + 'px';
288
+ });
289
+ return this;
290
+ };
291
+ /** @internal */
292
+ DDResizable.prototype._removeHandlers = function () {
293
+ this.handlers.forEach(function (handle) { return handle.destroy(); });
294
+ delete this.handlers;
295
+ return this;
296
+ };
297
+ /** @internal */
298
+ DDResizable._originStyleProp = ['width', 'height', 'position', 'left', 'top', 'opacity', 'zIndex'];
299
+ return DDResizable;
300
+ }(dd_base_impl_1.DDBaseImplement));
301
+ exports.DDResizable = DDResizable;
302
+ //# sourceMappingURL=dd-resizable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dd-resizable.js","sourceRoot":"","sources":["../../../src/h5/dd-resizable.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * dd-resizable.ts 4.4.0\n * Copyright (c) 2021 Alain Dumesny - see GridStack root license\n */\n\nimport { DDResizableHandle } from './dd-resizable-handle';\nimport { DDBaseImplement, HTMLElementExtendOpt } from './dd-base-impl';\nimport { DDUtils } from './dd-utils';\nimport { Utils } from '../utils';\nimport { DDUIData, Rect, Size } from '../types';\n\n// TODO: merge with DDDragOpt\nexport interface DDResizableOpt {\n autoHide?: boolean;\n handles?: string;\n maxHeight?: number;\n maxWidth?: number;\n minHeight?: number;\n minWidth?: number;\n basePosition?: 'fixed' | 'absolute';\n start?: (event: Event, ui: DDUIData) => void;\n stop?: (event: Event) => void;\n resize?: (event: Event, ui: DDUIData) => void;\n}\n\nexport class DDResizable extends DDBaseImplement implements HTMLElementExtendOpt<DDResizableOpt> {\n\n // have to be public else complains for HTMLElementExtendOpt ?\n public el: HTMLElement;\n public option: DDResizableOpt;\n\n /** @internal */\n private handlers: DDResizableHandle[];\n /** @internal */\n private originalRect: Rect;\n /** @internal */\n private temporalRect: Rect;\n /** @internal */\n private scrollY: number;\n /** @internal */\n private scrolled: number;\n /** @internal */\n private scrollEl: HTMLElement;\n /** @internal */\n private startEvent: MouseEvent;\n /** @internal value saved in the same order as _originStyleProp[] */\n private elOriginStyleVal: string[];\n /** @internal */\n private parentOriginStylePosition: string;\n /** @internal */\n private static _originStyleProp = ['width', 'height', 'position', 'left', 'top', 'opacity', 'zIndex'];\n\n constructor(el: HTMLElement, opts: DDResizableOpt = {}) {\n super();\n this.el = el;\n this.option = opts;\n this.enable();\n this._setupAutoHide();\n this._setupHandlers();\n }\n\n public on(event: 'resizestart' | 'resize' | 'resizestop', callback: (event: DragEvent) => void): void {\n super.on(event, callback);\n }\n\n public off(event: 'resizestart' | 'resize' | 'resizestop'): void {\n super.off(event);\n }\n\n public enable(): void {\n super.enable();\n this.el.classList.add('ui-resizable');\n this.el.classList.remove('ui-resizable-disabled');\n }\n\n public disable(): void {\n super.disable();\n this.el.classList.add('ui-resizable-disabled');\n this.el.classList.remove('ui-resizable');\n }\n\n public destroy(): void {\n this._removeHandlers();\n if (this.option.autoHide) {\n this.el.removeEventListener('mouseover', this._showHandlers);\n this.el.removeEventListener('mouseout', this._hideHandlers);\n }\n this.el.classList.remove('ui-resizable');\n delete this.el;\n super.destroy();\n }\n\n public updateOption(opts: DDResizableOpt): DDResizable {\n let updateHandles = (opts.handles && opts.handles !== this.option.handles);\n let updateAutoHide = (opts.autoHide && opts.autoHide !== this.option.autoHide);\n Object.keys(opts).forEach(key => this.option[key] = opts[key]);\n if (updateHandles) {\n this._removeHandlers();\n this._setupHandlers();\n }\n if (updateAutoHide) {\n this._setupAutoHide();\n }\n return this;\n }\n\n /** @internal */\n private _setupAutoHide(): DDResizable {\n if (this.option.autoHide) {\n this.el.classList.add('ui-resizable-autohide');\n // use mouseover/mouseout instead of mouseenter/mouseleave to get better performance;\n this.el.addEventListener('mouseover', this._showHandlers);\n this.el.addEventListener('mouseout', this._hideHandlers);\n } else {\n this.el.classList.remove('ui-resizable-autohide');\n this.el.removeEventListener('mouseover', this._showHandlers);\n this.el.removeEventListener('mouseout', this._hideHandlers);\n }\n return this;\n }\n\n /** @internal */\n private _showHandlers = () => {\n this.el.classList.remove('ui-resizable-autohide');\n }\n\n /** @internal */\n private _hideHandlers = () => {\n this.el.classList.add('ui-resizable-autohide');\n }\n\n /** @internal */\n private _setupHandlers(): DDResizable {\n let handlerDirection = this.option.handles || 'e,s,se';\n if (handlerDirection === 'all') {\n handlerDirection = 'n,e,s,w,se,sw,ne,nw';\n }\n this.handlers = handlerDirection.split(',')\n .map(dir => dir.trim())\n .map(dir => new DDResizableHandle(this.el, dir, {\n start: (event: MouseEvent) => {\n this._resizeStart(event);\n },\n stop: (event: MouseEvent) => {\n this._resizeStop(event);\n },\n move: (event: MouseEvent) => {\n this._resizing(event, dir);\n }\n }));\n return this;\n }\n\n /** @internal */\n private _resizeStart(event: MouseEvent): DDResizable {\n this.originalRect = this.el.getBoundingClientRect();\n this.scrollEl = Utils.getScrollElement(this.el);\n this.scrollY = this.scrollEl.scrollTop;\n this.scrolled = 0;\n this.startEvent = event;\n this._setupHelper();\n this._applyChange();\n const ev = DDUtils.initEvent<MouseEvent>(event, { type: 'resizestart', target: this.el });\n if (this.option.start) {\n this.option.start(ev, this._ui());\n }\n this.el.classList.add('ui-resizable-resizing');\n this.triggerEvent('resizestart', ev);\n return this;\n }\n\n /** @internal */\n private _resizing(event: MouseEvent, dir: string): DDResizable {\n this.scrolled = this.scrollEl.scrollTop - this.scrollY;\n this.temporalRect = this._getChange(event, dir);\n this._applyChange();\n const ev = DDUtils.initEvent<MouseEvent>(event, { type: 'resize', target: this.el });\n if (this.option.resize) {\n this.option.resize(ev, this._ui());\n }\n this.triggerEvent('resize', ev);\n return this;\n }\n\n /** @internal */\n private _resizeStop(event: MouseEvent): DDResizable {\n const ev = DDUtils.initEvent<MouseEvent>(event, { type: 'resizestop', target: this.el });\n if (this.option.stop) {\n this.option.stop(ev); // Note: ui() not used by gridstack so don't pass\n }\n this.el.classList.remove('ui-resizable-resizing');\n this.triggerEvent('resizestop', ev);\n this._cleanHelper();\n delete this.startEvent;\n delete this.originalRect;\n delete this.temporalRect;\n delete this.scrollY;\n delete this.scrolled;\n return this;\n }\n\n /** @internal */\n private _setupHelper(): DDResizable {\n this.elOriginStyleVal = DDResizable._originStyleProp.map(prop => this.el.style[prop]);\n this.parentOriginStylePosition = this.el.parentElement.style.position;\n if (window.getComputedStyle(this.el.parentElement).position.match(/static/)) {\n this.el.parentElement.style.position = 'relative';\n }\n this.el.style.position = this.option.basePosition || 'absolute'; // or 'fixed'\n this.el.style.opacity = '0.8';\n this.el.style.zIndex = '1000';\n return this;\n }\n\n /** @internal */\n private _cleanHelper(): DDResizable {\n DDResizable._originStyleProp.forEach((prop, i) => {\n this.el.style[prop] = this.elOriginStyleVal[i] || null;\n });\n this.el.parentElement.style.position = this.parentOriginStylePosition || null;\n return this;\n }\n\n /** @internal */\n private _getChange(event: MouseEvent, dir: string): Rect {\n const oEvent = this.startEvent;\n const newRect = { // Note: originalRect is a complex object, not a simple Rect, so copy out.\n width: this.originalRect.width,\n height: this.originalRect.height + this.scrolled,\n left: this.originalRect.left,\n top: this.originalRect.top - this.scrolled\n };\n \n const offsetX = event.clientX - oEvent.clientX;\n const offsetY = event.clientY - oEvent.clientY;\n\n if (dir.indexOf('e') > -1) {\n newRect.width += offsetX;\n } else if (dir.indexOf('w') > -1) {\n newRect.width -= offsetX;\n newRect.left += offsetX;\n }\n if (dir.indexOf('s') > -1) {\n newRect.height += offsetY;\n } else if (dir.indexOf('n') > -1) {\n newRect.height -= offsetY;\n newRect.top += offsetY\n }\n const constrain = this._constrainSize(newRect.width, newRect.height);\n if (Math.round(newRect.width) !== Math.round(constrain.width)) { // round to ignore slight round-off errors\n if (dir.indexOf('w') > -1) {\n newRect.left += newRect.width - constrain.width;\n }\n newRect.width = constrain.width;\n }\n if (Math.round(newRect.height) !== Math.round(constrain.height)) {\n if (dir.indexOf('n') > -1) {\n newRect.top += newRect.height - constrain.height;\n }\n newRect.height = constrain.height;\n }\n return newRect;\n }\n\n /** @internal constrain the size to the set min/max values */\n private _constrainSize(oWidth: number, oHeight: number): Size {\n const maxWidth = this.option.maxWidth || Number.MAX_SAFE_INTEGER;\n const minWidth = this.option.minWidth || oWidth;\n const maxHeight = this.option.maxHeight || Number.MAX_SAFE_INTEGER;\n const minHeight = this.option.minHeight || oHeight;\n const width = Math.min(maxWidth, Math.max(minWidth, oWidth));\n const height = Math.min(maxHeight, Math.max(minHeight, oHeight));\n return { width, height };\n }\n\n /** @internal */\n private _applyChange(): DDResizable {\n let containmentRect = { left: 0, top: 0, width: 0, height: 0 };\n if (this.el.style.position === 'absolute') {\n const containmentEl = this.el.parentElement;\n const { left, top } = containmentEl.getBoundingClientRect();\n containmentRect = { left, top, width: 0, height: 0 };\n }\n if (!this.temporalRect) return this;\n Object.keys(this.temporalRect).forEach(key => {\n const value = this.temporalRect[key];\n this.el.style[key] = value - containmentRect[key] + 'px';\n });\n return this;\n }\n\n /** @internal */\n private _removeHandlers(): DDResizable {\n this.handlers.forEach(handle => handle.destroy());\n delete this.handlers;\n return this;\n }\n\n /** @internal */\n private _ui = (): DDUIData => {\n const containmentEl = this.el.parentElement;\n const containmentRect = containmentEl.getBoundingClientRect();\n const newRect = { // Note: originalRect is a complex object, not a simple Rect, so copy out.\n width: this.originalRect.width,\n height: this.originalRect.height + this.scrolled,\n left: this.originalRect.left,\n top: this.originalRect.top - this.scrolled\n };\n const rect = this.temporalRect || newRect;\n return {\n position: {\n left: rect.left - containmentRect.left,\n top: rect.top - containmentRect.top\n },\n size: {\n width: rect.width,\n height: rect.height\n }\n /* Gridstack ONLY needs position set above... keep around in case.\n element: [this.el], // The object representing the element to be resized\n helper: [], // TODO: not support yet - The object representing the helper that's being resized\n originalElement: [this.el],// we don't wrap here, so simplify as this.el //The object representing the original element before it is wrapped\n originalPosition: { // The position represented as { left, top } before the resizable is resized\n left: this.originalRect.left - containmentRect.left,\n top: this.originalRect.top - containmentRect.top\n },\n originalSize: { // The size represented as { width, height } before the resizable is resized\n width: this.originalRect.width,\n height: this.originalRect.height\n }\n */\n };\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * dd-utils.ts 4.4.0
3
+ * Copyright (c) 2021 Alain Dumesny - see GridStack root license
4
+ */
5
+ export declare class DDUtils {
6
+ static isEventSupportPassiveOption: boolean;
7
+ static clone(el: HTMLElement): HTMLElement;
8
+ static appendTo(el: HTMLElement, parent: string | HTMLElement | Node): void;
9
+ static setPositionRelative(el: HTMLElement): void;
10
+ static addElStyles(el: HTMLElement, styles: {
11
+ [prop: string]: string | string[];
12
+ }): void;
13
+ static initEvent<T>(e: DragEvent | MouseEvent, info: {
14
+ type: string;
15
+ target?: EventTarget;
16
+ }): T;
17
+ }