handsontable 14.6.1 → 15.0.0-next-4472a60-20241203

Sign up to get free protection for your applications and to get access to all the features.
Files changed (392) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
  5. package/3rdparty/walkontable/src/calculator/index.js +1 -2
  6. package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
  7. package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
  8. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
  9. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  10. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  11. package/3rdparty/walkontable/src/core/_base.js +29 -23
  12. package/3rdparty/walkontable/src/core/_base.mjs +29 -23
  13. package/3rdparty/walkontable/src/core/clone.js +1 -0
  14. package/3rdparty/walkontable/src/core/clone.mjs +1 -0
  15. package/3rdparty/walkontable/src/core/core.js +2 -0
  16. package/3rdparty/walkontable/src/core/core.mjs +2 -0
  17. package/3rdparty/walkontable/src/facade/core.js +12 -6
  18. package/3rdparty/walkontable/src/facade/core.mjs +12 -6
  19. package/3rdparty/walkontable/src/index.js +0 -1
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +8 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
  23. package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
  24. package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
  25. package/3rdparty/walkontable/src/overlay/index.js +2 -0
  26. package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
  27. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
  28. package/3rdparty/walkontable/src/overlay/top.js +9 -8
  29. package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
  30. package/3rdparty/walkontable/src/overlays.js +10 -26
  31. package/3rdparty/walkontable/src/overlays.mjs +10 -26
  32. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  33. package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
  34. package/3rdparty/walkontable/src/renderer/index.js +4 -2
  35. package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
  36. package/3rdparty/walkontable/src/renderer/table.js +13 -4
  37. package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
  38. package/3rdparty/walkontable/src/scroll.js +46 -37
  39. package/3rdparty/walkontable/src/scroll.mjs +46 -37
  40. package/3rdparty/walkontable/src/selection/border/border.js +52 -58
  41. package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
  42. package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
  43. package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
  44. package/3rdparty/walkontable/src/selection/index.js +6 -4
  45. package/3rdparty/walkontable/src/selection/index.mjs +1 -1
  46. package/3rdparty/walkontable/src/selection/manager.js +3 -0
  47. package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
  48. package/3rdparty/walkontable/src/selection/scanner.js +46 -11
  49. package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
  50. package/3rdparty/walkontable/src/settings.js +8 -9
  51. package/3rdparty/walkontable/src/settings.mjs +8 -9
  52. package/3rdparty/walkontable/src/table/master.js +1 -1
  53. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  54. package/3rdparty/walkontable/src/table.js +25 -36
  55. package/3rdparty/walkontable/src/table.mjs +25 -36
  56. package/3rdparty/walkontable/src/types.js +1 -0
  57. package/3rdparty/walkontable/src/types.mjs +1 -0
  58. package/3rdparty/walkontable/src/utils/column.js +1 -43
  59. package/3rdparty/walkontable/src/utils/column.mjs +1 -43
  60. package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
  61. package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
  62. package/3rdparty/walkontable/src/viewport.js +94 -91
  63. package/3rdparty/walkontable/src/viewport.mjs +95 -92
  64. package/CHANGELOG.md +36 -0
  65. package/README.md +1 -1
  66. package/base.js +4 -4
  67. package/base.mjs +3 -3
  68. package/core/focusCatcher/focusDetector.js +1 -0
  69. package/core/focusCatcher/focusDetector.mjs +1 -0
  70. package/core/hooks/bucket.js +184 -0
  71. package/core/hooks/bucket.mjs +180 -0
  72. package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
  73. package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
  74. package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
  75. package/core/hooks/index.js +385 -0
  76. package/core/hooks/index.mjs +381 -0
  77. package/core/index.js +2 -0
  78. package/core.d.ts +5 -3
  79. package/core.js +77 -35
  80. package/core.mjs +69 -27
  81. package/dataMap/dataMap.js +3 -0
  82. package/dataMap/dataMap.mjs +3 -0
  83. package/dataMap/dataSource.js +2 -0
  84. package/dataMap/dataSource.mjs +2 -0
  85. package/dataMap/metaManager/index.js +2 -0
  86. package/dataMap/metaManager/index.mjs +2 -0
  87. package/dataMap/metaManager/metaSchema.js +91 -5
  88. package/dataMap/metaManager/metaSchema.mjs +91 -5
  89. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
  90. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  91. package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
  92. package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
  93. package/dist/handsontable.css +84 -72
  94. package/dist/handsontable.full.css +317 -304
  95. package/dist/handsontable.full.js +14826 -7294
  96. package/dist/handsontable.full.min.css +15 -10
  97. package/dist/handsontable.full.min.js +262 -69
  98. package/dist/handsontable.js +7826 -5552
  99. package/dist/handsontable.min.css +10 -6
  100. package/dist/handsontable.min.js +33 -33
  101. package/dist/languages/all.js +1 -1
  102. package/dist/languages/ar-AR.js +1 -1
  103. package/dist/languages/cs-CZ.js +1 -1
  104. package/dist/languages/de-CH.js +1 -1
  105. package/dist/languages/de-DE.js +1 -1
  106. package/dist/languages/en-US.js +1 -1
  107. package/dist/languages/es-MX.js +1 -1
  108. package/dist/languages/fr-FR.js +1 -1
  109. package/dist/languages/hr-HR.js +1 -1
  110. package/dist/languages/it-IT.js +1 -1
  111. package/dist/languages/ja-JP.js +1 -1
  112. package/dist/languages/ko-KR.js +1 -1
  113. package/dist/languages/lv-LV.js +1 -1
  114. package/dist/languages/nb-NO.js +1 -1
  115. package/dist/languages/nl-NL.js +1 -1
  116. package/dist/languages/pl-PL.js +1 -1
  117. package/dist/languages/pt-BR.js +1 -1
  118. package/dist/languages/ru-RU.js +1 -1
  119. package/dist/languages/sr-SP.js +1 -1
  120. package/dist/languages/zh-CN.js +1 -1
  121. package/dist/languages/zh-TW.js +1 -1
  122. package/editorManager.js +2 -2
  123. package/editorManager.mjs +2 -2
  124. package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
  125. package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
  126. package/editors/baseEditor/baseEditor.js +25 -18
  127. package/editors/baseEditor/baseEditor.mjs +26 -19
  128. package/editors/dateEditor/dateEditor.js +9 -0
  129. package/editors/dateEditor/dateEditor.mjs +10 -1
  130. package/editors/dropdownEditor/dropdownEditor.js +4 -3
  131. package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
  132. package/editors/handsontableEditor/handsontableEditor.js +36 -2
  133. package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
  134. package/editors/passwordEditor/passwordEditor.js +18 -0
  135. package/editors/passwordEditor/passwordEditor.mjs +18 -0
  136. package/editors/registry.js +2 -2
  137. package/editors/registry.mjs +1 -1
  138. package/editors/selectEditor/selectEditor.js +20 -9
  139. package/editors/selectEditor/selectEditor.mjs +20 -9
  140. package/editors/textEditor/textEditor.js +5 -12
  141. package/editors/textEditor/textEditor.mjs +6 -13
  142. package/focusManager.js +5 -7
  143. package/focusManager.mjs +5 -7
  144. package/helpers/array.js +2 -0
  145. package/helpers/array.mjs +2 -0
  146. package/helpers/data.js +3 -0
  147. package/helpers/data.mjs +3 -0
  148. package/helpers/dom/element.js +39 -18
  149. package/helpers/dom/element.mjs +38 -17
  150. package/helpers/mixed.js +3 -3
  151. package/helpers/mixed.mjs +3 -3
  152. package/helpers/moves.js +3 -0
  153. package/helpers/moves.mjs +3 -0
  154. package/helpers/number.js +1 -0
  155. package/helpers/number.mjs +1 -0
  156. package/helpers/object.js +2 -0
  157. package/helpers/object.mjs +2 -0
  158. package/helpers/themes.js +17 -0
  159. package/helpers/themes.mjs +13 -0
  160. package/i18n/index.js +2 -0
  161. package/i18n/languages/index.d.ts +8 -0
  162. package/i18n/languages/ja-JP.d.ts +1 -1
  163. package/i18n/phraseFormatters/substituteVariables.js +1 -0
  164. package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
  165. package/index.d.ts +9 -1
  166. package/languages/all.js +1 -1
  167. package/languages/ar-AR.js +1 -1
  168. package/languages/cs-CZ.js +1 -1
  169. package/languages/de-CH.js +1 -1
  170. package/languages/de-DE.js +1 -1
  171. package/languages/en-US.js +1 -1
  172. package/languages/es-MX.js +1 -1
  173. package/languages/fr-FR.js +1 -1
  174. package/languages/hr-HR.js +1 -1
  175. package/languages/index.js +1 -1
  176. package/languages/it-IT.js +1 -1
  177. package/languages/ja-JP.js +1 -1
  178. package/languages/ko-KR.js +1 -1
  179. package/languages/lv-LV.js +1 -1
  180. package/languages/nb-NO.js +1 -1
  181. package/languages/nl-NL.js +1 -1
  182. package/languages/pl-PL.js +1 -1
  183. package/languages/pt-BR.js +1 -1
  184. package/languages/ru-RU.js +1 -1
  185. package/languages/sr-SP.js +1 -1
  186. package/languages/zh-CN.js +1 -1
  187. package/languages/zh-TW.js +1 -1
  188. package/package.json +22 -7
  189. package/plugins/autoColumnSize/autoColumnSize.js +22 -27
  190. package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
  191. package/plugins/autoRowSize/autoRowSize.js +20 -22
  192. package/plugins/autoRowSize/autoRowSize.mjs +21 -23
  193. package/plugins/autofill/autofill.js +4 -5
  194. package/plugins/autofill/autofill.mjs +1 -1
  195. package/plugins/base/base.d.ts +1 -1
  196. package/plugins/base/base.js +41 -0
  197. package/plugins/base/base.mjs +42 -1
  198. package/plugins/base/index.js +2 -1
  199. package/plugins/base/index.mjs +1 -1
  200. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
  201. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
  202. package/plugins/columnSorting/columnSorting.js +5 -4
  203. package/plugins/columnSorting/columnSorting.mjs +3 -1
  204. package/plugins/columnSorting/columnStatesManager.js +1 -0
  205. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  206. package/plugins/columnSorting/utils.js +3 -0
  207. package/plugins/columnSorting/utils.mjs +3 -0
  208. package/plugins/columnSummary/endpoints.js +3 -0
  209. package/plugins/columnSummary/endpoints.mjs +3 -0
  210. package/plugins/comments/commentEditor.js +9 -0
  211. package/plugins/comments/commentEditor.mjs +9 -0
  212. package/plugins/comments/comments.js +24 -18
  213. package/plugins/comments/comments.mjs +26 -20
  214. package/plugins/comments/editorResizeObserver.js +2 -0
  215. package/plugins/comments/editorResizeObserver.mjs +2 -0
  216. package/plugins/contextMenu/contextMenu.d.ts +2 -1
  217. package/plugins/contextMenu/contextMenu.js +6 -7
  218. package/plugins/contextMenu/contextMenu.mjs +1 -1
  219. package/plugins/contextMenu/menu/index.js +2 -0
  220. package/plugins/contextMenu/menu/menu.js +10 -5
  221. package/plugins/contextMenu/menu/menu.mjs +11 -6
  222. package/plugins/contextMenu/menu/positioner.js +4 -2
  223. package/plugins/contextMenu/menu/positioner.mjs +4 -2
  224. package/plugins/contextMenu/menu/shortcuts.js +3 -1
  225. package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
  226. package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
  227. package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
  228. package/plugins/contextMenu/utils.js +0 -10
  229. package/plugins/contextMenu/utils.mjs +0 -9
  230. package/plugins/copyPaste/copyPaste.d.ts +1 -0
  231. package/plugins/copyPaste/copyPaste.js +32 -23
  232. package/plugins/copyPaste/copyPaste.mjs +24 -15
  233. package/plugins/customBorders/utils.js +2 -0
  234. package/plugins/customBorders/utils.mjs +2 -0
  235. package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
  236. package/plugins/dropdownMenu/dropdownMenu.js +6 -7
  237. package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
  238. package/plugins/exportFile/types/csv.js +1 -0
  239. package/plugins/exportFile/types/csv.mjs +1 -0
  240. package/plugins/filters/component/condition.js +2 -0
  241. package/plugins/filters/component/condition.mjs +2 -0
  242. package/plugins/filters/component/operators.js +2 -0
  243. package/plugins/filters/component/operators.mjs +2 -0
  244. package/plugins/filters/component/value.js +3 -0
  245. package/plugins/filters/component/value.mjs +3 -0
  246. package/plugins/filters/conditionCollection.js +3 -0
  247. package/plugins/filters/conditionCollection.mjs +3 -0
  248. package/plugins/filters/conditionUpdateObserver.js +2 -0
  249. package/plugins/filters/conditionUpdateObserver.mjs +2 -0
  250. package/plugins/filters/filters.js +43 -13
  251. package/plugins/filters/filters.mjs +43 -13
  252. package/plugins/filters/logicalOperations/conjunction.js +2 -0
  253. package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
  254. package/plugins/filters/logicalOperations/disjunction.js +2 -0
  255. package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
  256. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
  257. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
  258. package/plugins/filters/menu/focusController.js +38 -14
  259. package/plugins/filters/menu/focusController.mjs +38 -14
  260. package/plugins/filters/ui/multipleSelect.js +10 -0
  261. package/plugins/filters/ui/multipleSelect.mjs +10 -0
  262. package/plugins/formulas/engine/register.js +3 -0
  263. package/plugins/formulas/engine/register.mjs +3 -0
  264. package/plugins/formulas/engine/settings.js +3 -0
  265. package/plugins/formulas/engine/settings.mjs +3 -0
  266. package/plugins/formulas/formulas.js +12 -7
  267. package/plugins/formulas/formulas.mjs +6 -1
  268. package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
  269. package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
  270. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
  271. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
  272. package/plugins/hiddenColumns/hiddenColumns.js +22 -30
  273. package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
  274. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
  275. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
  276. package/plugins/hiddenRows/hiddenRows.js +21 -29
  277. package/plugins/hiddenRows/hiddenRows.mjs +17 -25
  278. package/plugins/index.d.ts +3 -0
  279. package/plugins/index.js +3 -0
  280. package/plugins/index.mjs +3 -1
  281. package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
  282. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
  283. package/plugins/manualColumnMove/manualColumnMove.js +6 -6
  284. package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
  285. package/plugins/manualColumnResize/manualColumnResize.js +26 -12
  286. package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
  287. package/plugins/manualRowMove/manualRowMove.js +8 -6
  288. package/plugins/manualRowMove/manualRowMove.mjs +6 -4
  289. package/plugins/manualRowResize/manualRowResize.js +3 -2
  290. package/plugins/manualRowResize/manualRowResize.mjs +4 -3
  291. package/plugins/mergeCells/cellsCollection.js +19 -3
  292. package/plugins/mergeCells/cellsCollection.mjs +20 -4
  293. package/plugins/mergeCells/mergeCells.d.ts +6 -2
  294. package/plugins/mergeCells/mergeCells.js +84 -56
  295. package/plugins/mergeCells/mergeCells.mjs +82 -54
  296. package/plugins/mergeCells/renderer.js +13 -3
  297. package/plugins/mergeCells/renderer.mjs +13 -3
  298. package/plugins/multiColumnSorting/domHelpers.js +2 -0
  299. package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
  300. package/plugins/nestedHeaders/nestedHeaders.js +63 -16
  301. package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
  302. package/plugins/nestedHeaders/stateManager/index.js +1 -0
  303. package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
  304. package/plugins/nestedRows/nestedRows.js +3 -0
  305. package/plugins/nestedRows/nestedRows.mjs +3 -0
  306. package/plugins/nestedRows/ui/headers.js +7 -1
  307. package/plugins/nestedRows/ui/headers.mjs +7 -1
  308. package/plugins/nestedRows/utils/rowMoveController.js +4 -0
  309. package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
  310. package/plugins/persistentState/persistentState.js +4 -4
  311. package/plugins/persistentState/persistentState.mjs +1 -1
  312. package/plugins/stretchColumns/calculator.js +162 -0
  313. package/plugins/stretchColumns/calculator.mjs +158 -0
  314. package/plugins/stretchColumns/index.d.ts +1 -0
  315. package/plugins/stretchColumns/index.js +7 -0
  316. package/plugins/stretchColumns/index.mjs +1 -0
  317. package/plugins/stretchColumns/strategies/_base.js +85 -0
  318. package/plugins/stretchColumns/strategies/_base.mjs +81 -0
  319. package/plugins/stretchColumns/strategies/all.js +71 -0
  320. package/plugins/stretchColumns/strategies/all.mjs +67 -0
  321. package/plugins/stretchColumns/strategies/last.js +79 -0
  322. package/plugins/stretchColumns/strategies/last.mjs +75 -0
  323. package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
  324. package/plugins/stretchColumns/stretchColumns.js +222 -0
  325. package/plugins/stretchColumns/stretchColumns.mjs +218 -0
  326. package/plugins/trimRows/trimRows.js +2 -0
  327. package/plugins/trimRows/trimRows.mjs +2 -0
  328. package/plugins/undoRedo/undoRedo.js +9 -5
  329. package/plugins/undoRedo/undoRedo.mjs +8 -3
  330. package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
  331. package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
  332. package/selection/index.js +2 -0
  333. package/selection/range.js +2 -0
  334. package/selection/range.mjs +2 -0
  335. package/selection/selection.js +7 -2
  336. package/selection/selection.mjs +7 -2
  337. package/selection/utils.js +2 -0
  338. package/selection/utils.mjs +2 -0
  339. package/settings.d.ts +4 -1
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
  342. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
  343. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
  344. package/shortcutContexts/commands/index.js +2 -0
  345. package/shortcutContexts/commands/index.mjs +2 -0
  346. package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
  347. package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
  348. package/shortcutContexts/index.js +2 -0
  349. package/shortcutContexts/index.mjs +2 -0
  350. package/shortcuts/context.js +3 -0
  351. package/shortcuts/context.mjs +3 -0
  352. package/shortcuts/recorder.js +3 -3
  353. package/shortcuts/recorder.mjs +3 -3
  354. package/shortcuts/utils.js +1 -0
  355. package/shortcuts/utils.mjs +1 -0
  356. package/styles/handsontable.css +2307 -0
  357. package/styles/handsontable.min.css +30 -0
  358. package/styles/ht-theme-horizon.css +607 -0
  359. package/styles/ht-theme-horizon.min.css +30 -0
  360. package/styles/ht-theme-main.css +613 -0
  361. package/styles/ht-theme-main.min.css +30 -0
  362. package/tableView.js +205 -33
  363. package/tableView.mjs +206 -34
  364. package/translations/changesObservable/observable.js +2 -0
  365. package/translations/changesObservable/observable.mjs +2 -0
  366. package/translations/index.js +2 -0
  367. package/translations/indexMapper.js +4 -0
  368. package/translations/indexMapper.mjs +4 -0
  369. package/translations/mapCollections/index.js +2 -0
  370. package/translations/mapCollections/mapCollection.js +2 -0
  371. package/translations/mapCollections/mapCollection.mjs +2 -0
  372. package/translations/maps/index.js +2 -0
  373. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  374. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  375. package/translations/maps/utils/actionsOnIndexes.js +2 -0
  376. package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
  377. package/translations/maps/utils/physicallyIndexed.js +1 -0
  378. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  379. package/utils/autoResize.js +11 -3
  380. package/utils/autoResize.mjs +11 -3
  381. package/utils/dataStructures/priorityMap.js +1 -0
  382. package/utils/dataStructures/priorityMap.mjs +1 -0
  383. package/utils/dataStructures/uniqueMap.js +2 -0
  384. package/utils/dataStructures/uniqueMap.mjs +2 -0
  385. package/utils/ghostTable.js +7 -3
  386. package/utils/ghostTable.mjs +7 -3
  387. package/utils/parseTable.js +4 -0
  388. package/utils/parseTable.mjs +4 -0
  389. package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
  390. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  391. package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
  392. package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -1,33 +1,33 @@
