tabulator-tables 5.4.3 → 5.4.4

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 (253) hide show
  1. package/.babelrc.json +3 -3
  2. package/.editorconfig +6 -6
  3. package/.eslintignore +3 -3
  4. package/.eslintrc.js +28 -28
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +58 -58
  6. package/.github/ISSUE_TEMPLATE/documentation.md +14 -14
  7. package/.github/ISSUE_TEMPLATE/feature_request.md +24 -24
  8. package/.github/ISSUE_TEMPLATE/question.md +12 -12
  9. package/.github/workflows/bad-files-check.yml +39 -39
  10. package/.github/workflows/lint-and-test.yml +30 -30
  11. package/CODE_OF_CONDUCT.md +46 -46
  12. package/CONTRIBUTING.md +22 -22
  13. package/LICENSE +20 -20
  14. package/README.md +76 -76
  15. package/bower.json +40 -40
  16. package/build/Bundler.js +185 -185
  17. package/build/rollup.js +6 -6
  18. package/dist/css/tabulator.css +0 -5
  19. package/dist/css/tabulator.css.map +1 -1
  20. package/dist/css/tabulator.min.css +1 -1
  21. package/dist/css/tabulator.min.css.map +1 -1
  22. package/dist/css/tabulator_bootstrap3.css +0 -5
  23. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  24. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  25. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  26. package/dist/css/tabulator_bootstrap4.css +0 -5
  27. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  28. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  29. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  30. package/dist/css/tabulator_bootstrap5.css +0 -5
  31. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  32. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  33. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  34. package/dist/css/tabulator_bulma.css +0 -5
  35. package/dist/css/tabulator_bulma.css.map +1 -1
  36. package/dist/css/tabulator_bulma.min.css +1 -1
  37. package/dist/css/tabulator_bulma.min.css.map +1 -1
  38. package/dist/css/tabulator_materialize.css +0 -5
  39. package/dist/css/tabulator_materialize.css.map +1 -1
  40. package/dist/css/tabulator_materialize.min.css +1 -1
  41. package/dist/css/tabulator_materialize.min.css.map +1 -1
  42. package/dist/css/tabulator_midnight.css +0 -5
  43. package/dist/css/tabulator_midnight.css.map +1 -1
  44. package/dist/css/tabulator_midnight.min.css +1 -1
  45. package/dist/css/tabulator_midnight.min.css.map +1 -1
  46. package/dist/css/tabulator_modern.css +0 -5
  47. package/dist/css/tabulator_modern.css.map +1 -1
  48. package/dist/css/tabulator_modern.min.css +1 -1
  49. package/dist/css/tabulator_modern.min.css.map +1 -1
  50. package/dist/css/tabulator_semanticui.css +102 -107
  51. package/dist/css/tabulator_semanticui.css.map +1 -1
  52. package/dist/css/tabulator_semanticui.min.css +1 -1
  53. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  54. package/dist/css/tabulator_simple.css +0 -5
  55. package/dist/css/tabulator_simple.css.map +1 -1
  56. package/dist/css/tabulator_simple.min.css +1 -1
  57. package/dist/css/tabulator_simple.min.css.map +1 -1
  58. package/dist/css/tabulator_site.css +0 -5
  59. package/dist/css/tabulator_site.css.map +1 -1
  60. package/dist/css/tabulator_site.min.css +1 -1
  61. package/dist/css/tabulator_site.min.css.map +1 -1
  62. package/dist/js/jquery_wrapper.js +55 -55
  63. package/dist/js/tabulator.js +25847 -25711
  64. package/dist/js/tabulator.js.map +1 -1
  65. package/dist/js/tabulator.min.js +2 -2
  66. package/dist/js/tabulator.min.js.map +1 -1
  67. package/dist/js/tabulator_esm.js +25926 -25790
  68. package/dist/js/tabulator_esm.js.map +1 -1
  69. package/dist/js/tabulator_esm.min.js +2 -2
  70. package/dist/js/tabulator_esm.min.js.map +1 -1
  71. package/package.json +65 -65
  72. package/src/js/builds/esm.js +14 -14
  73. package/src/js/builds/jquery_wrapper.js +55 -55
  74. package/src/js/core/ColumnManager.js +730 -730
  75. package/src/js/core/CoreFeature.js +138 -138
  76. package/src/js/core/FooterManager.js +101 -101
  77. package/src/js/core/Module.js +141 -141
  78. package/src/js/core/RowManager.js +1112 -1101
  79. package/src/js/core/Tabulator.js +895 -892
  80. package/src/js/core/TabulatorFull.js +10 -10
  81. package/src/js/core/cell/Cell.js +295 -295
  82. package/src/js/core/cell/CellComponent.js +76 -76
  83. package/src/js/core/column/Column.js +949 -949
  84. package/src/js/core/column/ColumnComponent.js +152 -152
  85. package/src/js/core/column/defaults/options.js +17 -17
  86. package/src/js/core/defaults/options.js +65 -65
  87. package/src/js/core/modules/core.js +2 -2
  88. package/src/js/core/modules/optional.js +34 -34
  89. package/src/js/core/rendering/Renderer.js +203 -203
  90. package/src/js/core/rendering/renderers/BasicHorizontal.js +19 -19
  91. package/src/js/core/rendering/renderers/BasicVertical.js +79 -78
  92. package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +577 -577
  93. package/src/js/core/rendering/renderers/VirtualDomVertical.js +579 -579
  94. package/src/js/core/row/PseudoRow.js +44 -44
  95. package/src/js/core/row/Row.js +457 -457
  96. package/src/js/core/row/RowComponent.js +93 -93
  97. package/src/js/core/tools/Alert.js +61 -61
  98. package/src/js/core/tools/ComponentFunctionBinder.js +32 -32
  99. package/src/js/core/tools/DataLoader.js +119 -119
  100. package/src/js/core/tools/DeprecationAdvisor.js +46 -46
  101. package/src/js/core/tools/ExternalEventBus.js +104 -104
  102. package/src/js/core/tools/Helpers.js +46 -46
  103. package/src/js/core/tools/InteractionMonitor.js +321 -321
  104. package/src/js/core/tools/InternalEventBus.js +161 -161
  105. package/src/js/core/tools/ModuleBinder.js +104 -104
  106. package/src/js/core/tools/OptionsList.js +44 -40
  107. package/src/js/core/tools/Popup.js +304 -304
  108. package/src/js/core/tools/TableRegistry.js +61 -61
  109. package/src/js/modules/Accessor/Accessor.js +115 -115
  110. package/src/js/modules/Ajax/Ajax.js +143 -143
  111. package/src/js/modules/Ajax/defaults/config.js +2 -2
  112. package/src/js/modules/Ajax/defaults/contentTypeFormatters.js +44 -44
  113. package/src/js/modules/Ajax/defaults/loaderPromise.js +86 -86
  114. package/src/js/modules/Ajax/defaults/urlGenerator.js +43 -43
  115. package/src/js/modules/Clipboard/Clipboard.js +279 -279
  116. package/src/js/modules/Clipboard/defaults/pasteActions.js +10 -10
  117. package/src/js/modules/Clipboard/defaults/pasteParsers.js +74 -74
  118. package/src/js/modules/ColumnCalcs/CalcComponent.js +47 -47
  119. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +581 -568
  120. package/src/js/modules/ColumnCalcs/defaults/calculations.js +85 -85
  121. package/src/js/modules/Comms/Comms.js +51 -51
  122. package/src/js/modules/DataTree/DataTree.js +603 -603
  123. package/src/js/modules/Download/Download.js +148 -148
  124. package/src/js/modules/Download/defaults/downloaders/csv.js +61 -61
  125. package/src/js/modules/Download/defaults/downloaders/html.js +4 -4
  126. package/src/js/modules/Download/defaults/downloaders/json.js +33 -33
  127. package/src/js/modules/Download/defaults/downloaders/jsonLines.js +31 -31
  128. package/src/js/modules/Download/defaults/downloaders/pdf.js +111 -111
  129. package/src/js/modules/Download/defaults/downloaders/xlsx.js +98 -98
  130. package/src/js/modules/Download/defaults/downloaders.js +14 -14
  131. package/src/js/modules/Edit/Edit.js +735 -736
  132. package/src/js/modules/Edit/List.js +1037 -1033
  133. package/src/js/modules/Edit/defaults/editors/autocomplete.js +11 -11
  134. package/src/js/modules/Edit/defaults/editors/date.js +138 -110
  135. package/src/js/modules/Edit/defaults/editors/datetime.js +125 -97
  136. package/src/js/modules/Edit/defaults/editors/input.js +76 -74
  137. package/src/js/modules/Edit/defaults/editors/list.js +6 -6
  138. package/src/js/modules/Edit/defaults/editors/number.js +109 -107
  139. package/src/js/modules/Edit/defaults/editors/progress.js +126 -126
  140. package/src/js/modules/Edit/defaults/editors/range.js +80 -78
  141. package/src/js/modules/Edit/defaults/editors/select.js +9 -9
  142. package/src/js/modules/Edit/defaults/editors/star.js +145 -145
  143. package/src/js/modules/Edit/defaults/editors/textarea.js +122 -120
  144. package/src/js/modules/Edit/defaults/editors/tickCross.js +94 -96
  145. package/src/js/modules/Edit/defaults/editors/time.js +126 -98
  146. package/src/js/modules/Edit/defaults/editors.js +28 -28
  147. package/src/js/modules/Edit/inputMask.js +73 -73
  148. package/src/js/modules/Export/Export.js +623 -623
  149. package/src/js/modules/Export/ExportColumn.js +10 -10
  150. package/src/js/modules/Export/ExportRow.js +9 -9
  151. package/src/js/modules/Filter/Filter.js +892 -892
  152. package/src/js/modules/Filter/defaults/filters.js +107 -107
  153. package/src/js/modules/Format/Format.js +212 -212
  154. package/src/js/modules/Format/defaults/formatters/buttonCross.js +2 -2
  155. package/src/js/modules/Format/defaults/formatters/buttonTick.js +2 -2
  156. package/src/js/modules/Format/defaults/formatters/color.js +3 -3
  157. package/src/js/modules/Format/defaults/formatters/datetime.js +36 -36
  158. package/src/js/modules/Format/defaults/formatters/datetimediff.js +40 -40
  159. package/src/js/modules/Format/defaults/formatters/handle.js +3 -3
  160. package/src/js/modules/Format/defaults/formatters/html.js +2 -2
  161. package/src/js/modules/Format/defaults/formatters/image.js +39 -39
  162. package/src/js/modules/Format/defaults/formatters/link.js +77 -77
  163. package/src/js/modules/Format/defaults/formatters/lookup.js +9 -9
  164. package/src/js/modules/Format/defaults/formatters/money.js +36 -36
  165. package/src/js/modules/Format/defaults/formatters/plaintext.js +2 -2
  166. package/src/js/modules/Format/defaults/formatters/progress.js +132 -132
  167. package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +43 -43
  168. package/src/js/modules/Format/defaults/formatters/rowSelection.js +59 -59
  169. package/src/js/modules/Format/defaults/formatters/rownum.js +9 -9
  170. package/src/js/modules/Format/defaults/formatters/star.js +37 -37
  171. package/src/js/modules/Format/defaults/formatters/textarea.js +3 -3
  172. package/src/js/modules/Format/defaults/formatters/tickCross.js +21 -21
  173. package/src/js/modules/Format/defaults/formatters/traffic.js +46 -46
  174. package/src/js/modules/Format/defaults/formatters.js +42 -42
  175. package/src/js/modules/FrozenColumns/FrozenColumns.js +299 -299
  176. package/src/js/modules/FrozenRows/FrozenRows.js +169 -159
  177. package/src/js/modules/GroupRows/Group.js +597 -598
  178. package/src/js/modules/GroupRows/GroupComponent.js +66 -66
  179. package/src/js/modules/GroupRows/GroupRows.js +639 -639
  180. package/src/js/modules/History/History.js +171 -171
  181. package/src/js/modules/History/defaults/redoers.js +24 -24
  182. package/src/js/modules/History/defaults/undoers.js +24 -24
  183. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +181 -181
  184. package/src/js/modules/Import/Import.js +193 -193
  185. package/src/js/modules/Import/defaults/importers/array.js +4 -4
  186. package/src/js/modules/Import/defaults/importers/csv.js +62 -62
  187. package/src/js/modules/Import/defaults/importers/json.js +7 -7
  188. package/src/js/modules/Import/defaults/importers.js +8 -8
  189. package/src/js/modules/Interaction/Interaction.js +325 -325
  190. package/src/js/modules/Keybindings/Keybindings.js +172 -172
  191. package/src/js/modules/Keybindings/defaults/actions.js +118 -118
  192. package/src/js/modules/Keybindings/defaults/bindings.js +12 -12
  193. package/src/js/modules/Layout/Layout.js +49 -49
  194. package/src/js/modules/Layout/defaults/modes/fitColumns.js +171 -171
  195. package/src/js/modules/Layout/defaults/modes/fitData.js +9 -9
  196. package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +9 -9
  197. package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +39 -39
  198. package/src/js/modules/Layout/defaults/modes.js +11 -11
  199. package/src/js/modules/Localize/Localize.js +185 -185
  200. package/src/js/modules/Localize/defaults/langs.js +36 -36
  201. package/src/js/modules/Menu/Menu.js +302 -302
  202. package/src/js/modules/MoveColumns/MoveColumns.js +299 -299
  203. package/src/js/modules/MoveRows/MoveRows.js +635 -635
  204. package/src/js/modules/Mutator/Mutator.js +161 -161
  205. package/src/js/modules/Page/Page.js +881 -881
  206. package/src/js/modules/Page/defaults/pageCounters/pages.js +32 -32
  207. package/src/js/modules/Page/defaults/pageCounters/rows.js +39 -39
  208. package/src/js/modules/Page/defaults/pageCounters.js +7 -7
  209. package/src/js/modules/Persistence/Persistence.js +458 -458
  210. package/src/js/modules/Persistence/defaults/readers.js +29 -29
  211. package/src/js/modules/Persistence/defaults/writers.js +12 -12
  212. package/src/js/modules/Popup/Popup.js +231 -231
  213. package/src/js/modules/Print/Print.js +137 -137
  214. package/src/js/modules/ReactiveData/ReactiveData.js +408 -408
  215. package/src/js/modules/ResizeColumns/ResizeColumns.js +309 -309
  216. package/src/js/modules/ResizeRows/ResizeRows.js +111 -111
  217. package/src/js/modules/ResizeTable/ResizeTable.js +159 -159
  218. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +345 -345
  219. package/src/js/modules/SelectRow/SelectRow.js +446 -444
  220. package/src/js/modules/Sort/Sort.js +470 -470
  221. package/src/js/modules/Sort/defaults/sorters/alphanum.js +43 -43
  222. package/src/js/modules/Sort/defaults/sorters/array.js +53 -53
  223. package/src/js/modules/Sort/defaults/sorters/boolean.js +6 -6
  224. package/src/js/modules/Sort/defaults/sorters/date.js +9 -9
  225. package/src/js/modules/Sort/defaults/sorters/datetime.js +43 -43
  226. package/src/js/modules/Sort/defaults/sorters/exists.js +6 -6
  227. package/src/js/modules/Sort/defaults/sorters/number.js +39 -39
  228. package/src/js/modules/Sort/defaults/sorters/string.js +33 -33
  229. package/src/js/modules/Sort/defaults/sorters/time.js +9 -9
  230. package/src/js/modules/Sort/defaults/sorters.js +20 -20
  231. package/src/js/modules/Tooltip/Tooltip.js +130 -130
  232. package/src/js/modules/Validate/Validate.js +305 -305
  233. package/src/js/modules/Validate/defaults/validators.js +138 -138
  234. package/src/scss/tabulator.scss +1464 -1467
  235. package/src/scss/themes/bootstrap/functions4.scss +118 -118
  236. package/src/scss/themes/bootstrap/functions5.scss +302 -302
  237. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +284 -284
  238. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +544 -544
  239. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +574 -574
  240. package/src/scss/themes/bootstrap/variables3.scss +870 -870
  241. package/src/scss/themes/bootstrap/variables4.scss +930 -930
  242. package/src/scss/themes/bootstrap/variables5.scss +1641 -1641
  243. package/src/scss/themes/bulma/tabulator_bulma.scss +252 -252
  244. package/src/scss/themes/bulma/variables.scss +197 -197
  245. package/src/scss/themes/materialize/tabulator_materialize.scss +265 -265
  246. package/src/scss/themes/materialize/variables.scss +70 -70
  247. package/src/scss/themes/semanticui/tabulator_semanticui.scss +561 -561
  248. package/src/scss/themes/semanticui/variables.scss +839 -839
  249. package/src/scss/themes/semanticui/variables_table.scss +247 -247
  250. package/src/scss/themes/tabulator_midnight.scss +158 -158
  251. package/src/scss/themes/tabulator_modern.scss +231 -231
  252. package/src/scss/themes/tabulator_simple.scss +102 -102
  253. package/src/scss/themes/tabulator_site.scss +189 -189
