handsontable 12.1.3 → 12.3.0-next-bb1a7c2-20221208

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 (948) 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 +44 -154
  8. package/3rdparty/walkontable/src/border.mjs +41 -136
  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 +36 -77
  13. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +36 -70
  14. package/3rdparty/walkontable/src/calculator/viewportRows.js +30 -49
  15. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +30 -42
  16. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -1
  17. package/3rdparty/walkontable/src/cell/coords.js +73 -65
  18. package/3rdparty/walkontable/src/cell/coords.mjs +73 -60
  19. package/3rdparty/walkontable/src/cell/range.d.ts +19 -16
  20. package/3rdparty/walkontable/src/cell/range.js +251 -231
  21. package/3rdparty/walkontable/src/cell/range.mjs +251 -222
  22. package/3rdparty/walkontable/src/core/_base.js +30 -74
  23. package/3rdparty/walkontable/src/core/_base.mjs +30 -67
  24. package/3rdparty/walkontable/src/core/clone.js +11 -44
  25. package/3rdparty/walkontable/src/core/clone.mjs +11 -32
  26. package/3rdparty/walkontable/src/core/core.js +8 -56
  27. package/3rdparty/walkontable/src/core/core.mjs +8 -38
  28. package/3rdparty/walkontable/src/event.js +41 -79
  29. package/3rdparty/walkontable/src/event.mjs +41 -66
  30. package/3rdparty/walkontable/src/facade/core.js +14 -16
  31. package/3rdparty/walkontable/src/facade/core.mjs +14 -13
  32. package/3rdparty/walkontable/src/filter/column.js +22 -17
  33. package/3rdparty/walkontable/src/filter/column.mjs +22 -16
  34. package/3rdparty/walkontable/src/filter/row.js +22 -17
  35. package/3rdparty/walkontable/src/filter/row.mjs +22 -16
  36. package/3rdparty/walkontable/src/index.js +0 -31
  37. package/3rdparty/walkontable/src/overlay/_base.js +38 -69
  38. package/3rdparty/walkontable/src/overlay/_base.mjs +38 -61
  39. package/3rdparty/walkontable/src/overlay/bottom.js +38 -103
  40. package/3rdparty/walkontable/src/overlay/bottom.mjs +38 -88
  41. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +12 -52
  42. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +12 -37
  43. package/3rdparty/walkontable/src/overlay/constants.js +0 -6
  44. package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
  45. package/3rdparty/walkontable/src/overlay/index.js +0 -17
  46. package/3rdparty/walkontable/src/overlay/inlineStart.js +26 -90
  47. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +26 -75
  48. package/3rdparty/walkontable/src/overlay/top.js +37 -104
  49. package/3rdparty/walkontable/src/overlay/top.mjs +37 -89
  50. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +14 -55
  51. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +14 -40
  52. package/3rdparty/walkontable/src/overlays.js +124 -145
  53. package/3rdparty/walkontable/src/overlays.mjs +124 -135
  54. package/3rdparty/walkontable/src/renderer/_base.js +17 -19
  55. package/3rdparty/walkontable/src/renderer/_base.mjs +17 -17
  56. package/3rdparty/walkontable/src/renderer/cells.js +15 -53
  57. package/3rdparty/walkontable/src/renderer/cells.mjs +15 -39
  58. package/3rdparty/walkontable/src/renderer/colGroup.js +15 -46
  59. package/3rdparty/walkontable/src/renderer/colGroup.mjs +15 -34
  60. package/3rdparty/walkontable/src/renderer/columnHeaders.js +13 -49
  61. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +13 -37
  62. package/3rdparty/walkontable/src/renderer/index.js +26 -35
  63. package/3rdparty/walkontable/src/renderer/index.mjs +26 -22
  64. package/3rdparty/walkontable/src/renderer/rowHeaders.js +13 -49
  65. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +13 -36
  66. package/3rdparty/walkontable/src/renderer/rows.js +11 -49
  67. package/3rdparty/walkontable/src/renderer/rows.mjs +11 -32
  68. package/3rdparty/walkontable/src/renderer/table.js +35 -48
  69. package/3rdparty/walkontable/src/renderer/table.mjs +35 -47
  70. package/3rdparty/walkontable/src/scroll.js +69 -86
  71. package/3rdparty/walkontable/src/scroll.mjs +69 -84
  72. package/3rdparty/walkontable/src/selection.js +28 -103
  73. package/3rdparty/walkontable/src/selection.mjs +26 -83
  74. package/3rdparty/walkontable/src/settings.js +25 -31
  75. package/3rdparty/walkontable/src/settings.mjs +25 -29
  76. package/3rdparty/walkontable/src/table/bottom.js +6 -34
  77. package/3rdparty/walkontable/src/table/bottom.mjs +6 -19
  78. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +6 -34
  79. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +6 -19
  80. package/3rdparty/walkontable/src/table/inlineStart.js +6 -34
  81. package/3rdparty/walkontable/src/table/inlineStart.mjs +6 -19
  82. package/3rdparty/walkontable/src/table/master.js +15 -54
  83. package/3rdparty/walkontable/src/table/master.mjs +15 -38
  84. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +1 -16
  85. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +1 -14
  86. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +1 -16
  87. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +1 -14
  88. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +1 -10
  89. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +1 -8
  90. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +1 -11
  91. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +1 -9
  92. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +1 -10
  93. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +1 -8
  94. package/3rdparty/walkontable/src/table/top.js +6 -34
  95. package/3rdparty/walkontable/src/table/top.mjs +6 -19
  96. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +6 -34
  97. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +6 -19
  98. package/3rdparty/walkontable/src/table.js +73 -233
  99. package/3rdparty/walkontable/src/table.mjs +71 -210
  100. package/3rdparty/walkontable/src/types.js +0 -5
  101. package/3rdparty/walkontable/src/types.mjs +0 -5
  102. package/3rdparty/walkontable/src/utils/column.js +18 -30
  103. package/3rdparty/walkontable/src/utils/column.mjs +18 -25
  104. package/3rdparty/walkontable/src/utils/nodesPool.js +16 -11
  105. package/3rdparty/walkontable/src/utils/nodesPool.mjs +16 -10
  106. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
  107. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
  108. package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
  109. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +7 -32
  110. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +7 -21
  111. package/3rdparty/walkontable/src/utils/orderView/view.js +27 -45
  112. package/3rdparty/walkontable/src/utils/orderView/view.mjs +27 -42
  113. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +16 -14
  114. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +16 -13
  115. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +21 -21
  116. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +21 -18
  117. package/3rdparty/walkontable/src/utils/row.js +15 -12
  118. package/3rdparty/walkontable/src/utils/row.mjs +15 -11
  119. package/3rdparty/walkontable/src/viewport.js +51 -99
  120. package/3rdparty/walkontable/src/viewport.mjs +51 -96
  121. package/CHANGELOG.md +99 -1
  122. package/base.d.ts +1 -0
  123. package/base.js +11 -17
  124. package/base.mjs +10 -11
  125. package/cellTypes/autocompleteType/autocompleteType.js +0 -4
  126. package/cellTypes/autocompleteType/index.js +0 -2
  127. package/cellTypes/checkboxType/checkboxType.js +0 -3
  128. package/cellTypes/checkboxType/index.js +0 -2
  129. package/cellTypes/dateType/dateType.js +0 -4
  130. package/cellTypes/dateType/index.js +0 -2
  131. package/cellTypes/dropdownType/dropdownType.js +0 -4
  132. package/cellTypes/dropdownType/index.js +0 -2
  133. package/cellTypes/handsontableType/handsontableType.js +0 -3
  134. package/cellTypes/handsontableType/index.js +0 -2
  135. package/cellTypes/index.js +0 -21
  136. package/cellTypes/index.mjs +0 -1
  137. package/cellTypes/numericType/index.js +0 -2
  138. package/cellTypes/numericType/numericType.js +0 -4
  139. package/cellTypes/passwordType/index.js +0 -2
  140. package/cellTypes/passwordType/passwordType.js +0 -3
  141. package/cellTypes/registry.js +10 -25
  142. package/cellTypes/registry.mjs +10 -20
  143. package/cellTypes/textType/index.js +0 -2
  144. package/cellTypes/textType/textType.js +0 -3
  145. package/cellTypes/timeType/index.js +0 -2
  146. package/cellTypes/timeType/timeType.js +0 -4
  147. package/core.d.ts +6 -2
  148. package/core.js +714 -1070
  149. package/core.mjs +717 -1015
  150. package/dataMap/dataMap.js +202 -236
  151. package/dataMap/dataMap.mjs +201 -209
  152. package/{dataSource.js → dataMap/dataSource.js} +29 -65
  153. package/{dataSource.mjs → dataMap/dataSource.mjs} +29 -57
  154. package/dataMap/index.js +0 -13
  155. package/dataMap/metaManager/index.js +33 -45
  156. package/dataMap/metaManager/index.mjs +33 -37
  157. package/dataMap/metaManager/lazyFactoryMap.js +17 -62
  158. package/dataMap/metaManager/lazyFactoryMap.mjs +17 -46
  159. package/dataMap/metaManager/metaLayers/cellMeta.js +26 -57
  160. package/dataMap/metaManager/metaLayers/cellMeta.mjs +25 -41
  161. package/dataMap/metaManager/metaLayers/columnMeta.js +23 -24
  162. package/dataMap/metaManager/metaLayers/columnMeta.mjs +24 -21
  163. package/dataMap/metaManager/metaLayers/globalMeta.js +30 -21
  164. package/dataMap/metaManager/metaLayers/globalMeta.mjs +31 -18
  165. package/dataMap/metaManager/metaLayers/tableMeta.js +18 -15
  166. package/dataMap/metaManager/metaLayers/tableMeta.mjs +19 -14
  167. package/dataMap/metaManager/metaSchema.js +173 -213
  168. package/dataMap/metaManager/metaSchema.mjs +173 -204
  169. package/dataMap/metaManager/mods/dynamicCellMeta.js +15 -35
  170. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +15 -24
  171. package/dataMap/metaManager/mods/extendMetaProperties.js +14 -27
  172. package/dataMap/metaManager/mods/extendMetaProperties.mjs +14 -19
  173. package/dataMap/metaManager/utils.js +49 -28
  174. package/dataMap/metaManager/utils.mjs +50 -21
  175. package/dataMap/replaceData.js +15 -35
  176. package/dataMap/replaceData.mjs +15 -23
  177. package/dist/handsontable.css +9 -9
  178. package/dist/handsontable.full.css +9 -9
  179. package/dist/handsontable.full.js +13065 -28165
  180. package/dist/handsontable.full.min.css +2 -2
  181. package/dist/handsontable.full.min.js +108 -114
  182. package/dist/handsontable.js +11528 -21792
  183. package/dist/handsontable.min.css +2 -2
  184. package/dist/handsontable.min.js +3 -3
  185. package/dist/languages/all.js +111 -240
  186. package/dist/languages/all.min.js +1 -1
  187. package/dist/languages/ar-AR.js +50 -14
  188. package/dist/languages/ar-AR.min.js +1 -1
  189. package/dist/languages/cs-CZ.js +52 -16
  190. package/dist/languages/cs-CZ.min.js +1 -1
  191. package/dist/languages/de-CH.js +52 -16
  192. package/dist/languages/de-CH.min.js +1 -1
  193. package/dist/languages/de-DE.js +53 -17
  194. package/dist/languages/de-DE.min.js +1 -1
  195. package/dist/languages/en-US.js +56 -20
  196. package/dist/languages/en-US.min.js +1 -1
  197. package/dist/languages/es-MX.js +56 -20
  198. package/dist/languages/es-MX.min.js +1 -1
  199. package/dist/languages/fr-FR.js +55 -19
  200. package/dist/languages/fr-FR.min.js +1 -1
  201. package/dist/languages/it-IT.js +55 -19
  202. package/dist/languages/it-IT.min.js +1 -1
  203. package/dist/languages/ja-JP.js +83 -43
  204. package/dist/languages/ja-JP.min.js +1 -1
  205. package/dist/languages/ko-KR.js +84 -43
  206. package/dist/languages/ko-KR.min.js +1 -1
  207. package/dist/languages/lv-LV.js +85 -43
  208. package/dist/languages/lv-LV.min.js +1 -1
  209. package/dist/languages/nb-NO.js +86 -43
  210. package/dist/languages/nb-NO.min.js +1 -1
  211. package/dist/languages/nl-NL.js +87 -43
  212. package/dist/languages/nl-NL.min.js +1 -1
  213. package/dist/languages/pl-PL.js +88 -43
  214. package/dist/languages/pl-PL.min.js +1 -1
  215. package/dist/languages/pt-BR.js +67 -28
  216. package/dist/languages/pt-BR.min.js +1 -1
  217. package/dist/languages/ru-RU.js +67 -28
  218. package/dist/languages/ru-RU.min.js +1 -1
  219. package/dist/languages/sr-SP.js +55 -16
  220. package/dist/languages/sr-SP.min.js +1 -1
  221. package/dist/languages/zh-CN.js +55 -16
  222. package/dist/languages/zh-CN.min.js +1 -1
  223. package/dist/languages/zh-TW.js +55 -16
  224. package/dist/languages/zh-TW.min.js +1 -1
  225. package/editorManager.js +53 -113
  226. package/editorManager.mjs +50 -90
  227. package/editors/autocompleteEditor/autocompleteEditor.js +36 -138
  228. package/editors/autocompleteEditor/autocompleteEditor.mjs +35 -108
  229. package/editors/autocompleteEditor/index.js +0 -2
  230. package/editors/baseEditor/baseEditor.js +55 -160
  231. package/editors/baseEditor/baseEditor.mjs +54 -133
  232. package/editors/baseEditor/index.js +0 -2
  233. package/editors/checkboxEditor/checkboxEditor.js +8 -34
  234. package/editors/checkboxEditor/checkboxEditor.mjs +8 -20
  235. package/editors/checkboxEditor/index.js +0 -2
  236. package/editors/dateEditor/dateEditor.js +26 -97
  237. package/editors/dateEditor/dateEditor.mjs +26 -76
  238. package/editors/dateEditor/index.js +0 -2
  239. package/editors/dropdownEditor/dropdownEditor.js +7 -42
  240. package/editors/dropdownEditor/dropdownEditor.mjs +7 -23
  241. package/editors/dropdownEditor/index.js +0 -2
  242. package/editors/handsontableEditor/handsontableEditor.js +19 -86
  243. package/editors/handsontableEditor/handsontableEditor.mjs +19 -67
  244. package/editors/handsontableEditor/index.js +0 -2
  245. package/editors/index.js +0 -25
  246. package/editors/index.mjs +0 -1
  247. package/editors/numericEditor/index.js +0 -2
  248. package/editors/numericEditor/numericEditor.js +7 -32
  249. package/editors/numericEditor/numericEditor.mjs +7 -19
  250. package/editors/passwordEditor/index.js +0 -2
  251. package/editors/passwordEditor/passwordEditor.js +7 -39
  252. package/editors/passwordEditor/passwordEditor.mjs +7 -23
  253. package/editors/registry.js +13 -36
  254. package/editors/registry.mjs +12 -26
  255. package/editors/selectEditor/index.js +0 -2
  256. package/editors/selectEditor/selectEditor.js +27 -74
  257. package/editors/selectEditor/selectEditor.mjs +27 -57
  258. package/editors/textEditor/caretPositioner.js +0 -8
  259. package/editors/textEditor/caretPositioner.mjs +0 -7
  260. package/editors/textEditor/index.js +0 -2
  261. package/editors/textEditor/textEditor.js +45 -139
  262. package/editors/textEditor/textEditor.mjs +45 -108
  263. package/editors/timeEditor/index.js +0 -2
  264. package/editors/timeEditor/timeEditor.js +7 -37
  265. package/editors/timeEditor/timeEditor.mjs +7 -22
  266. package/eventManager.js +26 -47
  267. package/eventManager.mjs +27 -45
  268. package/helpers/array.js +22 -88
  269. package/helpers/array.mjs +22 -58
  270. package/helpers/browser.js +25 -51
  271. package/helpers/browser.mjs +25 -32
  272. package/helpers/console.js +3 -13
  273. package/helpers/console.mjs +3 -10
  274. package/helpers/data.d.ts +0 -2
  275. package/helpers/data.js +8 -102
  276. package/helpers/data.mjs +9 -80
  277. package/helpers/date.js +2 -3
  278. package/helpers/date.mjs +2 -2
  279. package/helpers/dom/element.js +89 -256
  280. package/helpers/dom/element.mjs +88 -184
  281. package/helpers/dom/event.js +3 -7
  282. package/helpers/dom/event.mjs +3 -3
  283. package/helpers/feature.js +21 -82
  284. package/helpers/feature.mjs +15 -60
  285. package/helpers/function.js +14 -59
  286. package/helpers/function.mjs +14 -45
  287. package/helpers/mixed.js +9 -64
  288. package/helpers/mixed.mjs +9 -43
  289. package/helpers/number.js +4 -46
  290. package/helpers/number.mjs +4 -23
  291. package/helpers/object.js +30 -77
  292. package/helpers/object.mjs +25 -47
  293. package/helpers/string.js +6 -28
  294. package/helpers/string.mjs +6 -14
  295. package/helpers/templateLiteralTag.js +0 -6
  296. package/helpers/templateLiteralTag.mjs +0 -2
  297. package/helpers/unicode.js +17 -22
  298. package/helpers/unicode.mjs +17 -13
  299. package/helpers/wrappers/jquery.js +4 -14
  300. package/helpers/wrappers/jquery.mjs +4 -13
  301. package/i18n/constants.js +50 -45
  302. package/i18n/constants.mjs +46 -42
  303. package/i18n/index.js +0 -7
  304. package/i18n/languages/ar-AR.js +12 -23
  305. package/i18n/languages/ar-AR.mjs +14 -3
  306. package/i18n/languages/cs-CZ.js +12 -23
  307. package/i18n/languages/cs-CZ.mjs +14 -3
  308. package/i18n/languages/de-CH.js +12 -23
  309. package/i18n/languages/de-CH.mjs +14 -3
  310. package/i18n/languages/de-DE.js +12 -23
  311. package/i18n/languages/de-DE.mjs +14 -3
  312. package/i18n/languages/en-US.js +13 -24
  313. package/i18n/languages/en-US.mjs +15 -4
  314. package/i18n/languages/es-MX.js +13 -24
  315. package/i18n/languages/es-MX.mjs +17 -5
  316. package/i18n/languages/fr-FR.js +12 -23
  317. package/i18n/languages/fr-FR.mjs +14 -3
  318. package/i18n/languages/index.js +0 -39
  319. package/i18n/languages/it-IT.js +12 -23
  320. package/i18n/languages/it-IT.mjs +14 -3
  321. package/i18n/languages/ja-JP.js +12 -23
  322. package/i18n/languages/ja-JP.mjs +14 -3
  323. package/i18n/languages/ko-KR.js +12 -23
  324. package/i18n/languages/ko-KR.mjs +14 -3
  325. package/i18n/languages/lv-LV.js +13 -24
  326. package/i18n/languages/lv-LV.mjs +17 -6
  327. package/i18n/languages/nb-NO.js +12 -23
  328. package/i18n/languages/nb-NO.mjs +14 -3
  329. package/i18n/languages/nl-NL.js +13 -24
  330. package/i18n/languages/nl-NL.mjs +17 -6
  331. package/i18n/languages/pl-PL.js +13 -24
  332. package/i18n/languages/pl-PL.mjs +16 -5
  333. package/i18n/languages/pt-BR.js +12 -23
  334. package/i18n/languages/pt-BR.mjs +14 -3
  335. package/i18n/languages/ru-RU.js +12 -23
  336. package/i18n/languages/ru-RU.mjs +14 -3
  337. package/i18n/languages/sr-SP.js +12 -23
  338. package/i18n/languages/sr-SP.mjs +14 -3
  339. package/i18n/languages/zh-CN.js +12 -23
  340. package/i18n/languages/zh-CN.mjs +14 -3
  341. package/i18n/languages/zh-TW.js +12 -23
  342. package/i18n/languages/zh-TW.mjs +14 -3
  343. package/i18n/phraseFormatters/index.js +4 -11
  344. package/i18n/phraseFormatters/index.mjs +4 -6
  345. package/i18n/phraseFormatters/pluralize.js +0 -5
  346. package/i18n/phraseFormatters/pluralize.mjs +0 -3
  347. package/i18n/phraseFormatters/substituteVariables.js +0 -4
  348. package/i18n/phraseFormatters/substituteVariables.mjs +0 -2
  349. package/i18n/registry.js +18 -59
  350. package/i18n/registry.mjs +18 -30
  351. package/i18n/utils.js +4 -22
  352. package/i18n/utils.mjs +4 -11
  353. package/index.d.ts +9 -0
  354. package/index.js +23 -58
  355. package/index.mjs +21 -16
  356. package/languages/all.js +111 -240
  357. package/languages/ar-AR.js +50 -14
  358. package/languages/ar-AR.mjs +14 -3
  359. package/languages/cs-CZ.js +52 -16
  360. package/languages/cs-CZ.mjs +14 -3
  361. package/languages/de-CH.js +52 -16
  362. package/languages/de-CH.mjs +14 -3
  363. package/languages/de-DE.js +53 -17
  364. package/languages/de-DE.mjs +14 -3
  365. package/languages/en-US.js +56 -20
  366. package/languages/en-US.mjs +15 -4
  367. package/languages/es-MX.js +56 -20
  368. package/languages/es-MX.mjs +17 -5
  369. package/languages/fr-FR.js +55 -19
  370. package/languages/fr-FR.mjs +14 -3
  371. package/languages/index.js +111 -240
  372. package/languages/it-IT.js +55 -19
  373. package/languages/it-IT.mjs +14 -3
  374. package/languages/ja-JP.js +83 -43
  375. package/languages/ja-JP.mjs +14 -3
  376. package/languages/ko-KR.js +84 -43
  377. package/languages/ko-KR.mjs +14 -3
  378. package/languages/lv-LV.js +85 -43
  379. package/languages/lv-LV.mjs +17 -6
  380. package/languages/nb-NO.js +86 -43
  381. package/languages/nb-NO.mjs +14 -3
  382. package/languages/nl-NL.js +87 -43
  383. package/languages/nl-NL.mjs +17 -6
  384. package/languages/pl-PL.js +88 -43
  385. package/languages/pl-PL.mjs +16 -5
  386. package/languages/pt-BR.js +67 -28
  387. package/languages/pt-BR.mjs +14 -3
  388. package/languages/ru-RU.js +67 -28
  389. package/languages/ru-RU.mjs +14 -3
  390. package/languages/sr-SP.js +55 -16
  391. package/languages/sr-SP.mjs +14 -3
  392. package/languages/zh-CN.js +55 -16
  393. package/languages/zh-CN.mjs +14 -3
  394. package/languages/zh-TW.js +55 -16
  395. package/languages/zh-TW.mjs +14 -3
  396. package/mixins/hooksRefRegisterer.js +1 -12
  397. package/mixins/hooksRefRegisterer.mjs +1 -9
  398. package/mixins/localHooks.js +4 -11
  399. package/mixins/localHooks.mjs +4 -8
  400. package/package.json +2 -2
  401. package/pluginHooks.d.ts +10 -5
  402. package/pluginHooks.js +376 -116
  403. package/pluginHooks.mjs +375 -103
  404. package/plugins/autoColumnSize/autoColumnSize.js +81 -174
  405. package/plugins/autoColumnSize/autoColumnSize.mjs +81 -139
  406. package/plugins/autoColumnSize/index.js +0 -2
  407. package/plugins/autoRowSize/autoRowSize.js +89 -160
  408. package/plugins/autoRowSize/autoRowSize.mjs +89 -131
  409. package/plugins/autoRowSize/index.js +0 -2
  410. package/plugins/autofill/autofill.js +53 -165
  411. package/plugins/autofill/autofill.mjs +53 -133
  412. package/plugins/autofill/index.js +0 -2
  413. package/plugins/autofill/utils.js +4 -26
  414. package/plugins/autofill/utils.mjs +4 -18
  415. package/plugins/base/base.js +28 -91
  416. package/plugins/base/base.mjs +28 -63
  417. package/plugins/base/index.js +0 -2
  418. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +25 -53
  419. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +25 -34
  420. package/plugins/bindRowsWithHeaders/index.js +0 -2
  421. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +11 -42
  422. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +11 -30
  423. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +12 -54
  424. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +12 -38
  425. package/plugins/collapsibleColumns/collapsibleColumns.js +106 -193
  426. package/plugins/collapsibleColumns/collapsibleColumns.mjs +106 -162
  427. package/plugins/collapsibleColumns/index.js +0 -2
  428. package/plugins/columnSorting/columnSorting.js +58 -192
  429. package/plugins/columnSorting/columnSorting.mjs +58 -147
  430. package/plugins/columnSorting/columnStatesManager.js +27 -77
  431. package/plugins/columnSorting/columnStatesManager.mjs +24 -51
  432. package/plugins/columnSorting/domHelpers.js +2 -18
  433. package/plugins/columnSorting/domHelpers.mjs +2 -7
  434. package/plugins/columnSorting/index.js +0 -2
  435. package/plugins/columnSorting/rootComparator.js +5 -24
  436. package/plugins/columnSorting/rootComparator.mjs +5 -13
  437. package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
  438. package/plugins/columnSorting/sortFunction/checkbox.mjs +8 -12
  439. package/plugins/columnSorting/sortFunction/date.js +2 -19
  440. package/plugins/columnSorting/sortFunction/date.mjs +2 -14
  441. package/plugins/columnSorting/sortFunction/default.js +2 -17
  442. package/plugins/columnSorting/sortFunction/default.mjs +2 -14
  443. package/plugins/columnSorting/sortFunction/numeric.js +2 -11
  444. package/plugins/columnSorting/sortFunction/numeric.mjs +2 -8
  445. package/plugins/columnSorting/sortService/engine.js +1 -7
  446. package/plugins/columnSorting/sortService/engine.mjs +1 -3
  447. package/plugins/columnSorting/sortService/index.js +0 -5
  448. package/plugins/columnSorting/sortService/registry.js +6 -18
  449. package/plugins/columnSorting/sortService/registry.mjs +6 -10
  450. package/plugins/columnSorting/utils.js +9 -34
  451. package/plugins/columnSorting/utils.mjs +9 -15
  452. package/plugins/columnSummary/columnSummary.js +65 -126
  453. package/plugins/columnSummary/columnSummary.mjs +65 -101
  454. package/plugins/columnSummary/endpoints.js +33 -109
  455. package/plugins/columnSummary/endpoints.mjs +33 -105
  456. package/plugins/columnSummary/index.js +0 -2
  457. package/plugins/columnSummary/utils.js +0 -1
  458. package/plugins/comments/commentEditor.js +29 -27
  459. package/plugins/comments/commentEditor.mjs +29 -26
  460. package/plugins/comments/comments.js +106 -178
  461. package/plugins/comments/comments.mjs +106 -152
  462. package/plugins/comments/displaySwitch.js +20 -24
  463. package/plugins/comments/displaySwitch.mjs +20 -19
  464. package/plugins/comments/index.js +0 -2
  465. package/plugins/contextMenu/commandExecutor.js +17 -29
  466. package/plugins/contextMenu/commandExecutor.mjs +17 -27
  467. package/plugins/contextMenu/contextMenu.d.ts +4 -3
  468. package/plugins/contextMenu/contextMenu.js +28 -121
  469. package/plugins/contextMenu/contextMenu.mjs +28 -91
  470. package/plugins/contextMenu/cursor.js +19 -19
  471. package/plugins/contextMenu/cursor.mjs +19 -18
  472. package/plugins/contextMenu/index.js +0 -2
  473. package/plugins/contextMenu/itemsFactory.js +21 -35
  474. package/plugins/contextMenu/itemsFactory.mjs +21 -31
  475. package/plugins/contextMenu/menu.js +71 -180
  476. package/plugins/contextMenu/menu.mjs +70 -151
  477. package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
  478. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
  479. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
  480. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
  481. package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
  482. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
  483. package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
  484. package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
  485. package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
  486. package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
  487. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
  488. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
  489. package/plugins/contextMenu/predefinedItems/redo.js +1 -16
  490. package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
  491. package/plugins/contextMenu/predefinedItems/removeColumn.js +4 -39
  492. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +4 -19
  493. package/plugins/contextMenu/predefinedItems/removeRow.js +4 -38
  494. package/plugins/contextMenu/predefinedItems/removeRow.mjs +4 -18
  495. package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
  496. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
  497. package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
  498. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
  499. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  500. package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
  501. package/plugins/contextMenu/predefinedItems/undo.js +1 -16
  502. package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
  503. package/plugins/contextMenu/predefinedItems.js +14 -55
  504. package/plugins/contextMenu/predefinedItems.mjs +16 -8
  505. package/plugins/contextMenu/utils.js +17 -57
  506. package/plugins/contextMenu/utils.mjs +17 -34
  507. package/plugins/copyPaste/clipboardData.js +14 -9
  508. package/plugins/copyPaste/clipboardData.mjs +14 -8
  509. package/plugins/copyPaste/contextMenuItem/copy.js +5 -32
  510. package/plugins/copyPaste/contextMenuItem/copy.mjs +5 -7
  511. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +35 -0
  512. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +31 -0
  513. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +35 -0
  514. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +31 -0
  515. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +35 -0
  516. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +31 -0
  517. package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
  518. package/plugins/copyPaste/contextMenuItem/cut.mjs +2 -4
  519. package/plugins/copyPaste/copyPaste.d.ts +10 -2
  520. package/plugins/copyPaste/copyPaste.js +339 -372
  521. package/plugins/copyPaste/copyPaste.mjs +339 -331
  522. package/plugins/copyPaste/copyableRanges.js +269 -0
  523. package/plugins/copyPaste/copyableRanges.mjs +264 -0
  524. package/plugins/copyPaste/focusableElement.js +21 -55
  525. package/plugins/copyPaste/focusableElement.mjs +21 -45
  526. package/plugins/copyPaste/index.js +0 -2
  527. package/plugins/copyPaste/pasteEvent.js +14 -9
  528. package/plugins/copyPaste/pasteEvent.mjs +14 -7
  529. package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
  530. package/plugins/customBorders/contextMenuItem/bottom.mjs +0 -3
  531. package/plugins/customBorders/contextMenuItem/index.js +0 -11
  532. package/plugins/customBorders/contextMenuItem/left.js +0 -17
  533. package/plugins/customBorders/contextMenuItem/left.mjs +0 -3
  534. package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
  535. package/plugins/customBorders/contextMenuItem/noBorders.mjs +0 -1
  536. package/plugins/customBorders/contextMenuItem/right.js +0 -17
  537. package/plugins/customBorders/contextMenuItem/right.mjs +0 -3
  538. package/plugins/customBorders/contextMenuItem/top.js +0 -17
  539. package/plugins/customBorders/contextMenuItem/top.mjs +0 -3
  540. package/plugins/customBorders/customBorders.js +64 -188
  541. package/plugins/customBorders/customBorders.mjs +63 -153
  542. package/plugins/customBorders/index.js +0 -2
  543. package/plugins/customBorders/utils.js +13 -52
  544. package/plugins/customBorders/utils.mjs +13 -31
  545. package/plugins/dragToScroll/dragToScroll.js +23 -75
  546. package/plugins/dragToScroll/dragToScroll.mjs +23 -56
  547. package/plugins/dragToScroll/index.js +0 -2
  548. package/plugins/dropdownMenu/dropdownMenu.js +49 -127
  549. package/plugins/dropdownMenu/dropdownMenu.mjs +49 -96
  550. package/plugins/dropdownMenu/index.js +0 -2
  551. package/plugins/exportFile/dataProvider.js +34 -72
  552. package/plugins/exportFile/dataProvider.mjs +31 -58
  553. package/plugins/exportFile/exportFile.js +56 -61
  554. package/plugins/exportFile/exportFile.mjs +54 -37
  555. package/plugins/exportFile/index.js +0 -2
  556. package/plugins/exportFile/typeFactory.js +15 -12
  557. package/plugins/exportFile/typeFactory.mjs +15 -5
  558. package/plugins/exportFile/types/_base.js +15 -15
  559. package/plugins/exportFile/types/_base.mjs +15 -13
  560. package/plugins/exportFile/types/csv.js +8 -51
  561. package/plugins/exportFile/types/csv.mjs +8 -30
  562. package/plugins/filters/component/_base.js +25 -31
  563. package/plugins/filters/component/_base.mjs +25 -26
  564. package/plugins/filters/component/actionBar.js +13 -56
  565. package/plugins/filters/component/actionBar.mjs +11 -34
  566. package/plugins/filters/component/condition.js +22 -95
  567. package/plugins/filters/component/condition.mjs +20 -63
  568. package/plugins/filters/component/operators.js +18 -71
  569. package/plugins/filters/component/operators.mjs +18 -48
  570. package/plugins/filters/component/value.js +22 -97
  571. package/plugins/filters/component/value.mjs +22 -67
  572. package/plugins/filters/condition/beginsWith.js +3 -33
  573. package/plugins/filters/condition/beginsWith.mjs +3 -11
  574. package/plugins/filters/condition/between.js +4 -38
  575. package/plugins/filters/condition/between.mjs +4 -16
  576. package/plugins/filters/condition/byValue.js +4 -28
  577. package/plugins/filters/condition/byValue.mjs +4 -13
  578. package/plugins/filters/condition/contains.js +3 -33
  579. package/plugins/filters/condition/contains.mjs +3 -11
  580. package/plugins/filters/condition/date/after.js +3 -35
  581. package/plugins/filters/condition/date/after.mjs +3 -13
  582. package/plugins/filters/condition/date/before.js +3 -35
  583. package/plugins/filters/condition/date/before.mjs +3 -13
  584. package/plugins/filters/condition/date/today.js +1 -22
  585. package/plugins/filters/condition/date/today.mjs +1 -3
  586. package/plugins/filters/condition/date/tomorrow.js +1 -22
  587. package/plugins/filters/condition/date/tomorrow.mjs +1 -3
  588. package/plugins/filters/condition/date/yesterday.js +1 -22
  589. package/plugins/filters/condition/date/yesterday.mjs +1 -3
  590. package/plugins/filters/condition/empty.js +1 -19
  591. package/plugins/filters/condition/empty.mjs +1 -1
  592. package/plugins/filters/condition/endsWith.js +3 -33
  593. package/plugins/filters/condition/endsWith.mjs +3 -11
  594. package/plugins/filters/condition/equal.js +3 -32
  595. package/plugins/filters/condition/equal.mjs +3 -11
  596. package/plugins/filters/condition/false.js +1 -5
  597. package/plugins/filters/condition/false.mjs +1 -1
  598. package/plugins/filters/condition/greaterThan.js +3 -33
  599. package/plugins/filters/condition/greaterThan.mjs +3 -13
  600. package/plugins/filters/condition/greaterThanOrEqual.js +3 -33
  601. package/plugins/filters/condition/greaterThanOrEqual.mjs +3 -13
  602. package/plugins/filters/condition/lessThan.js +3 -33
  603. package/plugins/filters/condition/lessThan.mjs +3 -13
  604. package/plugins/filters/condition/lessThanOrEqual.js +3 -33
  605. package/plugins/filters/condition/lessThanOrEqual.mjs +3 -13
  606. package/plugins/filters/condition/none.js +1 -18
  607. package/plugins/filters/condition/none.mjs +1 -1
  608. package/plugins/filters/condition/notBetween.js +1 -19
  609. package/plugins/filters/condition/notBetween.mjs +1 -1
  610. package/plugins/filters/condition/notContains.js +1 -19
  611. package/plugins/filters/condition/notContains.mjs +1 -1
  612. package/plugins/filters/condition/notEmpty.js +1 -19
  613. package/plugins/filters/condition/notEmpty.mjs +1 -1
  614. package/plugins/filters/condition/notEqual.js +1 -19
  615. package/plugins/filters/condition/notEqual.mjs +1 -1
  616. package/plugins/filters/condition/true.js +1 -5
  617. package/plugins/filters/condition/true.mjs +1 -1
  618. package/plugins/filters/conditionCollection.js +31 -84
  619. package/plugins/filters/conditionCollection.mjs +39 -69
  620. package/plugins/filters/conditionRegisterer.js +5 -14
  621. package/plugins/filters/conditionRegisterer.mjs +5 -9
  622. package/plugins/filters/conditionUpdateObserver.js +29 -56
  623. package/plugins/filters/conditionUpdateObserver.mjs +29 -44
  624. package/plugins/filters/constants.js +15 -67
  625. package/plugins/filters/constants.mjs +15 -9
  626. package/plugins/filters/dataFilter.js +17 -20
  627. package/plugins/filters/dataFilter.mjs +17 -19
  628. package/plugins/filters/filters.js +110 -210
  629. package/plugins/filters/filters.mjs +110 -165
  630. package/plugins/filters/index.js +0 -2
  631. package/plugins/filters/logicalOperationRegisterer.js +3 -9
  632. package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
  633. package/plugins/filters/logicalOperations/conjunction.js +2 -19
  634. package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
  635. package/plugins/filters/logicalOperations/disjunction.js +2 -19
  636. package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
  637. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
  638. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
  639. package/plugins/filters/ui/_base.js +24 -62
  640. package/plugins/filters/ui/_base.mjs +26 -36
  641. package/plugins/filters/ui/input.js +13 -53
  642. package/plugins/filters/ui/input.mjs +13 -35
  643. package/plugins/filters/ui/link.js +9 -44
  644. package/plugins/filters/ui/link.mjs +9 -26
  645. package/plugins/filters/ui/multipleSelect.js +25 -113
  646. package/plugins/filters/ui/multipleSelect.mjs +26 -77
  647. package/plugins/filters/ui/radioInput.js +12 -48
  648. package/plugins/filters/ui/radioInput.mjs +12 -31
  649. package/plugins/filters/ui/select.js +20 -77
  650. package/plugins/filters/ui/select.mjs +20 -53
  651. package/plugins/filters/utils.js +6 -39
  652. package/plugins/filters/utils.mjs +6 -23
  653. package/plugins/formulas/engine/register.js +24 -74
  654. package/plugins/formulas/engine/register.mjs +24 -45
  655. package/plugins/formulas/engine/settings.js +16 -25
  656. package/plugins/formulas/engine/settings.mjs +16 -13
  657. package/plugins/formulas/formulas.js +127 -306
  658. package/plugins/formulas/formulas.mjs +128 -259
  659. package/plugins/formulas/index.js +0 -2
  660. package/plugins/formulas/utils.js +1 -3
  661. package/plugins/formulas/utils.mjs +1 -1
  662. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +5 -39
  663. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +5 -21
  664. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
  665. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +17 -24
  666. package/plugins/hiddenColumns/hiddenColumns.js +77 -150
  667. package/plugins/hiddenColumns/hiddenColumns.mjs +77 -109
  668. package/plugins/hiddenColumns/index.js +0 -2
  669. package/plugins/hiddenRows/contextMenuItem/hideRow.js +5 -39
  670. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +5 -21
  671. package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
  672. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +17 -24
  673. package/plugins/hiddenRows/hiddenRows.js +75 -149
  674. package/plugins/hiddenRows/hiddenRows.mjs +75 -108
  675. package/plugins/hiddenRows/index.js +0 -2
  676. package/plugins/index.js +0 -71
  677. package/plugins/index.mjs +0 -1
  678. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -29
  679. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +2 -13
  680. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -29
  681. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +2 -13
  682. package/plugins/manualColumnFreeze/index.js +0 -2
  683. package/plugins/manualColumnFreeze/manualColumnFreeze.js +27 -79
  684. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +27 -55
  685. package/plugins/manualColumnMove/index.js +0 -2
  686. package/plugins/manualColumnMove/manualColumnMove.js +51 -135
  687. package/plugins/manualColumnMove/manualColumnMove.mjs +51 -107
  688. package/plugins/manualColumnMove/ui/_base.js +26 -31
  689. package/plugins/manualColumnMove/ui/_base.mjs +26 -28
  690. package/plugins/manualColumnMove/ui/backlight.js +7 -38
  691. package/plugins/manualColumnMove/ui/backlight.mjs +7 -23
  692. package/plugins/manualColumnMove/ui/guideline.js +7 -38
  693. package/plugins/manualColumnMove/ui/guideline.mjs +7 -23
  694. package/plugins/manualColumnResize/index.js +0 -2
  695. package/plugins/manualColumnResize/manualColumnResize.js +50 -144
  696. package/plugins/manualColumnResize/manualColumnResize.mjs +49 -119
  697. package/plugins/manualRowMove/index.js +0 -2
  698. package/plugins/manualRowMove/manualRowMove.js +51 -138
  699. package/plugins/manualRowMove/manualRowMove.mjs +51 -110
  700. package/plugins/manualRowMove/ui/_base.js +26 -28
  701. package/plugins/manualRowMove/ui/_base.mjs +26 -27
  702. package/plugins/manualRowMove/ui/backlight.js +7 -38
  703. package/plugins/manualRowMove/ui/backlight.mjs +7 -23
  704. package/plugins/manualRowMove/ui/guideline.js +7 -38
  705. package/plugins/manualRowMove/ui/guideline.mjs +7 -23
  706. package/plugins/manualRowResize/index.js +0 -2
  707. package/plugins/manualRowResize/manualRowResize.js +48 -139
  708. package/plugins/manualRowResize/manualRowResize.mjs +47 -113
  709. package/plugins/mergeCells/calculations/autofill.js +49 -133
  710. package/plugins/mergeCells/calculations/autofill.mjs +46 -117
  711. package/plugins/mergeCells/calculations/selection.js +22 -39
  712. package/plugins/mergeCells/calculations/selection.mjs +22 -36
  713. package/plugins/mergeCells/cellCoords.js +43 -50
  714. package/plugins/mergeCells/cellCoords.mjs +43 -48
  715. package/plugins/mergeCells/cellsCollection.js +22 -86
  716. package/plugins/mergeCells/cellsCollection.mjs +19 -63
  717. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
  718. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +0 -6
  719. package/plugins/mergeCells/index.js +0 -2
  720. package/plugins/mergeCells/mergeCells.js +136 -334
  721. package/plugins/mergeCells/mergeCells.mjs +136 -293
  722. package/plugins/mergeCells/utils.js +0 -3
  723. package/plugins/mergeCells/utils.mjs +0 -1
  724. package/plugins/multiColumnSorting/domHelpers.js +2 -12
  725. package/plugins/multiColumnSorting/domHelpers.mjs +2 -5
  726. package/plugins/multiColumnSorting/index.js +0 -2
  727. package/plugins/multiColumnSorting/multiColumnSorting.js +20 -67
  728. package/plugins/multiColumnSorting/multiColumnSorting.mjs +20 -45
  729. package/plugins/multiColumnSorting/rootComparator.js +2 -26
  730. package/plugins/multiColumnSorting/rootComparator.mjs +2 -15
  731. package/plugins/multiColumnSorting/utils.js +0 -7
  732. package/plugins/multiColumnSorting/utils.mjs +0 -4
  733. package/plugins/multipleSelectionHandles/index.js +0 -2
  734. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +12 -110
  735. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +12 -88
  736. package/plugins/nestedHeaders/index.js +0 -2
  737. package/plugins/nestedHeaders/nestedHeaders.js +198 -211
  738. package/plugins/nestedHeaders/nestedHeaders.mjs +206 -191
  739. package/plugins/nestedHeaders/stateManager/headersTree.js +26 -96
  740. package/plugins/nestedHeaders/stateManager/headersTree.mjs +26 -76
  741. package/plugins/nestedHeaders/stateManager/index.js +55 -118
  742. package/plugins/nestedHeaders/stateManager/index.mjs +61 -105
  743. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
  744. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +7 -18
  745. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
  746. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +12 -17
  747. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
  748. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +10 -15
  749. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
  750. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +3 -13
  751. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
  752. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +1 -3
  753. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
  754. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +3 -14
  755. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
  756. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
  757. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
  758. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -20
  759. package/plugins/nestedHeaders/stateManager/sourceSettings.js +27 -81
  760. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +33 -71
  761. package/plugins/nestedHeaders/stateManager/utils.js +19 -22
  762. package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
  763. package/plugins/nestedHeaders/utils/ghostTable.js +23 -37
  764. package/plugins/nestedHeaders/utils/ghostTable.mjs +23 -36
  765. package/plugins/nestedRows/data/dataManager.js +47 -162
  766. package/plugins/nestedRows/data/dataManager.mjs +45 -143
  767. package/plugins/nestedRows/index.js +0 -2
  768. package/plugins/nestedRows/nestedRows.js +46 -119
  769. package/plugins/nestedRows/nestedRows.mjs +46 -86
  770. package/plugins/nestedRows/ui/_base.js +14 -8
  771. package/plugins/nestedRows/ui/_base.mjs +14 -7
  772. package/plugins/nestedRows/ui/collapsing.js +33 -133
  773. package/plugins/nestedRows/ui/collapsing.mjs +33 -111
  774. package/plugins/nestedRows/ui/contextMenu.js +9 -55
  775. package/plugins/nestedRows/ui/contextMenu.mjs +8 -33
  776. package/plugins/nestedRows/ui/headers.js +10 -49
  777. package/plugins/nestedRows/ui/headers.mjs +10 -34
  778. package/plugins/nestedRows/utils/rowMoveController.js +36 -79
  779. package/plugins/nestedRows/utils/rowMoveController.mjs +45 -71
  780. package/plugins/persistentState/index.js +0 -2
  781. package/plugins/persistentState/persistentState.js +16 -59
  782. package/plugins/persistentState/persistentState.mjs +16 -38
  783. package/plugins/persistentState/storage.js +22 -24
  784. package/plugins/persistentState/storage.mjs +22 -22
  785. package/plugins/registry.js +8 -52
  786. package/plugins/registry.mjs +8 -33
  787. package/plugins/search/index.js +0 -2
  788. package/plugins/search/search.js +22 -97
  789. package/plugins/search/search.mjs +22 -68
  790. package/plugins/touchScroll/index.js +0 -2
  791. package/plugins/touchScroll/touchScroll.js +21 -77
  792. package/plugins/touchScroll/touchScroll.mjs +21 -59
  793. package/plugins/trimRows/index.js +0 -2
  794. package/plugins/trimRows/trimRows.js +64 -86
  795. package/plugins/trimRows/trimRows.mjs +64 -63
  796. package/plugins/undoRedo/index.js +0 -14
  797. package/plugins/undoRedo/undoRedo.js +98 -250
  798. package/plugins/undoRedo/undoRedo.mjs +98 -220
  799. package/registry.js +0 -11
  800. package/registry.mjs +1 -2
  801. package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
  802. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
  803. package/renderers/autocompleteRenderer/index.js +0 -2
  804. package/renderers/baseRenderer/baseRenderer.js +2 -11
  805. package/renderers/baseRenderer/baseRenderer.mjs +1 -7
  806. package/renderers/baseRenderer/index.js +0 -2
  807. package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
  808. package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
  809. package/renderers/checkboxRenderer/index.js +0 -2
  810. package/renderers/htmlRenderer/htmlRenderer.js +1 -7
  811. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  812. package/renderers/htmlRenderer/index.js +0 -2
  813. package/renderers/index.js +0 -19
  814. package/renderers/index.mjs +0 -1
  815. package/renderers/numericRenderer/index.js +0 -2
  816. package/renderers/numericRenderer/numericRenderer.js +1 -21
  817. package/renderers/numericRenderer/numericRenderer.mjs +1 -9
  818. package/renderers/passwordRenderer/index.js +0 -2
  819. package/renderers/passwordRenderer/passwordRenderer.js +1 -8
  820. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  821. package/renderers/registry.js +7 -16
  822. package/renderers/registry.mjs +7 -14
  823. package/renderers/textRenderer/index.js +0 -2
  824. package/renderers/textRenderer/textRenderer.js +1 -13
  825. package/renderers/textRenderer/textRenderer.mjs +1 -5
  826. package/renderers/timeRenderer/index.js +0 -2
  827. package/renderers/timeRenderer/timeRenderer.js +1 -6
  828. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  829. package/selection/highlight/highlight.js +24 -73
  830. package/selection/highlight/highlight.mjs +24 -50
  831. package/selection/highlight/types/activeHeader.js +14 -23
  832. package/selection/highlight/types/activeHeader.mjs +14 -12
  833. package/selection/highlight/types/area.js +15 -24
  834. package/selection/highlight/types/area.mjs +15 -13
  835. package/selection/highlight/types/cell.js +14 -23
  836. package/selection/highlight/types/cell.mjs +14 -12
  837. package/selection/highlight/types/customSelection.js +15 -24
  838. package/selection/highlight/types/customSelection.mjs +15 -13
  839. package/selection/highlight/types/fill.js +16 -20
  840. package/selection/highlight/types/fill.mjs +16 -9
  841. package/selection/highlight/types/header.js +16 -25
  842. package/selection/highlight/types/header.mjs +16 -14
  843. package/selection/highlight/types/index.js +17 -27
  844. package/selection/highlight/types/index.mjs +17 -13
  845. package/selection/highlight/visualSelection.js +35 -80
  846. package/selection/highlight/visualSelection.mjs +35 -68
  847. package/selection/index.js +0 -14
  848. package/selection/mouseEventHandler.js +19 -30
  849. package/selection/mouseEventHandler.mjs +19 -22
  850. package/selection/range.js +17 -30
  851. package/selection/range.mjs +17 -21
  852. package/selection/selection.js +72 -160
  853. package/selection/selection.mjs +77 -137
  854. package/selection/transformation.js +23 -39
  855. package/selection/transformation.mjs +23 -36
  856. package/selection/utils.js +23 -71
  857. package/selection/utils.mjs +23 -48
  858. package/shortcuts/context.js +24 -79
  859. package/shortcuts/context.mjs +24 -56
  860. package/shortcuts/index.js +0 -2
  861. package/shortcuts/keyObserver.js +0 -9
  862. package/shortcuts/keyObserver.mjs +0 -4
  863. package/shortcuts/manager.js +17 -37
  864. package/shortcuts/manager.mjs +17 -34
  865. package/shortcuts/recorder.js +9 -40
  866. package/shortcuts/recorder.mjs +9 -31
  867. package/shortcuts/utils.js +5 -20
  868. package/shortcuts/utils.mjs +5 -6
  869. package/tableView.js +239 -330
  870. package/tableView.mjs +239 -308
  871. package/translations/changesObservable/observable.js +14 -53
  872. package/translations/changesObservable/observable.mjs +14 -43
  873. package/translations/changesObservable/observer.js +13 -31
  874. package/translations/changesObservable/observer.mjs +13 -23
  875. package/translations/changesObservable/utils.js +1 -5
  876. package/translations/changesObservable/utils.mjs +1 -4
  877. package/translations/index.js +0 -11
  878. package/translations/indexMapper.js +80 -162
  879. package/translations/indexMapper.mjs +85 -134
  880. package/translations/mapCollections/aggregatedCollection.js +14 -50
  881. package/translations/mapCollections/aggregatedCollection.mjs +14 -37
  882. package/translations/mapCollections/index.js +0 -7
  883. package/translations/mapCollections/mapCollection.js +20 -34
  884. package/translations/mapCollections/mapCollection.mjs +20 -23
  885. package/translations/maps/hidingMap.js +7 -34
  886. package/translations/maps/hidingMap.mjs +7 -22
  887. package/translations/maps/index.js +1 -24
  888. package/translations/maps/index.mjs +1 -3
  889. package/translations/maps/indexMap.js +25 -33
  890. package/translations/maps/indexMap.mjs +25 -27
  891. package/translations/maps/indexesSequence.js +8 -40
  892. package/translations/maps/indexesSequence.mjs +8 -25
  893. package/translations/maps/linkedPhysicalIndexToValueMap.js +18 -81
  894. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +17 -54
  895. package/translations/maps/physicalIndexToValueMap.js +7 -38
  896. package/translations/maps/physicalIndexToValueMap.mjs +7 -24
  897. package/translations/maps/trimmingMap.js +7 -34
  898. package/translations/maps/trimmingMap.mjs +7 -22
  899. package/translations/maps/utils/actionsOnIndexes.js +1 -7
  900. package/translations/maps/utils/actionsOnIndexes.mjs +1 -3
  901. package/translations/maps/utils/index.js +0 -13
  902. package/translations/maps/utils/index.mjs +0 -3
  903. package/translations/maps/utils/indexesSequence.js +1 -24
  904. package/translations/maps/utils/indexesSequence.mjs +1 -9
  905. package/translations/maps/utils/physicallyIndexed.js +1 -27
  906. package/translations/maps/utils/physicallyIndexed.mjs +1 -10
  907. package/utils/dataStructures/linkedList.js +23 -50
  908. package/utils/dataStructures/linkedList.mjs +23 -48
  909. package/utils/dataStructures/priorityMap.js +9 -47
  910. package/utils/dataStructures/priorityMap.mjs +9 -30
  911. package/utils/dataStructures/queue.js +19 -16
  912. package/utils/dataStructures/queue.mjs +19 -15
  913. package/utils/dataStructures/stack.js +19 -16
  914. package/utils/dataStructures/stack.mjs +19 -15
  915. package/utils/dataStructures/tree.js +19 -77
  916. package/utils/dataStructures/tree.mjs +19 -56
  917. package/utils/dataStructures/uniqueMap.js +18 -57
  918. package/utils/dataStructures/uniqueMap.mjs +18 -43
  919. package/utils/dataStructures/uniqueSet.js +5 -32
  920. package/utils/dataStructures/uniqueSet.mjs +5 -19
  921. package/utils/ghostTable.js +42 -106
  922. package/utils/ghostTable.mjs +40 -90
  923. package/utils/interval.js +17 -29
  924. package/utils/interval.mjs +18 -26
  925. package/utils/parseTable.js +11 -92
  926. package/utils/parseTable.mjs +11 -62
  927. package/utils/rootInstance.js +3 -14
  928. package/utils/rootInstance.mjs +3 -3
  929. package/utils/samplesGenerator.js +25 -51
  930. package/utils/samplesGenerator.mjs +25 -42
  931. package/utils/staticRegister.js +6 -33
  932. package/utils/staticRegister.mjs +6 -19
  933. package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
  934. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
  935. package/validators/autocompleteValidator/index.js +0 -2
  936. package/validators/dateValidator/dateValidator.js +2 -21
  937. package/validators/dateValidator/dateValidator.mjs +2 -11
  938. package/validators/dateValidator/index.js +0 -2
  939. package/validators/index.js +0 -11
  940. package/validators/index.mjs +0 -1
  941. package/validators/numericValidator/index.js +0 -2
  942. package/validators/numericValidator/numericValidator.js +1 -7
  943. package/validators/numericValidator/numericValidator.mjs +1 -3
  944. package/validators/registry.js +7 -16
  945. package/validators/registry.mjs +7 -14
  946. package/validators/timeValidator/index.js +0 -2
  947. package/validators/timeValidator/timeValidator.js +6 -18
  948. package/validators/timeValidator/timeValidator.mjs +8 -13