1
1
  import { ExportedChange } from 'hyperformula';
2
- import CellCoords from './3rdparty/walkontable/src/cell/coords';
3
- import CellRange from './3rdparty/walkontable/src/cell/range';
4
- import { ViewportColumnsCalculator } from './3rdparty/walkontable/src/calculator/viewportColumns';
5
- import Core from './core';
6
- import { SelectionController } from './selection';
2
+ import CellCoords from '../../3rdparty/walkontable/src/cell/coords';
3
+ import CellRange from '../../3rdparty/walkontable/src/cell/range';
4
+ import { ViewportColumnsCalculator } from '../../3rdparty/walkontable/src/calculator/viewportColumns';
5
+ import Core from '../../core';
6
+ import { SelectionController } from '../../selection';
7
7
  import {
8
8
  ContextMenu,
9
9
  PredefinedMenuItemKey as ContextMenuPredefinedMenuItemKey,
10
10
  MenuItemConfig as ContextMenuMenuItemConfig,
11
- } from './plugins/contextMenu';
11
+ } from '../../plugins/contextMenu';
12
12
  import {
13
13
  DropdownMenu,
14
- } from './plugins/dropdownMenu';
14
+ } from '../../plugins/dropdownMenu';
15
15
  import {
16
16
  Config as ColumnSortingConfig,
17
- } from './plugins/columnSorting';
17
+ } from '../../plugins/columnSorting';
18
18
  import {
19
19
  ColumnConditions as FiltersColumnConditions,
20
- } from './plugins/filters';
20
+ } from '../../plugins/filters';
21
21
  import {
22
22
  Action as UndoRedoAction,
23
- } from './plugins/undoRedo';
23
+ } from '../../plugins/undoRedo';
24
24
  import {
25
25
  Settings as MergeCellsSettings,
26
- } from './plugins/mergeCells';
26
+ } from '../../plugins/mergeCells';
27
27
  import {
28
28
  GridSettings,
29
29
  CellProperties,
30
- } from './settings';
30
+ } from '../../settings';
31
31
 
