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.js CHANGED
@@ -1,54 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.array.slice.js");
4
-
5
4
  require("core-js/modules/es.object.freeze.js");
6
-
7
5
  exports.__esModule = true;
8
6
  exports.default = void 0;
9
-
10
7
  require("core-js/modules/es.array.iterator.js");
11
-
12
8
  require("core-js/modules/es.map.js");
13
-
14
9
  require("core-js/modules/es.object.to-string.js");
15
-
16
10
  require("core-js/modules/es.string.iterator.js");
17
-
18
11
  require("core-js/modules/web.dom-collections.iterator.js");
19
-
20
12
  require("core-js/modules/es.array.index-of.js");
21
-
22
13
  require("core-js/modules/es.array.splice.js");
23
-
24
14
  var _array = require("./helpers/array");
25
-
26
15
  var _object = require("./helpers/object");
27
-
28
16
  var _string = require("./helpers/string");
29
-
30
17
  var _console = require("./helpers/console");
31
-
32
18
  var _templateLiteralTag = require("./helpers/templateLiteralTag");
33
-
34
19
  var _function = require("./helpers/function");
35
-
36
20
  var _templateObject;
37
-
38
21
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39
-
40
22
  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); } }
41
-
42
23
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
43
-
44
24
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
45
-
46
25
  /**
47
26
  * @description
48
27
  * Handsontable events are the common interface that function in 2 ways: as __callbacks__ and as __hooks__.
49
28
  *
50
29
  * @example
51
30
  *
31
+ * ::: only-for javascript
52
32
  * ```js
53
33
  * // Using events as callbacks:
54
34
  * ...
@@ -62,7 +42,25 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
62
42
  * });
63
43
  * ...
64
44
  * ```
45
+ * :::
46
+ *
47
+ * ::: only-for react
48
+ * ```jsx
49
+ * <HotTable
50
+ * afterChange={(changes, source) => {
51
+ * fetch('save.php', {
52
+ * method: 'POST',
53
+ * headers: {
54
+ * 'Accept': 'application/json',
55
+ * 'Content-Type': 'application/json'
56
+ * },
57
+ * body: JSON.stringify(changes)
58
+ * });
59
+ * }}
60
+ * />
61
+ * :::
65
62
  *
63
+ * ::: only-for javascript
66
64
  * ```js
67
65
  * // Using events as plugin hooks:
68
66
  * ...
@@ -87,12 +85,47 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
87
85
  * // function body - will only run in #example2
88
86
  * });
89
87
  * ```
88
+ * :::
89
+ *
90
+ * ::: only-for react
91
+ * ```jsx
92
+ * const hotRef1 = useRef(null);
93
+ * const hotRef2 = useRef(null);
94
+ *
95
+ * // Using events as plugin hooks:
96
+ * ...
97
+ *
98
+ * <HotTable
99
+ * ref={hotRef1}
100
+ * myPlugin={true}
101
+ * });
102
+ *
103
+ * <HotTable
104
+ * ref={hotRef2}
105
+ * myPlugin={false}
106
+ * });
107
+ *
108
+ * ...
109
+ *
110
+ * const hot2 = hotRef2.current.hotInstance;
111
+ * // local hook (has same effect as a callback)
112
+ * hot2.addHook('afterChange', function() {
113
+ * // function body - will only run in #example2
114
+ * });
115
+ *
116
+ * // global hook
117
+ * Handsontable.hooks.add('afterChange', function() {
118
+ * // Fired twice - for hot1 and hot2
119
+ * if (this.getSettings().myPlugin) {
120
+ * // function body - will only run for first instance
121
+ * }
122
+ * });
123
+ * :::
90
124
  * ...
91
125
  */
