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
@@ -1,20 +1,6 @@
1
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); }
2
-
3
- import "core-js/modules/es.object.set-prototype-of.js";
4
- import "core-js/modules/es.object.get-prototype-of.js";
5
- import "core-js/modules/es.reflect.construct.js";
6
- import "core-js/modules/es.reflect.get.js";
7
- import "core-js/modules/es.object.get-own-property-descriptor.js";
8
- import "core-js/modules/es.array.slice.js";
9
- import "core-js/modules/es.object.freeze.js";
10
- import "core-js/modules/es.symbol.js";
11
- import "core-js/modules/es.symbol.description.js";
12
- import "core-js/modules/es.symbol.iterator.js";
13
-
14
2
  var _templateObject, _templateObject2;
15
-
16
3
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
17
-
18
4
  import "core-js/modules/es.array.concat.js";
19
5
  import "core-js/modules/es.object.to-string.js";
20
6
  import "core-js/modules/web.dom-collections.for-each.js";
@@ -22,48 +8,42 @@ import "core-js/modules/es.array.iterator.js";
22
8
  import "core-js/modules/es.string.iterator.js";
23
9
  import "core-js/modules/es.weak-map.js";
24
10
  import "core-js/modules/web.dom-collections.iterator.js";
25
-
11
+ import "core-js/modules/es.symbol.to-primitive.js";
12
+ import "core-js/modules/es.date.to-primitive.js";
13
+ import "core-js/modules/es.symbol.js";
14
+ import "core-js/modules/es.symbol.description.js";
15
+ import "core-js/modules/es.number.constructor.js";
16
+ import "core-js/modules/es.object.set-prototype-of.js";
17
+ import "core-js/modules/es.object.get-prototype-of.js";
18
+ import "core-js/modules/es.reflect.construct.js";
19
+ import "core-js/modules/es.reflect.get.js";
20
+ import "core-js/modules/es.object.get-own-property-descriptor.js";
21
+ import "core-js/modules/es.array.slice.js";
22
+ import "core-js/modules/es.object.freeze.js";
23
+ import "core-js/modules/es.symbol.iterator.js";
26
24
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
-
28
- 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
-
25
+ 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); } }
30
26
  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
-
32
27
  function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
33
-
34
28
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
35
-
36
29
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
37
-
38
30
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
39
-
40
31
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
41
-
42
32
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
43
-
44
33
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
45
-
46
34
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
-
48
35
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
49
-
50
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
51
-
36
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
38
+ 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); }
52
39
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
53
-
54
40
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
55
-
56
41
  function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
57
-
58
42
  function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
59
-
60
43
  function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
61
-
62
44
  function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
63
-
64
45
  function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
65
-
66
- import { addClass, removeClass, fastInnerHTML, empty } from "../../helpers/dom/element.mjs";
46
+ import { addClass, removeClass } from "../../helpers/dom/element.mjs";
67
47
  import { isNumeric } from "../../helpers/number.mjs";
68
48
  import { isLeftClick, isRightClick } from "../../helpers/dom/event.mjs";
69
49
  import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
@@ -74,6 +54,7 @@ import StateManager from "./stateManager/index.mjs";
74
54
  import GhostTable from "./utils/ghostTable.mjs";
75
55
  export var PLUGIN_KEY = 'nestedHeaders';
76
56
  export var PLUGIN_PRIORITY = 280;
57
+
77
58
  /* eslint-disable jsdoc/require-description-complete-sentence */
78
59
 
79
60
  /**
@@ -91,6 +72,7 @@ export var PLUGIN_PRIORITY = 280;
91
72
  * other words, headers cannot overlap each other.
92
73
  * @example
93
74
  *
75
+ * ::: only-for javascript
94
76
  * ```js
95
77
  * const container = document.getElementById('example');
96
78
  * const hot = new Handsontable(container, {
@@ -102,47 +84,48 @@ export var PLUGIN_PRIORITY = 280;
102
84
  * ['N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W']
103
85
  * ],
104
86
  * ```
87
+ * :::
88
+ *
89
+ * ::: only-for react
90
+ * ```jsx
91
+ * <HotTable
92
+ * data={getData()}
93
+ * nestedHeaders={[
94
+ * ['A', {label: 'B', colspan: 8}, 'C'],
95
+ * ['D', {label: 'E', colspan: 4}, {label: 'F', colspan: 4}, 'G'],
96
+ * ['H', {label: 'I', colspan: 2}, {label: 'J', colspan: 2}, {label: 'K', colspan: 2}, {label: 'L', colspan: 2}, 'M'],
97
+ * ['N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W']
98
+ * ]}
99
+ * />
100
+ * ```
101
+ * :::
105
102
  */
106
-
107
103
  var _stateManager = /*#__PURE__*/new WeakMap();