package/pluginHooks.js CHANGED
@@ -1,56 +1,55 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  require("core-js/modules/es.array.slice.js");
4
-
5
5
  require("core-js/modules/es.object.freeze.js");
6
-
6
+ require("core-js/modules/es.symbol.to-primitive.js");
7
+ require("core-js/modules/es.date.to-primitive.js");
8
+ require("core-js/modules/es.symbol.js");
9
+ require("core-js/modules/es.symbol.description.js");
10
+ require("core-js/modules/es.number.constructor.js");
11
+ require("core-js/modules/es.symbol.iterator.js");
7
12
  exports.__esModule = true;
8
13
  exports.default = void 0;
9
-
10
14
  require("core-js/modules/es.array.iterator.js");
11
-
12
15
  require("core-js/modules/es.map.js");
13
-
14
16
  require("core-js/modules/es.object.to-string.js");
15
-
16
17
  require("core-js/modules/es.string.iterator.js");
17
-
18
18
  require("core-js/modules/web.dom-collections.iterator.js");
19
-
20
19
  require("core-js/modules/es.array.index-of.js");
21
-
22
20
  require("core-js/modules/es.array.splice.js");
23
-
24
21
  var _array = require("./helpers/array");
25
-
26
22
  var _object = require("./helpers/object");
