handsontable 12.1.2 → 12.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (918) hide show
  1. package/3rdparty/SheetClip/SheetClip.js +3 -32
  2. package/3rdparty/SheetClip/SheetClip.mjs +3 -23
  3. package/3rdparty/SheetClip/index.js +0 -2
  4. package/3rdparty/autoResize/autoResize.js +119 -145
  5. package/3rdparty/autoResize/autoResize.mjs +119 -143
  6. package/3rdparty/autoResize/index.js +0 -2
  7. package/3rdparty/walkontable/src/border.js +72 -174
  8. package/3rdparty/walkontable/src/border.mjs +74 -161
  9. package/3rdparty/walkontable/src/calculator/constants.js +0 -3
  10. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -2
  11. package/3rdparty/walkontable/src/calculator/index.js +0 -10
  12. package/3rdparty/walkontable/src/calculator/viewportColumns.js +26 -76
  13. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +26 -69
  14. package/3rdparty/walkontable/src/calculator/viewportRows.js +20 -48
  15. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +20 -41
  16. package/3rdparty/walkontable/src/cell/coords.js +13 -43
  17. package/3rdparty/walkontable/src/cell/coords.mjs +13 -38
  18. package/3rdparty/walkontable/src/cell/range.js +55 -130
  19. package/3rdparty/walkontable/src/cell/range.mjs +60 -126
  20. package/3rdparty/walkontable/src/core/_base.js +16 -74
  21. package/3rdparty/walkontable/src/core/_base.mjs +19 -70
  22. package/3rdparty/walkontable/src/core/clone.js +1 -40
  23. package/3rdparty/walkontable/src/core/clone.mjs +3 -30
  24. package/3rdparty/walkontable/src/core/core.js +3 -57
  25. package/3rdparty/walkontable/src/core/core.mjs +5 -41
  26. package/3rdparty/walkontable/src/event.js +31 -78
  27. package/3rdparty/walkontable/src/event.mjs +31 -65
  28. package/3rdparty/walkontable/src/facade/core.js +1 -17
  29. package/3rdparty/walkontable/src/facade/core.mjs +7 -20
  30. package/3rdparty/walkontable/src/filter/column.js +9 -18
  31. package/3rdparty/walkontable/src/filter/column.mjs +9 -17
  32. package/3rdparty/walkontable/src/filter/row.js +9 -18
  33. package/3rdparty/walkontable/src/filter/row.mjs +9 -17
  34. package/3rdparty/walkontable/src/index.js +0 -31
  35. package/3rdparty/walkontable/src/overlay/_base.js +24 -69
  36. package/3rdparty/walkontable/src/overlay/_base.mjs +31 -68
  37. package/3rdparty/walkontable/src/overlay/bottom.js +28 -99
  38. package/3rdparty/walkontable/src/overlay/bottom.mjs +30 -86
  39. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +7 -53
  40. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +9 -40
  41. package/3rdparty/walkontable/src/overlay/constants.js +0 -6
  42. package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
  43. package/3rdparty/walkontable/src/overlay/index.js +0 -17
  44. package/3rdparty/walkontable/src/overlay/inlineStart.js +21 -91
  45. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +23 -78
  46. package/3rdparty/walkontable/src/overlay/top.js +27 -100
  47. package/3rdparty/walkontable/src/overlay/top.mjs +29 -87
  48. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +4 -51
  49. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +6 -38
  50. package/3rdparty/walkontable/src/overlays.js +58 -129
  51. package/3rdparty/walkontable/src/overlays.mjs +60 -121
  52. package/3rdparty/walkontable/src/renderer/_base.js +4 -20
  53. package/3rdparty/walkontable/src/renderer/_base.mjs +8 -22
  54. package/3rdparty/walkontable/src/renderer/cells.js +10 -54
  55. package/3rdparty/walkontable/src/renderer/cells.mjs +22 -52
  56. package/3rdparty/walkontable/src/renderer/colGroup.js +10 -47
  57. package/3rdparty/walkontable/src/renderer/colGroup.mjs +21 -46
  58. package/3rdparty/walkontable/src/renderer/columnHeaders.js +8 -50
  59. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +19 -49
  60. package/3rdparty/walkontable/src/renderer/index.js +13 -36
  61. package/3rdparty/walkontable/src/renderer/index.mjs +17 -27
  62. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -50
  63. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +20 -49
  64. package/3rdparty/walkontable/src/renderer/rows.js +3 -46
  65. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -29
  66. package/3rdparty/walkontable/src/renderer/table.js +22 -49
  67. package/3rdparty/walkontable/src/renderer/table.mjs +22 -48
  68. package/3rdparty/walkontable/src/scroll.js +56 -86
  69. package/3rdparty/walkontable/src/scroll.mjs +58 -86
  70. package/3rdparty/walkontable/src/selection.js +20 -101
  71. package/3rdparty/walkontable/src/selection.mjs +22 -85
  72. package/3rdparty/walkontable/src/settings.js +9 -29
  73. package/3rdparty/walkontable/src/settings.mjs +9 -27
  74. package/3rdparty/walkontable/src/table/bottom.js +1 -35
  75. package/3rdparty/walkontable/src/table/bottom.mjs +6 -25
  76. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -35
  77. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +7 -26
  78. package/3rdparty/walkontable/src/table/inlineStart.js +1 -35
  79. package/3rdparty/walkontable/src/table/inlineStart.mjs +3 -22
  80. package/3rdparty/walkontable/src/table/master.js +10 -55
  81. package/3rdparty/walkontable/src/table/master.mjs +15 -44
  82. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +7 -28
  83. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +7 -26
  84. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +7 -28
  85. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +7 -26
  86. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +7 -22
  87. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +7 -20
  88. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +7 -23
  89. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +7 -21
  90. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +7 -22
  91. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +7 -20
  92. package/3rdparty/walkontable/src/table/top.js +1 -35
  93. package/3rdparty/walkontable/src/table/top.mjs +6 -25
  94. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -35
  95. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +7 -26
  96. package/3rdparty/walkontable/src/table.js +74 -238
  97. package/3rdparty/walkontable/src/table.mjs +84 -227
  98. package/3rdparty/walkontable/src/types.js +0 -5
  99. package/3rdparty/walkontable/src/types.mjs +0 -5
  100. package/3rdparty/walkontable/src/utils/column.js +9 -31
  101. package/3rdparty/walkontable/src/utils/column.mjs +13 -30
  102. package/3rdparty/walkontable/src/utils/nodesPool.js +3 -12
  103. package/3rdparty/walkontable/src/utils/nodesPool.mjs +3 -11
  104. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
  105. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
  106. package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
  107. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -33
  108. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +6 -26
  109. package/3rdparty/walkontable/src/utils/orderView/view.js +14 -46
  110. package/3rdparty/walkontable/src/utils/orderView/view.mjs +21 -50
  111. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +3 -15
  112. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +3 -14
  113. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +8 -22
  114. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +23 -34
  115. package/3rdparty/walkontable/src/utils/row.js +2 -13
  116. package/3rdparty/walkontable/src/utils/row.mjs +2 -12
  117. package/3rdparty/walkontable/src/viewport.js +38 -100
  118. package/3rdparty/walkontable/src/viewport.mjs +40 -99
  119. package/CHANGELOG.md +103 -5
  120. package/base.js +6 -17
  121. package/base.mjs +6 -12
  122. package/cellTypes/autocompleteType/autocompleteType.js +0 -4
  123. package/cellTypes/autocompleteType/index.js +0 -2
  124. package/cellTypes/checkboxType/checkboxType.js +0 -3
  125. package/cellTypes/checkboxType/index.js +0 -2
  126. package/cellTypes/dateType/dateType.js +0 -4
  127. package/cellTypes/dateType/index.js +0 -2
  128. package/cellTypes/dropdownType/dropdownType.js +0 -4
  129. package/cellTypes/dropdownType/index.js +0 -2
  130. package/cellTypes/handsontableType/handsontableType.js +0 -3
  131. package/cellTypes/handsontableType/index.js +0 -2
  132. package/cellTypes/index.js +0 -21
  133. package/cellTypes/index.mjs +3 -5
  134. package/cellTypes/numericType/index.js +0 -2
  135. package/cellTypes/numericType/numericType.js +0 -4
  136. package/cellTypes/passwordType/index.js +0 -2
  137. package/cellTypes/passwordType/passwordType.js +0 -3
  138. package/cellTypes/registry.js +10 -25
  139. package/cellTypes/registry.mjs +10 -20
  140. package/cellTypes/textType/index.js +0 -2
  141. package/cellTypes/textType/textType.js +0 -3
  142. package/cellTypes/timeType/index.js +0 -2
  143. package/cellTypes/timeType/timeType.js +0 -4
  144. package/core.d.ts +6 -4
  145. package/core.js +514 -974
  146. package/core.mjs +519 -921
  147. package/dataMap/dataMap.js +127 -212
  148. package/dataMap/dataMap.mjs +127 -188
  149. package/{dataSource.js → dataMap/dataSource.js} +18 -66
  150. package/{dataSource.mjs → dataMap/dataSource.mjs} +20 -60
  151. package/dataMap/index.js +0 -13
  152. package/dataMap/metaManager/index.js +21 -46
  153. package/dataMap/metaManager/index.mjs +47 -64
  154. package/dataMap/metaManager/lazyFactoryMap.js +23 -55
  155. package/dataMap/metaManager/lazyFactoryMap.mjs +23 -43
  156. package/dataMap/metaManager/metaLayers/cellMeta.js +16 -52
  157. package/dataMap/metaManager/metaLayers/cellMeta.mjs +16 -37
  158. package/dataMap/metaManager/metaLayers/columnMeta.js +8 -22
  159. package/dataMap/metaManager/metaLayers/columnMeta.mjs +14 -25
  160. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -19
  161. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -15
  162. package/dataMap/metaManager/metaLayers/tableMeta.js +4 -15
  163. package/dataMap/metaManager/metaLayers/tableMeta.mjs +28 -37
  164. package/dataMap/metaManager/metaSchema.js +196 -257
  165. package/dataMap/metaManager/metaSchema.mjs +196 -248
  166. package/dataMap/metaManager/mods/dynamicCellMeta.js +6 -36
  167. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +20 -39
  168. package/dataMap/metaManager/mods/extendMetaProperties.js +5 -28
  169. package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -18
  170. package/dataMap/metaManager/utils.js +11 -20
  171. package/dataMap/metaManager/utils.mjs +21 -23
  172. package/dataMap/replaceData.js +14 -35
  173. package/dataMap/replaceData.mjs +35 -45
  174. package/dist/handsontable.css +2 -2
  175. package/dist/handsontable.full.css +2 -2
  176. package/dist/handsontable.full.js +64469 -93042
  177. package/dist/handsontable.full.min.css +2 -2
  178. package/dist/handsontable.full.min.js +527 -284
  179. package/dist/handsontable.js +9616 -21414
  180. package/dist/handsontable.min.css +2 -2
  181. package/dist/handsontable.min.js +3 -3
  182. package/dist/languages/all.js +0 -175
  183. package/dist/languages/ar-AR.js +0 -10
  184. package/dist/languages/cs-CZ.js +0 -10
  185. package/dist/languages/de-CH.js +0 -10
  186. package/dist/languages/de-DE.js +0 -10
  187. package/dist/languages/en-US.js +0 -10
  188. package/dist/languages/es-MX.js +0 -10
  189. package/dist/languages/fr-FR.js +0 -10
  190. package/dist/languages/it-IT.js +0 -10
  191. package/dist/languages/ja-JP.js +0 -10
  192. package/dist/languages/ko-KR.js +0 -10
  193. package/dist/languages/lv-LV.js +0 -10
  194. package/dist/languages/nb-NO.js +0 -10
  195. package/dist/languages/nl-NL.js +0 -10
  196. package/dist/languages/pl-PL.js +0 -10
  197. package/dist/languages/pt-BR.js +0 -10
  198. package/dist/languages/ru-RU.js +0 -10
  199. package/dist/languages/sr-SP.js +0 -10
  200. package/dist/languages/zh-CN.js +0 -10
  201. package/dist/languages/zh-TW.js +0 -10
  202. package/editorManager.js +89 -124
  203. package/editorManager.mjs +89 -104
  204. package/editors/autocompleteEditor/autocompleteEditor.js +26 -133
  205. package/editors/autocompleteEditor/autocompleteEditor.mjs +26 -104
  206. package/editors/autocompleteEditor/index.js +0 -2
  207. package/editors/baseEditor/baseEditor.js +45 -155
  208. package/editors/baseEditor/baseEditor.mjs +45 -129
  209. package/editors/baseEditor/index.js +0 -2
  210. package/editors/checkboxEditor/checkboxEditor.js +2 -33
  211. package/editors/checkboxEditor/checkboxEditor.mjs +2 -19
  212. package/editors/checkboxEditor/index.js +0 -2
  213. package/editors/dateEditor/dateEditor.js +36 -97
  214. package/editors/dateEditor/dateEditor.mjs +35 -74
  215. package/editors/dateEditor/index.js +0 -2
  216. package/editors/dropdownEditor/dropdownEditor.js +1 -41
  217. package/editors/dropdownEditor/dropdownEditor.mjs +1 -22
  218. package/editors/dropdownEditor/index.js +0 -2
  219. package/editors/handsontableEditor/handsontableEditor.js +13 -85
  220. package/editors/handsontableEditor/handsontableEditor.mjs +13 -66
  221. package/editors/handsontableEditor/index.js +0 -2
  222. package/editors/index.js +0 -25
  223. package/editors/index.mjs +3 -5
  224. package/editors/numericEditor/index.js +0 -2
  225. package/editors/numericEditor/numericEditor.js +1 -31
  226. package/editors/numericEditor/numericEditor.mjs +1 -18
  227. package/editors/passwordEditor/index.js +0 -2
  228. package/editors/passwordEditor/passwordEditor.js +1 -38
  229. package/editors/passwordEditor/passwordEditor.mjs +1 -22
  230. package/editors/registry.js +10 -36
  231. package/editors/registry.mjs +10 -28
  232. package/editors/selectEditor/index.js +0 -2
  233. package/editors/selectEditor/selectEditor.js +21 -73
  234. package/editors/selectEditor/selectEditor.mjs +21 -56
  235. package/editors/textEditor/caretPositioner.js +0 -12
  236. package/editors/textEditor/caretPositioner.mjs +10 -20
  237. package/editors/textEditor/index.js +0 -2
  238. package/editors/textEditor/textEditor.js +38 -137
  239. package/editors/textEditor/textEditor.mjs +38 -106
  240. package/editors/timeEditor/index.js +0 -2
  241. package/editors/timeEditor/timeEditor.js +1 -36
  242. package/editors/timeEditor/timeEditor.mjs +1 -21
  243. package/eventManager.js +20 -56
  244. package/eventManager.mjs +23 -56
  245. package/helpers/array.js +22 -88
  246. package/helpers/array.mjs +22 -58
  247. package/helpers/browser.js +25 -51
  248. package/helpers/browser.mjs +25 -32
  249. package/helpers/console.js +3 -13
  250. package/helpers/console.mjs +8 -16
  251. package/helpers/data.d.ts +0 -1
  252. package/helpers/data.js +10 -55
  253. package/helpers/data.mjs +10 -33
  254. package/helpers/date.js +2 -3
  255. package/helpers/date.mjs +2 -2
  256. package/helpers/dom/element.js +67 -259
  257. package/helpers/dom/element.mjs +74 -194
  258. package/helpers/dom/event.js +3 -7
  259. package/helpers/dom/event.mjs +3 -3
  260. package/helpers/feature.js +13 -47
  261. package/helpers/feature.mjs +13 -31
  262. package/helpers/function.js +14 -59
  263. package/helpers/function.mjs +20 -52
  264. package/helpers/mixed.js +9 -66
  265. package/helpers/mixed.mjs +15 -51
  266. package/helpers/number.js +4 -46
  267. package/helpers/number.mjs +4 -23
  268. package/helpers/object.js +15 -72
  269. package/helpers/object.mjs +21 -52
  270. package/helpers/string.js +6 -28
  271. package/helpers/string.mjs +12 -21
  272. package/helpers/templateLiteralTag.js +0 -6
  273. package/helpers/templateLiteralTag.mjs +7 -10
  274. package/helpers/unicode.js +17 -26
  275. package/helpers/unicode.mjs +17 -15
  276. package/helpers/wrappers/jquery.js +4 -14
  277. package/helpers/wrappers/jquery.mjs +4 -13
  278. package/i18n/constants.js +1 -3
  279. package/i18n/constants.mjs +1 -1
  280. package/i18n/index.js +0 -7
  281. package/i18n/languages/ar-AR.js +0 -16
  282. package/i18n/languages/ar-AR.mjs +1 -4
  283. package/i18n/languages/cs-CZ.js +0 -16
  284. package/i18n/languages/cs-CZ.mjs +1 -4
  285. package/i18n/languages/de-CH.js +0 -16
  286. package/i18n/languages/de-CH.mjs +1 -4
  287. package/i18n/languages/de-DE.js +0 -16
  288. package/i18n/languages/de-DE.mjs +1 -4
  289. package/i18n/languages/en-US.js +0 -16
  290. package/i18n/languages/en-US.mjs +1 -4
  291. package/i18n/languages/es-MX.js +0 -16
  292. package/i18n/languages/es-MX.mjs +1 -4
  293. package/i18n/languages/fr-FR.js +0 -16
  294. package/i18n/languages/fr-FR.mjs +1 -4
  295. package/i18n/languages/index.js +0 -39
  296. package/i18n/languages/it-IT.js +0 -16
  297. package/i18n/languages/it-IT.mjs +1 -4
  298. package/i18n/languages/ja-JP.js +0 -16
  299. package/i18n/languages/ja-JP.mjs +1 -4
  300. package/i18n/languages/ko-KR.js +0 -16
  301. package/i18n/languages/ko-KR.mjs +1 -4
  302. package/i18n/languages/lv-LV.js +0 -16
  303. package/i18n/languages/lv-LV.mjs +1 -4
  304. package/i18n/languages/nb-NO.js +0 -16
  305. package/i18n/languages/nb-NO.mjs +1 -4
  306. package/i18n/languages/nl-NL.js +0 -16
  307. package/i18n/languages/nl-NL.mjs +1 -4
  308. package/i18n/languages/pl-PL.js +0 -16
  309. package/i18n/languages/pl-PL.mjs +1 -4
  310. package/i18n/languages/pt-BR.js +0 -16
  311. package/i18n/languages/pt-BR.mjs +1 -4
  312. package/i18n/languages/ru-RU.js +0 -16
  313. package/i18n/languages/ru-RU.mjs +1 -4
  314. package/i18n/languages/sr-SP.js +0 -16
  315. package/i18n/languages/sr-SP.mjs +1 -4
  316. package/i18n/languages/zh-CN.js +0 -16
  317. package/i18n/languages/zh-CN.mjs +1 -4
  318. package/i18n/languages/zh-TW.js +0 -16
  319. package/i18n/languages/zh-TW.mjs +1 -4
  320. package/i18n/phraseFormatters/index.js +4 -11
  321. package/i18n/phraseFormatters/index.mjs +4 -6
  322. package/i18n/phraseFormatters/pluralize.js +0 -5
  323. package/i18n/phraseFormatters/pluralize.mjs +0 -3
  324. package/i18n/phraseFormatters/substituteVariables.js +0 -4
  325. package/i18n/phraseFormatters/substituteVariables.mjs +8 -11
  326. package/i18n/registry.js +18 -59
  327. package/i18n/registry.mjs +18 -30
  328. package/i18n/utils.js +4 -22
  329. package/i18n/utils.mjs +13 -21
  330. package/index.js +19 -56
  331. package/index.mjs +19 -15
  332. package/languages/all.js +0 -175
  333. package/languages/ar-AR.js +0 -10
  334. package/languages/ar-AR.mjs +1 -4
  335. package/languages/cs-CZ.js +0 -10
  336. package/languages/cs-CZ.mjs +1 -4
  337. package/languages/de-CH.js +0 -10
  338. package/languages/de-CH.mjs +1 -4
  339. package/languages/de-DE.js +0 -10
  340. package/languages/de-DE.mjs +1 -4
  341. package/languages/en-US.js +0 -10
  342. package/languages/en-US.mjs +1 -4
  343. package/languages/es-MX.js +0 -10
  344. package/languages/es-MX.mjs +1 -4
  345. package/languages/fr-FR.js +0 -10
  346. package/languages/fr-FR.mjs +1 -4
  347. package/languages/index.js +0 -175
  348. package/languages/it-IT.js +0 -10
  349. package/languages/it-IT.mjs +1 -4
  350. package/languages/ja-JP.js +0 -10
  351. package/languages/ja-JP.mjs +1 -4
  352. package/languages/ko-KR.js +0 -10
  353. package/languages/ko-KR.mjs +1 -4
  354. package/languages/lv-LV.js +0 -10
  355. package/languages/lv-LV.mjs +1 -4
  356. package/languages/nb-NO.js +0 -10
  357. package/languages/nb-NO.mjs +1 -4
  358. package/languages/nl-NL.js +0 -10
  359. package/languages/nl-NL.mjs +1 -4
  360. package/languages/pl-PL.js +0 -10
  361. package/languages/pl-PL.mjs +1 -4
  362. package/languages/pt-BR.js +0 -10
  363. package/languages/pt-BR.mjs +1 -4
  364. package/languages/ru-RU.js +0 -10
  365. package/languages/ru-RU.mjs +1 -4
  366. package/languages/sr-SP.js +0 -10
  367. package/languages/sr-SP.mjs +1 -4
  368. package/languages/zh-CN.js +0 -10
  369. package/languages/zh-CN.mjs +1 -4
  370. package/languages/zh-TW.js +0 -10
  371. package/languages/zh-TW.mjs +1 -4
  372. package/mixins/hooksRefRegisterer.js +4 -18
  373. package/mixins/hooksRefRegisterer.mjs +4 -15
  374. package/mixins/localHooks.js +7 -17
  375. package/mixins/localHooks.mjs +7 -14
  376. package/package.json +1 -1
  377. package/pluginHooks.d.ts +3 -4
  378. package/pluginHooks.js +288 -110
  379. package/pluginHooks.mjs +287 -97
  380. package/plugins/autoColumnSize/autoColumnSize.js +74 -172
  381. package/plugins/autoColumnSize/autoColumnSize.mjs +74 -137
  382. package/plugins/autoColumnSize/index.js +0 -2
  383. package/plugins/autoRowSize/autoRowSize.js +73 -153
  384. package/plugins/autoRowSize/autoRowSize.mjs +73 -124
  385. package/plugins/autoRowSize/index.js +0 -2
  386. package/plugins/autofill/autofill.js +46 -163
  387. package/plugins/autofill/autofill.mjs +46 -131
  388. package/plugins/autofill/index.js +0 -2
  389. package/plugins/autofill/utils.js +4 -26
  390. package/plugins/autofill/utils.mjs +4 -18
  391. package/plugins/base/base.js +21 -92
  392. package/plugins/base/base.mjs +21 -63
  393. package/plugins/base/index.js +0 -2
  394. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +19 -52
  395. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +19 -33
  396. package/plugins/bindRowsWithHeaders/index.js +0 -2
  397. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +5 -41
  398. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +5 -29
  399. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -53
  400. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +6 -37
  401. package/plugins/collapsibleColumns/collapsibleColumns.js +96 -188
  402. package/plugins/collapsibleColumns/collapsibleColumns.mjs +97 -158
  403. package/plugins/collapsibleColumns/index.js +0 -2
  404. package/plugins/columnSorting/columnSorting.js +50 -188
  405. package/plugins/columnSorting/columnSorting.mjs +50 -143
  406. package/plugins/columnSorting/columnStatesManager.js +15 -71
  407. package/plugins/columnSorting/columnStatesManager.mjs +15 -48
  408. package/plugins/columnSorting/domHelpers.js +2 -18
  409. package/plugins/columnSorting/domHelpers.mjs +2 -7
  410. package/plugins/columnSorting/index.js +0 -2
  411. package/plugins/columnSorting/rootComparator.js +5 -24
  412. package/plugins/columnSorting/rootComparator.mjs +12 -21
  413. package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
  414. package/plugins/columnSorting/sortFunction/checkbox.mjs +16 -21
  415. package/plugins/columnSorting/sortFunction/date.js +2 -19
  416. package/plugins/columnSorting/sortFunction/date.mjs +10 -23
  417. package/plugins/columnSorting/sortFunction/default.js +2 -17
  418. package/plugins/columnSorting/sortFunction/default.mjs +10 -23
  419. package/plugins/columnSorting/sortFunction/numeric.js +2 -11
  420. package/plugins/columnSorting/sortFunction/numeric.mjs +10 -17
  421. package/plugins/columnSorting/sortService/engine.js +3 -13
  422. package/plugins/columnSorting/sortService/engine.mjs +3 -5
  423. package/plugins/columnSorting/sortService/index.js +0 -5
  424. package/plugins/columnSorting/sortService/registry.js +6 -18
  425. package/plugins/columnSorting/sortService/registry.mjs +6 -10
  426. package/plugins/columnSorting/utils.js +9 -34
  427. package/plugins/columnSorting/utils.mjs +9 -15
  428. package/plugins/columnSummary/columnSummary.js +66 -126
  429. package/plugins/columnSummary/columnSummary.mjs +66 -101
  430. package/plugins/columnSummary/endpoints.js +21 -98
  431. package/plugins/columnSummary/endpoints.mjs +26 -99
  432. package/plugins/columnSummary/index.js +0 -2
  433. package/plugins/columnSummary/utils.js +13 -0
  434. package/plugins/columnSummary/utils.mjs +9 -0
  435. package/plugins/comments/commentEditor.js +16 -28
  436. package/plugins/comments/commentEditor.mjs +21 -32
  437. package/plugins/comments/comments.js +92 -175
  438. package/plugins/comments/comments.mjs +92 -149
  439. package/plugins/comments/displaySwitch.js +6 -23
  440. package/plugins/comments/displaySwitch.mjs +6 -18
  441. package/plugins/comments/index.js +0 -2
  442. package/plugins/contextMenu/commandExecutor.js +9 -40
  443. package/plugins/contextMenu/commandExecutor.mjs +14 -41
  444. package/plugins/contextMenu/contextMenu.js +26 -105
  445. package/plugins/contextMenu/contextMenu.mjs +26 -75
  446. package/plugins/contextMenu/cursor.js +6 -20
  447. package/plugins/contextMenu/cursor.mjs +11 -24
  448. package/plugins/contextMenu/index.js +0 -2
  449. package/plugins/contextMenu/itemsFactory.js +14 -43
  450. package/plugins/contextMenu/itemsFactory.mjs +19 -44
  451. package/plugins/contextMenu/menu.js +61 -177
  452. package/plugins/contextMenu/menu.mjs +61 -149
  453. package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
  454. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
  455. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
  456. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
  457. package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
  458. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
  459. package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
  460. package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
  461. package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
  462. package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
  463. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
  464. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
  465. package/plugins/contextMenu/predefinedItems/redo.js +1 -16
  466. package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
  467. package/plugins/contextMenu/predefinedItems/removeColumn.js +3 -38
  468. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -18
  469. package/plugins/contextMenu/predefinedItems/removeRow.js +3 -37
  470. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -17
  471. package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
  472. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
  473. package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
  474. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
  475. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  476. package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
  477. package/plugins/contextMenu/predefinedItems/undo.js +1 -16
  478. package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
  479. package/plugins/contextMenu/predefinedItems.js +2 -48
  480. package/plugins/contextMenu/predefinedItems.mjs +2 -7
  481. package/plugins/contextMenu/utils.js +17 -57
  482. package/plugins/contextMenu/utils.mjs +21 -39
  483. package/plugins/copyPaste/clipboardData.js +1 -10
  484. package/plugins/copyPaste/clipboardData.mjs +1 -9
  485. package/plugins/copyPaste/contextMenuItem/copy.js +2 -17
  486. package/plugins/copyPaste/contextMenuItem/copy.mjs +6 -9
  487. package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
  488. package/plugins/copyPaste/contextMenuItem/cut.mjs +6 -9
  489. package/plugins/copyPaste/copyPaste.js +53 -185
  490. package/plugins/copyPaste/copyPaste.mjs +53 -144
  491. package/plugins/copyPaste/focusableElement.js +12 -56
  492. package/plugins/copyPaste/focusableElement.mjs +15 -49
  493. package/plugins/copyPaste/index.js +0 -2
  494. package/plugins/copyPaste/pasteEvent.js +1 -10
  495. package/plugins/copyPaste/pasteEvent.mjs +3 -10
  496. package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
  497. package/plugins/customBorders/contextMenuItem/bottom.mjs +4 -8
  498. package/plugins/customBorders/contextMenuItem/index.js +0 -11
  499. package/plugins/customBorders/contextMenuItem/left.js +0 -17
  500. package/plugins/customBorders/contextMenuItem/left.mjs +4 -8
  501. package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
  502. package/plugins/customBorders/contextMenuItem/noBorders.mjs +4 -6
  503. package/plugins/customBorders/contextMenuItem/right.js +0 -17
  504. package/plugins/customBorders/contextMenuItem/right.mjs +4 -8
  505. package/plugins/customBorders/contextMenuItem/top.js +0 -17
  506. package/plugins/customBorders/contextMenuItem/top.mjs +4 -8
  507. package/plugins/customBorders/customBorders.js +52 -181
  508. package/plugins/customBorders/customBorders.mjs +52 -147
  509. package/plugins/customBorders/index.js +0 -2
  510. package/plugins/customBorders/utils.js +13 -52
  511. package/plugins/customBorders/utils.mjs +20 -39
  512. package/plugins/dragToScroll/dragToScroll.js +17 -74
  513. package/plugins/dragToScroll/dragToScroll.mjs +17 -55
  514. package/plugins/dragToScroll/index.js +0 -2
  515. package/plugins/dropdownMenu/dropdownMenu.js +47 -126
  516. package/plugins/dropdownMenu/dropdownMenu.mjs +47 -95
  517. package/plugins/dropdownMenu/index.js +0 -2
  518. package/plugins/exportFile/dataProvider.js +24 -69
  519. package/plugins/exportFile/dataProvider.mjs +26 -60
  520. package/plugins/exportFile/exportFile.js +48 -58
  521. package/plugins/exportFile/exportFile.mjs +48 -36
  522. package/plugins/exportFile/index.js +0 -2
  523. package/plugins/exportFile/typeFactory.js +1 -11
  524. package/plugins/exportFile/typeFactory.mjs +1 -4
  525. package/plugins/exportFile/types/_base.js +2 -16
  526. package/plugins/exportFile/types/_base.mjs +4 -16
  527. package/plugins/exportFile/types/csv.js +2 -50
  528. package/plugins/exportFile/types/csv.mjs +2 -29
  529. package/plugins/filters/component/_base.js +12 -32
  530. package/plugins/filters/component/_base.mjs +15 -30
  531. package/plugins/filters/component/actionBar.js +6 -55
  532. package/plugins/filters/component/actionBar.mjs +9 -38
  533. package/plugins/filters/component/condition.js +25 -122
  534. package/plugins/filters/component/condition.mjs +24 -88
  535. package/plugins/filters/component/operators.js +10 -68
  536. package/plugins/filters/component/operators.mjs +10 -45
  537. package/plugins/filters/component/value.js +25 -99
  538. package/plugins/filters/component/value.mjs +28 -72
  539. package/plugins/filters/condition/beginsWith.js +2 -32
  540. package/plugins/filters/condition/beginsWith.mjs +2 -10
  541. package/plugins/filters/condition/between.js +3 -37
  542. package/plugins/filters/condition/between.mjs +3 -15
  543. package/plugins/filters/condition/byValue.js +3 -27
  544. package/plugins/filters/condition/byValue.mjs +3 -12
  545. package/plugins/filters/condition/contains.js +2 -32
  546. package/plugins/filters/condition/contains.mjs +2 -10
  547. package/plugins/filters/condition/date/after.js +2 -34
  548. package/plugins/filters/condition/date/after.mjs +2 -12
  549. package/plugins/filters/condition/date/before.js +2 -34
  550. package/plugins/filters/condition/date/before.mjs +2 -12
  551. package/plugins/filters/condition/date/today.js +1 -22
  552. package/plugins/filters/condition/date/today.mjs +1 -3
  553. package/plugins/filters/condition/date/tomorrow.js +1 -22
  554. package/plugins/filters/condition/date/tomorrow.mjs +1 -3
  555. package/plugins/filters/condition/date/yesterday.js +1 -22
  556. package/plugins/filters/condition/date/yesterday.mjs +1 -3
  557. package/plugins/filters/condition/empty.js +1 -19
  558. package/plugins/filters/condition/empty.mjs +1 -1
  559. package/plugins/filters/condition/endsWith.js +2 -32
  560. package/plugins/filters/condition/endsWith.mjs +2 -10
  561. package/plugins/filters/condition/equal.js +2 -31
  562. package/plugins/filters/condition/equal.mjs +2 -10
  563. package/plugins/filters/condition/false.js +1 -5
  564. package/plugins/filters/condition/false.mjs +1 -1
  565. package/plugins/filters/condition/greaterThan.js +2 -32
  566. package/plugins/filters/condition/greaterThan.mjs +2 -12
  567. package/plugins/filters/condition/greaterThanOrEqual.js +2 -32
  568. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -12
  569. package/plugins/filters/condition/lessThan.js +2 -32
  570. package/plugins/filters/condition/lessThan.mjs +2 -12
  571. package/plugins/filters/condition/lessThanOrEqual.js +2 -32
  572. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -12
  573. package/plugins/filters/condition/none.js +1 -18
  574. package/plugins/filters/condition/none.mjs +1 -1
  575. package/plugins/filters/condition/notBetween.js +1 -19
  576. package/plugins/filters/condition/notBetween.mjs +1 -1
  577. package/plugins/filters/condition/notContains.js +1 -19
  578. package/plugins/filters/condition/notContains.mjs +1 -1
  579. package/plugins/filters/condition/notEmpty.js +1 -19
  580. package/plugins/filters/condition/notEmpty.mjs +1 -1
  581. package/plugins/filters/condition/notEqual.js +1 -19
  582. package/plugins/filters/condition/notEqual.mjs +1 -1
  583. package/plugins/filters/condition/true.js +1 -5
  584. package/plugins/filters/condition/true.mjs +1 -1
  585. package/plugins/filters/conditionCollection.js +21 -80
  586. package/plugins/filters/conditionCollection.mjs +21 -57
  587. package/plugins/filters/conditionRegisterer.js +5 -14
  588. package/plugins/filters/conditionRegisterer.mjs +5 -9
  589. package/plugins/filters/conditionUpdateObserver.js +17 -57
  590. package/plugins/filters/conditionUpdateObserver.mjs +25 -53
  591. package/plugins/filters/constants.js +1 -66
  592. package/plugins/filters/constants.mjs +1 -8
  593. package/plugins/filters/dataFilter.js +4 -21
  594. package/plugins/filters/dataFilter.mjs +7 -23
  595. package/plugins/filters/filters.d.ts +1 -1
  596. package/plugins/filters/filters.js +147 -272
  597. package/plugins/filters/filters.mjs +148 -228
  598. package/plugins/filters/index.js +0 -2
  599. package/plugins/filters/logicalOperationRegisterer.js +3 -9
  600. package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
  601. package/plugins/filters/logicalOperations/conjunction.js +2 -19
  602. package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
  603. package/plugins/filters/logicalOperations/disjunction.js +2 -19
  604. package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
  605. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
  606. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
  607. package/plugins/filters/ui/_base.js +12 -55
  608. package/plugins/filters/ui/_base.mjs +12 -35
  609. package/plugins/filters/ui/input.js +7 -52
  610. package/plugins/filters/ui/input.mjs +7 -34
  611. package/plugins/filters/ui/link.js +3 -43
  612. package/plugins/filters/ui/link.mjs +3 -25
  613. package/plugins/filters/ui/multipleSelect.js +26 -120
  614. package/plugins/filters/ui/multipleSelect.mjs +20 -76
  615. package/plugins/filters/ui/radioInput.js +6 -47
  616. package/plugins/filters/ui/radioInput.mjs +6 -30
  617. package/plugins/filters/ui/select.js +14 -76
  618. package/plugins/filters/ui/select.mjs +14 -52
  619. package/plugins/filters/utils.js +6 -39
  620. package/plugins/filters/utils.mjs +6 -23
  621. package/plugins/formulas/engine/register.js +24 -74
  622. package/plugins/formulas/engine/register.mjs +29 -51
  623. package/plugins/formulas/engine/settings.js +4 -24
  624. package/plugins/formulas/engine/settings.mjs +4 -12
  625. package/plugins/formulas/formulas.js +103 -295
  626. package/plugins/formulas/formulas.mjs +104 -248
  627. package/plugins/formulas/index.js +0 -2
  628. package/plugins/formulas/utils.js +1 -3
  629. package/plugins/formulas/utils.mjs +1 -1
  630. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +4 -38
  631. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +8 -25
  632. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
  633. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +21 -29
  634. package/plugins/hiddenColumns/hiddenColumns.js +72 -153
  635. package/plugins/hiddenColumns/hiddenColumns.mjs +72 -110
  636. package/plugins/hiddenColumns/index.js +0 -2
  637. package/plugins/hiddenRows/contextMenuItem/hideRow.js +4 -38
  638. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +8 -25
  639. package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
  640. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +21 -29
  641. package/plugins/hiddenRows/hiddenRows.js +70 -152
  642. package/plugins/hiddenRows/hiddenRows.mjs +70 -109
  643. package/plugins/hiddenRows/index.js +0 -2
  644. package/plugins/index.js +0 -71
  645. package/plugins/index.mjs +3 -5
  646. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -28
  647. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +5 -17
  648. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -28
  649. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +5 -17
  650. package/plugins/manualColumnFreeze/index.js +0 -2
  651. package/plugins/manualColumnFreeze/manualColumnFreeze.js +21 -78
  652. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +21 -54
  653. package/plugins/manualColumnMove/index.js +0 -2
  654. package/plugins/manualColumnMove/manualColumnMove.js +45 -134
  655. package/plugins/manualColumnMove/manualColumnMove.mjs +45 -106
  656. package/plugins/manualColumnMove/ui/_base.js +12 -30
  657. package/plugins/manualColumnMove/ui/_base.mjs +12 -27
  658. package/plugins/manualColumnMove/ui/backlight.js +1 -37
  659. package/plugins/manualColumnMove/ui/backlight.mjs +1 -22
  660. package/plugins/manualColumnMove/ui/guideline.js +1 -37
  661. package/plugins/manualColumnMove/ui/guideline.mjs +1 -22
  662. package/plugins/manualColumnResize/index.js +0 -2
  663. package/plugins/manualColumnResize/manualColumnResize.js +44 -143
  664. package/plugins/manualColumnResize/manualColumnResize.mjs +43 -118
  665. package/plugins/manualRowMove/index.js +0 -2
  666. package/plugins/manualRowMove/manualRowMove.js +45 -137
  667. package/plugins/manualRowMove/manualRowMove.mjs +45 -109
  668. package/plugins/manualRowMove/ui/_base.js +12 -27
  669. package/plugins/manualRowMove/ui/_base.mjs +12 -26
  670. package/plugins/manualRowMove/ui/backlight.js +1 -37
  671. package/plugins/manualRowMove/ui/backlight.mjs +1 -22
  672. package/plugins/manualRowMove/ui/guideline.js +1 -37
  673. package/plugins/manualRowMove/ui/guideline.mjs +1 -22
  674. package/plugins/manualRowResize/index.js +0 -2
  675. package/plugins/manualRowResize/manualRowResize.js +42 -138
  676. package/plugins/manualRowResize/manualRowResize.mjs +41 -112
  677. package/plugins/mergeCells/calculations/autofill.js +39 -130
  678. package/plugins/mergeCells/calculations/autofill.mjs +44 -122
  679. package/plugins/mergeCells/calculations/selection.js +9 -40
  680. package/plugins/mergeCells/calculations/selection.mjs +9 -37
  681. package/plugins/mergeCells/cellCoords.js +30 -51
  682. package/plugins/mergeCells/cellCoords.mjs +35 -54
  683. package/plugins/mergeCells/cellsCollection.js +13 -84
  684. package/plugins/mergeCells/cellsCollection.mjs +18 -69
  685. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
  686. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +4 -11
  687. package/plugins/mergeCells/index.js +0 -2
  688. package/plugins/mergeCells/mergeCells.js +130 -333
  689. package/plugins/mergeCells/mergeCells.mjs +130 -292
  690. package/plugins/mergeCells/utils.js +0 -3
  691. package/plugins/mergeCells/utils.mjs +0 -1
  692. package/plugins/multiColumnSorting/domHelpers.js +3 -15
  693. package/plugins/multiColumnSorting/domHelpers.mjs +3 -7
  694. package/plugins/multiColumnSorting/index.js +0 -2
  695. package/plugins/multiColumnSorting/multiColumnSorting.js +14 -66
  696. package/plugins/multiColumnSorting/multiColumnSorting.mjs +14 -44
  697. package/plugins/multiColumnSorting/rootComparator.js +2 -26
  698. package/plugins/multiColumnSorting/rootComparator.mjs +9 -23
  699. package/plugins/multiColumnSorting/utils.js +0 -7
  700. package/plugins/multiColumnSorting/utils.mjs +3 -8
  701. package/plugins/multipleSelectionHandles/index.js +0 -2
  702. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +6 -109
  703. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +6 -87
  704. package/plugins/nestedHeaders/index.js +0 -2
  705. package/plugins/nestedHeaders/nestedHeaders.js +79 -200
  706. package/plugins/nestedHeaders/nestedHeaders.mjs +80 -173
  707. package/plugins/nestedHeaders/stateManager/headersTree.js +16 -93
  708. package/plugins/nestedHeaders/stateManager/headersTree.mjs +16 -73
  709. package/plugins/nestedHeaders/stateManager/index.js +24 -107
  710. package/plugins/nestedHeaders/stateManager/index.mjs +51 -115
  711. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
  712. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +38 -51
  713. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
  714. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +29 -35
  715. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
  716. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +26 -32
  717. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
  718. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +9 -20
  719. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
  720. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -5
  721. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
  722. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +9 -21
  723. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
  724. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
  725. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
  726. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +44 -61
  727. package/plugins/nestedHeaders/stateManager/sourceSettings.js +16 -78
  728. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +21 -68
  729. package/plugins/nestedHeaders/stateManager/utils.js +19 -22
  730. package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
  731. package/plugins/nestedHeaders/utils/ghostTable.js +9 -37
  732. package/plugins/nestedHeaders/utils/ghostTable.mjs +16 -43
  733. package/plugins/nestedRows/data/dataManager.js +40 -161
  734. package/plugins/nestedRows/data/dataManager.mjs +44 -148
  735. package/plugins/nestedRows/index.js +0 -2
  736. package/plugins/nestedRows/nestedRows.js +41 -119
  737. package/plugins/nestedRows/nestedRows.mjs +41 -86
  738. package/plugins/nestedRows/ui/_base.js +1 -9
  739. package/plugins/nestedRows/ui/_base.mjs +1 -8
  740. package/plugins/nestedRows/ui/collapsing.js +28 -134
  741. package/plugins/nestedRows/ui/collapsing.mjs +34 -118
  742. package/plugins/nestedRows/ui/contextMenu.js +2 -53
  743. package/plugins/nestedRows/ui/contextMenu.mjs +2 -32
  744. package/plugins/nestedRows/ui/headers.js +5 -50
  745. package/plugins/nestedRows/ui/headers.mjs +11 -41
  746. package/plugins/nestedRows/utils/rowMoveController.js +28 -78
  747. package/plugins/nestedRows/utils/rowMoveController.mjs +33 -66
  748. package/plugins/persistentState/index.js +0 -2
  749. package/plugins/persistentState/persistentState.js +10 -58
  750. package/plugins/persistentState/persistentState.mjs +10 -37
  751. package/plugins/persistentState/storage.js +9 -25
  752. package/plugins/persistentState/storage.mjs +12 -26
  753. package/plugins/registry.js +7 -51
  754. package/plugins/registry.mjs +8 -34
  755. package/plugins/search/index.js +0 -2
  756. package/plugins/search/search.js +16 -98
  757. package/plugins/search/search.mjs +16 -68
  758. package/plugins/touchScroll/index.js +0 -2
  759. package/plugins/touchScroll/touchScroll.js +15 -76
  760. package/plugins/touchScroll/touchScroll.mjs +15 -58
  761. package/plugins/trimRows/index.js +0 -2
  762. package/plugins/trimRows/trimRows.js +62 -88
  763. package/plugins/trimRows/trimRows.mjs +62 -65
  764. package/plugins/undoRedo/index.js +0 -14
  765. package/plugins/undoRedo/undoRedo.js +48 -218
  766. package/plugins/undoRedo/undoRedo.mjs +48 -188
  767. package/registry.js +0 -11
  768. package/registry.mjs +2 -4
  769. package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
  770. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
  771. package/renderers/autocompleteRenderer/index.js +0 -2
  772. package/renderers/baseRenderer/baseRenderer.js +2 -11
  773. package/renderers/baseRenderer/baseRenderer.mjs +2 -9
  774. package/renderers/baseRenderer/index.js +0 -2
  775. package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
  776. package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
  777. package/renderers/checkboxRenderer/index.js +0 -2
  778. package/renderers/htmlRenderer/htmlRenderer.js +1 -7
  779. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  780. package/renderers/htmlRenderer/index.js +0 -2
  781. package/renderers/index.js +0 -19
  782. package/renderers/index.mjs +3 -5
  783. package/renderers/numericRenderer/index.js +0 -2
  784. package/renderers/numericRenderer/numericRenderer.js +1 -23
  785. package/renderers/numericRenderer/numericRenderer.mjs +1 -10
  786. package/renderers/passwordRenderer/index.js +0 -2
  787. package/renderers/passwordRenderer/passwordRenderer.js +1 -8
  788. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  789. package/renderers/registry.js +7 -16
  790. package/renderers/registry.mjs +7 -14
  791. package/renderers/textRenderer/index.js +0 -2
  792. package/renderers/textRenderer/textRenderer.js +2 -14
  793. package/renderers/textRenderer/textRenderer.mjs +2 -6
  794. package/renderers/timeRenderer/index.js +0 -2
  795. package/renderers/timeRenderer/timeRenderer.js +1 -6
  796. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  797. package/selection/highlight/highlight.js +17 -73
  798. package/selection/highlight/highlight.mjs +31 -64
  799. package/selection/highlight/types/activeHeader.js +1 -21
  800. package/selection/highlight/types/activeHeader.mjs +6 -16
  801. package/selection/highlight/types/area.js +2 -22
  802. package/selection/highlight/types/area.mjs +10 -20
  803. package/selection/highlight/types/cell.js +1 -21
  804. package/selection/highlight/types/cell.mjs +9 -19
  805. package/selection/highlight/types/customSelection.js +2 -22
  806. package/selection/highlight/types/customSelection.mjs +11 -21
  807. package/selection/highlight/types/fill.js +2 -17
  808. package/selection/highlight/types/fill.mjs +9 -14
  809. package/selection/highlight/types/header.js +3 -23
  810. package/selection/highlight/types/header.mjs +13 -23
  811. package/selection/highlight/types/index.js +3 -24
  812. package/selection/highlight/types/index.mjs +3 -10
  813. package/selection/highlight/visualSelection.js +24 -74
  814. package/selection/highlight/visualSelection.mjs +24 -62
  815. package/selection/index.js +0 -14
  816. package/selection/mouseEventHandler.js +19 -30
  817. package/selection/mouseEventHandler.mjs +32 -36
  818. package/selection/range.js +11 -31
  819. package/selection/range.mjs +11 -22
  820. package/selection/selection.js +62 -157
  821. package/selection/selection.mjs +65 -132
  822. package/selection/transformation.js +10 -40
  823. package/selection/transformation.mjs +18 -45
  824. package/selection/utils.js +22 -70
  825. package/selection/utils.mjs +22 -47
  826. package/shortcuts/context.js +23 -78
  827. package/shortcuts/context.mjs +23 -55
  828. package/shortcuts/index.js +0 -2
  829. package/shortcuts/keyObserver.js +4 -17
  830. package/shortcuts/keyObserver.mjs +4 -12
  831. package/shortcuts/manager.js +16 -36
  832. package/shortcuts/manager.mjs +16 -33
  833. package/shortcuts/recorder.js +20 -47
  834. package/shortcuts/recorder.mjs +20 -39
  835. package/shortcuts/utils.js +5 -24
  836. package/shortcuts/utils.mjs +5 -8
  837. package/tableView.js +100 -270
  838. package/tableView.mjs +100 -248
  839. package/translations/changesObservable/observable.js +5 -54
  840. package/translations/changesObservable/observable.mjs +12 -51
  841. package/translations/changesObservable/observer.js +4 -32
  842. package/translations/changesObservable/observer.mjs +9 -29
  843. package/translations/changesObservable/utils.js +1 -5
  844. package/translations/changesObservable/utils.mjs +1 -4
  845. package/translations/index.js +0 -11
  846. package/translations/indexMapper.js +70 -158
  847. package/translations/indexMapper.mjs +70 -125
  848. package/translations/mapCollections/aggregatedCollection.js +9 -51
  849. package/translations/mapCollections/aggregatedCollection.mjs +12 -41
  850. package/translations/mapCollections/index.js +0 -7
  851. package/translations/mapCollections/mapCollection.js +10 -33
  852. package/translations/mapCollections/mapCollection.mjs +10 -22
  853. package/translations/maps/hidingMap.js +2 -35
  854. package/translations/maps/hidingMap.mjs +7 -28
  855. package/translations/maps/index.js +1 -24
  856. package/translations/maps/index.mjs +1 -3
  857. package/translations/maps/indexMap.js +12 -34
  858. package/translations/maps/indexMap.mjs +16 -32
  859. package/translations/maps/indexesSequence.js +3 -41
  860. package/translations/maps/indexesSequence.mjs +9 -32
  861. package/translations/maps/linkedPhysicalIndexToValueMap.js +9 -78
  862. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +16 -59
  863. package/translations/maps/physicalIndexToValueMap.js +2 -39
  864. package/translations/maps/physicalIndexToValueMap.mjs +8 -31
  865. package/translations/maps/trimmingMap.js +2 -35
  866. package/translations/maps/trimmingMap.mjs +7 -28
  867. package/translations/maps/utils/actionsOnIndexes.js +1 -7
  868. package/translations/maps/utils/actionsOnIndexes.mjs +9 -12
  869. package/translations/maps/utils/index.js +0 -13
  870. package/translations/maps/utils/index.mjs +0 -3
  871. package/translations/maps/utils/indexesSequence.js +1 -24
  872. package/translations/maps/utils/indexesSequence.mjs +10 -19
  873. package/translations/maps/utils/physicallyIndexed.js +1 -27
  874. package/translations/maps/utils/physicallyIndexed.mjs +11 -21
  875. package/utils/dataStructures/linkedList.js +15 -56
  876. package/utils/dataStructures/linkedList.mjs +15 -54
  877. package/utils/dataStructures/priorityMap.js +8 -46
  878. package/utils/dataStructures/priorityMap.mjs +8 -29
  879. package/utils/dataStructures/queue.js +6 -17
  880. package/utils/dataStructures/queue.mjs +6 -16
  881. package/utils/dataStructures/stack.js +6 -17
  882. package/utils/dataStructures/stack.mjs +6 -16
  883. package/utils/dataStructures/tree.js +11 -75
  884. package/utils/dataStructures/tree.mjs +11 -54
  885. package/utils/dataStructures/uniqueMap.js +17 -56
  886. package/utils/dataStructures/uniqueMap.mjs +17 -42
  887. package/utils/dataStructures/uniqueSet.js +5 -32
  888. package/utils/dataStructures/uniqueSet.mjs +5 -19
  889. package/utils/ghostTable.js +33 -104
  890. package/utils/ghostTable.mjs +35 -92
  891. package/utils/interval.js +10 -37
  892. package/utils/interval.mjs +7 -29
  893. package/utils/parseTable.js +11 -92
  894. package/utils/parseTable.mjs +11 -62
  895. package/utils/rootInstance.js +3 -14
  896. package/utils/rootInstance.mjs +3 -3
  897. package/utils/samplesGenerator.js +15 -51
  898. package/utils/samplesGenerator.mjs +17 -44
  899. package/utils/staticRegister.js +6 -33
  900. package/utils/staticRegister.mjs +6 -19
  901. package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
  902. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
  903. package/validators/autocompleteValidator/index.js +0 -2
  904. package/validators/dateValidator/dateValidator.js +2 -21
  905. package/validators/dateValidator/dateValidator.mjs +2 -11
  906. package/validators/dateValidator/index.js +0 -2
  907. package/validators/index.js +0 -11
  908. package/validators/index.mjs +3 -5
  909. package/validators/numericValidator/index.js +0 -2
  910. package/validators/numericValidator/numericValidator.js +1 -7
  911. package/validators/numericValidator/numericValidator.mjs +1 -3
  912. package/validators/registry.js +7 -16
  913. package/validators/registry.mjs +7 -14
  914. package/validators/timeValidator/index.js +0 -2
  915. package/validators/timeValidator/timeValidator.js +6 -18
  916. package/validators/timeValidator/timeValidator.mjs +8 -13
  917. package/utils/sortingAlgorithms/mergeSort.js +0 -120
  918. package/utils/sortingAlgorithms/mergeSort.mjs +0 -110
