handsontable 14.6.1 → 15.0.0-next-fdd4480-20241205

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,18 +1,3 @@
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
- require("core-js/modules/es.array.unscopables.flat-map.js");
7
- var _array = require("./helpers/array");
8
- var _object = require("./helpers/object");
9
- var _string = require("./helpers/string");
10
- var _console = require("./helpers/console");
11
- var _templateLiteralTag = require("./helpers/templateLiteralTag");
12
- var _function = require("./helpers/function");
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
1
  /* eslint-disable jsdoc/require-description-complete-sentence */
17
2
  /**
18
3
  * @description
@@ -125,8 +110,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
125
110
  * ...
126
111
  */
127
112
 
128
- // @TODO: Move plugin description hooks to plugin?
129
- const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sentence */
113
+ export const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sentence */
130
114
  /**
131
115
  * Fired after resetting a cell's meta. This happens when the {@link Core#updateSettings} method is called.
132
116
  *
@@ -556,6 +540,10 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
556
540
  * @since 14.0.0
557
541
  * @event Hooks#beforeViewportScrollVertically
558
542
  * @param {number} visualRow Visual row index.
543
+ * @param {'auto' | 'top' | 'bottom'} [snapping='auto'] If `'top'`, viewport is scrolled to show
544
+ * the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on
545
+ * the bottom of the table. When `'auto'`, the viewport is scrolled only when the row is outside of
546
+ * the viewport.
559
547
  * @returns {number | boolean} Returns modified row index (or the same as passed in the method argument) to which
560
548
  * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
561
549
  */
@@ -567,6 +555,9 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
567
555
  * @since 14.0.0
568
556
  * @event Hooks#beforeViewportScrollHorizontally
569
557
  * @param {number} visualColumn Visual column index.
558
+ * @param {'auto' | 'start' | 'end'} [snapping='auto'] If `'start'`, viewport is scrolled to show
559
+ * the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
560
+ * the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
570
561
  * @returns {number | boolean} Returns modified column index (or the same as passed in the method argument) to which
571
562
  * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
572
563
  */
@@ -878,6 +869,15 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
878
869
  * @param {string} [source] String that identifies source of hook call.
879
870
  */
880
871
  'afterSetSourceDataAtCell',
872
+ /**
873
+ * Fired after a theme is enabled, changed, or disabled.
874
+ *
875
+ * @since 15.0.0
876
+ * @event Hooks#afterSetTheme
877
+ * @param {string|boolean|undefined} themeName The theme name.
878
+ * @param {boolean} firstRun `true` if it's the initial setting of the theme, `false` otherwise.
879
+ */
880
+ 'afterSetTheme',
881
881
  /**
882
882
  * Fired after calling the [`updateSettings`](@/api/core.md#updatesettings) method.
883
883
  *
@@ -1381,6 +1381,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1381
1381
  * @event Hooks#modifyColWidth
1382
1382
  * @param {number} width Current column width.
1383
1383
  * @param {number} column Visual column index.
1384
+ * @param {string} [source] String that identifies source of hook call.
1384
1385
  */
1385
1386
  'modifyColWidth',
1386
1387
  /**
@@ -1417,6 +1418,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1417
1418
  * @event Hooks#modifyRowHeight
1418
1419
  * @param {number} height Row height.
1419
1420
  * @param {number} row Visual row index.
1421
+ * @param {string} [source] String that identifies source of hook call.
1420
1422
  */
1421
1423
  'modifyRowHeight',
1422
1424
  /**
@@ -1469,9 +1471,22 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1469
1471
  * @param {boolean} topmost If set to `true`, it returns the TD element from the topmost overlay. For example,
1470
1472
  * if the wanted cell is in the range of fixed rows, it will return a TD element
1471
1473
  * from the `top` overlay.
1474
+ * @param {string} source String that identifies how this coords change will be processed. Possible values:
1475
+ * `meta` the change will affect the cell meta and data; `render` the change will affect the
1476
+ * DOM element that will be returned by the `getCell` method.
1472
1477
  * @returns {undefined|number[]}
1473
1478
  */
