handsontable 12.1.3 → 12.3.0-next-bb1a7c2-20221208

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (948) hide show
  1. package/3rdparty/SheetClip/SheetClip.js +3 -32
  2. package/3rdparty/SheetClip/SheetClip.mjs +3 -23
  3. package/3rdparty/SheetClip/index.js +0 -2
  4. package/3rdparty/autoResize/autoResize.js +119 -145
  5. package/3rdparty/autoResize/autoResize.mjs +119 -143
  6. package/3rdparty/autoResize/index.js +0 -2
  7. package/3rdparty/walkontable/src/border.js +44 -154
  8. package/3rdparty/walkontable/src/border.mjs +41 -136
  9. package/3rdparty/walkontable/src/calculator/constants.js +0 -3
  10. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -2
  11. package/3rdparty/walkontable/src/calculator/index.js +0 -10
  12. package/3rdparty/walkontable/src/calculator/viewportColumns.js +36 -77
  13. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +36 -70
  14. package/3rdparty/walkontable/src/calculator/viewportRows.js +30 -49
  15. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +30 -42
  16. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -1
  17. package/3rdparty/walkontable/src/cell/coords.js +73 -65
  18. package/3rdparty/walkontable/src/cell/coords.mjs +73 -60
  19. package/3rdparty/walkontable/src/cell/range.d.ts +19 -16
  20. package/3rdparty/walkontable/src/cell/range.js +251 -231
  21. package/3rdparty/walkontable/src/cell/range.mjs +251 -222
  22. package/3rdparty/walkontable/src/core/_base.js +30 -74
  23. package/3rdparty/walkontable/src/core/_base.mjs +30 -67
  24. package/3rdparty/walkontable/src/core/clone.js +11 -44
  25. package/3rdparty/walkontable/src/core/clone.mjs +11 -32
  26. package/3rdparty/walkontable/src/core/core.js +8 -56
  27. package/3rdparty/walkontable/src/core/core.mjs +8 -38
  28. package/3rdparty/walkontable/src/event.js +41 -79
  29. package/3rdparty/walkontable/src/event.mjs +41 -66
  30. package/3rdparty/walkontable/src/facade/core.js +14 -16
  31. package/3rdparty/walkontable/src/facade/core.mjs +14 -13
  32. package/3rdparty/walkontable/src/filter/column.js +22 -17
  33. package/3rdparty/walkontable/src/filter/column.mjs +22 -16
  34. package/3rdparty/walkontable/src/filter/row.js +22 -17
  35. package/3rdparty/walkontable/src/filter/row.mjs +22 -16
  36. package/3rdparty/walkontable/src/index.js +0 -31
  37. package/3rdparty/walkontable/src/overlay/_base.js +38 -69
  38. package/3rdparty/walkontable/src/overlay/_base.mjs +38 -61
  39. package/3rdparty/walkontable/src/overlay/bottom.js +38 -103
  40. package/3rdparty/walkontable/src/overlay/bottom.mjs +38 -88
  41. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +12 -52
  42. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +12 -37
  43. package/3rdparty/walkontable/src/overlay/constants.js +0 -6
  44. package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
  45. package/3rdparty/walkontable/src/overlay/index.js +0 -17
  46. package/3rdparty/walkontable/src/overlay/inlineStart.js +26 -90
  47. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +26 -75
  48. package/3rdparty/walkontable/src/overlay/top.js +37 -104
  49. package/3rdparty/walkontable/src/overlay/top.mjs +37 -89
  50. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +14 -55
  51. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +14 -40
  52. package/3rdparty/walkontable/src/overlays.js +124 -145
  53. package/3rdparty/walkontable/src/overlays.mjs +124 -135
  54. package/3rdparty/walkontable/src/renderer/_base.js +17 -19
  55. package/3rdparty/walkontable/src/renderer/_base.mjs +17 -17
  56. package/3rdparty/walkontable/src/renderer/cells.js +15 -53
  57. package/3rdparty/walkontable/src/renderer/cells.mjs +15 -39
  58. package/3rdparty/walkontable/src/renderer/colGroup.js +15 -46
  59. package/3rdparty/walkontable/src/renderer/colGroup.mjs +15 -34
  60. package/3rdparty/walkontable/src/renderer/columnHeaders.js +13 -49
  61. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +13 -37
  62. package/3rdparty/walkontable/src/renderer/index.js +26 -35
  63. package/3rdparty/walkontable/src/renderer/index.mjs +26 -22
  64. package/3rdparty/walkontable/src/renderer/rowHeaders.js +13 -49
  65. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +13 -36
  66. package/3rdparty/walkontable/src/renderer/rows.js +11 -49
  67. package/3rdparty/walkontable/src/renderer/rows.mjs +11 -32
  68. package/3rdparty/walkontable/src/renderer/table.js +35 -48
  69. package/3rdparty/walkontable/src/renderer/table.mjs +35 -47
  70. package/3rdparty/walkontable/src/scroll.js +69 -86
  71. package/3rdparty/walkontable/src/scroll.mjs +69 -84
  72. package/3rdparty/walkontable/src/selection.js +28 -103
  73. package/3rdparty/walkontable/src/selection.mjs +26 -83
  74. package/3rdparty/walkontable/src/settings.js +25 -31
  75. package/3rdparty/walkontable/src/settings.mjs +25 -29
  76. package/3rdparty/walkontable/src/table/bottom.js +6 -34
  77. package/3rdparty/walkontable/src/table/bottom.mjs +6 -19
  78. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +6 -34
  79. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +6 -19
  80. package/3rdparty/walkontable/src/table/inlineStart.js +6 -34
  81. package/3rdparty/walkontable/src/table/inlineStart.mjs +6 -19
  82. package/3rdparty/walkontable/src/table/master.js +15 -54
  83. package/3rdparty/walkontable/src/table/master.mjs +15 -38
  84. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +1 -16
  85. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +1 -14
  86. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +1 -16
  87. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +1 -14
  88. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +1 -10
  89. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +1 -8
  90. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +1 -11
  91. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +1 -9
  92. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +1 -10
  93. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +1 -8
  94. package/3rdparty/walkontable/src/table/top.js +6 -34
  95. package/3rdparty/walkontable/src/table/top.mjs +6 -19
  96. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +6 -34
  97. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +6 -19
  98. package/3rdparty/walkontable/src/table.js +73 -233
  99. package/3rdparty/walkontable/src/table.mjs +71 -210
  100. package/3rdparty/walkontable/src/types.js +0 -5
  101. package/3rdparty/walkontable/src/types.mjs +0 -5
  102. package/3rdparty/walkontable/src/utils/column.js +18 -30
  103. package/3rdparty/walkontable/src/utils/column.mjs +18 -25
  104. package/3rdparty/walkontable/src/utils/nodesPool.js +16 -11
  105. package/3rdparty/walkontable/src/utils/nodesPool.mjs +16 -10
  106. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
  107. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
  108. package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
  109. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +7 -32
  110. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +7 -21
  111. package/3rdparty/walkontable/src/utils/orderView/view.js +27 -45
  112. package/3rdparty/walkontable/src/utils/orderView/view.mjs +27 -42
  113. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +16 -14
  114. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +16 -13
  115. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +21 -21
  116. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +21 -18
  117. package/3rdparty/walkontable/src/utils/row.js +15 -12
  118. package/3rdparty/walkontable/src/utils/row.mjs +15 -11
  119. package/3rdparty/walkontable/src/viewport.js +51 -99
  120. package/3rdparty/walkontable/src/viewport.mjs +51 -96
  121. package/CHANGELOG.md +99 -1
  122. package/base.d.ts +1 -0
  123. package/base.js +11 -17
  124. package/base.mjs +10 -11
  125. package/cellTypes/autocompleteType/autocompleteType.js +0 -4
  126. package/cellTypes/autocompleteType/index.js +0 -2
  127. package/cellTypes/checkboxType/checkboxType.js +0 -3
  128. package/cellTypes/checkboxType/index.js +0 -2
  129. package/cellTypes/dateType/dateType.js +0 -4
  130. package/cellTypes/dateType/index.js +0 -2
  131. package/cellTypes/dropdownType/dropdownType.js +0 -4
  132. package/cellTypes/dropdownType/index.js +0 -2
  133. package/cellTypes/handsontableType/handsontableType.js +0 -3
  134. package/cellTypes/handsontableType/index.js +0 -2
  135. package/cellTypes/index.js +0 -21
  136. package/cellTypes/index.mjs +0 -1
  137. package/cellTypes/numericType/index.js +0 -2
  138. package/cellTypes/numericType/numericType.js +0 -4
  139. package/cellTypes/passwordType/index.js +0 -2
  140. package/cellTypes/passwordType/passwordType.js +0 -3
  141. package/cellTypes/registry.js +10 -25
  142. package/cellTypes/registry.mjs +10 -20
  143. package/cellTypes/textType/index.js +0 -2
  144. package/cellTypes/textType/textType.js +0 -3
  145. package/cellTypes/timeType/index.js +0 -2
  146. package/cellTypes/timeType/timeType.js +0 -4
  147. package/core.d.ts +6 -2
  148. package/core.js +714 -1070
  149. package/core.mjs +717 -1015
  150. package/dataMap/dataMap.js +202 -236
  151. package/dataMap/dataMap.mjs +201 -209
  152. package/{dataSource.js → dataMap/dataSource.js} +29 -65
  153. package/{dataSource.mjs → dataMap/dataSource.mjs} +29 -57
  154. package/dataMap/index.js +0 -13
  155. package/dataMap/metaManager/index.js +33 -45
  156. package/dataMap/metaManager/index.mjs +33 -37
  157. package/dataMap/metaManager/lazyFactoryMap.js +17 -62
  158. package/dataMap/metaManager/lazyFactoryMap.mjs +17 -46
  159. package/dataMap/metaManager/metaLayers/cellMeta.js +26 -57
  160. package/dataMap/metaManager/metaLayers/cellMeta.mjs +25 -41
  161. package/dataMap/metaManager/metaLayers/columnMeta.js +23 -24
  162. package/dataMap/metaManager/metaLayers/columnMeta.mjs +24 -21
  163. package/dataMap/metaManager/metaLayers/globalMeta.js +30 -21
  164. package/dataMap/metaManager/metaLayers/globalMeta.mjs +31 -18
  165. package/dataMap/metaManager/metaLayers/tableMeta.js +18 -15
  166. package/dataMap/metaManager/metaLayers/tableMeta.mjs +19 -14
  167. package/dataMap/metaManager/metaSchema.js +173 -213
  168. package/dataMap/metaManager/metaSchema.mjs +173 -204
  169. package/dataMap/metaManager/mods/dynamicCellMeta.js +15 -35
  170. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +15 -24
  171. package/dataMap/metaManager/mods/extendMetaProperties.js +14 -27
  172. package/dataMap/metaManager/mods/extendMetaProperties.mjs +14 -19
  173. package/dataMap/metaManager/utils.js +49 -28
  174. package/dataMap/metaManager/utils.mjs +50 -21
  175. package/dataMap/replaceData.js +15 -35
  176. package/dataMap/replaceData.mjs +15 -23
  177. package/dist/handsontable.css +9 -9
  178. package/dist/handsontable.full.css +9 -9
  179. package/dist/handsontable.full.js +13065 -28165
  180. package/dist/handsontable.full.min.css +2 -2
  181. package/dist/handsontable.full.min.js +108 -114
  182. package/dist/handsontable.js +11528 -21792
  183. package/dist/handsontable.min.css +2 -2
  184. package/dist/handsontable.min.js +3 -3
  185. package/dist/languages/all.js +111 -240
  186. package/dist/languages/all.min.js +1 -1
  187. package/dist/languages/ar-AR.js +50 -14
  188. package/dist/languages/ar-AR.min.js +1 -1
  189. package/dist/languages/cs-CZ.js +52 -16
  190. package/dist/languages/cs-CZ.min.js +1 -1
  191. package/dist/languages/de-CH.js +52 -16
  192. package/dist/languages/de-CH.min.js +1 -1
  193. package/dist/languages/de-DE.js +53 -17
  194. package/dist/languages/de-DE.min.js +1 -1
  195. package/dist/languages/en-US.js +56 -20
  196. package/dist/languages/en-US.min.js +1 -1
  197. package/dist/languages/es-MX.js +56 -20
  198. package/dist/languages/es-MX.min.js +1 -1
  199. package/dist/languages/fr-FR.js +55 -19
  200. package/dist/languages/fr-FR.min.js +1 -1
  201. package/dist/languages/it-IT.js +55 -19
  202. package/dist/languages/it-IT.min.js +1 -1
  203. package/dist/languages/ja-JP.js +83 -43
  204. package/dist/languages/ja-JP.min.js +1 -1
  205. package/dist/languages/ko-KR.js +84 -43
  206. package/dist/languages/ko-KR.min.js +1 -1
  207. package/dist/languages/lv-LV.js +85 -43
  208. package/dist/languages/lv-LV.min.js +1 -1
  209. package/dist/languages/nb-NO.js +86 -43
  210. package/dist/languages/nb-NO.min.js +1 -1
  211. package/dist/languages/nl-NL.js +87 -43
  212. package/dist/languages/nl-NL.min.js +1 -1
  213. package/dist/languages/pl-PL.js +88 -43
  214. package/dist/languages/pl-PL.min.js +1 -1
  215. package/dist/languages/pt-BR.js +67 -28
  216. package/dist/languages/pt-BR.min.js +1 -1
  217. package/dist/languages/ru-RU.js +67 -28
  218. package/dist/languages/ru-RU.min.js +1 -1
  219. package/dist/languages/sr-SP.js +55 -16
  220. package/dist/languages/sr-SP.min.js +1 -1
  221. package/dist/languages/zh-CN.js +55 -16
  222. package/dist/languages/zh-CN.min.js +1 -1
  223. package/dist/languages/zh-TW.js +55 -16
  224. package/dist/languages/zh-TW.min.js +1 -1
  225. package/editorManager.js +53 -113
  226. package/editorManager.mjs +50 -90
  227. package/editors/autocompleteEditor/autocompleteEditor.js +36 -138
  228. package/editors/autocompleteEditor/autocompleteEditor.mjs +35 -108
  229. package/editors/autocompleteEditor/index.js +0 -2
  230. package/editors/baseEditor/baseEditor.js +55 -160
  231. package/editors/baseEditor/baseEditor.mjs +54 -133
  232. package/editors/baseEditor/index.js +0 -2
  233. package/editors/checkboxEditor/checkboxEditor.js +8 -34
  234. package/editors/checkboxEditor/checkboxEditor.mjs +8 -20
  235. package/editors/checkboxEditor/index.js +0 -2
  236. package/editors/dateEditor/dateEditor.js +26 -97
  237. package/editors/dateEditor/dateEditor.mjs +26 -76
  238. package/editors/dateEditor/index.js +0 -2
  239. package/editors/dropdownEditor/dropdownEditor.js +7 -42
  240. package/editors/dropdownEditor/dropdownEditor.mjs +7 -23
  241. package/editors/dropdownEditor/index.js +0 -2
  242. package/editors/handsontableEditor/handsontableEditor.js +19 -86
  243. package/editors/handsontableEditor/handsontableEditor.mjs +19 -67
  244. package/editors/handsontableEditor/index.js +0 -2
  245. package/editors/index.js +0 -25
  246. package/editors/index.mjs +0 -1
  247. package/editors/numericEditor/index.js +0 -2
  248. package/editors/numericEditor/numericEditor.js +7 -32
  249. package/editors/numericEditor/numericEditor.mjs +7 -19
  250. package/editors/passwordEditor/index.js +0 -2
  251. package/editors/passwordEditor/passwordEditor.js +7 -39
  252. package/editors/passwordEditor/passwordEditor.mjs +7 -23
  253. package/editors/registry.js +13 -36
  254. package/editors/registry.mjs +12 -26
  255. package/editors/selectEditor/index.js +0 -2
  256. package/editors/selectEditor/selectEditor.js +27 -74
  257. package/editors/selectEditor/selectEditor.mjs +27 -57
  258. package/editors/textEditor/caretPositioner.js +0 -8
  259. package/editors/textEditor/caretPositioner.mjs +0 -7
  260. package/editors/textEditor/index.js +0 -2
  261. package/editors/textEditor/textEditor.js +45 -139
  262. package/editors/textEditor/textEditor.mjs +45 -108
  263. package/editors/timeEditor/index.js +0 -2
  264. package/editors/timeEditor/timeEditor.js +7 -37
  265. package/editors/timeEditor/timeEditor.mjs +7 -22
  266. package/eventManager.js +26 -47
  267. package/eventManager.mjs +27 -45
  268. package/helpers/array.js +22 -88
  269. package/helpers/array.mjs +22 -58
  270. package/helpers/browser.js +25 -51
  271. package/helpers/browser.mjs +25 -32
  272. package/helpers/console.js +3 -13
  273. package/helpers/console.mjs +3 -10
  274. package/helpers/data.d.ts +0 -2
  275. package/helpers/data.js +8 -102
  276. package/helpers/data.mjs +9 -80
  277. package/helpers/date.js +2 -3
  278. package/helpers/date.mjs +2 -2
  279. package/helpers/dom/element.js +89 -256
  280. package/helpers/dom/element.mjs +88 -184
  281. package/helpers/dom/event.js +3 -7
  282. package/helpers/dom/event.mjs +3 -3
  283. package/helpers/feature.js +21 -82
  284. package/helpers/feature.mjs +15 -60
  285. package/helpers/function.js +14 -59
  286. package/helpers/function.mjs +14 -45
  287. package/helpers/mixed.js +9 -64
  288. package/helpers/mixed.mjs +9 -43
  289. package/helpers/number.js +4 -46
  290. package/helpers/number.mjs +4 -23
  291. package/helpers/object.js +30 -77
  292. package/helpers/object.mjs +25 -47
  293. package/helpers/string.js +6 -28
  294. package/helpers/string.mjs +6 -14
  295. package/helpers/templateLiteralTag.js +0 -6
  296. package/helpers/templateLiteralTag.mjs +0 -2
  297. package/helpers/unicode.js +17 -22
  298. package/helpers/unicode.mjs +17 -13
  299. package/helpers/wrappers/jquery.js +4 -14
  300. package/helpers/wrappers/jquery.mjs +4 -13
  301. package/i18n/constants.js +50 -45
  302. package/i18n/constants.mjs +46 -42
  303. package/i18n/index.js +0 -7
  304. package/i18n/languages/ar-AR.js +12 -23
  305. package/i18n/languages/ar-AR.mjs +14 -3
  306. package/i18n/languages/cs-CZ.js +12 -23
  307. package/i18n/languages/cs-CZ.mjs +14 -3
  308. package/i18n/languages/de-CH.js +12 -23
  309. package/i18n/languages/de-CH.mjs +14 -3
  310. package/i18n/languages/de-DE.js +12 -23
  311. package/i18n/languages/de-DE.mjs +14 -3
  312. package/i18n/languages/en-US.js +13 -24
  313. package/i18n/languages/en-US.mjs +15 -4
  314. package/i18n/languages/es-MX.js +13 -24
  315. package/i18n/languages/es-MX.mjs +17 -5
  316. package/i18n/languages/fr-FR.js +12 -23
  317. package/i18n/languages/fr-FR.mjs +14 -3
  318. package/i18n/languages/index.js +0 -39
  319. package/i18n/languages/it-IT.js +12 -23
  320. package/i18n/languages/it-IT.mjs +14 -3
  321. package/i18n/languages/ja-JP.js +12 -23
  322. package/i18n/languages/ja-JP.mjs +14 -3
  323. package/i18n/languages/ko-KR.js +12 -23
  324. package/i18n/languages/ko-KR.mjs +14 -3
  325. package/i18n/languages/lv-LV.js +13 -24
  326. package/i18n/languages/lv-LV.mjs +17 -6
  327. package/i18n/languages/nb-NO.js +12 -23
  328. package/i18n/languages/nb-NO.mjs +14 -3
  329. package/i18n/languages/nl-NL.js +13 -24
  330. package/i18n/languages/nl-NL.mjs +17 -6
  331. package/i18n/languages/pl-PL.js +13 -24
  332. package/i18n/languages/pl-PL.mjs +16 -5
  333. package/i18n/languages/pt-BR.js +12 -23
  334. package/i18n/languages/pt-BR.mjs +14 -3
  335. package/i18n/languages/ru-RU.js +12 -23
  336. package/i18n/languages/ru-RU.mjs +14 -3
  337. package/i18n/languages/sr-SP.js +12 -23
  338. package/i18n/languages/sr-SP.mjs +14 -3
  339. package/i18n/languages/zh-CN.js +12 -23
  340. package/i18n/languages/zh-CN.mjs +14 -3
  341. package/i18n/languages/zh-TW.js +12 -23
  342. package/i18n/languages/zh-TW.mjs +14 -3
  343. package/i18n/phraseFormatters/index.js +4 -11
  344. package/i18n/phraseFormatters/index.mjs +4 -6
  345. package/i18n/phraseFormatters/pluralize.js +0 -5
  346. package/i18n/phraseFormatters/pluralize.mjs +0 -3
  347. package/i18n/phraseFormatters/substituteVariables.js +0 -4
  348. package/i18n/phraseFormatters/substituteVariables.mjs +0 -2
  349. package/i18n/registry.js +18 -59
  350. package/i18n/registry.mjs +18 -30
  351. package/i18n/utils.js +4 -22
  352. package/i18n/utils.mjs +4 -11
  353. package/index.d.ts +9 -0
  354. package/index.js +23 -58
  355. package/index.mjs +21 -16
  356. package/languages/all.js +111 -240
  357. package/languages/ar-AR.js +50 -14
  358. package/languages/ar-AR.mjs +14 -3
  359. package/languages/cs-CZ.js +52 -16
  360. package/languages/cs-CZ.mjs +14 -3
  361. package/languages/de-CH.js +52 -16
  362. package/languages/de-CH.mjs +14 -3
  363. package/languages/de-DE.js +53 -17
  364. package/languages/de-DE.mjs +14 -3
  365. package/languages/en-US.js +56 -20
  366. package/languages/en-US.mjs +15 -4
  367. package/languages/es-MX.js +56 -20
  368. package/languages/es-MX.mjs +17 -5
  369. package/languages/fr-FR.js +55 -19
  370. package/languages/fr-FR.mjs +14 -3
  371. package/languages/index.js +111 -240
  372. package/languages/it-IT.js +55 -19
  373. package/languages/it-IT.mjs +14 -3
  374. package/languages/ja-JP.js +83 -43
  375. package/languages/ja-JP.mjs +14 -3
  376. package/languages/ko-KR.js +84 -43
  377. package/languages/ko-KR.mjs +14 -3
  378. package/languages/lv-LV.js +85 -43
  379. package/languages/lv-LV.mjs +17 -6
  380. package/languages/nb-NO.js +86 -43
  381. package/languages/nb-NO.mjs +14 -3
  382. package/languages/nl-NL.js +87 -43
  383. package/languages/nl-NL.mjs +17 -6
  384. package/languages/pl-PL.js +88 -43
  385. package/languages/pl-PL.mjs +16 -5
  386. package/languages/pt-BR.js +67 -28
  387. package/languages/pt-BR.mjs +14 -3
  388. package/languages/ru-RU.js +67 -28
  389. package/languages/ru-RU.mjs +14 -3
  390. package/languages/sr-SP.js +55 -16
  391. package/languages/sr-SP.mjs +14 -3
  392. package/languages/zh-CN.js +55 -16
  393. package/languages/zh-CN.mjs +14 -3
  394. package/languages/zh-TW.js +55 -16
  395. package/languages/zh-TW.mjs +14 -3
  396. package/mixins/hooksRefRegisterer.js +1 -12
  397. package/mixins/hooksRefRegisterer.mjs +1 -9
  398. package/mixins/localHooks.js +4 -11
  399. package/mixins/localHooks.mjs +4 -8
  400. package/package.json +2 -2
  401. package/pluginHooks.d.ts +10 -5
  402. package/pluginHooks.js +376 -116
  403. package/pluginHooks.mjs +375 -103
  404. package/plugins/autoColumnSize/autoColumnSize.js +81 -174
  405. package/plugins/autoColumnSize/autoColumnSize.mjs +81 -139
  406. package/plugins/autoColumnSize/index.js +0 -2
  407. package/plugins/autoRowSize/autoRowSize.js +89 -160
  408. package/plugins/autoRowSize/autoRowSize.mjs +89 -131
  409. package/plugins/autoRowSize/index.js +0 -2
  410. package/plugins/autofill/autofill.js +53 -165
  411. package/plugins/autofill/autofill.mjs +53 -133
  412. package/plugins/autofill/index.js +0 -2
  413. package/plugins/autofill/utils.js +4 -26
  414. package/plugins/autofill/utils.mjs +4 -18
  415. package/plugins/base/base.js +28 -91
  416. package/plugins/base/base.mjs +28 -63
  417. package/plugins/base/index.js +0 -2
  418. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +25 -53
  419. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +25 -34
  420. package/plugins/bindRowsWithHeaders/index.js +0 -2
  421. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +11 -42
  422. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +11 -30
  423. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +12 -54
  424. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +12 -38
  425. package/plugins/collapsibleColumns/collapsibleColumns.js +106 -193
  426. package/plugins/collapsibleColumns/collapsibleColumns.mjs +106 -162
  427. package/plugins/collapsibleColumns/index.js +0 -2
  428. package/plugins/columnSorting/columnSorting.js +58 -192
  429. package/plugins/columnSorting/columnSorting.mjs +58 -147
  430. package/plugins/columnSorting/columnStatesManager.js +27 -77
  431. package/plugins/columnSorting/columnStatesManager.mjs +24 -51
  432. package/plugins/columnSorting/domHelpers.js +2 -18
  433. package/plugins/columnSorting/domHelpers.mjs +2 -7
  434. package/plugins/columnSorting/index.js +0 -2
  435. package/plugins/columnSorting/rootComparator.js +5 -24
  436. package/plugins/columnSorting/rootComparator.mjs +5 -13
  437. package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
  438. package/plugins/columnSorting/sortFunction/checkbox.mjs +8 -12
  439. package/plugins/columnSorting/sortFunction/date.js +2 -19
  440. package/plugins/columnSorting/sortFunction/date.mjs +2 -14
  441. package/plugins/columnSorting/sortFunction/default.js +2 -17
  442. package/plugins/columnSorting/sortFunction/default.mjs +2 -14
  443. package/plugins/columnSorting/sortFunction/numeric.js +2 -11
  444. package/plugins/columnSorting/sortFunction/numeric.mjs +2 -8
  445. package/plugins/columnSorting/sortService/engine.js +1 -7
  446. package/plugins/columnSorting/sortService/engine.mjs +1 -3
  447. package/plugins/columnSorting/sortService/index.js +0 -5
  448. package/plugins/columnSorting/sortService/registry.js +6 -18
  449. package/plugins/columnSorting/sortService/registry.mjs +6 -10
  450. package/plugins/columnSorting/utils.js +9 -34
  451. package/plugins/columnSorting/utils.mjs +9 -15
  452. package/plugins/columnSummary/columnSummary.js +65 -126
  453. package/plugins/columnSummary/columnSummary.mjs +65 -101
  454. package/plugins/columnSummary/endpoints.js +33 -109
  455. package/plugins/columnSummary/endpoints.mjs +33 -105
  456. package/plugins/columnSummary/index.js +0 -2
  457. package/plugins/columnSummary/utils.js +0 -1
  458. package/plugins/comments/commentEditor.js +29 -27
  459. package/plugins/comments/commentEditor.mjs +29 -26
  460. package/plugins/comments/comments.js +106 -178
  461. package/plugins/comments/comments.mjs +106 -152
  462. package/plugins/comments/displaySwitch.js +20 -24
  463. package/plugins/comments/displaySwitch.mjs +20 -19
  464. package/plugins/comments/index.js +0 -2
  465. package/plugins/contextMenu/commandExecutor.js +17 -29
  466. package/plugins/contextMenu/commandExecutor.mjs +17 -27
  467. package/plugins/contextMenu/contextMenu.d.ts +4 -3
  468. package/plugins/contextMenu/contextMenu.js +28 -121
  469. package/plugins/contextMenu/contextMenu.mjs +28 -91
  470. package/plugins/contextMenu/cursor.js +19 -19
  471. package/plugins/contextMenu/cursor.mjs +19 -18
  472. package/plugins/contextMenu/index.js +0 -2
  473. package/plugins/contextMenu/itemsFactory.js +21 -35
  474. package/plugins/contextMenu/itemsFactory.mjs +21 -31
  475. package/plugins/contextMenu/menu.js +71 -180
  476. package/plugins/contextMenu/menu.mjs +70 -151
  477. package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
  478. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
  479. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
  480. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
  481. package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
  482. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
  483. package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
  484. package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
  485. package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
  486. package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
  487. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
  488. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
  489. package/plugins/contextMenu/predefinedItems/redo.js +1 -16
  490. package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
  491. package/plugins/contextMenu/predefinedItems/removeColumn.js +4 -39
  492. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +4 -19
  493. package/plugins/contextMenu/predefinedItems/removeRow.js +4 -38
  494. package/plugins/contextMenu/predefinedItems/removeRow.mjs +4 -18
  495. package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
  496. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
  497. package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
  498. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
  499. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  500. package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
  501. package/plugins/contextMenu/predefinedItems/undo.js +1 -16
  502. package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
  503. package/plugins/contextMenu/predefinedItems.js +14 -55
  504. package/plugins/contextMenu/predefinedItems.mjs +16 -8
  505. package/plugins/contextMenu/utils.js +17 -57
  506. package/plugins/contextMenu/utils.mjs +17 -34
  507. package/plugins/copyPaste/clipboardData.js +14 -9
  508. package/plugins/copyPaste/clipboardData.mjs +14 -8
  509. package/plugins/copyPaste/contextMenuItem/copy.js +5 -32
  510. package/plugins/copyPaste/contextMenuItem/copy.mjs +5 -7
  511. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +35 -0
  512. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +31 -0
  513. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +35 -0
  514. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +31 -0
  515. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +35 -0
  516. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +31 -0
  517. package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
  518. package/plugins/copyPaste/contextMenuItem/cut.mjs +2 -4
  519. package/plugins/copyPaste/copyPaste.d.ts +10 -2
  520. package/plugins/copyPaste/copyPaste.js +339 -372
  521. package/plugins/copyPaste/copyPaste.mjs +339 -331
  522. package/plugins/copyPaste/copyableRanges.js +269 -0
  523. package/plugins/copyPaste/copyableRanges.mjs +264 -0
  524. package/plugins/copyPaste/focusableElement.js +21 -55
  525. package/plugins/copyPaste/focusableElement.mjs +21 -45
  526. package/plugins/copyPaste/index.js +0 -2
  527. package/plugins/copyPaste/pasteEvent.js +14 -9
  528. package/plugins/copyPaste/pasteEvent.mjs +14 -7
  529. package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
  530. package/plugins/customBorders/contextMenuItem/bottom.mjs +0 -3
  531. package/plugins/customBorders/contextMenuItem/index.js +0 -11
  532. package/plugins/customBorders/contextMenuItem/left.js +0 -17
  533. package/plugins/customBorders/contextMenuItem/left.mjs +0 -3
  534. package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
  535. package/plugins/customBorders/contextMenuItem/noBorders.mjs +0 -1
  536. package/plugins/customBorders/contextMenuItem/right.js +0 -17
  537. package/plugins/customBorders/contextMenuItem/right.mjs +0 -3
  538. package/plugins/customBorders/contextMenuItem/top.js +0 -17
  539. package/plugins/customBorders/contextMenuItem/top.mjs +0 -3
  540. package/plugins/customBorders/customBorders.js +64 -188
  541. package/plugins/customBorders/customBorders.mjs +63 -153
  542. package/plugins/customBorders/index.js +0 -2
  543. package/plugins/customBorders/utils.js +13 -52
  544. package/plugins/customBorders/utils.mjs +13 -31
  545. package/plugins/dragToScroll/dragToScroll.js +23 -75
  546. package/plugins/dragToScroll/dragToScroll.mjs +23 -56
  547. package/plugins/dragToScroll/index.js +0 -2
  548. package/plugins/dropdownMenu/dropdownMenu.js +49 -127
  549. package/plugins/dropdownMenu/dropdownMenu.mjs +49 -96
  550. package/plugins/dropdownMenu/index.js +0 -2
  551. package/plugins/exportFile/dataProvider.js +34 -72
  552. package/plugins/exportFile/dataProvider.mjs +31 -58
  553. package/plugins/exportFile/exportFile.js +56 -61
  554. package/plugins/exportFile/exportFile.mjs +54 -37
  555. package/plugins/exportFile/index.js +0 -2
  556. package/plugins/exportFile/typeFactory.js +15 -12
  557. package/plugins/exportFile/typeFactory.mjs +15 -5
  558. package/plugins/exportFile/types/_base.js +15 -15
  559. package/plugins/exportFile/types/_base.mjs +15 -13
  560. package/plugins/exportFile/types/csv.js +8 -51
  561. package/plugins/exportFile/types/csv.mjs +8 -30
  562. package/plugins/filters/component/_base.js +25 -31
  563. package/plugins/filters/component/_base.mjs +25 -26
  564. package/plugins/filters/component/actionBar.js +13 -56
  565. package/plugins/filters/component/actionBar.mjs +11 -34
  566. package/plugins/filters/component/condition.js +22 -95
  567. package/plugins/filters/component/condition.mjs +20 -63
  568. package/plugins/filters/component/operators.js +18 -71
  569. package/plugins/filters/component/operators.mjs +18 -48
  570. package/plugins/filters/component/value.js +22 -97
  571. package/plugins/filters/component/value.mjs +22 -67
  572. package/plugins/filters/condition/beginsWith.js +3 -33
  573. package/plugins/filters/condition/beginsWith.mjs +3 -11
  574. package/plugins/filters/condition/between.js +4 -38
  575. package/plugins/filters/condition/between.mjs +4 -16
  576. package/plugins/filters/condition/byValue.js +4 -28
  577. package/plugins/filters/condition/byValue.mjs +4 -13
  578. package/plugins/filters/condition/contains.js +3 -33
  579. package/plugins/filters/condition/contains.mjs +3 -11
  580. package/plugins/filters/condition/date/after.js +3 -35
  581. package/plugins/filters/condition/date/after.mjs +3 -13
  582. package/plugins/filters/condition/date/before.js +3 -35
  583. package/plugins/filters/condition/date/before.mjs +3 -13
  584. package/plugins/filters/condition/date/today.js +1 -22
  585. package/plugins/filters/condition/date/today.mjs +1 -3
  586. package/plugins/filters/condition/date/tomorrow.js +1 -22
  587. package/plugins/filters/condition/date/tomorrow.mjs +1 -3
  588. package/plugins/filters/condition/date/yesterday.js +1 -22
  589. package/plugins/filters/condition/date/yesterday.mjs +1 -3
  590. package/plugins/filters/condition/empty.js +1 -19
  591. package/plugins/filters/condition/empty.mjs +1 -1
  592. package/plugins/filters/condition/endsWith.js +3 -33
  593. package/plugins/filters/condition/endsWith.mjs +3 -11
  594. package/plugins/filters/condition/equal.js +3 -32
  595. package/plugins/filters/condition/equal.mjs +3 -11
  596. package/plugins/filters/condition/false.js +1 -5
  597. package/plugins/filters/condition/false.mjs +1 -1
  598. package/plugins/filters/condition/greaterThan.js +3 -33
  599. package/plugins/filters/condition/greaterThan.mjs +3 -13
  600. package/plugins/filters/condition/greaterThanOrEqual.js +3 -33
  601. package/plugins/filters/condition/greaterThanOrEqual.mjs +3 -13
  602. package/plugins/filters/condition/lessThan.js +3 -33
  603. package/plugins/filters/condition/lessThan.mjs +3 -13
  604. package/plugins/filters/condition/lessThanOrEqual.js +3 -33
  605. package/plugins/filters/condition/lessThanOrEqual.mjs +3 -13
  606. package/plugins/filters/condition/none.js +1 -18
  607. package/plugins/filters/condition/none.mjs +1 -1
  608. package/plugins/filters/condition/notBetween.js +1 -19
  609. package/plugins/filters/condition/notBetween.mjs +1 -1
  610. package/plugins/filters/condition/notContains.js +1 -19
  611. package/plugins/filters/condition/notContains.mjs +1 -1
  612. package/plugins/filters/condition/notEmpty.js +1 -19
  613. package/plugins/filters/condition/notEmpty.mjs +1 -1
  614. package/plugins/filters/condition/notEqual.js +1 -19
  615. package/plugins/filters/condition/notEqual.mjs +1 -1
  616. package/plugins/filters/condition/true.js +1 -5
  617. package/plugins/filters/condition/true.mjs +1 -1
  618. package/plugins/filters/conditionCollection.js +31 -84
  619. package/plugins/filters/conditionCollection.mjs +39 -69
  620. package/plugins/filters/conditionRegisterer.js +5 -14
  621. package/plugins/filters/conditionRegisterer.mjs +5 -9
  622. package/plugins/filters/conditionUpdateObserver.js +29 -56
  623. package/plugins/filters/conditionUpdateObserver.mjs +29 -44
  624. package/plugins/filters/constants.js +15 -67
  625. package/plugins/filters/constants.mjs +15 -9
  626. package/plugins/filters/dataFilter.js +17 -20
  627. package/plugins/filters/dataFilter.mjs +17 -19
  628. package/plugins/filters/filters.js +110 -210
  629. package/plugins/filters/filters.mjs +110 -165
  630. package/plugins/filters/index.js +0 -2
  631. package/plugins/filters/logicalOperationRegisterer.js +3 -9
  632. package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
  633. package/plugins/filters/logicalOperations/conjunction.js +2 -19
  634. package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
  635. package/plugins/filters/logicalOperations/disjunction.js +2 -19
  636. package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
  637. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
  638. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
  639. package/plugins/filters/ui/_base.js +24 -62
  640. package/plugins/filters/ui/_base.mjs +26 -36
  641. package/plugins/filters/ui/input.js +13 -53
  642. package/plugins/filters/ui/input.mjs +13 -35
  643. package/plugins/filters/ui/link.js +9 -44
  644. package/plugins/filters/ui/link.mjs +9 -26
  645. package/plugins/filters/ui/multipleSelect.js +25 -113
  646. package/plugins/filters/ui/multipleSelect.mjs +26 -77
  647. package/plugins/filters/ui/radioInput.js +12 -48
  648. package/plugins/filters/ui/radioInput.mjs +12 -31
  649. package/plugins/filters/ui/select.js +20 -77
  650. package/plugins/filters/ui/select.mjs +20 -53
  651. package/plugins/filters/utils.js +6 -39
  652. package/plugins/filters/utils.mjs +6 -23
  653. package/plugins/formulas/engine/register.js +24 -74
  654. package/plugins/formulas/engine/register.mjs +24 -45
  655. package/plugins/formulas/engine/settings.js +16 -25
  656. package/plugins/formulas/engine/settings.mjs +16 -13
  657. package/plugins/formulas/formulas.js +127 -306
  658. package/plugins/formulas/formulas.mjs +128 -259
  659. package/plugins/formulas/index.js +0 -2
  660. package/plugins/formulas/utils.js +1 -3
  661. package/plugins/formulas/utils.mjs +1 -1
  662. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +5 -39
  663. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +5 -21
  664. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
  665. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +17 -24
  666. package/plugins/hiddenColumns/hiddenColumns.js +77 -150
  667. package/plugins/hiddenColumns/hiddenColumns.mjs +77 -109
  668. package/plugins/hiddenColumns/index.js +0 -2
  669. package/plugins/hiddenRows/contextMenuItem/hideRow.js +5 -39
  670. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +5 -21
  671. package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
  672. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +17 -24
  673. package/plugins/hiddenRows/hiddenRows.js +75 -149
  674. package/plugins/hiddenRows/hiddenRows.mjs +75 -108
  675. package/plugins/hiddenRows/index.js +0 -2
  676. package/plugins/index.js +0 -71
  677. package/plugins/index.mjs +0 -1
  678. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -29
  679. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +2 -13
  680. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -29
  681. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +2 -13
  682. package/plugins/manualColumnFreeze/index.js +0 -2
  683. package/plugins/manualColumnFreeze/manualColumnFreeze.js +27 -79
  684. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +27 -55
  685. package/plugins/manualColumnMove/index.js +0 -2
  686. package/plugins/manualColumnMove/manualColumnMove.js +51 -135
  687. package/plugins/manualColumnMove/manualColumnMove.mjs +51 -107
  688. package/plugins/manualColumnMove/ui/_base.js +26 -31
  689. package/plugins/manualColumnMove/ui/_base.mjs +26 -28
  690. package/plugins/manualColumnMove/ui/backlight.js +7 -38
  691. package/plugins/manualColumnMove/ui/backlight.mjs +7 -23
  692. package/plugins/manualColumnMove/ui/guideline.js +7 -38
  693. package/plugins/manualColumnMove/ui/guideline.mjs +7 -23
  694. package/plugins/manualColumnResize/index.js +0 -2
  695. package/plugins/manualColumnResize/manualColumnResize.js +50 -144
  696. package/plugins/manualColumnResize/manualColumnResize.mjs +49 -119
  697. package/plugins/manualRowMove/index.js +0 -2
  698. package/plugins/manualRowMove/manualRowMove.js +51 -138
  699. package/plugins/manualRowMove/manualRowMove.mjs +51 -110
  700. package/plugins/manualRowMove/ui/_base.js +26 -28
  701. package/plugins/manualRowMove/ui/_base.mjs +26 -27
  702. package/plugins/manualRowMove/ui/backlight.js +7 -38
  703. package/plugins/manualRowMove/ui/backlight.mjs +7 -23
  704. package/plugins/manualRowMove/ui/guideline.js +7 -38
  705. package/plugins/manualRowMove/ui/guideline.mjs +7 -23
  706. package/plugins/manualRowResize/index.js +0 -2
  707. package/plugins/manualRowResize/manualRowResize.js +48 -139
  708. package/plugins/manualRowResize/manualRowResize.mjs +47 -113
  709. package/plugins/mergeCells/calculations/autofill.js +49 -133
  710. package/plugins/mergeCells/calculations/autofill.mjs +46 -117
  711. package/plugins/mergeCells/calculations/selection.js +22 -39
  712. package/plugins/mergeCells/calculations/selection.mjs +22 -36
  713. package/plugins/mergeCells/cellCoords.js +43 -50
  714. package/plugins/mergeCells/cellCoords.mjs +43 -48
  715. package/plugins/mergeCells/cellsCollection.js +22 -86
  716. package/plugins/mergeCells/cellsCollection.mjs +19 -63
  717. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
  718. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +0 -6
  719. package/plugins/mergeCells/index.js +0 -2
  720. package/plugins/mergeCells/mergeCells.js +136 -334
  721. package/plugins/mergeCells/mergeCells.mjs +136 -293
  722. package/plugins/mergeCells/utils.js +0 -3
  723. package/plugins/mergeCells/utils.mjs +0 -1
  724. package/plugins/multiColumnSorting/domHelpers.js +2 -12
  725. package/plugins/multiColumnSorting/domHelpers.mjs +2 -5
  726. package/plugins/multiColumnSorting/index.js +0 -2
  727. package/plugins/multiColumnSorting/multiColumnSorting.js +20 -67
  728. package/plugins/multiColumnSorting/multiColumnSorting.mjs +20 -45
  729. package/plugins/multiColumnSorting/rootComparator.js +2 -26
  730. package/plugins/multiColumnSorting/rootComparator.mjs +2 -15
  731. package/plugins/multiColumnSorting/utils.js +0 -7
  732. package/plugins/multiColumnSorting/utils.mjs +0 -4
  733. package/plugins/multipleSelectionHandles/index.js +0 -2
  734. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +12 -110
  735. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +12 -88
  736. package/plugins/nestedHeaders/index.js +0 -2
  737. package/plugins/nestedHeaders/nestedHeaders.js +198 -211
  738. package/plugins/nestedHeaders/nestedHeaders.mjs +206 -191
  739. package/plugins/nestedHeaders/stateManager/headersTree.js +26 -96
  740. package/plugins/nestedHeaders/stateManager/headersTree.mjs +26 -76
  741. package/plugins/nestedHeaders/stateManager/index.js +55 -118
  742. package/plugins/nestedHeaders/stateManager/index.mjs +61 -105
  743. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
  744. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +7 -18
  745. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
  746. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +12 -17
  747. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
  748. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +10 -15
  749. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
  750. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +3 -13
  751. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
  752. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +1 -3
  753. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
  754. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +3 -14
  755. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
  756. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
  757. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
  758. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -20
  759. package/plugins/nestedHeaders/stateManager/sourceSettings.js +27 -81
  760. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +33 -71
  761. package/plugins/nestedHeaders/stateManager/utils.js +19 -22
  762. package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
  763. package/plugins/nestedHeaders/utils/ghostTable.js +23 -37
  764. package/plugins/nestedHeaders/utils/ghostTable.mjs +23 -36
  765. package/plugins/nestedRows/data/dataManager.js +47 -162
  766. package/plugins/nestedRows/data/dataManager.mjs +45 -143
  767. package/plugins/nestedRows/index.js +0 -2
  768. package/plugins/nestedRows/nestedRows.js +46 -119
  769. package/plugins/nestedRows/nestedRows.mjs +46 -86
  770. package/plugins/nestedRows/ui/_base.js +14 -8
  771. package/plugins/nestedRows/ui/_base.mjs +14 -7
  772. package/plugins/nestedRows/ui/collapsing.js +33 -133
  773. package/plugins/nestedRows/ui/collapsing.mjs +33 -111
  774. package/plugins/nestedRows/ui/contextMenu.js +9 -55
  775. package/plugins/nestedRows/ui/contextMenu.mjs +8 -33
  776. package/plugins/nestedRows/ui/headers.js +10 -49
  777. package/plugins/nestedRows/ui/headers.mjs +10 -34
  778. package/plugins/nestedRows/utils/rowMoveController.js +36 -79
  779. package/plugins/nestedRows/utils/rowMoveController.mjs +45 -71
  780. package/plugins/persistentState/index.js +0 -2
  781. package/plugins/persistentState/persistentState.js +16 -59
  782. package/plugins/persistentState/persistentState.mjs +16 -38
  783. package/plugins/persistentState/storage.js +22 -24
  784. package/plugins/persistentState/storage.mjs +22 -22
  785. package/plugins/registry.js +8 -52
  786. package/plugins/registry.mjs +8 -33
  787. package/plugins/search/index.js +0 -2
  788. package/plugins/search/search.js +22 -97
  789. package/plugins/search/search.mjs +22 -68
  790. package/plugins/touchScroll/index.js +0 -2
  791. package/plugins/touchScroll/touchScroll.js +21 -77
  792. package/plugins/touchScroll/touchScroll.mjs +21 -59
  793. package/plugins/trimRows/index.js +0 -2
  794. package/plugins/trimRows/trimRows.js +64 -86
  795. package/plugins/trimRows/trimRows.mjs +64 -63
  796. package/plugins/undoRedo/index.js +0 -14
  797. package/plugins/undoRedo/undoRedo.js +98 -250
  798. package/plugins/undoRedo/undoRedo.mjs +98 -220
  799. package/registry.js +0 -11
  800. package/registry.mjs +1 -2
  801. package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
  802. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
  803. package/renderers/autocompleteRenderer/index.js +0 -2
  804. package/renderers/baseRenderer/baseRenderer.js +2 -11
  805. package/renderers/baseRenderer/baseRenderer.mjs +1 -7
  806. package/renderers/baseRenderer/index.js +0 -2
  807. package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
  808. package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
  809. package/renderers/checkboxRenderer/index.js +0 -2
  810. package/renderers/htmlRenderer/htmlRenderer.js +1 -7
  811. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  812. package/renderers/htmlRenderer/index.js +0 -2
  813. package/renderers/index.js +0 -19
  814. package/renderers/index.mjs +0 -1
  815. package/renderers/numericRenderer/index.js +0 -2
  816. package/renderers/numericRenderer/numericRenderer.js +1 -21
  817. package/renderers/numericRenderer/numericRenderer.mjs +1 -9
  818. package/renderers/passwordRenderer/index.js +0 -2
  819. package/renderers/passwordRenderer/passwordRenderer.js +1 -8
  820. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  821. package/renderers/registry.js +7 -16
  822. package/renderers/registry.mjs +7 -14
  823. package/renderers/textRenderer/index.js +0 -2
  824. package/renderers/textRenderer/textRenderer.js +1 -13
  825. package/renderers/textRenderer/textRenderer.mjs +1 -5
  826. package/renderers/timeRenderer/index.js +0 -2
  827. package/renderers/timeRenderer/timeRenderer.js +1 -6
  828. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  829. package/selection/highlight/highlight.js +24 -73
  830. package/selection/highlight/highlight.mjs +24 -50
  831. package/selection/highlight/types/activeHeader.js +14 -23
  832. package/selection/highlight/types/activeHeader.mjs +14 -12
  833. package/selection/highlight/types/area.js +15 -24
  834. package/selection/highlight/types/area.mjs +15 -13
  835. package/selection/highlight/types/cell.js +14 -23
  836. package/selection/highlight/types/cell.mjs +14 -12
  837. package/selection/highlight/types/customSelection.js +15 -24
  838. package/selection/highlight/types/customSelection.mjs +15 -13
  839. package/selection/highlight/types/fill.js +16 -20
  840. package/selection/highlight/types/fill.mjs +16 -9
  841. package/selection/highlight/types/header.js +16 -25
  842. package/selection/highlight/types/header.mjs +16 -14
  843. package/selection/highlight/types/index.js +17 -27
  844. package/selection/highlight/types/index.mjs +17 -13
  845. package/selection/highlight/visualSelection.js +35 -80
  846. package/selection/highlight/visualSelection.mjs +35 -68
  847. package/selection/index.js +0 -14
  848. package/selection/mouseEventHandler.js +19 -30
  849. package/selection/mouseEventHandler.mjs +19 -22
  850. package/selection/range.js +17 -30
  851. package/selection/range.mjs +17 -21
  852. package/selection/selection.js +72 -160
  853. package/selection/selection.mjs +77 -137
  854. package/selection/transformation.js +23 -39
  855. package/selection/transformation.mjs +23 -36
  856. package/selection/utils.js +23 -71
  857. package/selection/utils.mjs +23 -48
  858. package/shortcuts/context.js +24 -79
  859. package/shortcuts/context.mjs +24 -56
  860. package/shortcuts/index.js +0 -2
  861. package/shortcuts/keyObserver.js +0 -9
  862. package/shortcuts/keyObserver.mjs +0 -4
  863. package/shortcuts/manager.js +17 -37
  864. package/shortcuts/manager.mjs +17 -34
  865. package/shortcuts/recorder.js +9 -40
  866. package/shortcuts/recorder.mjs +9 -31
  867. package/shortcuts/utils.js +5 -20
  868. package/shortcuts/utils.mjs +5 -6
  869. package/tableView.js +239 -330
  870. package/tableView.mjs +239 -308
  871. package/translations/changesObservable/observable.js +14 -53
  872. package/translations/changesObservable/observable.mjs +14 -43
  873. package/translations/changesObservable/observer.js +13 -31
  874. package/translations/changesObservable/observer.mjs +13 -23
  875. package/translations/changesObservable/utils.js +1 -5
  876. package/translations/changesObservable/utils.mjs +1 -4
  877. package/translations/index.js +0 -11
  878. package/translations/indexMapper.js +80 -162
  879. package/translations/indexMapper.mjs +85 -134
  880. package/translations/mapCollections/aggregatedCollection.js +14 -50
  881. package/translations/mapCollections/aggregatedCollection.mjs +14 -37
  882. package/translations/mapCollections/index.js +0 -7
  883. package/translations/mapCollections/mapCollection.js +20 -34
  884. package/translations/mapCollections/mapCollection.mjs +20 -23
  885. package/translations/maps/hidingMap.js +7 -34
  886. package/translations/maps/hidingMap.mjs +7 -22
  887. package/translations/maps/index.js +1 -24
  888. package/translations/maps/index.mjs +1 -3
  889. package/translations/maps/indexMap.js +25 -33
  890. package/translations/maps/indexMap.mjs +25 -27
  891. package/translations/maps/indexesSequence.js +8 -40
  892. package/translations/maps/indexesSequence.mjs +8 -25
  893. package/translations/maps/linkedPhysicalIndexToValueMap.js +18 -81
  894. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +17 -54
  895. package/translations/maps/physicalIndexToValueMap.js +7 -38
  896. package/translations/maps/physicalIndexToValueMap.mjs +7 -24
  897. package/translations/maps/trimmingMap.js +7 -34
  898. package/translations/maps/trimmingMap.mjs +7 -22
  899. package/translations/maps/utils/actionsOnIndexes.js +1 -7
  900. package/translations/maps/utils/actionsOnIndexes.mjs +1 -3
  901. package/translations/maps/utils/index.js +0 -13
  902. package/translations/maps/utils/index.mjs +0 -3
  903. package/translations/maps/utils/indexesSequence.js +1 -24
  904. package/translations/maps/utils/indexesSequence.mjs +1 -9
  905. package/translations/maps/utils/physicallyIndexed.js +1 -27
  906. package/translations/maps/utils/physicallyIndexed.mjs +1 -10
  907. package/utils/dataStructures/linkedList.js +23 -50
  908. package/utils/dataStructures/linkedList.mjs +23 -48
  909. package/utils/dataStructures/priorityMap.js +9 -47
  910. package/utils/dataStructures/priorityMap.mjs +9 -30
  911. package/utils/dataStructures/queue.js +19 -16
  912. package/utils/dataStructures/queue.mjs +19 -15
  913. package/utils/dataStructures/stack.js +19 -16
  914. package/utils/dataStructures/stack.mjs +19 -15
  915. package/utils/dataStructures/tree.js +19 -77
  916. package/utils/dataStructures/tree.mjs +19 -56
  917. package/utils/dataStructures/uniqueMap.js +18 -57
  918. package/utils/dataStructures/uniqueMap.mjs +18 -43
  919. package/utils/dataStructures/uniqueSet.js +5 -32
  920. package/utils/dataStructures/uniqueSet.mjs +5 -19
  921. package/utils/ghostTable.js +42 -106
  922. package/utils/ghostTable.mjs +40 -90
  923. package/utils/interval.js +17 -29
  924. package/utils/interval.mjs +18 -26
  925. package/utils/parseTable.js +11 -92
  926. package/utils/parseTable.mjs +11 -62
  927. package/utils/rootInstance.js +3 -14
  928. package/utils/rootInstance.mjs +3 -3
  929. package/utils/samplesGenerator.js +25 -51
  930. package/utils/samplesGenerator.mjs +25 -42
  931. package/utils/staticRegister.js +6 -33
  932. package/utils/staticRegister.mjs +6 -19
  933. package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
  934. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
  935. package/validators/autocompleteValidator/index.js +0 -2
  936. package/validators/dateValidator/dateValidator.js +2 -21
  937. package/validators/dateValidator/dateValidator.mjs +2 -11
  938. package/validators/dateValidator/index.js +0 -2
  939. package/validators/index.js +0 -11
  940. package/validators/index.mjs +0 -1
  941. package/validators/numericValidator/index.js +0 -2
  942. package/validators/numericValidator/numericValidator.js +1 -7
  943. package/validators/numericValidator/numericValidator.mjs +1 -3
  944. package/validators/registry.js +7 -16
  945. package/validators/registry.mjs +7 -14
  946. package/validators/timeValidator/index.js +0 -2
  947. package/validators/timeValidator/timeValidator.js +6 -18
  948. package/validators/timeValidator/timeValidator.mjs +8 -13
