handsontable 12.2.0 → 12.3.0-next-9dc4f5d-20221209

Sign up to get free protection for your applications and to get access to all the features.
Files changed (659) hide show
  1. package/3rdparty/walkontable/src/border.js +13 -6
  2. package/3rdparty/walkontable/src/border.mjs +12 -5
  3. package/3rdparty/walkontable/src/calculator/viewportColumns.js +10 -1
  4. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +10 -1
  5. package/3rdparty/walkontable/src/calculator/viewportRows.js +10 -1
  6. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +10 -1
  7. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -1
  8. package/3rdparty/walkontable/src/cell/coords.js +64 -26
  9. package/3rdparty/walkontable/src/cell/coords.mjs +64 -26
  10. package/3rdparty/walkontable/src/cell/range.d.ts +19 -16
  11. package/3rdparty/walkontable/src/cell/range.js +199 -104
  12. package/3rdparty/walkontable/src/cell/range.mjs +201 -106
  13. package/3rdparty/walkontable/src/core/_base.js +17 -3
  14. package/3rdparty/walkontable/src/core/_base.mjs +20 -6
  15. package/3rdparty/walkontable/src/core/clone.js +13 -7
  16. package/3rdparty/walkontable/src/core/clone.mjs +15 -9
  17. package/3rdparty/walkontable/src/core/core.js +8 -2
  18. package/3rdparty/walkontable/src/core/core.mjs +10 -4
  19. package/3rdparty/walkontable/src/event.js +10 -1
  20. package/3rdparty/walkontable/src/event.mjs +10 -1
  21. package/3rdparty/walkontable/src/facade/core.js +16 -2
  22. package/3rdparty/walkontable/src/facade/core.mjs +22 -8
  23. package/3rdparty/walkontable/src/filter/column.js +16 -2
  24. package/3rdparty/walkontable/src/filter/column.mjs +16 -2
  25. package/3rdparty/walkontable/src/filter/row.js +16 -2
  26. package/3rdparty/walkontable/src/filter/row.mjs +16 -2
  27. package/3rdparty/walkontable/src/overlay/_base.js +17 -3
  28. package/3rdparty/walkontable/src/overlay/_base.mjs +24 -10
  29. package/3rdparty/walkontable/src/overlay/bottom.js +13 -7
  30. package/3rdparty/walkontable/src/overlay/bottom.mjs +15 -9
  31. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +8 -2
  32. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +10 -4
  33. package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -2
  34. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +10 -4
  35. package/3rdparty/walkontable/src/overlay/top.js +13 -7
  36. package/3rdparty/walkontable/src/overlay/top.mjs +15 -9
  37. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +13 -7
  38. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +15 -9
  39. package/3rdparty/walkontable/src/overlays.js +69 -19
  40. package/3rdparty/walkontable/src/overlays.mjs +71 -21
  41. package/3rdparty/walkontable/src/renderer/_base.js +16 -2
  42. package/3rdparty/walkontable/src/renderer/_base.mjs +20 -6
  43. package/3rdparty/walkontable/src/renderer/cells.js +8 -2
  44. package/3rdparty/walkontable/src/renderer/cells.mjs +20 -14
  45. package/3rdparty/walkontable/src/renderer/colGroup.js +8 -2
  46. package/3rdparty/walkontable/src/renderer/colGroup.mjs +19 -13
  47. package/3rdparty/walkontable/src/renderer/columnHeaders.js +8 -2
  48. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +19 -13
  49. package/3rdparty/walkontable/src/renderer/index.js +16 -2
  50. package/3rdparty/walkontable/src/renderer/index.mjs +20 -6
  51. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -2
  52. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +20 -14
  53. package/3rdparty/walkontable/src/renderer/rows.js +8 -3
  54. package/3rdparty/walkontable/src/renderer/rows.mjs +8 -3
  55. package/3rdparty/walkontable/src/renderer/table.js +16 -2
  56. package/3rdparty/walkontable/src/renderer/table.mjs +16 -2
  57. package/3rdparty/walkontable/src/scroll.js +16 -3
  58. package/3rdparty/walkontable/src/scroll.mjs +18 -5
  59. package/3rdparty/walkontable/src/selection.js +11 -5
  60. package/3rdparty/walkontable/src/selection.mjs +11 -5
  61. package/3rdparty/walkontable/src/settings.js +16 -2
  62. package/3rdparty/walkontable/src/settings.mjs +16 -2
  63. package/3rdparty/walkontable/src/table/bottom.js +8 -2
  64. package/3rdparty/walkontable/src/table/bottom.mjs +13 -7
  65. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +8 -2
  66. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +14 -8
  67. package/3rdparty/walkontable/src/table/inlineStart.js +8 -2
  68. package/3rdparty/walkontable/src/table/inlineStart.mjs +10 -4
  69. package/3rdparty/walkontable/src/table/master.js +8 -2
  70. package/3rdparty/walkontable/src/table/master.mjs +13 -7
  71. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  72. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  73. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  74. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  75. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +12 -6
  76. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +12 -6
  77. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +12 -6
  78. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +12 -6
  79. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +12 -6
  80. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +12 -6
  81. package/3rdparty/walkontable/src/table/top.js +8 -2
  82. package/3rdparty/walkontable/src/table/top.mjs +13 -7
  83. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +8 -2
  84. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +14 -8
  85. package/3rdparty/walkontable/src/table.js +13 -6
  86. package/3rdparty/walkontable/src/table.mjs +21 -14
  87. package/3rdparty/walkontable/src/utils/column.js +12 -2
  88. package/3rdparty/walkontable/src/utils/column.mjs +16 -6
  89. package/3rdparty/walkontable/src/utils/nodesPool.js +16 -2
  90. package/3rdparty/walkontable/src/utils/nodesPool.mjs +16 -2
  91. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +8 -2
  92. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +12 -6
  93. package/3rdparty/walkontable/src/utils/orderView/view.js +16 -2
  94. package/3rdparty/walkontable/src/utils/orderView/view.mjs +23 -9
  95. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +16 -2
  96. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +16 -2
  97. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +16 -2
  98. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +31 -17
  99. package/3rdparty/walkontable/src/utils/row.js +16 -2
  100. package/3rdparty/walkontable/src/utils/row.mjs +16 -2
  101. package/3rdparty/walkontable/src/viewport.js +16 -2
  102. package/3rdparty/walkontable/src/viewport.mjs +18 -4
  103. package/CHANGELOG.md +23 -0
  104. package/base.d.ts +1 -0
  105. package/base.js +7 -2
  106. package/base.mjs +9 -4
  107. package/cellTypes/index.mjs +4 -3
  108. package/core.d.ts +1 -1
  109. package/core.js +234 -122
  110. package/core.mjs +231 -119
  111. package/dataMap/dataMap.js +98 -28
  112. package/dataMap/dataMap.mjs +97 -27
  113. package/dataMap/dataSource.js +14 -2
  114. package/dataMap/dataSource.mjs +17 -5
  115. package/dataMap/metaManager/index.js +15 -2
  116. package/dataMap/metaManager/index.mjs +41 -28
  117. package/dataMap/metaManager/lazyFactoryMap.js +7 -1
  118. package/dataMap/metaManager/lazyFactoryMap.mjs +7 -1
  119. package/dataMap/metaManager/metaLayers/cellMeta.js +13 -8
  120. package/dataMap/metaManager/metaLayers/cellMeta.mjs +12 -7
  121. package/dataMap/metaManager/metaLayers/columnMeta.js +15 -2
  122. package/dataMap/metaManager/metaLayers/columnMeta.mjs +23 -9
  123. package/dataMap/metaManager/metaLayers/globalMeta.js +26 -2
  124. package/dataMap/metaManager/metaLayers/globalMeta.mjs +27 -3
  125. package/dataMap/metaManager/metaLayers/tableMeta.js +17 -3
  126. package/dataMap/metaManager/metaLayers/tableMeta.mjs +41 -27
  127. package/dataMap/metaManager/metaSchema.js +119 -66
  128. package/dataMap/metaManager/metaSchema.mjs +119 -66
  129. package/dataMap/metaManager/mods/dynamicCellMeta.js +12 -2
  130. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +26 -16
  131. package/dataMap/metaManager/mods/extendMetaProperties.js +12 -2
  132. package/dataMap/metaManager/mods/extendMetaProperties.mjs +10 -1
  133. package/dataMap/metaManager/utils.js +44 -14
  134. package/dataMap/metaManager/utils.mjs +51 -20
  135. package/dataMap/replaceData.js +2 -1
  136. package/dataMap/replaceData.mjs +24 -22
  137. package/dist/handsontable.css +9 -9
  138. package/dist/handsontable.full.css +9 -9
  139. package/dist/handsontable.full.js +7350 -10885
  140. package/dist/handsontable.full.min.css +2 -2
  141. package/dist/handsontable.full.min.js +107 -113
  142. package/dist/handsontable.js +5800 -4499
  143. package/dist/handsontable.min.css +2 -2
  144. package/dist/handsontable.min.js +3 -3
  145. package/dist/languages/all.js +111 -65
  146. package/dist/languages/all.min.js +1 -1
  147. package/dist/languages/ar-AR.js +50 -4
  148. package/dist/languages/ar-AR.min.js +1 -1
  149. package/dist/languages/cs-CZ.js +52 -6
  150. package/dist/languages/cs-CZ.min.js +1 -1
  151. package/dist/languages/de-CH.js +52 -6
  152. package/dist/languages/de-CH.min.js +1 -1
  153. package/dist/languages/de-DE.js +53 -7
  154. package/dist/languages/de-DE.min.js +1 -1
  155. package/dist/languages/en-US.js +56 -10
  156. package/dist/languages/en-US.min.js +1 -1
  157. package/dist/languages/es-MX.js +56 -10
  158. package/dist/languages/es-MX.min.js +1 -1
  159. package/dist/languages/fr-FR.js +55 -9
  160. package/dist/languages/fr-FR.min.js +1 -1
  161. package/dist/languages/it-IT.js +55 -9
  162. package/dist/languages/it-IT.min.js +1 -1
  163. package/dist/languages/ja-JP.js +83 -33
  164. package/dist/languages/ja-JP.min.js +1 -1
  165. package/dist/languages/ko-KR.js +84 -33
  166. package/dist/languages/ko-KR.min.js +1 -1
  167. package/dist/languages/lv-LV.js +85 -33
  168. package/dist/languages/lv-LV.min.js +1 -1
  169. package/dist/languages/nb-NO.js +86 -33
  170. package/dist/languages/nb-NO.min.js +1 -1
  171. package/dist/languages/nl-NL.js +87 -33
  172. package/dist/languages/nl-NL.min.js +1 -1
  173. package/dist/languages/pl-PL.js +88 -33
  174. package/dist/languages/pl-PL.min.js +1 -1
  175. package/dist/languages/pt-BR.js +68 -19
  176. package/dist/languages/pt-BR.min.js +1 -1
  177. package/dist/languages/ru-RU.js +68 -19
  178. package/dist/languages/ru-RU.min.js +1 -1
  179. package/dist/languages/sr-SP.js +55 -6
  180. package/dist/languages/sr-SP.min.js +1 -1
  181. package/dist/languages/zh-CN.js +55 -6
  182. package/dist/languages/zh-CN.min.js +1 -1
  183. package/dist/languages/zh-TW.js +55 -6
  184. package/dist/languages/zh-TW.min.js +1 -1
  185. package/editorManager.js +18 -9
  186. package/editorManager.mjs +15 -6
  187. package/editors/autocompleteEditor/autocompleteEditor.js +10 -5
  188. package/editors/autocompleteEditor/autocompleteEditor.mjs +9 -4
  189. package/editors/baseEditor/baseEditor.js +11 -6
  190. package/editors/baseEditor/baseEditor.mjs +10 -5
  191. package/editors/checkboxEditor/checkboxEditor.js +6 -1
  192. package/editors/checkboxEditor/checkboxEditor.mjs +6 -1
  193. package/editors/dateEditor/dateEditor.js +6 -1
  194. package/editors/dateEditor/dateEditor.mjs +6 -1
  195. package/editors/dropdownEditor/dropdownEditor.js +6 -1
  196. package/editors/dropdownEditor/dropdownEditor.mjs +6 -1
  197. package/editors/handsontableEditor/handsontableEditor.js +6 -1
  198. package/editors/handsontableEditor/handsontableEditor.mjs +6 -1
  199. package/editors/index.mjs +4 -3
  200. package/editors/numericEditor/numericEditor.js +6 -1
  201. package/editors/numericEditor/numericEditor.mjs +6 -1
  202. package/editors/passwordEditor/passwordEditor.js +6 -1
  203. package/editors/passwordEditor/passwordEditor.mjs +6 -1
  204. package/editors/registry.js +3 -0
  205. package/editors/registry.mjs +5 -1
  206. package/editors/selectEditor/selectEditor.js +6 -1
  207. package/editors/selectEditor/selectEditor.mjs +6 -1
  208. package/editors/textEditor/caretPositioner.mjs +11 -10
  209. package/editors/textEditor/textEditor.js +7 -2
  210. package/editors/textEditor/textEditor.mjs +7 -2
  211. package/editors/timeEditor/timeEditor.js +6 -1
  212. package/editors/timeEditor/timeEditor.mjs +6 -1
  213. package/eventManager.js +24 -9
  214. package/eventManager.mjs +26 -11
  215. package/helpers/console.mjs +6 -5
  216. package/helpers/data.d.ts +0 -1
  217. package/helpers/data.js +0 -49
  218. package/helpers/data.mjs +1 -49
  219. package/helpers/dom/element.js +23 -0
  220. package/helpers/dom/element.mjs +30 -7
  221. package/helpers/feature.js +9 -36
  222. package/helpers/feature.mjs +3 -30
  223. package/helpers/function.mjs +7 -6
  224. package/helpers/mixed.js +2 -2
  225. package/helpers/mixed.mjs +9 -8
  226. package/helpers/object.js +15 -9
  227. package/helpers/object.mjs +17 -10
  228. package/helpers/string.mjs +7 -6
  229. package/helpers/templateLiteralTag.mjs +8 -7
  230. package/i18n/constants.js +49 -42
  231. package/i18n/constants.mjs +45 -41
  232. package/i18n/languages/ar-AR.js +12 -7
  233. package/i18n/languages/ar-AR.mjs +16 -2
  234. package/i18n/languages/cs-CZ.js +12 -7
  235. package/i18n/languages/cs-CZ.mjs +16 -2
  236. package/i18n/languages/de-CH.js +12 -7
  237. package/i18n/languages/de-CH.mjs +16 -2
  238. package/i18n/languages/de-DE.js +12 -7
  239. package/i18n/languages/de-DE.mjs +16 -2
  240. package/i18n/languages/en-US.js +13 -8
  241. package/i18n/languages/en-US.mjs +17 -3
  242. package/i18n/languages/es-MX.js +13 -8
  243. package/i18n/languages/es-MX.mjs +19 -4
  244. package/i18n/languages/fr-FR.js +12 -7
  245. package/i18n/languages/fr-FR.mjs +16 -2
  246. package/i18n/languages/it-IT.js +12 -7
  247. package/i18n/languages/it-IT.mjs +16 -2
  248. package/i18n/languages/ja-JP.js +12 -7
  249. package/i18n/languages/ja-JP.mjs +16 -2
  250. package/i18n/languages/ko-KR.js +12 -7
  251. package/i18n/languages/ko-KR.mjs +16 -2
  252. package/i18n/languages/lv-LV.js +13 -8
  253. package/i18n/languages/lv-LV.mjs +19 -5
  254. package/i18n/languages/nb-NO.js +12 -7
  255. package/i18n/languages/nb-NO.mjs +16 -2
  256. package/i18n/languages/nl-NL.js +13 -8
  257. package/i18n/languages/nl-NL.mjs +19 -5
  258. package/i18n/languages/pl-PL.js +13 -8
  259. package/i18n/languages/pl-PL.mjs +18 -4
  260. package/i18n/languages/pt-BR.js +12 -7
  261. package/i18n/languages/pt-BR.mjs +16 -2
  262. package/i18n/languages/ru-RU.js +12 -7
  263. package/i18n/languages/ru-RU.mjs +16 -2
  264. package/i18n/languages/sr-SP.js +12 -7
  265. package/i18n/languages/sr-SP.mjs +16 -2
  266. package/i18n/languages/zh-CN.js +12 -7
  267. package/i18n/languages/zh-CN.mjs +16 -2
  268. package/i18n/languages/zh-TW.js +12 -7
  269. package/i18n/languages/zh-TW.mjs +16 -2
  270. package/i18n/phraseFormatters/substituteVariables.mjs +9 -8
  271. package/i18n/utils.mjs +10 -9
  272. package/index.d.ts +9 -0
  273. package/index.js +4 -2
  274. package/index.mjs +2 -1
  275. package/languages/all.js +111 -65
  276. package/languages/ar-AR.js +50 -4
  277. package/languages/ar-AR.mjs +16 -2
  278. package/languages/cs-CZ.js +52 -6
  279. package/languages/cs-CZ.mjs +16 -2
  280. package/languages/de-CH.js +52 -6
  281. package/languages/de-CH.mjs +16 -2
  282. package/languages/de-DE.js +53 -7
  283. package/languages/de-DE.mjs +16 -2
  284. package/languages/en-US.js +56 -10
  285. package/languages/en-US.mjs +17 -3
  286. package/languages/es-MX.js +56 -10
  287. package/languages/es-MX.mjs +19 -4
  288. package/languages/fr-FR.js +55 -9
  289. package/languages/fr-FR.mjs +16 -2
  290. package/languages/index.js +111 -65
  291. package/languages/it-IT.js +55 -9
  292. package/languages/it-IT.mjs +16 -2
  293. package/languages/ja-JP.js +83 -33
  294. package/languages/ja-JP.mjs +16 -2
  295. package/languages/ko-KR.js +84 -33
  296. package/languages/ko-KR.mjs +16 -2
  297. package/languages/lv-LV.js +85 -33
  298. package/languages/lv-LV.mjs +19 -5
  299. package/languages/nb-NO.js +86 -33
  300. package/languages/nb-NO.mjs +16 -2
  301. package/languages/nl-NL.js +87 -33
  302. package/languages/nl-NL.mjs +19 -5
  303. package/languages/pl-PL.js +88 -33
  304. package/languages/pl-PL.mjs +18 -4
  305. package/languages/pt-BR.js +68 -19
  306. package/languages/pt-BR.mjs +16 -2
  307. package/languages/ru-RU.js +68 -19
  308. package/languages/ru-RU.mjs +16 -2
  309. package/languages/sr-SP.js +55 -6
  310. package/languages/sr-SP.mjs +16 -2
  311. package/languages/zh-CN.js +55 -6
  312. package/languages/zh-CN.mjs +16 -2
  313. package/languages/zh-TW.js +55 -6
  314. package/languages/zh-TW.mjs +16 -2
  315. package/mixins/hooksRefRegisterer.js +6 -3
  316. package/mixins/hooksRefRegisterer.mjs +6 -3
  317. package/mixins/localHooks.js +6 -3
  318. package/mixins/localHooks.mjs +6 -3
  319. package/package.json +2 -2
  320. package/pluginHooks.d.ts +7 -2
  321. package/pluginHooks.js +109 -24
  322. package/pluginHooks.mjs +109 -24
  323. package/plugins/autoColumnSize/autoColumnSize.js +7 -2
  324. package/plugins/autoColumnSize/autoColumnSize.mjs +7 -2
  325. package/plugins/autoRowSize/autoRowSize.js +16 -7
  326. package/plugins/autoRowSize/autoRowSize.mjs +16 -7
  327. package/plugins/autofill/autofill.js +7 -2
  328. package/plugins/autofill/autofill.mjs +7 -2
  329. package/plugins/base/base.js +8 -2
  330. package/plugins/base/base.mjs +8 -2
  331. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -1
  332. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -1
  333. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +6 -1
  334. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +6 -1
  335. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -1
  336. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +6 -1
  337. package/plugins/collapsibleColumns/collapsibleColumns.js +10 -5
  338. package/plugins/collapsibleColumns/collapsibleColumns.mjs +9 -4
  339. package/plugins/columnSorting/columnSorting.js +8 -4
  340. package/plugins/columnSorting/columnSorting.mjs +8 -4
  341. package/plugins/columnSorting/columnStatesManager.js +12 -6
  342. package/plugins/columnSorting/columnStatesManager.mjs +9 -3
  343. package/plugins/columnSorting/rootComparator.mjs +8 -7
  344. package/plugins/columnSorting/sortFunction/checkbox.mjs +9 -8
  345. package/plugins/columnSorting/sortFunction/date.mjs +9 -8
  346. package/plugins/columnSorting/sortFunction/default.mjs +9 -8
  347. package/plugins/columnSorting/sortFunction/numeric.mjs +9 -8
  348. package/plugins/columnSummary/columnSummary.js +13 -8
  349. package/plugins/columnSummary/columnSummary.mjs +13 -8
  350. package/plugins/columnSummary/endpoints.js +17 -16
  351. package/plugins/columnSummary/endpoints.mjs +22 -21
  352. package/plugins/comments/commentEditor.js +16 -2
  353. package/plugins/comments/commentEditor.mjs +21 -7
  354. package/plugins/comments/comments.js +15 -4
  355. package/plugins/comments/comments.mjs +15 -4
  356. package/plugins/comments/displaySwitch.js +14 -1
  357. package/plugins/comments/displaySwitch.mjs +14 -1
  358. package/plugins/contextMenu/commandExecutor.js +22 -7
  359. package/plugins/contextMenu/commandExecutor.mjs +27 -12
  360. package/plugins/contextMenu/contextMenu.d.ts +4 -3
  361. package/plugins/contextMenu/contextMenu.js +7 -17
  362. package/plugins/contextMenu/contextMenu.mjs +7 -17
  363. package/plugins/contextMenu/cursor.js +16 -2
  364. package/plugins/contextMenu/cursor.mjs +21 -7
  365. package/plugins/contextMenu/itemsFactory.js +23 -8
  366. package/plugins/contextMenu/itemsFactory.mjs +28 -13
  367. package/plugins/contextMenu/menu.js +14 -3
  368. package/plugins/contextMenu/menu.mjs +13 -2
  369. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  370. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
  371. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  372. package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
  373. package/plugins/contextMenu/predefinedItems.js +12 -7
  374. package/plugins/contextMenu/predefinedItems.mjs +14 -1
  375. package/plugins/contextMenu/utils.mjs +5 -4
  376. package/plugins/copyPaste/clipboardData.js +16 -2
  377. package/plugins/copyPaste/clipboardData.mjs +16 -2
  378. package/plugins/copyPaste/contextMenuItem/copy.js +4 -16
  379. package/plugins/copyPaste/contextMenuItem/copy.mjs +8 -7
  380. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +35 -0
  381. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +31 -0
  382. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +35 -0
  383. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +31 -0
  384. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +35 -0
  385. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +31 -0
  386. package/plugins/copyPaste/contextMenuItem/cut.mjs +5 -4
  387. package/plugins/copyPaste/copyPaste.d.ts +10 -2
  388. package/plugins/copyPaste/copyPaste.js +303 -202
  389. package/plugins/copyPaste/copyPaste.mjs +303 -202
  390. package/plugins/copyPaste/copyableRanges.js +269 -0
  391. package/plugins/copyPaste/copyableRanges.mjs +264 -0
  392. package/plugins/copyPaste/focusableElement.js +12 -2
  393. package/plugins/copyPaste/focusableElement.mjs +15 -5
  394. package/plugins/copyPaste/pasteEvent.js +16 -2
  395. package/plugins/copyPaste/pasteEvent.mjs +18 -4
  396. package/plugins/customBorders/contextMenuItem/bottom.mjs +5 -4
  397. package/plugins/customBorders/contextMenuItem/left.mjs +5 -4
  398. package/plugins/customBorders/contextMenuItem/noBorders.mjs +5 -4
  399. package/plugins/customBorders/contextMenuItem/right.mjs +5 -4
  400. package/plugins/customBorders/contextMenuItem/top.mjs +5 -4
  401. package/plugins/customBorders/customBorders.js +12 -7
  402. package/plugins/customBorders/customBorders.mjs +11 -6
  403. package/plugins/customBorders/utils.mjs +8 -7
  404. package/plugins/dragToScroll/dragToScroll.js +6 -1
  405. package/plugins/dragToScroll/dragToScroll.mjs +6 -1
  406. package/plugins/dropdownMenu/dropdownMenu.js +6 -1
  407. package/plugins/dropdownMenu/dropdownMenu.mjs +6 -1
  408. package/plugins/exportFile/dataProvider.js +13 -6
  409. package/plugins/exportFile/dataProvider.mjs +12 -5
  410. package/plugins/exportFile/exportFile.js +8 -3
  411. package/plugins/exportFile/exportFile.mjs +6 -1
  412. package/plugins/exportFile/typeFactory.js +14 -1
  413. package/plugins/exportFile/typeFactory.mjs +14 -1
  414. package/plugins/exportFile/types/_base.js +16 -2
  415. package/plugins/exportFile/types/_base.mjs +18 -4
  416. package/plugins/exportFile/types/csv.js +6 -1
  417. package/plugins/exportFile/types/csv.mjs +6 -1
  418. package/plugins/filters/component/_base.js +16 -2
  419. package/plugins/filters/component/_base.mjs +19 -5
  420. package/plugins/filters/component/actionBar.js +10 -4
  421. package/plugins/filters/component/actionBar.mjs +11 -5
  422. package/plugins/filters/component/condition.js +10 -4
  423. package/plugins/filters/component/condition.mjs +11 -5
  424. package/plugins/filters/component/operators.js +8 -3
  425. package/plugins/filters/component/operators.mjs +8 -3
  426. package/plugins/filters/component/value.js +9 -3
  427. package/plugins/filters/component/value.mjs +12 -6
  428. package/plugins/filters/condition/beginsWith.js +1 -1
  429. package/plugins/filters/condition/beginsWith.mjs +1 -1
  430. package/plugins/filters/condition/between.js +1 -1
  431. package/plugins/filters/condition/between.mjs +1 -1
  432. package/plugins/filters/condition/byValue.js +1 -1
  433. package/plugins/filters/condition/byValue.mjs +1 -1
  434. package/plugins/filters/condition/contains.js +1 -1
  435. package/plugins/filters/condition/contains.mjs +1 -1
  436. package/plugins/filters/condition/date/after.js +1 -1
  437. package/plugins/filters/condition/date/after.mjs +1 -1
  438. package/plugins/filters/condition/date/before.js +1 -1
  439. package/plugins/filters/condition/date/before.mjs +1 -1
  440. package/plugins/filters/condition/endsWith.js +1 -1
  441. package/plugins/filters/condition/endsWith.mjs +1 -1
  442. package/plugins/filters/condition/equal.js +1 -1
  443. package/plugins/filters/condition/equal.mjs +1 -1
  444. package/plugins/filters/condition/greaterThan.js +1 -1
  445. package/plugins/filters/condition/greaterThan.mjs +1 -1
  446. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  447. package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -1
  448. package/plugins/filters/condition/lessThan.js +1 -1
  449. package/plugins/filters/condition/lessThan.mjs +1 -1
  450. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  451. package/plugins/filters/condition/lessThanOrEqual.mjs +1 -1
  452. package/plugins/filters/conditionCollection.js +10 -4
  453. package/plugins/filters/conditionCollection.mjs +18 -12
  454. package/plugins/filters/conditionUpdateObserver.js +15 -2
  455. package/plugins/filters/conditionUpdateObserver.mjs +23 -10
  456. package/plugins/filters/constants.js +14 -1
  457. package/plugins/filters/constants.mjs +14 -1
  458. package/plugins/filters/dataFilter.js +16 -2
  459. package/plugins/filters/dataFilter.mjs +19 -5
  460. package/plugins/filters/filters.js +7 -2
  461. package/plugins/filters/filters.mjs +7 -2
  462. package/plugins/filters/ui/_base.js +12 -7
  463. package/plugins/filters/ui/_base.mjs +14 -1
  464. package/plugins/filters/ui/input.js +6 -1
  465. package/plugins/filters/ui/input.mjs +6 -1
  466. package/plugins/filters/ui/link.js +6 -1
  467. package/plugins/filters/ui/link.mjs +6 -1
  468. package/plugins/filters/ui/multipleSelect.js +14 -8
  469. package/plugins/filters/ui/multipleSelect.mjs +6 -1
  470. package/plugins/filters/ui/radioInput.js +6 -1
  471. package/plugins/filters/ui/radioInput.mjs +6 -1
  472. package/plugins/filters/ui/select.js +6 -1
  473. package/plugins/filters/ui/select.mjs +6 -1
  474. package/plugins/formulas/engine/register.mjs +6 -5
  475. package/plugins/formulas/engine/settings.js +12 -1
  476. package/plugins/formulas/engine/settings.mjs +12 -1
  477. package/plugins/formulas/formulas.js +24 -11
  478. package/plugins/formulas/formulas.mjs +24 -11
  479. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  480. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +6 -5
  481. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -4
  482. package/plugins/hiddenColumns/hiddenColumns.js +5 -1
  483. package/plugins/hiddenColumns/hiddenColumns.mjs +5 -1
  484. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  485. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +6 -5
  486. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -4
  487. package/plugins/hiddenRows/hiddenRows.js +5 -1
  488. package/plugins/hiddenRows/hiddenRows.mjs +5 -1
  489. package/plugins/index.mjs +4 -3
  490. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  491. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +6 -5
  492. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  493. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +6 -5
  494. package/plugins/manualColumnFreeze/manualColumnFreeze.js +6 -1
  495. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +6 -1
  496. package/plugins/manualColumnMove/manualColumnMove.js +6 -1
  497. package/plugins/manualColumnMove/manualColumnMove.mjs +6 -1
  498. package/plugins/manualColumnMove/ui/_base.js +14 -1
  499. package/plugins/manualColumnMove/ui/_base.mjs +14 -1
  500. package/plugins/manualColumnMove/ui/backlight.js +6 -1
  501. package/plugins/manualColumnMove/ui/backlight.mjs +6 -1
  502. package/plugins/manualColumnMove/ui/guideline.js +6 -1
  503. package/plugins/manualColumnMove/ui/guideline.mjs +6 -1
  504. package/plugins/manualColumnResize/manualColumnResize.js +6 -1
  505. package/plugins/manualColumnResize/manualColumnResize.mjs +6 -1
  506. package/plugins/manualRowMove/manualRowMove.js +6 -1
  507. package/plugins/manualRowMove/manualRowMove.mjs +6 -1
  508. package/plugins/manualRowMove/ui/_base.js +14 -1
  509. package/plugins/manualRowMove/ui/_base.mjs +14 -1
  510. package/plugins/manualRowMove/ui/backlight.js +6 -1
  511. package/plugins/manualRowMove/ui/backlight.mjs +6 -1
  512. package/plugins/manualRowMove/ui/guideline.js +6 -1
  513. package/plugins/manualRowMove/ui/guideline.mjs +6 -1
  514. package/plugins/manualRowResize/manualRowResize.js +6 -1
  515. package/plugins/manualRowResize/manualRowResize.mjs +6 -1
  516. package/plugins/mergeCells/calculations/autofill.js +13 -6
  517. package/plugins/mergeCells/calculations/autofill.mjs +15 -8
  518. package/plugins/mergeCells/calculations/selection.js +16 -2
  519. package/plugins/mergeCells/calculations/selection.mjs +16 -2
  520. package/plugins/mergeCells/cellCoords.js +16 -2
  521. package/plugins/mergeCells/cellCoords.mjs +21 -7
  522. package/plugins/mergeCells/cellsCollection.js +12 -5
  523. package/plugins/mergeCells/cellsCollection.mjs +14 -7
  524. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +5 -4
  525. package/plugins/mergeCells/mergeCells.js +7 -2
  526. package/plugins/mergeCells/mergeCells.mjs +7 -2
  527. package/plugins/multiColumnSorting/multiColumnSorting.js +6 -1
  528. package/plugins/multiColumnSorting/multiColumnSorting.mjs +6 -1
  529. package/plugins/multiColumnSorting/rootComparator.mjs +8 -7
  530. package/plugins/multiColumnSorting/utils.mjs +4 -3
  531. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +6 -1
  532. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +6 -1
  533. package/plugins/nestedHeaders/nestedHeaders.js +124 -16
  534. package/plugins/nestedHeaders/nestedHeaders.mjs +131 -23
  535. package/plugins/nestedHeaders/stateManager/headersTree.js +10 -3
  536. package/plugins/nestedHeaders/stateManager/headersTree.mjs +10 -3
  537. package/plugins/nestedHeaders/stateManager/index.js +34 -14
  538. package/plugins/nestedHeaders/stateManager/index.mjs +67 -47
  539. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +33 -31
  540. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +18 -17
  541. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +17 -16
  542. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +7 -6
  543. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -1
  544. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +7 -6
  545. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +41 -39
  546. package/plugins/nestedHeaders/stateManager/sourceSettings.js +11 -3
  547. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +23 -14
  548. package/plugins/nestedHeaders/utils/ghostTable.js +17 -3
  549. package/plugins/nestedHeaders/utils/ghostTable.mjs +24 -10
  550. package/plugins/nestedRows/data/dataManager.js +10 -4
  551. package/plugins/nestedRows/data/dataManager.mjs +12 -6
  552. package/plugins/nestedRows/nestedRows.js +6 -1
  553. package/plugins/nestedRows/nestedRows.mjs +6 -1
  554. package/plugins/nestedRows/ui/_base.js +16 -2
  555. package/plugins/nestedRows/ui/_base.mjs +16 -2
  556. package/plugins/nestedRows/ui/collapsing.js +8 -2
  557. package/plugins/nestedRows/ui/collapsing.mjs +14 -8
  558. package/plugins/nestedRows/ui/contextMenu.js +7 -2
  559. package/plugins/nestedRows/ui/contextMenu.mjs +6 -1
  560. package/plugins/nestedRows/ui/headers.js +8 -2
  561. package/plugins/nestedRows/ui/headers.mjs +14 -8
  562. package/plugins/nestedRows/utils/rowMoveController.js +11 -4
  563. package/plugins/nestedRows/utils/rowMoveController.mjs +25 -18
  564. package/plugins/persistentState/persistentState.js +6 -1
  565. package/plugins/persistentState/persistentState.mjs +6 -1
  566. package/plugins/persistentState/storage.js +16 -2
  567. package/plugins/persistentState/storage.mjs +19 -5
  568. package/plugins/registry.js +1 -1
  569. package/plugins/registry.mjs +3 -2
  570. package/plugins/search/search.js +6 -1
  571. package/plugins/search/search.mjs +6 -1
  572. package/plugins/touchScroll/touchScroll.js +6 -1
  573. package/plugins/touchScroll/touchScroll.mjs +6 -1
  574. package/plugins/trimRows/trimRows.js +5 -1
  575. package/plugins/trimRows/trimRows.mjs +5 -1
  576. package/plugins/undoRedo/undoRedo.js +50 -32
  577. package/plugins/undoRedo/undoRedo.mjs +50 -32
  578. package/registry.mjs +2 -1
  579. package/renderers/baseRenderer/baseRenderer.mjs +2 -1
  580. package/renderers/index.mjs +4 -3
  581. package/selection/highlight/highlight.js +10 -3
  582. package/selection/highlight/highlight.mjs +24 -17
  583. package/selection/highlight/types/activeHeader.js +13 -2
  584. package/selection/highlight/types/activeHeader.mjs +19 -7
  585. package/selection/highlight/types/area.js +13 -2
  586. package/selection/highlight/types/area.mjs +22 -10
  587. package/selection/highlight/types/cell.js +13 -2
  588. package/selection/highlight/types/cell.mjs +22 -10
  589. package/selection/highlight/types/customSelection.js +13 -2
  590. package/selection/highlight/types/customSelection.mjs +23 -11
  591. package/selection/highlight/types/fill.js +14 -3
  592. package/selection/highlight/types/fill.mjs +22 -10
  593. package/selection/highlight/types/header.js +13 -2
  594. package/selection/highlight/types/header.mjs +24 -12
  595. package/selection/highlight/types/index.js +14 -3
  596. package/selection/highlight/types/index.mjs +14 -3
  597. package/selection/highlight/visualSelection.js +11 -6
  598. package/selection/highlight/visualSelection.mjs +11 -6
  599. package/selection/mouseEventHandler.mjs +14 -13
  600. package/selection/range.js +9 -2
  601. package/selection/range.mjs +9 -2
  602. package/selection/selection.js +13 -6
  603. package/selection/selection.mjs +21 -14
  604. package/selection/transformation.js +16 -2
  605. package/selection/transformation.mjs +24 -10
  606. package/selection/utils.js +1 -1
  607. package/selection/utils.mjs +1 -1
  608. package/shortcuts/context.js +1 -1
  609. package/shortcuts/context.mjs +1 -1
  610. package/shortcuts/keyObserver.js +8 -4
  611. package/shortcuts/keyObserver.mjs +8 -4
  612. package/shortcuts/manager.js +1 -1
  613. package/shortcuts/manager.mjs +1 -1
  614. package/tableView.js +147 -68
  615. package/tableView.mjs +147 -68
  616. package/translations/changesObservable/observable.js +12 -2
  617. package/translations/changesObservable/observable.mjs +19 -9
  618. package/translations/changesObservable/observer.js +12 -2
  619. package/translations/changesObservable/observer.mjs +17 -7
  620. package/translations/indexMapper.js +12 -6
  621. package/translations/indexMapper.mjs +17 -11
  622. package/translations/mapCollections/aggregatedCollection.js +8 -2
  623. package/translations/mapCollections/aggregatedCollection.mjs +11 -5
  624. package/translations/mapCollections/mapCollection.js +10 -1
  625. package/translations/mapCollections/mapCollection.mjs +10 -1
  626. package/translations/maps/hidingMap.js +8 -2
  627. package/translations/maps/hidingMap.mjs +13 -7
  628. package/translations/maps/indexMap.js +16 -2
  629. package/translations/maps/indexMap.mjs +20 -6
  630. package/translations/maps/indexesSequence.js +8 -2
  631. package/translations/maps/indexesSequence.mjs +14 -8
  632. package/translations/maps/linkedPhysicalIndexToValueMap.js +12 -6
  633. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +18 -12
  634. package/translations/maps/physicalIndexToValueMap.js +8 -2
  635. package/translations/maps/physicalIndexToValueMap.mjs +14 -8
  636. package/translations/maps/trimmingMap.js +8 -2
  637. package/translations/maps/trimmingMap.mjs +13 -7
  638. package/translations/maps/utils/actionsOnIndexes.mjs +9 -8
  639. package/translations/maps/utils/indexesSequence.mjs +10 -9
  640. package/translations/maps/utils/physicallyIndexed.mjs +11 -10
  641. package/utils/dataStructures/linkedList.js +21 -7
  642. package/utils/dataStructures/linkedList.mjs +21 -7
  643. package/utils/dataStructures/priorityMap.js +1 -1
  644. package/utils/dataStructures/priorityMap.mjs +1 -1
  645. package/utils/dataStructures/queue.js +16 -2
  646. package/utils/dataStructures/queue.mjs +16 -2
  647. package/utils/dataStructures/stack.js +16 -2
  648. package/utils/dataStructures/stack.mjs +16 -2
  649. package/utils/dataStructures/tree.js +8 -2
  650. package/utils/dataStructures/tree.mjs +8 -2
  651. package/utils/dataStructures/uniqueMap.js +1 -1
  652. package/utils/dataStructures/uniqueMap.mjs +1 -1
  653. package/utils/ghostTable.js +12 -5
  654. package/utils/ghostTable.mjs +12 -5
  655. package/utils/interval.js +23 -8
  656. package/utils/interval.mjs +18 -4
  657. package/utils/samplesGenerator.js +13 -3
  658. package/utils/samplesGenerator.mjs +15 -5
  659. package/validators/index.mjs +4 -3