27
-
28
23
  var _string = require("./helpers/string");
29
-
30
24
  var _console = require("./helpers/console");
31
-
32
25
  var _templateLiteralTag = require("./helpers/templateLiteralTag");
33
-
34
26
  var _function = require("./helpers/function");
35
-
36
27
  var _templateObject;
37
-
38
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39
-
40
- 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
-
29
+ 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, _toPropertyKey(descriptor.key), descriptor); } }
42
30
  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
-
31
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
32
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
44
33
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
45
-
34
+ /* eslint-disable jsdoc/require-description-complete-sentence */
46
35
  /**
47
36
  * @description
37
+ *
38
+ * ::: only-for javascript
48
39
  * Handsontable events are the common interface that function in 2 ways: as __callbacks__ and as __hooks__.
40
+ * :::
41
+ *
42
+ * ::: only-for react
43
+ * This page lists all the **Handsontable hooks** – callbacks that let you react before or after an action occurs.
44
+ *
45
+ * Read more on the [Events and hooks](@/guides/getting-started/events-and-hooks.md) page.
46
+ * :::
49
47
  *
50
48
  * @example
51
49
  *
50
+ * ::: only-for javascript
52
51
  * ```js
53
- * // Using events as callbacks:
52
+ * // using events as callbacks
54
53
  * ...
55
54
  * const hot1 = new Handsontable(document.getElementById('example1'), {
56
55
  * afterChange: function(changes, source) {
@@ -62,9 +61,27 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
62
61
  * });
63
62
  * ...
64
63
  * ```
64
+ * :::
65
+ *
66
+ * ::: only-for react
67
+ * ```jsx
68
+ * <HotTable
69
+ * afterChange={(changes, source) => {
70
+ * fetch('save.php', {
71
+ * method: 'POST',
72
+ * headers: {
73
+ * 'Accept': 'application/json',
74
+ * 'Content-Type': 'application/json'
75
+ * },
76
+ * body: JSON.stringify(changes)
77
+ * });
78
+ * }}
79
+ * />
80
+ * :::
65
81
  *
82
+ * ::: only-for javascript
66
83
  * ```js
67
- * // Using events as plugin hooks:
84
+ * // using events as plugin hooks
68
85
  * ...
69
86
  * const hot1 = new Handsontable(document.getElementById('example1'), {
70
87
  * myPlugin: true
@@ -87,12 +104,47 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
87
104
  * // function body - will only run in #example2
88
105
  * });
89
106
  * ```
107
+ * :::
108
+ *
109
+ * ::: only-for react
110
+ * ```jsx
111
+ * const hotRef1 = useRef(null);
112
+ * const hotRef2 = useRef(null);
113
+ *
114
+ * // Using events as plugin hooks:
115
+ * ...
116
+ *
117
+ * <HotTable
118
+ * ref={hotRef1}
119
+ * myPlugin={true}
120
+ * });
121
+ *
122
+ * <HotTable
123
+ * ref={hotRef2}
124
+ * myPlugin={false}
125
+ * });
126
+ *
127
+ * ...
128
+ *
129
+ * const hot2 = hotRef2.current.hotInstance;
130
+ * // local hook (has same effect as a callback)
131
+ * hot2.addHook('afterChange', function() {
132
+ * // function body - will only run in #example2
133
+ * });
134
+ *
135
+ * // global hook
136
+ * Handsontable.hooks.add('afterChange', function() {
137
+ * // Fired twice - for hot1 and hot2
138
+ * if (this.getSettings().myPlugin) {
139
+ * // function body - will only run for first instance
140
+ * }
141
+ * });
142
+ * :::
90
143
  * ...
91
144
  */
