handsontable 14.0.0-next-07c0a60-20231107 → 14.0.0-next-7ee54cb-20231108

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 (328) hide show
  1. package/3rdparty/SheetClip/SheetClip.js +2 -2
  2. package/3rdparty/SheetClip/SheetClip.mjs +2 -2
  3. package/3rdparty/autoResize/autoResize.js +2 -2
  4. package/3rdparty/autoResize/autoResize.mjs +2 -2
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +108 -85
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +108 -85
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -52
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -52
  9. package/3rdparty/walkontable/src/cell/coords.js +7 -5
  10. package/3rdparty/walkontable/src/cell/coords.mjs +7 -5
  11. package/3rdparty/walkontable/src/core/clone.js +6 -0
  12. package/3rdparty/walkontable/src/core/clone.mjs +6 -0
  13. package/3rdparty/walkontable/src/event.js +125 -74
  14. package/3rdparty/walkontable/src/event.mjs +125 -74
  15. package/3rdparty/walkontable/src/filter/column.js +16 -0
  16. package/3rdparty/walkontable/src/filter/column.mjs +16 -0
  17. package/3rdparty/walkontable/src/filter/row.js +16 -0
  18. package/3rdparty/walkontable/src/filter/row.mjs +16 -0
  19. package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
  20. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  21. package/3rdparty/walkontable/src/overlay/top.js +1 -1
  22. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  23. package/3rdparty/walkontable/src/renderer/_base.js +12 -5
  24. package/3rdparty/walkontable/src/renderer/_base.mjs +12 -5
  25. package/3rdparty/walkontable/src/renderer/cells.js +6 -2
  26. package/3rdparty/walkontable/src/renderer/cells.mjs +6 -2
  27. package/3rdparty/walkontable/src/renderer/rowHeaders.js +6 -2
  28. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +6 -2
  29. package/3rdparty/walkontable/src/renderer/rows.js +5 -0
  30. package/3rdparty/walkontable/src/renderer/rows.mjs +5 -0
  31. package/3rdparty/walkontable/src/renderer/table.js +24 -17
  32. package/3rdparty/walkontable/src/renderer/table.mjs +24 -17
  33. package/3rdparty/walkontable/src/scroll.js +2 -2
  34. package/3rdparty/walkontable/src/scroll.mjs +2 -2
  35. package/3rdparty/walkontable/src/selection/border/border.js +1 -1
  36. package/3rdparty/walkontable/src/selection/border/border.mjs +1 -1
  37. package/3rdparty/walkontable/src/settings.js +10 -10
  38. package/3rdparty/walkontable/src/settings.mjs +10 -10
  39. package/3rdparty/walkontable/src/table.js +3 -3
  40. package/3rdparty/walkontable/src/table.mjs +3 -3
  41. package/3rdparty/walkontable/src/utils/column.js +19 -4
  42. package/3rdparty/walkontable/src/utils/column.mjs +19 -4
  43. package/3rdparty/walkontable/src/utils/nodesPool.js +5 -0
  44. package/3rdparty/walkontable/src/utils/nodesPool.mjs +5 -0
  45. package/3rdparty/walkontable/src/utils/orderView/view.js +13 -6
  46. package/3rdparty/walkontable/src/utils/orderView/view.mjs +13 -6
  47. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +9 -6
  48. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +9 -6
  49. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +7 -4
  50. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +7 -4
  51. package/3rdparty/walkontable/src/utils/row.js +14 -2
  52. package/3rdparty/walkontable/src/utils/row.mjs +14 -2
  53. package/3rdparty/walkontable/src/viewport.js +9 -9
  54. package/3rdparty/walkontable/src/viewport.mjs +9 -9
  55. package/base.js +2 -2
  56. package/base.mjs +2 -2
  57. package/core.js +31 -26
  58. package/core.mjs +31 -26
  59. package/dataMap/dataMap.js +99 -90
  60. package/dataMap/dataMap.mjs +99 -90
  61. package/dataMap/dataSource.js +14 -8
  62. package/dataMap/dataSource.mjs +14 -8
  63. package/dataMap/metaManager/lazyFactoryMap.js +19 -7
  64. package/dataMap/metaManager/lazyFactoryMap.mjs +19 -7
  65. package/dataMap/metaManager/metaLayers/cellMeta.js +8 -3
  66. package/dataMap/metaManager/metaLayers/cellMeta.mjs +8 -3
  67. package/dataMap/metaManager/metaLayers/columnMeta.js +7 -1
  68. package/dataMap/metaManager/metaLayers/columnMeta.mjs +7 -1
  69. package/dataMap/metaManager/metaLayers/globalMeta.js +6 -1
  70. package/dataMap/metaManager/metaLayers/globalMeta.mjs +6 -1
  71. package/dataMap/metaManager/metaLayers/tableMeta.js +6 -2
  72. package/dataMap/metaManager/metaLayers/tableMeta.mjs +6 -2
  73. package/dataMap/metaManager/metaSchema.js +55 -55
  74. package/dataMap/metaManager/metaSchema.mjs +55 -55
  75. package/dataMap/metaManager/mods/dynamicCellMeta.js +7 -2
  76. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +7 -2
  77. package/dataMap/metaManager/mods/extendMetaProperties.js +8 -4
  78. package/dataMap/metaManager/mods/extendMetaProperties.mjs +8 -4
  79. package/dataMap/metaManager/utils.js +2 -2
  80. package/dataMap/metaManager/utils.mjs +2 -2
  81. package/dist/handsontable.css +2 -2
  82. package/dist/handsontable.full.css +2 -2
  83. package/dist/handsontable.full.js +7337 -6394
  84. package/dist/handsontable.full.min.css +2 -2
  85. package/dist/handsontable.full.min.js +154 -154
  86. package/dist/handsontable.js +7336 -6393
  87. package/dist/handsontable.min.css +2 -2
  88. package/dist/handsontable.min.js +28 -28
  89. package/editorManager.js +105 -95
  90. package/editorManager.mjs +105 -95
  91. package/editors/autocompleteEditor/autocompleteEditor.js +47 -46
  92. package/editors/autocompleteEditor/autocompleteEditor.mjs +46 -45
  93. package/editors/baseEditor/baseEditor.js +23 -26
  94. package/editors/baseEditor/baseEditor.mjs +23 -26
  95. package/editors/dateEditor/dateEditor.js +24 -15
  96. package/editors/dateEditor/dateEditor.mjs +24 -15
  97. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  98. package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
  99. package/editors/handsontableEditor/handsontableEditor.js +4 -4
  100. package/editors/handsontableEditor/handsontableEditor.mjs +4 -4
  101. package/editors/textEditor/textEditor.js +23 -17
  102. package/editors/textEditor/textEditor.mjs +24 -18
  103. package/eventManager.js +8 -0
  104. package/eventManager.mjs +8 -0
  105. package/helpers/array.js +2 -2
  106. package/helpers/array.mjs +2 -2
  107. package/helpers/dom/element.js +7 -7
  108. package/helpers/dom/element.mjs +7 -7
  109. package/helpers/function.js +1 -1
  110. package/helpers/function.mjs +1 -1
  111. package/helpers/mixed.js +1 -1
  112. package/helpers/mixed.mjs +1 -1
  113. package/helpers/object.js +4 -4
  114. package/helpers/object.mjs +4 -4
  115. package/helpers/string.js +1 -1
  116. package/helpers/string.mjs +1 -1
  117. package/package.json +1 -1
  118. package/pluginHooks.d.ts +0 -2
  119. package/pluginHooks.js +12 -3
  120. package/pluginHooks.mjs +12 -3
  121. package/plugins/autoColumnSize/autoColumnSize.js +141 -130
  122. package/plugins/autoColumnSize/autoColumnSize.mjs +140 -129
  123. package/plugins/autoRowSize/autoRowSize.js +112 -125
  124. package/plugins/autoRowSize/autoRowSize.mjs +110 -123
  125. package/plugins/autofill/autofill.js +98 -102
  126. package/plugins/autofill/autofill.mjs +97 -101
  127. package/plugins/base/base.js +61 -28
  128. package/plugins/base/base.mjs +60 -28
  129. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +29 -24
  130. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +28 -23
  131. package/plugins/collapsibleColumns/collapsibleColumns.js +104 -107
  132. package/plugins/collapsibleColumns/collapsibleColumns.mjs +102 -104
  133. package/plugins/columnSorting/columnSorting.js +107 -99
  134. package/plugins/columnSorting/columnSorting.mjs +106 -98
  135. package/plugins/columnSorting/columnStatesManager.js +12 -6
  136. package/plugins/columnSorting/columnStatesManager.mjs +12 -6
  137. package/plugins/columnSummary/columnSummary.js +71 -58
  138. package/plugins/columnSummary/columnSummary.mjs +70 -57
  139. package/plugins/columnSummary/endpoints.js +20 -14
  140. package/plugins/columnSummary/endpoints.mjs +20 -14
  141. package/plugins/comments/commentEditor.js +30 -2
  142. package/plugins/comments/commentEditor.mjs +30 -2
  143. package/plugins/comments/comments.js +158 -169
  144. package/plugins/comments/comments.mjs +157 -168
  145. package/plugins/comments/displaySwitch.js +7 -3
  146. package/plugins/comments/displaySwitch.mjs +7 -3
  147. package/plugins/contextMenu/commandExecutor.js +15 -2
  148. package/plugins/contextMenu/commandExecutor.mjs +15 -2
  149. package/plugins/contextMenu/contextMenu.js +96 -102
  150. package/plugins/contextMenu/contextMenu.mjs +95 -101
  151. package/plugins/contextMenu/itemsFactory.js +19 -4
  152. package/plugins/contextMenu/itemsFactory.mjs +19 -4
  153. package/plugins/contextMenu/menu/cursor.js +36 -0
  154. package/plugins/contextMenu/menu/cursor.mjs +36 -0
  155. package/plugins/contextMenu/menu/menu.js +57 -5
  156. package/plugins/contextMenu/menu/menu.mjs +57 -5
  157. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  158. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
  159. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  160. package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
  161. package/plugins/copyPaste/copyPaste.js +74 -75
  162. package/plugins/copyPaste/copyPaste.mjs +74 -75
  163. package/plugins/customBorders/customBorders.js +57 -50
  164. package/plugins/customBorders/customBorders.mjs +56 -49
  165. package/plugins/dragToScroll/dragToScroll.js +50 -54
  166. package/plugins/dragToScroll/dragToScroll.mjs +49 -52
  167. package/plugins/dropdownMenu/dropdownMenu.js +136 -131
  168. package/plugins/dropdownMenu/dropdownMenu.mjs +136 -131
  169. package/plugins/exportFile/dataProvider.js +7 -2
  170. package/plugins/exportFile/dataProvider.mjs +7 -2
  171. package/plugins/exportFile/exportFile.js +1 -1
  172. package/plugins/exportFile/exportFile.mjs +1 -1
  173. package/plugins/exportFile/types/_base.js +14 -6
  174. package/plugins/exportFile/types/_base.mjs +14 -6
  175. package/plugins/filters/component/actionBar.js +9 -0
  176. package/plugins/filters/component/actionBar.mjs +9 -0
  177. package/plugins/filters/component/condition.js +13 -0
  178. package/plugins/filters/component/condition.mjs +13 -0
  179. package/plugins/filters/component/operators.js +9 -0
  180. package/plugins/filters/component/operators.mjs +9 -0
  181. package/plugins/filters/component/value.js +9 -0
  182. package/plugins/filters/component/value.mjs +9 -0
  183. package/plugins/filters/conditionCollection.js +9 -4
  184. package/plugins/filters/conditionCollection.mjs +9 -4
  185. package/plugins/filters/conditionUpdateObserver.js +53 -42
  186. package/plugins/filters/conditionUpdateObserver.mjs +53 -42
  187. package/plugins/filters/dataFilter.js +9 -3
  188. package/plugins/filters/dataFilter.mjs +9 -3
  189. package/plugins/filters/filters.js +184 -189
  190. package/plugins/filters/filters.mjs +182 -187
  191. package/plugins/filters/ui/_base.js +1 -1
  192. package/plugins/filters/ui/_base.mjs +1 -1
  193. package/plugins/filters/utils.js +1 -1
  194. package/plugins/filters/utils.mjs +1 -1
  195. package/plugins/formulas/engine/settings.js +1 -1
  196. package/plugins/formulas/engine/settings.mjs +1 -1
  197. package/plugins/formulas/formulas.js +684 -602
  198. package/plugins/formulas/formulas.mjs +682 -600
  199. package/plugins/hiddenColumns/hiddenColumns.js +174 -169
  200. package/plugins/hiddenColumns/hiddenColumns.mjs +173 -168
  201. package/plugins/hiddenRows/hiddenRows.js +170 -165
  202. package/plugins/hiddenRows/hiddenRows.mjs +169 -164
  203. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  204. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  205. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  206. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  207. package/plugins/manualColumnFreeze/manualColumnFreeze.js +66 -53
  208. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +64 -51
  209. package/plugins/manualColumnMove/manualColumnMove.js +287 -232
  210. package/plugins/manualColumnMove/manualColumnMove.mjs +286 -231
  211. package/plugins/manualColumnMove/ui/_base.js +9 -3
  212. package/plugins/manualColumnMove/ui/_base.mjs +9 -3
  213. package/plugins/manualColumnResize/manualColumnResize.js +291 -246
  214. package/plugins/manualColumnResize/manualColumnResize.mjs +290 -244
  215. package/plugins/manualRowMove/manualRowMove.js +223 -208
  216. package/plugins/manualRowMove/manualRowMove.mjs +222 -207
  217. package/plugins/manualRowMove/ui/_base.js +10 -5
  218. package/plugins/manualRowMove/ui/_base.mjs +10 -5
  219. package/plugins/manualRowResize/manualRowResize.js +254 -209
  220. package/plugins/manualRowResize/manualRowResize.mjs +253 -207
  221. package/plugins/mergeCells/calculations/autofill.js +9 -3
  222. package/plugins/mergeCells/calculations/autofill.mjs +9 -3
  223. package/plugins/mergeCells/calculations/selection.js +10 -4
  224. package/plugins/mergeCells/calculations/selection.mjs +10 -4
  225. package/plugins/mergeCells/cellCoords.js +16 -6
  226. package/plugins/mergeCells/cellCoords.mjs +16 -6
  227. package/plugins/mergeCells/cellsCollection.js +10 -4
  228. package/plugins/mergeCells/cellsCollection.mjs +10 -4
  229. package/plugins/mergeCells/mergeCells.js +582 -502
  230. package/plugins/mergeCells/mergeCells.mjs +580 -500
  231. package/plugins/multiColumnSorting/multiColumnSorting.js +15 -11
  232. package/plugins/multiColumnSorting/multiColumnSorting.mjs +15 -11
  233. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +16 -28
  234. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +16 -27
  235. package/plugins/nestedHeaders/nestedHeaders.js +542 -499
  236. package/plugins/nestedHeaders/nestedHeaders.mjs +554 -511
  237. package/plugins/nestedHeaders/stateManager/index.js +1 -1
  238. package/plugins/nestedHeaders/stateManager/index.mjs +1 -1
  239. package/plugins/nestedRows/data/dataManager.js +21 -15
  240. package/plugins/nestedRows/data/dataManager.mjs +21 -15
  241. package/plugins/nestedRows/nestedRows.js +328 -279
  242. package/plugins/nestedRows/nestedRows.mjs +327 -278
  243. package/plugins/nestedRows/ui/_base.js +7 -1
  244. package/plugins/nestedRows/ui/_base.mjs +7 -1
  245. package/plugins/nestedRows/ui/collapsing.js +2 -2
  246. package/plugins/nestedRows/ui/collapsing.mjs +2 -2
  247. package/plugins/nestedRows/ui/contextMenu.js +28 -18
  248. package/plugins/nestedRows/ui/contextMenu.mjs +28 -18
  249. package/plugins/nestedRows/utils/rowMoveController.js +12 -4
  250. package/plugins/nestedRows/utils/rowMoveController.mjs +12 -4
  251. package/plugins/persistentState/persistentState.js +14 -11
  252. package/plugins/persistentState/persistentState.mjs +14 -11
  253. package/plugins/persistentState/storage.js +11 -6
  254. package/plugins/persistentState/storage.mjs +11 -6
  255. package/plugins/registry.js +2 -2
  256. package/plugins/registry.mjs +2 -2
  257. package/plugins/search/search.js +57 -46
  258. package/plugins/search/search.mjs +56 -45
  259. package/plugins/touchScroll/touchScroll.js +102 -100
  260. package/plugins/touchScroll/touchScroll.mjs +100 -98
  261. package/plugins/trimRows/trimRows.js +33 -28
  262. package/plugins/trimRows/trimRows.mjs +32 -27
  263. package/plugins/undoRedo/undoRedo.js +2 -2
  264. package/plugins/undoRedo/undoRedo.mjs +2 -2
  265. package/renderers/autocompleteRenderer/autocompleteRenderer.js +11 -11
  266. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +11 -11
  267. package/renderers/baseRenderer/baseRenderer.js +2 -2
  268. package/renderers/baseRenderer/baseRenderer.mjs +2 -2
  269. package/renderers/checkboxRenderer/checkboxRenderer.js +23 -23
  270. package/renderers/checkboxRenderer/checkboxRenderer.mjs +23 -23
  271. package/renderers/dateRenderer/dateRenderer.js +4 -4
  272. package/renderers/dateRenderer/dateRenderer.mjs +4 -4
  273. package/renderers/handsontableRenderer/handsontableRenderer.js +4 -4
  274. package/renderers/handsontableRenderer/handsontableRenderer.mjs +4 -4
  275. package/renderers/htmlRenderer/htmlRenderer.js +4 -4
  276. package/renderers/htmlRenderer/htmlRenderer.mjs +4 -4
  277. package/renderers/numericRenderer/numericRenderer.js +3 -3
  278. package/renderers/numericRenderer/numericRenderer.mjs +3 -3
  279. package/renderers/passwordRenderer/passwordRenderer.js +3 -3
  280. package/renderers/passwordRenderer/passwordRenderer.mjs +3 -3
  281. package/renderers/selectRenderer/selectRenderer.js +4 -4
  282. package/renderers/selectRenderer/selectRenderer.mjs +4 -4
  283. package/renderers/textRenderer/textRenderer.js +5 -5
  284. package/renderers/textRenderer/textRenderer.mjs +5 -5
  285. package/renderers/timeRenderer/timeRenderer.js +3 -3
  286. package/renderers/timeRenderer/timeRenderer.mjs +3 -3
  287. package/selection/highlight/highlight.js +1 -4
  288. package/selection/highlight/highlight.mjs +1 -4
  289. package/selection/range.js +12 -2
  290. package/selection/range.mjs +12 -2
  291. package/selection/selection.js +28 -10
  292. package/selection/selection.mjs +28 -10
  293. package/selection/utils.js +24 -14
  294. package/selection/utils.mjs +25 -15
  295. package/shortcuts/manager.js +1 -1
  296. package/shortcuts/manager.mjs +1 -1
  297. package/tableView.js +208 -200
  298. package/tableView.mjs +208 -200
  299. package/translations/changesObservable/utils.js +2 -2
  300. package/translations/changesObservable/utils.mjs +2 -2
  301. package/translations/indexMapper.js +25 -22
  302. package/translations/indexMapper.mjs +25 -22
  303. package/translations/mapCollections/aggregatedCollection.js +8 -2
  304. package/translations/mapCollections/aggregatedCollection.mjs +8 -2
  305. package/translations/mapCollections/mapCollection.js +5 -2
  306. package/translations/mapCollections/mapCollection.mjs +5 -2
  307. package/translations/maps/indexMap.js +6 -1
  308. package/translations/maps/indexMap.mjs +6 -1
  309. package/translations/maps/utils/physicallyIndexed.js +2 -2
  310. package/translations/maps/utils/physicallyIndexed.mjs +2 -2
  311. package/utils/dataStructures/linkedList.js +10 -6
  312. package/utils/dataStructures/linkedList.mjs +10 -6
  313. package/utils/dataStructures/queue.js +1 -1
  314. package/utils/dataStructures/queue.mjs +1 -1
  315. package/utils/dataStructures/stack.js +1 -1
  316. package/utils/dataStructures/stack.mjs +1 -1
  317. package/utils/ghostTable.js +2 -2
  318. package/utils/ghostTable.mjs +2 -2
  319. package/utils/interval.js +73 -36
  320. package/utils/interval.mjs +73 -36
  321. package/utils/parseTable.js +1 -1
  322. package/utils/parseTable.mjs +1 -1
  323. package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
  324. package/validators/autocompleteValidator/autocompleteValidator.mjs +1 -1
  325. package/validators/dateValidator/dateValidator.js +1 -1
  326. package/validators/dateValidator/dateValidator.mjs +1 -1
  327. package/validators/numericValidator/numericValidator.js +1 -1
  328. package/validators/numericValidator/numericValidator.mjs +1 -1
