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.mjs CHANGED
@@ -1,14 +1,18 @@
1
+ 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); }
1
2
  import "core-js/modules/es.array.slice.js";
2
3
  import "core-js/modules/es.object.freeze.js";
3
-
4
+ import "core-js/modules/es.symbol.to-primitive.js";
5
+ import "core-js/modules/es.date.to-primitive.js";
6
+ import "core-js/modules/es.symbol.js";
7
+ import "core-js/modules/es.symbol.description.js";
8
+ import "core-js/modules/es.number.constructor.js";
9
+ import "core-js/modules/es.symbol.iterator.js";
4
10
  var _templateObject;
5
-
6
11
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
-
8
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
9
-
12
+ 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); } }
10
13
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
-
14
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
+ 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); }
12
16
  import "core-js/modules/es.array.iterator.js";
13
17
  import "core-js/modules/es.map.js";
14
18
  import "core-js/modules/es.object.to-string.js";
@@ -16,23 +20,32 @@ import "core-js/modules/es.string.iterator.js";
16
20
  import "core-js/modules/web.dom-collections.iterator.js";
17
21
  import "core-js/modules/es.array.index-of.js";
18
22
  import "core-js/modules/es.array.splice.js";
19
-
20
23
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
21
-
22
24
  import { arrayEach } from "./helpers/array.mjs";
23
25
  import { objectEach } from "./helpers/object.mjs";
24
26
  import { substitute } from "./helpers/string.mjs";
25
27
  import { warn } from "./helpers/console.mjs";
26
28
  import { toSingleLine } from "./helpers/templateLiteralTag.mjs";
27
29
  import { fastCall } from "./helpers/function.mjs";
30
+ /* eslint-disable jsdoc/require-description-complete-sentence */
28
31
  /**
29
32
  * @description
33
+ *
34
+ * ::: only-for javascript
30
35
  * Handsontable events are the common interface that function in 2 ways: as __callbacks__ and as __hooks__.
36
+ * :::
37
+ *
38
+ * ::: only-for react
39
+ * This page lists all the **Handsontable hooks** – callbacks that let you react before or after an action occurs.
40
+ *
41
+ * Read more on the [Events and hooks](@/guides/getting-started/events-and-hooks.md) page.
42
+ * :::
31
43
  *
32
44
  * @example
33
45
  *
46
+ * ::: only-for javascript
34
47
  * ```js
35
- * // Using events as callbacks:
48
+ * // using events as callbacks
36
49
  * ...
37
50
  * const hot1 = new Handsontable(document.getElementById('example1'), {
38
51
  * afterChange: function(changes, source) {
@@ -44,9 +57,27 @@ import { fastCall } from "./helpers/function.mjs";
44
57
  * });
45
58
  * ...
46
59
  * ```
60
+ * :::
61
+ *
62
+ * ::: only-for react
63
+ * ```jsx
64
+ * <HotTable
65
+ * afterChange={(changes, source) => {
66
+ * fetch('save.php', {
67
+ * method: 'POST',
68
+ * headers: {
69
+ * 'Accept': 'application/json',
70
+ * 'Content-Type': 'application/json'
71
+ * },
72
+ * body: JSON.stringify(changes)
73
+ * });
74
+ * }}
75
+ * />
76
+ * :::
47
77
  *
78
+ * ::: only-for javascript
48
79
  * ```js
49
- * // Using events as plugin hooks:
80
+ * // using events as plugin hooks
50
81
  * ...
51
82
  * const hot1 = new Handsontable(document.getElementById('example1'), {
52
83
  * myPlugin: true
@@ -69,13 +100,46 @@ import { fastCall } from "./helpers/function.mjs";
69
100
  * // function body - will only run in #example2
70
101
  * });
71
102
  * ```
103
+ * :::
104
+ *
105
+ * ::: only-for react
106
+ * ```jsx
107
+ * const hotRef1 = useRef(null);
108
+ * const hotRef2 = useRef(null);
109
+ *
110
+ * // Using events as plugin hooks:
111
+ * ...
112
+ *
113
+ * <HotTable
114
+ * ref={hotRef1}
115
+ * myPlugin={true}
116
+ * });
117
+ *
118
+ * <HotTable
119
+ * ref={hotRef2}
120
+ * myPlugin={false}
121
+ * });
122
+ *
123
+ * ...
124
+ *
125
+ * const hot2 = hotRef2.current.hotInstance;
126
+ * // local hook (has same effect as a callback)
127
+ * hot2.addHook('afterChange', function() {
128
+ * // function body - will only run in #example2
129
+ * });
130
+ *
131
+ * // global hook
132
+ * Handsontable.hooks.add('afterChange', function() {
133
+ * // Fired twice - for hot1 and hot2
134
+ * if (this.getSettings().myPlugin) {
135
+ * // function body - will only run for first instance
136
+ * }
137
+ * });
138
+ * :::
72
139
  * ...
73
140
  */
74
141
  // @TODO: Move plugin description hooks to plugin?