package/tableView.mjs CHANGED
@@ -1,29 +1,27 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1
2
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
-
3
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
-
5
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
6
-
4
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
7
5
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
-
9
6
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
10
-
11
7
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
-
13
8
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
-
15
9
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
16
-
17
10
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18
-
19
11
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
20
-
21
12
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
-
23
- 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); } }
24
-
13
+ 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); } }
25
14
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
26
-
15
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
16
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
17
+ 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; }
18
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
19
+ 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); }
20
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
21
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
22
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
23
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
24
+ 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; } }
27
25
  import "core-js/modules/es.array.iterator.js";
28
26
  import "core-js/modules/es.object.to-string.js";
29
27
  import "core-js/modules/es.string.iterator.js";
@@ -31,6 +29,8 @@ import "core-js/modules/es.weak-map.js";
31
29
  import "core-js/modules/web.dom-collections.iterator.js";
32
30
  import "core-js/modules/es.number.is-integer.js";
33
31
  import "core-js/modules/es.number.constructor.js";
32
+ import "core-js/modules/es.symbol.to-primitive.js";
33
+ import "core-js/modules/es.date.to-primitive.js";
34
34
  import "core-js/modules/es.symbol.js";
35
35
  import "core-js/modules/es.symbol.description.js";
36
36
  import "core-js/modules/es.symbol.iterator.js";
