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