@@ -1,112 +1,112 @@
1
- import Module from '../../core/Module.js';
2
-
3
- class ResizeRows extends Module{
4
-
5
- constructor(table){
6
- super(table);
7
-
8
- this.startColumn = false;
9
- this.startY = false;
10
- this.startHeight = false;
11
- this.handle = null;
12
- this.prevHandle = null;
13
-
14
- this.registerTableOption("resizableRows", false); //resizable rows
15
- }
16
-
17
- initialize(){
18
- if(this.table.options.resizableRows){
19
- this.subscribe("row-layout-after", this.initializeRow.bind(this));
20
- }
21
- }
22
-
23
- initializeRow(row){
24
- var self = this,
25
- rowEl = row.getElement();
26
-
27
- var handle = document.createElement('div');
28
- handle.className = "tabulator-row-resize-handle";
29
-
30
- var prevHandle = document.createElement('div');
31
- prevHandle.className = "tabulator-row-resize-handle prev";
32
-
33
- handle.addEventListener("click", function(e){
34
- e.stopPropagation();
35
- });
36
-
37
- var handleDown = function(e){
38
- self.startRow = row;
39
- self._mouseDown(e, row, handle);
40
- };
41
-
42
- handle.addEventListener("mousedown", handleDown);
43
- handle.addEventListener("touchstart", handleDown, {passive: true});
44
-
45
- prevHandle.addEventListener("click", function(e){
46
- e.stopPropagation();
47
- });
48
-
49
- var prevHandleDown = function(e){
50
- var prevRow = self.table.rowManager.prevDisplayRow(row);
51
-
52
- if(prevRow){
53
- self.startRow = prevRow;
54
- self._mouseDown(e, prevRow, prevHandle);
55
- }
56
- };
57
-
58
- prevHandle.addEventListener("mousedown",prevHandleDown);
59
- prevHandle.addEventListener("touchstart",prevHandleDown, {passive: true});
60
-
61
- rowEl.appendChild(handle);
62
- rowEl.appendChild(prevHandle);
63
- }
64
-
65
- _mouseDown(e, row, handle){
66
- var self = this;
67
-
68
- self.table.element.classList.add("tabulator-block-select");
69
-
70
- function mouseMove(e){
71
- row.setHeight(self.startHeight + ((typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY) - self.startY));
72
- }
73
-
74
- function mouseUp(e){
75
-
76
- // //block editor from taking action while resizing is taking place
77
- // if(self.startColumn.modules.edit){
78
- // self.startColumn.modules.edit.blocked = false;
79
- // }
80
-
81
- document.body.removeEventListener("mouseup", mouseMove);
82
- document.body.removeEventListener("mousemove", mouseMove);
83
-
84
- handle.removeEventListener("touchmove", mouseMove);
85
- handle.removeEventListener("touchend", mouseUp);
86
-
87
- self.table.element.classList.remove("tabulator-block-select");
88
-
89
- self.dispatchExternal("rowResized", row.getComponent());
90
- }
91
-
92
- e.stopPropagation(); //prevent resize from interfering with movable columns
93
-
94
- //block editor from taking action while resizing is taking place
95
- // if(self.startColumn.modules.edit){
96
- // self.startColumn.modules.edit.blocked = true;
97
- // }
98
-
99
- self.startY = typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY;
100
- self.startHeight = row.getHeight();
101
-
102
- document.body.addEventListener("mousemove", mouseMove);
103
- document.body.addEventListener("mouseup", mouseUp);
104
-
105
- handle.addEventListener("touchmove", mouseMove, {passive: true});
106
- handle.addEventListener("touchend", mouseUp);
107
- }
108
- }
109
-
110
- ResizeRows.moduleName = "resizeRows";
111
-
1
+ import Module from '../../core/Module.js';
2
+
3
+ class ResizeRows extends Module{
4
+
5
+ constructor(table){
6
+ super(table);
7
+
8
+ this.startColumn = false;
9
+ this.startY = false;
10
+ this.startHeight = false;
11
+ this.handle = null;
12
+ this.prevHandle = null;
13
+
14
+ this.registerTableOption("resizableRows", false); //resizable rows
15
+ }
16
+
17
+ initialize(){
18
+ if(this.table.options.resizableRows){
19
+ this.subscribe("row-layout-after", this.initializeRow.bind(this));
20
+ }
21
+ }
22
+
23
+ initializeRow(row){
24
+ var self = this,
25
+ rowEl = row.getElement();
26
+
27
+ var handle = document.createElement('div');
28
+ handle.className = "tabulator-row-resize-handle";
29
+
30
+ var prevHandle = document.createElement('div');
31
+ prevHandle.className = "tabulator-row-resize-handle prev";
32
+
33
+ handle.addEventListener("click", function(e){
34
+ e.stopPropagation();
35
+ });
36
+
37
+ var handleDown = function(e){
38
+ self.startRow = row;
39
+ self._mouseDown(e, row, handle);
40
+ };
41
+
42
+ handle.addEventListener("mousedown", handleDown);
43
+ handle.addEventListener("touchstart", handleDown, {passive: true});
44
+
45
+ prevHandle.addEventListener("click", function(e){
46
+ e.stopPropagation();
47
+ });
48
+
49
+ var prevHandleDown = function(e){
50
+ var prevRow = self.table.rowManager.prevDisplayRow(row);
51
+
52
+ if(prevRow){
53
+ self.startRow = prevRow;
54
+ self._mouseDown(e, prevRow, prevHandle);
55
+ }
56
+ };
57
+
58
+ prevHandle.addEventListener("mousedown",prevHandleDown);
59
+ prevHandle.addEventListener("touchstart",prevHandleDown, {passive: true});
60
+
61
+ rowEl.appendChild(handle);
62
+ rowEl.appendChild(prevHandle);
63
+ }
64
+
65
+ _mouseDown(e, row, handle){
66
+ var self = this;
67
+
68
+ self.table.element.classList.add("tabulator-block-select");
69
+
70
+ function mouseMove(e){
71
+ row.setHeight(self.startHeight + ((typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY) - self.startY));
72
+ }
73
+
74
+ function mouseUp(e){
75
+
76
+ // //block editor from taking action while resizing is taking place
77
+ // if(self.startColumn.modules.edit){
78
+ // self.startColumn.modules.edit.blocked = false;
79
+ // }
80
+
81
+ document.body.removeEventListener("mouseup", mouseMove);
82
+ document.body.removeEventListener("mousemove", mouseMove);
83
+
84
+ handle.removeEventListener("touchmove", mouseMove);
85
+ handle.removeEventListener("touchend", mouseUp);
86
+
87
+ self.table.element.classList.remove("tabulator-block-select");
88
+
89
+ self.dispatchExternal("rowResized", row.getComponent());
90
+ }
91
+
92
+ e.stopPropagation(); //prevent resize from interfering with movable columns
93
+
94
+ //block editor from taking action while resizing is taking place
95
+ // if(self.startColumn.modules.edit){
96
+ // self.startColumn.modules.edit.blocked = true;
97
+ // }
98
+
99
+ self.startY = typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY;
100
+ self.startHeight = row.getHeight();
101
+
102
+ document.body.addEventListener("mousemove", mouseMove);
103
+ document.body.addEventListener("mouseup", mouseUp);
104
+
105
+ handle.addEventListener("touchmove", mouseMove, {passive: true});
106
+ handle.addEventListener("touchend", mouseUp);
107
+ }
108
+ }
109
+
110
+ ResizeRows.moduleName = "resizeRows";
111
+
112
112
  export default ResizeRows;