@@ -1,4 +1,17 @@
1
1
  import "core-js/modules/es.array.push.js";
2
+ import "core-js/modules/es.error.cause.js";
3
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
4
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
5
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
6
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
9
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
10
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
11
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
12
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
13
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
14
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
2
15
  import { BasePlugin } from "../base/index.mjs";
3
16
  import DataManager from "./data/dataManager.mjs";
4
17
  import CollapsingUI from "./ui/collapsing.mjs";
@@ -11,7 +24,6 @@ import RowMoveController from "./utils/rowMoveController.mjs";
11
24
  export const PLUGIN_KEY = 'nestedRows';
12
25
  export const PLUGIN_PRIORITY = 300;
13
26
  const SHORTCUTS_GROUP = PLUGIN_KEY;
14
- const privatePool = new WeakMap();
15
27
 
16
28
  /* eslint-disable jsdoc/require-description-complete-sentence */
17
29
 
@@ -27,44 +39,184 @@ const WRONG_DATA_TYPE_ERROR = 'The Nested Rows plugin requires an Array of Objec
27
39
  * @description
28
40
  * Plugin responsible for displaying and operating on data sources with nested structures.
29
41
  */
42
+ var _skipRender = /*#__PURE__*/new WeakMap();
43
+ var _skipCoreAPIModifiers = /*#__PURE__*/new WeakMap();
44
+ var _onBeforeRowMove = /*#__PURE__*/new WeakSet();
45
+ var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
46
+ var _onFilterData = /*#__PURE__*/new WeakSet();
47
+ var _onAfterContextMenuDefaultOptions = /*#__PURE__*/new WeakSet();
48
+ var _onAfterGetRowHeader = /*#__PURE__*/new WeakSet();
49
+ var _onModifyRowHeaderWidth = /*#__PURE__*/new WeakSet();
50
+ var _onAfterRemoveRow = /*#__PURE__*/new WeakSet();
51
+ var _onBeforeRemoveRow = /*#__PURE__*/new WeakSet();
52
+ var _onBeforeAddChild = /*#__PURE__*/new WeakSet();
53
+ var _onAfterAddChild = /*#__PURE__*/new WeakSet();
54
+ var _onBeforeDetachChild = /*#__PURE__*/new WeakSet();
55
+ var _onAfterDetachChild = /*#__PURE__*/new WeakSet();
56
+ var _onAfterCreateRow = /*#__PURE__*/new WeakSet();
57
+ var _onAfterInit = /*#__PURE__*/new WeakSet();
58
+ var _onBeforeViewRender = /*#__PURE__*/new WeakSet();
59
+ var _onBeforeLoadData = /*#__PURE__*/new WeakSet();
30
60
  export class NestedRows extends BasePlugin {
31
- static get PLUGIN_KEY() {
32
- return PLUGIN_KEY;
33
- }
34
- static get PLUGIN_PRIORITY() {
35
- return PLUGIN_PRIORITY;
36
- }
37
- constructor(hotInstance) {
38
- super(hotInstance);
61
+ constructor() {
62
+ super(...arguments);
63
+ /**
64
+ * `beforeLoadData` hook callback.
65
+ *
66
+ * @param {Array} data The source data.
67
+ */
68
+ _classPrivateMethodInitSpec(this, _onBeforeLoadData);
69
+ /**
70
+ * `beforeViewRender` hook callback.
71
+ *
72
+ * @param {boolean} force Indicates if the render call was triggered by a change of settings or data.
73
+ * @param {object} skipRender An object, holder for skipRender functionality.
74
+ */
75
+ _classPrivateMethodInitSpec(this, _onBeforeViewRender);
76
+ /**
77
+ * `afterInit` hook callback.
78
+ */
79
+ _classPrivateMethodInitSpec(this, _onAfterInit);
80
+ /**
81
+ * `afterCreateRow` hook callback.
82
+ */
83
+ _classPrivateMethodInitSpec(this, _onAfterCreateRow);
84
+ /**
85
+ * `afterDetachChild` hook callback.
86
+ *
87
+ * @param {object} parent Parent element.
88
+ * @param {object} element New child element.
89
+ * @param {number} finalElementRowIndex The final row index of the detached element.
90
+ */
91
+ _classPrivateMethodInitSpec(this, _onAfterDetachChild);
92
+ /**
93
+ * `beforeDetachChild` hook callback.
94
+ */
95
+ _classPrivateMethodInitSpec(this, _onBeforeDetachChild);
96
+ /**
97
+ * `afterAddChild` hook callback.
98
+ *
99
+ * @param {object} parent Parent element.
100
+ * @param {object} element New child element.
101
+ */
102
+ _classPrivateMethodInitSpec(this, _onAfterAddChild);
103
+ /**
104
+ * `beforeAddChild` hook callback.
105
+ */
106
+ _classPrivateMethodInitSpec(this, _onBeforeAddChild);
107
+ /**
108
+ * Callback for the `beforeRemoveRow` change list of removed physical indexes by reference. Removing parent node
109
+ * has effect in removing children nodes.
110
+ *
111
+ * @param {number} index Visual index of starter row.
112
+ * @param {number} amount Amount of rows to be removed.
113
+ * @param {Array} physicalRows List of physical indexes.
114
+ */
115
+ _classPrivateMethodInitSpec(this, _onBeforeRemoveRow);
116
+ /**
117
+ * `onAfterRemoveRow` hook callback.
118
+ *
119
+ * @param {number} index Removed row.
120
+ * @param {number} amount Amount of removed rows.
121
+ * @param {Array} logicRows An array of the removed physical rows.
122
+ * @param {string} source Source of action.
123
+ */
124
+ _classPrivateMethodInitSpec(this, _onAfterRemoveRow);
125
+ /**
126
+ * `modifyRowHeaderWidth` hook callback.
127
+ *
128
+ * @param {number} rowHeaderWidth The initial row header width(s).
129
+ * @returns {number}
130
+ */
131
+ _classPrivateMethodInitSpec(this, _onModifyRowHeaderWidth);
132
+ /**
133
+ * `afterGetRowHeader` hook callback.
134
+ *
135
+ * @param {number} row Row index.
136
+ * @param {HTMLElement} TH Row header element.
137
+ */
138
+ _classPrivateMethodInitSpec(this, _onAfterGetRowHeader);
139
+ /**
140
+ * `afterContextMenuDefaultOptions` hook callback.
141
+ *
142
+ * @param {object} defaultOptions The default context menu items order.
143
+ * @returns {boolean}
144
+ */
145
+ _classPrivateMethodInitSpec(this, _onAfterContextMenuDefaultOptions);
146
+ /**
147
+ * Provide custom source data filtering. It's handled by core method and replaces the native filtering.
148
+ *
149
+ * @param {number} index The index where the data filtering starts.
150
+ * @param {number} amount An amount of rows which filtering applies to.
151
+ * @param {number} physicalRows Physical row indexes.
152
+ * @returns {Array}
153
+ */
154
+ _classPrivateMethodInitSpec(this, _onFilterData);
155
+ /**
156
+ * `beforeOnCellMousedown` hook callback.
157
+ *
158
+ * @param {MouseEvent} event Mousedown event.
159
+ * @param {object} coords Cell coords.
160
+ * @param {HTMLElement} TD Clicked cell.
161
+ */
162
+ _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
163
+ /**
164
+ * `beforeRowMove` hook callback.
165
+ *
166
+ * @param {Array} rows Array of visual row indexes to be moved.
167
+ * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements
168
+ * will be placed after the moving action. To check the visualization of the final index, please take a look at
169
+ * [documentation](@/guides/rows/row-summary.md).
170
+ * @param {undefined|number} dropIndex Visual row index, being a drop index for the moved rows. Points to where we
171
+ * are going to drop the moved elements. To check visualization of drop index please take a look at
172
+ * [documentation](@/guides/rows/row-summary.md).
173
+ * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.
174
+ * @fires Hooks#afterRowMove
175
+ * @returns {boolean}
176
+ */
177
+ _classPrivateMethodInitSpec(this, _onBeforeRowMove);
39
178
  /**
40
179
  * Reference to the DataManager instance.
41
180
  *
42
181
  * @private
43
182
  * @type {object}
44
183
  */
45
- this.dataManager = null;
46
-
184
+ _defineProperty(this, "dataManager", null);
47
185
  /**
48
186
  * Reference to the HeadersUI instance.
49
187
  *
50
188
  * @private
51
189
  * @type {object}
52
190
  */
53
- this.headersUI = null;
191
+ _defineProperty(this, "headersUI", null);
54
192
  /**
55
193
  * Map of skipped rows by plugin.
56
194
  *
57
195
  * @private
58
196
  * @type {null|TrimmingMap}
59
197
  */
60
- this.collapsedRowsMap = null;
61
- privatePool.set(this, {
62
- movedToCollapsed: false,
63
- skipRender: null,
64
- skipCoreAPIModifiers: false
198
+ _defineProperty(this, "collapsedRowsMap", null);
199
+ /**
200
+ * @type {boolean}
201
+ */
202
+ _classPrivateFieldInitSpec(this, _skipRender, {
203
+ writable: true,
204
+ value: false
205
+ });
206
+ /**
207
+ * @type {boolean}
208
+ */
209
+ _classPrivateFieldInitSpec(this, _skipCoreAPIModifiers, {
210
+ writable: true,
211
+ value: false
65
212
  });
66
213
  }
67
-
214
+ static get PLUGIN_KEY() {
215
+ return PLUGIN_KEY;
216
+ }
217
+ static get PLUGIN_PRIORITY() {
218
+ return PLUGIN_PRIORITY;
219
+ }
68
220
  /**
69
221
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
70
222
  * hook and if it returns `true` then the {@link NestedRows#enablePlugin} method is called.
@@ -90,10 +242,16 @@ export class NestedRows extends BasePlugin {
90
242
  this.contextMenuUI = new ContextMenuUI(this, this.hot);
91
243
  this.rowMoveController = new RowMoveController(this);
92
244
  this.addHook('afterInit', function () {
93
- return _this.onAfterInit(...arguments);
245
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
246
+ args[_key] = arguments[_key];
247
+ }
248
+ return _classPrivateMethodGet(_this, _onAfterInit, _onAfterInit2).call(_this, ...args);
94
249
  });
95
250
  this.addHook('beforeViewRender', function () {
96
- return _this.onBeforeViewRender(...arguments);
251
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
252
+ args[_key2] = arguments[_key2];
253
+ }
254
+ return _classPrivateMethodGet(_this, _onBeforeViewRender, _onBeforeViewRender2).call(_this, ...args);
97
255
  });
98
256
  this.addHook('modifyRowData', function () {
99
257
  return _this.onModifyRowData(...arguments);
@@ -105,46 +263,85 @@ export class NestedRows extends BasePlugin {
105
263
  return _this.onBeforeDataSplice(...arguments);
106
264
  });
107
265
  this.addHook('filterData', function () {
108
- return _this.onFilterData(...arguments);
266
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
267
+ args[_key3] = arguments[_key3];
268
+ }
269
+ return _classPrivateMethodGet(_this, _onFilterData, _onFilterData2).call(_this, ...args);
109
270
  });
110
271
  this.addHook('afterContextMenuDefaultOptions', function () {
111
- return _this.onAfterContextMenuDefaultOptions(...arguments);
272
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
273
+ args[_key4] = arguments[_key4];
274
+ }
275
+ return _classPrivateMethodGet(_this, _onAfterContextMenuDefaultOptions, _onAfterContextMenuDefaultOptions2).call(_this, ...args);
112
276
  });
113
277
  this.addHook('afterGetRowHeader', function () {
114
- return _this.onAfterGetRowHeader(...arguments);
278
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
279
+ args[_key5] = arguments[_key5];
280
+ }
281
+ return _classPrivateMethodGet(_this, _onAfterGetRowHeader, _onAfterGetRowHeader2).call(_this, ...args);
115
282
  });
116
283
  this.addHook('beforeOnCellMouseDown', function () {
117
- return _this.onBeforeOnCellMouseDown(...arguments);
284
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
285
+ args[_key6] = arguments[_key6];
286
+ }
287
+ return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
118
288
  });
119
289
  this.addHook('beforeRemoveRow', function () {
120
- return _this.onBeforeRemoveRow(...arguments);
290
+ for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
291
+ args[_key7] = arguments[_key7];
292
+ }
293
+ return _classPrivateMethodGet(_this, _onBeforeRemoveRow, _onBeforeRemoveRow2).call(_this, ...args);
121
294
  });
122
295
  this.addHook('afterRemoveRow', function () {
123
- return _this.onAfterRemoveRow(...arguments);
296
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
297
+ args[_key8] = arguments[_key8];
298
+ }
299
+ return _classPrivateMethodGet(_this, _onAfterRemoveRow, _onAfterRemoveRow2).call(_this, ...args);
124
300
  });
125
301
  this.addHook('beforeAddChild', function () {
126
- return _this.onBeforeAddChild(...arguments);
302
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
303
+ args[_key9] = arguments[_key9];
304
+ }
305
+ return _classPrivateMethodGet(_this, _onBeforeAddChild, _onBeforeAddChild2).call(_this, ...args);
127
306
  });
128
307
  this.addHook('afterAddChild', function () {
129
- return _this.onAfterAddChild(...arguments);
308
+ for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
309
+ args[_key10] = arguments[_key10];
310
+ }
311
+ return _classPrivateMethodGet(_this, _onAfterAddChild, _onAfterAddChild2).call(_this, ...args);
130
312
  });
131
313
  this.addHook('beforeDetachChild', function () {
132
- return _this.onBeforeDetachChild(...arguments);
314
+ for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
315
+ args[_key11] = arguments[_key11];
316
+ }
317
+ return _classPrivateMethodGet(_this, _onBeforeDetachChild, _onBeforeDetachChild2).call(_this, ...args);
133
318
  });
134
319
  this.addHook('afterDetachChild', function () {
135
- return _this.onAfterDetachChild(...arguments);
320
+ for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
321
+ args[_key12] = arguments[_key12];
322
+ }
323
+ return _classPrivateMethodGet(_this, _onAfterDetachChild, _onAfterDetachChild2).call(_this, ...args);
136
324
  });
137
325
  this.addHook('modifyRowHeaderWidth', function () {
138
- return _this.onModifyRowHeaderWidth(...arguments);
326
+ for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
327
+ args[_key13] = arguments[_key13];
328
+ }
329
+ return _classPrivateMethodGet(_this, _onModifyRowHeaderWidth, _onModifyRowHeaderWidth2).call(_this, ...args);
139
330
  });
140
331
  this.addHook('afterCreateRow', function () {
141
- return _this.onAfterCreateRow(...arguments);
332
+ for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
333
+ args[_key14] = arguments[_key14];
334
+ }
335
+ return _classPrivateMethodGet(_this, _onAfterCreateRow, _onAfterCreateRow2).call(_this, ...args);
142
336
  });
143
337
  this.addHook('beforeRowMove', function () {
144
- return _this.onBeforeRowMove(...arguments);
338
+ for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
339
+ args[_key15] = arguments[_key15];
340
+ }
341
+ return _classPrivateMethodGet(_this, _onBeforeRowMove, _onBeforeRowMove2).call(_this, ...args);
145
342
  });
146
- this.addHook('beforeLoadData', data => this.onBeforeLoadData(data));
147
- this.addHook('beforeUpdateData', data => this.onBeforeLoadData(data));
343
+ this.addHook('beforeLoadData', data => _classPrivateMethodGet(this, _onBeforeLoadData, _onBeforeLoadData2).call(this, data));
344
+ this.addHook('beforeUpdateData', data => _classPrivateMethodGet(this, _onBeforeLoadData, _onBeforeLoadData2).call(this, data));
148
345
  this.registerShortcuts();
149
346
  super.enablePlugin();
150
347
  }
@@ -200,7 +397,8 @@ export class NestedRows extends BasePlugin {
200
397
  },
201
398
  runOnlyIf: () => {
202
399
  var _this$hot$getSelected;
203
- return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
400
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
401
+ return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
204
402
  },
205
403
  group: SHORTCUTS_GROUP
206
404
  });
@@ -214,65 +412,28 @@ export class NestedRows extends BasePlugin {
214
412
  unregisterShortcuts() {
215
413
  this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
216
414
  }
217
-
218
- /**
219
- * `beforeRowMove` hook callback.
220
- *
221
- * @private
222
- * @param {Array} rows Array of visual row indexes to be moved.
223
- * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements
224
- * will be placed after the moving action. To check the visualization of the final index, please take a look at
225
- * [documentation](@/guides/rows/row-summary.md).
226
- * @param {undefined|number} dropIndex Visual row index, being a drop index for the moved rows. Points to where we
227
- * are going to drop the moved elements. To check visualization of drop index please take a look at
228
- * [documentation](@/guides/rows/row-summary.md).
229
- * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.
230
- * @fires Hooks#afterRowMove
231
- * @returns {boolean}
232
- */
233
- onBeforeRowMove(rows, finalIndex, dropIndex, movePossible) {
234
- return this.rowMoveController.onBeforeRowMove(rows, finalIndex, dropIndex, movePossible);
235
- }
236
-
237
415
  /**
238
416
  * Enable the modify hook skipping flag - allows retrieving the data from Handsontable without this plugin's
239
417
  * modifications.
240
418
  */
241
419
  disableCoreAPIModifiers() {
242
- const priv = privatePool.get(this);
243
- priv.skipCoreAPIModifiers = true;
420
+ _classPrivateFieldSet(this, _skipCoreAPIModifiers, true);
244
421
  }
245
422
 
246
423
  /**
247
424
  * Disable the modify hook skipping flag.
248
425
  */
249
426
  enableCoreAPIModifiers() {
250
- const priv = privatePool.get(this);
251
- priv.skipCoreAPIModifiers = false;
427
+ _classPrivateFieldSet(this, _skipCoreAPIModifiers, false);
252
428
  }
253
-
254
- /**
255
- * `beforeOnCellMousedown` hook callback.
256
- *
257
- * @private
258
- * @param {MouseEvent} event Mousedown event.
259
- * @param {object} coords Cell coords.
260
- * @param {HTMLElement} TD Clicked cell.
261
- */
262
- onBeforeOnCellMouseDown(event, coords, TD) {
263
- this.collapsingUI.toggleState(event, coords, TD);
264
- }
265
-
266
429
  /**
267
430
  * The modifyRowData hook callback.
268
431
  *
269
- * @private
270
432
  * @param {number} row Visual row index.
271
433
  * @returns {boolean}
272
434
  */
273
435
  onModifyRowData(row) {
274
- const priv = privatePool.get(this);
275
- if (priv.skipCoreAPIModifiers) {
436
+ if (_classPrivateFieldGet(this, _skipCoreAPIModifiers)) {
276
437
  return;
277
438
  }
278
439
  return this.dataManager.getDataObject(row);
@@ -281,236 +442,124 @@ export class NestedRows extends BasePlugin {
281
442
  /**
282
443
  * Modify the source data length to match the length of the nested structure.
283
444
  *
284
- * @private
285
445
  * @returns {number}
286
446
  */
287
447
  onModifySourceLength() {
288
- const priv = privatePool.get(this);
289
- if (priv.skipCoreAPIModifiers) {
448
+ if (_classPrivateFieldGet(this, _skipCoreAPIModifiers)) {
290
449
  return;
291
450
  }
292
451
  return this.dataManager.countAllRows();
293
452
  }
294
453
 
295
454
  /**
296
- * @private
297
455
  * @param {number} index The index where the data was spliced.
298
456
  * @param {number} amount An amount of items to remove.
299
457
  * @param {object} element An element to add.
300
458
  * @returns {boolean}
301
459
  */
302
460
  onBeforeDataSplice(index, amount, element) {
303
- const priv = privatePool.get(this);
304
- if (priv.skipCoreAPIModifiers || this.dataManager.isRowHighestLevel(index)) {
461
+ if (_classPrivateFieldGet(this, _skipCoreAPIModifiers) || this.dataManager.isRowHighestLevel(index)) {
305
462
  return true;
306
463
  }
307
464
  this.dataManager.spliceData(index, amount, element);
308
465
  return false;
309
466
  }
310
-
311
467
  /**
312
- * Provide custom source data filtering. It's handled by core method and replaces the native filtering.
313
- *
314
- * @private
315
- * @param {number} index The index where the data filtering starts.
316
- * @param {number} amount An amount of rows which filtering applies to.
317
- * @param {number} physicalRows Physical row indexes.
318
- * @returns {Array}
319
- */
320
- onFilterData(index, amount, physicalRows) {
321
- const priv = privatePool.get(this);
322
- this.collapsingUI.collapsedRowsStash.stash();
323
- this.collapsingUI.collapsedRowsStash.trimStash(physicalRows[0], amount);
324
- this.collapsingUI.collapsedRowsStash.shiftStash(physicalRows[0], null, -1 * amount);
325
- this.dataManager.filterData(index, amount, physicalRows);
326
- priv.skipRender = true;
327
- return this.dataManager.getData().slice(); // Data contains reference sometimes.
328
- }
329
-
330
- /**
331
- * `afterContextMenuDefaultOptions` hook callback.
332
- *
333
- * @private
334
- * @param {object} defaultOptions The default context menu items order.
335
- * @returns {boolean}
336
- */
337
- onAfterContextMenuDefaultOptions(defaultOptions) {
338
- return this.contextMenuUI.appendOptions(defaultOptions);
339
- }
340
-
341
- /**
342
- * `afterGetRowHeader` hook callback.
343
- *
344
- * @private
345
- * @param {number} row Row index.
346
- * @param {HTMLElement} TH Row header element.
347
- */
348
- onAfterGetRowHeader(row, TH) {
349
- this.headersUI.appendLevelIndicators(row, TH);
350
- }
351
-
352
- /**
353
- * `modifyRowHeaderWidth` hook callback.
354
- *
355
- * @private
356
- * @param {number} rowHeaderWidth The initial row header width(s).
357
- * @returns {number}
358
- */
359
- onModifyRowHeaderWidth(rowHeaderWidth) {
360
- return this.headersUI.rowHeaderWidthCache || rowHeaderWidth;
361
- }
362
-
363
- /**
364
- * `onAfterRemoveRow` hook callback.
365
- *
366
- * @private
367
- * @param {number} index Removed row.
368
- * @param {number} amount Amount of removed rows.
369
- * @param {Array} logicRows An array of the removed physical rows.
370
- * @param {string} source Source of action.
371
- */
372
- onAfterRemoveRow(index, amount, logicRows, source) {
373
- if (source === this.pluginName) {
374
- return;
375
- }
376
- const priv = privatePool.get(this);
377
- setTimeout(() => {
378
- priv.skipRender = null;
379
- this.headersUI.updateRowHeaderWidth();
380
- this.collapsingUI.collapsedRowsStash.applyStash();
381
- }, 0);
382
- }
383
-
384
- /**
385
- * Callback for the `beforeRemoveRow` change list of removed physical indexes by reference. Removing parent node
386
- * has effect in removing children nodes.
387
- *
388
- * @private
389
- * @param {number} index Visual index of starter row.
390
- * @param {number} amount Amount of rows to be removed.
391
- * @param {Array} physicalRows List of physical indexes.
468
+ * Destroys the plugin instance.
392
469
  */
393
- onBeforeRemoveRow(index, amount, physicalRows) {
394
- const modifiedPhysicalRows = Array.from(physicalRows.reduce((removedRows, physicalIndex) => {
395
- if (this.dataManager.isParent(physicalIndex)) {
396
- const children = this.dataManager.getDataObject(physicalIndex).__children;
397
-
398
- // Preserve a parent in the list of removed rows.
399
- removedRows.add(physicalIndex);
400
- if (Array.isArray(children)) {
401
- // Add a children to the list of removed rows.
402
- children.forEach(child => removedRows.add(this.dataManager.getRowIndex(child)));
403
- }
404
- return removedRows;
405
- }
406
-
407
- // Don't modify list of removed rows when already checked element isn't a parent.
408
- return removedRows.add(physicalIndex);
409
- }, new Set()));
410
-
411
- // Modifying hook's argument by the reference.
412
- physicalRows.length = 0;
413
- physicalRows.push(...modifiedPhysicalRows);
470
+ destroy() {
471
+ super.destroy();
414
472
  }
415
-
416
- /**
417
- * `beforeAddChild` hook callback.
418
- *
419
- * @private
420
- */
421
- onBeforeAddChild() {
422
- this.collapsingUI.collapsedRowsStash.stash();
473
+ }
474
+ function _onBeforeRowMove2(rows, finalIndex, dropIndex, movePossible) {
475
+ return this.rowMoveController.onBeforeRowMove(rows, finalIndex, dropIndex, movePossible);
476
+ }
477
+ function _onBeforeOnCellMouseDown2(event, coords, TD) {
478
+ this.collapsingUI.toggleState(event, coords, TD);
479
+ }
480
+ function _onFilterData2(index, amount, physicalRows) {
481
+ this.collapsingUI.collapsedRowsStash.stash();
482
+ this.collapsingUI.collapsedRowsStash.trimStash(physicalRows[0], amount);
483
+ this.collapsingUI.collapsedRowsStash.shiftStash(physicalRows[0], null, -1 * amount);
484
+ this.dataManager.filterData(index, amount, physicalRows);
485
+ _classPrivateFieldSet(this, _skipRender, true);
486
+ return this.dataManager.getData().slice(); // Data contains reference sometimes.
487
+ }
488
+ function _onAfterContextMenuDefaultOptions2(defaultOptions) {
489
+ return this.contextMenuUI.appendOptions(defaultOptions);
490
+ }
491
+ function _onAfterGetRowHeader2(row, TH) {
492
+ this.headersUI.appendLevelIndicators(row, TH);
493
+ }
494
+ function _onModifyRowHeaderWidth2(rowHeaderWidth) {
495
+ return this.headersUI.rowHeaderWidthCache || rowHeaderWidth;
496
+ }
497
+ function _onAfterRemoveRow2(index, amount, logicRows, source) {
498
+ if (source === this.pluginName) {
499
+ return;
423
500
  }
424
-
425
- /**
426
- * `afterAddChild` hook callback.
427
- *
428
- * @private
429
- * @param {object} parent Parent element.
430
- * @param {object} element New child element.
431
- */
432
- onAfterAddChild(parent, element) {
433
- this.collapsingUI.collapsedRowsStash.shiftStash(this.dataManager.getRowIndex(element));
434
- this.collapsingUI.collapsedRowsStash.applyStash();
501
+ this.hot._registerTimeout(() => {
502
+ _classPrivateFieldSet(this, _skipRender, false);
435
503
  this.headersUI.updateRowHeaderWidth();
436
- }
437
-
438
- /**
439
- * `beforeDetachChild` hook callback.
440
- *
441
- * @private
442
- */
443
- onBeforeDetachChild() {
444
- this.collapsingUI.collapsedRowsStash.stash();
445
- }
446
-
447
- /**
448
- * `afterDetachChild` hook callback.
449
- *
450
- * @private
451
- * @param {object} parent Parent element.
452
- * @param {object} element New child element.
453
- * @param {number} finalElementRowIndex The final row index of the detached element.
454
- */
455
- onAfterDetachChild(parent, element, finalElementRowIndex) {
456
- this.collapsingUI.collapsedRowsStash.shiftStash(finalElementRowIndex, null, -1);
457
504
  this.collapsingUI.collapsedRowsStash.applyStash();
458
- this.headersUI.updateRowHeaderWidth();
459
- }
460
-
461
- /**
462
- * `afterCreateRow` hook callback.
463
- *
464
- * @private
465
- */
466
- onAfterCreateRow() {
467
- this.dataManager.rewriteCache();
468
- }
469
-
470
- /**
471
- * `afterInit` hook callback.
472
- *
473
- * @private
474
- */
475
- onAfterInit() {
476
- this.headersUI.updateRowHeaderWidth();
477
- }
478
-
479
- /**
480
- * `beforeViewRender` hook callback.
481
- *
482
- * @param {boolean} force Indicates if the render call was triggered by a change of settings or data.
483
- * @param {object} skipRender An object, holder for skipRender functionality.
484
- * @private
485
- */
486
- onBeforeViewRender(force, skipRender) {
487
- const priv = privatePool.get(this);
488
- if (priv.skipRender) {
489
- skipRender.skipRender = true;
505
+ }, 0);
506
+ }
507
+ function _onBeforeRemoveRow2(index, amount, physicalRows) {
508
+ const modifiedPhysicalRows = Array.from(physicalRows.reduce((removedRows, physicalIndex) => {
509
+ if (this.dataManager.isParent(physicalIndex)) {
510
+ const children = this.dataManager.getDataObject(physicalIndex).__children;
511
+
512
+ // Preserve a parent in the list of removed rows.
513
+ removedRows.add(physicalIndex);
514
+ if (Array.isArray(children)) {
515
+ // Add a children to the list of removed rows.
516
+ children.forEach(child => removedRows.add(this.dataManager.getRowIndex(child)));
517
+ }
518
+ return removedRows;
490
519
  }
491
- }
492
520
 
493
- /**
494
- * Destroys the plugin instance.
495
- */
496
- destroy() {
497
- super.destroy();
521
+ // Don't modify list of removed rows when already checked element isn't a parent.
522
+ return removedRows.add(physicalIndex);
523
+ }, new Set()));
524
+
525
+ // Modifying hook's argument by the reference.
526
+ physicalRows.length = 0;
527
+ physicalRows.push(...modifiedPhysicalRows);
528
+ }
529
+ function _onBeforeAddChild2() {
530
+ this.collapsingUI.collapsedRowsStash.stash();
531
+ }
532
+ function _onAfterAddChild2(parent, element) {
533
+ this.collapsingUI.collapsedRowsStash.shiftStash(this.dataManager.getRowIndex(element));
534
+ this.collapsingUI.collapsedRowsStash.applyStash();
535
+ this.headersUI.updateRowHeaderWidth();
536
+ }
537
+ function _onBeforeDetachChild2() {
538
+ this.collapsingUI.collapsedRowsStash.stash();
539
+ }
540
+ function _onAfterDetachChild2(parent, element, finalElementRowIndex) {
541
+ this.collapsingUI.collapsedRowsStash.shiftStash(finalElementRowIndex, null, -1);
542
+ this.collapsingUI.collapsedRowsStash.applyStash();
543
+ this.headersUI.updateRowHeaderWidth();
544
+ }
545
+ function _onAfterCreateRow2() {
546
+ this.dataManager.rewriteCache();
547
+ }
548
+ function _onAfterInit2() {
549
+ this.headersUI.updateRowHeaderWidth();
550
+ }
551
+ function _onBeforeViewRender2(force, skipRender) {
552
+ if (_classPrivateFieldGet(this, _skipRender)) {
553
+ skipRender.skipRender = true;
498
554
  }
499
-
500
- /**
501
- * `beforeLoadData` hook callback.
502
- *
503
- * @param {Array} data The source data.
504
- * @private
505
- */
506
- onBeforeLoadData(data) {
507
- if (!isArrayOfObjects(data)) {
508
- error(WRONG_DATA_TYPE_ERROR);
509
- this.hot.getSettings()[PLUGIN_KEY] = false;
510
- this.disablePlugin();
511
- return;
512
- }
513
- this.dataManager.setData(data);
514
- this.dataManager.rewriteCache();
555
+ }
556
+ function _onBeforeLoadData2(data) {
557
+ if (!isArrayOfObjects(data)) {
558
+ error(WRONG_DATA_TYPE_ERROR);
559
+ this.hot.getSettings()[PLUGIN_KEY] = false;
560
+ this.disablePlugin();
561
+ return;
515
562
  }
563
+ this.dataManager.setData(data);
564
+ this.dataManager.rewriteCache();
516
565
  }