1474
1479
  'modifyGetCellCoords',
1480
+ /**
1481
+ * Used to modify the returned cell coordinates of clicked cells (TD or TH elements).
1482
+ *
1483
+ * @event Hooks#modifyGetCoordsElement
1484
+ * @since 14.6.0
1485
+ * @param {number} row Visual row index.
1486
+ * @param {number} column Visual column index.
1487
+ * @returns {undefined|number[]}
1488
+ */
1489
+ 'modifyGetCoordsElement',
1475
1490
  /**
1476
1491
  * Used to modify the cell coordinates when the table is activated (going into the listen mode).
1477
1492
  *
@@ -2637,15 +2652,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2637
2652
  */
2638
2653
  'modifyAutoColumnSizeSeed'];
2639
2654
 
2640
- /**
2641
- * Template warning message for removed hooks.
2642
- *
2643
- * @type {string}
2644
- */
2645
- const REMOVED_MESSAGE = (0, _templateLiteralTag.toSingleLine)`The plugin hook "[hookName]" was removed in Handsontable [removedInVersion].\x20
2646
- Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to\x20
2647
- learn about the migration path.`;
2648
-
2649
2655
  /**
2650
2656
  * The list of the hooks which are removed from the API. The warning message is printed out in
2651
2657
  * the developer console when the hook is used.
@@ -2655,7 +2661,7 @@ const REMOVED_MESSAGE = (0, _templateLiteralTag.toSingleLine)`The plugin hook "[
2655
2661
  *
2656
2662
  * @type {Map<string, string>}
2657
2663
  */
2658
- const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], ['unmodifyRow', '8.0.0'], ['unmodifyCol', '8.0.0'], ['skipLengthCache', '8.0.0'], ['hiddenColumn', '8.0.0'], ['hiddenRow', '8.0.0']]);
2664
+ export const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], ['unmodifyRow', '8.0.0'], ['unmodifyCol', '8.0.0'], ['skipLengthCache', '8.0.0'], ['hiddenColumn', '8.0.0'], ['hiddenRow', '8.0.0']]);
2659
2665
 
2660
2666
  /* eslint-disable jsdoc/require-description-complete-sentence */
2661
2667
  /**
@@ -2678,465 +2684,4 @@ const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], [
2678
2684
  * @type {Map<string, string>}
2679
2685
  */
2680
2686
  /* eslint-enable jsdoc/require-description-complete-sentence */