@@ -1,160 +1,160 @@
1
- import Module from '../../core/Module.js';
2
-
3
- class ResizeTable extends Module{
4
-
5
- constructor(table){
6
- super(table);
7
-
8
- this.binding = false;
9
- this.visibilityObserver = false;
10
- this.resizeObserver = false;
11
- this.containerObserver = false;
12
-
13
- this.tableHeight = 0;
14
- this.tableWidth = 0;
15
- this.containerHeight = 0;
16
- this.containerWidth = 0;
17
-
18
- this.autoResize = false;
19
-
20
- this.visible = false;
21
-
22
- this.initialized = false;
23
- this.initialRedraw = false;
24
-
25
- this.registerTableOption("autoResize", true); //auto resize table
26
- }
27
-
28
- initialize(){
29
- if(this.table.options.autoResize){
30
- var table = this.table,
31
- tableStyle;
32
-
33
- this.tableHeight = table.element.clientHeight;
34
- this.tableWidth = table.element.clientWidth;
35
-
36
- if(table.element.parentNode){
37
- this.containerHeight = table.element.parentNode.clientHeight;
38
- this.containerWidth = table.element.parentNode.clientWidth;
39
- }
40
-
41
- if(typeof IntersectionObserver !== "undefined" && typeof ResizeObserver !== "undefined" && table.rowManager.getRenderMode() === "virtual"){
42
-
43
- this.initializeVisibilityObserver();
44
-
45
- this.autoResize = true;
46
-
47
- this.resizeObserver = new ResizeObserver((entry) => {
48
- if(!table.browserMobile || (table.browserMobile &&!table.modules.edit.currentCell)){
49
-
50
- var nodeHeight = Math.floor(entry[0].contentRect.height);
51
- var nodeWidth = Math.floor(entry[0].contentRect.width);
52
-
53
- if(this.tableHeight != nodeHeight || this.tableWidth != nodeWidth){
54
- this.tableHeight = nodeHeight;
55
- this.tableWidth = nodeWidth;
56
-
57
- if(table.element.parentNode){
58
- this.containerHeight = table.element.parentNode.clientHeight;
59
- this.containerWidth = table.element.parentNode.clientWidth;
60
- }
61
-
62
- this.redrawTable();
63
- }
64
- }
65
- });
66
-
67
- this.resizeObserver.observe(table.element);
68
-
69
- tableStyle = window.getComputedStyle(table.element);
70
-
71
- if(this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue("max-height") || tableStyle.getPropertyValue("min-height"))){
72
-
73
- this.containerObserver = new ResizeObserver((entry) => {
74
- if(!table.browserMobile || (table.browserMobile &&!table.modules.edit.currentCell)){
75
-
76
- var nodeHeight = Math.floor(entry[0].contentRect.height);
77
- var nodeWidth = Math.floor(entry[0].contentRect.width);
78
-
79
- if(this.containerHeight != nodeHeight || this.containerWidth != nodeWidth){
80
- this.containerHeight = nodeHeight;
81
- this.containerWidth = nodeWidth;
82
- this.tableHeight = table.element.clientHeight;
83
- this.tableWidth = table.element.clientWidth;
84
- }
85
-
86
- this.redrawTable();
87
- }
88
- });
89
-
90
- this.containerObserver.observe(this.table.element.parentNode);
91
- }
92
-
93
- this.subscribe("table-resize", this.tableResized.bind(this));
94
-
95
- }else{
96
- this.binding = function(){
97
- if(!table.browserMobile || (table.browserMobile && !table.modules.edit.currentCell)){
98
- table.columnManager.rerenderColumns(true);
99
- table.redraw();
100
- }
101
- };
102
-
103
- window.addEventListener("resize", this.binding);
104
- }
105
-
106
- this.subscribe("table-destroy", this.clearBindings.bind(this));
107
- }
108
- }
109
-
110
- initializeVisibilityObserver(){
111
- this.visibilityObserver = new IntersectionObserver((entries) => {
112
- this.visible = entries[0].isIntersecting;
113
-
114
- if(!this.initialized){
115
- this.initialized = true;
116
- this.initialRedraw = !this.visible;
117
- }else{
118
- if(this.visible){
119
- this.redrawTable(this.initialRedraw);
120
- this.initialRedraw = false;
121
- }
122
- }
123
- });
124
-
125
- this.visibilityObserver.observe(this.table.element);
126
- }
127
-
128
- redrawTable(force){
129
- if(this.initialized && this.visible){
130
- this.table.columnManager.rerenderColumns(true);
131
- this.table.redraw(force);
132
- }
133
- }
134
-
135
- tableResized(){
136
- this.table.rowManager.redraw();
137
- }
138
-
139
- clearBindings(){
140
- if(this.binding){
141
- window.removeEventListener("resize", this.binding);
142
- }
143
-
144
- if(this.resizeObserver){
145
- this.resizeObserver.unobserve(this.table.element);
146
- }
147
-
148
- if(this.visibilityObserver){
149
- this.visibilityObserver.unobserve(this.table.element);
150
- }
151
-
152
- if(this.containerObserver){
153
- this.containerObserver.unobserve(this.table.element.parentNode);
154
- }
155
- }
156
- }
157
-
158
- ResizeTable.moduleName = "resizeTable";
159
-
1
+ import Module from '../../core/Module.js';
2
+
3
+ class ResizeTable extends Module{
4
+
5
+ constructor(table){
6
+ super(table);
7
+
8
+ this.binding = false;
9
+ this.visibilityObserver = false;
10
+ this.resizeObserver = false;
11
+ this.containerObserver = false;
12
+
13
+ this.tableHeight = 0;
14
+ this.tableWidth = 0;
15
+ this.containerHeight = 0;
16
+ this.containerWidth = 0;
17
+
18
+ this.autoResize = false;
19
+
20
+ this.visible = false;
21
+
22
+ this.initialized = false;
23
+ this.initialRedraw = false;
24
+
25
+ this.registerTableOption("autoResize", true); //auto resize table
26
+ }
27
+
28
+ initialize(){
29
+ if(this.table.options.autoResize){
30
+ var table = this.table,
31
+ tableStyle;
32
+
33
+ this.tableHeight = table.element.clientHeight;
34
+ this.tableWidth = table.element.clientWidth;
35
+
36
+ if(table.element.parentNode){
37
+ this.containerHeight = table.element.parentNode.clientHeight;
38
+ this.containerWidth = table.element.parentNode.clientWidth;
39
+ }
40
+
41
+ if(typeof IntersectionObserver !== "undefined" && typeof ResizeObserver !== "undefined" && table.rowManager.getRenderMode() === "virtual"){
42
+
43
+ this.initializeVisibilityObserver();
44
+
45
+ this.autoResize = true;
46
+
47
+ this.resizeObserver = new ResizeObserver((entry) => {
48
+ if(!table.browserMobile || (table.browserMobile &&!table.modules.edit.currentCell)){
49
+
50
+ var nodeHeight = Math.floor(entry[0].contentRect.height);
51
+ var nodeWidth = Math.floor(entry[0].contentRect.width);
52
+
53
+ if(this.tableHeight != nodeHeight || this.tableWidth != nodeWidth){
54
+ this.tableHeight = nodeHeight;
55
+ this.tableWidth = nodeWidth;
56
+
57
+ if(table.element.parentNode){
58
+ this.containerHeight = table.element.parentNode.clientHeight;
59
+ this.containerWidth = table.element.parentNode.clientWidth;
60
+ }
61
+
62
+ this.redrawTable();
63
+ }
64
+ }
65
+ });
66
+
67
+ this.resizeObserver.observe(table.element);
68
+
69
+ tableStyle = window.getComputedStyle(table.element);
70
+
71
+ if(this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue("max-height") || tableStyle.getPropertyValue("min-height"))){
72
+
73
+ this.containerObserver = new ResizeObserver((entry) => {
74
+ if(!table.browserMobile || (table.browserMobile &&!table.modules.edit.currentCell)){
75
+
76
+ var nodeHeight = Math.floor(entry[0].contentRect.height);
77
+ var nodeWidth = Math.floor(entry[0].contentRect.width);
78
+
79
+ if(this.containerHeight != nodeHeight || this.containerWidth != nodeWidth){
80
+ this.containerHeight = nodeHeight;
81
+ this.containerWidth = nodeWidth;
82
+ this.tableHeight = table.element.clientHeight;
83
+ this.tableWidth = table.element.clientWidth;
84
+ }
85
+
86
+ this.redrawTable();
87
+ }
88
+ });
89
+
90
+ this.containerObserver.observe(this.table.element.parentNode);
91
+ }
92
+
93
+ this.subscribe("table-resize", this.tableResized.bind(this));
94
+
95
+ }else{
96
+ this.binding = function(){
97
+ if(!table.browserMobile || (table.browserMobile && !table.modules.edit.currentCell)){
98
+ table.columnManager.rerenderColumns(true);
99
+ table.redraw();
100
+ }
101
+ };
102
+
103
+ window.addEventListener("resize", this.binding);
104
+ }
105
+
106
+ this.subscribe("table-destroy", this.clearBindings.bind(this));
107
+ }
108
+ }
109
+
110
+ initializeVisibilityObserver(){
111
+ this.visibilityObserver = new IntersectionObserver((entries) => {
112
+ this.visible = entries[0].isIntersecting;
113
+
114
+ if(!this.initialized){
115
+ this.initialized = true;
116
+ this.initialRedraw = !this.visible;
117
+ }else{
118
+ if(this.visible){
119
+ this.redrawTable(this.initialRedraw);
120
+ this.initialRedraw = false;
121
+ }
122
+ }
123
+ });
124
+
125
+ this.visibilityObserver.observe(this.table.element);
126
+ }
127
+
128
+ redrawTable(force){
129
+ if(this.initialized && this.visible){
130
+ this.table.columnManager.rerenderColumns(true);
131
+ this.table.redraw(force);
132
+ }
133
+ }
134
+
135
+ tableResized(){
136
+ this.table.rowManager.redraw();
137
+ }
138
+
139
+ clearBindings(){
140
+ if(this.binding){
141
+ window.removeEventListener("resize", this.binding);
142
+ }
143
+
144
+ if(this.resizeObserver){
145
+ this.resizeObserver.unobserve(this.table.element);
146
+ }
147
+
148
+ if(this.visibilityObserver){
149
+ this.visibilityObserver.unobserve(this.table.element);
150
+ }
151
+
152
+ if(this.containerObserver){
153
+ this.containerObserver.unobserve(this.table.element.parentNode);
154
+ }
155
+ }
156
+ }
157
+
158
+ ResizeTable.moduleName = "resizeTable";
159
+
160
160
  export default ResizeTable;