@@ -22,7 +22,8 @@ var localHooks = {
22
22
  * @param {string} key The hook name.
23
23
  * @param {Function} callback The hook callback.
24
24
  * @returns {object}
25
- */addLocalHook: function addLocalHook(key, callback) {
25
+ */
26
+ addLocalHook: function addLocalHook(key, callback) {
26
27
  if (!this._localHooks[key]) {
27
28
  this._localHooks[key] = [];
28
29
  }
@@ -39,7 +40,8 @@ var localHooks = {
39
40
  * @param {*} [arg4] An additional parameter passed to the callback function.
40
41
  * @param {*} [arg5] An additional parameter passed to the callback function.
41
42
  * @param {*} [arg6] An additional parameter passed to the callback function.
42
- */runLocalHooks: function runLocalHooks(key, arg1, arg2, arg3, arg4, arg5, arg6) {
43
+ */
44
+ runLocalHooks: function runLocalHooks(key, arg1, arg2, arg3, arg4, arg5, arg6) {
43
45
  if (this._localHooks[key]) {
44
46
  var length = this._localHooks[key].length;
45
47
 
@@ -55,7 +57,8 @@ var localHooks = {
55
57
  * Clear all added hooks.
56
58
  *
57
59
  * @returns {object}
58
- */clearLocalHooks: function clearLocalHooks() {
60
+ */
61
+ clearLocalHooks: function clearLocalHooks() {
59
62
  this._localHooks = {};
60
63
  return this;
61
64
  }
@@ -18,7 +18,8 @@ var localHooks = {
18
18
  * @param {string} key The hook name.
19
19
  * @param {Function} callback The hook callback.
20
20
  * @returns {object}
21
- */addLocalHook: function addLocalHook(key, callback) {
21
+ */
22
+ addLocalHook: function addLocalHook(key, callback) {
22
23
  if (!this._localHooks[key]) {
23
24
  this._localHooks[key] = [];
24
25
  }
@@ -35,7 +36,8 @@ var localHooks = {
35
36
  * @param {*} [arg4] An additional parameter passed to the callback function.
36
37
  * @param {*} [arg5] An additional parameter passed to the callback function.
37
38
  * @param {*} [arg6] An additional parameter passed to the callback function.
38
- */runLocalHooks: function runLocalHooks(key, arg1, arg2, arg3, arg4, arg5, arg6) {
39
+ */
40
+ runLocalHooks: function runLocalHooks(key, arg1, arg2, arg3, arg4, arg5, arg6) {
39
41
  if (this._localHooks[key]) {
40
42
  var length = this._localHooks[key].length;
41
43
 
@@ -51,7 +53,8 @@ var localHooks = {
51
53
  * Clear all added hooks.
52
54
  *
53
55
  * @returns {object}
54
- */clearLocalHooks: function clearLocalHooks() {
56
+ */
57
+ clearLocalHooks: function clearLocalHooks() {
55
58
  this._localHooks = {};
56
59
  return this;
57
60
  }
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/handsontable/handsontable/issues"
11
11
  },
12
12
  "author": "Handsoncode <hello@handsontable.com>",
13
- "version": "12.2.0",
13
+ "version": "12.3.0-next-9dc4f5d-20221209",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
@@ -93,7 +93,7 @@
93
93
  "on-build-webpack": "^0.1.0",
94
94
  "optimize-css-assets-webpack-plugin": "^5.0.1",
95
95
  "progress-bar-webpack-plugin": "^1.10.0",
96
- "puppeteer": "^10.2.0",
96
+ "puppeteer": "^19.2.2",
97
97
  "replace-in-file": "^6.1.0",
98
98
  "rimraf": "^2.5.4",
99
99
  "sass": "^1.3.0",
package/pluginHooks.d.ts CHANGED
@@ -65,13 +65,15 @@ export interface Events {
65
65
  afterChangesObserved?: () => void;
66
66
  afterColumnCollapse?: (currentCollapsedColumns: number[], destinationCollapsedColumns: number[], collapsePossible: boolean, successfullyCollapsed: boolean) => void;
67
67
  afterColumnExpand?: (currentCollapsedColumns: number[], destinationCollapsedColumns: number[], expandPossible: boolean, successfullyExpanded: boolean) => void;
68
+ afterColumnFreeze?: (columnIndex: number, isFreezingPerformed: boolean) => void;
68
69
  afterColumnMove?: (movedColumns: number[], finalIndex: number, dropIndex: number | undefined, movePossible: boolean, orderChanged: boolean) => void;
69
70
  afterColumnResize?: (newSize: number, column: number, isDoubleClick: boolean) => void;
70
71
  afterColumnSort?: (currentSortConfig: ColumnSortingConfig[], destinationSortConfigs: ColumnSortingConfig[]) => void;
72
+ afterColumnUnfreeze?: (columnIndex: number, isUnfreezingPerformed: boolean) => void;
71
73
  afterContextMenuDefaultOptions?: (predefinedItems: Array<ContextMenuPredefinedMenuItemKey | ContextMenuMenuItemConfig>) => void;
72
74
  afterContextMenuHide?: (context: ContextMenu) => void;
73
75
  afterContextMenuShow?: (context: ContextMenu) => void;
74
- afterCopy?: (data: CellValue[][], coords: RangeType[]) => void;
76
+ afterCopy?: (data: CellValue[][], coords: RangeType[], copiedHeadersCount: { columnHeadersCount: number }) => void;
75
77
  afterCopyLimit?: (selectedRows: number, selectedColumns: number, copyRowsLimit: number, copyColumnsLimit: number) => void;
76
78
  afterCreateCol?: (index: number, amount: number, source?: ChangeSource) => void;
77
79
  afterCreateRow?: (index: number, amount: number, source?: ChangeSource) => void;
@@ -158,12 +160,14 @@ export interface Events {
158
160
  beforeChangeRender?: (changes: CellChange[], source: ChangeSource) => void;
159
161
  beforeColumnCollapse?: (currentCollapsedColumn: number[], destinationCollapsedColumns: number[], collapsePossible: boolean) => void | boolean;
160
162
  beforeColumnExpand?: (currentCollapsedColumn: number[], destinationCollapsedColumns: number[], expandPossible: boolean) => void | boolean;
163
+ beforeColumnFreeze?: (columnIndex: number, isFreezingPerformed: boolean) => void | boolean;
161
164
  beforeColumnMove?: (movedColumns: number[], finalIndex: number, dropIndex: number | undefined, movePossible: boolean) => void | boolean;
162
165
  beforeColumnResize?: (newSize: number, column: number, isDoubleClick: boolean) => void | number;
163
166
  beforeColumnSort?: (currentSortConfig: ColumnSortingConfig[], destinationSortConfigs: ColumnSortingConfig[]) => void | boolean;
167
+ beforeColumnUnfreeze?: (columnIndex: number, isUnfreezingPerformed: boolean) => void | boolean;
164
168
  beforeContextMenuSetItems?: (menuItems: ContextMenuMenuItemConfig[]) => void;
165
169
  beforeContextMenuShow?: (context: ContextMenu) => void;
166
- beforeCopy?: (data: CellValue[][], coords: RangeType[]) => void | boolean;
170
+ beforeCopy?: (data: CellValue[][], coords: RangeType[], copiedHeadersCount: { columnHeadersCount: number }) => void | boolean;
167
171
  beforeCreateCol?: (index: number, amount: number, source?: ChangeSource) => void | boolean;
168
172
  beforeCreateRow?: (index: number, amount: number, source?: ChangeSource) => void | boolean;
169
173
  beforeCut?: (data: CellValue[][], coords: RangeType[]) => void | boolean;
@@ -223,6 +227,7 @@ export interface Events {
223
227
  modifyAutofillRange?: (startArea: Array<[number, number, number, number]>, entireArea: Array<[number, number, number, number]>) => void;
224
228
  modifyColHeader?: (column: number) => void;
225
229
  modifyColumnHeaderHeight?: () => void;
230
+ modifyColumnHeaderValue?: (headerValue: string, visualColumnIndex: number, headerLevel: number) => void | string;
226
231
  modifyColWidth?: (width: number, column: number) => void;
227
232
  modifyCopyableRange?: (copyableRanges: RangeType[]) => void;
228
233
  modifyData?: (row: number, column: number, valueHolder: { value: CellValue }, ioMode: 'get' | 'set') => void;
package/pluginHooks.js CHANGED
@@ -1,7 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  require("core-js/modules/es.array.slice.js");
4
5
  require("core-js/modules/es.object.freeze.js");
6
+ require("core-js/modules/es.symbol.to-primitive.js");
7
+ require("core-js/modules/es.date.to-primitive.js");
8
+ require("core-js/modules/es.symbol.js");
9
+ require("core-js/modules/es.symbol.description.js");
10
+ require("core-js/modules/es.number.constructor.js");
11
+ require("core-js/modules/es.symbol.iterator.js");
5
12
  exports.__esModule = true;
6
13
  exports.default = void 0;
7
14
  require("core-js/modules/es.array.iterator.js");
@@ -19,18 +26,30 @@ var _templateLiteralTag = require("./helpers/templateLiteralTag");
19
26
  var _function = require("./helpers/function");
20
27
  var _templateObject;
21
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
23
30
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
31
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
32
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
24
33
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
34
+ /* eslint-disable jsdoc/require-description-complete-sentence */
25
35
  /**
26
36
  * @description
37
+ *
38
+ * ::: only-for javascript
27
39
  * Handsontable events are the common interface that function in 2 ways: as __callbacks__ and as __hooks__.
40
+ * :::
41
+ *
42
+ * ::: only-for react
43
+ * This page lists all the **Handsontable hooks** – callbacks that let you react before or after an action occurs.
44
+ *
45
+ * Read more on the [Events and hooks](@/guides/getting-started/events-and-hooks.md) page.
46
+ * :::
28
47
  *
29
48
  * @example
30
49
  *
31
50
  * ::: only-for javascript
32
51
  * ```js
33
- * // Using events as callbacks:
52
+ * // using events as callbacks
34
53
  * ...
35
54
  * const hot1 = new Handsontable(document.getElementById('example1'), {
36
55
  * afterChange: function(changes, source) {
@@ -62,7 +81,7 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
62
81
  *
63
82
  * ::: only-for javascript
64
83
  * ```js
65
- * // Using events as plugin hooks:
84
+ * // using events as plugin hooks
66
85
  * ...
67
86
  * const hot1 = new Handsontable(document.getElementById('example1'), {
68
87
  * myPlugin: true
@@ -352,13 +371,13 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
352
371
  /**
353
372
  * Fired after retrieving information about a column header and appending it to the table header.
354
373
  *
355
- * Since the 12.2 the hook is triggered with the 3rd `headerLevel` argument.
356
- *
357
374
  * @event Hooks#afterGetColHeader
358
375
  * @param {number} column Visual column index.
359
376
  * @param {HTMLTableCellElement} TH Header's TH element.
360
- * @param {number} [headerLevel=0] The index of header level counting from the top (positive
361
- * values counting from 0 to N).
377
+ * @param {number} [headerLevel=0] (Since 12.2.0) Header level index. Accepts positive (0 to n)
378
+ * and negative (-1 to -n) values. For positive values, 0 points to the
379
+ * topmost header. For negative values, -1 points to the bottom-most
380
+ * header (the header closest to the cells).
362
381
  */
363
382
  'afterGetColHeader',
364
383
  /**
@@ -1309,7 +1328,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1309
1328
  */
1310
1329
  'modifyCopyableRange',
1311
1330
  /**
1312
- * Fired by {@link CopyPaste} plugin before copying the values into clipboard and before clearing values of
1331
+ * Fired by {@link CopyPaste} plugin before copying the values to the clipboard and before clearing values of
1313
1332
  * the selected cells. This hook is fired when {@link Options#copyPaste} option is enabled.
1314
1333
  *
1315
1334
  * @event Hooks#beforeCut
@@ -1364,18 +1383,19 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1364
1383
  * {@link Options#copyPaste} option is enabled.
1365
1384
  *
1366
1385
  * @event Hooks#afterCut
1367
- * @param {Array[]} data An array of arrays which contains the cutted out data.
1386
+ * @param {Array[]} data An array of arrays with the cut data.
1368
1387
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1369
1388
  * which was cut out.
1370
1389
  */
1371
1390
  'afterCut',
1372
1391
  /**
1373
- * Fired before values are copied into clipboard.
1392
+ * Fired before values are copied to the clipboard.
1374
1393
  *
1375
1394
  * @event Hooks#beforeCopy
1376
1395
  * @param {Array[]} data An array of arrays which contains data to copied.
1377
1396
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1378
1397
  * which will copied.
1398
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1379
1399
  * @returns {*} If returns `false` then copying is canceled.
1380
1400
  *
1381
1401
  * @example
@@ -1438,6 +1458,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1438
1458
  * @param {Array[]} data An array of arrays which contains the copied data.
1439
1459
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1440
1460
  * which was copied.
1461
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1441
1462
  */
1442
1463
  'afterCopy',
1443
1464
  /**
@@ -1496,7 +1517,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1496
1517
  * {@link Options#copyPaste} option is enabled.
1497
1518
  *
1498
1519
  * @event Hooks#afterPaste
1499
- * @param {Array[]} data An array of arrays which contains the pasted data.
1520
+ * @param {Array[]} data An array of arrays with the pasted data.
1500
1521
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1501
1522
  * that correspond to the previously selected area.
1502
1523
  */
@@ -1681,13 +1702,22 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1681
1702
  */
1682
1703
  'beforeStretchingColumnWidth',
1683
1704
  /**
1684
- * Fired by {@link Filters} plugin before applying [filtering](@/guides/columns/column-filter.md).
1685
- * This hook is fired when {@link Options#filters} option is enabled.
1705
+ * Fired by the [`Filters`](@/api/filters.md) plugin,
1706
+ * before a [column filter](@/guides/columns/column-filter.md) gets applied.
1707
+ *
1708
+ * [`beforeFilter`](#beforefilter) takes one argument (`conditionsStack`), which is an array of objects.
1709
+ * Each object represents one of your [column filters](@/api/filters.md#addcondition),
1710
+ * and consists of the following properties:
1711
+ *
1712
+ * | Property | Possible values | Description |
1713
+ * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
1714
+ * | `column` | Number | A visual index of the column to which the filter will be applied. |
1715
+ * | `conditions` | Array of objects | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1716
+ * | `operation` | `'conjunction'` \| `'disjunction'` \| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1717
+ *
1718
+ * An example of the format of the `conditionsStack` argument:
1686
1719
  *
1687
- * @event Hooks#beforeFilter
1688
- * @param {object[]} conditionsStack An array of objects with added formulas.
1689
1720
  * ```js
1690
- * // Example format of the conditionsStack argument:
1691
1721
  * [
1692
1722
  * {
1693
1723
  * column: 2,
@@ -1705,17 +1735,47 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1705
1735
  * },
1706
1736
  * ]
1707
1737
  * ```
1708
- * @returns {boolean} If hook returns `false` value then filtering won't be applied on the UI side (server-side filtering).
1738
+ *
1739
+ * To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI),
1740
+ * set [`beforeFilter`](#beforefilter) to return `false`:
1741
+ *
1742
+ * ```js
1743
+ * new Handsontable(document.getElementById('example'), {
1744
+ * beforeFilter: (conditionsStack) => {
1745
+ * return false;
1746
+ * }
1747
+ * });
1748
+ *```
1749
+ *
1750
+ * Read more:
1751
+ * - [Guides: Column filter](@/guides/columns/column-filter.md)
1752
+ * - [Hooks: `afterFilter`](#afterfilter)
1753
+ * - [Options: `filters`](@/api/options.md#filters)
1754
+ * - [Plugins: `Filters`](@/api/filters.md)
1755
+ * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)
1756
+ *
1757
+ * @event Hooks#beforeFilter
1758
+ * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).
1759
+ * @returns {boolean} To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI), return `false`.
1709
1760
  */
1710
1761
  'beforeFilter',
1711
1762
  /**
1712
- * Fired by {@link Filters} plugin after applying [filtering](@/guides/columns/column-filter.md).
1713
- * This hook is fired when {@link Options#filters} option is enabled.
1763
+ * Fired by the [`Filters`](@/api/filters.md) plugin,
1764
+ * after a [column filter](@/guides/columns/column-filter.md) gets applied.
1765
+ *
1766
+ * [`afterFilter`](#afterfilter) takes one argument (`conditionsStack`), which is an array of objects.
1767
+ * Each object represents one of your [column filters](@/api/filters.md#addcondition),
1768
+ * and consists of the following properties:
1769
+ *
1770
+ * | Property | Possible values | Description |
1771
+ * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
1772
+ * | `column` | Number | A visual index of the column to which the filter was applied. |
1773
+ * | `conditions` | Array of objects | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1774
+ * | `operation` | `'conjunction'` \| `'disjunction'` \| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |
1775
+ *
1776
+ * An example of the format of the `conditionsStack` argument:
1714
1777
  *
1715
- * @event Hooks#afterFilter
1716
- * @param {object[]} conditionsStack An array of objects with added conditions.
1717
1778
  * ```js
1718
- * // Example format of the conditionsStack argument:
1719
1779
  * [
1720
1780
  * {
1721
1781
  * column: 2,
@@ -1733,6 +1793,16 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1733
1793
  * },
1734
1794
  * ]
1735
1795
  * ```
1796
+ *
1797
+ * Read more:
1798
+ * - [Guides: Column filter](@/guides/columns/column-filter.md)
1799
+ * - [Hooks: `beforeFilter`](#beforefilter)
1800
+ * - [Options: `filters`](@/api/options.md#filters)
1801
+ * - [Plugins: `Filters`](@/api/filters.md)
1802
+ * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)
1803
+ *
1804
+ * @event Hooks#afterFilter
1805
+ * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).
1736
1806
  */
1737
1807
  'afterFilter',
1738
1808
  /**
@@ -1803,6 +1873,20 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1803
1873
  * @event Hooks#modifyColumnHeaderHeight
1804
1874
  */
1805
1875
  'modifyColumnHeaderHeight',
1876
+ /**
1877
+ * Fired while retrieving a column header's value.
1878
+ *
1879
+ * @since 12.3.0
1880
+ * @event Hooks#modifyColumnHeaderValue
1881
+ * @param {string} value A column header value.
1882
+ * @param {number} visualColumnIndex A visual column index.
1883
+ * @param {number} [headerLevel=0] Header level index. Accepts positive (0 to n)
1884
+ * and negative (-1 to -n) values. For positive values, 0 points to the
1885
+ * topmost header. For negative values, -1 points to the bottom-most
1886
+ * header (the header closest to the cells).
1887
+ * @returns {string} The column header value to be updated.
1888
+ */
1889
+ 'modifyColumnHeaderValue',
1806
1890
  /**
1807
1891
  * Fired by {@link UndoRedo} plugin before the undo action. Contains information about the action that is being undone.
1808
1892
  * This hook is fired when {@link Options#undo} option is enabled.
@@ -2203,7 +2287,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
2203
2287
  */
2204
2288
  'afterUnlisten',
2205
2289
  /**
2206
- * Fired after the window was resized.
2290
+ * Fired after the window was resized or the size of the Handsontable root element was changed.
2207
2291
  *
2208
2292
  * @event Hooks#afterRefreshDimensions
2209
2293
  * @param {object} previousDimensions Previous dimensions of the container.
@@ -2212,7 +2296,8 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
2212
2296
  */
2213
2297
  'afterRefreshDimensions',
2214
2298
  /**
2215
- * Cancellable hook, called after resizing a window, but before redrawing a table.
2299
+ * Cancellable hook, called after resizing a window or after detecting size change of the
2300
+ * Handsontable root element, but before redrawing a table.
2216
2301
  *
2217
2302
  * @event Hooks#beforeRefreshDimensions
2218
2303
  * @param {object} previousDimensions Previous dimensions of the container.
package/pluginHooks.mjs CHANGED
@@ -1,9 +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";
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";
3
10
  var _templateObject;
4
11
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
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); } }
6
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; }
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); }
7
16
  import "core-js/modules/es.array.iterator.js";
8
17
  import "core-js/modules/es.map.js";
9
18
  import "core-js/modules/es.object.to-string.js";
@@ -18,15 +27,25 @@ import { substitute } from "./helpers/string.mjs";
18
27
  import { warn } from "./helpers/console.mjs";
19
28
  import { toSingleLine } from "./helpers/templateLiteralTag.mjs";
20
29
  import { fastCall } from "./helpers/function.mjs";
30
+ /* eslint-disable jsdoc/require-description-complete-sentence */
21
31
  /**
22
32
  * @description
33
+ *
34
+ * ::: only-for javascript
23
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
+ * :::
24
43
  *
25
44
  * @example
26
45
  *
27
46
  * ::: only-for javascript
28
47
  * ```js
29
- * // Using events as callbacks:
48
+ * // using events as callbacks
30
49
  * ...
31
50
  * const hot1 = new Handsontable(document.getElementById('example1'), {
32
51
  * afterChange: function(changes, source) {
@@ -58,7 +77,7 @@ import { fastCall } from "./helpers/function.mjs";
58
77
  *
59
78
  * ::: only-for javascript
60
79
  * ```js
61
- * // Using events as plugin hooks:
80
+ * // using events as plugin hooks
62
81
  * ...
63
82
  * const hot1 = new Handsontable(document.getElementById('example1'), {
64
83
  * myPlugin: true
@@ -347,13 +366,13 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
347
366
  /**
348
367
  * Fired after retrieving information about a column header and appending it to the table header.
349
368
  *
350
- * Since the 12.2 the hook is triggered with the 3rd `headerLevel` argument.
351
- *
352
369
  * @event Hooks#afterGetColHeader
353
370
  * @param {number} column Visual column index.
354
371
  * @param {HTMLTableCellElement} TH Header's TH element.
355
- * @param {number} [headerLevel=0] The index of header level counting from the top (positive
356
- * values counting from 0 to N).
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).
357
376
  */
358
377
  'afterGetColHeader',
359
378
  /**
@@ -1304,7 +1323,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1304
1323
  */
1305
1324
  'modifyCopyableRange',
1306
1325
  /**
1307
- * 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
1308
1327
  * the selected cells. This hook is fired when {@link Options#copyPaste} option is enabled.
1309
1328
  *
1310
1329
  * @event Hooks#beforeCut
@@ -1359,18 +1378,19 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1359
1378
  * {@link Options#copyPaste} option is enabled.
1360
1379
  *
1361
1380
  * @event Hooks#afterCut
1362
- * @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.
1363
1382
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1364
1383
  * which was cut out.
1365
1384
  */
1366
1385
  'afterCut',
1367
1386
  /**
1368
- * Fired before values are copied into clipboard.
1387
+ * Fired before values are copied to the clipboard.
1369
1388
  *
1370
1389
  * @event Hooks#beforeCopy
1371
1390
  * @param {Array[]} data An array of arrays which contains data to copied.
1372
1391
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1373
1392
  * which will copied.
1393
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1374
1394
  * @returns {*} If returns `false` then copying is canceled.
1375
1395
  *
1376
1396
  * @example
@@ -1433,6 +1453,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1433
1453
  * @param {Array[]} data An array of arrays which contains the copied data.
1434
1454
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1435
1455
  * which was copied.
1456
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1436
1457
  */
1437
1458
  'afterCopy',
1438
1459
  /**
@@ -1491,7 +1512,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1491
1512
  * {@link Options#copyPaste} option is enabled.
1492
1513
  *
1493
1514
  * @event Hooks#afterPaste
1494
- * @param {Array[]} data An array of arrays which contains the pasted data.
1515
+ * @param {Array[]} data An array of arrays with the pasted data.
1495
1516
  * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1496
1517
  * that correspond to the previously selected area.
1497
1518
  */
@@ -1676,13 +1697,22 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1676
1697
  */
1677
1698
  'beforeStretchingColumnWidth',
1678
1699
  /**
1679
- * Fired by {@link Filters} plugin before applying [filtering](@/guides/columns/column-filter.md).
1680
- * 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:
1681
1714
  *
1682
- * @event Hooks#beforeFilter
1683
- * @param {object[]} conditionsStack An array of objects with added formulas.
1684
1715
  * ```js
1685
- * // Example format of the conditionsStack argument:
1686
1716
  * [
1687
1717
  * {
1688
1718
  * column: 2,
@@ -1700,17 +1730,47 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1700
1730
  * },
1701
1731
  * ]
1702
1732
  * ```
1703
- * @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`.
1704
1755
  */
1705
1756
  'beforeFilter',
1706
1757
  /**
1707
- * Fired by {@link Filters} plugin after applying [filtering](@/guides/columns/column-filter.md).
1708
- * 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:
1709
1772
  *
1710
- * @event Hooks#afterFilter
1711
- * @param {object[]} conditionsStack An array of objects with added conditions.
1712
1773
  * ```js
1713
- * // Example format of the conditionsStack argument:
1714
1774
  * [
1715
1775
  * {
1716
1776
  * column: 2,
@@ -1728,6 +1788,16 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1728
1788
  * },
1729
1789
  * ]
1730
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).
1731
1801
  */
1732
1802
  'afterFilter',
1733
1803
  /**
@@ -1798,6 +1868,20 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
1798
1868
  * @event Hooks#modifyColumnHeaderHeight
1799
1869
  */
1800
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',
1801
1885
  /**
1802
1886
  * Fired by {@link UndoRedo} plugin before the undo action. Contains information about the action that is being undone.
1803
1887
  * This hook is fired when {@link Options#undo} option is enabled.
@@ -2198,7 +2282,7 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
2198
2282
  */
2199
2283
  'afterUnlisten',
2200
2284
  /**
2201
- * Fired after the window was resized.
2285
+ * Fired after the window was resized or the size of the Handsontable root element was changed.
2202
2286
  *
2203
2287
  * @event Hooks#afterRefreshDimensions
2204
2288
  * @param {object} previousDimensions Previous dimensions of the container.
@@ -2207,7 +2291,8 @@ var REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sen
2207
2291
  */
2208
2292
  'afterRefreshDimensions',
2209
2293
  /**
2210
- * 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.
2211
2296
  *
2212
2297
  * @event Hooks#beforeRefreshDimensions
2213
2298
  * @param {object} previousDimensions Previous dimensions of the container.