package/pluginHooks.mjs CHANGED
@@ -1,14 +1,9 @@
1
1
  import "core-js/modules/es.array.slice.js";
2
2
  import "core-js/modules/es.object.freeze.js";
3
-
4
3
  var _templateObject;
5
-
6
4
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
-
8
5
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
9
-
10
6
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
-
12
7
  import "core-js/modules/es.array.iterator.js";
13
8
  import "core-js/modules/es.map.js";
14
9
  import "core-js/modules/es.object.to-string.js";
@@ -16,9 +11,7 @@ import "core-js/modules/es.string.iterator.js";
16
11
  import "core-js/modules/web.dom-collections.iterator.js";
17
12
  import "core-js/modules/es.array.index-of.js";
18
13
  import "core-js/modules/es.array.splice.js";
19
-
20
14
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
21
-
22
15
  import { arrayEach } from "./helpers/array.mjs";
23
16
  import { objectEach } from "./helpers/object.mjs";
24
17
  import { substitute } from "./helpers/string.mjs";
@@ -31,6 +24,7 @@ import { fastCall } from "./helpers/function.mjs";
31
24
  *
32
25
  * @example
33
26
  *
27
+ * ::: only-for javascript
34
28
  * ```js
35
29
  * // Using events as callbacks:
36
30
  * ...
@@ -44,7 +38,25 @@ import { fastCall } from "./helpers/function.mjs";
44
38
  * });
45
39
  * ...
46
40
  * ```