92
- // @TODO: Move plugin description hooks to plugin?
93
- var REGISTERED_HOOKS = [
94
- /* eslint-disable jsdoc/require-description-complete-sentence */
95
126
 
127
+ // @TODO: Move plugin description hooks to plugin?
128
+ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sentence */
96
129
  /**
97
130
  * Fired after resetting a cell's meta. This happens when the {@link Core#updateSettings} method is called.
98
131
  *
@@ -106,18 +139,32 @@ var REGISTERED_HOOKS = [
106
139
  * __Note:__ For performance reasons, the `changes` array is null for `"loadData"` source.
107
140
  *
108
141
  * @event Hooks#afterChange
109
- * @param {Array} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`.
142
+ * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
110
143
  * @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)).
111
144
  * @example
145
+ * ::: only-for javascript
112
146
  * ```js
113
147
  * new Handsontable(element, {
114
148
  * afterChange: (changes) => {
115
- * changes.forEach(([row, prop, oldValue, newValue]) => {
149
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
116
150
  * // Some logic...
117
151
  * });
118
152
  * }
119
153
  * })
120
154
  * ```
155
+ * :::
156
+ *
157
+ * ::: only-for react
158
+ * ```jsx
159
+ * <HotTable
160
+ * afterChange={(changes, source) => {
161
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
162
+ * // Some logic...
163
+ * });
164
+ * }}
165
+ * />
166
+ * ```
167
+ * :::
121
168
  */
122
169
  'afterChange',
123
170
  /**
@@ -200,6 +247,7 @@ var REGISTERED_HOOKS = [
200
247
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
201
248
  * @returns {*} If `false` then creating columns is cancelled.
202
249
  * @example
250
+ * ::: only-for javascript
203
251
  * ```js
204
252
  * // Return `false` to cancel column inserting.
205
253
  * new Handsontable(element, {
@@ -208,6 +256,18 @@ var REGISTERED_HOOKS = [
208
256
  * }
209
257
  * });
210
258
  * ```
259
+ * :::
260
+ *
261
+ * ::: only-for react
262
+ * ```jsx
263
+ * // Return `false` to cancel column inserting.
264
+ * <HotTable
265
+ * beforeCreateCol={(data, coords) => {
266
+ * return false;
267
+ * }}
268
+ * />
269
+ * ```
270
+ * :::
211
271
  */
212
272
  'beforeCreateCol',
213
273
  /**
@@ -242,7 +302,7 @@ var REGISTERED_HOOKS = [
242
302
  */
243
303
  'afterCreateRow',
244
304
  /**
245
- * Fired after the current cell is deselected.
305
+ * Fired after all selected cells are deselected.
246
306
  *
247
307
  * @event Hooks#afterDeselect
248
308
  */
@@ -292,9 +352,13 @@ var REGISTERED_HOOKS = [
292
352
  /**
293
353
  * Fired after retrieving information about a column header and appending it to the table header.
294
354
  *
355
+ * Since the 12.2 the hook is triggered with the 3rd `headerLevel` argument.
356
+ *
295
357
  * @event Hooks#afterGetColHeader
296
358
  * @param {number} column Visual column index.
297
359
  * @param {HTMLTableCellElement} TH Header's TH element.
360
+ * @param {number} [headerLevel=0] The index of header level counting from the top (positive
361
+ * values counting from 0 to N).
298
362
  */
299
363
  'afterGetColHeader',
300
364
  /**
@@ -494,6 +558,7 @@ var REGISTERED_HOOKS = [
494
558
  * @param {object} preventScrolling Object with `value` property where its value change will be observed.
495
559
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
496
560
  * @example
561
+ * ::: only-for javascript
497
562
  * ```js
498
563
  * new Handsontable(element, {
499
564
  * afterSelection: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
@@ -505,6 +570,21 @@ var REGISTERED_HOOKS = [
505
570
  * }
506
571
  * })
507
572
  * ```
573
+ * :::
574
+ *
575
+ * ::: only-for react
576
+ * ```jsx
577
+ * <HotTable
578
+ * afterSelection={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
579
+ * // If set to `false` (default): when cell selection is outside the viewport,
580
+ * // Handsontable scrolls the viewport to cell selection's end corner.
581
+ * // If set to `true`: when cell selection is outside the viewport,
582
+ * // Handsontable doesn't scroll to cell selection's end corner.
583
+ * preventScrolling.value = true;
584
+ * }}
585
+ * />
586
+ * ```
587
+ * :::
508
588
  */
509
589
  'afterSelection',
510
590
  /**
@@ -521,6 +601,7 @@ var REGISTERED_HOOKS = [
521
601
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
522
602
  * @example
523
603
  * ```js
604
+ * ::: only-for javascript
524
605
  * new Handsontable(element, {
525
606
  * afterSelectionByProp: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
526
607
  * // setting if prevent scrolling after selection
@@ -528,6 +609,18 @@ var REGISTERED_HOOKS = [
528
609
  * }
529
610
  * })
530
611
  * ```
612
+ * :::
613
+ *
614
+ * ::: only-for react
615
+ * ```jsx
616
+ * <HotTable
617
+ * afterSelectionByProp={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
618
+ * // setting if prevent scrolling after selection
619
+ * preventScrolling.value = true;
620
+ * }}
621
+ * />
622
+ * ```
623
+ * :::
531
624
  */
532
625
  'afterSelectionByProp',
533
626
  /**
@@ -623,7 +716,7 @@ var REGISTERED_HOOKS = [
623
716
  * @param {string|number} prop Property name / visual column index.
624
717
  * @param {string} [source] String that identifies source of hook call
625
718
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
626
- * @returns {void | boolean} If `false` the cell will be marked as invalid, `true` otherwise.
719
+ * @returns {undefined | boolean} If `false` the cell will be marked as invalid, `true` otherwise.
627
720
  */
628
721
  'afterValidate',
629
722
  /**
@@ -689,31 +782,39 @@ var REGISTERED_HOOKS = [
689
782
  */
690
783
  'beforeCellAlignment',
691
784
  /**
692
- * Fired before one or more cells is changed. Its main purpose is to alter changes silently after input and before
693
- * table rendering.
785
+ * Fired before one or more cells are changed.
786
+ *
787
+ * Use this hook to silently alter the user's changes before Handsontable re-renders.
788
+ *
789
+ * To ignore the user's changes, use a nullified array or return `false`.
694
790
  *
695
791
  * @event Hooks#beforeChange
696
- * @param {Array[]} changes 2D array containing information about each of the edited cells.
792
+ * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
697
793
  * @param {string} [source] String that identifies source of hook call
698
794
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
699
- * @returns {void | boolean} If `false` all changes were cancelled, `true` otherwise.
795
+ * @returns {undefined | boolean} If `false` all changes were cancelled, `true` otherwise.
700
796
  * @example
797
+ * ::: only-for javascript
701
798
  * ```js
702
- * // To disregard a single change, set changes[i] to null or remove it from array using changes.splice(i, 1).
799
+ * // to alter a single change, overwrite the value with `changes[i][3]`
703
800
  * new Handsontable(element, {
704
801
  * beforeChange: (changes, source) => {
705
802
  * // [[row, prop, oldVal, newVal], ...]
706
- * changes[0] = null;
803
+ * changes[0][3] = 10;
707
804
  * }
708
805
  * });
709
- * // To alter a single change, overwrite the desired value to changes[i][3].
806
+ *
807
+ * // to ignore a single change, set `changes[i]` to `null`
808
+ * // or remove `changes[i]` from the array, by using `changes.splice(i, 1)`
710
809
  * new Handsontable(element, {
711
810
  * beforeChange: (changes, source) => {
712
811
  * // [[row, prop, oldVal, newVal], ...]
713
- * changes[0][3] = 10;
812
+ * changes[0] = null;
714
813
  * }
715
814
  * });
716
- * // To cancel all edit, return false from the callback or set array length to 0 (changes.length = 0).
815
+ *
816
+ * // to ignore all changes, return `false`
817
+ * // or set the array's length to 0, by using `changes.length = 0`
717
818
  * new Handsontable(element, {
718
819
  * beforeChange: (changes, source) => {
719
820
  * // [[row, prop, oldVal, newVal], ...]
@@ -721,6 +822,37 @@ var REGISTERED_HOOKS = [
721
822
  * }
722
823
  * });
723
824
  * ```
825
+ * :::
826
+ *
827
+ * ::: only-for react
828
+ * ```jsx
829
+ * // to alter a single change, overwrite the desired value with `changes[i][3]`
830
+ * <HotTable
831
+ * beforeChange={(changes, source) => {
832
+ * // [[row, prop, oldVal, newVal], ...]
833
+ * changes[0][3] = 10;
834
+ * }}
835
+ * />
836
+ *
837
+ * // to ignore a single change, set `changes[i]` to `null`
838
+ * // or remove `changes[i]` from the array, by using changes.splice(i, 1).
839
+ * <HotTable
840
+ * beforeChange={(changes, source) => {
841
+ * // [[row, prop, oldVal, newVal], ...]
842
+ * changes[0] = null;
843
+ * }}
844
+ * />
845
+ *
846
+ * // to ignore all changes, return `false`
847
+ * // or set the array's length to 0 (`changes.length = 0`)
848
+ * <HotTable
849
+ * beforeChange={(changes, source) => {
850
+ * // [[row, prop, oldVal, newVal], ...]
851
+ * return false;
852
+ * }}
853
+ * />
854
+ * ```
855
+ * :::
724
856
  */
725
857
  'beforeChange',
726
858
  /**
@@ -946,7 +1078,7 @@ var REGISTERED_HOOKS = [
946
1078
  * @param {number} column Visual column index.
947
1079
  * @param {string} key The updated meta key.
948
1080
  * @param {*} value The updated meta value.
949
- * @returns {*|boolean} If false is returned the action is canceled.
1081
+ * @returns {boolean|undefined} If false is returned the action is canceled.
950
1082
  */
951
1083
  'beforeSetCellMeta',
952
1084
  /**
@@ -1080,6 +1212,7 @@ var REGISTERED_HOOKS = [
1080
1212
  * @param {boolean} topmost If set to `true`, it returns the TD element from the topmost overlay. For example,
1081
1213
  * if the wanted cell is in the range of fixed rows, it will return a TD element
1082
1214
  * from the `top` overlay.
1215
+ * @returns {undefined|number[]}
1083
1216
  */
1084
1217
  'modifyGetCellCoords',
1085
1218
  /**
@@ -1111,8 +1244,9 @@ var REGISTERED_HOOKS = [
1111
1244
  */
1112
1245
  'beforeHighlightingColumnHeader',
1113
1246
  /**
1114
- * Fired by {@link PersistentState} plugin, after loading value, saved under given key, from browser local storage. This hook is fired when
1115
- * {@link Options#persistentState} option is enabled.
1247
+ * Fired by {@link PersistentState} plugin, after loading value, saved under given key, from browser local storage.
1248
+ *
1249
+ * The `persistentStateLoad` hook is fired even when the {@link Options#persistentState} option is disabled.
1116
1250
  *
1117
1251
  * @event Hooks#persistentStateLoad
1118
1252
  * @param {string} key Key.
@@ -1128,8 +1262,9 @@ var REGISTERED_HOOKS = [
1128
1262
  */
1129
1263
  'persistentStateReset',
1130
1264
  /**
1131
- * Fired by {@link PersistentState} plugin, after saving value under given key in browser local storage. This hook is fired when
1132
- * {@link Options#persistentState} option is enabled.
1265
+ * Fired by {@link PersistentState} plugin, after saving value under given key in browser local storage.
1266
+ *
1267
+ * The `persistentStateSave` hook is fired even when the {@link Options#persistentState} option is disabled.
1133
1268
  *
1134
1269
  * @event Hooks#persistentStateSave
1135
1270
  * @param {string} key Key.
@@ -1145,7 +1280,7 @@ var REGISTERED_HOOKS = [
1145
1280
  * @event Hooks#beforeColumnSort
1146
1281
  * @param {Array} currentSortConfig Current sort configuration (for all sorted columns).
1147
1282
  * @param {Array} destinationSortConfigs Destination sort configuration (for all sorted columns).
1148
- * @returns {boolean | void} If `false` the column will not be sorted, `true` otherwise.
1283
+ * @returns {boolean | undefined} If `false` the column will not be sorted, `true` otherwise.
1149
1284
  */
1150
1285
  'beforeColumnSort',
1151
1286
  /**
@@ -1183,6 +1318,7 @@ var REGISTERED_HOOKS = [
1183
1318
  * which will be cut out.
1184
1319
  * @returns {*} If returns `false` then operation of the cutting out is canceled.
1185
1320
  * @example
1321
+ * ::: only-for javascript
1186
1322
  * ```js
1187
1323
  * // To disregard a single row, remove it from the array using data.splice(i, 1).
1188
1324
  * new Handsontable(element, {
@@ -1200,6 +1336,27 @@ var REGISTERED_HOOKS = [
1200
1336
  * }
1201
1337
  * });
1202
1338
  * ```
1339
+ * :::
1340
+ *
1341
+ * ::: only-for react
1342
+ * ```jsx
1343
+ * // To disregard a single row, remove it from the array using data.splice(i, 1).
1344
+ * <HotTable
1345
+ * beforeCut={(data, coords) => {
1346
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1347
+ * data.splice(0, 1);
1348
+ * // data -> [[4, 5, 6]]
1349
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1350
+ * }}
1351
+ * />
1352
+ * // To cancel a cutting action, just return `false`.
1353
+ * <HotTable
1354
+ * beforeCut={(data, coords) => {
1355
+ * return false;
1356
+ * }}
1357
+ * />
1358
+ * ```
1359
+ * :::
1203
1360
  */
1204
1361
  'beforeCut',
1205
1362
  /**
@@ -1222,6 +1379,7 @@ var REGISTERED_HOOKS = [
1222
1379
  * @returns {*} If returns `false` then copying is canceled.
1223
1380
  *
1224
1381
  * @example
1382
+ * ::: only-for javascript
1225
1383
  * ```js
1226
1384
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1227
1385
  * ...
@@ -1244,6 +1402,32 @@ var REGISTERED_HOOKS = [
1244
1402
  * });
1245
1403
  * ...
1246
1404
  * ```
1405
+ * :::
1406
+ *
1407
+ * ::: only-for react
1408
+ * ```jsx
1409
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1410
+ * ...
1411
+ * <HotTable
1412
+ * beforeCopy={(data, coords) => {
1413
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1414
+ * data.splice(0, 1);
1415
+ * // data -> [[4, 5, 6]]
1416
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1417
+ * }}
1418
+ * />
1419
+ * ...
1420
+ *
1421
+ * // To cancel copying, return false from the callback.
1422
+ * ...
1423
+ * <HotTable
1424
+ * beforeCopy={(data, coords) => {
1425
+ * return false;
1426
+ * }}
1427
+ * />
1428
+ * ...
1429
+ * ```
1430
+ * :::
1247
1431
  */
1248
1432
  'beforeCopy',
1249
1433
  /**
@@ -1267,6 +1451,7 @@ var REGISTERED_HOOKS = [
1267
1451
  * @returns {*} If returns `false` then pasting is canceled.
1268
1452
  * @example
1269
1453
  * ```js
1454
+ * ::: only-for javascript
1270
1455
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1271
1456
  * new Handsontable(example, {
1272
1457
  * beforePaste: (data, coords) => {
@@ -1283,6 +1468,27 @@ var REGISTERED_HOOKS = [
1283
1468
  * }
1284
1469
  * });
1285
1470
  * ```
1471
+ * :::
1472
+ *
1473
+ * ::: only-for react
1474
+ * ```jsx
1475
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1476
+ * <HotTable
1477
+ * beforePaste={(data, coords) => {
1478
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1479
+ * data.splice(0, 1);
1480
+ * // data -> [[4, 5, 6]]
1481
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1482
+ * }}
1483
+ * />
1484
+ * // To cancel pasting, return false from the callback.
1485
+ * <HotTable
1486
+ * beforePaste={(data, coords) => {
1487
+ * return false;
1488
+ * }}
1489
+ * />
1490
+ * ```
1491
+ * :::
1286
1492
  */
1287
1493
  'beforePaste',
1288
1494
  /**
@@ -1330,7 +1536,7 @@ var REGISTERED_HOOKS = [
1330
1536
  * [documentation](@/guides/columns/column-moving.md).
1331
1537
  * It's `undefined` when `dragColumns` function wasn't called.
1332
1538
  * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.
1333
- * @returns {void | boolean} If `false` the column will not be moved, `true` otherwise.
1539
+ * @returns {undefined | boolean} If `false` the column will not be moved, `true` otherwise.
1334
1540
  */
1335
1541
  'beforeColumnMove',
1336
1542
  /**
@@ -1438,7 +1644,7 @@ var REGISTERED_HOOKS = [
1438
1644
  * @param {number} newSize Calculated new row height.
1439
1645
  * @param {number} row Visual index of the resized row.
1440
1646
  * @param {boolean} isDoubleClick Flag that determines whether there was a double-click.
1441
- * @returns {number} Returns the new row size or `undefined` if row size should be calculated automatically.
1647
+ * @returns {number|undefined} Returns the new row size or `undefined` if row size should be calculated automatically.
1442
1648
  */
1443
1649
  'beforeRowResize',
1444
1650
  /**
@@ -1471,7 +1677,7 @@ var REGISTERED_HOOKS = [
1471
1677
  * @event Hooks#beforeStretchingColumnWidth
1472
1678
  * @param {number} stretchedWidth Calculated width.
1473
1679
  * @param {number} column Visual column index.
1474
- * @returns {number} Returns new width which will be applied to the column element.
1680
+ * @returns {number|undefined} Returns new width which will be applied to the column element.
1475
1681
  */
1476
1682
  'beforeStretchingColumnWidth',
1477
1683
  /**
@@ -1530,15 +1736,25 @@ var REGISTERED_HOOKS = [
1530
1736
  */
1531
1737
  'afterFilter',
1532
1738
  /**
1533
- * Called when a value is updated in the engine.
1739
+ * Fired by the {@link Formulas} plugin, when any cell value changes.
1740
+ *
1741
+ * Returns an array of objects that contains:
1742
+ * - The addresses (`sheet`, `row`, `col`) and new values (`newValue`) of the changed cells.
1743
+ * - The addresses and new values of any cells that had to be recalculated (because their formulas depend on the cells that changed).
1744
+ *
1745
+ * This hook gets also fired on Handsontable's initialization, returning the addresses and values of all cells.
1746
+ *
1747
+ * Read more:
1748
+ * - [Guides: Formula calculation](@/guides/formulas/formula-calculation.md)
1749
+ * - [HyperFormula documentation: `valuesUpdated`](https://hyperformula.handsontable.com/api/interfaces/listeners.html#valuesupdated)
1534
1750
  *
1535
1751
  * @since 9.0.0
1536
1752
  * @event Hooks#afterFormulasValuesUpdate
1537
- * @param {Array} changes The values and location of applied changes.
1753
+ * @param {Array} changes The addresses and new values of all the changed and recalculated cells.
1538
1754
  */
1539
1755
  'afterFormulasValuesUpdate',
1540
1756
  /**
1541
- * Called when a named expression is added to the Formulas' engine instance.
1757
+ * Fired when a named expression is added to the Formulas' engine instance.
1542
1758
  *
1543
1759
  * @since 9.0.0
1544
1760
  * @event Hooks#afterNamedExpressionAdded
@@ -1547,7 +1763,7 @@ var REGISTERED_HOOKS = [
1547
1763
  */
1548
1764
  'afterNamedExpressionAdded',
1549
1765
  /**
1550
- * Called when a named expression is removed from the Formulas' engine instance.
1766
+ * Fired when a named expression is removed from the Formulas' engine instance.
1551
1767
  *
1552
1768
  * @since 9.0.0
1553
1769
  * @event Hooks#afterNamedExpressionRemoved
@@ -1556,7 +1772,7 @@ var REGISTERED_HOOKS = [
1556
1772
  */
1557
1773
  'afterNamedExpressionRemoved',
1558
1774
  /**
1559
- * Called when a new sheet is added to the Formulas' engine instance.
1775
+ * Fired when a new sheet is added to the Formulas' engine instance.
1560
1776
  *
1561
1777
  * @since 9.0.0
1562
1778
  * @event Hooks#afterSheetAdded
@@ -1564,7 +1780,7 @@ var REGISTERED_HOOKS = [
1564
1780
  */
1565
1781
  'afterSheetAdded',
1566
1782
  /**
1567
- * Called when a sheet in the Formulas' engine instance is renamed.
1783
+ * Fired when a sheet in the Formulas' engine instance is renamed.
1568
1784
  *
1569
1785
  * @since 9.0.0
1570
1786
  * @event Hooks#afterSheetRenamed
@@ -1573,7 +1789,7 @@ var REGISTERED_HOOKS = [
1573
1789
  */
1574
1790
  'afterSheetRenamed',
1575
1791
  /**
1576
- * Called when a sheet is removed from the Formulas' engine instance.
1792
+ * Fired when a sheet is removed from the Formulas' engine instance.
1577
1793
  *
1578
1794
  * @since 9.0.0
1579
1795
  * @event Hooks#afterSheetRemoved
@@ -2059,13 +2275,14 @@ var REGISTERED_HOOKS = [
2059
2275
  * @param {*} cellValue Value of the cell.
2060
2276
  */
2061
2277
  'modifyAutoColumnSizeSeed'];
2278
+
2062
2279
  /**
2063
2280
  * Template warning message for removed hooks.
2064
2281
  *
2065
2282
  * @type {string}
2066
2283
  */
2067
-
2068
2284
  var REMOVED_MESSAGE = (0, _templateLiteralTag.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."])));
2285
+
2069
2286
  /**
2070
2287
  * The list of the hooks which are removed from the API. The warning message is printed out in
2071
2288
  * the developer console when the hook is used.
@@ -2075,10 +2292,9 @@ var REMOVED_MESSAGE = (0, _templateLiteralTag.toSingleLine)(_templateObject || (
2075
2292
  *
2076
2293
  * @type {Map<string, string>}
2077
2294
  */
2078
-
2079
2295
  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']]);
2080
- /* eslint-disable jsdoc/require-description-complete-sentence */
2081
2296
 
2297
+ /* eslint-disable jsdoc/require-description-complete-sentence */
2082
2298
  /**
2083
2299
  * The list of the hooks which are deprecated. The warning message is printed out in
2084
2300
  * the developer console when the hook is used.
@@ -2098,20 +2314,17 @@ var REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], ['u
2098
2314
  *
2099
2315
  * @type {Map<string, string>}
2100
2316
  */
2101
-
2102
2317
  /* eslint-enable jsdoc/require-description-complete-sentence */
2103
-
2104
2318
  var DEPRECATED_HOOKS = new Map([['beforeAutofillInsidePopulate', 'The plugin hook "beforeAutofillInsidePopulate" is deprecated and will be removed in the next major release.']]);
2105
-
2106
2319
  var Hooks = /*#__PURE__*/function () {
2107
2320
  /**
2108
2321
  *
2109
2322
  */
2110
2323
  function Hooks() {
2111
2324
  _classCallCheck(this, Hooks);
2112
-
2113
2325
  this.globalBucket = this.createEmptyBucket();
2114
2326
  }
2327
+
2115
2328
  /**
2116
2329
  * Returns a new object with empty handlers related to every registered hook name.
2117
2330
  *
@@ -2130,40 +2343,37 @@ var Hooks = /*#__PURE__*/function () {
2130
2343
  * }
2131
2344
  * ```
2132
2345
  */
2133
-
2134
-
2135
2346
  _createClass(Hooks, [{
2136
2347
  key: "createEmptyBucket",
2137
2348
  value: function createEmptyBucket() {
2138
- var bucket = Object.create(null); // eslint-disable-next-line no-return-assign
2349
+ var bucket = Object.create(null);
2139
2350
 
2351
+ // eslint-disable-next-line no-return-assign
2140
2352
  (0, _array.arrayEach)(REGISTERED_HOOKS, function (hook) {
2141
2353
  return bucket[hook] = [];
2142
2354
  });
2143
2355
  return bucket;
2144
2356
  }
2357
+
2145
2358
  /**
2146
2359
  * Get hook bucket based on the context of the object or if argument is `undefined`, get the global hook bucket.
2147
2360
  *
2148
2361
  * @param {object} [context=null] A Handsontable instance.
2149
2362
  * @returns {object} Returns a global or Handsontable instance bucket.
2150
2363
  */
2151
-
2152
2364
  }, {
2153
2365
  key: "getBucket",
2154
2366
  value: function getBucket() {
2155
2367
  var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2156
-
2157
2368
  if (context) {
2158
2369
  if (!context.pluginHookBucket) {
2159
2370
  context.pluginHookBucket = this.createEmptyBucket();
2160
2371
  }
2161
-
2162
2372
  return context.pluginHookBucket;
2163
2373
  }
2164
-
2165
2374
  return this.globalBucket;
2166
2375
  }
2376
+
2167
2377
  /**
2168
2378
  * Adds a listener (globally or locally) to a specified hook name.
2169
2379
  * If the `context` parameter is provided, the hook will be added only to the instance it references.
@@ -2192,14 +2402,11 @@ var Hooks = /*#__PURE__*/function () {
2192
2402
  * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);
2193
2403
  * ```
2194
2404
  */
2195
-
2196
2405
  }, {
2197
2406
  key: "add",
2198
2407
  value: function add(key, callback) {
2199
2408
  var _this = this;
2200
-
2201
2409
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2202
-
2203
2410
  if (Array.isArray(callback)) {
2204
2411
  (0, _array.arrayEach)(callback, function (c) {
2205
2412
  return _this.add(key, c, context);
@@ -2211,24 +2418,18 @@ var Hooks = /*#__PURE__*/function () {
2211
2418
  removedInVersion: REMOVED_HOOKS.get(key)
2212
2419
  }));
2213
2420
  }
2214
-
2215
2421
  if (DEPRECATED_HOOKS.has(key)) {
2216
2422
  (0, _console.warn)(DEPRECATED_HOOKS.get(key));
2217
2423
  }
2218
-
2219
2424
  var bucket = this.getBucket(context);
2220
-
2221
2425
  if (typeof bucket[key] === 'undefined') {
2222
2426
  this.register(key);
2223
2427
  bucket[key] = [];
2224
2428
  }
2225
-
2226
2429
  callback.skip = false;
2227
-
2228
2430
  if (bucket[key].indexOf(callback) === -1) {
2229
2431
  // only add a hook if it has not already been added (adding the same hook twice is now silently ignored)
2230
2432
  var foundInitialHook = false;
2231
-
2232
2433
  if (callback.initialHook) {
2233
2434
  (0, _array.arrayEach)(bucket[key], function (cb, i) {
2234
2435
  if (cb.initialHook) {
@@ -2238,15 +2439,14 @@ var Hooks = /*#__PURE__*/function () {
2238
2439
  }
2239
2440
  });
2240
2441
  }
2241
-
2242
2442
  if (!foundInitialHook) {
2243
2443
  bucket[key].push(callback);
2244
2444
  }
2245
2445
  }
2246
2446
  }
2247
-
2248
2447
  return this;
2249
2448
  }
2449
+
2250
2450
  /**
2251
2451
  * Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.
2252
2452
  *
@@ -2260,14 +2460,11 @@ var Hooks = /*#__PURE__*/function () {
2260
2460
  * Handsontable.hooks.once('beforeInit', myCallback, hotInstance);
2261
2461
  * ```
2262
2462
  */
2263
-
2264
2463
  }, {
2265
2464
  key: "once",
2266
2465
  value: function once(key, callback) {
2267
2466
  var _this2 = this;
2268
-
2269
2467
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2270
-
2271
2468
  if (Array.isArray(callback)) {
2272
2469
  (0, _array.arrayEach)(callback, function (c) {
2273
2470
  return _this2.once(key, c, context);
@@ -2277,6 +2474,7 @@ var Hooks = /*#__PURE__*/function () {
2277
2474
  this.add(key, callback, context);
2278
2475
  }
2279
2476
  }
2477
+
2280
2478
  /**
2281
2479
  * 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.
2282
2480
  *
@@ -2291,22 +2489,20 @@ var Hooks = /*#__PURE__*/function () {
2291
2489
  * Handsontable.hooks.remove('beforeInit', myCallback);
2292
2490
  * ```
2293
2491
  */
2294
-
2295
2492
  }, {
2296
2493
  key: "remove",
2297
2494
  value: function remove(key, callback) {
2298
2495
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2299
2496
  var bucket = this.getBucket(context);
2300
-
2301
2497
  if (typeof bucket[key] !== 'undefined') {
2302
2498
  if (bucket[key].indexOf(callback) >= 0) {
2303
2499
  callback.skip = true;
2304
2500
  return true;
2305
2501
  }
2306
2502
  }
2307
-
2308
2503
  return false;
2309
2504
  }
2505
+
2310
2506
  /**
2311
2507
  * Checks whether there are any registered listeners for the provided hook name.
2312
2508
  * If the `context` parameter is provided, it only checks for listeners assigned to the given Handsontable instance.
@@ -2315,7 +2511,6 @@ var Hooks = /*#__PURE__*/function () {
2315
2511
  * @param {object} [context=null] A Handsontable instance.
2316
2512
  * @returns {boolean} `true` for success, `false` otherwise.
2317
2513
  */
2318
-
2319
2514
  }, {
2320
2515
  key: "has",
2321
2516
  value: function has(key) {
@@ -2323,6 +2518,7 @@ var Hooks = /*#__PURE__*/function () {
2323
2518
  var bucket = this.getBucket(context);
2324
2519
  return !!(bucket[key] !== void 0 && bucket[key].length);
2325
2520
  }
2521
+
2326
2522
  /**
2327
2523
  * Runs all local and global callbacks assigned to the hook identified by the `key` parameter.
2328
2524
  * It returns either a return value from the last called callback or the first parameter (`p1`) passed to the `run` function.
@@ -2343,7 +2539,6 @@ var Hooks = /*#__PURE__*/function () {
2343
2539
  * Handsontable.hooks.run(hot, 'beforeInit');
2344
2540
  * ```
2345
2541
  */
2346
-
2347
2542
  }, {
2348
2543
  key: "run",
2349
2544
  value: function run(context, key, p1, p2, p3, p4, p5, p6) {
@@ -2351,66 +2546,53 @@ var Hooks = /*#__PURE__*/function () {
2351
2546
  var globalHandlers = this.globalBucket[key];
2352
2547
  var length = globalHandlers ? globalHandlers.length : 0;
2353
2548
  var index = 0;
2354
-
2355
2549
  if (length) {
2356
2550
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2357
2551
  while (index < length) {
2358
2552
  if (!globalHandlers[index] || globalHandlers[index].skip) {
2359
2553
  index += 1;
2360
2554
  /* eslint-disable no-continue */
2361
-
2362
2555
  continue;
2363
2556
  }
2364
-
2365
2557
  var res = (0, _function.fastCall)(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);
2366
-
2367
2558
  if (res !== void 0) {
2368
2559
  // eslint-disable-next-line no-param-reassign
2369
2560
  p1 = res;
2370
2561
  }
2371
-
2372
2562
  if (globalHandlers[index] && globalHandlers[index].runOnce) {
2373
2563
  this.remove(key, globalHandlers[index]);
2374
2564
  }
2375
-
2376
2565
  index += 1;
2377
2566
  }
2378
2567
  }
2379
2568
  }
2380
2569
  {
2381
2570
  var localHandlers = this.getBucket(context)[key];
2382
-
2383
2571
  var _length = localHandlers ? localHandlers.length : 0;
2384
-
2385
2572
  var _index = 0;
2386
-
2387
2573
  if (_length) {
2388
2574
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2389
2575
  while (_index < _length) {
2390
2576
  if (!localHandlers[_index] || localHandlers[_index].skip) {
2391
2577
  _index += 1;
2392
2578
  /* eslint-disable no-continue */
2393
-
2394
2579
  continue;
2395
2580
  }
2396
-
2397
2581
  var _res = (0, _function.fastCall)(localHandlers[_index], context, p1, p2, p3, p4, p5, p6);
2398
-
2399
2582
  if (_res !== void 0) {
2400
2583
  // eslint-disable-next-line no-param-reassign
2401
2584
  p1 = _res;
2402
2585
  }
2403
-
2404
2586
  if (localHandlers[_index] && localHandlers[_index].runOnce) {
2405
2587
  this.remove(key, localHandlers[_index], context);
2406
2588
  }
2407
-
2408
2589
  _index += 1;
2409
2590
  }
2410
2591
  }
2411
2592
  }
2412
2593
  return p1;
2413
2594
  }
2595
+
2414
2596
  /**
2415
2597
  * Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.
2416
2598
  *
@@ -2424,7 +2606,6 @@ var Hooks = /*#__PURE__*/function () {
2424
2606
  * Handsontable.hooks.destroy(hotInstance);
2425
2607
  * ```
2426
2608
  */
2427
-
2428
2609
  }, {
2429
2610
  key: "destroy",
2430
2611
  value: function destroy() {
@@ -2434,6 +2615,7 @@ var Hooks = /*#__PURE__*/function () {
2434
2615
  return bucket[key].length = 0;
2435
2616
  });
2436
2617
  }
2618
+
2437
2619
  /**
2438
2620
  * Registers a hook name (adds it to the list of the known hook names). Used by plugins.
2439
2621
  * It is not necessary to call register, but if you use it, your plugin hook will be used returned by
@@ -2446,7 +2628,6 @@ var Hooks = /*#__PURE__*/function () {
2446
2628
  * Handsontable.hooks.register('myHook');
2447
2629
  * ```
2448
2630
  */
2449
-
2450
2631
  }, {
2451
2632
  key: "register",
2452
2633
  value: function register(key) {
@@ -2454,6 +2635,7 @@ var Hooks = /*#__PURE__*/function () {
2454
2635
  REGISTERED_HOOKS.push(key);
2455
2636
  }
2456
2637
  }
2638
+
2457
2639
  /**
2458
2640
  * Deregisters a hook name (removes it from the list of known hook names).
2459
2641
  *
@@ -2464,7 +2646,6 @@ var Hooks = /*#__PURE__*/function () {
2464
2646
  * Handsontable.hooks.deregister('myHook');
2465
2647
  * ```
2466
2648
  */
2467
-
2468
2649
  }, {
2469
2650
  key: "deregister",
2470
2651
  value: function deregister(key) {
@@ -2472,6 +2653,7 @@ var Hooks = /*#__PURE__*/function () {
2472
2653
  REGISTERED_HOOKS.splice(REGISTERED_HOOKS.indexOf(key), 1);
2473
2654
  }
2474
2655
  }
2656
+
2475
2657
  /**
2476
2658
  * Returns a boolean value depending on if a hook by such name has been removed or deprecated.
2477
2659
  *
@@ -2486,12 +2668,12 @@ var Hooks = /*#__PURE__*/function () {
2486
2668
  * true
2487
2669
  * ```
2488
2670
  */
2489
-
2490
2671
  }, {
2491
2672
  key: "isDeprecated",
2492
2673
  value: function isDeprecated(hookName) {
2493
2674
  return DEPRECATED_HOOKS.has(hookName) || REMOVED_HOOKS.has(hookName);
2494
2675
  }
2676
+
2495
2677
  /**
2496
2678
  * Returns a boolean depending on if a hook by such name has been registered.
2497
2679
  *
@@ -2505,12 +2687,12 @@ var Hooks = /*#__PURE__*/function () {
2505
2687
  * true
2506
2688
  * ```
2507
2689
  */
2508
-
2509
2690
  }, {
2510
2691
  key: "isRegistered",
2511
2692
  value: function isRegistered(hookName) {
2512
2693
  return REGISTERED_HOOKS.indexOf(hookName) >= 0;
2513
2694
  }
2695
+
2514
2696
  /**
2515
2697
  * Returns an array of registered hooks.
2516
2698
  *
@@ -2532,7 +2714,6 @@ var Hooks = /*#__PURE__*/function () {
2532
2714
  * ]
2533
2715
  * ```
2534
2716
  */
2535
-
2536
2717
  }, {
2537
2718
  key: "getRegistered",
2538
2719
  value: function getRegistered() {
@@ -2544,18 +2725,15 @@ var Hooks = /*#__PURE__*/function () {
2544
2725
  return getGlobalSingleton();
2545
2726
  }
2546
2727
  }]);
2547
-
2548
2728
  return Hooks;
2549
2729
  }();
2550
-
2551
2730
  var globalSingleton = new Hooks();
2731
+
2552
2732
  /**
2553
2733
  * @returns {Hooks}
2554
2734
  */
2555
-
2556
2735
  function getGlobalSingleton() {
2557
2736
  return globalSingleton;
2558
2737
  }
2559
-
2560
2738
  var _default = Hooks;
2561
2739
  exports.default = _default;