75
-
76
- var REGISTERED_HOOKS = [
77
- /* eslint-disable jsdoc/require-description-complete-sentence */
78
-
142
+ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sentence */
79
143
  /**
80
144
  * Fired after resetting a cell's meta. This happens when the {@link Core#updateSettings} method is called.
81
145
  *
@@ -92,15 +156,29 @@ var REGISTERED_HOOKS = [
92
156
  * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
93
157
  * @param {string} [source] String that identifies source of hook call ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
94
158
  * @example
159
+ * ::: only-for javascript
95
160
  * ```js
96
161
  * new Handsontable(element, {
97
162
  * afterChange: (changes) => {
98
- * changes.forEach(([row, prop, oldValue, newValue]) => {
163
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
99
164
  * // Some logic...
100
165
  * });
101
166
  * }
102
167
  * })
103
168
  * ```
169
+ * :::
170
+ *
171
+ * ::: only-for react
172
+ * ```jsx
173
+ * <HotTable
174
+ * afterChange={(changes, source) => {
175
+ * changes?.forEach(([row, prop, oldValue, newValue]) => {
176
+ * // Some logic...
177
+ * });
178
+ * }}
179
+ * />
180
+ * ```
181
+ * :::
104
182
  */
105
183
  'afterChange',
106
184
  /**
@@ -183,6 +261,7 @@ var REGISTERED_HOOKS = [
183
261
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
184
262
  * @returns {*} If `false` then creating columns is cancelled.
185
263
  * @example
264
+ * ::: only-for javascript
186
265
  * ```js
187
266
  * // Return `false` to cancel column inserting.
188
267
  * new Handsontable(element, {
@@ -191,6 +270,18 @@ var REGISTERED_HOOKS = [
191
270
  * }
192
271
  * });
193
272
  * ```
273
+ * :::
274
+ *
275
+ * ::: only-for react
276
+ * ```jsx
277
+ * // Return `false` to cancel column inserting.
278
+ * <HotTable
279
+ * beforeCreateCol={(data, coords) => {
280
+ * return false;
281
+ * }}
282
+ * />
283
+ * ```
284
+ * :::
194
285
  */
195
286
  'beforeCreateCol',
196
287
  /**
@@ -278,6 +369,10 @@ var REGISTERED_HOOKS = [
278
369
  * @event Hooks#afterGetColHeader
279
370
  * @param {number} column Visual column index.
280
371
  * @param {HTMLTableCellElement} TH Header's TH element.
372
+ * @param {number} [headerLevel=0] (Since 12.2.0) Header level index. Accepts positive (0 to n)
373
+ * and negative (-1 to -n) values. For positive values, 0 points to the
374
+ * topmost header. For negative values, -1 points to the bottom-most
375
+ * header (the header closest to the cells).
281
376
  */
282
377
  'afterGetColHeader',
283
378
  /**
@@ -477,6 +572,7 @@ var REGISTERED_HOOKS = [
477
572
  * @param {object} preventScrolling Object with `value` property where its value change will be observed.
478
573
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
479
574
  * @example
575
+ * ::: only-for javascript
480
576
  * ```js
481
577
  * new Handsontable(element, {
482
578
  * afterSelection: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
@@ -488,6 +584,21 @@ var REGISTERED_HOOKS = [
488
584
  * }
489
585
  * })
490
586
  * ```
587
+ * :::
588
+ *
589
+ * ::: only-for react
590
+ * ```jsx
591
+ * <HotTable
592
+ * afterSelection={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
593
+ * // If set to `false` (default): when cell selection is outside the viewport,
594
+ * // Handsontable scrolls the viewport to cell selection's end corner.
595
+ * // If set to `true`: when cell selection is outside the viewport,
596
+ * // Handsontable doesn't scroll to cell selection's end corner.
597
+ * preventScrolling.value = true;
598
+ * }}
599
+ * />
600
+ * ```
601
+ * :::
491
602
  */
492
603
  'afterSelection',
493
604
  /**
@@ -504,6 +615,7 @@ var REGISTERED_HOOKS = [
504
615
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
505
616
  * @example
506
617
  * ```js
618
+ * ::: only-for javascript
507
619
  * new Handsontable(element, {
508
620
  * afterSelectionByProp: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
509
621
  * // setting if prevent scrolling after selection
@@ -511,6 +623,18 @@ var REGISTERED_HOOKS = [
511
623
  * }
512
624
  * })
513
625
  * ```
626
+ * :::
627
+ *
628
+ * ::: only-for react
629
+ * ```jsx
630
+ * <HotTable
631
+ * afterSelectionByProp={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {
632
+ * // setting if prevent scrolling after selection
633
+ * preventScrolling.value = true;
634
+ * }}
635
+ * />
636
+ * ```
637
+ * :::
514
638
  */
515
639
  'afterSelectionByProp',
516
640
  /**
@@ -672,8 +796,11 @@ var REGISTERED_HOOKS = [
672
796
  */
673
797
  'beforeCellAlignment',
674
798
  /**
675
- * Fired before one or more cells is changed. Its main purpose is to alter changes silently after input and before
676
- * table rendering.
799
+ * Fired before one or more cells are changed.
800
+ *
801
+ * Use this hook to silently alter the user's changes before Handsontable re-renders.
802
+ *
803
+ * To ignore the user's changes, use a nullified array or return `false`.
677
804
  *
678
805
  * @event Hooks#beforeChange
679
806
  * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
@@ -681,22 +808,27 @@ var REGISTERED_HOOKS = [
681
808
  * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
682
809
  * @returns {undefined | boolean} If `false` all changes were cancelled, `true` otherwise.
683
810
  * @example
811
+ * ::: only-for javascript
684
812
  * ```js
685
- * // To disregard a single change, set changes[i] to null or remove it from array using changes.splice(i, 1).
813
+ * // to alter a single change, overwrite the value with `changes[i][3]`
686
814
  * new Handsontable(element, {
687
815
  * beforeChange: (changes, source) => {
688
816
  * // [[row, prop, oldVal, newVal], ...]
689
- * changes[0] = null;
817
+ * changes[0][3] = 10;
690
818
  * }
691
819
  * });
692
- * // To alter a single change, overwrite the desired value to changes[i][3].
820
+ *
821
+ * // to ignore a single change, set `changes[i]` to `null`
822
+ * // or remove `changes[i]` from the array, by using `changes.splice(i, 1)`
693
823
  * new Handsontable(element, {
694
824
  * beforeChange: (changes, source) => {
695
825
  * // [[row, prop, oldVal, newVal], ...]
696
- * changes[0][3] = 10;
826
+ * changes[0] = null;
697
827
  * }
698
828
  * });
699
- * // To cancel all edit, return false from the callback or set array length to 0 (changes.length = 0).
829
+ *
830
+ * // to ignore all changes, return `false`
831
+ * // or set the array's length to 0, by using `changes.length = 0`
700
832
  * new Handsontable(element, {
701
833
  * beforeChange: (changes, source) => {
702
834
  * // [[row, prop, oldVal, newVal], ...]
@@ -704,6 +836,37 @@ var REGISTERED_HOOKS = [
704
836
  * }
705
837
  * });
706
838
  * ```
839
+ * :::
840
+ *
841
+ * ::: only-for react
842
+ * ```jsx
843
+ * // to alter a single change, overwrite the desired value with `changes[i][3]`
844
+ * <HotTable
845
+ * beforeChange={(changes, source) => {
846
+ * // [[row, prop, oldVal, newVal], ...]
847
+ * changes[0][3] = 10;
848
+ * }}
849
+ * />
850
+ *
851
+ * // to ignore a single change, set `changes[i]` to `null`
852
+ * // or remove `changes[i]` from the array, by using changes.splice(i, 1).
853
+ * <HotTable
854
+ * beforeChange={(changes, source) => {
855
+ * // [[row, prop, oldVal, newVal], ...]
856
+ * changes[0] = null;
857
+ * }}
858
+ * />
859
+ *
860
+ * // to ignore all changes, return `false`
861
+ * // or set the array's length to 0 (`changes.length = 0`)
862
+ * <HotTable
863
+ * beforeChange={(changes, source) => {
864
+ * // [[row, prop, oldVal, newVal], ...]
865
+ * return false;
866
+ * }}
867
+ * />
868
+ * ```
869
+ * :::
707
870
  */
708
871
  'beforeChange',
709
872
  /**
@@ -1160,7 +1323,7 @@ var REGISTERED_HOOKS = [
1160
1323
  */
1161
1324
  'modifyCopyableRange',
1162
1325
  /**
1163
- * Fired by {@link CopyPaste} plugin before copying the values into clipboard and before clearing values of
1326
+ * Fired by {@link CopyPaste} plugin before copying the values to the clipboard and before clearing values of
1164
1327
  * the selected cells. This hook is fired when {@link Options#copyPaste} option is enabled.
1165
1328
  *
1166
1329
  * @event Hooks#beforeCut
@@ -1169,6 +1332,7 @@ var REGISTERED_HOOKS = [
1169
1332
  * which will be cut out.
1170
1333
  * @returns {*} If returns `false` then operation of the cutting out is canceled.
1171
1334
  * @example
1335
+ * ::: only-for javascript
1172
1336
  * ```js
1173
1337
  * // To disregard a single row, remove it from the array using data.splice(i, 1).
1174
1338
  * new Handsontable(element, {
@@ -1186,6 +1350,27 @@ var REGISTERED_HOOKS = [
1186
1350
  * }
1187
1351
  * });
1188
1352
  * ```
1353
+ * :::
1354
+ *
1355
+ * ::: only-for react
1356
+ * ```jsx
1357
+ * // To disregard a single row, remove it from the array using data.splice(i, 1).
1358
+ * <HotTable
1359
+ * beforeCut={(data, coords) => {
1360
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1361
+ * data.splice(0, 1);
1362
+ * // data -> [[4, 5, 6]]
1363
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1364
+ * }}
1365
+ * />
1366
+ * // To cancel a cutting action, just return `false`.
1367
+ * <HotTable
1368
+ * beforeCut={(data, coords) => {
1369
+ * return false;
1370
+ * }}
1371
+ * />
1372
+ * ```
1373
+ * :::
1189
1374
  */
1190
1375
  'beforeCut',
1191
1376
  /**
@@ -1193,21 +1378,23 @@ var REGISTERED_HOOKS = [
1193
1378
  * {@link Options#copyPaste} option is enabled.
1194
1379
  *
1195
1380
  * @event Hooks#afterCut
1196
- * @param {Array[]} data An array of arrays which contains the cutted out data.
1381
+ * @param {Array[]} data An array of arrays with the cut data.
1197
1382
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1198
1383
  * which was cut out.
1199
1384
  */
1200
1385
  'afterCut',
1201
1386
  /**
1202
- * Fired before values are copied into clipboard.
1387
+ * Fired before values are copied to the clipboard.
1203
1388
  *
1204
1389
  * @event Hooks#beforeCopy
1205
1390
  * @param {Array[]} data An array of arrays which contains data to copied.
1206
1391
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1207
1392
  * which will copied.
1393
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1208
1394
  * @returns {*} If returns `false` then copying is canceled.
1209
1395
  *
1210
1396
  * @example
1397
+ * ::: only-for javascript
1211
1398
  * ```js
1212
1399
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1213
1400
  * ...
@@ -1230,6 +1417,32 @@ var REGISTERED_HOOKS = [
1230
1417
  * });
1231
1418
  * ...
1232
1419
  * ```
1420
+ * :::
1421
+ *
1422
+ * ::: only-for react
1423
+ * ```jsx
1424
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1425
+ * ...
1426
+ * <HotTable
1427
+ * beforeCopy={(data, coords) => {
1428
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1429
+ * data.splice(0, 1);
1430
+ * // data -> [[4, 5, 6]]
1431
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1432
+ * }}
1433
+ * />
1434
+ * ...
1435
+ *
1436
+ * // To cancel copying, return false from the callback.
1437
+ * ...
1438
+ * <HotTable
1439
+ * beforeCopy={(data, coords) => {
1440
+ * return false;
1441
+ * }}
1442
+ * />
1443
+ * ...
1444
+ * ```
1445
+ * :::
1233
1446
  */
1234
1447
  'beforeCopy',
1235
1448
  /**
@@ -1240,6 +1453,7 @@ var REGISTERED_HOOKS = [
1240
1453
  * @param {Array[]} data An array of arrays which contains the copied data.
1241
1454
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1242
1455
  * which was copied.
1456
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1243
1457
  */
1244
1458
  'afterCopy',
1245
1459
  /**
@@ -1253,6 +1467,7 @@ var REGISTERED_HOOKS = [
1253
1467
  * @returns {*} If returns `false` then pasting is canceled.
1254
1468
  * @example
1255
1469
  * ```js
1470
+ * ::: only-for javascript
1256
1471
  * // To disregard a single row, remove it from array using data.splice(i, 1).
1257
1472
  * new Handsontable(example, {
1258
1473
  * beforePaste: (data, coords) => {
@@ -1269,6 +1484,27 @@ var REGISTERED_HOOKS = [
1269
1484
  * }
1270
1485
  * });
1271
1486
  * ```
1487
+ * :::
1488
+ *
1489
+ * ::: only-for react
1490
+ * ```jsx
1491
+ * // To disregard a single row, remove it from array using data.splice(i, 1).
1492
+ * <HotTable
1493
+ * beforePaste={(data, coords) => {
1494
+ * // data -> [[1, 2, 3], [4, 5, 6]]
1495
+ * data.splice(0, 1);
1496
+ * // data -> [[4, 5, 6]]
1497
+ * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1498
+ * }}
1499
+ * />
1500
+ * // To cancel pasting, return false from the callback.
1501
+ * <HotTable
1502
+ * beforePaste={(data, coords) => {
1503
+ * return false;
1504
+ * }}
1505
+ * />
1506
+ * ```
1507
+ * :::
1272
1508
  */
1273
1509
  'beforePaste',
1274
1510
  /**
@@ -1276,7 +1512,7 @@ var REGISTERED_HOOKS = [
1276
1512
  * {@link Options#copyPaste} option is enabled.
1277
1513
  *
1278
1514
  * @event Hooks#afterPaste
1279
- * @param {Array[]} data An array of arrays which contains the pasted data.
1515
+ * @param {Array[]} data An array of arrays with the pasted data.
1280
1516
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1281
1517
  * that correspond to the previously selected area.
1282
1518
  */
@@ -1461,13 +1697,22 @@ var REGISTERED_HOOKS = [
1461
1697
  */
1462
1698
  'beforeStretchingColumnWidth',
1463
1699
  /**
1464
- * Fired by {@link Filters} plugin before applying [filtering](@/guides/columns/column-filter.md).
1465
- * This hook is fired when {@link Options#filters} option is enabled.
1700
+ * Fired by the [`Filters`](@/api/filters.md) plugin,
1701
+ * before a [column filter](@/guides/columns/column-filter.md) gets applied.
1702
+ *
1703
+ * [`beforeFilter`](#beforefilter) takes one argument (`conditionsStack`), which is an array of objects.
1704
+ * Each object represents one of your [column filters](@/api/filters.md#addcondition),
1705
+ * and consists of the following properties:
1706
+ *
1707
+ * | Property | Possible values | Description |
1708
+ * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
1709
+ * | `column` | Number | A visual index of the column to which the filter will be applied. |
1710
+ * | `conditions` | Array of objects | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1711
+ * | `operation` | `'conjunction'` \| `'disjunction'` \| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1712
+ *
1713
+ * An example of the format of the `conditionsStack` argument:
1466
1714
  *
1467
- * @event Hooks#beforeFilter
1468
- * @param {object[]} conditionsStack An array of objects with added formulas.
1469
1715
  * ```js
1470
- * // Example format of the conditionsStack argument:
1471
1716
  * [
1472
1717
  * {
1473
1718
  * column: 2,
@@ -1485,17 +1730,47 @@ var REGISTERED_HOOKS = [
1485
1730
  * },
1486
1731
  * ]
1487
1732
  * ```
1488
- * @returns {boolean} If hook returns `false` value then filtering won't be applied on the UI side (server-side filtering).
1733
+ *
1734
+ * To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI),
1735
+ * set [`beforeFilter`](#beforefilter) to return `false`:
1736
+ *
1737
+ * ```js
1738
+ * new Handsontable(document.getElementById('example'), {
1739
+ * beforeFilter: (conditionsStack) => {
1740
+ * return false;
1741
+ * }
1742
+ * });
1743
+ *```
1744
+ *
1745
+ * Read more:
1746
+ * - [Guides: Column filter](@/guides/columns/column-filter.md)
1747
+ * - [Hooks: `afterFilter`](#afterfilter)
1748
+ * - [Options: `filters`](@/api/options.md#filters)
1749
+ * - [Plugins: `Filters`](@/api/filters.md)
1750
+ * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)
1751
+ *
1752
+ * @event Hooks#beforeFilter
1753
+ * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).
1754
+ * @returns {boolean} To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI), return `false`.
1489
1755
  */
1490
1756
  'beforeFilter',
1491
1757
  /**
1492
- * Fired by {@link Filters} plugin after applying [filtering](@/guides/columns/column-filter.md).
1493
- * This hook is fired when {@link Options#filters} option is enabled.
1758
+ * Fired by the [`Filters`](@/api/filters.md) plugin,
1759
+ * after a [column filter](@/guides/columns/column-filter.md) gets applied.
1760
+ *
1761
+ * [`afterFilter`](#afterfilter) takes one argument (`conditionsStack`), which is an array of objects.
1762
+ * Each object represents one of your [column filters](@/api/filters.md#addcondition),
1763
+ * and consists of the following properties:
1764
+ *
1765
+ * | Property | Possible values | Description |
1766
+ * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
1767
+ * | `column` | Number | A visual index of the column to which the filter was applied. |
1768
+ * | `conditions` | Array of objects | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1769
+ * | `operation` | `'conjunction'` \| `'disjunction'` \| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1770
+ *
1771
+ * An example of the format of the `conditionsStack` argument:
1494
1772
  *
1495
- * @event Hooks#afterFilter
1496
- * @param {object[]} conditionsStack An array of objects with added conditions.
1497
1773
  * ```js
1498
- * // Example format of the conditionsStack argument:
1499
1774
  * [
1500
1775
  * {
1501
1776
  * column: 2,
@@ -1513,18 +1788,38 @@ var REGISTERED_HOOKS = [
1513
1788
  * },
1514
1789
  * ]
1515
1790
  * ```
1791
+ *
1792
+ * Read more:
1793
+ * - [Guides: Column filter](@/guides/columns/column-filter.md)
1794
+ * - [Hooks: `beforeFilter`](#beforefilter)
1795
+ * - [Options: `filters`](@/api/options.md#filters)
1796
+ * - [Plugins: `Filters`](@/api/filters.md)
1797
+ * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)
1798
+ *
1799
+ * @event Hooks#afterFilter
1800
+ * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).
1516
1801
  */
1517
1802
  'afterFilter',
1518
1803
  /**
1519
- * Called when a value is updated in the engine.
1804
+ * Fired by the {@link Formulas} plugin, when any cell value changes.
1805
+ *
1806
+ * Returns an array of objects that contains:
1807
+ * - The addresses (`sheet`, `row`, `col`) and new values (`newValue`) of the changed cells.
1808
+ * - The addresses and new values of any cells that had to be recalculated (because their formulas depend on the cells that changed).
1809
+ *
1810
+ * This hook gets also fired on Handsontable's initialization, returning the addresses and values of all cells.
1811
+ *
1812
+ * Read more:
1813
+ * - [Guides: Formula calculation](@/guides/formulas/formula-calculation.md)
1814
+ * - [HyperFormula documentation: `valuesUpdated`](https://hyperformula.handsontable.com/api/interfaces/listeners.html#valuesupdated)
1520
1815
  *
1521
1816
  * @since 9.0.0
1522
1817
  * @event Hooks#afterFormulasValuesUpdate
1523
- * @param {Array} changes The values and location of applied changes.
1818
+ * @param {Array} changes The addresses and new values of all the changed and recalculated cells.
1524
1819
  */
1525
1820
  'afterFormulasValuesUpdate',
1526
1821
  /**
1527
- * Called when a named expression is added to the Formulas' engine instance.
1822
+ * Fired when a named expression is added to the Formulas' engine instance.
1528
1823
  *
1529
1824
  * @since 9.0.0
1530
1825
  * @event Hooks#afterNamedExpressionAdded
@@ -1533,7 +1828,7 @@ var REGISTERED_HOOKS = [
1533
1828
  */
1534
1829
  'afterNamedExpressionAdded',
1535
1830
  /**
1536
- * Called when a named expression is removed from the Formulas' engine instance.
1831
+ * Fired when a named expression is removed from the Formulas' engine instance.
1537
1832
  *
1538
1833
  * @since 9.0.0
1539
1834
  * @event Hooks#afterNamedExpressionRemoved
@@ -1542,7 +1837,7 @@ var REGISTERED_HOOKS = [
1542
1837
  */
1543
1838
  'afterNamedExpressionRemoved',
1544
1839
  /**
1545
- * Called when a new sheet is added to the Formulas' engine instance.
1840
+ * Fired when a new sheet is added to the Formulas' engine instance.
1546
1841
  *
1547
1842
  * @since 9.0.0
1548
1843
  * @event Hooks#afterSheetAdded
@@ -1550,7 +1845,7 @@ var REGISTERED_HOOKS = [
1550
1845
  */
1551
1846
  'afterSheetAdded',
1552
1847
  /**
1553
- * Called when a sheet in the Formulas' engine instance is renamed.
1848
+ * Fired when a sheet in the Formulas' engine instance is renamed.
1554
1849
  *
1555
1850
  * @since 9.0.0
1556
1851
  * @event Hooks#afterSheetRenamed
@@ -1559,7 +1854,7 @@ var REGISTERED_HOOKS = [
1559
1854
  */
1560
1855
  'afterSheetRenamed',
1561
1856
  /**
1562
- * Called when a sheet is removed from the Formulas' engine instance.
1857
+ * Fired when a sheet is removed from the Formulas' engine instance.
1563
1858
  *
1564
1859
  * @since 9.0.0
1565
1860
  * @event Hooks#afterSheetRemoved
@@ -1573,6 +1868,20 @@ var REGISTERED_HOOKS = [
1573
1868
  * @event Hooks#modifyColumnHeaderHeight
1574
1869
  */
1575
1870
  'modifyColumnHeaderHeight',
1871
+ /**
1872
+ * Fired while retrieving a column header's value.
1873
+ *
1874
+ * @since 12.3.0
1875
+ * @event Hooks#modifyColumnHeaderValue
1876
+ * @param {string} value A column header value.
1877
+ * @param {number} visualColumnIndex A visual column index.
1878
+ * @param {number} [headerLevel=0] Header level index. Accepts positive (0 to n)
1879
+ * and negative (-1 to -n) values. For positive values, 0 points to the
1880
+ * topmost header. For negative values, -1 points to the bottom-most
1881
+ * header (the header closest to the cells).
1882
+ * @returns {string} The column header value to be updated.
1883
+ */
1884
+ 'modifyColumnHeaderValue',
1576
1885
  /**
1577
1886
  * Fired by {@link UndoRedo} plugin before the undo action. Contains information about the action that is being undone.
1578
1887
  * This hook is fired when {@link Options#undo} option is enabled.
@@ -1973,7 +2282,7 @@ var REGISTERED_HOOKS = [
1973
2282
  */
1974
2283
  'afterUnlisten',
1975
2284
  /**
1976
- * Fired after the window was resized.
2285
+ * Fired after the window was resized or the size of the Handsontable root element was changed.
1977
2286
  *
1978
2287
  * @event Hooks#afterRefreshDimensions
1979
2288
  * @param {object} previousDimensions Previous dimensions of the container.
@@ -1982,7 +2291,8 @@ var REGISTERED_HOOKS = [
1982
2291
  */
1983
2292
  'afterRefreshDimensions',
1984
2293
  /**
1985
- * Cancellable hook, called after resizing a window, but before redrawing a table.
2294
+ * Cancellable hook, called after resizing a window or after detecting size change of the
2295
+ * Handsontable root element, but before redrawing a table.
1986
2296
  *
1987
2297
  * @event Hooks#beforeRefreshDimensions
1988
2298
  * @param {object} previousDimensions Previous dimensions of the container.
@@ -2045,13 +2355,14 @@ var REGISTERED_HOOKS = [
2045
2355
  * @param {*} cellValue Value of the cell.
2046
2356
  */
2047
2357
  'modifyAutoColumnSizeSeed'];
2358
+
2048
2359
  /**
2049
2360
  * Template warning message for removed hooks.
2050
2361
  *
2051
2362
  * @type {string}
2052
2363
  */
2053
-
2054
2364
  var REMOVED_MESSAGE = toSingleLine(_templateObject || (_templateObject = _taggedTemplateLiteral(["The plugin hook \"[hookName]\" was removed in Handsontable [removedInVersion]. \n Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to \n learn about the migration path."], ["The plugin hook \"[hookName]\" was removed in Handsontable [removedInVersion].\\x20\n Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to\\x20\n learn about the migration path."])));
2365
+
2055
2366
  /**
2056
2367
  * The list of the hooks which are removed from the API. The warning message is printed out in
2057
2368
  * the developer console when the hook is used.
@@ -2061,10 +2372,9 @@ var REMOVED_MESSAGE = toSingleLine(_templateObject || (_templateObject = _tagged
2061
2372
  *
2062
2373
  * @type {Map<string, string>}
2063
2374
  */
2064
-
2065
2375
  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']]);
2066
- /* eslint-disable jsdoc/require-description-complete-sentence */
2067
2376
 
2377
+ /* eslint-disable jsdoc/require-description-complete-sentence */
2068
2378
  /**
2069
2379
  * The list of the hooks which are deprecated. The warning message is printed out in
2070
2380
  * the developer console when the hook is used.
@@ -2084,20 +2394,17 @@ var REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], ['u
2084
2394
  *
2085
2395
  * @type {Map<string, string>}
2086
2396
  */
2087
-
2088
2397
  /* eslint-enable jsdoc/require-description-complete-sentence */
2089
-
2090
2398
  var DEPRECATED_HOOKS = new Map([['beforeAutofillInsidePopulate', 'The plugin hook "beforeAutofillInsidePopulate" is deprecated and will be removed in the next major release.']]);
2091
-
2092
2399
  var Hooks = /*#__PURE__*/function () {
2093
2400
  /**
2094
2401
  *
2095
2402
  */
2096
2403
  function Hooks() {
2097
2404
  _classCallCheck(this, Hooks);
2098
-
2099
2405
  this.globalBucket = this.createEmptyBucket();
2100
2406
  }
2407
+
2101
2408
  /**
2102
2409
  * Returns a new object with empty handlers related to every registered hook name.
2103
2410
  *
@@ -2116,40 +2423,37 @@ var Hooks = /*#__PURE__*/function () {
2116
2423
  * }
2117
2424
  * ```
2118
2425
  */
2119
-
2120
-
2121
2426
  _createClass(Hooks, [{
2122
2427
  key: "createEmptyBucket",
2123
2428
  value: function createEmptyBucket() {
2124
- var bucket = Object.create(null); // eslint-disable-next-line no-return-assign
2429
+ var bucket = Object.create(null);
2125
2430
 
2431
+ // eslint-disable-next-line no-return-assign
2126
2432
  arrayEach(REGISTERED_HOOKS, function (hook) {
2127
2433
  return bucket[hook] = [];
2128
2434
  });
2129
2435
  return bucket;
2130
2436
  }
2437
+
2131
2438
  /**
2132
2439
  * Get hook bucket based on the context of the object or if argument is `undefined`, get the global hook bucket.
2133
2440
  *
2134
2441
  * @param {object} [context=null] A Handsontable instance.
2135
2442
  * @returns {object} Returns a global or Handsontable instance bucket.
2136
2443
  */
2137
-
2138
2444
  }, {
2139
2445
  key: "getBucket",
2140
2446
  value: function getBucket() {
2141
2447
  var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2142
-
2143
2448
  if (context) {
2144
2449
  if (!context.pluginHookBucket) {
2145
2450
  context.pluginHookBucket = this.createEmptyBucket();
2146
2451
  }
2147
-
2148
2452
  return context.pluginHookBucket;
2149
2453
  }
2150
-
2151
2454
  return this.globalBucket;
2152
2455
  }
2456
+
2153
2457
  /**
2154
2458
  * Adds a listener (globally or locally) to a specified hook name.
2155
2459
  * If the `context` parameter is provided, the hook will be added only to the instance it references.
@@ -2178,14 +2482,11 @@ var Hooks = /*#__PURE__*/function () {
2178
2482
  * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);
2179
2483
  * ```
2180
2484
  */
2181
-
2182
2485
  }, {
2183
2486
  key: "add",
2184
2487
  value: function add(key, callback) {
2185
2488
  var _this = this;
2186
-
2187
2489
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2188
-
2189
2490
  if (Array.isArray(callback)) {
2190
2491
  arrayEach(callback, function (c) {
2191
2492
  return _this.add(key, c, context);
@@ -2197,24 +2498,18 @@ var Hooks = /*#__PURE__*/function () {
2197
2498
  removedInVersion: REMOVED_HOOKS.get(key)
2198
2499
  }));
2199
2500
  }
2200
-
2201
2501
  if (DEPRECATED_HOOKS.has(key)) {
2202
2502
  warn(DEPRECATED_HOOKS.get(key));
2203
2503
  }
2204
-
2205
2504
  var bucket = this.getBucket(context);
2206
-
2207
2505
  if (typeof bucket[key] === 'undefined') {
2208
2506
  this.register(key);
2209
2507
  bucket[key] = [];
2210
2508
  }
2211
-
2212
2509
  callback.skip = false;
2213
-
2214
2510
  if (bucket[key].indexOf(callback) === -1) {
2215
2511
  // only add a hook if it has not already been added (adding the same hook twice is now silently ignored)
2216
2512
  var foundInitialHook = false;
2217
-
2218
2513
  if (callback.initialHook) {
2219
2514
  arrayEach(bucket[key], function (cb, i) {
2220
2515
  if (cb.initialHook) {
@@ -2224,15 +2519,14 @@ var Hooks = /*#__PURE__*/function () {
2224
2519
  }
2225
2520
  });
2226
2521
  }
2227
-
2228
2522
  if (!foundInitialHook) {
2229
2523
  bucket[key].push(callback);
2230
2524
  }
2231
2525
  }
2232
2526
  }
2233
-
2234
2527
  return this;
2235
2528
  }
2529
+
2236
2530
  /**
2237
2531
  * Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.
2238
2532
  *
@@ -2246,14 +2540,11 @@ var Hooks = /*#__PURE__*/function () {
2246
2540
  * Handsontable.hooks.once('beforeInit', myCallback, hotInstance);
2247
2541
  * ```
2248
2542
  */
2249
-
2250
2543
  }, {
2251
2544
  key: "once",
2252
2545
  value: function once(key, callback) {
2253
2546
  var _this2 = this;
2254
-
2255
2547
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2256
-
2257
2548
  if (Array.isArray(callback)) {
2258
2549
  arrayEach(callback, function (c) {
2259
2550
  return _this2.once(key, c, context);
@@ -2263,6 +2554,7 @@ var Hooks = /*#__PURE__*/function () {
2263
2554
  this.add(key, callback, context);
2264
2555
  }
2265
2556
  }
2557
+
2266
2558
  /**
2267
2559
  * 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.
2268
2560
  *
@@ -2277,22 +2569,20 @@ var Hooks = /*#__PURE__*/function () {
2277
2569
  * Handsontable.hooks.remove('beforeInit', myCallback);
2278
2570
  * ```
2279
2571
  */
2280
-
2281
2572
  }, {
2282
2573
  key: "remove",
2283
2574
  value: function remove(key, callback) {
2284
2575
  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2285
2576
  var bucket = this.getBucket(context);
2286
-
2287
2577
  if (typeof bucket[key] !== 'undefined') {
2288
2578
  if (bucket[key].indexOf(callback) >= 0) {
2289
2579
  callback.skip = true;
2290
2580
  return true;
2291
2581
  }
2292
2582
  }
2293
-
2294
2583
  return false;
2295
2584
  }
2585
+
2296
2586
  /**
2297
2587
  * Checks whether there are any registered listeners for the provided hook name.
2298
2588
  * If the `context` parameter is provided, it only checks for listeners assigned to the given Handsontable instance.
@@ -2301,7 +2591,6 @@ var Hooks = /*#__PURE__*/function () {
2301
2591
  * @param {object} [context=null] A Handsontable instance.
2302
2592
  * @returns {boolean} `true` for success, `false` otherwise.
2303
2593
  */
2304
-
2305
2594
  }, {
2306
2595
  key: "has",
2307
2596
  value: function has(key) {
@@ -2309,6 +2598,7 @@ var Hooks = /*#__PURE__*/function () {
2309
2598
  var bucket = this.getBucket(context);
2310
2599
  return !!(bucket[key] !== void 0 && bucket[key].length);
2311
2600
  }
2601
+
2312
2602
  /**
2313
2603
  * Runs all local and global callbacks assigned to the hook identified by the `key` parameter.
2314
2604
  * It returns either a return value from the last called callback or the first parameter (`p1`) passed to the `run` function.
@@ -2329,7 +2619,6 @@ var Hooks = /*#__PURE__*/function () {
2329
2619
  * Handsontable.hooks.run(hot, 'beforeInit');
2330
2620
  * ```
2331
2621
  */
2332
-
2333
2622
  }, {
2334
2623
  key: "run",
2335
2624
  value: function run(context, key, p1, p2, p3, p4, p5, p6) {
@@ -2337,66 +2626,53 @@ var Hooks = /*#__PURE__*/function () {
2337
2626
  var globalHandlers = this.globalBucket[key];
2338
2627
  var length = globalHandlers ? globalHandlers.length : 0;
2339
2628
  var index = 0;
2340
-
2341
2629
  if (length) {
2342
2630
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2343
2631
  while (index < length) {
2344
2632
  if (!globalHandlers[index] || globalHandlers[index].skip) {
2345
2633
  index += 1;
2346
2634
  /* eslint-disable no-continue */
2347
-
2348
2635
  continue;
2349
2636
  }
2350
-
2351
2637
  var res = fastCall(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);
2352
-
2353
2638
  if (res !== void 0) {
2354
2639
  // eslint-disable-next-line no-param-reassign
2355
2640
  p1 = res;
2356
2641
  }
2357
-
2358
2642
  if (globalHandlers[index] && globalHandlers[index].runOnce) {
2359
2643
  this.remove(key, globalHandlers[index]);
2360
2644
  }
2361
-
2362
2645
  index += 1;
2363
2646
  }
2364
2647
  }
2365
2648
  }
2366
2649
  {
2367
2650
  var localHandlers = this.getBucket(context)[key];
2368
-
2369
2651
  var _length = localHandlers ? localHandlers.length : 0;
2370
-
2371
2652
  var _index = 0;
2372
-
2373
2653
  if (_length) {
2374
2654
  // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.
2375
2655
  while (_index < _length) {
2376
2656
  if (!localHandlers[_index] || localHandlers[_index].skip) {
2377
2657
  _index += 1;
2378
2658
  /* eslint-disable no-continue */
2379
-
2380
2659
  continue;
2381
2660
  }
2382
-
2383
2661
  var _res = fastCall(localHandlers[_index], context, p1, p2, p3, p4, p5, p6);
2384
-
2385
2662
  if (_res !== void 0) {
2386
2663
  // eslint-disable-next-line no-param-reassign
2387
2664
  p1 = _res;
2388
2665
  }
2389
-
2390
2666
  if (localHandlers[_index] && localHandlers[_index].runOnce) {
2391
2667
  this.remove(key, localHandlers[_index], context);
2392
2668
  }
2393
-
2394
2669
  _index += 1;
2395
2670
  }
2396
2671
  }
2397
2672
  }
2398
2673
  return p1;
2399
2674
  }
2675
+
2400
2676
  /**
2401
2677
  * Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.
2402
2678
  *
@@ -2410,7 +2686,6 @@ var Hooks = /*#__PURE__*/function () {
2410
2686
  * Handsontable.hooks.destroy(hotInstance);
2411
2687
  * ```
2412
2688
  */
2413
-
2414
2689
  }, {
2415
2690
  key: "destroy",
2416
2691
  value: function destroy() {
@@ -2420,6 +2695,7 @@ var Hooks = /*#__PURE__*/function () {
2420
2695
  return bucket[key].length = 0;
2421
2696
  });
2422
2697
  }
2698
+
2423
2699
  /**
2424
2700
  * Registers a hook name (adds it to the list of the known hook names). Used by plugins.
2425
2701
  * It is not necessary to call register, but if you use it, your plugin hook will be used returned by
@@ -2432,7 +2708,6 @@ var Hooks = /*#__PURE__*/function () {
2432
2708
  * Handsontable.hooks.register('myHook');
2433
2709
  * ```
2434
2710
  */
2435
-
2436
2711
  }, {
2437
2712
  key: "register",
2438
2713
  value: function register(key) {
@@ -2440,6 +2715,7 @@ var Hooks = /*#__PURE__*/function () {
2440
2715
  REGISTERED_HOOKS.push(key);
2441
2716
  }
2442
2717
  }
2718
+
2443
2719
  /**
2444
2720
  * Deregisters a hook name (removes it from the list of known hook names).
2445
2721
  *
@@ -2450,7 +2726,6 @@ var Hooks = /*#__PURE__*/function () {
2450
2726
  * Handsontable.hooks.deregister('myHook');
2451
2727
  * ```
2452
2728
  */
2453
-
2454
2729
  }, {
2455
2730
  key: "deregister",
2456
2731
  value: function deregister(key) {
@@ -2458,6 +2733,7 @@ var Hooks = /*#__PURE__*/function () {
2458
2733
  REGISTERED_HOOKS.splice(REGISTERED_HOOKS.indexOf(key), 1);
2459
2734
  }
2460
2735
  }
2736
+
2461
2737
  /**
2462
2738
  * Returns a boolean value depending on if a hook by such name has been removed or deprecated.
2463
2739
  *
@@ -2472,12 +2748,12 @@ var Hooks = /*#__PURE__*/function () {
2472
2748
  * true
2473
2749
  * ```
2474
2750
  */
2475
-
2476
2751
  }, {
2477
2752
  key: "isDeprecated",
2478
2753
  value: function isDeprecated(hookName) {
2479
2754
  return DEPRECATED_HOOKS.has(hookName) || REMOVED_HOOKS.has(hookName);
2480
2755
  }
2756
+
2481
2757
  /**
2482
2758
  * Returns a boolean depending on if a hook by such name has been registered.
2483
2759
  *
@@ -2491,12 +2767,12 @@ var Hooks = /*#__PURE__*/function () {
2491
2767
  * true
2492
2768
  * ```
2493
2769
  */
2494
-
2495
2770
  }, {
2496
2771
  key: "isRegistered",
2497
2772
  value: function isRegistered(hookName) {
2498
2773
  return REGISTERED_HOOKS.indexOf(hookName) >= 0;
2499
2774
  }
2775
+
2500
2776
  /**
2501
2777
  * Returns an array of registered hooks.
2502
2778
  *
@@ -2518,7 +2794,6 @@ var Hooks = /*#__PURE__*/function () {
2518
2794
  * ]
2519
2795
  * ```
2520
2796
  */
2521
-
2522
2797
  }, {
2523
2798
  key: "getRegistered",
2524
2799
  value: function getRegistered() {
@@ -2530,17 +2805,14 @@ var Hooks = /*#__PURE__*/function () {
2530
2805
  return getGlobalSingleton();
2531
2806
  }
2532
2807
  }]);
2533
-
2534
2808
  return Hooks;
2535
2809
  }();
2536
-
2537
2810
  var globalSingleton = new Hooks();
2811
+
2538
2812
  /**
2539
2813
  * @returns {Hooks}
2540
2814
  */
2541
-
2542
2815
  function getGlobalSingleton() {
2543
2816
  return globalSingleton;
2544
2817
  }
2545
-
2546
2818
  export default Hooks;