41
+ * :::
42
+ *
43
+ * ::: only-for react
44
+ * ```jsx
45
+ * <HotTable
46
+ * afterChange={(changes, source) => {
47
+ * fetch('save.php', {
48
+ * method: 'POST',
49
+ * headers: {
50
+ * 'Accept': 'application/json',
51
+ * 'Content-Type': 'application/json'
52
+ * },
53
+ * body: JSON.stringify(changes)
54
+ * });
55
+ * }}
56
+ * />
57
+ * :::
47
58
  *
59
+ * ::: only-for javascript
48
60
  * ```js
49
61
  * // Using events as plugin hooks:
50
62
  * ...
@@ -69,13 +81,46 @@ import { fastCall } from "./helpers/function.mjs";
69
81
  * // function body - will only run in #example2
70
82
  * });
71
83
  * ```
84
+ * :::
85
+ *
86
+ * ::: only-for react
87
+ * ```jsx
88
+ * const hotRef1 = useRef(null);
89
+ * const hotRef2 = useRef(null);
90
+ *
91
+ * // Using events as plugin hooks:
92
+ * ...
93
+ *
94
+ * <HotTable
95
+ * ref={hotRef1}
96
+ * myPlugin={true}
97
+ * });
98
+ *
99
+ * <HotTable
100
+ * ref={hotRef2}
101
+ * myPlugin={false}
102
+ * });
103
+ *
104
+ * ...
105
+ *
106
+ * const hot2 = hotRef2.current.hotInstance;
107
+ * // local hook (has same effect as a callback)
108
+ * hot2.addHook('afterChange', function() {
109
+ * // function body - will only run in #example2
110
+ * });
111
+ *
112
+ * // global hook
113
+ * Handsontable.hooks.add('afterChange', function() {
114
+ * // Fired twice - for hot1 and hot2
115
+ * if (this.getSettings().myPlugin) {
116
+ * // function body - will only run for first instance
117
+ * }
118
+ * });
119
+ * :::
72
120
  * ...