@@ -45,83 +45,110 @@ import Walkontable from "./3rdparty/walkontable/src/index.mjs";
45
45
  import { handleMouseEvent } from "./selection/mouseEventHandler.mjs";
46
46
  import { isRootInstance } from "./utils/rootInstance.mjs";
47
47
  var privatePool = new WeakMap();
48
+
48
49
  /**
49
50
  * @class TableView
50
51
  * @private
51
52
  */
52
-
53
+ var _columnHeadersCount = /*#__PURE__*/new WeakMap();
54
+ var _rowHeadersCount = /*#__PURE__*/new WeakMap();
53
55
  var TableView = /*#__PURE__*/function () {
54
56
  /**
55
- * @param {Hanstontable} instance Instance of {@link Handsontable}.
57
+ * Instance of {@link Handsontable}.
58
+ *
59
+ * @private
60
+ * @type {Handsontable}
56
61
  */
57
- function TableView(instance) {
58
- _classCallCheck(this, TableView);
59
62
 
60
- /**
61
- * Instance of {@link Handsontable}.
62
- *
63
- * @private
64
- * @type {Handsontable}
65
- */
66
- this.instance = instance;
67
- /**
68
- * Instance of {@link EventManager}.
69
- *
70
- * @private
71
- * @type {EventManager}
72
- */
63
+ /**
64
+ * Instance of {@link EventManager}.
65
+ *
66
+ * @private
67
+ * @type {EventManager}
68
+ */
73
69
 
74
- this.eventManager = new EventManager(instance);
75
- /**
76
- * Current Handsontable's GridSettings object.
77
- *
78
- * @private
79
- * @type {GridSettings}
80
- */
70
+ /**
71
+ * Current Handsontable's GridSettings object.
72
+ *
73
+ * @private
74
+ * @type {GridSettings}
75
+ */
81
76
 
82
- this.settings = instance.getSettings();
83
- /**
84
- * Main <THEAD> element.
85
- *
86
- * @private
87
- * @type {HTMLTableSectionElement}
88
- */
77
+ /**
78
+ * Main <THEAD> element.
79
+ *
80
+ * @private
81
+ * @type {HTMLTableSectionElement}
82
+ */
89
83
 
90
- this.THEAD = void 0;
91
- /**
92
- * Main <TBODY> element.
93
- *
94
- * @private
95
- * @type {HTMLTableSectionElement}
96
- */
84
+ /**
85
+ * Main <TBODY> element.
86
+ *
87
+ * @private
88
+ * @type {HTMLTableSectionElement}
89
+ */
97
90
 
98
- this.TBODY = void 0;
99
- /**
100
- * Main Walkontable instance.
101
- *
102
- * @private
103
- * @type {Walkontable}
104
- */
91
+ /**
92
+ * Main Walkontable instance.
93
+ *
94
+ * @private
95
+ * @type {Walkontable}
96
+ */
105
97
 
106
- this._wt = void 0;
107
- /**
108
- * Main Walkontable instance.
109
- *
110
- * @private
111
- * @type {Walkontable}
112
- */
98
+ /**
99
+ * Main Walkontable instance.
100
+ *
101
+ * @private
102
+ * @type {Walkontable}
103
+ */
113
104
 
114
- this.activeWt = void 0;
115
- /**
116
- * The flag determines if the `adjustElementsSize` method call was made during
117
- * the render suspending. If true, the method has to be triggered once after render
118
- * resuming.
119
- *
120
- * @private
121
- * @type {boolean}
122
- */
105
+ /**
106
+ * The total number of the column header renderers applied to the table through the
107
+ * `afterGetColumnHeaderRenderers` hook.
108
+ *
109
+ * @type {number}
110
+ */
111
+
112
+ /**
113
+ * The total number of the row header renderers applied to the table through the
114
+ * `afterGetRowHeaderRenderers` hook.
115
+ *
116
+ * @type {number}
117
+ */
123
118
 
124
- this.postponedAdjustElementsSize = false;
119
+ /**
120
+ * The flag determines if the `adjustElementsSize` method call was made during
121
+ * the render suspending. If true, the method has to be triggered once after render
122
+ * resuming.
123
+ *
124
+ * @private
125
+ * @type {boolean}
126
+ */
127
+
128
+ /**
129
+ * @param {Hanstontable} instance Instance of {@link Handsontable}.
130
+ */
131
+ function TableView(instance) {
132
+ _classCallCheck(this, TableView);
133
+ _defineProperty(this, "instance", void 0);
134
+ _defineProperty(this, "eventManager", void 0);
135
+ _defineProperty(this, "settings", void 0);
136
+ _defineProperty(this, "THEAD", void 0);
137
+ _defineProperty(this, "TBODY", void 0);
138
+ _defineProperty(this, "_wt", void 0);
139
+ _defineProperty(this, "activeWt", void 0);
140
+ _classPrivateFieldInitSpec(this, _columnHeadersCount, {
141
+ writable: true,
142
+ value: 0
143
+ });
144
+ _classPrivateFieldInitSpec(this, _rowHeadersCount, {
145
+ writable: true,
146
+ value: 0
147
+ });
148
+ _defineProperty(this, "postponedAdjustElementsSize", false);
149
+ this.instance = instance;
150
+ this.eventManager = new EventManager(this.instance);
151
+ this.settings = this.instance.getSettings();
125
152
  privatePool.set(this, {
126
153
  /**
127
154
  * Defines if the text should be selected during mousemove.
@@ -130,13 +157,11 @@ var TableView = /*#__PURE__*/function () {
130
157
  * @type {boolean}
131
158
  */
132
159
  selectionMouseDown: false,
133
-
134
160
  /**
135
161
  * @private
136
162
  * @type {boolean}
137
163
  */
138
164
  mouseDown: void 0,
139
-
140
165
  /**
141
166
  * Main <TABLE> element.
142
167
  *
@@ -144,14 +169,12 @@ var TableView = /*#__PURE__*/function () {
144
169
  * @type {HTMLTableElement}
145
170
  */
146
171
  table: void 0,
147
-
148
172
  /**
149
173
  * Cached width of the rootElement.
150
174
  *
151
175
  * @type {number}
152
176
  */
153
177
  lastWidth: 0,
154
-
155
178
  /**
156
179
  * Cached height of the rootElement.
157
180
  *
@@ -163,46 +186,42 @@ var TableView = /*#__PURE__*/function () {
163
186
  this.registerEvents();
164
187
  this.initializeWalkontable();
165
188
  }
189
+
166
190
  /**
167
191
  * Renders WalkontableUI.
168
192
  */
169
-
170
-
171
193
  _createClass(TableView, [{
172
194
  key: "render",
173
195
  value: function render() {
174
196
  if (!this.instance.isRenderSuspended()) {
175
197
  this.instance.runHooks('beforeRender', this.instance.forceFullRender);
176
-
177
198
  if (this.postponedAdjustElementsSize) {
178
199
  this.postponedAdjustElementsSize = false;
179
200
  this.adjustElementsSize(true);
180
201
  }
181
-
182
202
  this._wt.draw(!this.instance.forceFullRender);
183
-
184
203
  this.instance.runHooks('afterRender', this.instance.forceFullRender);
185
204
  this.instance.forceFullRender = false;
186
205
  this.instance.renderCall = false;
187
206
  }
188
207
  }
208
+
189
209
  /**
190
210
  * Adjust overlays elements size and master table size.
191
211
  *
192
212
  * @param {boolean} [force=false] When `true`, it adjust the DOM nodes sizes for all overlays.
193
213
  */
194
-
195
214
  }, {
196
215
  key: "adjustElementsSize",
197
216
  value: function adjustElementsSize() {
198
217
  var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
199
-
200
218
  if (this.instance.isRenderSuspended()) {
201
219
  this.postponedAdjustElementsSize = true;
202
220
  } else {
203
221
  this._wt.wtOverlays.adjustElementsSize(force);
204
222
  }
205
223
  }
224
+
206
225
  /**
207
226
  * Returns td object given coordinates.
208
227
  *
@@ -210,19 +229,17 @@ var TableView = /*#__PURE__*/function () {
210
229
  * @param {boolean} topmost Indicates whether the cell should be calculated from the topmost.
211
230
  * @returns {HTMLTableCellElement|null}
212
231
  */
213
-
214
232
  }, {
215
233
  key: "getCellAtCoords",
216
234
  value: function getCellAtCoords(coords, topmost) {
217
235
  var td = this._wt.getCell(coords, topmost);
218
-
219
236
  if (td < 0) {
220
237
  // there was an exit code (cell is out of bounds)
221
238
  return null;
222
239
  }
223
-
224
240
  return td;
225
241
  }
242
+
226
243
  /**
227
244
  * Scroll viewport to a cell.
228
245
  *
@@ -233,12 +250,12 @@ var TableView = /*#__PURE__*/function () {
233
250
  * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left side of the table.
234
251
  * @returns {boolean}
235
252
  */
236
-
237
253
  }, {
238
254
  key: "scrollViewport",
239
255
  value: function scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
240
256
  return this._wt.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
241
257
  }
258
+
242
259
  /**
243
260
  * Scroll viewport to a column.
244
261
  *
@@ -247,12 +264,12 @@ var TableView = /*#__PURE__*/function () {
247
264
  * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left side of the table.
248
265
  * @returns {boolean}
249
266
  */
250
-
251
267
  }, {
252
268
  key: "scrollViewportHorizontally",
253
269
  value: function scrollViewportHorizontally(column, snapToRight, snapToLeft) {
254
270
  return this._wt.scrollViewportHorizontally(column, snapToRight, snapToLeft);
255
271
  }
272
+
256
273
  /**
257
274
  * Scroll viewport to a row.
258
275
  *
@@ -261,27 +278,25 @@ var TableView = /*#__PURE__*/function () {
261
278
  * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom side of the table.
262
279
  * @returns {boolean}
263
280
  */
264
-
265
281
  }, {
266
282
  key: "scrollViewportVertically",
267
283
  value: function scrollViewportVertically(row, snapToTop, snapToBottom) {
268
284
  return this._wt.scrollViewportVertically(row, snapToTop, snapToBottom);
269
285
  }
286
+
270
287
  /**
271
288
  * Prepares DOMElements and adds correct className to the root element.
272
289
  *
273
290
  * @private
274
291
  */
275
-
276
292
  }, {
277
293
  key: "createElements",
278
294
  value: function createElements() {
279
295
  var priv = privatePool.get(this);
280
296
  var _this$instance = this.instance,
281
- rootElement = _this$instance.rootElement,
282
- rootDocument = _this$instance.rootDocument;
297
+ rootElement = _this$instance.rootElement,
298
+ rootDocument = _this$instance.rootDocument;
283
299
  var originalStyle = rootElement.getAttribute('style');
284
-
285
300
  if (originalStyle) {
286
301
  rootElement.setAttribute('data-originalstyle', originalStyle); // needed to retrieve original style in jsFiddle link generator in HT examples. may be removed in future versions
287
302
  }
@@ -289,11 +304,9 @@ var TableView = /*#__PURE__*/function () {
289
304
  addClass(rootElement, 'handsontable');
290
305
  priv.table = rootDocument.createElement('TABLE');
291
306
  addClass(priv.table, 'htCore');
292
-
293
307
  if (this.instance.getSettings().tableClassName) {
294
308
  addClass(priv.table, this.instance.getSettings().tableClassName);
295
309
  }
296
-
297
310
  this.THEAD = rootDocument.createElement('THEAD');
298
311
  priv.table.appendChild(this.THEAD);
299
312
  this.TBODY = rootDocument.createElement('TBODY');
@@ -301,26 +314,24 @@ var TableView = /*#__PURE__*/function () {
301
314
  this.instance.table = priv.table;
302
315
  this.instance.container.insertBefore(priv.table, this.instance.container.firstChild);
303
316
  }
317
+
304
318
  /**
305
319
  * Attaches necessary listeners.
306
320
  *
307
321
  * @private
308
322
  */
309
-
310
323
  }, {
311
324
  key: "registerEvents",
312
325
  value: function registerEvents() {
313
326
  var _this = this;
314
-
315
327
  var priv = privatePool.get(this);
316
328
  var _this$instance2 = this.instance,
317
- rootElement = _this$instance2.rootElement,
318
- rootDocument = _this$instance2.rootDocument,
319
- selection = _this$instance2.selection;
329
+ rootElement = _this$instance2.rootElement,
330
+ rootDocument = _this$instance2.rootDocument,
331
+ selection = _this$instance2.selection;
320
332
  var documentElement = rootDocument.documentElement;
321
333
  this.eventManager.addEventListener(rootElement, 'mousedown', function (event) {
322
334
  priv.selectionMouseDown = true;
323
-
324
335
  if (!_this.isTextSelectionAllowed(event.target)) {
325
336
  var rootWindow = _this.instance.rootWindow;
326
337
  clearTextSelection(rootWindow);
@@ -328,6 +339,7 @@ var TableView = /*#__PURE__*/function () {
328
339
  rootWindow.focus(); // make sure that window that contains HOT is active. Important when HOT is in iframe.
329
340
  }
330
341
  });
342
+
331
343
  this.eventManager.addEventListener(rootElement, 'mouseup', function () {
332
344
  priv.selectionMouseDown = false;
333
345
  });
@@ -337,7 +349,6 @@ var TableView = /*#__PURE__*/function () {
337
349
  if (_this.settings.fragmentSelection) {
338
350
  clearTextSelection(_this.instance.rootWindow);
339
351
  }
340
-
341
352
  event.preventDefault();
342
353
  }
343
354
  });
@@ -352,9 +363,7 @@ var TableView = /*#__PURE__*/function () {
352
363
  // is left mouse button
353
364
  selection.finish();
354
365
  }
355
-
356
366
  priv.mouseDown = false;
357
-
358
367
  if (isOutsideInput(rootDocument.activeElement) || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !isRightClick(event)) {
359
368
  _this.instance.unlisten();
360
369
  }
@@ -369,7 +378,6 @@ var TableView = /*#__PURE__*/function () {
369
378
  if (selection.isInProgress()) {
370
379
  selection.finish();
371
380
  }
372
-
373
381
  priv.mouseDown = false;
374
382
  });
375
383
  this.eventManager.addEventListener(documentElement, 'mousedown', function (event) {
@@ -377,17 +385,14 @@ var TableView = /*#__PURE__*/function () {
377
385
  var eventX = event.x || event.clientX;
378
386
  var eventY = event.y || event.clientY;
379
387
  var next = event.target;
380
-
381
388
  if (priv.mouseDown || !rootElement || !_this.instance.view) {
382
389
  return; // it must have been started in a cell
383
- } // immediate click on "holder" means click on the right side of vertical scrollbar
384
-
390
+ }
385
391
 
392
+ // immediate click on "holder" means click on the right side of vertical scrollbar
386
393
  var holder = _this.instance.view._wt.wtTable.holder;
387
-
388
394
  if (next === holder) {
389
395
  var scrollbarWidth = getScrollbarWidth(rootDocument);
390
-
391
396
  if (rootDocument.elementFromPoint(eventX + scrollbarWidth, eventY) !== holder || rootDocument.elementFromPoint(eventX, eventY + scrollbarWidth) !== holder) {
392
397
  return;
393
398
  }
@@ -396,24 +401,21 @@ var TableView = /*#__PURE__*/function () {
396
401
  if (next === null) {
397
402
  if (event.isTargetWebComponent) {
398
403
  break;
399
- } // click on something that was a row but now is detached (possibly because your click triggered a rerender)
400
-
404
+ }
401
405
 
406
+ // click on something that was a row but now is detached (possibly because your click triggered a rerender)
402
407
  return;
403
408
  }
404
-
405
409
  if (next === rootElement) {
406
410
  // click inside container
407
411
  return;
408
412
  }
409
-
410
413
  next = next.parentNode;
411
414
  }
412
- } // function did not return until here, we have an outside click!
413
-
415
+ }
414
416
 
417
+ // function did not return until here, we have an outside click!
415
418
  var outsideClickDeselects = typeof _this.settings.outsideClickDeselects === 'function' ? _this.settings.outsideClickDeselects(originalTarget) : _this.settings.outsideClickDeselects;
416
-
417
419
  if (outsideClickDeselects) {
418
420
  _this.instance.deselectCell();
419
421
  } else {
@@ -423,30 +425,29 @@ var TableView = /*#__PURE__*/function () {
423
425
  this.eventManager.addEventListener(priv.table, 'selectstart', function (event) {
424
426
  if (_this.settings.fragmentSelection || isInput(event.target)) {
425
427
  return;
426
- } // https://github.com/handsontable/handsontable/issues/160
428
+ }
429
+ // https://github.com/handsontable/handsontable/issues/160
427
430
  // Prevent text from being selected when performing drag down.
428
-
429
-
430
431
  event.preventDefault();
431
432
  });
432
433
  }
434
+
433
435
  /**
434
436
  * Translate renderable cell coordinates to visual coordinates.
435
437
  *
436
438
  * @param {CellCoords} coords The cell coordinates.
437
439
  * @returns {CellCoords}
438
440
  */
439
-
440
441
  }, {
441
442
  key: "translateFromRenderableToVisualCoords",
442
443
  value: function translateFromRenderableToVisualCoords(_ref) {
443
444
  var _this$instance3;
444
-
445
445
  var row = _ref.row,
446
- col = _ref.col;
446
+ col = _ref.col;
447
447
  // TODO: To consider an idea to reusing the CellCoords instance instead creating new one.
448
448
  return (_this$instance3 = this.instance)._createCellCoords.apply(_this$instance3, _toConsumableArray(this.translateFromRenderableToVisualIndex(row, col)));
449
449
  }
450
+
450
451
  /**
451
452
  * Translate renderable row and column indexes to visual row and column indexes.
452
453
  *
@@ -454,7 +455,6 @@ var TableView = /*#__PURE__*/function () {
454
455
  * @param {number} renderableColumn Renderable columnIndex.
455
456
  * @returns {number[]}
456
457
  */
457
-
458
458
  }, {
459
459
  key: "translateFromRenderableToVisualIndex",
460
460
  value: function translateFromRenderableToVisualIndex(renderableRow, renderableColumn) {
@@ -462,17 +462,15 @@ var TableView = /*#__PURE__*/function () {
462
462
  // We perform translation for indexes (without headers).
463
463
  var visualRow = renderableRow >= 0 ? this.instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow;
464
464
  var visualColumn = renderableColumn >= 0 ? this.instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn;
465
-
466
465
  if (visualRow === null) {
467
466
  visualRow = renderableRow;
468
467
  }
469
-
470
468
  if (visualColumn === null) {
471
469
  visualColumn = renderableColumn;
472
470
  }
473
-
474
471
  return [visualRow, visualColumn];
475
472
  }
473
+
476
474
  /**
477
475
  * Returns the number of renderable indexes.
478
476
  *
@@ -482,42 +480,42 @@ var TableView = /*#__PURE__*/function () {
482
480
  *
483
481
  * @returns {number|*}
484
482
  */
485
-
486
483
  }, {
487
484
  key: "countRenderableIndexes",
488
485
  value: function countRenderableIndexes(indexMapper, maxElements) {
489
- var consideredElements = Math.min(indexMapper.getNotTrimmedIndexesLength(), maxElements); // Don't take hidden indexes into account. We are looking just for renderable indexes.
490
-
491
- var firstNotHiddenIndex = indexMapper.getNearestNotHiddenIndex(consideredElements - 1, -1); // There are no renderable indexes.
486
+ var consideredElements = Math.min(indexMapper.getNotTrimmedIndexesLength(), maxElements);
487
+ // Don't take hidden indexes into account. We are looking just for renderable indexes.
488
+ var firstNotHiddenIndex = indexMapper.getNearestNotHiddenIndex(consideredElements - 1, -1);
492
489
 
490
+ // There are no renderable indexes.
493
491
  if (firstNotHiddenIndex === null) {
494
492
  return 0;
495
493
  }
496
-
497
494
  return indexMapper.getRenderableFromVisualIndex(firstNotHiddenIndex) + 1;
498
495
  }
496
+
499
497
  /**
500
498
  * Returns the number of renderable columns.
501
499
  *
502
500
  * @returns {number}
503
501
  */
504
-
505
502
  }, {
506
503
  key: "countRenderableColumns",
507
504
  value: function countRenderableColumns() {
508
505
  return this.countRenderableIndexes(this.instance.columnIndexMapper, this.settings.maxCols);
509
506
  }
507
+
510
508
  /**
511
509
  * Returns the number of renderable rows.
512
510
  *
513
511
  * @returns {number}
514
512
  */
515
-
516
513
  }, {
517
514
  key: "countRenderableRows",
518
515
  value: function countRenderableRows() {
519
516
  return this.countRenderableIndexes(this.instance.rowIndexMapper, this.settings.maxRows);
520
517
  }
518
+
521
519
  /**
522
520
  * Returns number of not hidden row indexes counting from the passed starting index.
523
521
  * The counting direction can be controlled by `incrementBy` argument.
@@ -526,12 +524,12 @@ var TableView = /*#__PURE__*/function () {
526
524
  * @param {number} incrementBy If `-1` then counting is backwards or forward when `1`.
527
525
  * @returns {number}
528
526
  */
529
-
530
527
  }, {
531
528
  key: "countNotHiddenRowIndexes",
532
529
  value: function countNotHiddenRowIndexes(visualIndex, incrementBy) {
533
530
  return this.countNotHiddenIndexes(visualIndex, incrementBy, this.instance.rowIndexMapper, this.countRenderableRows());
534
531
  }
532
+
535
533
  /**
536
534
  * Returns number of not hidden column indexes counting from the passed starting index.
537
535
  * The counting direction can be controlled by `incrementBy` argument.
@@ -540,12 +538,12 @@ var TableView = /*#__PURE__*/function () {
540
538
  * @param {number} incrementBy If `-1` then counting is backwards or forward when `1`.
541
539
  * @returns {number}
542
540
  */
543
-
544
541
  }, {
545
542
  key: "countNotHiddenColumnIndexes",
546
543
  value: function countNotHiddenColumnIndexes(visualIndex, incrementBy) {
547
544
  return this.countNotHiddenIndexes(visualIndex, incrementBy, this.instance.columnIndexMapper, this.countRenderableColumns());
548
545
  }
546
+
549
547
  /**
550
548
  * Returns number of not hidden indexes counting from the passed starting index.
551
549
  * The counting direction can be controlled by `incrementBy` argument.
@@ -556,39 +554,33 @@ var TableView = /*#__PURE__*/function () {
556
554
  * @param {number} renderableIndexesCount Total count of renderable indexes for specific axis.
557
555
  * @returns {number}
558
556
  */
559
-
560
557
  }, {
561
558
  key: "countNotHiddenIndexes",
562
559
  value: function countNotHiddenIndexes(visualIndex, incrementBy, indexMapper, renderableIndexesCount) {
563
560
  if (isNaN(visualIndex) || visualIndex < 0) {
564
561
  return 0;
565
562
  }
566
-
567
563
  var firstVisibleIndex = indexMapper.getNearestNotHiddenIndex(visualIndex, incrementBy);
568
564
  var renderableIndex = indexMapper.getRenderableFromVisualIndex(firstVisibleIndex);
569
-
570
565
  if (!Number.isInteger(renderableIndex)) {
571
566
  return 0;
572
567
  }
573
-
574
568
  var notHiddenIndexes = 0;
575
-
576
569
  if (incrementBy < 0) {
577
570
  // Zero-based numbering for renderable indexes corresponds to a number of not hidden indexes.
578
571
  notHiddenIndexes = renderableIndex + 1;
579
572
  } else if (incrementBy > 0) {
580
573
  notHiddenIndexes = renderableIndexesCount - renderableIndex;
581
574
  }
582
-
583
575
  return notHiddenIndexes;
584
576
  }
577
+
585
578
  /**
586
579
  * The function returns the number of not hidden column indexes that fit between the first and
587
580
  * last fixed column in the left (or right in RTL mode) overlay.
588
581
  *
589
582
  * @returns {number}
590
583
  */
591
-
592
584
  }, {
593
585
  key: "countNotHiddenFixedColumnsStart",
594
586
  value: function countNotHiddenFixedColumnsStart() {
@@ -596,13 +588,13 @@ var TableView = /*#__PURE__*/function () {
596
588
  var visualFixedColumnsStart = Math.min(parseInt(this.settings.fixedColumnsStart, 10), countCols) - 1;
597
589
  return this.countNotHiddenColumnIndexes(visualFixedColumnsStart, -1);
598
590
  }
591
+
599
592
  /**
600
593
  * The function returns the number of not hidden row indexes that fit between the first and
601
594
  * last fixed row in the top overlay.
602
595
  *
603
596
  * @returns {number}
604
597
  */
605
-
606
598
  }, {
607
599
  key: "countNotHiddenFixedRowsTop",
608
600
  value: function countNotHiddenFixedRowsTop() {
@@ -610,13 +602,13 @@ var TableView = /*#__PURE__*/function () {
610
602
  var visualFixedRowsTop = Math.min(parseInt(this.settings.fixedRowsTop, 10), countRows) - 1;
611
603
  return this.countNotHiddenRowIndexes(visualFixedRowsTop, -1);
612
604
  }
605
+
613
606
  /**
614
607
  * The function returns the number of not hidden row indexes that fit between the first and
615
608
  * last fixed row in the bottom overlay.
616
609
  *
617
610
  * @returns {number}
618
611
  */
619
-
620
612
  }, {
621
613
  key: "countNotHiddenFixedRowsBottom",
622
614
  value: function countNotHiddenFixedRowsBottom() {
@@ -624,13 +616,13 @@ var TableView = /*#__PURE__*/function () {
624
616
  var visualFixedRowsBottom = Math.max(countRows - parseInt(this.settings.fixedRowsBottom, 10), 0);
625
617
  return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
626
618
  }
619
+
627
620
  /**
628
621
  * Checks if at least one cell than belongs to the main table is not covered by the top, left or
629
622
  * bottom overlay.
630
623
  *
631
624
  * @returns {boolean}
632
625
  */
633
-
634
626
  }, {
635
627
  key: "isMainTableNotFullyCoveredByOverlays",
636
628
  value: function isMainTableNotFullyCoveredByOverlays() {
@@ -638,17 +630,16 @@ var TableView = /*#__PURE__*/function () {
638
630
  var fixedAllColumns = this.countNotHiddenFixedColumnsStart();
639
631
  return this.instance.countRenderedRows() > fixedAllRows && this.instance.countRenderedCols() > fixedAllColumns;
640
632
  }
633
+
641
634
  /**
642
635
  * Defines default configuration and initializes WalkOnTable instance.
643
636
  *
644
637
  * @private
645
638
  */
646
-
647
639
  }, {
648
640
  key: "initializeWalkontable",
649
641
  value: function initializeWalkontable() {
650
642
  var _this2 = this;
651
-
652
643
  var priv = privatePool.get(this);
653
644
  var walkontableConfig = {
654
645
  rtlMode: this.instance.isRtl(),
@@ -668,7 +659,6 @@ var TableView = /*#__PURE__*/function () {
668
659
  },
669
660
  data: function data(renderableRow, renderableColumn) {
670
661
  var _this2$instance;
671
-
672
662
  return (_this2$instance = _this2.instance).getDataAtCell.apply(_this2$instance, _toConsumableArray(_this2.translateFromRenderableToVisualIndex(renderableRow, renderableColumn)));
673
663
  },
674
664
  totalRows: function totalRows() {
@@ -707,84 +697,67 @@ var TableView = /*#__PURE__*/function () {
707
697
  renderAllRows: this.settings.renderAllRows,
708
698
  rowHeaders: function rowHeaders() {
709
699
  var headerRenderers = [];
710
-
711
700
  if (_this2.instance.hasRowHeaders()) {
712
701
  headerRenderers.push(function (renderableRowIndex, TH) {
713
702
  // TODO: Some helper may be needed.
714
703
  // We perform translation for row indexes (without row headers).
715
704
  var visualRowIndex = renderableRowIndex >= 0 ? _this2.instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRowIndex) : renderableRowIndex;
716
-
717
705
  _this2.appendRowHeader(visualRowIndex, TH);
718
706
  });
719
707
  }
720
-
721
708
  _this2.instance.runHooks('afterGetRowHeaderRenderers', headerRenderers);
722
-
709
+ _classPrivateFieldSet(_this2, _rowHeadersCount, headerRenderers.length);
723
710
  return headerRenderers;
724
711
  },
725
712
  columnHeaders: function columnHeaders() {
726
713
  var headerRenderers = [];
727
-
728
714
  if (_this2.instance.hasColHeaders()) {
729
715
  headerRenderers.push(function (renderedColumnIndex, TH) {
730
716
  // TODO: Some helper may be needed.
731
717
  // We perform translation for columns indexes (without column headers).
732
718
  var visualColumnsIndex = renderedColumnIndex >= 0 ? _this2.instance.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex) : renderedColumnIndex;
733
-
734
719
  _this2.appendColHeader(visualColumnsIndex, TH);
735
720
  });
736
721
  }
737
-
738
722
  _this2.instance.runHooks('afterGetColumnHeaderRenderers', headerRenderers);
739
-
723
+ _classPrivateFieldSet(_this2, _columnHeadersCount, headerRenderers.length);
740
724
  return headerRenderers;
741
725
  },
742
726
  columnWidth: function columnWidth(renderedColumnIndex) {
743
- var visualIndex = _this2.instance.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex); // It's not a bug that we can't find visual index for some handled by method indexes. The function is called also
727
+ var visualIndex = _this2.instance.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);
728
+
729
+ // It's not a bug that we can't find visual index for some handled by method indexes. The function is called also
744
730
  // for indexes that are not displayed (indexes that are beyond the grid's boundaries), i.e. when `fixedColumnsStart` > `startCols` (wrong config?) or
745
731
  // scrolling and dataset is empty (scroll should handle that?).
746
-
747
-
748
732
  return _this2.instance.getColWidth(visualIndex === null ? renderedColumnIndex : visualIndex);
749
733
  },
750
734
  rowHeight: function rowHeight(renderedRowIndex) {
751
735
  var visualIndex = _this2.instance.rowIndexMapper.getVisualFromRenderableIndex(renderedRowIndex);
752
-
753
736
  return _this2.instance.getRowHeight(visualIndex === null ? renderedRowIndex : visualIndex);
754
737
  },
755
738
  cellRenderer: function cellRenderer(renderedRowIndex, renderedColumnIndex, TD) {
756
739
  var _this2$translateFromR = _this2.translateFromRenderableToVisualIndex(renderedRowIndex, renderedColumnIndex),
757
- _this2$translateFromR2 = _slicedToArray(_this2$translateFromR, 2),
758
- visualRowIndex = _this2$translateFromR2[0],
759
- visualColumnIndex = _this2$translateFromR2[1]; // Coords may be modified. For example, by the `MergeCells` plugin. It should affect cell value and cell meta.
760
-
740
+ _this2$translateFromR2 = _slicedToArray(_this2$translateFromR, 2),
741
+ visualRowIndex = _this2$translateFromR2[0],
742
+ visualColumnIndex = _this2$translateFromR2[1];
761
743
 
744
+ // Coords may be modified. For example, by the `MergeCells` plugin. It should affect cell value and cell meta.
762
745
  var modifiedCellCoords = _this2.instance.runHooks('modifyGetCellCoords', visualRowIndex, visualColumnIndex);
763
-
764
746
  var visualRowToCheck = visualRowIndex;
765
747
  var visualColumnToCheck = visualColumnIndex;
766
-
767
748
  if (Array.isArray(modifiedCellCoords)) {
768
749
  var _modifiedCellCoords = _slicedToArray(modifiedCellCoords, 2);
769
-
770
750
  visualRowToCheck = _modifiedCellCoords[0];
771
751
  visualColumnToCheck = _modifiedCellCoords[1];
772
752
  }
773
-
774
753
  var cellProperties = _this2.instance.getCellMeta(visualRowToCheck, visualColumnToCheck);
775
-
776
754
  var prop = _this2.instance.colToProp(visualColumnToCheck);
777
-
778
755
  var value = _this2.instance.getDataAtRowProp(visualRowToCheck, prop);
779
-
780
756
  if (_this2.instance.hasHook('beforeValueRender')) {
781
757
  value = _this2.instance.runHooks('beforeValueRender', value, cellProperties);
782
758
  }
783
-
784
759
  _this2.instance.runHooks('beforeRenderer', TD, visualRowIndex, visualColumnIndex, prop, value, cellProperties);
785
-
786
760
  _this2.instance.getCellRenderer(cellProperties)(_this2.instance, TD, visualRowIndex, visualColumnIndex, prop, value, cellProperties);
787
-
788
761
  _this2.instance.runHooks('afterRenderer', TD, visualRowIndex, visualColumnIndex, prop, value, cellProperties);
789
762
  },
790
763
  selections: this.instance.selection.highlight,
@@ -792,32 +765,29 @@ var TableView = /*#__PURE__*/function () {
792
765
  return _this2.settings.fragmentSelection;
793
766
  },
794
767
  onWindowResize: function onWindowResize() {
795
- if (!_this2.instance || _this2.instance.isDestroyed) {
796
- return;
768
+ if (_this2.instance && !_this2.instance.isDestroyed) {
769
+ _this2.instance.refreshDimensions();
770
+ }
771
+ },
772
+ onContainerElementResize: function onContainerElementResize() {
773
+ if (_this2.instance && !_this2.instance.isDestroyed) {
774
+ _this2.instance.refreshDimensions();
797
775
  }
798
-
799
- _this2.instance.refreshDimensions();
800
776
  },
801
777
  onCellMouseDown: function onCellMouseDown(event, coords, TD, wt) {
802
778
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
803
-
804
779
  var controller = {
805
780
  row: false,
806
781
  column: false,
807
782
  cell: false
808
783
  };
809
-
810
784
  _this2.instance.listen();
811
-
812
785
  _this2.activeWt = wt;
813
786
  priv.mouseDown = true;
814
-
815
787
  _this2.instance.runHooks('beforeOnCellMouseDown', event, visualCoords, TD, controller);
816
-
817
788
  if (isImmediatePropagationStopped(event)) {
818
789
  return;
819
790
  }
820
-
821
791
  handleMouseEvent(event, {
822
792
  coords: visualCoords,
823
793
  selection: _this2.instance.selection,
@@ -826,62 +796,45 @@ var TableView = /*#__PURE__*/function () {
826
796
  return _this2.instance._createCellCoords(row, column);
827
797
  }
828
798
  });
829
-
830
799
  _this2.instance.runHooks('afterOnCellMouseDown', event, visualCoords, TD);
831
-
832
800
  _this2.activeWt = _this2._wt;
833
801
  },
834
802
  onCellContextMenu: function onCellContextMenu(event, coords, TD, wt) {
835
803
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
836
-
837
804
  _this2.activeWt = wt;
838
805
  priv.mouseDown = false;
839
-
840
806
  if (_this2.instance.selection.isInProgress()) {
841
807
  _this2.instance.selection.finish();
842
808
  }
843
-
844
809
  _this2.instance.runHooks('beforeOnCellContextMenu', event, visualCoords, TD);
845
-
846
810
  if (isImmediatePropagationStopped(event)) {
847
811
  return;
848
812
  }
849
-
850
813
  _this2.instance.runHooks('afterOnCellContextMenu', event, visualCoords, TD);
851
-
852
814
  _this2.activeWt = _this2._wt;
853
815
  },
854
816
  onCellMouseOut: function onCellMouseOut(event, coords, TD, wt) {
855
817
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
856
-
857
818
  _this2.activeWt = wt;
858
-
859
819
  _this2.instance.runHooks('beforeOnCellMouseOut', event, visualCoords, TD);
860
-
861
820
  if (isImmediatePropagationStopped(event)) {
862
821
  return;
863
822
  }
864
-
865
823
  _this2.instance.runHooks('afterOnCellMouseOut', event, visualCoords, TD);
866
-
867
824
  _this2.activeWt = _this2._wt;
868
825
  },
869
826
  onCellMouseOver: function onCellMouseOver(event, coords, TD, wt) {
870
827
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
871
-
872
828
  var controller = {
873
829
  row: false,
874
830
  column: false,
875
831
  cell: false
876
832
  };
877
833
  _this2.activeWt = wt;
878
-
879
834
  _this2.instance.runHooks('beforeOnCellMouseOver', event, visualCoords, TD, controller);
880
-
881
835
  if (isImmediatePropagationStopped(event)) {
882
836
  return;
883
837
  }
884
-
885
838
  if (priv.mouseDown) {
886
839
  handleMouseEvent(event, {
887
840
  coords: visualCoords,
@@ -892,38 +845,30 @@ var TableView = /*#__PURE__*/function () {
892
845
  }
893
846
  });
894
847
  }
895
-
896
848
  _this2.instance.runHooks('afterOnCellMouseOver', event, visualCoords, TD);
897
-
898
849
  _this2.activeWt = _this2._wt;
899
850
  },
900
851
  onCellMouseUp: function onCellMouseUp(event, coords, TD, wt) {
901
852
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
902
-
903
853
  _this2.activeWt = wt;
854
+ _this2.instance.runHooks('beforeOnCellMouseUp', event, visualCoords, TD);
904
855
 
905
- _this2.instance.runHooks('beforeOnCellMouseUp', event, visualCoords, TD); // TODO: The second condition check is a workaround. Callback corresponding the method `updateSettings`
856
+ // TODO: The second condition check is a workaround. Callback corresponding the method `updateSettings`
906
857
  // disable plugin and enable it again. Disabling plugin closes the menu. Thus, calling the
907
858
  // `updateSettings` in a body of any callback executed right after some context-menu action
908
859
  // breaks the table (#7231).
909
-
910
-
911
860
  if (isImmediatePropagationStopped(event) || _this2.instance.isDestroyed) {
912
861
  return;
913
862
  }
914
-
915
863
  _this2.instance.runHooks('afterOnCellMouseUp', event, visualCoords, TD);
916
-
917
864
  _this2.activeWt = _this2._wt;
918
865
  },
919
866
  onCellCornerMouseDown: function onCellCornerMouseDown(event) {
920
867
  event.preventDefault();
921
-
922
868
  _this2.instance.runHooks('afterOnCellCornerMouseDown', event);
923
869
  },
924
870
  onCellCornerDblClick: function onCellCornerDblClick(event) {
925
871
  event.preventDefault();
926
-
927
872
  _this2.instance.runHooks('afterOnCellCornerDblClick', event);
928
873
  },
929
874
  beforeDraw: function beforeDraw(force, skipRender) {
@@ -944,31 +889,23 @@ var TableView = /*#__PURE__*/function () {
944
889
  onBeforeHighlightingRowHeader: function onBeforeHighlightingRowHeader(renderableRow, headerLevel, highlightMeta) {
945
890
  var rowMapper = _this2.instance.rowIndexMapper;
946
891
  var visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
947
-
948
892
  var newVisualRow = _this2.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
949
-
950
893
  return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
951
894
  },
952
895
  onBeforeHighlightingColumnHeader: function onBeforeHighlightingColumnHeader(renderableColumn, headerLevel, highlightMeta) {
953
896
  var columnMapper = _this2.instance.columnIndexMapper;
954
897
  var visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
955
-
956
898
  var newVisualColumn = _this2.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
957
-
958
899
  return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
959
900
  },
960
901
  onAfterDrawSelection: function onAfterDrawSelection(currentRow, currentColumn, layerLevel) {
961
902
  var cornersOfSelection;
962
-
963
903
  var _this2$translateFromR3 = _this2.translateFromRenderableToVisualIndex(currentRow, currentColumn),
964
- _this2$translateFromR4 = _slicedToArray(_this2$translateFromR3, 2),
965
- visualRowIndex = _this2$translateFromR4[0],
966
- visualColumnIndex = _this2$translateFromR4[1];
967
-
904
+ _this2$translateFromR4 = _slicedToArray(_this2$translateFromR3, 2),
905
+ visualRowIndex = _this2$translateFromR4[0],
906
+ visualColumnIndex = _this2$translateFromR4[1];
968
907
  var selectedRange = _this2.instance.selection.getSelectedRange();
969
-
970
908
  var selectionRangeSize = selectedRange.size();
971
-
972
909
  if (selectionRangeSize > 0) {
973
910
  // Selection layers are stored from the "oldest" to the "newest". We should calculate the offset.
974
911
  // Please look at the `SelectedRange` class and it's method for getting selection's layer for more information.
@@ -976,16 +913,14 @@ var TableView = /*#__PURE__*/function () {
976
913
  var selectionForLayer = selectedRange.peekByIndex(selectionOffset);
977
914
  cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];
978
915
  }
979
-
980
916
  return _this2.instance.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);
981
917
  },
982
918
  onBeforeDrawBorders: function onBeforeDrawBorders(corners, borderClassName) {
983
919
  var _corners = _slicedToArray(corners, 4),
984
- startRenderableRow = _corners[0],
985
- startRenderableColumn = _corners[1],
986
- endRenderableRow = _corners[2],
987
- endRenderableColumn = _corners[3];
988
-
920
+ startRenderableRow = _corners[0],
921
+ startRenderableColumn = _corners[1],
922
+ endRenderableRow = _corners[2],
923
+ endRenderableColumn = _corners[3];
989
924
  var visualCorners = [_this2.instance.rowIndexMapper.getVisualFromRenderableIndex(startRenderableRow), _this2.instance.columnIndexMapper.getVisualFromRenderableIndex(startRenderableColumn), _this2.instance.rowIndexMapper.getVisualFromRenderableIndex(endRenderableRow), _this2.instance.columnIndexMapper.getVisualFromRenderableIndex(endRenderableColumn)];
990
925
  return _this2.instance.runHooks('beforeDrawBorders', visualCorners, borderClassName);
991
926
  },
@@ -997,7 +932,6 @@ var TableView = /*#__PURE__*/function () {
997
932
  },
998
933
  onBeforeStretchingColumnWidth: function onBeforeStretchingColumnWidth(stretchedWidth, renderedColumnIndex) {
999
934
  var visualColumnIndex = _this2.instance.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);
1000
-
1001
935
  return _this2.instance.runHooks('beforeStretchingColumnWidth', stretchedWidth, visualColumnIndex);
1002
936
  },
1003
937
  onModifyRowHeaderWidth: function onModifyRowHeaderWidth(rowHeaderWidth) {
@@ -1005,37 +939,32 @@ var TableView = /*#__PURE__*/function () {
1005
939
  },
1006
940
  onModifyGetCellCoords: function onModifyGetCellCoords(renderableRowIndex, renderableColumnIndex, topmost) {
1007
941
  var rowMapper = _this2.instance.rowIndexMapper;
1008
- var columnMapper = _this2.instance.columnIndexMapper; // Callback handle also headers. We shouldn't translate them.
942
+ var columnMapper = _this2.instance.columnIndexMapper;
1009
943
 
944
+ // Callback handle also headers. We shouldn't translate them.
1010
945
  var visualColumnIndex = renderableColumnIndex >= 0 ? columnMapper.getVisualFromRenderableIndex(renderableColumnIndex) : renderableColumnIndex;
1011
946
  var visualRowIndex = renderableRowIndex >= 0 ? rowMapper.getVisualFromRenderableIndex(renderableRowIndex) : renderableRowIndex;
1012
-
1013
947
  var visualIndexes = _this2.instance.runHooks('modifyGetCellCoords', visualRowIndex, visualColumnIndex, topmost);
1014
-
1015
948
  if (Array.isArray(visualIndexes)) {
1016
949
  var _visualIndexes = _slicedToArray(visualIndexes, 4),
1017
- visualRowFrom = _visualIndexes[0],
1018
- visualColumnFrom = _visualIndexes[1],
1019
- visualRowTo = _visualIndexes[2],
1020
- visualColumnTo = _visualIndexes[3]; // Result of the hook is handled by the Walkontable (renderable indexes).
1021
-
950
+ visualRowFrom = _visualIndexes[0],
951
+ visualColumnFrom = _visualIndexes[1],
952
+ visualRowTo = _visualIndexes[2],
953
+ visualColumnTo = _visualIndexes[3];
1022
954
 
955
+ // Result of the hook is handled by the Walkontable (renderable indexes).
1023
956
  return [visualRowFrom >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(visualRowFrom, 1)) : visualRowFrom, visualColumnFrom >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(visualColumnFrom, 1)) : visualColumnFrom, visualRowTo >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(visualRowTo, -1)) : visualRowTo, visualColumnTo >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(visualColumnTo, -1)) : visualColumnTo];
1024
957
  }
1025
958
  },
1026
959
  viewportRowCalculatorOverride: function viewportRowCalculatorOverride(calc) {
1027
960
  var viewportOffset = _this2.settings.viewportRowRenderingOffset;
1028
-
1029
961
  if (viewportOffset === 'auto' && _this2.settings.fixedRowsTop) {
1030
962
  viewportOffset = 10;
1031
963
  }
1032
-
1033
964
  if (viewportOffset > 0 || viewportOffset === 'auto') {
1034
965
  var renderableRows = _this2.countRenderableRows();
1035
-
1036
966
  var firstRenderedRow = calc.startRow;
1037
967
  var lastRenderedRow = calc.endRow;
1038
-
1039
968
  if (typeof viewportOffset === 'number') {
1040
969
  calc.startRow = Math.max(firstRenderedRow - viewportOffset, 0);
1041
970
  calc.endRow = Math.min(lastRenderedRow + viewportOffset, renderableRows - 1);
@@ -1045,34 +974,27 @@ var TableView = /*#__PURE__*/function () {
1045
974
  calc.endRow = Math.min(lastRenderedRow + offset, renderableRows - 1);
1046
975
  }
1047
976
  }
1048
-
1049
977
  _this2.instance.runHooks('afterViewportRowCalculatorOverride', calc);
1050
978
  },
1051
979
  viewportColumnCalculatorOverride: function viewportColumnCalculatorOverride(calc) {
1052
980
  var viewportOffset = _this2.settings.viewportColumnRenderingOffset;
1053
-
1054
981
  if (viewportOffset === 'auto' && _this2.settings.fixedColumnsStart) {
1055
982
  viewportOffset = 10;
1056
983
  }
1057
-
1058
984
  if (viewportOffset > 0 || viewportOffset === 'auto') {
1059
985
  var renderableColumns = _this2.countRenderableColumns();
1060
-
1061
986
  var firstRenderedColumn = calc.startColumn;
1062
987
  var lastRenderedColumn = calc.endColumn;
1063
-
1064
988
  if (typeof viewportOffset === 'number') {
1065
989
  calc.startColumn = Math.max(firstRenderedColumn - viewportOffset, 0);
1066
990
  calc.endColumn = Math.min(lastRenderedColumn + viewportOffset, renderableColumns - 1);
1067
991
  }
1068
-
1069
992
  if (viewportOffset === 'auto') {
1070
993
  var offset = Math.ceil(lastRenderedColumn / renderableColumns * 6);
1071
994
  calc.startColumn = Math.max(firstRenderedColumn - offset, 0);
1072
995
  calc.endColumn = Math.min(lastRenderedColumn + offset, renderableColumns - 1);
1073
996
  }
1074
997
  }
1075
-
1076
998
  _this2.instance.runHooks('afterViewportColumnCalculatorOverride', calc);
1077
999
  },
1078
1000
  rowHeaderWidth: function rowHeaderWidth() {
@@ -1080,19 +1002,17 @@ var TableView = /*#__PURE__*/function () {
1080
1002
  },
1081
1003
  columnHeaderHeight: function columnHeaderHeight() {
1082
1004
  var columnHeaderHeight = _this2.instance.runHooks('modifyColumnHeaderHeight');
1083
-
1084
1005
  return _this2.settings.columnHeaderHeight || columnHeaderHeight;
1085
1006
  }
1086
1007
  };
1087
1008
  this.instance.runHooks('beforeInitWalkontable', walkontableConfig);
1088
1009
  this._wt = new Walkontable(walkontableConfig);
1089
1010
  this.activeWt = this._wt;
1090
- var spreader = this._wt.wtTable.spreader; // We have to cache width and height after Walkontable initialization.
1091
-
1011
+ var spreader = this._wt.wtTable.spreader;
1012
+ // We have to cache width and height after Walkontable initialization.
1092
1013
  var _this$instance$rootEl = this.instance.rootElement.getBoundingClientRect(),
1093
- width = _this$instance$rootEl.width,
1094
- height = _this$instance$rootEl.height;
1095
-
1014
+ width = _this$instance$rootEl.width,
1015
+ height = _this$instance$rootEl.height;
1096
1016
  this.setLastSize(width, height);
1097
1017
  this.eventManager.addEventListener(spreader, 'mousedown', function (event) {
1098
1018
  // right mouse button exactly on spreader means right click on the right hand side of vertical scrollbar
@@ -1110,12 +1030,12 @@ var TableView = /*#__PURE__*/function () {
1110
1030
  if (_this2.settings.observeDOMVisibility) {
1111
1031
  if (_this2._wt.drawInterrupted) {
1112
1032
  _this2.instance.forceFullRender = true;
1113
-
1114
1033
  _this2.render();
1115
1034
  }
1116
1035
  }
1117
1036
  });
1118
1037
  }
1038
+
1119
1039
  /**
1120
1040
  * Checks if it's possible to create text selection in element.
1121
1041
  *
@@ -1123,69 +1043,63 @@ var TableView = /*#__PURE__*/function () {
1123
1043
  * @param {HTMLElement} el The element to check.
1124
1044
  * @returns {boolean}
1125
1045
  */
1126
-
1127
1046
  }, {
1128
1047
  key: "isTextSelectionAllowed",
1129
1048
  value: function isTextSelectionAllowed(el) {
1130
1049
  if (isInput(el)) {
1131
1050
  return true;
1132
1051
  }
1133
-
1134
1052
  var isChildOfTableBody = isChildOf(el, this.instance.view._wt.wtTable.spreader);
1135
-
1136
1053
  if (this.settings.fragmentSelection === true && isChildOfTableBody) {
1137
1054
  return true;
1138
1055
  }
1139
-
1140
1056
  if (this.settings.fragmentSelection === 'cell' && this.isSelectedOnlyCell() && isChildOfTableBody) {
1141
1057
  return true;
1142
1058
  }
1143
-
1144
1059
  if (!this.settings.fragmentSelection && this.isCellEdited() && this.isSelectedOnlyCell()) {
1145
1060
  return true;
1146
1061
  }
1147
-
1148
1062
  return false;
1149
1063
  }
1064
+
1150
1065
  /**
1151
1066
  * Checks if user's been called mousedown.
1152
1067
  *
1153
1068
  * @private
1154
1069
  * @returns {boolean}
1155
1070
  */
1156
-
1157
1071
  }, {
1158
1072
  key: "isMouseDown",
1159
1073
  value: function isMouseDown() {
1160
1074
  return privatePool.get(this).mouseDown;
1161
1075
  }
1076
+
1162
1077
  /**
1163
1078
  * Check if selected only one cell.
1164
1079
  *
1165
1080
  * @private
1166
1081
  * @returns {boolean}
1167
1082
  */
1168
-
1169
1083
  }, {
1170
1084
  key: "isSelectedOnlyCell",
1171
1085
  value: function isSelectedOnlyCell() {
1172
1086
  var _this$instance$getSel, _this$instance$getSel2;
1173
-
1174
1087
  return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingle()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
1175
1088
  }
1089
+
1176
1090
  /**
1177
1091
  * Checks if active cell is editing.
1178
1092
  *
1179
1093
  * @private
1180
1094
  * @returns {boolean}
1181
1095
  */
1182
-
1183
1096
  }, {
1184
1097
  key: "isCellEdited",
1185
1098
  value: function isCellEdited() {
1186
1099
  var activeEditor = this.instance.getActiveEditor();
1187
1100
  return activeEditor && activeEditor.isOpened();
1188
1101
  }
1102
+
1189
1103
  /**
1190
1104
  * `beforeDraw` callback.
1191
1105
  *
@@ -1195,7 +1109,6 @@ var TableView = /*#__PURE__*/function () {
1195
1109
  * @param {object} skipRender Object with `skipRender` property, if it is set to `true ` the next rendering
1196
1110
  * cycle will be skipped.
1197
1111
  */
1198
-
1199
1112
  }, {
1200
1113
  key: "beforeRender",
1201
1114
  value: function beforeRender(force, skipRender) {
@@ -1204,6 +1117,7 @@ var TableView = /*#__PURE__*/function () {
1204
1117
  this.instance.runHooks('beforeViewRender', this.instance.forceFullRender, skipRender);
1205
1118
  }
1206
1119
  }
1120
+
1207
1121
  /**
1208
1122
  * `afterRender` callback.
1209
1123
  *
@@ -1211,7 +1125,6 @@ var TableView = /*#__PURE__*/function () {
1211
1125
  * @param {boolean} force If `true` rendering was triggered by a change of settings or data or `false` if
1212
1126
  * rendering was triggered by scrolling or moving selection.
1213
1127
  */
1214
-
1215
1128
  }, {
1216
1129
  key: "afterRender",
1217
1130
  value: function afterRender(force) {
@@ -1220,6 +1133,7 @@ var TableView = /*#__PURE__*/function () {
1220
1133
  this.instance.runHooks('afterViewRender', this.instance.forceFullRender);
1221
1134
  }
1222
1135
  }
1136
+
1223
1137
  /**
1224
1138
  * Append row header to a TH element.
1225
1139
  *
@@ -1227,24 +1141,21 @@ var TableView = /*#__PURE__*/function () {
1227
1141
  * @param {number} visualRowIndex The visual row index.
1228
1142
  * @param {HTMLTableHeaderCellElement} TH The table header element.
1229
1143
  */
1230
-
1231
1144
  }, {
1232
1145
  key: "appendRowHeader",
1233
1146
  value: function appendRowHeader(visualRowIndex, TH) {
1234
1147
  if (TH.firstChild) {
1235
1148
  var container = TH.firstChild;
1236
-
1237
1149
  if (!hasClass(container, 'relative')) {
1238
1150
  empty(TH);
1239
1151
  this.appendRowHeader(visualRowIndex, TH);
1240
1152
  return;
1241
1153
  }
1242
-
1243
1154
  this.updateCellHeader(container.querySelector('.rowHeader'), visualRowIndex, this.instance.getRowHeader);
1244
1155
  } else {
1245
1156
  var _this$instance4 = this.instance,
1246
- rootDocument = _this$instance4.rootDocument,
1247
- getRowHeader = _this$instance4.getRowHeader;
1157
+ rootDocument = _this$instance4.rootDocument,
1158
+ getRowHeader = _this$instance4.getRowHeader;
1248
1159
  var div = rootDocument.createElement('div');
1249
1160
  var span = rootDocument.createElement('span');
1250
1161
  div.className = 'relative';
@@ -1253,28 +1164,31 @@ var TableView = /*#__PURE__*/function () {
1253
1164
  div.appendChild(span);
1254
1165
  TH.appendChild(div);
1255
1166
  }
1256
-
1257
1167
  this.instance.runHooks('afterGetRowHeader', visualRowIndex, TH);
1258
1168
  }
1169
+
1259
1170
  /**
1260
1171
  * Append column header to a TH element.
1261
1172
  *
1262
1173
  * @private
1263
1174
  * @param {number} visualColumnIndex Visual column index.
1264
- * @param {HTMLTableHeaderCellElement} TH The table header element.
1175
+ * @param {HTMLTableCellElement} TH The table header element.
1176
+ * @param {Function} [label] The function that returns the header label.
1177
+ * @param {number} [headerLevel=0] The index of header level counting from the top (positive
1178
+ * values counting from 0 to N).
1265
1179
  */
1266
-
1267
1180
  }, {
1268
1181
  key: "appendColHeader",
1269
1182
  value: function appendColHeader(visualColumnIndex, TH) {
1183
+ var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.instance.getColHeader;
1184
+ var headerLevel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
1270
1185
  if (TH.firstChild) {
1271
1186
  var container = TH.firstChild;
1272
-
1273
1187
  if (hasClass(container, 'relative')) {
1274
- this.updateCellHeader(container.querySelector('.colHeader'), visualColumnIndex, this.instance.getColHeader);
1188
+ this.updateCellHeader(container.querySelector('.colHeader'), visualColumnIndex, label, headerLevel);
1275
1189
  } else {
1276
1190
  empty(TH);
1277
- this.appendColHeader(visualColumnIndex, TH);
1191
+ this.appendColHeader(visualColumnIndex, TH, label, headerLevel);
1278
1192
  }
1279
1193
  } else {
1280
1194
  var rootDocument = this.instance.rootDocument;
@@ -1282,30 +1196,31 @@ var TableView = /*#__PURE__*/function () {
1282
1196
  var span = rootDocument.createElement('span');
1283
1197
  div.className = 'relative';
1284
1198
  span.className = 'colHeader';
1285
- this.updateCellHeader(span, visualColumnIndex, this.instance.getColHeader);
1199
+ this.updateCellHeader(span, visualColumnIndex, label, headerLevel);
1286
1200
  div.appendChild(span);
1287
1201
  TH.appendChild(div);
1288
1202
  }
1289
-
1290
- this.instance.runHooks('afterGetColHeader', visualColumnIndex, TH);
1203
+ this.instance.runHooks('afterGetColHeader', visualColumnIndex, TH, headerLevel);
1291
1204
  }
1205
+
1292
1206
  /**
1293
1207
  * Updates header cell content.
1294
1208
  *
1295
- * @since 0.15.0-beta4
1209
+ * @private
1296
1210
  * @param {HTMLElement} element Element to update.
1297
1211
  * @param {number} index Row index or column index.
1298
1212
  * @param {Function} content Function which should be returns content for this cell.
1213
+ * @param {number} [headerLevel=0] The index of header level counting from the top (positive
1214
+ * values counting from 0 to N).
1299
1215
  */
1300
-
1301
1216
  }, {
1302
1217
  key: "updateCellHeader",
1303
1218
  value: function updateCellHeader(element, index, content) {
1219
+ var headerLevel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
1304
1220
  var renderedIndex = index;
1221
+ var parentOverlay = this._wt.wtOverlays.getParentOverlay(element) || this._wt;
1305
1222
 
1306
- var parentOverlay = this._wt.wtOverlays.getParentOverlay(element) || this._wt; // prevent wrong calculations from SampleGenerator
1307
-
1308
-
1223
+ // prevent wrong calculations from SampleGenerator
1309
1224
  if (element.parentNode) {
1310
1225
  if (hasClass(element, 'colHeader')) {
1311
1226
  renderedIndex = parentOverlay.wtTable.columnFilter.sourceToRendered(index);
@@ -1313,15 +1228,15 @@ var TableView = /*#__PURE__*/function () {
1313
1228
  renderedIndex = parentOverlay.wtTable.rowFilter.sourceToRendered(index);
1314
1229
  }
1315
1230
  }
1316
-
1317
1231
  if (renderedIndex > -1) {
1318
- fastInnerHTML(element, content(index));
1232
+ fastInnerHTML(element, content(index, headerLevel));
1319
1233
  } else {
1320
1234
  // workaround for https://github.com/handsontable/handsontable/issues/1946
1321
1235
  fastInnerText(element, String.fromCharCode(160));
1322
1236
  addClass(element, 'cornerHeader');
1323
1237
  }
1324
1238
  }
1239
+
1325
1240
  /**
1326
1241
  * Given a element's left (or right in RTL mode) position relative to the viewport, returns maximum
1327
1242
  * element width until the right (or left) edge of the viewport (before scrollbar).
@@ -1330,15 +1245,14 @@ var TableView = /*#__PURE__*/function () {
1330
1245
  * @param {number} inlineOffset The left (or right in RTL mode) offset.
1331
1246
  * @returns {number}
1332
1247
  */
1333
-
1334
1248
  }, {
1335
1249
  key: "maximumVisibleElementWidth",
1336
1250
  value: function maximumVisibleElementWidth(inlineOffset) {
1337
1251
  var workspaceWidth = this._wt.wtViewport.getWorkspaceWidth();
1338
-
1339
1252
  var maxWidth = workspaceWidth - inlineOffset;
1340
1253
  return maxWidth > 0 ? maxWidth : 0;
1341
1254
  }
1255
+
1342
1256
  /**
1343
1257
  * Given a element's top position relative to the viewport, returns maximum element height until the bottom
1344
1258
  * edge of the viewport (before scrollbar).
@@ -1347,22 +1261,20 @@ var TableView = /*#__PURE__*/function () {
1347
1261
  * @param {number} topOffset The top offset.
1348
1262
  * @returns {number}
1349
1263
  */
1350
-
1351
1264
  }, {
1352
1265
  key: "maximumVisibleElementHeight",
1353
1266
  value: function maximumVisibleElementHeight(topOffset) {
1354
1267
  var workspaceHeight = this._wt.wtViewport.getWorkspaceHeight();
1355
-
1356
1268
  var maxHeight = workspaceHeight - topOffset;
1357
1269
  return maxHeight > 0 ? maxHeight : 0;
1358
1270
  }
1271
+
1359
1272
  /**
1360
1273
  * Sets new dimensions of the container.
1361
1274
  *
1362
1275
  * @param {number} width The table width.
1363
1276
  * @param {number} height The table height.
1364
1277
  */
1365
-
1366
1278
  }, {
1367
1279
  key: "setLastSize",
1368
1280
  value: function setLastSize(width, height) {
@@ -1371,12 +1283,12 @@ var TableView = /*#__PURE__*/function () {
1371
1283
  priv.lastWidth = _ref2[0];
1372
1284
  priv.lastHeight = _ref2[1];
1373
1285
  }
1286
+
1374
1287
  /**
1375
1288
  * Returns cached dimensions.
1376
1289
  *
1377
1290
  * @returns {object}
1378
1291
  */
1379
-
1380
1292
  }, {
1381
1293
  key: "getLastSize",
1382
1294
  value: function getLastSize() {
@@ -1386,66 +1298,85 @@ var TableView = /*#__PURE__*/function () {
1386
1298
  height: priv.lastHeight
1387
1299
  };
1388
1300
  }
1301
+
1389
1302
  /**
1390
1303
  * Returns the first fully visible row in the table viewport.
1391
1304
  *
1392
1305
  * @returns {number}
1393
1306
  */
1394
-
1395
1307
  }, {
1396
1308
  key: "getFirstFullyVisibleRow",
1397
1309
  value: function getFirstFullyVisibleRow() {
1398
1310
  return this.instance.rowIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getFirstVisibleRow());
1399
1311
  }
1312
+
1400
1313
  /**
1401
1314
  * Returns the last fully visible row in the table viewport.
1402
1315
  *
1403
1316
  * @returns {number}
1404
1317
  */
1405
-
1406
1318
  }, {
1407
1319
  key: "getLastFullyVisibleRow",
1408
1320
  value: function getLastFullyVisibleRow() {
1409
1321
  return this.instance.rowIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getLastVisibleRow());
1410
1322
  }
1323
+
1411
1324
  /**
1412
1325
  * Returns the first fully visible column in the table viewport.
1413
1326
  *
1414
1327
  * @returns {number}
1415
1328
  */
1416
-
1417
1329
  }, {
1418
1330
  key: "getFirstFullyVisibleColumn",
1419
1331
  value: function getFirstFullyVisibleColumn() {
1420
1332
  return this.instance.columnIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getFirstVisibleColumn());
1421
1333
  }
1334
+
1422
1335
  /**
1423
1336
  * Returns the last fully visible column in the table viewport.
1424
1337
  *
1425
1338
  * @returns {number}
1426
1339
  */
1427
-
1428
1340
  }, {
1429
1341
  key: "getLastFullyVisibleColumn",
1430
1342
  value: function getLastFullyVisibleColumn() {
1431
1343
  return this.instance.columnIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getLastVisibleColumn());
1432
1344
  }
1345
+
1346
+ /**
1347
+ * Returns the total count of the rendered column headers.
1348
+ *
1349
+ * @returns {number}
1350
+ */
1351
+ }, {
1352
+ key: "getColumnHeadersCount",
1353
+ value: function getColumnHeadersCount() {
1354
+ return _classPrivateFieldGet(this, _columnHeadersCount);
1355
+ }
1356
+
1357
+ /**
1358
+ * Returns the total count of the rendered row headers.
1359
+ *
1360
+ * @returns {number}
1361
+ */
1362
+ }, {
1363
+ key: "getRowHeadersCount",
1364
+ value: function getRowHeadersCount() {
1365
+ return _classPrivateFieldGet(this, _rowHeadersCount);
1366
+ }
1367
+
1433
1368
  /**
1434
1369
  * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
1435
1370
  *
1436
1371
  * @private
1437
1372
  */
1438
-
1439
1373
  }, {
1440
1374
  key: "destroy",
1441
1375
  value: function destroy() {
1442
1376
  this._wt.destroy();
1443
-
1444
1377
  this.eventManager.destroy();
1445
1378
  }
1446
1379
  }]);
1447
-
1448
1380
  return TableView;
1449
1381
  }();
1450
-
1451
1382
  export default TableView;