108
-
109
104
  var _hidingIndexMapObserver = /*#__PURE__*/new WeakMap();
110
-
111
105
  export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
112
106
  _inherits(NestedHeaders, _BasePlugin);
113
-
114
107
  var _super = _createSuper(NestedHeaders);
115
-
116
108
  function NestedHeaders() {
117
109
  var _this;
118
-
119
110
  _classCallCheck(this, NestedHeaders);
120
-
121
111
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
122
112
  args[_key] = arguments[_key];
123
113
  }
124
-
125
114
  _this = _super.call.apply(_super, [this].concat(args));
126
-
127
115
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _stateManager, {
128
116
  writable: true,
129
117
  value: new StateManager()
130
118
  });
131
-
132
119
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hidingIndexMapObserver, {
133
120
  writable: true,
134
121
  value: null
135
122
  });
136
-
137
123
  _defineProperty(_assertThisInitialized(_this), "ghostTable", new GhostTable(_this.hot, function (row, column) {
138
124
  return _this.getHeaderSettings(row, column);
139
125
  }));
140
-
141
126
  _defineProperty(_assertThisInitialized(_this), "detectedOverlappedHeaders", false);
142
-
143
127
  return _this;
144
128
  }
145
-
146
129
  _createClass(NestedHeaders, [{
147
130
  key: "isEnabled",
148
131
  value:
@@ -154,26 +137,22 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
154
137
  function isEnabled() {
155
138
  return !!this.hot.getSettings()[PLUGIN_KEY];
156
139
  }
140
+
157
141
  /**
158
142
  * Enables the plugin functionality for this Handsontable instance.
159
143
  */
160
-
161
144
  }, {
162
145
  key: "enablePlugin",
163
146
  value: function enablePlugin() {
164
147
  var _this2 = this;
165
-
166
148
  if (this.enabled) {
167
149
  return;
168
150
  }
169
-
170
151
  var _this$hot$getSettings = this.hot.getSettings(),
171
- nestedHeaders = _this$hot$getSettings.nestedHeaders;
172
-
152
+ nestedHeaders = _this$hot$getSettings.nestedHeaders;
173
153
  if (!Array.isArray(nestedHeaders) || !Array.isArray(nestedHeaders[0])) {
174
154
  warn(toSingleLine(_templateObject || (_templateObject = _taggedTemplateLiteral(["Your Nested Headers plugin configuration is invalid. The settings has to be \n passed as an array of arrays e.q. [['A1', { label: 'A2', colspan: 2 }]]"], ["Your Nested Headers plugin configuration is invalid. The settings has to be\\x20\n passed as an array of arrays e.q. [['A1', { label: 'A2', colspan: 2 }]]"]))));
175
155
  }
176
-
177
156
  this.addHook('init', function () {
178
157
  return _this2.onInit();
179
158
  });
@@ -195,123 +174,110 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
195
174
  this.addHook('modifyColWidth', function () {
196
175
  return _this2.onModifyColWidth.apply(_this2, arguments);
197
176
  });
177
+ this.addHook('modifyColumnHeaderValue', function () {
178
+ return _this2.onModifyColumnHeaderValue.apply(_this2, arguments);
179
+ });
198
180
  this.addHook('beforeHighlightingColumnHeader', function () {
199
181
  return _this2.onBeforeHighlightingColumnHeader.apply(_this2, arguments);
200
182
  });
183
+ this.addHook('beforeCopy', function () {
184
+ return _this2.onBeforeCopy.apply(_this2, arguments);
185
+ });
201
186
  this.addHook('afterViewportColumnCalculatorOverride', function () {
202
187
  return _this2.onAfterViewportColumnCalculatorOverride.apply(_this2, arguments);
203
188
  });
204
-
205
189
  _get(_getPrototypeOf(NestedHeaders.prototype), "enablePlugin", this).call(this);
206
-
207
190
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
208
191
  }
192
+
209
193
  /**
210
194
  * Updates the plugin's state.
211
195
  *
212
196
  * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
213
197
  * - [`nestedHeaders`](@/api/options.md#nestedheaders)
214
198
  */
215
-
216
199
  }, {
217
200
  key: "updatePlugin",
218
201
  value: function updatePlugin() {
219
202
  var _this3 = this;
220
-
221
203
  if (!this.hot.view) {
222
204
  // @TODO: Workaround for broken plugin initialization abstraction.
223
205
  return;
224
206
  }
225
-
226
207
  var _this$hot$getSettings2 = this.hot.getSettings(),
227
- nestedHeaders = _this$hot$getSettings2.nestedHeaders;
228
-
208
+ nestedHeaders = _this$hot$getSettings2.nestedHeaders;
229
209
  _classPrivateFieldGet(this, _stateManager).setColumnsLimit(this.hot.countCols());
230
-
231
210
  if (Array.isArray(nestedHeaders)) {
232
211
  this.detectedOverlappedHeaders = _classPrivateFieldGet(this, _stateManager).setState(nestedHeaders);
233
212
  }
234
-
235
213
  if (this.detectedOverlappedHeaders) {
236
214
  warn(toSingleLine(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Your Nested Headers plugin setup contains overlapping headers. This kind of configuration \n is currently not supported."], ["Your Nested Headers plugin setup contains overlapping headers. This kind of configuration\\x20\n is currently not supported."]))));
237
215
  }
238
-
239
216
  if (this.enabled) {
240
217
  // This line covers the case when a developer uses the external hiding maps to manipulate
241
218
  // the columns' visibility. The tree state built from the settings - which is always built
242
219
  // as if all the columns are visible, needs to be modified to be in sync with a dataset.
243
220
  this.hot.columnIndexMapper.hidingMapsCollection.getMergedValues().forEach(function (isColumnHidden, physicalColumnIndex) {
244
221
  var actionName = isColumnHidden === true ? 'hide-column' : 'show-column';
245
-
246
222
  _classPrivateFieldGet(_this3, _stateManager).triggerColumnModification(actionName, physicalColumnIndex);
247
223
  });
248
224
  }
249
-
250
225
  if (!_classPrivateFieldGet(this, _hidingIndexMapObserver) && this.enabled) {
251
226
  _classPrivateFieldSet(this, _hidingIndexMapObserver, this.hot.columnIndexMapper.createChangesObserver('hiding').subscribe(function (changes) {
252
227
  changes.forEach(function (_ref) {
253
228
  var op = _ref.op,
254
- columnIndex = _ref.index,
255
- newValue = _ref.newValue;
256
-
229
+ columnIndex = _ref.index,
230
+ newValue = _ref.newValue;
257
231
  if (op === 'replace') {
258
232
  var actionName = newValue === true ? 'hide-column' : 'show-column';
259
-
260
233
  _classPrivateFieldGet(_this3, _stateManager).triggerColumnModification(actionName, columnIndex);
261
234
  }
262
235
  });
263
-
264
236
  _this3.ghostTable.buildWidthsMap();
265
237
  }));
266
238
  }
267
-
268
239
  this.ghostTable.setLayersCount(this.getLayersCount()).buildWidthsMap();
269
-
270
240
  _get(_getPrototypeOf(NestedHeaders.prototype), "updatePlugin", this).call(this);
271
241
  }
242
+
272
243
  /**
273
244
  * Disables the plugin functionality for this Handsontable instance.
274
245
  */
275
-
276
246
  }, {
277
247
  key: "disablePlugin",
278
248
  value: function disablePlugin() {
279
249
  this.clearColspans();
280
-
281
250
  _classPrivateFieldGet(this, _stateManager).clear();
282
-
283
251
  _classPrivateFieldGet(this, _hidingIndexMapObserver).unsubscribe();
284
-
285
252
  _classPrivateFieldSet(this, _hidingIndexMapObserver, null);
286
-
287
253
  this.ghostTable.clear();
288
-
289
254
  _get(_getPrototypeOf(NestedHeaders.prototype), "disablePlugin", this).call(this);
290
255
  }
256
+
291
257
  /**
292
258
  * Returns an instance of the internal state manager of the plugin.
293
259
  *
294
260
  * @private
295
261
  * @returns {StateManager}
296
262
  */
297
-
298
263
  }, {
299
264
  key: "getStateManager",
300
265
  value: function getStateManager() {
301
266
  return _classPrivateFieldGet(this, _stateManager);
302
267
  }
268
+
303
269
  /**
304
270
  * Gets a total number of headers levels.
305
271
  *
306
272
  * @private
307
273
  * @returns {number}
308
274
  */
309
-
310
275
  }, {
311
276
  key: "getLayersCount",
312
277
  value: function getLayersCount() {
313
278
  return _classPrivateFieldGet(this, _stateManager).getLayersCount();
314
279
  }
280
+
315
281
  /**
316
282
  * Gets column settings for a specified header. The returned object contains
317
283
  * information about the header label, its colspan length, or if it is hidden
@@ -322,50 +288,42 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
322
288
  * @param {number} columnIndex A visual column index.
323
289
  * @returns {object}
324
290
  */
325
-
326
291
  }, {
327
292
  key: "getHeaderSettings",
328
293
  value: function getHeaderSettings(headerLevel, columnIndex) {
329
294
  return _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, columnIndex);
330
295
  }
296
+
331
297
  /**
332
298
  * Clear the colspans remaining after plugin usage.
333
299
  *
334
300
  * @private
335
301
  */
336
-
337
302
  }, {
338
303
  key: "clearColspans",
339
304
  value: function clearColspans() {
340
305
  if (!this.hot.view) {
341
306
  return;
342
307
  }
343
-
344
308
  var wt = this.hot.view._wt;
345
309
  var headerLevels = wt.getSetting('columnHeaders').length;
346
310
  var mainHeaders = wt.wtTable.THEAD;
347
311
  var topHeaders = wt.wtOverlays.topOverlay.clone.wtTable.THEAD;
348
312
  var topLeftCornerHeaders = wt.wtOverlays.topInlineStartCornerOverlay ? wt.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.THEAD : null;
349
-
350
313
  for (var i = 0; i < headerLevels; i++) {
351
314
  var masterLevel = mainHeaders.childNodes[i];
352
-
353
315
  if (!masterLevel) {
354
316
  break;
355
317
  }
356
-
357
318
  var topLevel = topHeaders.childNodes[i];
358
319
  var topLeftCornerLevel = topLeftCornerHeaders ? topLeftCornerHeaders.childNodes[i] : null;
359
-
360
320
  for (var j = 0, masterNodes = masterLevel.childNodes.length; j < masterNodes; j++) {
361
321
  masterLevel.childNodes[j].removeAttribute('colspan');
362
322
  removeClass(masterLevel.childNodes[j], 'hiddenHeader');
363
-
364
323
  if (topLevel && topLevel.childNodes[j]) {
365
324
  topLevel.childNodes[j].removeAttribute('colspan');
366
325
  removeClass(topLevel.childNodes[j], 'hiddenHeader');
367
326
  }
368
-
369
327
  if (topLeftCornerHeaders && topLeftCornerLevel && topLeftCornerLevel.childNodes[j]) {
370
328
  topLeftCornerLevel.childNodes[j].removeAttribute('colspan');
371
329
  removeClass(topLeftCornerLevel.childNodes[j], 'hiddenHeader');
@@ -373,6 +331,7 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
373
331
  }
374
332
  }
375
333
  }
334
+
376
335
  /**
377
336
  * Generates the appropriate header renderer for a header row.
378
337
  *
@@ -382,66 +341,72 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
382
341
  * @returns {Function}
383
342
  * @fires Hooks#afterGetColHeader
384
343
  */
385
-
386
344
  }, {
387
345
  key: "headerRendererFactory",
388
346
  value: function headerRendererFactory(headerLevel) {
389
347
  var _this4 = this;
390
-
391
348
  var fixedColumnsStart = this.hot.view._wt.getSetting('fixedColumnsStart');
392
-
393
349
  return function (renderedColumnIndex, TH) {
394
350
  var _classPrivateFieldGet2;
395
-
396
351
  var _this4$hot = _this4.hot,
397
- rootDocument = _this4$hot.rootDocument,
398
- columnIndexMapper = _this4$hot.columnIndexMapper,
399
- view = _this4$hot.view;
400
- var visualColumnsIndex = columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);
401
-
402
- if (visualColumnsIndex === null) {
403
- visualColumnsIndex = renderedColumnIndex;
352
+ columnIndexMapper = _this4$hot.columnIndexMapper,
353
+ view = _this4$hot.view;
354
+ var visualColumnIndex = columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);
355
+ if (visualColumnIndex === null) {
356
+ visualColumnIndex = renderedColumnIndex;
404
357
  }
405
-
406
358
  TH.removeAttribute('colspan');
407
359
  removeClass(TH, 'hiddenHeader');
408
-
409
- var _ref2 = (_classPrivateFieldGet2 = _classPrivateFieldGet(_this4, _stateManager).getHeaderSettings(headerLevel, visualColumnsIndex)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : {
410
- label: ''
411
- },
412
- colspan = _ref2.colspan,
413
- label = _ref2.label,
414
- isHidden = _ref2.isHidden,
415
- isPlaceholder = _ref2.isPlaceholder;
416
-
360
+ var _ref2 = (_classPrivateFieldGet2 = _classPrivateFieldGet(_this4, _stateManager).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : {
361
+ label: ''
362
+ },
363
+ colspan = _ref2.colspan,
364
+ isHidden = _ref2.isHidden,
365
+ isPlaceholder = _ref2.isPlaceholder;
417
366
  if (isPlaceholder || isHidden) {
418
367
  addClass(TH, 'hiddenHeader');
419
368
  } else if (colspan > 1) {
420
369
  var _wtOverlays$topInline, _wtOverlays$inlineSta;
421
-
422
370
  var wtOverlays = view._wt.wtOverlays;
423
371
  var isTopInlineStartOverlay = (_wtOverlays$topInline = wtOverlays.topInlineStartCornerOverlay) === null || _wtOverlays$topInline === void 0 ? void 0 : _wtOverlays$topInline.clone.wtTable.THEAD.contains(TH);
424
- var isInlineStartOverlay = (_wtOverlays$inlineSta = wtOverlays.inlineStartOverlay) === null || _wtOverlays$inlineSta === void 0 ? void 0 : _wtOverlays$inlineSta.clone.wtTable.THEAD.contains(TH); // Check if there is a fixed column enabled, if so then reduce colspan to fixed column width.
372
+ var isInlineStartOverlay = (_wtOverlays$inlineSta = wtOverlays.inlineStartOverlay) === null || _wtOverlays$inlineSta === void 0 ? void 0 : _wtOverlays$inlineSta.clone.wtTable.THEAD.contains(TH);
425
373
 
374
+ // Check if there is a fixed column enabled, if so then reduce colspan to fixed column width.
426
375
  var correctedColspan = isTopInlineStartOverlay || isInlineStartOverlay ? Math.min(colspan, fixedColumnsStart - renderedColumnIndex) : colspan;
427
-
428
376
  if (correctedColspan > 1) {
429
377
  TH.setAttribute('colspan', correctedColspan);
430
378
  }
431
379
  }
432
-
433
- var divEl = rootDocument.createElement('div');
434
- var spanEl = rootDocument.createElement('span');
435
- addClass(divEl, 'relative');
436
- addClass(spanEl, 'colHeader');
437
- fastInnerHTML(spanEl, label);
438
- divEl.appendChild(spanEl);
439
- empty(TH);
440
- TH.appendChild(divEl);
441
-
442
- _this4.hot.runHooks('afterGetColHeader', visualColumnsIndex, TH);
380
+ _this4.hot.view.appendColHeader(visualColumnIndex, TH, function () {
381
+ return _this4.getColumnHeaderValue.apply(_this4, arguments);
382
+ }, headerLevel);
443
383
  };
444
384
  }
385
+
386
+ /**
387
+ * Returns the column header value for specified column and header level index.
388
+ *
389
+ * @private
390
+ * @param {number} visualColumnIndex Visual column index.
391
+ * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)
392
+ * and negative (-1 to -N) values. For positive values, 0 points to the
393
+ * top most header, and for negative direction, -1 points to the most bottom
394
+ * header (the header closest to the cells).
395
+ * @returns {string} Returns the column header value to update.
396
+ */
397
+ }, {
398
+ key: "getColumnHeaderValue",
399
+ value: function getColumnHeaderValue(visualColumnIndex, headerLevel) {
400
+ var _classPrivateFieldGet3;
401
+ var _ref3 = (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : {},
402
+ isHidden = _ref3.isHidden,
403
+ isPlaceholder = _ref3.isPlaceholder;
404
+ if (isPlaceholder || isHidden) {
405
+ return '';
406
+ }
407
+ return this.hot.getColHeader(visualColumnIndex, headerLevel);
408
+ }
409
+
445
410
  /**
446
411
  * Allows to control which header DOM element will be used to highlight.
447
412
  *
@@ -451,25 +416,20 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
451
416
  * @param {object} highlightMeta An object with meta data that describes the highlight state.
452
417
  * @returns {number}
453
418
  */
454
-
455
419
  }, {
456
420
  key: "onBeforeHighlightingColumnHeader",
457
421
  value: function onBeforeHighlightingColumnHeader(visualColumn, headerLevel, highlightMeta) {
458
422
  var headerNodeData = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(headerLevel, visualColumn);
459
-
460
423
  if (!headerNodeData) {
461
424
  return visualColumn;
462
425
  }
463
-
464
426
  var classNames = highlightMeta.classNames,
465
- columnCursor = highlightMeta.columnCursor,
466
- selectionType = highlightMeta.selectionType,
467
- selectionWidth = highlightMeta.selectionWidth;
468
-
469
- var _classPrivateFieldGet3 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
470
- isRoot = _classPrivateFieldGet3.isRoot,
471
- colspan = _classPrivateFieldGet3.colspan;
472
-
427
+ columnCursor = highlightMeta.columnCursor,
428
+ selectionType = highlightMeta.selectionType,
429
+ selectionWidth = highlightMeta.selectionWidth;
430
+ var _classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
431
+ isRoot = _classPrivateFieldGet4.isRoot,
432
+ colspan = _classPrivateFieldGet4.colspan;
473
433
  if (selectionType === HEADER_TYPE) {
474
434
  if (!isRoot) {
475
435
  return headerNodeData.columnIndex;
@@ -480,11 +440,61 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
480
440
  classNames.length = 0;
481
441
  }
482
442
  }
483
-
484
443
  return visualColumn;
485
444
  }
445
+
446
+ /**
447
+ * Listens the `beforeCopy` hook that allows processing the copied column headers so that the
448
+ * merged column headers do not propagate the value for each column but only once at the beginning
449
+ * of the column.
450
+ *
451
+ * @private
452
+ * @param {Array[]} data An array of arrays which contains data to copied.
453
+ * @param {object[]} copyableRanges An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
454
+ * which will copied.
455
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount An object with keys that holds information with
456
+ * the number of copied headers.
457
+ */
458
+ }, {
459
+ key: "onBeforeCopy",
460
+ value: function onBeforeCopy(data, copyableRanges, _ref4) {
461
+ var columnHeadersCount = _ref4.columnHeadersCount;
462
+ if (columnHeadersCount === 0) {
463
+ return;
464
+ }
465
+ for (var rangeIndex = 0; rangeIndex < copyableRanges.length; rangeIndex++) {
466
+ var _copyableRanges$range = copyableRanges[rangeIndex],
467
+ startRow = _copyableRanges$range.startRow,
468
+ startCol = _copyableRanges$range.startCol,
469
+ endRow = _copyableRanges$range.endRow,
470
+ endCol = _copyableRanges$range.endCol;
471
+ var rowsCount = endRow - startRow + 1;
472
+ var columnsCount = startCol - endCol + 1;
473
+
474
+ // do not process dataset ranges and column headers where only one column is copied
475
+ if (startRow >= 0 || columnsCount === 1) {
476
+ break;
477
+ }
478
+ for (var column = startCol; column <= endCol; column++) {
479
+ for (var row = startRow; row <= endRow; row++) {
480
+ var _classPrivateFieldGet5;
481
+ var zeroBasedColumnHeaderLevel = rowsCount + row;
482
+ var zeroBasedColumnIndex = column - startCol;
483
+ if (zeroBasedColumnIndex === 0) {
484
+ continue; // eslint-disable-line no-continue
485
+ }
486
+
487
+ var isRoot = (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(row, column)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.isRoot;
488
+ if (isRoot === false) {
489
+ data[zeroBasedColumnHeaderLevel][zeroBasedColumnIndex] = '';
490
+ }
491
+ }
492
+ }
493
+ }
494
+ }
495
+
486
496
  /**
487
- * Allows to block the column selection that is controlled by the core Selection module.
497
+ * Allows blocking the column selection that is controlled by the core Selection module.
488
498
  *
489
499
  * @private
490
500
  * @param {MouseEvent} event Mouse event.
@@ -493,18 +503,17 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
493
503
  * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
494
504
  * a boolean value that allows or disallows changing the selection for that particular area.
495
505
  */
496
-
497
506
  }, {
498
507
  key: "onBeforeOnCellMouseDown",
499
508
  value: function onBeforeOnCellMouseDown(event, coords, TD, controller) {
500
509
  var headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);
501
-
502
510
  if (headerNodeData) {
503
511
  // Block the Selection module in controlling how the columns are selected. Pass the
504
512
  // responsibility of the column selection to this plugin (see "onAfterOnCellMouseDown" hook).
505
513
  controller.column = true;
506
514
  }
507
515
  }
516
+
508
517
  /**
509
518
  * Allows to control how the column selection based on the coordinates and the nested headers is made.
510
519
  *
@@ -512,27 +521,24 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
512
521
  * @param {MouseEvent} event Mouse event.
513
522
  * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
514
523
  */
515
-
516
524
  }, {
517
525
  key: "onAfterOnCellMouseDown",
518
526
  value: function onAfterOnCellMouseDown(event, coords) {
519
527
  var headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);
520
-
521
528
  if (!headerNodeData) {
522
529
  return;
523
530
  }
524
-
525
531
  var selection = this.hot.selection;
526
532
  var currentSelection = selection.isSelected() ? selection.getSelectedRange().current() : null;
527
533
  var columnsToSelect = [];
528
534
  var columnIndex = headerNodeData.columnIndex,
529
- origColspan = headerNodeData.origColspan; // The Selection module doesn't allow it to extend its behavior easily. That's why here we need
535
+ origColspan = headerNodeData.origColspan;
536
+
537
+ // The Selection module doesn't allow it to extend its behavior easily. That's why here we need
530
538
  // to re-implement the "click" and "shift" behavior. As a workaround, the logic for the nested
531
539
  // headers must implement a similar logic as in the original Selection handler
532
540
  // (see src/selection/mouseEventHandler.js).
533
-
534
541
  var allowRightClickSelection = !selection.inInSelection(coords);
535
-
536
542
  if (event.shiftKey && currentSelection) {
537
543
  if (coords.col < currentSelection.from.col) {
538
544
  columnsToSelect.push(currentSelection.getTopEndCorner().col, columnIndex, coords.row);
@@ -543,11 +549,12 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
543
549
  }
544
550
  } else if (isLeftClick(event) || isRightClick(event) && allowRightClickSelection) {
545
551
  columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
546
- } // The plugin takes control of the how the columns are selected.
547
-
552
+ }
548
553
 
554
+ // The plugin takes control of how the columns are selected.
549
555
  selection.selectColumns.apply(selection, columnsToSelect);
550
556
  }
557
+
551
558
  /**
552
559
  * Makes the header-selection properly select the nested headers.
553
560
  *
@@ -558,34 +565,29 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
558
565
  * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
559
566
  * a boolean value that allows or disallows changing the selection for that particular area.
560
567
  */
561
-
562
568
  }, {
563
569
  key: "onBeforeOnCellMouseOver",
564
570
  value: function onBeforeOnCellMouseOver(event, coords, TD, controller) {
565
571
  var _this$hot;
566
-
567
572
  if (!this.hot.view.isMouseDown()) {
568
573
  return;
569
574
  }
570
-
571
575
  var headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);
572
-
573
576
  if (!headerNodeData) {
574
577
  return;
575
578
  }
576
-
577
579
  var columnIndex = headerNodeData.columnIndex,
578
- origColspan = headerNodeData.origColspan;
580
+ origColspan = headerNodeData.origColspan;
579
581
  var selectedRange = this.hot.getSelectedRangeLast();
580
582
  var topStartCoords = selectedRange.getTopStartCorner();
581
583
  var bottomEndCoords = selectedRange.getBottomEndCorner();
582
- var from = selectedRange.from; // Block the Selection module in controlling how the columns and cells are selected.
583
- // From now on, the plugin is responsible for the selection.
584
+ var from = selectedRange.from;
584
585
 
586
+ // Block the Selection module in controlling how the columns and cells are selected.
587
+ // From now on, the plugin is responsible for the selection.
585
588
  controller.column = true;
586
589
  controller.cell = true;
587
590
  var columnsToSelect = [];
588
-
589
591
  if (coords.col < from.col) {
590
592
  columnsToSelect.push(bottomEndCoords.col, columnIndex);
591
593
  } else if (coords.col > from.col) {
@@ -593,64 +595,59 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
593
595
  } else {
594
596
  columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
595
597
  }
596
-
597
598
  (_this$hot = this.hot).selectColumns.apply(_this$hot, columnsToSelect);
598
599
  }
600
+
599
601
  /**
600
602
  * `afterGetColumnHeader` hook callback - prepares the header structure.
601
603
  *
602
604
  * @private
603
605
  * @param {Array} renderersArray Array of renderers.
604
606
  */
605
-
606
607
  }, {
607
608
  key: "onAfterGetColumnHeaderRenderers",
608
609
  value: function onAfterGetColumnHeaderRenderers(renderersArray) {
609
- if (renderersArray) {
610
- renderersArray.length = 0;
611
-
612
- for (var headerLayer = 0; headerLayer < _classPrivateFieldGet(this, _stateManager).getLayersCount(); headerLayer++) {
613
- renderersArray.push(this.headerRendererFactory(headerLayer));
614
- }
610
+ renderersArray.length = 0;
611
+ for (var headerLayer = 0; headerLayer < _classPrivateFieldGet(this, _stateManager).getLayersCount(); headerLayer++) {
612
+ renderersArray.push(this.headerRendererFactory(headerLayer));
615
613
  }
616
614
  }
615
+
617
616
  /**
618
617
  * Make the renderer render the first nested column in its entirety.
619
618
  *
620
619
  * @private
621
620
  * @param {object} calc Viewport column calculator.
622
621
  */
623
-
624
622
  }, {
625
623
  key: "onAfterViewportColumnCalculatorOverride",
626
624
  value: function onAfterViewportColumnCalculatorOverride(calc) {
627
625
  var headerLayersCount = _classPrivateFieldGet(this, _stateManager).getLayersCount();
628
-
629
626
  var newStartColumn = calc.startColumn;
630
627
  var nonRenderable = !!headerLayersCount;
631
-
632
628
  for (var headerLayer = 0; headerLayer < headerLayersCount; headerLayer++) {
633
629
  var startColumn = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(headerLayer, calc.startColumn);
630
+ var renderedStartColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(startColumn);
634
631
 
635
- var renderedStartColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(startColumn); // If any of the headers for that column index is rendered, all of them should be rendered properly, see
632
+ // If any of the headers for that column index is rendered, all of them should be rendered properly, see
636
633
  // comment below.
637
-
638
634
  if (startColumn >= 0) {
639
635
  nonRenderable = false;
640
- } // `renderedStartColumn` can be `null` if the leftmost columns are hidden. In that case -> ignore that header
641
- // level, as it should be handled by the "parent" header
642
-
636
+ }
643
637
 
638
+ // `renderedStartColumn` can be `null` if the leftmost columns are hidden. In that case -> ignore that header
639
+ // level, as it should be handled by the "parent" header
644
640
  if (isNumeric(renderedStartColumn) && renderedStartColumn < calc.startColumn) {
645
641
  newStartColumn = renderedStartColumn;
646
642
  break;
647
643
  }
648
- } // If no headers for the provided column index are renderable, start rendering from the beginning of the upmost
649
- // header for that position.
650
-
644
+ }
651
645
 
646
+ // If no headers for the provided column index are renderable, start rendering from the beginning of the upmost
647
+ // header for that position.
652
648
  calc.startColumn = nonRenderable ? _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(0, newStartColumn).columnIndex : newStartColumn;
653
649
  }
650
+
654
651
  /**
655
652
  * `modifyColWidth` hook callback - returns width from cache, when is greater than incoming from hook.
656
653
  *
@@ -659,25 +656,49 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
659
656
  * @param {number} column Visual index of an column.
660
657
  * @returns {number}
661
658
  */
662
-
663
659
  }, {
664
660
  key: "onModifyColWidth",
665
661
  value: function onModifyColWidth(width, column) {
666
662
  var cachedWidth = this.ghostTable.getWidth(column);
667
663
  return width > cachedWidth ? width : cachedWidth;
668
664
  }
665
+
669
666
  /**
670
- * Updates the plugin state after HoT initialization.
667
+ * Listens the `modifyColumnHeaderValue` hook that overwrites the column headers values based on
668
+ * the internal state and settings of the plugin.
671
669
  *
672
670
  * @private
671
+ * @param {string} value The column header value.
672
+ * @param {number} visualColumnIndex The visual column index.
673
+ * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)
674
+ * and negative (-1 to -N) values. For positive values, 0 points to the
675
+ * top most header, and for negative direction, -1 points to the most bottom
676
+ * header (the header closest to the cells).
677
+ * @returns {string} Returns the column header value to update.
673
678
  */
679
+ }, {
680
+ key: "onModifyColumnHeaderValue",
681
+ value: function onModifyColumnHeaderValue(value, visualColumnIndex, headerLevel) {
682
+ var _classPrivateFieldGet6;
683
+ var _ref5 = (_classPrivateFieldGet6 = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet6 !== void 0 ? _classPrivateFieldGet6 : {
684
+ label: ''
685
+ },
686
+ label = _ref5.label;
687
+ return label;
688
+ }
674
689
 
690
+ /**
691
+ * Updates the plugin state after HoT initialization.
692
+ *
693
+ * @private
694
+ */
675
695
  }, {
676
696
  key: "onInit",
677
697
  value: function onInit() {
678
698
  // @TODO: Workaround for broken plugin initialization abstraction.
679
699
  this.updatePlugin();
680
700
  }
701
+
681
702
  /**
682
703
  * Updates the plugin state after new dataset load.
683
704
  *
@@ -686,7 +707,6 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
686
707
  * @param {boolean} initialLoad Flag that determines whether the data has been loaded
687
708
  * during the initialization.
688
709
  */
689
-
690
710
  }, {
691
711
  key: "onAfterLoadData",
692
712
  value: function onAfterLoadData(sourceData, initialLoad) {
@@ -694,23 +714,21 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
694
714
  this.updatePlugin();
695
715
  }
696
716
  }
717
+
697
718
  /**
698
719
  * Destroys the plugin instance.
699
720
  */
700
-
701
721
  }, {
702
722
  key: "destroy",
703
723
  value: function destroy() {
704
724
  _classPrivateFieldSet(this, _stateManager, null);
705
-
706
725
  if (_classPrivateFieldGet(this, _hidingIndexMapObserver) !== null) {
707
726
  _classPrivateFieldGet(this, _hidingIndexMapObserver).unsubscribe();
708
-
709
727
  _classPrivateFieldSet(this, _hidingIndexMapObserver, null);
710
728
  }
711
-
712
729
  _get(_getPrototypeOf(NestedHeaders.prototype), "destroy", this).call(this);
713
730
  }
731
+
714
732
  /**
715
733
  * Gets the tree data that belongs to the column headers pointed by the passed coordinates.
716
734
  *
@@ -718,14 +736,12 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
718
736
  * @param {CellCoords} coords The CellCoords instance.
719
737
  * @returns {object|undefined}
720
738
  */
721
-
722
739
  }, {
723
740
  key: "_getHeaderTreeNodeDataByCoords",
724
741
  value: function _getHeaderTreeNodeDataByCoords(coords) {
725
742
  if (coords.row >= 0 || coords.col < 0) {
726
743
  return;
727
744
  }
728
-
729
745
  return _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(coords.row, coords.col);
730
746
  }
731
747
  }], [{
@@ -738,14 +754,13 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
738
754
  get: function get() {
739
755
  return PLUGIN_PRIORITY;
740
756
  }
757
+
741
758
  /**
742
759
  * The state manager for the nested headers.
743
760
  *
744
761
  * @private
745
762
  * @type {StateManager}
746
763
  */
747
-
748
764
  }]);
749
-
750
765
  return NestedHeaders;
751
766
  }(BasePlugin);