73
121
  */
74
122
  // @TODO: Move plugin description hooks to plugin?
75
-
76
- var REGISTERED_HOOKS = [
77
- /* eslint-disable jsdoc/require-description-complete-sentence */
78
-
123
+ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sentence */
79
124
  /**
80
125
  * Fired after resetting a cell's meta. This happens when the {@link Core#updateSettings} method is called.
81
126
  *
@@ -89,18 +134,32 @@ var REGISTERED_HOOKS = [
89
134
  * __Note:__ For performance reasons, the `changes` array is null for `"loadData"` source.
90
135
  *
91
136
  * @event Hooks#afterChange
92
- * @param {Array} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`.
137
+ * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
93
138
  * @param {string} [source] String that identifies source of hook call ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
94
139
  * @example
140
+ * ::: only-for javascript
95
141
  * ```js
96
142
  * new Handsontable(element, {
97
143
  * afterChange: (changes) => {
98
- * changes.forEach(([row, prop, oldValue, newValue]) => {
144
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
99
145
  * // Some logic...
100
146
  * });
101
147
  * }
102
148
  * })
103
149
  * ```
150
+ * :::
151
+ *
152
+ * ::: only-for react
153
+ * ```jsx
154
+ * <HotTable
155
+ * afterChange={(changes, source) => {
156
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
157
+ * // Some logic...
158
+ * });
159
+ * }}
160
+ * />
161
+ * ```
162
+ * :::
104
163
  */
105
164
  'afterChange',
106
165
  /**
@@ -183,6 +242,7 @@ var REGISTERED_HOOKS = [
183
242
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
184
243
  * @returns {*} If `false` then creating columns is cancelled.
185
244
  * @example
245
+ * ::: only-for javascript
186
246
  * ```js
187
247
  * // Return `false` to cancel column inserting.
188
248
  * new Handsontable(element, {
@@ -191,6 +251,18 @@ var REGISTERED_HOOKS = [
191
251
  * }
192
252
  * });
193
253
  * ```
254
+ * :::
255
+ *
256
+ * ::: only-for react
257
+ * ```jsx
258
+ * // Return `false` to cancel column inserting.
259
+ * <HotTable
260
+ * beforeCreateCol={(data, coords) => {
261
+ * return false;
262
+ * }}
263
+ * />
264
+ * ```
265
+ * :::
194
266
  */
195
267
  'beforeCreateCol',
196
268
  /**
@@ -225,7 +297,7 @@ var REGISTERED_HOOKS = [
225
297
  */
226
298
  'afterCreateRow',
227
299
  /**
228
- * Fired after the current cell is deselected.
300
+ * Fired after all selected cells are deselected.
229
301
  *
230
302
  * @event Hooks#afterDeselect
231
303
  */
@@ -275,9 +347,13 @@ var REGISTERED_HOOKS = [
275
347
  /**
276
348
  * Fired after retrieving information about a column header and appending it to the table header.
277
349
  *
350
+ * Since the 12.2 the hook is triggered with the 3rd `headerLevel` argument.
351
+ *
278
352
  * @event Hooks#afterGetColHeader
279
353
  * @param {number} column Visual column index.
280
354
  * @param {HTMLTableCellElement} TH Header's TH element.
355
+ * @param {number} [headerLevel=0] The index of header level counting from the top (positive
356
+ * values counting from 0 to N).
281
357
  */
282
358
  'afterGetColHeader',
283
359
  /**
@@ -477,6 +553,7 @@ var REGISTERED_HOOKS = [
477
553
  * @param {object} preventScrolling Object with `value` property where its value change will be observed.
478
554
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
479
555
  * @example
556
+ * ::: only-for javascript
480
557
  * ```js
481
558
  * new Handsontable(element, {
482
559
  * afterSelection: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
@@ -488,6 +565,21 @@ var REGISTERED_HOOKS = [
488
565
  * }
489
566
  * })
490
567
  * ```
568
+ * :::
569
+ *
570
+ * ::: only-for react
571
+ * ```jsx
572
+ * <HotTable
573
+ * afterSelection={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
574
+ * // If set to `false` (default): when cell selection is outside the viewport,
575
+ * // Handsontable scrolls the viewport to cell selection's end corner.
576
+ * // If set to `true`: when cell selection is outside the viewport,
577
+ * // Handsontable doesn't scroll to cell selection's end corner.
578
+ * preventScrolling.value = true;
579
+ * }}
580
+ * />
581
+ * ```
582
+ * :::
491
583
  */
492
584
  'afterSelection',
493
585
  /**
@@ -504,6 +596,7 @@ var REGISTERED_HOOKS = [
504
596
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
505
597
  * @example
506
598
  * ```js
599
+ * ::: only-for javascript
507
600
  * new Handsontable(element, {
508
601
  * afterSelectionByProp: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
509
602
  * // setting if prevent scrolling after selection
@@ -511,6 +604,18 @@ var REGISTERED_HOOKS = [
511
604
  * }
512
605
  * })
513
606
  * ```
607
+ * :::
608
+ *
609
+ * ::: only-for react
610
+ * ```jsx
611
+ * <HotTable
612
+ * afterSelectionByProp={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
613
+ * // setting if prevent scrolling after selection
614
+ * preventScrolling.value = true;
615
+ * }}
616
+ * />
617
+ * ```
618
+ * :::
514
619
  */
515
620
  'afterSelectionByProp',
516
621
  /**
@@ -606,7 +711,7 @@ var REGISTERED_HOOKS = [
606
711
  * @param {string|number} prop Property name / visual column index.
607
712
  * @param {string} [source] String that identifies source of hook call
608
713
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
609
- * @returns {void | boolean} If `false` the cell will be marked as invalid, `true` otherwise.
714
+ * @returns {undefined | boolean} If `false` the cell will be marked as invalid, `true` otherwise.
610
715
  */
611
716
  'afterValidate',
612
717
  /**
@@ -672,31 +777,39 @@ var REGISTERED_HOOKS = [
672
777
  */
673
778
  'beforeCellAlignment',
674
779
  /**
675
- * Fired before one or more cells is changed. Its main purpose is to alter changes silently after input and before
676
- * table rendering.
780
+ * Fired before one or more cells are changed.
781
+ *
782
+ * Use this hook to silently alter the user's changes before Handsontable re-renders.
783
+ *
784
+ * To ignore the user's changes, use a nullified array or return `false`.
677
785
  *
678
786
  * @event Hooks#beforeChange
679
- * @param {Array[]} changes 2D array containing information about each of the edited cells.
787
+ * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
680
788
  * @param {string} [source] String that identifies source of hook call
681
789
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
682
- * @returns {void | boolean} If `false` all changes were cancelled, `true` otherwise.
790
+ * @returns {undefined | boolean} If `false` all changes were cancelled, `true` otherwise.
683
791
  * @example
792
+ * ::: only-for javascript
684
793
  * ```js
685
- * // To disregard a single change, set changes[i] to null or remove it from array using changes.splice(i, 1).
794
+ * // to alter a single change, overwrite the value with `changes[i][3]`
686
795
  * new Handsontable(element, {
687
796
  * beforeChange: (changes, source) => {
688
797
  * // [[row, prop, oldVal, newVal], ...]
689
- * changes[0] = null;
798
+ * changes[0][3] = 10;
690
799
  * }
691
800
  * });
692
- * // To alter a single change, overwrite the desired value to changes[i][3].
801
+ *
802
+ * // to ignore a single change, set `changes[i]` to `null`
803
+ * // or remove `changes[i]` from the array, by using `changes.splice(i, 1)`
693
804
  * new Handsontable(element, {
694
805
  * beforeChange: (changes, source) => {
695
806
  * // [[row, prop, oldVal, newVal], ...]
696
- * changes[0][3] = 10;
807
+ * changes[0] = null;
697
808
  * }
698
809
  * });
699
- * // To cancel all edit, return false from the callback or set array length to 0 (changes.length = 0).
810
+ *
811
+ * // to ignore all changes, return `false`
812
+ * // or set the array's length to 0, by using `changes.length = 0`
700
813
  * new Handsontable(element, {
701
814
  * beforeChange: (changes, source) => {
702
815
  * // [[row, prop, oldVal, newVal], ...]
@@ -704,6 +817,37 @@ var REGISTERED_HOOKS = [
704
817
  * }
705
818
  * });
706
819
  * ```
820
+ * :::
821
+ *
822
+ * ::: only-for react
823
+ * ```jsx
824
+ * // to alter a single change, overwrite the desired value with `changes[i][3]`
825
+ * <HotTable
826
+ * beforeChange={(changes, source) => {
827
+ * // [[row, prop, oldVal, newVal], ...]
828
+ * changes[0][3] = 10;
829
+ * }}
830
+ * />
831
+ *
832
+ * // to ignore a single change, set `changes[i]` to `null`
833
+ * // or remove `changes[i]` from the array, by using changes.splice(i, 1).
834
+ * <HotTable
835
+ * beforeChange={(changes, source) => {
836
+ * // [[row, prop, oldVal, newVal], ...]
837
+ * changes[0] = null;
838
+ * }}
839
+ * />
840
+ *
841
+ * // to ignore all changes, return `false`
842
+ * // or set the array's length to 0 (`changes.length = 0`)
843
+ * <HotTable
844
+ * beforeChange={(changes, source) => {
845
+ * // [[row, prop, oldVal, newVal], ...]
846
+ * return false;
847
+ * }}
848
+ * />
849
+ * ```
850
+ * :::
707
851
  */
708
852
  'beforeChange',
709
853
  /**
@@ -929,7 +1073,7 @@ var REGISTERED_HOOKS = [
929
1073
  * @param {number} column Visual column index.
930
1074
  * @param {string} key The updated meta key.
931
1075
  * @param {*} value The updated meta value.
932
- * @returns {*|boolean} If false is returned the action is canceled.
1076
+ * @returns {boolean|undefined} If false is returned the action is canceled.
933
1077
  */
934
1078
  'beforeSetCellMeta',
935
1079
  /**
@@ -1063,6 +1207,7 @@ var REGISTERED_HOOKS = [
1063
1207
  * @param {boolean} topmost If set to `true`, it returns the TD element from the topmost overlay. For example,
1064
1208
  * if the wanted cell is in the range of fixed rows, it will return a TD element
1065
1209
  * from the `top` overlay.
1210
+ * @returns {undefined|number[]}
1066
1211
  */
1067
1212
  'modifyGetCellCoords',
1068
1213
  /**
@@ -1094,8 +1239,9 @@ var REGISTERED_HOOKS = [
1094
1239
  */
1095
1240
  'beforeHighlightingColumnHeader',
1096
1241
  /**
1097
- * Fired by {@link PersistentState} plugin, after loading value, saved under given key, from browser local storage. This hook is fired when
1098
- * {@link Options#persistentState} option is enabled.
1242
+ * Fired by {@link PersistentState} plugin, after loading value, saved under given key, from browser local storage.
1243
+ *
1244
+ * The `persistentStateLoad` hook is fired even when the {@link Options#persistentState} option is disabled.
1099
1245
  *
1100
1246
  * @event Hooks#persistentStateLoad
1101
1247
  * @param {string} key Key.
@@ -1111,8 +1257,9 @@ var REGISTERED_HOOKS = [
1111
1257
  */
1112
1258
  'persistentStateReset',
1113
1259
  /**
1114
- * Fired by {@link PersistentState} plugin, after saving value under given key in browser local storage. This hook is fired when
1115
- * {@link Options#persistentState} option is enabled.
1260
+ * Fired by {@link PersistentState} plugin, after saving value under given key in browser local storage.
1261
+ *
1262
+ * The `persistentStateSave` hook is fired even when the {@link Options#persistentState} option is disabled.
1116
1263
  *
1117
1264
  * @event Hooks#persistentStateSave
1118
1265
  * @param {string} key Key.
@@ -1128,7 +1275,7 @@ var REGISTERED_HOOKS = [
1128
1275
  * @event Hooks#beforeColumnSort
1129
1276
  * @param {Array} currentSortConfig Current sort configuration (for all sorted columns).
1130
1277
  * @param {Array} destinationSortConfigs Destination sort configuration (for all sorted columns).
1131
- * @returns {boolean | void} If `false` the column will not be sorted, `true` otherwise.
1278
+ * @returns {boolean | undefined} If `false` the column will not be sorted, `true` otherwise.
1132
1279
  */
1133
1280
  'beforeColumnSort',
1134
1281
  /**
@@ -1166,6 +1313,7 @@ var REGISTERED_HOOKS = [
1166
1313
  * which will be cut out.
1167
1314
  * @returns {*} If returns `false` then operation of the cutting out is canceled.
1168
1315
  * @example
1316
+ * ::: only-for javascript
1169
1317
  * ```js
1170
1318
  * // To disregard a single row, remove it from the array using data.splice(i, 1).
1171
1319
  * new Handsontable(element, {
@@ -1183,6 +1331,27 @@ var REGISTERED_HOOKS = [
1183
1331
  * }
1184
1332
  * });
1185
1333
  * ```
1334
+ * :::
1335
+ *
1336
+ * ::: only-for react
1337
+ * ```jsx
1338
+ * // To disregard a single row, remove it from the array using data.splice(i, 1).
1339
+ * <HotTable
1340
+ * beforeCut={(data, coords) => {
1341
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1342
+ * data.splice(0, 1);
1343
+ * // data -> [[4, 5, 6]]
1344
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1345
+ * }}
1346
+ * />
1347
+ * // To cancel a cutting action, just return `false`.
1348
+ * <HotTable
1349
+ * beforeCut={(data, coords) => {
1350
+ * return false;
1351
+ * }}
1352
+ * />
1353
+ * ```
1354
+ * :::
1186
1355
  */
1187
1356
  'beforeCut',
1188
1357
  /**
@@ -1205,6 +1374,7 @@ var REGISTERED_HOOKS = [
1205
1374
  * @returns {*} If returns `false` then copying is canceled.
1206
1375
  *
1207
1376
  * @example
1377
+ * ::: only-for javascript
1208
1378
  * ```js
1209
1379
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1210
1380
  * ...
@@ -1227,6 +1397,32 @@ var REGISTERED_HOOKS = [
1227
1397
  * });
1228
1398
  * ...
1229
1399
  * ```
1400
+ * :::
1401
+ *
1402
+ * ::: only-for react
1403
+ * ```jsx
1404
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1405
+ * ...
1406
+ * <HotTable
1407
+ * beforeCopy={(data, coords) => {
1408
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1409
+ * data.splice(0, 1);
1410
+ * // data -> [[4, 5, 6]]
1411
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1412
+ * }}
1413
+ * />
1414
+ * ...
1415
+ *
1416
+ * // To cancel copying, return false from the callback.
1417
+ * ...
1418
+ * <HotTable
1419
+ * beforeCopy={(data, coords) => {
1420
+ * return false;
1421
+ * }}
1422
+ * />
1423
+ * ...
1424
+ * ```
1425
+ * :::
1230
1426
  */
1231
1427
  'beforeCopy',
1232
1428
  /**
@@ -1250,6 +1446,7 @@ var REGISTERED_HOOKS = [
1250
1446
  * @returns {*} If returns `false` then pasting is canceled.
1251
1447
  * @example
1252
1448
  * ```js
1449
+ * ::: only-for javascript
1253
1450
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1254
1451
  * new Handsontable(example, {
1255
1452
  * beforePaste: (data, coords) => {
@@ -1266,6 +1463,27 @@ var REGISTERED_HOOKS = [
1266
1463
  * }
1267
1464
  * });
1268
1465
  * ```
1466
+ * :::
1467
+ *
1468
+ * ::: only-for react
1469
+ * ```jsx
1470
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1471
+ * <HotTable
1472
+ * beforePaste={(data, coords) => {
1473
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1474
+ * data.splice(0, 1);
1475
+ * // data -> [[4, 5, 6]]
1476
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1477
+ * }}
1478
+ * />
1479
+ * // To cancel pasting, return false from the callback.
1480
+ * <HotTable
1481
+ * beforePaste={(data, coords) => {
1482
+ * return false;
1483
+ * }}
1484
+ * />
1485
+ * ```
1486
+ * :::
1269
1487
  */
1270
1488
  'beforePaste',
1271
1489
  /**
@@ -1313,7 +1531,7 @@ var REGISTERED_HOOKS = [
1313
1531
  * [documentation](@/guides/columns/column-moving.md).
1314
1532
  * It's `undefined` when `dragColumns` function wasn't called.
1315
1533
  * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.
1316
- * @returns {void | boolean} If `false` the column will not be moved, `true` otherwise.
1534
+ * @returns {undefined | boolean} If `false` the column will not be moved, `true` otherwise.
1317
1535
  */
1318
1536
  'beforeColumnMove',
1319
1537
  /**
@@ -1421,7 +1639,7 @@ var REGISTERED_HOOKS = [
1421
1639
  * @param {number} newSize Calculated new row height.
1422
1640
  * @param {number} row Visual index of the resized row.
1423
1641
  * @param {boolean} isDoubleClick Flag that determines whether there was a double-click.
1424
- * @returns {number} Returns the new row size or `undefined` if row size should be calculated automatically.
1642
+ * @returns {number|undefined} Returns the new row size or `undefined` if row size should be calculated automatically.
1425
1643
  */
1426
1644
  'beforeRowResize',
1427
1645
  /**
@@ -1454,7 +1672,7 @@ var REGISTERED_HOOKS = [
1454
1672
  * @event Hooks#beforeStretchingColumnWidth
1455
1673
  * @param {number} stretchedWidth Calculated width.
1456
1674
  * @param {number} column Visual column index.
1457
- * @returns {number} Returns new width which will be applied to the column element.
1675
+ * @returns {number|undefined} Returns new width which will be applied to the column element.
1458
1676
  */
1459
1677
  'beforeStretchingColumnWidth',
1460
1678
  /**
@@ -1513,15 +1731,25 @@ var REGISTERED_HOOKS = [
1513
1731
  */
1514
1732
  'afterFilter',
1515
1733
  /**
1516
- * Called when a value is updated in the engine.
1734
+ * Fired by the {@link Formulas} plugin, when any cell value changes.
1735
+ *
1736
+ * Returns an array of objects that contains:
1737
+ * - The addresses (`sheet`, `row`, `col`) and new values (`newValue`) of the changed cells.
1738
+ * - The addresses and new values of any cells that had to be recalculated (because their formulas depend on the cells that changed).
1739
+ *
1740
+ * This hook gets also fired on Handsontable's initialization, returning the addresses and values of all cells.
1741
+ *
1742
+ * Read more:
1743
+ * - [Guides: Formula calculation](@/guides/formulas/formula-calculation.md)
1744
+ * - [HyperFormula documentation: `valuesUpdated`](https://hyperformula.handsontable.com/api/interfaces/listeners.html#valuesupdated)
1517
1745
  *
1518
1746
  * @since 9.0.0
1519
1747
  * @event Hooks#afterFormulasValuesUpdate
1520
- * @param {Array} changes The values and location of applied changes.
1748
+ * @param {Array} changes The addresses and new values of all the changed and recalculated cells.
1521
1749
  */
1522
1750
  'afterFormulasValuesUpdate',
1523
1751
  /**
1524
- * Called when a named expression is added to the Formulas' engine instance.
1752
+ * Fired when a named expression is added to the Formulas' engine instance.
1525
1753
  *
1526
1754
  * @since 9.0.0
1527
1755
  * @event Hooks#afterNamedExpressionAdded
@@ -1530,7 +1758,7 @@ var REGISTERED_HOOKS = [
1530
1758
  */
1531
1759
  'afterNamedExpressionAdded',
1532
1760
  /**
1533
- * Called when a named expression is removed from the Formulas' engine instance.
1761
+ * Fired when a named expression is removed from the Formulas' engine instance.
1534
1762
  *
1535
1763
  * @since 9.0.0
1536
1764
  * @event Hooks#afterNamedExpressionRemoved
@@ -1539,7 +1767,7 @@ var REGISTERED_HOOKS = [
1539
1767
  */
1540
1768
  'afterNamedExpressionRemoved',
1541
1769
  /**
1542
- * Called when a new sheet is added to the Formulas' engine instance.
1770
+ * Fired when a new sheet is added to the Formulas' engine instance.
1543
1771
  *
1544
1772
  * @since 9.0.0
1545
1773
  * @event Hooks#afterSheetAdded
@@ -1547,7 +1775,7 @@ var REGISTERED_HOOKS = [
1547
1775
  */
1548
1776
  'afterSheetAdded',
1549
1777
  /**
1550
- * Called when a sheet in the Formulas' engine instance is renamed.
1778
+ * Fired when a sheet in the Formulas' engine instance is renamed.
1551
1779
  *
1552
1780
  * @since 9.0.0
1553
1781
  * @event Hooks#afterSheetRenamed
@@ -1556,7 +1784,7 @@ var REGISTERED_HOOKS = [
1556
1784
  */
1557
1785
  'afterSheetRenamed',
1558
1786
  /**
1559
- * Called when a sheet is removed from the Formulas' engine instance.
1787
+ * Fired when a sheet is removed from the Formulas' engine instance.
1560
1788
  *
1561
1789
  * @since 9.0.0
1562
1790
  * @event Hooks#afterSheetRemoved
@@ -2042,13 +2270,14 @@ var REGISTERED_HOOKS = [
2042
2270
  * @param {*} cellValue Value of the cell.
2043
2271
  */
2044
2272
  'modifyAutoColumnSizeSeed'];
2273
+
2045
2274
  /**
2046
2275
  * Template warning message for removed hooks.
2047
2276
  *
2048
2277
  * @type {string}
2049
2278
  */
2050
-
2051
2279
  var REMOVED_MESSAGE = toSingleLine(_templateObject || (_templateObject = _taggedTemplateLiteral(["The plugin hook \"[hookName]\" was removed in Handsontable [removedInVersion]. \n Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to \n learn about the migration path."], ["The plugin hook \"[hookName]\" was removed in Handsontable [removedInVersion].\\x20\n Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to\\x20\n learn about the migration path."])));
2280
+
2052
2281
  /**
2053
2282
  * The list of the hooks which are removed from the API. The warning message is printed out in
2054
2283
  * the developer console when the hook is used.
@@ -2058,10 +2287,9 @@ var REMOVED_MESSAGE = toSingleLine(_templateObject || (_templateObject = _tagged
2058
2287
  *
2059
2288
  * @type {Map<string, string>}
2060
2289
  */
2061
-
2062
2290
  var 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']]);
2063
- /* eslint-disable jsdoc/require-description-complete-sentence */
2064
2291
 
2292
+ /* eslint-disable jsdoc/require-description-complete-sentence */
2065
2293
  /**
2066
2294
  * The list of the hooks which are deprecated. The warning message is printed out in
2067
2295
  * the developer console when the hook is used.
@@ -2081,20 +2309,17 @@ var REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], ['u
2081
2309
  *
2082
2310
  * @type {Map<string, string>}
2083
2311
  */
2084
-
2085
2312
  /* eslint-enable jsdoc/require-description-complete-sentence */
2086
-
2087
2313
  var DEPRECATED_HOOKS = new Map([['beforeAutofillInsidePopulate', 'The plugin hook "beforeAutofillInsidePopulate" is deprecated and will be removed in the next major release.']]);
2088
-
2089
2314
  var Hooks = /*#__PURE__*/function () {
2090
2315
  /**
2091
2316
  *
2092
2317
  */
2093
2318
  function Hooks() {
2094
2319
  _classCallCheck(this, Hooks);
2095
-
2096
2320
  this.globalBucket = this.createEmptyBucket();
2097
2321
  }
2322
+
2098
2323
  /**
2099
2324
  * Returns a new object with empty handlers related to every registered hook name.
2100
2325
  *
@@ -2113,40 +2338,37 @@ var Hooks = /*#__PURE__*/function () {
2113
2338
  * }
2114
2339
  * ```
2115
2340
  */
2116
-
2117
-
2118
2341
  _createClass(Hooks, [{
2119
2342
  key: "createEmptyBucket",
2120
2343
  value: function createEmptyBucket() {
2121
- var bucket = Object.create(null); // eslint-disable-next-line no-return-assign
2344
+ var bucket = Object.create(null);
2122
2345
 
2346
+ // eslint-disable-next-line no-return-assign
2123
2347
  arrayEach(REGISTERED_HOOKS, function (hook) {
2124
2348
  return bucket[hook] = [];
2125
2349
  });
2126
2350
  return bucket;
2127
2351
  }
2352
+
2128
2353
  /**
2129
2354
  * Get hook bucket based on the context of the object or if argument is `undefined`, get the global hook bucket.
2130
2355
  *
2131
2356
  * @param {object} [context=null] A Handsontable instance.
2132
2357
  * @returns {object} Returns a global or Handsontable instance bucket.
2133
2358
  */
2134
-
2135
2359
  }, {
2136
2360
  key: "getBucket",
2137
2361
  value: function getBucket() {
2138
2362
  var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2139
-
2140
2363
  if (context) {
2141
2364
  if (!context.pluginHookBucket) {
2142
2365
  context.pluginHookBucket = this.createEmptyBucket();
2143
2366
  }
2144
-
2145
2367
  return context.pluginHookBucket;
2146
2368
  }
2147
-
2148
2369
  return this.globalBucket;
2149
2370
  }
2371
+
2150
2372
  /**
2151
2373
  * Adds a listener (globally or locally) to a specified hook name.
2152
2374
  * If the `context` parameter is provided, the hook will be added only to the instance it references.
@@ -2175,14 +2397,11 @@ var Hooks = /*#__PURE__*/function () {
2175
2397
  * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);
2176
2398
  * ```
2177
2399
  */
2178
-
2179
2400
  }, {
2180
2401
  key: "add",
2181
2402
  value: function add(key, callback) {
2182
2403
  var _this = this;
2183
-
2184
2404
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2185
-
2186
2405
  if (Array.isArray(callback)) {
2187
2406
  arrayEach(callback, function (c) {
2188
2407
  return _this.add(key, c, context);
@@ -2194,24 +2413,18 @@ var Hooks = /*#__PURE__*/function () {
2194
2413
  removedInVersion: REMOVED_HOOKS.get(key)
2195
2414
  }));
2196
2415
  }
2197
-
2198
2416
  if (DEPRECATED_HOOKS.has(key)) {
2199
2417
  warn(DEPRECATED_HOOKS.get(key));
2200
2418
  }
2201
-
2202
2419
  var bucket = this.getBucket(context);
2203
-
2204
2420
  if (typeof bucket[key] === 'undefined') {
2205
2421
  this.register(key);
2206
2422
  bucket[key] = [];
2207
2423
  }
2208
-
2209
2424
  callback.skip = false;
2210
-
2211
2425
  if (bucket[key].indexOf(callback) === -1) {
2212
2426
  // only add a hook if it has not already been added (adding the same hook twice is now silently ignored)
2213
2427
  var foundInitialHook = false;
2214
-
2215
2428
  if (callback.initialHook) {
2216
2429
  arrayEach(bucket[key], function (cb, i) {
2217
2430
  if (cb.initialHook) {
@@ -2221,15 +2434,14 @@ var Hooks = /*#__PURE__*/function () {
2221
2434
  }
2222
2435
  });
2223
2436
  }
2224
-
2225
2437
  if (!foundInitialHook) {
2226
2438
  bucket[key].push(callback);
2227
2439
  }
2228
2440
  }
2229
2441
  }
2230
-
2231
2442
  return this;
2232
2443
  }
2444
+
2233
2445
  /**
2234
2446
  * Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.
2235
2447
  *
@@ -2243,14 +2455,11 @@ var Hooks = /*#__PURE__*/function () {
2243
2455
  * Handsontable.hooks.once('beforeInit', myCallback, hotInstance);
2244
2456
  * ```
2245
2457
  */
2246
-
2247
2458
  }, {
2248
2459
  key: "once",
2249
2460
  value: function once(key, callback) {
2250
2461
  var _this2 = this;
2251
-
2252
2462
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2253
-
2254
2463
  if (Array.isArray(callback)) {
2255
2464
  arrayEach(callback, function (c) {
2256
2465
  return _this2.once(key, c, context);
@@ -2260,6 +2469,7 @@ var Hooks = /*#__PURE__*/function () {
2260
2469
  this.add(key, callback, context);
2261
2470
  }
2262
2471
  }
2472
+
2263
2473
  /**
2264
2474
  * 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.
2265
2475
  *
@@ -2274,22 +2484,20 @@ var Hooks = /*#__PURE__*/function () {
2274
2484
  * Handsontable.hooks.remove('beforeInit', myCallback);
2275
2485
  * ```
2276
2486
  */
2277
-
2278
2487
  }, {
2279
2488
  key: "remove",
2280
2489
  value: function remove(key, callback) {
2281
2490
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2282
2491
  var bucket = this.getBucket(context);
2283
-
2284
2492
  if (typeof bucket[key] !== 'undefined') {
2285
2493
  if (bucket[key].indexOf(callback) >= 0) {
2286
2494
  callback.skip = true;
2287
2495
  return true;
2288
2496
  }
2289
2497
  }
2290
-
2291
2498
  return false;
2292
2499
  }
2500
+
2293
2501
  /**
2294
2502
  * Checks whether there are any registered listeners for the provided hook name.
2295
2503
  * If the `context` parameter is provided, it only checks for listeners assigned to the given Handsontable instance.
@@ -2298,7 +2506,6 @@ var Hooks = /*#__PURE__*/function () {
2298
2506
  * @param {object} [context=null] A Handsontable instance.
2299
2507
  * @returns {boolean} `true` for success, `false` otherwise.
2300
2508
  */
2301
-
2302
2509
  }, {
2303
2510
  key: "has",
2304
2511
  value: function has(key) {
@@ -2306,6 +2513,7 @@ var Hooks = /*#__PURE__*/function () {
2306
2513
  var bucket = this.getBucket(context);
2307
2514
  return !!(bucket[key] !== void 0 && bucket[key].length);
2308
2515
  }
2516
+
2309
2517
  /**
2310
2518
  * Runs all local and global callbacks assigned to the hook identified by the `key` parameter.
2311
2519
  * It returns either a return value from the last called callback or the first parameter (`p1`) passed to the `run` function.
@@ -2326,7 +2534,6 @@ var Hooks = /*#__PURE__*/function () {
2326
2534
  * Handsontable.hooks.run(hot, 'beforeInit');
2327
2535
  * ```
2328
2536
  */
2329
-
2330
2537
  }, {
2331
2538
  key: "run",
2332
2539
  value: function run(context, key, p1, p2, p3, p4, p5, p6) {
@@ -2334,66 +2541,53 @@ var Hooks = /*#__PURE__*/function () {
2334
2541
  var globalHandlers = this.globalBucket[key];
2335
2542
  var length = globalHandlers ? globalHandlers.length : 0;
2336
2543
  var index = 0;
2337
-
2338
2544
  if (length) {
2339
2545
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2340
2546
  while (index < length) {
2341
2547
  if (!globalHandlers[index] || globalHandlers[index].skip) {
2342
2548
  index += 1;
2343
2549
  /* eslint-disable no-continue */
2344
-
2345
2550
  continue;
2346
2551
  }
2347
-
2348
2552
  var res = fastCall(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);
2349
-
2350
2553
  if (res !== void 0) {
2351
2554
  // eslint-disable-next-line no-param-reassign
2352
2555
  p1 = res;
2353
2556
  }
2354
-
2355
2557
  if (globalHandlers[index] && globalHandlers[index].runOnce) {
2356
2558
  this.remove(key, globalHandlers[index]);
2357
2559
  }
2358
-
2359
2560
  index += 1;
2360
2561
  }
2361
2562
  }
2362
2563
  }
2363
2564
  {
2364
2565
  var localHandlers = this.getBucket(context)[key];
2365
-
2366
2566
  var _length = localHandlers ? localHandlers.length : 0;
2367
-
2368
2567
  var _index = 0;
2369
-
2370
2568
  if (_length) {
2371
2569
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2372
2570
  while (_index < _length) {
2373
2571
  if (!localHandlers[_index] || localHandlers[_index].skip) {
2374
2572
  _index += 1;
2375
2573
  /* eslint-disable no-continue */
2376
-
2377
2574
  continue;
2378
2575
  }
2379
-
2380
2576
  var _res = fastCall(localHandlers[_index], context, p1, p2, p3, p4, p5, p6);
2381
-
2382
2577
  if (_res !== void 0) {
2383
2578
  // eslint-disable-next-line no-param-reassign
2384
2579
  p1 = _res;
2385
2580
  }
2386
-
2387
2581
  if (localHandlers[_index] && localHandlers[_index].runOnce) {
2388
2582
  this.remove(key, localHandlers[_index], context);
2389
2583
  }
2390
-
2391
2584
  _index += 1;
2392
2585
  }
2393
2586
  }
2394
2587
  }
2395
2588
  return p1;
2396
2589
  }
2590
+
2397
2591
  /**
2398
2592
  * Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.
2399
2593
  *
@@ -2407,7 +2601,6 @@ var Hooks = /*#__PURE__*/function () {
2407
2601
  * Handsontable.hooks.destroy(hotInstance);
2408
2602
  * ```
2409
2603
  */
2410
-
2411
2604
  }, {
2412
2605
  key: "destroy",
2413
2606
  value: function destroy() {
@@ -2417,6 +2610,7 @@ var Hooks = /*#__PURE__*/function () {
2417
2610
  return bucket[key].length = 0;
2418
2611
  });
2419
2612
  }
2613
+
2420
2614
  /**
2421
2615
  * Registers a hook name (adds it to the list of the known hook names). Used by plugins.
2422
2616
  * It is not necessary to call register, but if you use it, your plugin hook will be used returned by
@@ -2429,7 +2623,6 @@ var Hooks = /*#__PURE__*/function () {
2429
2623
  * Handsontable.hooks.register('myHook');
2430
2624
  * ```
2431
2625
  */
2432
-
2433
2626
  }, {
2434
2627
  key: "register",
2435
2628
  value: function register(key) {
@@ -2437,6 +2630,7 @@ var Hooks = /*#__PURE__*/function () {
2437
2630
  REGISTERED_HOOKS.push(key);
2438
2631
  }
2439
2632
  }
2633
+
2440
2634
  /**
2441
2635
  * Deregisters a hook name (removes it from the list of known hook names).
2442
2636
  *
@@ -2447,7 +2641,6 @@ var Hooks = /*#__PURE__*/function () {
2447
2641
  * Handsontable.hooks.deregister('myHook');
2448
2642
  * ```
2449
2643
  */
2450
-
2451
2644
  }, {
2452
2645
  key: "deregister",
2453
2646
  value: function deregister(key) {
@@ -2455,6 +2648,7 @@ var Hooks = /*#__PURE__*/function () {
2455
2648
  REGISTERED_HOOKS.splice(REGISTERED_HOOKS.indexOf(key), 1);
2456
2649
  }
2457
2650
  }
2651
+
2458
2652
  /**
2459
2653
  * Returns a boolean value depending on if a hook by such name has been removed or deprecated.
2460
2654
  *
@@ -2469,12 +2663,12 @@ var Hooks = /*#__PURE__*/function () {
2469
2663
  * true
2470
2664
  * ```
2471
2665
  */
2472
-
2473
2666
  }, {
2474
2667
  key: "isDeprecated",
2475
2668
  value: function isDeprecated(hookName) {
2476
2669
  return DEPRECATED_HOOKS.has(hookName) || REMOVED_HOOKS.has(hookName);
2477
2670
  }
2671
+
2478
2672
  /**
2479
2673
  * Returns a boolean depending on if a hook by such name has been registered.
2480
2674
  *
@@ -2488,12 +2682,12 @@ var Hooks = /*#__PURE__*/function () {
2488
2682
  * true
2489
2683
  * ```
2490
2684
  */
2491
-
2492
2685
  }, {
2493
2686
  key: "isRegistered",
2494
2687
  value: function isRegistered(hookName) {
2495
2688
  return REGISTERED_HOOKS.indexOf(hookName) >= 0;
2496
2689
  }
2690
+
2497
2691
  /**
2498
2692
  * Returns an array of registered hooks.
2499
2693
  *
@@ -2515,7 +2709,6 @@ var Hooks = /*#__PURE__*/function () {
2515
2709
  * ]
2516
2710
  * ```
2517
2711
  */
2518
-
2519
2712
  }, {
2520
2713
  key: "getRegistered",
2521
2714
  value: function getRegistered() {
@@ -2527,17 +2720,14 @@ var Hooks = /*#__PURE__*/function () {
2527
2720
  return getGlobalSingleton();
2528
2721
  }
2529
2722
  }]);
2530
-
2531
2723
  return Hooks;
2532
2724
  }();
2533
-
2534
2725
  var globalSingleton = new Hooks();
2726
+
2535
2727
  /**
2536
2728
  * @returns {Hooks}
2537
2729
  */
2538
-
2539
2730
  function getGlobalSingleton() {
2540
2731
  return globalSingleton;
2541
2732
  }
2542
-
2543
2733
  export default Hooks;