2681
- const DEPRECATED_HOOKS = new Map([[]]);
2682
- const callbackOrder = new WeakMap();
2683
- class Hooks {
2684
- static getSingleton() {
2685
- return getGlobalSingleton();
2686
- }
2687
-
2688
- /**
2689
- * @type {object}
2690
- */
2691
-
2692
- /**
2693
- *
2694
- */
2695
- constructor() {
2696
- _defineProperty(this, "globalBucket", void 0);
2697
- this.globalBucket = this.createEmptyBucket();
2698
- }
2699
-
2700
- /**
2701
- * Returns a new object with empty handlers related to every registered hook name.
2702
- *
2703
- * @returns {object} The empty bucket object.
2704
- *
2705
- * @example
2706
- * ```js
2707
- * Handsontable.hooks.createEmptyBucket();
2708
- * // Results:
2709
- * {
2710
- * ...
2711
- * afterCreateCol: [],
2712
- * afterCreateRow: [],
2713
- * beforeInit: [],
2714
- * ...
2715
- * }
2716
- * ```
2717
- */
2718
- createEmptyBucket() {
2719
- const bucket = Object.create(null);
2720
-
2721
- // eslint-disable-next-line no-return-assign
2722
- (0, _array.arrayEach)(REGISTERED_HOOKS, hook => {
2723
- bucket[hook] = [];
2724
- this.initOrderMap(bucket, hook);
2725
- });
2726
- return bucket;
2727
- }
2728
-
2729
- /**
2730
- * Get hook bucket based on the context of the object or if argument is `undefined`, get the global hook bucket.
2731
- *
2732
- * @param {object} [context=null] A Handsontable instance.
2733
- * @returns {object} Returns a global or Handsontable instance bucket.
2734
- */
2735
- getBucket() {
2736
- let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2737
- if (context) {
2738
- if (!context.pluginHookBucket) {
2739
- context.pluginHookBucket = this.createEmptyBucket();
2740
- }
2741
- return context.pluginHookBucket;
2742
- }
2743
- return this.globalBucket;
2744
- }
2745
-
2746
- /**
2747
- * Adds a listener (globally or locally) to a specified hook name.
2748
- * If the `context` parameter is provided, the hook will be added only to the instance it references.
2749
- * Otherwise, the callback will be used everytime the hook fires on any Handsontable instance.
2750
- * You can provide an array of callback functions as the `callback` argument, this way they will all be fired
2751
- * once the hook is triggered.
2752
- *
2753
- * @see Core#addHook
2754
- * @param {string} key Hook name.
2755
- * @param {Function|Array} callback Callback function or an array of functions.
2756
- * @param {object} [context=null] The context for the hook callback to be added - a Handsontable instance or leave empty.
2757
- * @param {number} [orderIndex] Order index of the callback.
2758
- * 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.
2759
- * 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.
2760
- * If 0 or no order index is provided, the callback will be added between the "negative" and "positive" indexes.
2761
- * @returns {Hooks} Instance of Hooks.
2762
- *
2763
- * @example
2764
- * ```js
2765
- * // single callback, added locally
2766
- * Handsontable.hooks.add('beforeInit', myCallback, hotInstance);
2767
- *
2768
- * // single callback, added globally
2769
- * Handsontable.hooks.add('beforeInit', myCallback);
2770
- *
2771
- * // multiple callbacks, added locally
2772
- * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback], hotInstance);
2773
- *
2774
- * // multiple callbacks, added globally
2775
- * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);
2776
- * ```
2777
- */
2778
- add(key, callback) {
2779
- let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2780
- let orderIndex = arguments.length > 3 ? arguments[3] : undefined;
2781
- if (Array.isArray(callback)) {
2782
- (0, _array.arrayEach)(callback, c => this.add(key, c, context));
2783
- } else {
2784
- if (REMOVED_HOOKS.has(key)) {
2785
- (0, _console.warn)((0, _string.substitute)(REMOVED_MESSAGE, {
2786
- hookName: key,
2787
- removedInVersion: REMOVED_HOOKS.get(key)
2788
- }));
2789
- }
2790
- if (DEPRECATED_HOOKS.has(key)) {
2791
- (0, _console.warn)(DEPRECATED_HOOKS.get(key));
2792
- }
2793
- const bucket = this.getBucket(context);
2794
- if (typeof bucket[key] === 'undefined') {
2795
- this.register(key);
2796
- bucket[key] = [];
2797
- this.initOrderMap(bucket, key);
2798
- }
2799
- callback.skip = false;
2800
- if (bucket[key].indexOf(callback) === -1) {
2801
- // only add a hook if it has not already been added (adding the same hook twice is now silently ignored)
2802
- let foundInitialHook = false;
2803
- if (callback.initialHook) {
2804
- (0, _array.arrayEach)(bucket[key], (cb, i) => {
2805
- if (cb.initialHook) {
2806
- bucket[key][i] = callback;
2807
- foundInitialHook = true;
2808
- return false;
2809
- }
2810
- });
2811
- }
2812
- if (!foundInitialHook) {
2813
- bucket[key].push(callback);
2814
- }
2815
- }
2816
- this.setCallbackOrderIndex(bucket, key, callback, orderIndex);
2817
- this.orderBucketByOrderIndex(bucket, key);
2818
- }
2819
- return this;
2820
- }
2821
-
2822
- /**
2823
- * Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.
2824
- *
2825
- * @see Core#addHookOnce
2826
- * @param {string} key Hook/Event name.
2827
- * @param {Function|Array} callback Callback function.
2828
- * @param {object} [context=null] A Handsontable instance.
2829
- * @param {number} [orderIndex] Order index of the callback.
2830
- * 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.
2831
- * 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.
2832
- * If 0 or no order index is provided, the callback will be added between the "negative" and "positive" indexes.
2833
- *
2834
- * @example
2835
- * ```js
2836
- * Handsontable.hooks.once('beforeInit', myCallback, hotInstance);
2837
- * ```
2838
- */
2839
- once(key, callback) {
2840
- let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2841
- let orderIndex = arguments.length > 3 ? arguments[3] : undefined;
2842
- if (Array.isArray(callback)) {
2843
- (0, _array.arrayEach)(callback, c => this.once(key, c, context));
2844
- } else {
2845
- callback.runOnce = true;
2846
- this.add(key, callback, context, orderIndex);
2847
- }
2848
- }
2849
-
2850
- /**
2851
- * 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.
2852
- *
2853
- * @see Core#removeHook
2854
- * @param {string} key Hook/Event name.
2855
- * @param {Function} callback Callback function (needs the be the function that was previously added to the hook).
2856
- * @param {object} [context=null] Handsontable instance.
2857
- * @returns {boolean} Returns `true` if hook was removed, `false` otherwise.
2858
- *
2859
- * @example
2860
- * ```js
2861
- * Handsontable.hooks.remove('beforeInit', myCallback);
2862
- * ```
2863
- */
2864
- remove(key, callback) {
2865
- let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2866
- const bucket = this.getBucket(context);
2867
- if (typeof bucket[key] !== 'undefined') {
2868
- if (bucket[key].indexOf(callback) >= 0) {
2869
- callback.skip = true;
2870
- return true;
2871
- }
2872
- }
2873
- return false;
2874
- }
2875
-
2876
- /**
2877
- * Checks whether there are any registered listeners for the provided hook name.
2878
- * If the `context` parameter is provided, it only checks for listeners assigned to the given Handsontable instance.
2879
- *
2880
- * @param {string} key Hook name.
2881
- * @param {object} [context=null] A Handsontable instance.
2882
- * @returns {boolean} `true` for success, `false` otherwise.
2883
- */
2884
- has(key) {
2885
- let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2886
- const bucket = this.getBucket(context);
2887
- return !!(bucket[key] !== undefined && bucket[key].length);
2888
- }
2889
-
2890
- /**
2891
- * Runs all local and global callbacks assigned to the hook identified by the `key` parameter.
2892
- * It returns either a return value from the last called callback or the first parameter (`p1`) passed to the `run` function.
2893
- *
2894
- * @see Core#runHooks
2895
- * @param {object} context Handsontable instance.
2896
- * @param {string} key Hook/Event name.
2897
- * @param {*} [p1] Parameter to be passed as an argument to the callback function.
2898
- * @param {*} [p2] Parameter to be passed as an argument to the callback function.
2899
- * @param {*} [p3] Parameter to be passed as an argument to the callback function.
2900
- * @param {*} [p4] Parameter to be passed as an argument to the callback function.
2901
- * @param {*} [p5] Parameter to be passed as an argument to the callback function.
2902
- * @param {*} [p6] Parameter to be passed as an argument to the callback function.
2903
- * @returns {*} Either a return value from the last called callback or `p1`.
2904
- *
2905
- * @example
2906
- * ```js
2907
- * Handsontable.hooks.run(hot, 'beforeInit');
2908
- * ```
2909
- */
2910
- run(context, key, p1, p2, p3, p4, p5, p6) {
2911
- {
2912
- const globalHandlers = this.globalBucket[key];
2913
- const length = globalHandlers ? globalHandlers.length : 0;
2914
- let index = 0;
2915
- if (length) {
2916
- // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2917
- while (index < length) {
2918
- if (!globalHandlers[index] || globalHandlers[index].skip) {
2919
- index += 1;
2920
- /* eslint-disable no-continue */
2921
- continue;
2922
- }
2923
- const res = (0, _function.fastCall)(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);
2924
- if (res !== undefined) {
2925
- // eslint-disable-next-line no-param-reassign
2926
- p1 = res;
2927
- }
2928
- if (globalHandlers[index] && globalHandlers[index].runOnce) {
2929
- this.remove(key, globalHandlers[index]);
2930
- }
2931
- index += 1;
2932
- }
2933
- }
2934
- }
2935
- {
2936
- const localHandlers = this.getBucket(context)[key];
2937
- const length = localHandlers ? localHandlers.length : 0;
2938
- let index = 0;
2939
- if (length) {
2940
- // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2941
- while (index < length) {
2942
- if (!localHandlers[index] || localHandlers[index].skip) {
2943
- index += 1;
2944
- /* eslint-disable no-continue */
2945
- continue;
2946
- }
2947
- const res = (0, _function.fastCall)(localHandlers[index], context, p1, p2, p3, p4, p5, p6);
2948
- if (res !== undefined) {
2949
- // eslint-disable-next-line no-param-reassign
2950
- p1 = res;
2951
- }
2952
- if (localHandlers[index] && localHandlers[index].runOnce) {
2953
- this.remove(key, localHandlers[index], context);
2954
- }
2955
- index += 1;
2956
- }
2957
- }
2958
- }
2959
- return p1;
2960
- }
2961
-
2962
- /**
2963
- * Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.
2964
- *
2965
- * @param {object} [context=null] A Handsontable instance.
2966
- * @example
2967
- * ```js
2968
- * // destroy the global listeners
2969
- * Handsontable.hooks.destroy();
2970
- *
2971
- * // destroy the local listeners
2972
- * Handsontable.hooks.destroy(hotInstance);
2973
- * ```
2974
- */
2975
- destroy() {
2976
- let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2977
- // eslint-disable-next-line no-return-assign
2978
- (0, _object.objectEach)(this.getBucket(context), (value, key, bucket) => bucket[key].length = 0);
2979
- }
2980
-
2981
- /**
2982
- * Registers a hook name (adds it to the list of the known hook names). Used by plugins.
2983
- * It is not necessary to call register, but if you use it, your plugin hook will be used returned by
2984
- * the `getRegistered` method. (which itself is used in the [demo](@/guides/getting-started/events-and-hooks/events-and-hooks.md)).
2985
- *
2986
- * @param {string} key The hook name.
2987
- *
2988
- * @example
2989
- * ```js
2990
- * Handsontable.hooks.register('myHook');
2991
- * ```
2992
- */
2993
- register(key) {
2994
- if (!this.isRegistered(key)) {
2995
- REGISTERED_HOOKS.push(key);
2996
- }
2997
- }
2998
-
2999
- /**
3000
- * Deregisters a hook name (removes it from the list of known hook names).
3001
- *
3002
- * @param {string} key The hook name.
3003
- *
3004
- * @example
3005
- * ```js
3006
- * Handsontable.hooks.deregister('myHook');
3007
- * ```
3008
- */
3009
- deregister(key) {
3010
- if (this.isRegistered(key)) {
3011
- REGISTERED_HOOKS.splice(REGISTERED_HOOKS.indexOf(key), 1);
3012
- }
3013
- }
3014
-
3015
- /**
3016
- * Returns a boolean value depending on if a hook by such name has been removed or deprecated.
3017
- *
3018
- * @param {string} hookName The hook name to check.
3019
- * @returns {boolean} Returns `true` if the provided hook name was marked as deprecated or
3020
- * removed from API, `false` otherwise.
3021
- * @example
3022
- * ```js
3023
- * Handsontable.hooks.isDeprecated('skipLengthCache');
3024
- *
3025
- * // Results:
3026
- * true
3027
- * ```
3028
- */
3029
- isDeprecated(hookName) {
3030
- return DEPRECATED_HOOKS.has(hookName) || REMOVED_HOOKS.has(hookName);
3031
- }
3032
-
3033
- /**
3034
- * Returns a boolean depending on if a hook by such name has been registered.
3035
- *
3036
- * @param {string} hookName The hook name to check.
3037
- * @returns {boolean} `true` for success, `false` otherwise.
3038
- * @example
3039
- * ```js
3040
- * Handsontable.hooks.isRegistered('beforeInit');
3041
- *
3042
- * // Results:
3043
- * true
3044
- * ```
3045
- */
3046
- isRegistered(hookName) {
3047
- return REGISTERED_HOOKS.indexOf(hookName) >= 0;
3048
- }
3049
-
3050
- /**
3051
- * Returns an array of registered hooks.
3052
- *
3053
- * @returns {Array} An array of registered hooks.
3054
- *
3055
- * @example
3056
- * ```js
3057
- * Handsontable.hooks.getRegistered();
3058
- *
3059
- * // Results:
3060
- * [
3061
- * ...
3062
- * 'beforeInit',
3063
- * 'beforeRender',
3064
- * 'beforeSetRangeEnd',
3065
- * 'beforeDrawBorders',
3066
- * 'beforeChange',
3067
- * ...
3068
- * ]
3069
- * ```
3070
- */
3071
- getRegistered() {
3072
- return REGISTERED_HOOKS;
3073
- }
3074
-
3075
- /**
3076
- * Sets the order index of the callback in the bucket object.
3077
- *
3078
- * @private
3079
- * @param {object} bucket The bucket object.
3080
- * @param {string} key Hook name.
3081
- * @param {Function} callback Callback function.
3082
- * @param {number|undefined} orderIndex Order index of the callback.
3083
- */
3084
- setCallbackOrderIndex(bucket, key, callback, orderIndex) {
3085
- const normalizedOrderIndex = Number.isInteger(orderIndex) ? orderIndex : 0;
3086
- const orderMap = this.getCallbackOrderMap(bucket, key);
3087
- orderMap.set(normalizedOrderIndex, [...(orderMap.get(normalizedOrderIndex) || []), callback]);
3088
- }
3089
-
3090
- /**
3091
- * Reorders the callbacks in the bucket object by their order index.
3092
- *
3093
- * @private
3094
- * @param {objcet} bucket The bucket object.
3095
- * @param {string} key Hook name.
3096
- */
3097
- orderBucketByOrderIndex(bucket, key) {
3098
- const orderMap = this.getCallbackOrderMap(bucket, key);
3099
- if (orderMap === undefined || orderMap.size === 0 || orderMap.size === 1 && orderMap.has(0)) {
3100
- return;
3101
- }
3102
- bucket[key] = [...orderMap].sort((a, b) => a[0] - b[0]).flatMap(_ref => {
3103
- let [, callbacks] = _ref;
3104
- return callbacks;
3105
- });
3106
- }
3107
-
3108
- /**
3109
- * Extends the bucket object with the order property.
3110
- *
3111
- * @private
3112
- * @param {object} bucket The bucket object.
3113
- * @param {string} hook The hook name.
3114
- */
3115
- initOrderMap(bucket, hook) {
3116
- if (!callbackOrder.has(bucket)) {
3117
- callbackOrder.set(bucket, []);
3118
- }
3119
- callbackOrder.get(bucket)[hook] = new Map();
3120
- }
3121
-
3122
- /**
3123
- * Returns the order map for the provided hook.
3124
- *
3125
- * @private
3126
- * @param {object} bucket The bucket object.
3127
- * @param {string} hook The hook name.
3128
- * @returns {Map<number, Array<Function>>} Returns the order map for the provided hook.
3129
- */
3130
- getCallbackOrderMap(bucket, hook) {
3131
- return callbackOrder.get(bucket)[hook];
3132
- }
3133
- }
3134
- const globalSingleton = new Hooks();
3135
-
3136
- /**
3137
- * @returns {Hooks}
3138
- */
3139
- function getGlobalSingleton() {
3140
- return globalSingleton;
3141
- }
3142
- var _default = exports.default = Hooks;
2687
+ export const DEPRECATED_HOOKS = new Map([[]]);