92
- // @TODO: Move plugin description hooks to plugin?
93
- var REGISTERED_HOOKS = [
94
- /* eslint-disable jsdoc/require-description-complete-sentence */
95
145
 
146
+ // @TODO: Move plugin description hooks to plugin?
147
+ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sentence */
96
148
  /**
97
149
  * Fired after resetting a cell's meta. This happens when the {@link Core#updateSettings} method is called.
98
150
  *
@@ -109,15 +161,29 @@ var REGISTERED_HOOKS = [
109
161
  * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
110
162
  * @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
163
  * @example
164
+ * ::: only-for javascript
112
165
  * ```js
113
166
  * new Handsontable(element, {
114
167
  * afterChange: (changes) => {
115
- * changes.forEach(([row, prop, oldValue, newValue]) => {
168
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
116
169
  * // Some logic...
117
170
  * });
118
171
  * }
119
172
  * })
120
173
  * ```
174
+ * :::
175
+ *
176
+ * ::: only-for react
177
+ * ```jsx
178
+ * <HotTable
179
+ * afterChange={(changes, source) => {
180
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
181
+ * // Some logic...
182
+ * });
183
+ * }}
184
+ * />
185
+ * ```
186
+ * :::
121
187
  */
122
188
  'afterChange',
123
189
  /**
@@ -200,6 +266,7 @@ var REGISTERED_HOOKS = [
200
266
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
201
267
  * @returns {*} If `false` then creating columns is cancelled.
202
268
  * @example
269
+ * ::: only-for javascript
203
270
  * ```js
204
271
  * // Return `false` to cancel column inserting.
205
272
  * new Handsontable(element, {
@@ -208,6 +275,18 @@ var REGISTERED_HOOKS = [
208
275
  * }
209
276
  * });
210
277
  * ```
278
+ * :::
279
+ *
280
+ * ::: only-for react
281
+ * ```jsx
282
+ * // Return `false` to cancel column inserting.
283
+ * <HotTable
284
+ * beforeCreateCol={(data, coords) => {
285
+ * return false;
286
+ * }}
287
+ * />
288
+ * ```
289
+ * :::
211
290
  */
212
291
  'beforeCreateCol',
213
292
  /**
@@ -295,6 +374,10 @@ var REGISTERED_HOOKS = [
295
374
  * @event Hooks#afterGetColHeader
296
375
  * @param {number} column Visual column index.
297
376
  * @param {HTMLTableCellElement} TH Header's TH element.
377
+ * @param {number} [headerLevel=0] (Since 12.2.0) Header level index. Accepts positive (0 to n)
378
+ * and negative (-1 to -n) values. For positive values, 0 points to the
379
+ * topmost header. For negative values, -1 points to the bottom-most
380
+ * header (the header closest to the cells).
298
381
  */
299
382
  'afterGetColHeader',
300
383
  /**
@@ -494,6 +577,7 @@ var REGISTERED_HOOKS = [
494
577
  * @param {object} preventScrolling Object with `value` property where its value change will be observed.
495
578
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
496
579
  * @example
580
+ * ::: only-for javascript
497
581
  * ```js
498
582
  * new Handsontable(element, {
499
583
  * afterSelection: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
@@ -505,6 +589,21 @@ var REGISTERED_HOOKS = [
505
589
  * }
506
590
  * })
507
591
  * ```
592
+ * :::
593
+ *
594
+ * ::: only-for react
595
+ * ```jsx
596
+ * <HotTable
597
+ * afterSelection={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
598
+ * // If set to `false` (default): when cell selection is outside the viewport,
599
+ * // Handsontable scrolls the viewport to cell selection's end corner.
600
+ * // If set to `true`: when cell selection is outside the viewport,
601
+ * // Handsontable doesn't scroll to cell selection's end corner.
602
+ * preventScrolling.value = true;
603
+ * }}
604
+ * />
605
+ * ```
606
+ * :::
508
607
  */
509
608
  'afterSelection',
510
609
  /**
@@ -521,6 +620,7 @@ var REGISTERED_HOOKS = [
521
620
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
522
621
  * @example
523
622
  * ```js
623
+ * ::: only-for javascript
524
624
  * new Handsontable(element, {
525
625
  * afterSelectionByProp: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
526
626
  * // setting if prevent scrolling after selection
@@ -528,6 +628,18 @@ var REGISTERED_HOOKS = [
528
628
  * }
529
629
  * })
530
630
  * ```
631
+ * :::
632
+ *
633
+ * ::: only-for react
634
+ * ```jsx
635
+ * <HotTable
636
+ * afterSelectionByProp={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
637
+ * // setting if prevent scrolling after selection
638
+ * preventScrolling.value = true;
639
+ * }}
640
+ * />
641
+ * ```
642
+ * :::
531
643
  */
532
644
  'afterSelectionByProp',
533
645
  /**
@@ -689,8 +801,11 @@ var REGISTERED_HOOKS = [
689
801
  */
690
802
  'beforeCellAlignment',
691
803
  /**
692
- * Fired before one or more cells is changed. Its main purpose is to alter changes silently after input and before
693
- * table rendering.
804
+ * Fired before one or more cells are changed.
805
+ *
806
+ * Use this hook to silently alter the user's changes before Handsontable re-renders.
807
+ *
808
+ * To ignore the user's changes, use a nullified array or return `false`.
694
809
  *
695
810
  * @event Hooks#beforeChange
696
811
  * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
@@ -698,22 +813,27 @@ var REGISTERED_HOOKS = [
698
813
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
699
814
  * @returns {undefined | boolean} If `false` all changes were cancelled, `true` otherwise.
700
815
  * @example
816
+ * ::: only-for javascript
701
817
  * ```js
702
- * // To disregard a single change, set changes[i] to null or remove it from array using changes.splice(i, 1).
818
+ * // to alter a single change, overwrite the value with `changes[i][3]`
703
819
  * new Handsontable(element, {
704
820
  * beforeChange: (changes, source) => {
705
821
  * // [[row, prop, oldVal, newVal], ...]
706
- * changes[0] = null;
822
+ * changes[0][3] = 10;
707
823
  * }
708
824
  * });
709
- * // To alter a single change, overwrite the desired value to changes[i][3].
825
+ *
826
+ * // to ignore a single change, set `changes[i]` to `null`
827
+ * // or remove `changes[i]` from the array, by using `changes.splice(i, 1)`
710
828
  * new Handsontable(element, {
711
829
  * beforeChange: (changes, source) => {
712
830
  * // [[row, prop, oldVal, newVal], ...]
713
- * changes[0][3] = 10;
831
+ * changes[0] = null;
714
832
  * }
715
833
  * });
716
- * // To cancel all edit, return false from the callback or set array length to 0 (changes.length = 0).
834
+ *
835
+ * // to ignore all changes, return `false`
836
+ * // or set the array's length to 0, by using `changes.length = 0`
717
837
  * new Handsontable(element, {
718
838
  * beforeChange: (changes, source) => {
719
839
  * // [[row, prop, oldVal, newVal], ...]
@@ -721,6 +841,37 @@ var REGISTERED_HOOKS = [
721
841
  * }
722
842
  * });
723
843
  * ```
844
+ * :::
845
+ *
846
+ * ::: only-for react
847
+ * ```jsx
848
+ * // to alter a single change, overwrite the desired value with `changes[i][3]`
849
+ * <HotTable
850
+ * beforeChange={(changes, source) => {
851
+ * // [[row, prop, oldVal, newVal], ...]
852
+ * changes[0][3] = 10;
853
+ * }}
854
+ * />
855
+ *
856
+ * // to ignore a single change, set `changes[i]` to `null`
857
+ * // or remove `changes[i]` from the array, by using changes.splice(i, 1).
858
+ * <HotTable
859
+ * beforeChange={(changes, source) => {
860
+ * // [[row, prop, oldVal, newVal], ...]
861
+ * changes[0] = null;
862
+ * }}
863
+ * />
864
+ *
865
+ * // to ignore all changes, return `false`
866
+ * // or set the array's length to 0 (`changes.length = 0`)
867
+ * <HotTable
868
+ * beforeChange={(changes, source) => {
869
+ * // [[row, prop, oldVal, newVal], ...]
870
+ * return false;
871
+ * }}
872
+ * />
873
+ * ```
874
+ * :::
724
875
  */
725
876
  'beforeChange',
726
877
  /**
@@ -1177,7 +1328,7 @@ var REGISTERED_HOOKS = [
1177
1328
  */
1178
1329
  'modifyCopyableRange',
1179
1330
  /**
1180
- * Fired by {@link CopyPaste} plugin before copying the values into clipboard and before clearing values of
1331
+ * Fired by {@link CopyPaste} plugin before copying the values to the clipboard and before clearing values of
1181
1332
  * the selected cells. This hook is fired when {@link Options#copyPaste} option is enabled.
1182
1333
  *
1183
1334
  * @event Hooks#beforeCut
@@ -1186,6 +1337,7 @@ var REGISTERED_HOOKS = [
1186
1337
  * which will be cut out.
1187
1338
  * @returns {*} If returns `false` then operation of the cutting out is canceled.
1188
1339
  * @example
1340
+ * ::: only-for javascript
1189
1341
  * ```js
1190
1342
  * // To disregard a single row, remove it from the array using data.splice(i, 1).
1191
1343
  * new Handsontable(element, {
@@ -1203,6 +1355,27 @@ var REGISTERED_HOOKS = [
1203
1355
  * }
1204
1356
  * });
1205
1357
  * ```
1358
+ * :::
1359
+ *
1360
+ * ::: only-for react
1361
+ * ```jsx
1362
+ * // To disregard a single row, remove it from the array using data.splice(i, 1).
1363
+ * <HotTable
1364
+ * beforeCut={(data, coords) => {
1365
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1366
+ * data.splice(0, 1);
1367
+ * // data -> [[4, 5, 6]]
1368
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1369
+ * }}
1370
+ * />
1371
+ * // To cancel a cutting action, just return `false`.
1372
+ * <HotTable
1373
+ * beforeCut={(data, coords) => {
1374
+ * return false;
1375
+ * }}
1376
+ * />
1377
+ * ```
1378
+ * :::
1206
1379
  */
1207
1380
  'beforeCut',
1208
1381
  /**
@@ -1210,21 +1383,23 @@ var REGISTERED_HOOKS = [
1210
1383
  * {@link Options#copyPaste} option is enabled.
1211
1384
  *
1212
1385
  * @event Hooks#afterCut
1213
- * @param {Array[]} data An array of arrays which contains the cutted out data.
1386
+ * @param {Array[]} data An array of arrays with the cut data.
1214
1387
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1215
1388
  * which was cut out.
1216
1389
  */
1217
1390
  'afterCut',
1218
1391
  /**
1219
- * Fired before values are copied into clipboard.
1392
+ * Fired before values are copied to the clipboard.
1220
1393
  *
1221
1394
  * @event Hooks#beforeCopy
1222
1395
  * @param {Array[]} data An array of arrays which contains data to copied.
1223
1396
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1224
1397
  * which will copied.
1398
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1225
1399
  * @returns {*} If returns `false` then copying is canceled.
1226
1400
  *
1227
1401
  * @example
1402
+ * ::: only-for javascript
1228
1403
  * ```js
1229
1404
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1230
1405
  * ...
@@ -1247,6 +1422,32 @@ var REGISTERED_HOOKS = [
1247
1422
  * });
1248
1423
  * ...
1249
1424
  * ```
1425
+ * :::
1426
+ *
1427
+ * ::: only-for react
1428
+ * ```jsx
1429
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1430
+ * ...
1431
+ * <HotTable
1432
+ * beforeCopy={(data, coords) => {
1433
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1434
+ * data.splice(0, 1);
1435
+ * // data -> [[4, 5, 6]]
1436
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1437
+ * }}
1438
+ * />
1439
+ * ...
1440
+ *
1441
+ * // To cancel copying, return false from the callback.
1442
+ * ...
1443
+ * <HotTable
1444
+ * beforeCopy={(data, coords) => {
1445
+ * return false;
1446
+ * }}
1447
+ * />
1448
+ * ...
1449
+ * ```
1450
+ * :::
1250
1451
  */
1251
1452
  'beforeCopy',
1252
1453
  /**
@@ -1257,6 +1458,7 @@ var REGISTERED_HOOKS = [
1257
1458
  * @param {Array[]} data An array of arrays which contains the copied data.
1258
1459
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1259
1460
  * which was copied.
1461
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1260
1462
  */
1261
1463
  'afterCopy',
1262
1464
  /**
@@ -1270,6 +1472,7 @@ var REGISTERED_HOOKS = [
1270
1472
  * @returns {*} If returns `false` then pasting is canceled.
1271
1473
  * @example
1272
1474
  * ```js
1475
+ * ::: only-for javascript
1273
1476
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1274
1477
  * new Handsontable(example, {
1275
1478
  * beforePaste: (data, coords) => {
@@ -1286,6 +1489,27 @@ var REGISTERED_HOOKS = [
1286
1489
  * }
1287
1490
  * });
1288
1491
  * ```
1492
+ * :::
1493
+ *
1494
+ * ::: only-for react
1495
+ * ```jsx
1496
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1497
+ * <HotTable
1498
+ * beforePaste={(data, coords) => {
1499
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1500
+ * data.splice(0, 1);
1501
+ * // data -> [[4, 5, 6]]
1502
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1503
+ * }}
1504
+ * />
1505
+ * // To cancel pasting, return false from the callback.
1506
+ * <HotTable
1507
+ * beforePaste={(data, coords) => {
1508
+ * return false;
1509
+ * }}
1510
+ * />
1511
+ * ```
1512
+ * :::
1289
1513
  */
1290
1514
  'beforePaste',
1291
1515
  /**
@@ -1293,7 +1517,7 @@ var REGISTERED_HOOKS = [
1293
1517
  * {@link Options#copyPaste} option is enabled.
1294
1518
  *
1295
1519
  * @event Hooks#afterPaste
1296
- * @param {Array[]} data An array of arrays which contains the pasted data.
1520
+ * @param {Array[]} data An array of arrays with the pasted data.
1297
1521
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1298
1522
  * that correspond to the previously selected area.
1299
1523
  */
@@ -1478,13 +1702,22 @@ var REGISTERED_HOOKS = [
1478
1702
  */
1479
1703
  'beforeStretchingColumnWidth',
1480
1704
  /**
1481
- * Fired by {@link Filters} plugin before applying [filtering](@/guides/columns/column-filter.md).
1482
- * This hook is fired when {@link Options#filters} option is enabled.
1705
+ * Fired by the [`Filters`](@/api/filters.md) plugin,
1706
+ * before a [column filter](@/guides/columns/column-filter.md) gets applied.
1707
+ *
1708
+ * [`beforeFilter`](#beforefilter) takes one argument (`conditionsStack`), which is an array of objects.
1709
+ * Each object represents one of your [column filters](@/api/filters.md#addcondition),
1710
+ * and consists of the following properties:
1711
+ *
1712
+ * | Property | Possible values | Description |
1713
+ * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
1714
+ * | `column` | Number | A visual index of the column to which the filter will be applied. |
1715
+ * | `conditions` | Array of objects | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1716
+ * | `operation` | `'conjunction'` \| `'disjunction'` \| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1717
+ *
1718
+ * An example of the format of the `conditionsStack` argument:
1483
1719
  *
1484
- * @event Hooks#beforeFilter
1485
- * @param {object[]} conditionsStack An array of objects with added formulas.
1486
1720
  * ```js
1487
- * // Example format of the conditionsStack argument:
1488
1721
  * [
1489
1722
  * {
1490
1723
  * column: 2,
@@ -1502,17 +1735,47 @@ var REGISTERED_HOOKS = [
1502
1735
  * },
1503
1736
  * ]
1504
1737
  * ```
1505
- * @returns {boolean} If hook returns `false` value then filtering won't be applied on the UI side (server-side filtering).
1738
+ *
1739
+ * To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI),
1740
+ * set [`beforeFilter`](#beforefilter) to return `false`:
1741
+ *
1742
+ * ```js
1743
+ * new Handsontable(document.getElementById('example'), {
1744
+ * beforeFilter: (conditionsStack) => {
1745
+ * return false;
1746
+ * }
1747
+ * });
1748
+ *```
1749
+ *
1750
+ * Read more:
1751
+ * - [Guides: Column filter](@/guides/columns/column-filter.md)
1752
+ * - [Hooks: `afterFilter`](#afterfilter)
1753
+ * - [Options: `filters`](@/api/options.md#filters)
1754
+ * - [Plugins: `Filters`](@/api/filters.md)
1755
+ * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)
1756
+ *
1757
+ * @event Hooks#beforeFilter
1758
+ * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).
1759
+ * @returns {boolean} To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI), return `false`.
1506
1760
  */
1507
1761
  'beforeFilter',
1508
1762
  /**
1509
- * Fired by {@link Filters} plugin after applying [filtering](@/guides/columns/column-filter.md).
1510
- * This hook is fired when {@link Options#filters} option is enabled.
1763
+ * Fired by the [`Filters`](@/api/filters.md) plugin,
1764
+ * after a [column filter](@/guides/columns/column-filter.md) gets applied.
1765
+ *
1766
+ * [`afterFilter`](#afterfilter) takes one argument (`conditionsStack`), which is an array of objects.
1767
+ * Each object represents one of your [column filters](@/api/filters.md#addcondition),
1768
+ * and consists of the following properties:
1769
+ *
1770
+ * | Property | Possible values | Description |
1771
+ * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
1772
+ * | `column` | Number | A visual index of the column to which the filter was applied. |
1773
+ * | `conditions` | Array of objects | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1774
+ * | `operation` | `'conjunction'` \| `'disjunction'` \| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1775
+ *
1776
+ * An example of the format of the `conditionsStack` argument:
1511
1777
  *
1512
- * @event Hooks#afterFilter
1513
- * @param {object[]} conditionsStack An array of objects with added conditions.
1514
1778
  * ```js
1515
- * // Example format of the conditionsStack argument:
1516
1779
  * [
1517
1780
  * {
1518
1781
  * column: 2,
@@ -1530,18 +1793,38 @@ var REGISTERED_HOOKS = [
1530
1793
  * },
1531
1794
  * ]
1532
1795
  * ```
1796
+ *
1797
+ * Read more:
1798
+ * - [Guides: Column filter](@/guides/columns/column-filter.md)
1799
+ * - [Hooks: `beforeFilter`](#beforefilter)
1800
+ * - [Options: `filters`](@/api/options.md#filters)
1801
+ * - [Plugins: `Filters`](@/api/filters.md)
1802
+ * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)
1803
+ *
1804
+ * @event Hooks#afterFilter
1805
+ * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).
1533
1806
  */
1534
1807
  'afterFilter',
1535
1808
  /**
1536
- * Called when a value is updated in the engine.
1809
+ * Fired by the {@link Formulas} plugin, when any cell value changes.
1810
+ *
1811
+ * Returns an array of objects that contains:
1812
+ * - The addresses (`sheet`, `row`, `col`) and new values (`newValue`) of the changed cells.
1813
+ * - The addresses and new values of any cells that had to be recalculated (because their formulas depend on the cells that changed).
1814
+ *
1815
+ * This hook gets also fired on Handsontable's initialization, returning the addresses and values of all cells.
1816
+ *
1817
+ * Read more:
1818
+ * - [Guides: Formula calculation](@/guides/formulas/formula-calculation.md)
1819
+ * - [HyperFormula documentation: `valuesUpdated`](https://hyperformula.handsontable.com/api/interfaces/listeners.html#valuesupdated)
1537
1820
  *
1538
1821
  * @since 9.0.0
1539
1822
  * @event Hooks#afterFormulasValuesUpdate
1540
- * @param {Array} changes The values and location of applied changes.
1823
+ * @param {Array} changes The addresses and new values of all the changed and recalculated cells.
1541
1824
  */
1542
1825
  'afterFormulasValuesUpdate',
1543
1826
  /**
1544
- * Called when a named expression is added to the Formulas' engine instance.
1827
+ * Fired when a named expression is added to the Formulas' engine instance.
1545
1828
  *
1546
1829
  * @since 9.0.0
1547
1830
  * @event Hooks#afterNamedExpressionAdded
@@ -1550,7 +1833,7 @@ var REGISTERED_HOOKS = [
1550
1833
  */
1551
1834
  'afterNamedExpressionAdded',
1552
1835
  /**
1553
- * Called when a named expression is removed from the Formulas' engine instance.
1836
+ * Fired when a named expression is removed from the Formulas' engine instance.
1554
1837
  *
1555
1838
  * @since 9.0.0
1556
1839
  * @event Hooks#afterNamedExpressionRemoved
@@ -1559,7 +1842,7 @@ var REGISTERED_HOOKS = [
1559
1842
  */
1560
1843
  'afterNamedExpressionRemoved',
1561
1844
  /**
1562
- * Called when a new sheet is added to the Formulas' engine instance.
1845
+ * Fired when a new sheet is added to the Formulas' engine instance.
1563
1846
  *
1564
1847
  * @since 9.0.0
1565
1848
  * @event Hooks#afterSheetAdded
@@ -1567,7 +1850,7 @@ var REGISTERED_HOOKS = [
1567
1850
  */
1568
1851
  'afterSheetAdded',
1569
1852
  /**
1570
- * Called when a sheet in the Formulas' engine instance is renamed.
1853
+ * Fired when a sheet in the Formulas' engine instance is renamed.
1571
1854
  *
1572
1855
  * @since 9.0.0
1573
1856
  * @event Hooks#afterSheetRenamed
@@ -1576,7 +1859,7 @@ var REGISTERED_HOOKS = [
1576
1859
  */
1577
1860
  'afterSheetRenamed',
1578
1861
  /**
1579
- * Called when a sheet is removed from the Formulas' engine instance.
1862
+ * Fired when a sheet is removed from the Formulas' engine instance.
1580
1863
  *
1581
1864
  * @since 9.0.0
1582
1865
  * @event Hooks#afterSheetRemoved
@@ -1590,6 +1873,20 @@ var REGISTERED_HOOKS = [
1590
1873
  * @event Hooks#modifyColumnHeaderHeight
1591
1874
  */
1592
1875
  'modifyColumnHeaderHeight',
1876
+ /**
1877
+ * Fired while retrieving a column header's value.
1878
+ *
1879
+ * @since 12.3.0
1880
+ * @event Hooks#modifyColumnHeaderValue
1881
+ * @param {string} value A column header value.
1882
+ * @param {number} visualColumnIndex A visual column index.
1883
+ * @param {number} [headerLevel=0] Header level index. Accepts positive (0 to n)
1884
+ * and negative (-1 to -n) values. For positive values, 0 points to the
1885
+ * topmost header. For negative values, -1 points to the bottom-most
1886
+ * header (the header closest to the cells).
1887
+ * @returns {string} The column header value to be updated.
1888
+ */
1889
+ 'modifyColumnHeaderValue',
1593
1890
  /**
1594
1891
  * Fired by {@link UndoRedo} plugin before the undo action. Contains information about the action that is being undone.
1595
1892
  * This hook is fired when {@link Options#undo} option is enabled.
@@ -1990,7 +2287,7 @@ var REGISTERED_HOOKS = [
1990
2287
  */
1991
2288
  'afterUnlisten',
1992
2289
  /**
1993
- * Fired after the window was resized.
2290
+ * Fired after the window was resized or the size of the Handsontable root element was changed.
1994
2291
  *
1995
2292
  * @event Hooks#afterRefreshDimensions
1996
2293
  * @param {object} previousDimensions Previous dimensions of the container.
@@ -1999,7 +2296,8 @@ var REGISTERED_HOOKS = [
1999
2296
  */
2000
2297
  'afterRefreshDimensions',
2001
2298
  /**
2002
- * Cancellable hook, called after resizing a window, but before redrawing a table.
2299
+ * Cancellable hook, called after resizing a window or after detecting size change of the
2300
+ * Handsontable root element, but before redrawing a table.
2003
2301
  *
2004
2302
  * @event Hooks#beforeRefreshDimensions
2005
2303
  * @param {object} previousDimensions Previous dimensions of the container.
@@ -2062,13 +2360,14 @@ var REGISTERED_HOOKS = [
2062
2360
  * @param {*} cellValue Value of the cell.
2063
2361
  */
2064
2362
  'modifyAutoColumnSizeSeed'];
2363
+
2065
2364
  /**
2066
2365
  * Template warning message for removed hooks.
2067
2366
  *
2068
2367
  * @type {string}
2069
2368
  */
2070
-
2071
2369
  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."])));
2370
+
2072
2371
  /**
2073
2372
  * The list of the hooks which are removed from the API. The warning message is printed out in
2074
2373
  * the developer console when the hook is used.
@@ -2078,10 +2377,9 @@ var REMOVED_MESSAGE = (0, _templateLiteralTag.toSingleLine)(_templateObject || (
2078
2377
  *
2079
2378
  * @type {Map<string, string>}
2080
2379
  */
2081
-
2082
2380
  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']]);
2083
- /* eslint-disable jsdoc/require-description-complete-sentence */
2084
2381
 
2382
+ /* eslint-disable jsdoc/require-description-complete-sentence */
2085
2383
  /**
2086
2384
  * The list of the hooks which are deprecated. The warning message is printed out in
2087
2385
  * the developer console when the hook is used.
@@ -2101,20 +2399,17 @@ var REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], ['u
2101
2399
  *
2102
2400
  * @type {Map<string, string>}
2103
2401
  */
2104
-
2105
2402
  /* eslint-enable jsdoc/require-description-complete-sentence */
2106
-
2107
2403
  var DEPRECATED_HOOKS = new Map([['beforeAutofillInsidePopulate', 'The plugin hook "beforeAutofillInsidePopulate" is deprecated and will be removed in the next major release.']]);
2108
-
2109
2404
  var Hooks = /*#__PURE__*/function () {
2110
2405
  /**
2111
2406
  *
2112
2407
  */
2113
2408
  function Hooks() {
2114
2409
  _classCallCheck(this, Hooks);
2115
-
2116
2410
  this.globalBucket = this.createEmptyBucket();
2117
2411
  }
2412
+
2118
2413
  /**
2119
2414
  * Returns a new object with empty handlers related to every registered hook name.
2120
2415
  *
@@ -2133,40 +2428,37 @@ var Hooks = /*#__PURE__*/function () {
2133
2428
  * }
2134
2429
  * ```
2135
2430
  */
2136
-
2137
-
2138
2431
  _createClass(Hooks, [{
2139
2432
  key: "createEmptyBucket",
2140
2433
  value: function createEmptyBucket() {
2141
- var bucket = Object.create(null); // eslint-disable-next-line no-return-assign
2434
+ var bucket = Object.create(null);
2142
2435
 
2436
+ // eslint-disable-next-line no-return-assign
2143
2437
  (0, _array.arrayEach)(REGISTERED_HOOKS, function (hook) {
2144
2438
  return bucket[hook] = [];
2145
2439
  });
2146
2440
  return bucket;
2147
2441
  }
2442
+
2148
2443
  /**
2149
2444
  * Get hook bucket based on the context of the object or if argument is `undefined`, get the global hook bucket.
2150
2445
  *
2151
2446
  * @param {object} [context=null] A Handsontable instance.
2152
2447
  * @returns {object} Returns a global or Handsontable instance bucket.
2153
2448
  */
2154
-
2155
2449
  }, {
2156
2450
  key: "getBucket",
2157
2451
  value: function getBucket() {
2158
2452
  var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2159
-
2160
2453
  if (context) {
2161
2454
  if (!context.pluginHookBucket) {
2162
2455
  context.pluginHookBucket = this.createEmptyBucket();
2163
2456
  }
2164
-
2165
2457
  return context.pluginHookBucket;
2166
2458
  }
2167
-
2168
2459
  return this.globalBucket;
2169
2460
  }
2461
+
2170
2462
  /**
2171
2463
  * Adds a listener (globally or locally) to a specified hook name.
2172
2464
  * If the `context` parameter is provided, the hook will be added only to the instance it references.
@@ -2195,14 +2487,11 @@ var Hooks = /*#__PURE__*/function () {
2195
2487
  * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);
2196
2488
  * ```
2197
2489
  */
2198
-
2199
2490
  }, {
2200
2491
  key: "add",
2201
2492
  value: function add(key, callback) {
2202
2493
  var _this = this;
2203
-
2204
2494
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2205
-
2206
2495
  if (Array.isArray(callback)) {
2207
2496
  (0, _array.arrayEach)(callback, function (c) {
2208
2497
  return _this.add(key, c, context);
@@ -2214,24 +2503,18 @@ var Hooks = /*#__PURE__*/function () {
2214
2503
  removedInVersion: REMOVED_HOOKS.get(key)
2215
2504
  }));
2216
2505
  }
2217
-
2218
2506
  if (DEPRECATED_HOOKS.has(key)) {
2219
2507
  (0, _console.warn)(DEPRECATED_HOOKS.get(key));
2220
2508
  }
2221
-
2222
2509
  var bucket = this.getBucket(context);
2223
-
2224
2510
  if (typeof bucket[key] === 'undefined') {
2225
2511
  this.register(key);
2226
2512
  bucket[key] = [];
2227
2513
  }
2228
-
2229
2514
  callback.skip = false;
2230
-
2231
2515
  if (bucket[key].indexOf(callback) === -1) {
2232
2516
  // only add a hook if it has not already been added (adding the same hook twice is now silently ignored)
2233
2517
  var foundInitialHook = false;
2234
-
2235
2518
  if (callback.initialHook) {
2236
2519
  (0, _array.arrayEach)(bucket[key], function (cb, i) {
2237
2520
  if (cb.initialHook) {
@@ -2241,15 +2524,14 @@ var Hooks = /*#__PURE__*/function () {
2241
2524
  }
2242
2525
  });
2243
2526
  }
2244
-
2245
2527
  if (!foundInitialHook) {
2246
2528
  bucket[key].push(callback);
2247
2529
  }
2248
2530
  }
2249
2531
  }
2250
-
2251
2532
  return this;
2252
2533
  }
2534
+
2253
2535
  /**
2254
2536
  * Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.
2255
2537
  *
@@ -2263,14 +2545,11 @@ var Hooks = /*#__PURE__*/function () {
2263
2545
  * Handsontable.hooks.once('beforeInit', myCallback, hotInstance);
2264
2546
  * ```
2265
2547
  */
2266
-
2267
2548
  }, {
2268
2549
  key: "once",
2269
2550
  value: function once(key, callback) {
2270
2551
  var _this2 = this;
2271
-
2272
2552
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2273
-
2274
2553
  if (Array.isArray(callback)) {
2275
2554
  (0, _array.arrayEach)(callback, function (c) {
2276
2555
  return _this2.once(key, c, context);
@@ -2280,6 +2559,7 @@ var Hooks = /*#__PURE__*/function () {
2280
2559
  this.add(key, callback, context);
2281
2560
  }
2282
2561
  }
2562
+
2283
2563
  /**
2284
2564
  * 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.
2285
2565
  *
@@ -2294,22 +2574,20 @@ var Hooks = /*#__PURE__*/function () {
2294
2574
  * Handsontable.hooks.remove('beforeInit', myCallback);
2295
2575
  * ```
2296
2576
  */
2297
-
2298
2577
  }, {
2299
2578
  key: "remove",
2300
2579
  value: function remove(key, callback) {
2301
2580
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2302
2581
  var bucket = this.getBucket(context);
2303
-
2304
2582
  if (typeof bucket[key] !== 'undefined') {
2305
2583
  if (bucket[key].indexOf(callback) >= 0) {
2306
2584
  callback.skip = true;
2307
2585
  return true;
2308
2586
  }
2309
2587
  }
2310
-
2311
2588
  return false;
2312
2589
  }
2590
+
2313
2591
  /**
2314
2592
  * Checks whether there are any registered listeners for the provided hook name.
2315
2593
  * If the `context` parameter is provided, it only checks for listeners assigned to the given Handsontable instance.
@@ -2318,7 +2596,6 @@ var Hooks = /*#__PURE__*/function () {
2318
2596
  * @param {object} [context=null] A Handsontable instance.
2319
2597
  * @returns {boolean} `true` for success, `false` otherwise.
2320
2598
  */
2321
-
2322
2599
  }, {
2323
2600
  key: "has",
2324
2601
  value: function has(key) {
@@ -2326,6 +2603,7 @@ var Hooks = /*#__PURE__*/function () {
2326
2603
  var bucket = this.getBucket(context);
2327
2604
  return !!(bucket[key] !== void 0 && bucket[key].length);
2328
2605
  }
2606
+
2329
2607
  /**
2330
2608
  * Runs all local and global callbacks assigned to the hook identified by the `key` parameter.
2331
2609
  * It returns either a return value from the last called callback or the first parameter (`p1`) passed to the `run` function.
@@ -2346,7 +2624,6 @@ var Hooks = /*#__PURE__*/function () {
2346
2624
  * Handsontable.hooks.run(hot, 'beforeInit');
2347
2625
  * ```
2348
2626
  */
2349
-
2350
2627
  }, {
2351
2628
  key: "run",
2352
2629
  value: function run(context, key, p1, p2, p3, p4, p5, p6) {
@@ -2354,66 +2631,53 @@ var Hooks = /*#__PURE__*/function () {
2354
2631
  var globalHandlers = this.globalBucket[key];
2355
2632
  var length = globalHandlers ? globalHandlers.length : 0;
2356
2633
  var index = 0;
2357
-
2358
2634
  if (length) {
2359
2635
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2360
2636
  while (index < length) {
2361
2637
  if (!globalHandlers[index] || globalHandlers[index].skip) {
2362
2638
  index += 1;
2363
2639
  /* eslint-disable no-continue */
2364
-
2365
2640
  continue;
2366
2641
  }
2367
-
2368
2642
  var res = (0, _function.fastCall)(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);
2369
-
2370
2643
  if (res !== void 0) {
2371
2644
  // eslint-disable-next-line no-param-reassign
2372
2645
  p1 = res;
2373
2646
  }
2374
-
2375
2647
  if (globalHandlers[index] && globalHandlers[index].runOnce) {
2376
2648
  this.remove(key, globalHandlers[index]);
2377
2649
  }
2378
-
2379
2650
  index += 1;
2380
2651
  }
2381
2652
  }
2382
2653
  }
2383
2654
  {
2384
2655
  var localHandlers = this.getBucket(context)[key];
2385
-
2386
2656
  var _length = localHandlers ? localHandlers.length : 0;
2387
-
2388
2657
  var _index = 0;
2389
-
2390
2658
  if (_length) {
2391
2659
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2392
2660
  while (_index < _length) {
2393
2661
  if (!localHandlers[_index] || localHandlers[_index].skip) {
2394
2662
  _index += 1;
2395
2663
  /* eslint-disable no-continue */
2396
-
2397
2664
  continue;
2398
2665
  }
2399
-
2400
2666
  var _res = (0, _function.fastCall)(localHandlers[_index], context, p1, p2, p3, p4, p5, p6);
2401
-
2402
2667
  if (_res !== void 0) {
2403
2668
  // eslint-disable-next-line no-param-reassign
2404
2669
  p1 = _res;
2405
2670
  }
2406
-
2407
2671
  if (localHandlers[_index] && localHandlers[_index].runOnce) {
2408
2672
  this.remove(key, localHandlers[_index], context);
2409
2673
  }
2410
-
2411
2674
  _index += 1;
2412
2675
  }
2413
2676
  }
2414
2677
  }
2415
2678
  return p1;
2416
2679
  }
2680
+
2417
2681
  /**
2418
2682
  * Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.
2419
2683
  *
@@ -2427,7 +2691,6 @@ var Hooks = /*#__PURE__*/function () {
2427
2691
  * Handsontable.hooks.destroy(hotInstance);
2428
2692
  * ```
2429
2693
  */
2430
-
2431
2694
  }, {
2432
2695
  key: "destroy",
2433
2696
  value: function destroy() {
@@ -2437,6 +2700,7 @@ var Hooks = /*#__PURE__*/function () {
2437
2700
  return bucket[key].length = 0;
2438
2701
  });
2439
2702
  }
2703
+
2440
2704
  /**
2441
2705
  * Registers a hook name (adds it to the list of the known hook names). Used by plugins.
2442
2706
  * It is not necessary to call register, but if you use it, your plugin hook will be used returned by
@@ -2449,7 +2713,6 @@ var Hooks = /*#__PURE__*/function () {
2449
2713
  * Handsontable.hooks.register('myHook');
2450
2714
  * ```
2451
2715
  */
2452
-
2453
2716
  }, {
2454
2717
  key: "register",
2455
2718
  value: function register(key) {
@@ -2457,6 +2720,7 @@ var Hooks = /*#__PURE__*/function () {
2457
2720
  REGISTERED_HOOKS.push(key);
2458
2721
  }
2459
2722
  }
2723
+
2460
2724
  /**
2461
2725
  * Deregisters a hook name (removes it from the list of known hook names).
2462
2726
  *
@@ -2467,7 +2731,6 @@ var Hooks = /*#__PURE__*/function () {
2467
2731
  * Handsontable.hooks.deregister('myHook');
2468
2732
  * ```
2469
2733
  */
2470
-
2471
2734
  }, {
2472
2735
  key: "deregister",
2473
2736
  value: function deregister(key) {
@@ -2475,6 +2738,7 @@ var Hooks = /*#__PURE__*/function () {
2475
2738
  REGISTERED_HOOKS.splice(REGISTERED_HOOKS.indexOf(key), 1);
2476
2739
  }
2477
2740
  }
2741
+
2478
2742
  /**
2479
2743
  * Returns a boolean value depending on if a hook by such name has been removed or deprecated.
2480
2744
  *
@@ -2489,12 +2753,12 @@ var Hooks = /*#__PURE__*/function () {
2489
2753
  * true
2490
2754
  * ```
2491
2755
  */
2492
-
2493
2756
  }, {
2494
2757
  key: "isDeprecated",
2495
2758
  value: function isDeprecated(hookName) {
2496
2759
  return DEPRECATED_HOOKS.has(hookName) || REMOVED_HOOKS.has(hookName);
2497
2760
  }
2761
+
2498
2762
  /**
2499
2763
  * Returns a boolean depending on if a hook by such name has been registered.
2500
2764
  *
@@ -2508,12 +2772,12 @@ var Hooks = /*#__PURE__*/function () {
2508
2772
  * true
2509
2773
  * ```
2510
2774
  */
2511
-
2512
2775
  }, {
2513
2776
  key: "isRegistered",
2514
2777
  value: function isRegistered(hookName) {
2515
2778
  return REGISTERED_HOOKS.indexOf(hookName) >= 0;
2516
2779
  }
2780
+
2517
2781
  /**
2518
2782
  * Returns an array of registered hooks.
2519
2783
  *
@@ -2535,7 +2799,6 @@ var Hooks = /*#__PURE__*/function () {
2535
2799
  * ]
2536
2800
  * ```
2537
2801
  */
2538
-
2539
2802
  }, {
2540
2803
  key: "getRegistered",
2541
2804
  value: function getRegistered() {
@@ -2547,18 +2810,15 @@ var Hooks = /*#__PURE__*/function () {
2547
2810
  return getGlobalSingleton();
2548
2811
  }
2549
2812
  }]);
2550
-
2551
2813
  return Hooks;
2552
2814
  }();
2553
-
2554
2815
  var globalSingleton = new Hooks();
2816
+
2555
2817
  /**
2556
2818
  * @returns {Hooks}
2557
2819
  */
2558
-
2559
2820
  function getGlobalSingleton() {
2560
2821
  return globalSingleton;
2561
2822
  }
2562
-
2563
2823
  var _default = Hooks;
2564
2824
  exports.default = _default;