32
32
  import {
33
33
  CellValue,
@@ -36,11 +36,7 @@ import {
36
36
  ChangeSource,
37
37
  RangeType,
38
38
  OverlayType,
39
- } from './common';
40
-
41
- type Bucket = {
42
- [P in keyof Events]: Array<Events[P]>;
43
- };
39
+ } from '../../common';
44
40
 
45
41
  interface HookHighlightRowHeaderMeta {
46
42
  selectionType: string;
@@ -138,6 +134,7 @@ export interface Events {
138
134
  afterSetDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
139
135
  afterSetDataAtRowProp?: (changes: CellChange[], source?: ChangeSource) => void;
140
136
  afterSetSourceDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
137
+ afterSetTheme?: (themeName: string|boolean|undefined, firstRun: boolean) => void;
141
138
  afterSheetAdded?: (addedSheetDisplayName: string) => void;
142
139
  afterSheetRemoved?: (removedSheetDisplayName: string, changes: ExportedChange[]) => void;
143
140
  afterSheetRenamed?: (oldDisplayName: string, newDisplayName: string) => void;
@@ -230,8 +227,8 @@ export interface Events {
230
227
  beforeUpdateData?: (sourceData: CellValue[], initialLoad: boolean, source: string | undefined) => void;
231
228
  beforeValidate?: (value: CellValue, row: number, prop: string | number, source?: ChangeSource) => void;
232
229
  beforeValueRender?: (value: CellValue, cellProperties: CellProperties) => void;
233
- beforeViewportScrollVertically?: (visualRow: number) => number | boolean;
234
- beforeViewportScrollHorizontally?: (visualColumn: number) => number | boolean;
230
+ beforeViewportScrollVertically?: (visualRow: number, snapping: 'auto' | 'top' | 'bottom') => number | boolean | null;
231
+ beforeViewportScrollHorizontally?: (visualColumn: number, snapping: 'auto' | 'start' | 'end') => number | boolean | null;
235
232
  beforeViewportScroll?: () => void;
236
233
  beforeViewRender?: (isForced: boolean, skipRender: { skipRender?: boolean }) => void;
237
234
  construct?: () => void;
@@ -241,17 +238,18 @@ export interface Events {
241
238
  modifyColHeader?: (column: number) => void;
242
239
  modifyColumnHeaderHeight?: () => void;
243
240
  modifyColumnHeaderValue?: (headerValue: string, visualColumnIndex: number, headerLevel: number) => void | string;
244
- modifyColWidth?: (width: number, column: number) => void;
241
+ modifyColWidth?: (width: number, column: number, source?: string) => void;
245
242
  modifyCopyableRange?: (copyableRanges: RangeType[]) => void;
246
243
  modifyFiltersMultiSelectValue?: (value: string, meta: CellProperties) => void | CellValue;
247
244
  modifyFocusedElement?: (row: number, column: number, focusedElement: HTMLElement) => void | HTMLElement;
248
245
  modifyData?: (row: number, column: number, valueHolder: { value: CellValue }, ioMode: 'get' | 'set') => void;
249
246
  modifyFocusOnTabNavigation?: (tabActivationDir: 'from_above' | 'from_below', visualCoords: CellCoords) => void;
250
- modifyGetCellCoords?: (row: number, column: number, topmost: boolean) => void | [number, number] | [number, number, number, number];
247
+ modifyGetCellCoords?: (row: number, column: number, topmost: boolean, source: string | undefined) => void | [number, number] | [number, number, number, number];
248
+ modifyGetCoordsElement?: (row: number, column: number) => void | [number, number];
251
249
  modifyRowData?: (row: number) => void;
252
250
  modifyRowHeader?: (row: number) => void;
253
251
  modifyRowHeaderWidth?: (rowHeaderWidth: number) => void;
254
- modifyRowHeight?: (height: number, row: number) => void | number;
252
+ modifyRowHeight?: (height: number, row: number, source?: string) => void | number;
255
253
  modifyRowHeightByOverlayName?: (height: number, row: number, overlayType: OverlayType) => void | number;
256
254
  modifySourceData?: (row: number, column: number, valueHolder: { value: CellValue }, ioMode: 'get' | 'set') => void;
257
255
  modifyTransformEnd?: (delta: CellCoords) => void;
@@ -264,15 +262,14 @@ export interface Events {
264
262
 
265
263
  export class Hooks {
266
264
  add<K extends keyof Events>(key: K, callback: Events[K] | Array<Events[K]>, context?: Core, orderIndex?: number): Hooks;
267
- createEmptyBucket(): Bucket;
265
+ addAsFixed<K extends keyof Events>(key: K, callback: Events[K] | Array<Events[K]>, context?: Core, orderIndex?: number): Hooks;
268
266
  deregister(key: string): void;
269
267
  destroy(context?: Core): void;
270
- getBucket(context?: Core): Bucket;
271
268
  getRegistered(): Array<keyof Events>;
272
269
  has(key: keyof Events, context?: Core): boolean;
273
270
  isDeprecated(key: keyof Events): boolean;
274
271
  isRegistered(key: keyof Events): boolean;
275
- once<K extends keyof Events>(key: K, callback: Events[K] | Array<Events[K]>, context?: Core): void;
272
+ once<K extends keyof Events>(key: K, callback: Events[K] | Array<Events[K]>, context?: Core): Hooks;
276
273
  register(key: string): void;
277
274
  remove(key: keyof Events, callback: () => void, context?: Core): boolean;
278
275
  run(context: Core, key: keyof Events, p1?: any, p2?: any, p3?: any, p4?: any, p5?: any, p6?: any): any;
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.push.js");
6
+ var _array = require("../../helpers/array");
7
+ var _string = require("../../helpers/string");
8
+ var _console = require("../../helpers/console");
9
+ var _templateLiteralTag = require("../../helpers/templateLiteralTag");
10
+ var _function = require("../../helpers/function");
11
+ var _constants = require("./constants");
12
+ var _bucket = require("./bucket");
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ /**
17
+ * Template warning message for removed hooks.
18
+ *
19
+ * @type {string}
20
+ */
21
+ const REMOVED_MESSAGE = (0, _templateLiteralTag.toSingleLine)`The plugin hook "[hookName]" was removed in Handsontable [removedInVersion].\x20
22
+ Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to\x20
23
+ learn about the migration path.`;
24
+ class Hooks {
25
+ constructor() {
26
+ /**
27
+ * @type {HooksBucket}
28
+ */
29
+ _defineProperty(this, "globalBucket", new _bucket.HooksBucket());
30
+ }
31
+ static getSingleton() {
32
+ return getGlobalSingleton();
33
+ }
34
+ /**
35
+ * Get hook bucket based on the context of the object or if argument is missing, get the global hook bucket.
36
+ *
37
+ * @param {object} [context=null] A Handsontable instance.
38
+ * @returns {HooksBucket} Returns a global or Handsontable instance bucket.
39
+ */
40
+ getBucket() {
41
+ let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
42
+ if (context) {
43
+ if (!context.pluginHookBucket) {
44
+ context.pluginHookBucket = new _bucket.HooksBucket();
45
+ }
46
+ return context.pluginHookBucket;
47
+ }
48
+ return this.globalBucket;
49
+ }
50
+
51
+ /**
52
+ * Adds a listener (globally or locally) to a specified hook name.
53
+ * If the `context` parameter is provided, the hook will be added only to the instance it references.
54
+ * Otherwise, the callback will be used every time the hook fires on any Handsontable instance.
55
+ * You can provide an array of callback functions as the `callback` argument, this way they will all be fired
56
+ * once the hook is triggered.
57
+ *
58
+ * @param {string} key Hook name.
59
+ * @param {Function|Function[]} callback Callback function or an array of functions.
60
+ * @param {object} [context=null] The context for the hook callback to be added - a Handsontable instance or leave empty.
61
+ * @param {number} [orderIndex] Order index of the callback.
62
+ * If > 0, the callback will be added after the others, for example, with an index of 1, the callback will be added before the ones with an index of 2, 3, etc., but after the ones with an index of 0 and lower.
63
+ * If < 0, the callback will be added before the others, for example, with an index of -1, the callback will be added after the ones with an index of -2, -3, etc., but before the ones with an index of 0 and higher.
64
+ * If 0 or no order index is provided, the callback will be added between the "negative" and "positive" indexes.
65
+ * @returns {Hooks} Instance of Hooks.
66
+ *
67
+ * @example
68
+ * ```js
69
+ * // single callback, added locally
70
+ * Handsontable.hooks.add('beforeInit', myCallback, hotInstance);
71
+ *
72
+ * // single callback, added globally
73
+ * Handsontable.hooks.add('beforeInit', myCallback);
74
+ *
75
+ * // multiple callbacks, added locally
76
+ * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback], hotInstance);
77
+ *
78
+ * // multiple callbacks, added globally
79
+ * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);
80
+ * ```
81
+ */
82
+ add(key, callback) {
83
+ let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
84
+ let orderIndex = arguments.length > 3 ? arguments[3] : undefined;
85
+ if (Array.isArray(callback)) {
86
+ (0, _array.arrayEach)(callback, c => this.add(key, c, context));
87
+ } else {
88
+ if (_constants.REMOVED_HOOKS.has(key)) {
89
+ (0, _console.warn)((0, _string.substitute)(REMOVED_MESSAGE, {
90
+ hookName: key,
91
+ removedInVersion: _constants.REMOVED_HOOKS.get(key)
92
+ }));
93
+ }
94
+ if (_constants.DEPRECATED_HOOKS.has(key)) {
95
+ (0, _console.warn)(_constants.DEPRECATED_HOOKS.get(key));
96
+ }
97
+ this.getBucket(context).add(key, callback, {
98
+ orderIndex,
99
+ runOnce: false
100
+ });
101
+ }
102
+ return this;
103
+ }
104
+
105
+ /**
106
+ * Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.
107
+ *
108
+ * @param {string} key Hook/Event name.
109
+ * @param {Function|Function[]} callback Callback function.
110
+ * @param {object} [context=null] A Handsontable instance.
111
+ * @param {number} [orderIndex] Order index of the callback.
112
+ * If > 0, the callback will be added after the others, for example, with an index of 1, the callback will be added before the ones with an index of 2, 3, etc., but after the ones with an index of 0 and lower.
113
+ * If < 0, the callback will be added before the others, for example, with an index of -1, the callback will be added after the ones with an index of -2, -3, etc., but before the ones with an index of 0 and higher.
114
+ * If 0 or no order index is provided, the callback will be added between the "negative" and "positive" indexes.
115
+ * @returns {Hooks} Instance of Hooks.
116
+ *
117
+ * @example
118
+ * ```js
119
+ * Handsontable.hooks.once('beforeInit', myCallback, hotInstance);
120
+ * ```
121
+ */
122
+ once(key, callback) {
123
+ let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
124
+ let orderIndex = arguments.length > 3 ? arguments[3] : undefined;
125
+ if (Array.isArray(callback)) {
126
+ (0, _array.arrayEach)(callback, c => this.once(key, c, context));
127
+ } else {
128
+ this.getBucket(context).add(key, callback, {
129
+ orderIndex,
130
+ runOnce: true
131
+ });
132
+ }
133
+ return this;
134
+ }
135
+
136
+ /**
137
+ * Adds a listener to a specified hook. The added hook stays in the bucket at specified index position even after
138
+ * adding another one with the same hook name.
139
+ *
140
+ * @param {string} key Hook/Event name.
141
+ * @param {Function|Function[]} callback Callback function.
142
+ * @param {object} [context=null] A Handsontable instance.
143
+ * @returns {Hooks} Instance of Hooks.
144
+ *
145
+ * @example
146
+ * ```js
147
+ * Handsontable.hooks.addAsFixed('beforeInit', myCallback, hotInstance);
148
+ * ```
149
+ */
150
+ addAsFixed(key, callback) {
151
+ let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
152
+ if (Array.isArray(callback)) {
153
+ (0, _array.arrayEach)(callback, c => this.addAsFixed(key, c, context));
154
+ } else {
155
+ this.getBucket(context).add(key, callback, {
156
+ initialHook: true
157
+ });
158
+ }
159
+ return this;
160
+ }
161
+
162
+ /**
163
+ * Removes a listener from a hook with a given name. If the `context` argument is provided, it removes a listener from a local hook assigned to the given Handsontable instance.
164
+ *
165
+ * @param {string} key Hook/Event name.
166
+ * @param {Function} callback Callback function (needs the be the function that was previously added to the hook).
167
+ * @param {object} [context=null] Handsontable instance.
168
+ * @returns {boolean} Returns `true` if hook was removed, `false` otherwise.
169
+ *
170
+ * @example
171
+ * ```js
172
+ * Handsontable.hooks.remove('beforeInit', myCallback);
173
+ * ```
174
+ */
175
+ remove(key, callback) {
176
+ let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
177
+ return this.getBucket(context).remove(key, callback);
178
+ }
179
+
180
+ /**
181
+ * Checks whether there are any registered listeners for the provided hook name.
182
+ * If the `context` parameter is provided, it only checks for listeners assigned to the given Handsontable instance.
183
+ *
184
+ * @param {string} key Hook name.
185
+ * @param {object} [context=null] A Handsontable instance.
186
+ * @returns {boolean} `true` for success, `false` otherwise.
187
+ */
188
+ has(key) {
189
+ let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
190
+ return this.getBucket(context).has(key);
191
+ }
192
+
193
+ /**
194
+ * Runs all local and global callbacks assigned to the hook identified by the `key` parameter.
195
+ * It returns either a return value from the last called callback or the first parameter (`p1`) passed to the `run` function.
196
+ *
197
+ * @param {object} context Handsontable instance.
198
+ * @param {string} key Hook/Event name.
199
+ * @param {*} [p1] Parameter to be passed as an argument to the callback function.
200
+ * @param {*} [p2] Parameter to be passed as an argument to the callback function.
201
+ * @param {*} [p3] Parameter to be passed as an argument to the callback function.
202
+ * @param {*} [p4] Parameter to be passed as an argument to the callback function.
203
+ * @param {*} [p5] Parameter to be passed as an argument to the callback function.
204
+ * @param {*} [p6] Parameter to be passed as an argument to the callback function.
205
+ * @returns {*} Either a return value from the last called callback or `p1`.
206
+ *
207
+ * @example
208
+ * ```js
209
+ * Handsontable.hooks.run(hot, 'beforeInit');
210
+ * ```
211
+ */
212
+ run(context, key, p1, p2, p3, p4, p5, p6) {
213
+ {
214
+ const globalHandlers = this.getBucket().getHooks(key);
215
+ const length = globalHandlers ? globalHandlers.length : 0;
216
+ let index = 0;
217
+ if (length) {
218
+ // Do not optimize this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
219
+ while (index < length) {
220
+ if (!globalHandlers[index] || globalHandlers[index].skip) {
221
+ index += 1;
222
+ /* eslint-disable no-continue */
223
+ continue;
224
+ }
225
+ const res = (0, _function.fastCall)(globalHandlers[index].callback, context, p1, p2, p3, p4, p5, p6);
226
+ if (res !== undefined) {
227
+ // eslint-disable-next-line no-param-reassign
228
+ p1 = res;
229
+ }
230
+ if (globalHandlers[index] && globalHandlers[index].runOnce) {
231
+ this.remove(key, globalHandlers[index].callback);
232
+ }
233
+ index += 1;
234
+ }
235
+ }
236
+ }
237
+ {
238
+ const localHandlers = this.getBucket(context).getHooks(key);
239
+ const length = localHandlers ? localHandlers.length : 0;
240
+ let index = 0;
241
+ if (length) {
242
+ // Do not optimize this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
243
+ while (index < length) {
244
+ if (!localHandlers[index] || localHandlers[index].skip) {
245
+ index += 1;
246
+ /* eslint-disable no-continue */
247
+ continue;
248
+ }
249
+ const res = (0, _function.fastCall)(localHandlers[index].callback, context, p1, p2, p3, p4, p5, p6);
250
+ if (res !== undefined) {
251
+ // eslint-disable-next-line no-param-reassign
252
+ p1 = res;
253
+ }
254
+ if (localHandlers[index] && localHandlers[index].runOnce) {
255
+ this.remove(key, localHandlers[index].callback, context);
256
+ }
257
+ index += 1;
258
+ }
259
+ }
260
+ }
261
+ return p1;
262
+ }
263
+
264
+ /**
265
+ * Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.
266
+ *
267
+ * @param {object} [context=null] A Handsontable instance.
268
+ * @example
269
+ * ```js
270
+ * // destroy the global listeners
271
+ * Handsontable.hooks.destroy();
272
+ *
273
+ * // destroy the local listeners
274
+ * Handsontable.hooks.destroy(hotInstance);
275
+ * ```
276
+ */
277
+ destroy() {
278
+ let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
279
+ this.getBucket(context).destroy();
280
+ }
281
+
282
+ /**
283
+ * Registers a hook name (adds it to the list of the known hook names). Used by plugins.
284
+ * It is not necessary to call register, but if you use it, your plugin hook will be used returned by
285
+ * the `getRegistered` method. (which itself is used in the [demo](@/guides/getting-started/events-and-hooks/events-and-hooks.md)).
286
+ *
287
+ * @param {string} key The hook name.
288
+ *
289
+ * @example
290
+ * ```js
291
+ * Handsontable.hooks.register('myHook');
292
+ * ```
293
+ */
294
+ register(key) {
295
+ if (!this.isRegistered(key)) {
296
+ _constants.REGISTERED_HOOKS.push(key);
297
+ }
298
+ }
299
+
300
+ /**
301
+ * Deregisters a hook name (removes it from the list of known hook names).
302
+ *
303
+ * @param {string} key The hook name.
304
+ *
305
+ * @example
306
+ * ```js
307
+ * Handsontable.hooks.deregister('myHook');
308
+ * ```
309
+ */
310
+ deregister(key) {
311
+ if (this.isRegistered(key)) {
312
+ _constants.REGISTERED_HOOKS.splice(_constants.REGISTERED_HOOKS.indexOf(key), 1);
313
+ }
314
+ }
315
+
316
+ /**
317
+ * Returns a boolean value depending on if a hook by such name has been removed or deprecated.
318
+ *
319
+ * @param {string} hookName The hook name to check.
320
+ * @returns {boolean} Returns `true` if the provided hook name was marked as deprecated or
321
+ * removed from API, `false` otherwise.
322
+ * @example
323
+ * ```js
324
+ * Handsontable.hooks.isDeprecated('skipLengthCache');
325
+ *
326
+ * // Results:
327
+ * true
328
+ * ```
329
+ */
330
+ isDeprecated(hookName) {
331
+ return _constants.DEPRECATED_HOOKS.has(hookName) || _constants.REMOVED_HOOKS.has(hookName);
332
+ }
333
+
334
+ /**
335
+ * Returns a boolean depending on if a hook by such name has been registered.
336
+ *
337
+ * @param {string} hookName The hook name to check.
338
+ * @returns {boolean} `true` for success, `false` otherwise.
339
+ * @example
340
+ * ```js
341
+ * Handsontable.hooks.isRegistered('beforeInit');
342
+ *
343
+ * // Results:
344
+ * true
345
+ * ```
346
+ */
347
+ isRegistered(hookName) {
348
+ return _constants.REGISTERED_HOOKS.indexOf(hookName) >= 0;
349
+ }
350
+
351
+ /**
352
+ * Returns an array of registered hooks.
353
+ *
354
+ * @returns {Array} An array of registered hooks.
355
+ *
356
+ * @example
357
+ * ```js
358
+ * Handsontable.hooks.getRegistered();
359
+ *
360
+ * // Results:
361
+ * [
362
+ * ...
363
+ * 'beforeInit',
364
+ * 'beforeRender',
365
+ * 'beforeSetRangeEnd',
366
+ * 'beforeDrawBorders',
367
+ * 'beforeChange',
368
+ * ...
369
+ * ]
370
+ * ```
371
+ */
372
+ getRegistered() {
373
+ return _constants.REGISTERED_HOOKS;
374
+ }
375
+ }
376
+ exports.Hooks = Hooks;
377
+ const globalSingleton = new Hooks();
378
+
379
+ /**
380
+ * @returns {Hooks}
381
+ */
382
+ function getGlobalSingleton() {
383
+ return globalSingleton;
384
+ }
385
+ var _default = exports.default = Hooks;