handsontable 12.1.2 → 12.2.0

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 (918) 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 +72 -174
  8. package/3rdparty/walkontable/src/border.mjs +74 -161
  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 +26 -76
  13. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +26 -69
  14. package/3rdparty/walkontable/src/calculator/viewportRows.js +20 -48
  15. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +20 -41
  16. package/3rdparty/walkontable/src/cell/coords.js +13 -43
  17. package/3rdparty/walkontable/src/cell/coords.mjs +13 -38
  18. package/3rdparty/walkontable/src/cell/range.js +55 -130
  19. package/3rdparty/walkontable/src/cell/range.mjs +60 -126
  20. package/3rdparty/walkontable/src/core/_base.js +16 -74
  21. package/3rdparty/walkontable/src/core/_base.mjs +19 -70
  22. package/3rdparty/walkontable/src/core/clone.js +1 -40
  23. package/3rdparty/walkontable/src/core/clone.mjs +3 -30
  24. package/3rdparty/walkontable/src/core/core.js +3 -57
  25. package/3rdparty/walkontable/src/core/core.mjs +5 -41
  26. package/3rdparty/walkontable/src/event.js +31 -78
  27. package/3rdparty/walkontable/src/event.mjs +31 -65
  28. package/3rdparty/walkontable/src/facade/core.js +1 -17
  29. package/3rdparty/walkontable/src/facade/core.mjs +7 -20
  30. package/3rdparty/walkontable/src/filter/column.js +9 -18
  31. package/3rdparty/walkontable/src/filter/column.mjs +9 -17
  32. package/3rdparty/walkontable/src/filter/row.js +9 -18
  33. package/3rdparty/walkontable/src/filter/row.mjs +9 -17
  34. package/3rdparty/walkontable/src/index.js +0 -31
  35. package/3rdparty/walkontable/src/overlay/_base.js +24 -69
  36. package/3rdparty/walkontable/src/overlay/_base.mjs +31 -68
  37. package/3rdparty/walkontable/src/overlay/bottom.js +28 -99
  38. package/3rdparty/walkontable/src/overlay/bottom.mjs +30 -86
  39. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +7 -53
  40. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +9 -40
  41. package/3rdparty/walkontable/src/overlay/constants.js +0 -6
  42. package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
  43. package/3rdparty/walkontable/src/overlay/index.js +0 -17
  44. package/3rdparty/walkontable/src/overlay/inlineStart.js +21 -91
  45. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +23 -78
  46. package/3rdparty/walkontable/src/overlay/top.js +27 -100
  47. package/3rdparty/walkontable/src/overlay/top.mjs +29 -87
  48. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +4 -51
  49. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +6 -38
  50. package/3rdparty/walkontable/src/overlays.js +58 -129
  51. package/3rdparty/walkontable/src/overlays.mjs +60 -121
  52. package/3rdparty/walkontable/src/renderer/_base.js +4 -20
  53. package/3rdparty/walkontable/src/renderer/_base.mjs +8 -22
  54. package/3rdparty/walkontable/src/renderer/cells.js +10 -54
  55. package/3rdparty/walkontable/src/renderer/cells.mjs +22 -52
  56. package/3rdparty/walkontable/src/renderer/colGroup.js +10 -47
  57. package/3rdparty/walkontable/src/renderer/colGroup.mjs +21 -46
  58. package/3rdparty/walkontable/src/renderer/columnHeaders.js +8 -50
  59. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +19 -49
  60. package/3rdparty/walkontable/src/renderer/index.js +13 -36
  61. package/3rdparty/walkontable/src/renderer/index.mjs +17 -27
  62. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -50
  63. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +20 -49
  64. package/3rdparty/walkontable/src/renderer/rows.js +3 -46
  65. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -29
  66. package/3rdparty/walkontable/src/renderer/table.js +22 -49
  67. package/3rdparty/walkontable/src/renderer/table.mjs +22 -48
  68. package/3rdparty/walkontable/src/scroll.js +56 -86
  69. package/3rdparty/walkontable/src/scroll.mjs +58 -86
  70. package/3rdparty/walkontable/src/selection.js +20 -101
  71. package/3rdparty/walkontable/src/selection.mjs +22 -85
  72. package/3rdparty/walkontable/src/settings.js +9 -29
  73. package/3rdparty/walkontable/src/settings.mjs +9 -27
  74. package/3rdparty/walkontable/src/table/bottom.js +1 -35
  75. package/3rdparty/walkontable/src/table/bottom.mjs +6 -25
  76. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -35
  77. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +7 -26
  78. package/3rdparty/walkontable/src/table/inlineStart.js +1 -35
  79. package/3rdparty/walkontable/src/table/inlineStart.mjs +3 -22
  80. package/3rdparty/walkontable/src/table/master.js +10 -55
  81. package/3rdparty/walkontable/src/table/master.mjs +15 -44
  82. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +7 -28
  83. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +7 -26
  84. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +7 -28
  85. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +7 -26
  86. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +7 -22
  87. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +7 -20
  88. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +7 -23
  89. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +7 -21
  90. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +7 -22
  91. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +7 -20
  92. package/3rdparty/walkontable/src/table/top.js +1 -35
  93. package/3rdparty/walkontable/src/table/top.mjs +6 -25
  94. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -35
  95. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +7 -26
  96. package/3rdparty/walkontable/src/table.js +74 -238
  97. package/3rdparty/walkontable/src/table.mjs +84 -227
  98. package/3rdparty/walkontable/src/types.js +0 -5
  99. package/3rdparty/walkontable/src/types.mjs +0 -5
  100. package/3rdparty/walkontable/src/utils/column.js +9 -31
  101. package/3rdparty/walkontable/src/utils/column.mjs +13 -30
  102. package/3rdparty/walkontable/src/utils/nodesPool.js +3 -12
  103. package/3rdparty/walkontable/src/utils/nodesPool.mjs +3 -11
  104. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
  105. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
  106. package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
  107. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -33
  108. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +6 -26
  109. package/3rdparty/walkontable/src/utils/orderView/view.js +14 -46
  110. package/3rdparty/walkontable/src/utils/orderView/view.mjs +21 -50
  111. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +3 -15
  112. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +3 -14
  113. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +8 -22
  114. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +23 -34
  115. package/3rdparty/walkontable/src/utils/row.js +2 -13
  116. package/3rdparty/walkontable/src/utils/row.mjs +2 -12
  117. package/3rdparty/walkontable/src/viewport.js +38 -100
  118. package/3rdparty/walkontable/src/viewport.mjs +40 -99
  119. package/CHANGELOG.md +103 -5
  120. package/base.js +6 -17
  121. package/base.mjs +6 -12
  122. package/cellTypes/autocompleteType/autocompleteType.js +0 -4
  123. package/cellTypes/autocompleteType/index.js +0 -2
  124. package/cellTypes/checkboxType/checkboxType.js +0 -3
  125. package/cellTypes/checkboxType/index.js +0 -2
  126. package/cellTypes/dateType/dateType.js +0 -4
  127. package/cellTypes/dateType/index.js +0 -2
  128. package/cellTypes/dropdownType/dropdownType.js +0 -4
  129. package/cellTypes/dropdownType/index.js +0 -2
  130. package/cellTypes/handsontableType/handsontableType.js +0 -3
  131. package/cellTypes/handsontableType/index.js +0 -2
  132. package/cellTypes/index.js +0 -21
  133. package/cellTypes/index.mjs +3 -5
  134. package/cellTypes/numericType/index.js +0 -2
  135. package/cellTypes/numericType/numericType.js +0 -4
  136. package/cellTypes/passwordType/index.js +0 -2
  137. package/cellTypes/passwordType/passwordType.js +0 -3
  138. package/cellTypes/registry.js +10 -25
  139. package/cellTypes/registry.mjs +10 -20
  140. package/cellTypes/textType/index.js +0 -2
  141. package/cellTypes/textType/textType.js +0 -3
  142. package/cellTypes/timeType/index.js +0 -2
  143. package/cellTypes/timeType/timeType.js +0 -4
  144. package/core.d.ts +6 -4
  145. package/core.js +514 -974
  146. package/core.mjs +519 -921
  147. package/dataMap/dataMap.js +127 -212
  148. package/dataMap/dataMap.mjs +127 -188
  149. package/{dataSource.js → dataMap/dataSource.js} +18 -66
  150. package/{dataSource.mjs → dataMap/dataSource.mjs} +20 -60
  151. package/dataMap/index.js +0 -13
  152. package/dataMap/metaManager/index.js +21 -46
  153. package/dataMap/metaManager/index.mjs +47 -64
  154. package/dataMap/metaManager/lazyFactoryMap.js +23 -55
  155. package/dataMap/metaManager/lazyFactoryMap.mjs +23 -43
  156. package/dataMap/metaManager/metaLayers/cellMeta.js +16 -52
  157. package/dataMap/metaManager/metaLayers/cellMeta.mjs +16 -37
  158. package/dataMap/metaManager/metaLayers/columnMeta.js +8 -22
  159. package/dataMap/metaManager/metaLayers/columnMeta.mjs +14 -25
  160. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -19
  161. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -15
  162. package/dataMap/metaManager/metaLayers/tableMeta.js +4 -15
  163. package/dataMap/metaManager/metaLayers/tableMeta.mjs +28 -37
  164. package/dataMap/metaManager/metaSchema.js +196 -257
  165. package/dataMap/metaManager/metaSchema.mjs +196 -248
  166. package/dataMap/metaManager/mods/dynamicCellMeta.js +6 -36
  167. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +20 -39
  168. package/dataMap/metaManager/mods/extendMetaProperties.js +5 -28
  169. package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -18
  170. package/dataMap/metaManager/utils.js +11 -20
  171. package/dataMap/metaManager/utils.mjs +21 -23
  172. package/dataMap/replaceData.js +14 -35
  173. package/dataMap/replaceData.mjs +35 -45
  174. package/dist/handsontable.css +2 -2
  175. package/dist/handsontable.full.css +2 -2
  176. package/dist/handsontable.full.js +64469 -93042
  177. package/dist/handsontable.full.min.css +2 -2
  178. package/dist/handsontable.full.min.js +527 -284
  179. package/dist/handsontable.js +9616 -21414
  180. package/dist/handsontable.min.css +2 -2
  181. package/dist/handsontable.min.js +3 -3
  182. package/dist/languages/all.js +0 -175
  183. package/dist/languages/ar-AR.js +0 -10
  184. package/dist/languages/cs-CZ.js +0 -10
  185. package/dist/languages/de-CH.js +0 -10
  186. package/dist/languages/de-DE.js +0 -10
  187. package/dist/languages/en-US.js +0 -10
  188. package/dist/languages/es-MX.js +0 -10
  189. package/dist/languages/fr-FR.js +0 -10
  190. package/dist/languages/it-IT.js +0 -10
  191. package/dist/languages/ja-JP.js +0 -10
  192. package/dist/languages/ko-KR.js +0 -10
  193. package/dist/languages/lv-LV.js +0 -10
  194. package/dist/languages/nb-NO.js +0 -10
  195. package/dist/languages/nl-NL.js +0 -10
  196. package/dist/languages/pl-PL.js +0 -10
  197. package/dist/languages/pt-BR.js +0 -10
  198. package/dist/languages/ru-RU.js +0 -10
  199. package/dist/languages/sr-SP.js +0 -10
  200. package/dist/languages/zh-CN.js +0 -10
  201. package/dist/languages/zh-TW.js +0 -10
  202. package/editorManager.js +89 -124
  203. package/editorManager.mjs +89 -104
  204. package/editors/autocompleteEditor/autocompleteEditor.js +26 -133
  205. package/editors/autocompleteEditor/autocompleteEditor.mjs +26 -104
  206. package/editors/autocompleteEditor/index.js +0 -2
  207. package/editors/baseEditor/baseEditor.js +45 -155
  208. package/editors/baseEditor/baseEditor.mjs +45 -129
  209. package/editors/baseEditor/index.js +0 -2
  210. package/editors/checkboxEditor/checkboxEditor.js +2 -33
  211. package/editors/checkboxEditor/checkboxEditor.mjs +2 -19
  212. package/editors/checkboxEditor/index.js +0 -2
  213. package/editors/dateEditor/dateEditor.js +36 -97
  214. package/editors/dateEditor/dateEditor.mjs +35 -74
  215. package/editors/dateEditor/index.js +0 -2
  216. package/editors/dropdownEditor/dropdownEditor.js +1 -41
  217. package/editors/dropdownEditor/dropdownEditor.mjs +1 -22
  218. package/editors/dropdownEditor/index.js +0 -2
  219. package/editors/handsontableEditor/handsontableEditor.js +13 -85
  220. package/editors/handsontableEditor/handsontableEditor.mjs +13 -66
  221. package/editors/handsontableEditor/index.js +0 -2
  222. package/editors/index.js +0 -25
  223. package/editors/index.mjs +3 -5
  224. package/editors/numericEditor/index.js +0 -2
  225. package/editors/numericEditor/numericEditor.js +1 -31
  226. package/editors/numericEditor/numericEditor.mjs +1 -18
  227. package/editors/passwordEditor/index.js +0 -2
  228. package/editors/passwordEditor/passwordEditor.js +1 -38
  229. package/editors/passwordEditor/passwordEditor.mjs +1 -22
  230. package/editors/registry.js +10 -36
  231. package/editors/registry.mjs +10 -28
  232. package/editors/selectEditor/index.js +0 -2
  233. package/editors/selectEditor/selectEditor.js +21 -73
  234. package/editors/selectEditor/selectEditor.mjs +21 -56
  235. package/editors/textEditor/caretPositioner.js +0 -12
  236. package/editors/textEditor/caretPositioner.mjs +10 -20
  237. package/editors/textEditor/index.js +0 -2
  238. package/editors/textEditor/textEditor.js +38 -137
  239. package/editors/textEditor/textEditor.mjs +38 -106
  240. package/editors/timeEditor/index.js +0 -2
  241. package/editors/timeEditor/timeEditor.js +1 -36
  242. package/editors/timeEditor/timeEditor.mjs +1 -21
  243. package/eventManager.js +20 -56
  244. package/eventManager.mjs +23 -56
  245. package/helpers/array.js +22 -88
  246. package/helpers/array.mjs +22 -58
  247. package/helpers/browser.js +25 -51
  248. package/helpers/browser.mjs +25 -32
  249. package/helpers/console.js +3 -13
  250. package/helpers/console.mjs +8 -16
  251. package/helpers/data.d.ts +0 -1
  252. package/helpers/data.js +10 -55
  253. package/helpers/data.mjs +10 -33
  254. package/helpers/date.js +2 -3
  255. package/helpers/date.mjs +2 -2
  256. package/helpers/dom/element.js +67 -259
  257. package/helpers/dom/element.mjs +74 -194
  258. package/helpers/dom/event.js +3 -7
  259. package/helpers/dom/event.mjs +3 -3
  260. package/helpers/feature.js +13 -47
  261. package/helpers/feature.mjs +13 -31
  262. package/helpers/function.js +14 -59
  263. package/helpers/function.mjs +20 -52
  264. package/helpers/mixed.js +9 -66
  265. package/helpers/mixed.mjs +15 -51
  266. package/helpers/number.js +4 -46
  267. package/helpers/number.mjs +4 -23
  268. package/helpers/object.js +15 -72
  269. package/helpers/object.mjs +21 -52
  270. package/helpers/string.js +6 -28
  271. package/helpers/string.mjs +12 -21
  272. package/helpers/templateLiteralTag.js +0 -6
  273. package/helpers/templateLiteralTag.mjs +7 -10
  274. package/helpers/unicode.js +17 -26
  275. package/helpers/unicode.mjs +17 -15
  276. package/helpers/wrappers/jquery.js +4 -14
  277. package/helpers/wrappers/jquery.mjs +4 -13
  278. package/i18n/constants.js +1 -3
  279. package/i18n/constants.mjs +1 -1
  280. package/i18n/index.js +0 -7
  281. package/i18n/languages/ar-AR.js +0 -16
  282. package/i18n/languages/ar-AR.mjs +1 -4
  283. package/i18n/languages/cs-CZ.js +0 -16
  284. package/i18n/languages/cs-CZ.mjs +1 -4
  285. package/i18n/languages/de-CH.js +0 -16
  286. package/i18n/languages/de-CH.mjs +1 -4
  287. package/i18n/languages/de-DE.js +0 -16
  288. package/i18n/languages/de-DE.mjs +1 -4
  289. package/i18n/languages/en-US.js +0 -16
  290. package/i18n/languages/en-US.mjs +1 -4
  291. package/i18n/languages/es-MX.js +0 -16
  292. package/i18n/languages/es-MX.mjs +1 -4
  293. package/i18n/languages/fr-FR.js +0 -16
  294. package/i18n/languages/fr-FR.mjs +1 -4
  295. package/i18n/languages/index.js +0 -39
  296. package/i18n/languages/it-IT.js +0 -16
  297. package/i18n/languages/it-IT.mjs +1 -4
  298. package/i18n/languages/ja-JP.js +0 -16
  299. package/i18n/languages/ja-JP.mjs +1 -4
  300. package/i18n/languages/ko-KR.js +0 -16
  301. package/i18n/languages/ko-KR.mjs +1 -4
  302. package/i18n/languages/lv-LV.js +0 -16
  303. package/i18n/languages/lv-LV.mjs +1 -4
  304. package/i18n/languages/nb-NO.js +0 -16
  305. package/i18n/languages/nb-NO.mjs +1 -4
  306. package/i18n/languages/nl-NL.js +0 -16
  307. package/i18n/languages/nl-NL.mjs +1 -4
  308. package/i18n/languages/pl-PL.js +0 -16
  309. package/i18n/languages/pl-PL.mjs +1 -4
  310. package/i18n/languages/pt-BR.js +0 -16
  311. package/i18n/languages/pt-BR.mjs +1 -4
  312. package/i18n/languages/ru-RU.js +0 -16
  313. package/i18n/languages/ru-RU.mjs +1 -4
  314. package/i18n/languages/sr-SP.js +0 -16
  315. package/i18n/languages/sr-SP.mjs +1 -4
  316. package/i18n/languages/zh-CN.js +0 -16
  317. package/i18n/languages/zh-CN.mjs +1 -4
  318. package/i18n/languages/zh-TW.js +0 -16
  319. package/i18n/languages/zh-TW.mjs +1 -4
  320. package/i18n/phraseFormatters/index.js +4 -11
  321. package/i18n/phraseFormatters/index.mjs +4 -6
  322. package/i18n/phraseFormatters/pluralize.js +0 -5
  323. package/i18n/phraseFormatters/pluralize.mjs +0 -3
  324. package/i18n/phraseFormatters/substituteVariables.js +0 -4
  325. package/i18n/phraseFormatters/substituteVariables.mjs +8 -11
  326. package/i18n/registry.js +18 -59
  327. package/i18n/registry.mjs +18 -30
  328. package/i18n/utils.js +4 -22
  329. package/i18n/utils.mjs +13 -21
  330. package/index.js +19 -56
  331. package/index.mjs +19 -15
  332. package/languages/all.js +0 -175
  333. package/languages/ar-AR.js +0 -10
  334. package/languages/ar-AR.mjs +1 -4
  335. package/languages/cs-CZ.js +0 -10
  336. package/languages/cs-CZ.mjs +1 -4
  337. package/languages/de-CH.js +0 -10
  338. package/languages/de-CH.mjs +1 -4
  339. package/languages/de-DE.js +0 -10
  340. package/languages/de-DE.mjs +1 -4
  341. package/languages/en-US.js +0 -10
  342. package/languages/en-US.mjs +1 -4
  343. package/languages/es-MX.js +0 -10
  344. package/languages/es-MX.mjs +1 -4
  345. package/languages/fr-FR.js +0 -10
  346. package/languages/fr-FR.mjs +1 -4
  347. package/languages/index.js +0 -175
  348. package/languages/it-IT.js +0 -10
  349. package/languages/it-IT.mjs +1 -4
  350. package/languages/ja-JP.js +0 -10
  351. package/languages/ja-JP.mjs +1 -4
  352. package/languages/ko-KR.js +0 -10
  353. package/languages/ko-KR.mjs +1 -4
  354. package/languages/lv-LV.js +0 -10
  355. package/languages/lv-LV.mjs +1 -4
  356. package/languages/nb-NO.js +0 -10
  357. package/languages/nb-NO.mjs +1 -4
  358. package/languages/nl-NL.js +0 -10
  359. package/languages/nl-NL.mjs +1 -4
  360. package/languages/pl-PL.js +0 -10
  361. package/languages/pl-PL.mjs +1 -4
  362. package/languages/pt-BR.js +0 -10
  363. package/languages/pt-BR.mjs +1 -4
  364. package/languages/ru-RU.js +0 -10
  365. package/languages/ru-RU.mjs +1 -4
  366. package/languages/sr-SP.js +0 -10
  367. package/languages/sr-SP.mjs +1 -4
  368. package/languages/zh-CN.js +0 -10
  369. package/languages/zh-CN.mjs +1 -4
  370. package/languages/zh-TW.js +0 -10
  371. package/languages/zh-TW.mjs +1 -4
  372. package/mixins/hooksRefRegisterer.js +4 -18
  373. package/mixins/hooksRefRegisterer.mjs +4 -15
  374. package/mixins/localHooks.js +7 -17
  375. package/mixins/localHooks.mjs +7 -14
  376. package/package.json +1 -1
  377. package/pluginHooks.d.ts +3 -4
  378. package/pluginHooks.js +288 -110
  379. package/pluginHooks.mjs +287 -97
  380. package/plugins/autoColumnSize/autoColumnSize.js +74 -172
  381. package/plugins/autoColumnSize/autoColumnSize.mjs +74 -137
  382. package/plugins/autoColumnSize/index.js +0 -2
  383. package/plugins/autoRowSize/autoRowSize.js +73 -153
  384. package/plugins/autoRowSize/autoRowSize.mjs +73 -124
  385. package/plugins/autoRowSize/index.js +0 -2
  386. package/plugins/autofill/autofill.js +46 -163
  387. package/plugins/autofill/autofill.mjs +46 -131
  388. package/plugins/autofill/index.js +0 -2
  389. package/plugins/autofill/utils.js +4 -26
  390. package/plugins/autofill/utils.mjs +4 -18
  391. package/plugins/base/base.js +21 -92
  392. package/plugins/base/base.mjs +21 -63
  393. package/plugins/base/index.js +0 -2
  394. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +19 -52
  395. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +19 -33
  396. package/plugins/bindRowsWithHeaders/index.js +0 -2
  397. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +5 -41
  398. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +5 -29
  399. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -53
  400. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +6 -37
  401. package/plugins/collapsibleColumns/collapsibleColumns.js +96 -188
  402. package/plugins/collapsibleColumns/collapsibleColumns.mjs +97 -158
  403. package/plugins/collapsibleColumns/index.js +0 -2
  404. package/plugins/columnSorting/columnSorting.js +50 -188
  405. package/plugins/columnSorting/columnSorting.mjs +50 -143
  406. package/plugins/columnSorting/columnStatesManager.js +15 -71
  407. package/plugins/columnSorting/columnStatesManager.mjs +15 -48
  408. package/plugins/columnSorting/domHelpers.js +2 -18
  409. package/plugins/columnSorting/domHelpers.mjs +2 -7
  410. package/plugins/columnSorting/index.js +0 -2
  411. package/plugins/columnSorting/rootComparator.js +5 -24
  412. package/plugins/columnSorting/rootComparator.mjs +12 -21
  413. package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
  414. package/plugins/columnSorting/sortFunction/checkbox.mjs +16 -21
  415. package/plugins/columnSorting/sortFunction/date.js +2 -19
  416. package/plugins/columnSorting/sortFunction/date.mjs +10 -23
  417. package/plugins/columnSorting/sortFunction/default.js +2 -17
  418. package/plugins/columnSorting/sortFunction/default.mjs +10 -23
  419. package/plugins/columnSorting/sortFunction/numeric.js +2 -11
  420. package/plugins/columnSorting/sortFunction/numeric.mjs +10 -17
  421. package/plugins/columnSorting/sortService/engine.js +3 -13
  422. package/plugins/columnSorting/sortService/engine.mjs +3 -5
  423. package/plugins/columnSorting/sortService/index.js +0 -5
  424. package/plugins/columnSorting/sortService/registry.js +6 -18
  425. package/plugins/columnSorting/sortService/registry.mjs +6 -10
  426. package/plugins/columnSorting/utils.js +9 -34
  427. package/plugins/columnSorting/utils.mjs +9 -15
  428. package/plugins/columnSummary/columnSummary.js +66 -126
  429. package/plugins/columnSummary/columnSummary.mjs +66 -101
  430. package/plugins/columnSummary/endpoints.js +21 -98
  431. package/plugins/columnSummary/endpoints.mjs +26 -99
  432. package/plugins/columnSummary/index.js +0 -2
  433. package/plugins/columnSummary/utils.js +13 -0
  434. package/plugins/columnSummary/utils.mjs +9 -0
  435. package/plugins/comments/commentEditor.js +16 -28
  436. package/plugins/comments/commentEditor.mjs +21 -32
  437. package/plugins/comments/comments.js +92 -175
  438. package/plugins/comments/comments.mjs +92 -149
  439. package/plugins/comments/displaySwitch.js +6 -23
  440. package/plugins/comments/displaySwitch.mjs +6 -18
  441. package/plugins/comments/index.js +0 -2
  442. package/plugins/contextMenu/commandExecutor.js +9 -40
  443. package/plugins/contextMenu/commandExecutor.mjs +14 -41
  444. package/plugins/contextMenu/contextMenu.js +26 -105
  445. package/plugins/contextMenu/contextMenu.mjs +26 -75
  446. package/plugins/contextMenu/cursor.js +6 -20
  447. package/plugins/contextMenu/cursor.mjs +11 -24
  448. package/plugins/contextMenu/index.js +0 -2
  449. package/plugins/contextMenu/itemsFactory.js +14 -43
  450. package/plugins/contextMenu/itemsFactory.mjs +19 -44
  451. package/plugins/contextMenu/menu.js +61 -177
  452. package/plugins/contextMenu/menu.mjs +61 -149
  453. package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
  454. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
  455. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
  456. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
  457. package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
  458. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
  459. package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
  460. package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
  461. package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
  462. package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
  463. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
  464. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
  465. package/plugins/contextMenu/predefinedItems/redo.js +1 -16
  466. package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
  467. package/plugins/contextMenu/predefinedItems/removeColumn.js +3 -38
  468. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -18
  469. package/plugins/contextMenu/predefinedItems/removeRow.js +3 -37
  470. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -17
  471. package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
  472. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
  473. package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
  474. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
  475. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  476. package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
  477. package/plugins/contextMenu/predefinedItems/undo.js +1 -16
  478. package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
  479. package/plugins/contextMenu/predefinedItems.js +2 -48
  480. package/plugins/contextMenu/predefinedItems.mjs +2 -7
  481. package/plugins/contextMenu/utils.js +17 -57
  482. package/plugins/contextMenu/utils.mjs +21 -39
  483. package/plugins/copyPaste/clipboardData.js +1 -10
  484. package/plugins/copyPaste/clipboardData.mjs +1 -9
  485. package/plugins/copyPaste/contextMenuItem/copy.js +2 -17
  486. package/plugins/copyPaste/contextMenuItem/copy.mjs +6 -9
  487. package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
  488. package/plugins/copyPaste/contextMenuItem/cut.mjs +6 -9
  489. package/plugins/copyPaste/copyPaste.js +53 -185
  490. package/plugins/copyPaste/copyPaste.mjs +53 -144
  491. package/plugins/copyPaste/focusableElement.js +12 -56
  492. package/plugins/copyPaste/focusableElement.mjs +15 -49
  493. package/plugins/copyPaste/index.js +0 -2
  494. package/plugins/copyPaste/pasteEvent.js +1 -10
  495. package/plugins/copyPaste/pasteEvent.mjs +3 -10
  496. package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
  497. package/plugins/customBorders/contextMenuItem/bottom.mjs +4 -8
  498. package/plugins/customBorders/contextMenuItem/index.js +0 -11
  499. package/plugins/customBorders/contextMenuItem/left.js +0 -17
  500. package/plugins/customBorders/contextMenuItem/left.mjs +4 -8
  501. package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
  502. package/plugins/customBorders/contextMenuItem/noBorders.mjs +4 -6
  503. package/plugins/customBorders/contextMenuItem/right.js +0 -17
  504. package/plugins/customBorders/contextMenuItem/right.mjs +4 -8
  505. package/plugins/customBorders/contextMenuItem/top.js +0 -17
  506. package/plugins/customBorders/contextMenuItem/top.mjs +4 -8
  507. package/plugins/customBorders/customBorders.js +52 -181
  508. package/plugins/customBorders/customBorders.mjs +52 -147
  509. package/plugins/customBorders/index.js +0 -2
  510. package/plugins/customBorders/utils.js +13 -52
  511. package/plugins/customBorders/utils.mjs +20 -39
  512. package/plugins/dragToScroll/dragToScroll.js +17 -74
  513. package/plugins/dragToScroll/dragToScroll.mjs +17 -55
  514. package/plugins/dragToScroll/index.js +0 -2
  515. package/plugins/dropdownMenu/dropdownMenu.js +47 -126
  516. package/plugins/dropdownMenu/dropdownMenu.mjs +47 -95
  517. package/plugins/dropdownMenu/index.js +0 -2
  518. package/plugins/exportFile/dataProvider.js +24 -69
  519. package/plugins/exportFile/dataProvider.mjs +26 -60
  520. package/plugins/exportFile/exportFile.js +48 -58
  521. package/plugins/exportFile/exportFile.mjs +48 -36
  522. package/plugins/exportFile/index.js +0 -2
  523. package/plugins/exportFile/typeFactory.js +1 -11
  524. package/plugins/exportFile/typeFactory.mjs +1 -4
  525. package/plugins/exportFile/types/_base.js +2 -16
  526. package/plugins/exportFile/types/_base.mjs +4 -16
  527. package/plugins/exportFile/types/csv.js +2 -50
  528. package/plugins/exportFile/types/csv.mjs +2 -29
  529. package/plugins/filters/component/_base.js +12 -32
  530. package/plugins/filters/component/_base.mjs +15 -30
  531. package/plugins/filters/component/actionBar.js +6 -55
  532. package/plugins/filters/component/actionBar.mjs +9 -38
  533. package/plugins/filters/component/condition.js +25 -122
  534. package/plugins/filters/component/condition.mjs +24 -88
  535. package/plugins/filters/component/operators.js +10 -68
  536. package/plugins/filters/component/operators.mjs +10 -45
  537. package/plugins/filters/component/value.js +25 -99
  538. package/plugins/filters/component/value.mjs +28 -72
  539. package/plugins/filters/condition/beginsWith.js +2 -32
  540. package/plugins/filters/condition/beginsWith.mjs +2 -10
  541. package/plugins/filters/condition/between.js +3 -37
  542. package/plugins/filters/condition/between.mjs +3 -15
  543. package/plugins/filters/condition/byValue.js +3 -27
  544. package/plugins/filters/condition/byValue.mjs +3 -12
  545. package/plugins/filters/condition/contains.js +2 -32
  546. package/plugins/filters/condition/contains.mjs +2 -10
  547. package/plugins/filters/condition/date/after.js +2 -34
  548. package/plugins/filters/condition/date/after.mjs +2 -12
  549. package/plugins/filters/condition/date/before.js +2 -34
  550. package/plugins/filters/condition/date/before.mjs +2 -12
  551. package/plugins/filters/condition/date/today.js +1 -22
  552. package/plugins/filters/condition/date/today.mjs +1 -3
  553. package/plugins/filters/condition/date/tomorrow.js +1 -22
  554. package/plugins/filters/condition/date/tomorrow.mjs +1 -3
  555. package/plugins/filters/condition/date/yesterday.js +1 -22
  556. package/plugins/filters/condition/date/yesterday.mjs +1 -3
  557. package/plugins/filters/condition/empty.js +1 -19
  558. package/plugins/filters/condition/empty.mjs +1 -1
  559. package/plugins/filters/condition/endsWith.js +2 -32
  560. package/plugins/filters/condition/endsWith.mjs +2 -10
  561. package/plugins/filters/condition/equal.js +2 -31
  562. package/plugins/filters/condition/equal.mjs +2 -10
  563. package/plugins/filters/condition/false.js +1 -5
  564. package/plugins/filters/condition/false.mjs +1 -1
  565. package/plugins/filters/condition/greaterThan.js +2 -32
  566. package/plugins/filters/condition/greaterThan.mjs +2 -12
  567. package/plugins/filters/condition/greaterThanOrEqual.js +2 -32
  568. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -12
  569. package/plugins/filters/condition/lessThan.js +2 -32
  570. package/plugins/filters/condition/lessThan.mjs +2 -12
  571. package/plugins/filters/condition/lessThanOrEqual.js +2 -32
  572. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -12
  573. package/plugins/filters/condition/none.js +1 -18
  574. package/plugins/filters/condition/none.mjs +1 -1
  575. package/plugins/filters/condition/notBetween.js +1 -19
  576. package/plugins/filters/condition/notBetween.mjs +1 -1
  577. package/plugins/filters/condition/notContains.js +1 -19
  578. package/plugins/filters/condition/notContains.mjs +1 -1
  579. package/plugins/filters/condition/notEmpty.js +1 -19
  580. package/plugins/filters/condition/notEmpty.mjs +1 -1
  581. package/plugins/filters/condition/notEqual.js +1 -19
  582. package/plugins/filters/condition/notEqual.mjs +1 -1
  583. package/plugins/filters/condition/true.js +1 -5
  584. package/plugins/filters/condition/true.mjs +1 -1
  585. package/plugins/filters/conditionCollection.js +21 -80
  586. package/plugins/filters/conditionCollection.mjs +21 -57
  587. package/plugins/filters/conditionRegisterer.js +5 -14
  588. package/plugins/filters/conditionRegisterer.mjs +5 -9
  589. package/plugins/filters/conditionUpdateObserver.js +17 -57
  590. package/plugins/filters/conditionUpdateObserver.mjs +25 -53
  591. package/plugins/filters/constants.js +1 -66
  592. package/plugins/filters/constants.mjs +1 -8
  593. package/plugins/filters/dataFilter.js +4 -21
  594. package/plugins/filters/dataFilter.mjs +7 -23
  595. package/plugins/filters/filters.d.ts +1 -1
  596. package/plugins/filters/filters.js +147 -272
  597. package/plugins/filters/filters.mjs +148 -228
  598. package/plugins/filters/index.js +0 -2
  599. package/plugins/filters/logicalOperationRegisterer.js +3 -9
  600. package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
  601. package/plugins/filters/logicalOperations/conjunction.js +2 -19
  602. package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
  603. package/plugins/filters/logicalOperations/disjunction.js +2 -19
  604. package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
  605. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
  606. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
  607. package/plugins/filters/ui/_base.js +12 -55
  608. package/plugins/filters/ui/_base.mjs +12 -35
  609. package/plugins/filters/ui/input.js +7 -52
  610. package/plugins/filters/ui/input.mjs +7 -34
  611. package/plugins/filters/ui/link.js +3 -43
  612. package/plugins/filters/ui/link.mjs +3 -25
  613. package/plugins/filters/ui/multipleSelect.js +26 -120
  614. package/plugins/filters/ui/multipleSelect.mjs +20 -76
  615. package/plugins/filters/ui/radioInput.js +6 -47
  616. package/plugins/filters/ui/radioInput.mjs +6 -30
  617. package/plugins/filters/ui/select.js +14 -76
  618. package/plugins/filters/ui/select.mjs +14 -52
  619. package/plugins/filters/utils.js +6 -39
  620. package/plugins/filters/utils.mjs +6 -23
  621. package/plugins/formulas/engine/register.js +24 -74
  622. package/plugins/formulas/engine/register.mjs +29 -51
  623. package/plugins/formulas/engine/settings.js +4 -24
  624. package/plugins/formulas/engine/settings.mjs +4 -12
  625. package/plugins/formulas/formulas.js +103 -295
  626. package/plugins/formulas/formulas.mjs +104 -248
  627. package/plugins/formulas/index.js +0 -2
  628. package/plugins/formulas/utils.js +1 -3
  629. package/plugins/formulas/utils.mjs +1 -1
  630. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +4 -38
  631. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +8 -25
  632. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
  633. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +21 -29
  634. package/plugins/hiddenColumns/hiddenColumns.js +72 -153
  635. package/plugins/hiddenColumns/hiddenColumns.mjs +72 -110
  636. package/plugins/hiddenColumns/index.js +0 -2
  637. package/plugins/hiddenRows/contextMenuItem/hideRow.js +4 -38
  638. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +8 -25
  639. package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
  640. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +21 -29
  641. package/plugins/hiddenRows/hiddenRows.js +70 -152
  642. package/plugins/hiddenRows/hiddenRows.mjs +70 -109
  643. package/plugins/hiddenRows/index.js +0 -2
  644. package/plugins/index.js +0 -71
  645. package/plugins/index.mjs +3 -5
  646. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -28
  647. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +5 -17
  648. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -28
  649. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +5 -17
  650. package/plugins/manualColumnFreeze/index.js +0 -2
  651. package/plugins/manualColumnFreeze/manualColumnFreeze.js +21 -78
  652. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +21 -54
  653. package/plugins/manualColumnMove/index.js +0 -2
  654. package/plugins/manualColumnMove/manualColumnMove.js +45 -134
  655. package/plugins/manualColumnMove/manualColumnMove.mjs +45 -106
  656. package/plugins/manualColumnMove/ui/_base.js +12 -30
  657. package/plugins/manualColumnMove/ui/_base.mjs +12 -27
  658. package/plugins/manualColumnMove/ui/backlight.js +1 -37
  659. package/plugins/manualColumnMove/ui/backlight.mjs +1 -22
  660. package/plugins/manualColumnMove/ui/guideline.js +1 -37
  661. package/plugins/manualColumnMove/ui/guideline.mjs +1 -22
  662. package/plugins/manualColumnResize/index.js +0 -2
  663. package/plugins/manualColumnResize/manualColumnResize.js +44 -143
  664. package/plugins/manualColumnResize/manualColumnResize.mjs +43 -118
  665. package/plugins/manualRowMove/index.js +0 -2
  666. package/plugins/manualRowMove/manualRowMove.js +45 -137
  667. package/plugins/manualRowMove/manualRowMove.mjs +45 -109
  668. package/plugins/manualRowMove/ui/_base.js +12 -27
  669. package/plugins/manualRowMove/ui/_base.mjs +12 -26
  670. package/plugins/manualRowMove/ui/backlight.js +1 -37
  671. package/plugins/manualRowMove/ui/backlight.mjs +1 -22
  672. package/plugins/manualRowMove/ui/guideline.js +1 -37
  673. package/plugins/manualRowMove/ui/guideline.mjs +1 -22
  674. package/plugins/manualRowResize/index.js +0 -2
  675. package/plugins/manualRowResize/manualRowResize.js +42 -138
  676. package/plugins/manualRowResize/manualRowResize.mjs +41 -112
  677. package/plugins/mergeCells/calculations/autofill.js +39 -130
  678. package/plugins/mergeCells/calculations/autofill.mjs +44 -122
  679. package/plugins/mergeCells/calculations/selection.js +9 -40
  680. package/plugins/mergeCells/calculations/selection.mjs +9 -37
  681. package/plugins/mergeCells/cellCoords.js +30 -51
  682. package/plugins/mergeCells/cellCoords.mjs +35 -54
  683. package/plugins/mergeCells/cellsCollection.js +13 -84
  684. package/plugins/mergeCells/cellsCollection.mjs +18 -69
  685. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
  686. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +4 -11
  687. package/plugins/mergeCells/index.js +0 -2
  688. package/plugins/mergeCells/mergeCells.js +130 -333
  689. package/plugins/mergeCells/mergeCells.mjs +130 -292
  690. package/plugins/mergeCells/utils.js +0 -3
  691. package/plugins/mergeCells/utils.mjs +0 -1
  692. package/plugins/multiColumnSorting/domHelpers.js +3 -15
  693. package/plugins/multiColumnSorting/domHelpers.mjs +3 -7
  694. package/plugins/multiColumnSorting/index.js +0 -2
  695. package/plugins/multiColumnSorting/multiColumnSorting.js +14 -66
  696. package/plugins/multiColumnSorting/multiColumnSorting.mjs +14 -44
  697. package/plugins/multiColumnSorting/rootComparator.js +2 -26
  698. package/plugins/multiColumnSorting/rootComparator.mjs +9 -23
  699. package/plugins/multiColumnSorting/utils.js +0 -7
  700. package/plugins/multiColumnSorting/utils.mjs +3 -8
  701. package/plugins/multipleSelectionHandles/index.js +0 -2
  702. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +6 -109
  703. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +6 -87
  704. package/plugins/nestedHeaders/index.js +0 -2
  705. package/plugins/nestedHeaders/nestedHeaders.js +79 -200
  706. package/plugins/nestedHeaders/nestedHeaders.mjs +80 -173
  707. package/plugins/nestedHeaders/stateManager/headersTree.js +16 -93
  708. package/plugins/nestedHeaders/stateManager/headersTree.mjs +16 -73
  709. package/plugins/nestedHeaders/stateManager/index.js +24 -107
  710. package/plugins/nestedHeaders/stateManager/index.mjs +51 -115
  711. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
  712. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +38 -51
  713. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
  714. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +29 -35
  715. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
  716. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +26 -32
  717. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
  718. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +9 -20
  719. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
  720. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -5
  721. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
  722. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +9 -21
  723. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
  724. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
  725. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
  726. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +44 -61
  727. package/plugins/nestedHeaders/stateManager/sourceSettings.js +16 -78
  728. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +21 -68
  729. package/plugins/nestedHeaders/stateManager/utils.js +19 -22
  730. package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
  731. package/plugins/nestedHeaders/utils/ghostTable.js +9 -37
  732. package/plugins/nestedHeaders/utils/ghostTable.mjs +16 -43
  733. package/plugins/nestedRows/data/dataManager.js +40 -161
  734. package/plugins/nestedRows/data/dataManager.mjs +44 -148
  735. package/plugins/nestedRows/index.js +0 -2
  736. package/plugins/nestedRows/nestedRows.js +41 -119
  737. package/plugins/nestedRows/nestedRows.mjs +41 -86
  738. package/plugins/nestedRows/ui/_base.js +1 -9
  739. package/plugins/nestedRows/ui/_base.mjs +1 -8
  740. package/plugins/nestedRows/ui/collapsing.js +28 -134
  741. package/plugins/nestedRows/ui/collapsing.mjs +34 -118
  742. package/plugins/nestedRows/ui/contextMenu.js +2 -53
  743. package/plugins/nestedRows/ui/contextMenu.mjs +2 -32
  744. package/plugins/nestedRows/ui/headers.js +5 -50
  745. package/plugins/nestedRows/ui/headers.mjs +11 -41
  746. package/plugins/nestedRows/utils/rowMoveController.js +28 -78
  747. package/plugins/nestedRows/utils/rowMoveController.mjs +33 -66
  748. package/plugins/persistentState/index.js +0 -2
  749. package/plugins/persistentState/persistentState.js +10 -58
  750. package/plugins/persistentState/persistentState.mjs +10 -37
  751. package/plugins/persistentState/storage.js +9 -25
  752. package/plugins/persistentState/storage.mjs +12 -26
  753. package/plugins/registry.js +7 -51
  754. package/plugins/registry.mjs +8 -34
  755. package/plugins/search/index.js +0 -2
  756. package/plugins/search/search.js +16 -98
  757. package/plugins/search/search.mjs +16 -68
  758. package/plugins/touchScroll/index.js +0 -2
  759. package/plugins/touchScroll/touchScroll.js +15 -76
  760. package/plugins/touchScroll/touchScroll.mjs +15 -58
  761. package/plugins/trimRows/index.js +0 -2
  762. package/plugins/trimRows/trimRows.js +62 -88
  763. package/plugins/trimRows/trimRows.mjs +62 -65
  764. package/plugins/undoRedo/index.js +0 -14
  765. package/plugins/undoRedo/undoRedo.js +48 -218
  766. package/plugins/undoRedo/undoRedo.mjs +48 -188
  767. package/registry.js +0 -11
  768. package/registry.mjs +2 -4
  769. package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
  770. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
  771. package/renderers/autocompleteRenderer/index.js +0 -2
  772. package/renderers/baseRenderer/baseRenderer.js +2 -11
  773. package/renderers/baseRenderer/baseRenderer.mjs +2 -9
  774. package/renderers/baseRenderer/index.js +0 -2
  775. package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
  776. package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
  777. package/renderers/checkboxRenderer/index.js +0 -2
  778. package/renderers/htmlRenderer/htmlRenderer.js +1 -7
  779. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  780. package/renderers/htmlRenderer/index.js +0 -2
  781. package/renderers/index.js +0 -19
  782. package/renderers/index.mjs +3 -5
  783. package/renderers/numericRenderer/index.js +0 -2
  784. package/renderers/numericRenderer/numericRenderer.js +1 -23
  785. package/renderers/numericRenderer/numericRenderer.mjs +1 -10
  786. package/renderers/passwordRenderer/index.js +0 -2
  787. package/renderers/passwordRenderer/passwordRenderer.js +1 -8
  788. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  789. package/renderers/registry.js +7 -16
  790. package/renderers/registry.mjs +7 -14
  791. package/renderers/textRenderer/index.js +0 -2
  792. package/renderers/textRenderer/textRenderer.js +2 -14
  793. package/renderers/textRenderer/textRenderer.mjs +2 -6
  794. package/renderers/timeRenderer/index.js +0 -2
  795. package/renderers/timeRenderer/timeRenderer.js +1 -6
  796. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  797. package/selection/highlight/highlight.js +17 -73
  798. package/selection/highlight/highlight.mjs +31 -64
  799. package/selection/highlight/types/activeHeader.js +1 -21
  800. package/selection/highlight/types/activeHeader.mjs +6 -16
  801. package/selection/highlight/types/area.js +2 -22
  802. package/selection/highlight/types/area.mjs +10 -20
  803. package/selection/highlight/types/cell.js +1 -21
  804. package/selection/highlight/types/cell.mjs +9 -19
  805. package/selection/highlight/types/customSelection.js +2 -22
  806. package/selection/highlight/types/customSelection.mjs +11 -21
  807. package/selection/highlight/types/fill.js +2 -17
  808. package/selection/highlight/types/fill.mjs +9 -14
  809. package/selection/highlight/types/header.js +3 -23
  810. package/selection/highlight/types/header.mjs +13 -23
  811. package/selection/highlight/types/index.js +3 -24
  812. package/selection/highlight/types/index.mjs +3 -10
  813. package/selection/highlight/visualSelection.js +24 -74
  814. package/selection/highlight/visualSelection.mjs +24 -62
  815. package/selection/index.js +0 -14
  816. package/selection/mouseEventHandler.js +19 -30
  817. package/selection/mouseEventHandler.mjs +32 -36
  818. package/selection/range.js +11 -31
  819. package/selection/range.mjs +11 -22
  820. package/selection/selection.js +62 -157
  821. package/selection/selection.mjs +65 -132
  822. package/selection/transformation.js +10 -40
  823. package/selection/transformation.mjs +18 -45
  824. package/selection/utils.js +22 -70
  825. package/selection/utils.mjs +22 -47
  826. package/shortcuts/context.js +23 -78
  827. package/shortcuts/context.mjs +23 -55
  828. package/shortcuts/index.js +0 -2
  829. package/shortcuts/keyObserver.js +4 -17
  830. package/shortcuts/keyObserver.mjs +4 -12
  831. package/shortcuts/manager.js +16 -36
  832. package/shortcuts/manager.mjs +16 -33
  833. package/shortcuts/recorder.js +20 -47
  834. package/shortcuts/recorder.mjs +20 -39
  835. package/shortcuts/utils.js +5 -24
  836. package/shortcuts/utils.mjs +5 -8
  837. package/tableView.js +100 -270
  838. package/tableView.mjs +100 -248
  839. package/translations/changesObservable/observable.js +5 -54
  840. package/translations/changesObservable/observable.mjs +12 -51
  841. package/translations/changesObservable/observer.js +4 -32
  842. package/translations/changesObservable/observer.mjs +9 -29
  843. package/translations/changesObservable/utils.js +1 -5
  844. package/translations/changesObservable/utils.mjs +1 -4
  845. package/translations/index.js +0 -11
  846. package/translations/indexMapper.js +70 -158
  847. package/translations/indexMapper.mjs +70 -125
  848. package/translations/mapCollections/aggregatedCollection.js +9 -51
  849. package/translations/mapCollections/aggregatedCollection.mjs +12 -41
  850. package/translations/mapCollections/index.js +0 -7
  851. package/translations/mapCollections/mapCollection.js +10 -33
  852. package/translations/mapCollections/mapCollection.mjs +10 -22
  853. package/translations/maps/hidingMap.js +2 -35
  854. package/translations/maps/hidingMap.mjs +7 -28
  855. package/translations/maps/index.js +1 -24
  856. package/translations/maps/index.mjs +1 -3
  857. package/translations/maps/indexMap.js +12 -34
  858. package/translations/maps/indexMap.mjs +16 -32
  859. package/translations/maps/indexesSequence.js +3 -41
  860. package/translations/maps/indexesSequence.mjs +9 -32
  861. package/translations/maps/linkedPhysicalIndexToValueMap.js +9 -78
  862. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +16 -59
  863. package/translations/maps/physicalIndexToValueMap.js +2 -39
  864. package/translations/maps/physicalIndexToValueMap.mjs +8 -31
  865. package/translations/maps/trimmingMap.js +2 -35
  866. package/translations/maps/trimmingMap.mjs +7 -28
  867. package/translations/maps/utils/actionsOnIndexes.js +1 -7
  868. package/translations/maps/utils/actionsOnIndexes.mjs +9 -12
  869. package/translations/maps/utils/index.js +0 -13
  870. package/translations/maps/utils/index.mjs +0 -3
  871. package/translations/maps/utils/indexesSequence.js +1 -24
  872. package/translations/maps/utils/indexesSequence.mjs +10 -19
  873. package/translations/maps/utils/physicallyIndexed.js +1 -27
  874. package/translations/maps/utils/physicallyIndexed.mjs +11 -21
  875. package/utils/dataStructures/linkedList.js +15 -56
  876. package/utils/dataStructures/linkedList.mjs +15 -54
  877. package/utils/dataStructures/priorityMap.js +8 -46
  878. package/utils/dataStructures/priorityMap.mjs +8 -29
  879. package/utils/dataStructures/queue.js +6 -17
  880. package/utils/dataStructures/queue.mjs +6 -16
  881. package/utils/dataStructures/stack.js +6 -17
  882. package/utils/dataStructures/stack.mjs +6 -16
  883. package/utils/dataStructures/tree.js +11 -75
  884. package/utils/dataStructures/tree.mjs +11 -54
  885. package/utils/dataStructures/uniqueMap.js +17 -56
  886. package/utils/dataStructures/uniqueMap.mjs +17 -42
  887. package/utils/dataStructures/uniqueSet.js +5 -32
  888. package/utils/dataStructures/uniqueSet.mjs +5 -19
  889. package/utils/ghostTable.js +33 -104
  890. package/utils/ghostTable.mjs +35 -92
  891. package/utils/interval.js +10 -37
  892. package/utils/interval.mjs +7 -29
  893. package/utils/parseTable.js +11 -92
  894. package/utils/parseTable.mjs +11 -62
  895. package/utils/rootInstance.js +3 -14
  896. package/utils/rootInstance.mjs +3 -3
  897. package/utils/samplesGenerator.js +15 -51
  898. package/utils/samplesGenerator.mjs +17 -44
  899. package/utils/staticRegister.js +6 -33
  900. package/utils/staticRegister.mjs +6 -19
  901. package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
  902. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
  903. package/validators/autocompleteValidator/index.js +0 -2
  904. package/validators/dateValidator/dateValidator.js +2 -21
  905. package/validators/dateValidator/dateValidator.mjs +2 -11
  906. package/validators/dateValidator/index.js +0 -2
  907. package/validators/index.js +0 -11
  908. package/validators/index.mjs +3 -5
  909. package/validators/numericValidator/index.js +0 -2
  910. package/validators/numericValidator/numericValidator.js +1 -7
  911. package/validators/numericValidator/numericValidator.mjs +1 -3
  912. package/validators/registry.js +7 -16
  913. package/validators/registry.mjs +7 -14
  914. package/validators/timeValidator/index.js +0 -2
  915. package/validators/timeValidator/timeValidator.js +6 -18
  916. package/validators/timeValidator/timeValidator.mjs +8 -13
  917. package/utils/sortingAlgorithms/mergeSort.js +0 -120
  918. package/utils/sortingAlgorithms/mergeSort.mjs +0 -110
@@ -1,23 +1,13 @@
1
1
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
-
3
2
  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."); }
4
-
5
3
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
-
7
4
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
-
9
5
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
-
11
6
  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."); }
12
-
13
7
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
-
15
8
  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; }
16
-
17
9
  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; }
18
-
19
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
-
21
11
  import "core-js/modules/es.function.name.js";
22
12
  import "core-js/modules/es.array.from.js";
23
13
  import "core-js/modules/es.string.iterator.js";
@@ -31,15 +21,10 @@ import "core-js/modules/es.array.iterator.js";
31
21
  import "core-js/modules/web.dom-collections.iterator.js";
32
22
  import "core-js/modules/es.array.slice.js";
33
23
  import "core-js/modules/es.regexp.exec.js";
34
-
35
24
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
36
-
37
25
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
38
-
39
26
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
40
-
41
27
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
42
-
43
28
  import { hasClass, index, offset, removeClass, removeTextNodes, overlayContainsElement, closest, outerHeight, outerWidth, innerHeight, isVisible as _isVisible } from "../../../helpers/dom/element.mjs";
44
29
  import { isFunction } from "../../../helpers/function.mjs";
45
30
  import ColumnFilter from "./filter/column.mjs";
@@ -47,19 +32,17 @@ import RowFilter from "./filter/row.mjs";
47
32
  import { Renderer } from "./renderer/index.mjs";
48
33
  import ColumnUtils from "./utils/column.mjs";
49
34
  import RowUtils from "./utils/row.mjs";
50
- import { CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER } from "./overlay/index.mjs";
51
- /**
52
- * @todo These mixes are never added to the class Table, however their members are used here.
53
- * @todo Continue: Potentially it works only, because some of these mixes are added to every inherited class.
54
- * @todo Refactoring, move code from `if(this.isMaster)` into MasterTable, and others like that.
55
- * @mixes stickyColumnsStart
56
- * @mixes stickyRowsBottom
57
- * @mixes stickyRowsTop
58
- * @mixes calculatedRows
59
- * @mixes calculatedColumns
60
- * @abstract
61
- */
62
-
35
+ import { CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER } from "./overlay/index.mjs"; /**
36
+ * @todo These mixes are never added to the class Table, however their members are used here.
37
+ * @todo Continue: Potentially it works only, because some of these mixes are added to every inherited class.
38
+ * @todo Refactoring, move code from `if(this.isMaster)` into MasterTable, and others like that.
39
+ * @mixes stickyColumnsStart
40
+ * @mixes stickyRowsBottom
41
+ * @mixes stickyRowsTop
42
+ * @mixes calculatedRows
43
+ * @mixes calculatedColumns
44
+ * @abstract
45
+ */
63
46
  var Table = /*#__PURE__*/function () {
64
47
  /**
65
48
  * The walkontable settings.
@@ -98,70 +81,55 @@ var Table = /*#__PURE__*/function () {
98
81
  */
99
82
  function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
100
83
  var _this = this;
101
-
102
84
  _classCallCheck(this, Table);
103
-
104
85
  _defineProperty(this, "wtSettings", null);
105
-
106
86
  _defineProperty(this, "domBindings", void 0);
107
-
108
87
  _defineProperty(this, "TBODY", null);
109
-
110
88
  _defineProperty(this, "THEAD", null);
111
-
112
89
  _defineProperty(this, "COLGROUP", null);
113
-
114
90
  _defineProperty(this, "hasTableHeight", true);
115
-
116
91
  _defineProperty(this, "hasTableWidth", true);
117
-
118
92
  _defineProperty(this, "isTableVisible", false);
119
-
120
93
  _defineProperty(this, "tableOffset", 0);
121
-
122
94
  _defineProperty(this, "holderOffset", 0);
123
-
124
95
  this.domBindings = domBindings;
125
96
  /**
126
97
  * Indicates if this instance is of type `MasterTable` (i.e. It is NOT an overlay).
127
98
  *
128
99
  * @type {boolean}
129
100
  */
130
-
131
101
  this.isMaster = name === 'master';
132
102
  this.name = name;
133
103
  this.dataAccessObject = dataAccessObject;
134
104
  this.facadeGetter = facadeGetter;
135
- this.wtSettings = wtSettings; // legacy support
105
+ this.wtSettings = wtSettings;
136
106
 
107
+ // legacy support
137
108
  this.instance = this.dataAccessObject.wot; // TODO refactoring: it might be removed here, and provides legacy support through facade.
138
-
139
109
  this.wot = this.dataAccessObject.wot;
140
110
  this.TABLE = domBindings.rootTable;
141
- removeTextNodes(this.TABLE); // TODO refactoring, to recognize the legitimacy of moving them into domBidings
111
+ removeTextNodes(this.TABLE);
142
112
 
113
+ // TODO refactoring, to recognize the legitimacy of moving them into domBidings
143
114
  this.spreader = this.createSpreader(this.TABLE);
144
115
  this.hider = this.createHider(this.spreader);
145
116
  this.holder = this.createHolder(this.hider);
146
117
  this.wtRootElement = this.holder.parentNode;
147
-
148
118
  if (this.isMaster) {
149
119
  this.alignOverlaysWithTrimmingContainer(); // todo wow, It calls method from child class (MasterTable).
150
120
  }
151
121
 
152
122
  this.fixTableDomTree();
153
123
  this.rowFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
154
-
155
124
  this.columnFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
156
-
157
125
  this.correctHeaderWidth = false;
158
- var origRowHeaderWidth = this.wtSettings.getSettingPure('rowHeaderWidth'); // Fix for jumping row headers (https://github.com/handsontable/handsontable/issues/3850)
126
+ var origRowHeaderWidth = this.wtSettings.getSettingPure('rowHeaderWidth');
159
127
 
128
+ // Fix for jumping row headers (https://github.com/handsontable/handsontable/issues/3850)
160
129
  this.wtSettings.update('rowHeaderWidth', function () {
161
130
  return _this._modifyRowHeaderWidth(origRowHeaderWidth);
162
131
  });
163
132
  this.rowUtils = new RowUtils(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
164
-
165
133
  this.columnUtils = new ColumnUtils(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
166
134
 
167
135
  this.tableRenderer = new Renderer({
@@ -175,6 +143,7 @@ var Table = /*#__PURE__*/function () {
175
143
  cellRenderer: this.wtSettings.getSettingPure('cellRenderer')
176
144
  });
177
145
  }
146
+
178
147
  /**
179
148
  * Returns a boolean that is true if this Table represents a specific overlay, identified by the overlay name.
180
149
  * For MasterTable, it returns false.
@@ -182,126 +151,107 @@ var Table = /*#__PURE__*/function () {
182
151
  * @param {string} overlayTypeName The overlay type.
183
152
  * @returns {boolean}
184
153
  */
185
-
186
-
187
154
  _createClass(Table, [{
188
155
  key: "is",
189
156
  value: function is(overlayTypeName) {
190
157
  // todo refactoring: eliminate all protected and private usages
191
158
  return this.name === overlayTypeName;
192
159
  }
160
+
193
161
  /**
194
162
  *
195
163
  */
196
-
197
164
  }, {
198
165
  key: "fixTableDomTree",
199
166
  value: function fixTableDomTree() {
200
167
  var rootDocument = this.domBindings.rootDocument;
201
168
  this.TBODY = this.TABLE.querySelector('tbody');
202
-
203
169
  if (!this.TBODY) {
204
170
  this.TBODY = rootDocument.createElement('tbody');
205
171
  this.TABLE.appendChild(this.TBODY);
206
172
  }
207
-
208
173
  this.THEAD = this.TABLE.querySelector('thead');
209
-
210
174
  if (!this.THEAD) {
211
175
  this.THEAD = rootDocument.createElement('thead');
212
176
  this.TABLE.insertBefore(this.THEAD, this.TBODY);
213
177
  }
214
-
215
178
  this.COLGROUP = this.TABLE.querySelector('colgroup');
216
-
217
179
  if (!this.COLGROUP) {
218
180
  this.COLGROUP = rootDocument.createElement('colgroup');
219
181
  this.TABLE.insertBefore(this.COLGROUP, this.THEAD);
220
182
  }
221
183
  }
184
+
222
185
  /**
223
186
  * @param {HTMLTableElement} table An element to process.
224
187
  * @returns {HTMLElement}
225
188
  */
226
-
227
189
  }, {
228
190
  key: "createSpreader",
229
191
  value: function createSpreader(table) {
230
192
  var parent = table.parentNode;
231
193
  var spreader;
232
-
233
194
  if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !hasClass(parent, 'wtHolder')) {
234
195
  spreader = this.domBindings.rootDocument.createElement('div');
235
196
  spreader.className = 'wtSpreader';
236
-
237
197
  if (parent) {
238
198
  // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
239
199
  parent.insertBefore(spreader, table);
240
200
  }
241
-
242
201
  spreader.appendChild(table);
243
202
  }
244
-
245
203
  spreader.style.position = 'relative';
246
204
  return spreader;
247
205
  }
206
+
248
207
  /**
249
208
  * @param {HTMLElement} spreader An element to the hider element is injected.
250
209
  * @returns {HTMLElement}
251
210
  */
252
-
253
211
  }, {
254
212
  key: "createHider",
255
213
  value: function createHider(spreader) {
256
214
  var parent = spreader.parentNode;
257
215
  var hider;
258
-
259
216
  if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !hasClass(parent, 'wtHolder')) {
260
217
  hider = this.domBindings.rootDocument.createElement('div');
261
218
  hider.className = 'wtHider';
262
-
263
219
  if (parent) {
264
220
  // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
265
221
  parent.insertBefore(hider, spreader);
266
222
  }
267
-
268
223
  hider.appendChild(spreader);
269
224
  }
270
-
271
225
  return hider;
272
226
  }
227
+
273
228
  /**
274
229
  *
275
230
  * @param {HTMLElement} hider An element to the holder element is injected.
276
231
  * @returns {HTMLElement}
277
232
  */
278
-
279
233
  }, {
280
234
  key: "createHolder",
281
235
  value: function createHolder(hider) {
282
236
  var parent = hider.parentNode;
283
237
  var holder;
284
-
285
238
  if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !hasClass(parent, 'wtHolder')) {
286
239
  holder = this.domBindings.rootDocument.createElement('div');
287
240
  holder.style.position = 'relative';
288
241
  holder.className = 'wtHolder';
289
-
290
242
  if (parent) {
291
243
  // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
292
244
  parent.insertBefore(holder, hider);
293
245
  }
294
-
295
246
  if (this.isMaster) {
296
247
  holder.parentNode.className += 'ht_master handsontable';
297
248
  holder.parentNode.setAttribute('dir', this.wtSettings.getSettingPure('rtlMode') ? 'rtl' : 'ltr');
298
249
  }
299
-
300
250
  holder.appendChild(hider);
301
251
  }
302
-
303
252
  return holder;
304
253
  }
254
+
305
255
  /**
306
256
  * Redraws the table.
307
257
  *
@@ -309,15 +259,14 @@ var Table = /*#__PURE__*/function () {
309
259
  * If FALSE or UNDEFINED, will perform a full redraw.
310
260
  * @returns {Table}
311
261
  */
312
-
313
262
  }, {
314
263
  key: "draw",
315
264
  value: function draw() {
316
265
  var fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
317
266
  var wtSettings = this.wtSettings;
318
267
  var _this$dataAccessObjec = this.dataAccessObject,
319
- wtOverlays = _this$dataAccessObjec.wtOverlays,
320
- wtViewport = _this$dataAccessObjec.wtViewport;
268
+ wtOverlays = _this$dataAccessObjec.wtOverlays,
269
+ wtViewport = _this$dataAccessObjec.wtViewport;
321
270
  var totalRows = wtSettings.getSetting('totalRows');
322
271
  var totalColumns = wtSettings.getSetting('totalColumns');
323
272
  var rowHeaders = wtSettings.getSetting('rowHeaders');
@@ -326,32 +275,26 @@ var Table = /*#__PURE__*/function () {
326
275
  var columnHeadersCount = columnHeaders.length;
327
276
  var syncScroll = false;
328
277
  var runFastDraw = fastDraw;
329
-
330
278
  if (this.isMaster) {
331
279
  this.holderOffset = offset(this.holder);
332
280
  runFastDraw = wtViewport.createRenderCalculators(runFastDraw);
333
-
334
281
  if (rowHeadersCount && !wtSettings.getSetting('fixedColumnsStart')) {
335
282
  var leftScrollPos = wtOverlays.inlineStartOverlay.getScrollPosition();
336
283
  var previousState = this.correctHeaderWidth;
337
284
  this.correctHeaderWidth = leftScrollPos !== 0;
338
-
339
285
  if (previousState !== this.correctHeaderWidth) {
340
286
  runFastDraw = false;
341
287
  }
342
288
  }
343
289
  }
344
-
345
290
  if (this.isMaster) {
346
291
  syncScroll = wtOverlays.updateStateOfRendering();
347
292
  }
348
-
349
293
  if (runFastDraw) {
350
294
  if (this.isMaster) {
351
295
  // in case we only scrolled without redraw, update visible rows information in oldRowsCalculator
352
296
  wtViewport.createVisibleCalculators();
353
297
  }
354
-
355
298
  if (wtOverlays) {
356
299
  wtOverlays.refresh(true);
357
300
  }
@@ -361,111 +304,93 @@ var Table = /*#__PURE__*/function () {
361
304
  } else {
362
305
  this.tableOffset = this.dataAccessObject.parentTableOffset;
363
306
  }
364
-
365
307
  var startRow = totalRows > 0 ? this.getFirstRenderedRow() : 0;
366
308
  var startColumn = totalColumns > 0 ? this.getFirstRenderedColumn() : 0;
367
309
  this.rowFilter = new RowFilter(startRow, totalRows, columnHeadersCount);
368
310
  this.columnFilter = new ColumnFilter(startColumn, totalColumns, rowHeadersCount);
369
- var performRedraw = true; // Only master table rendering can be skipped
311
+ var performRedraw = true;
370
312
 
313
+ // Only master table rendering can be skipped
371
314
  if (this.isMaster) {
372
315
  this.alignOverlaysWithTrimmingContainer(); // todo It calls method from child class (MasterTable).
373
-
374
316
  var skipRender = {};
375
317
  this.wtSettings.getSetting('beforeDraw', true, skipRender);
376
318
  performRedraw = skipRender.skipRender !== true;
377
319
  }
378
-
379
320
  if (performRedraw) {
380
321
  this.tableRenderer.setHeaderContentRenderers(rowHeaders, columnHeaders);
381
-
382
322
  if (this.is(CLONE_BOTTOM) || this.is(CLONE_BOTTOM_INLINE_START_CORNER)) {
383
323
  // do NOT render headers on the bottom or bottom-left corner overlay
384
324
  this.tableRenderer.setHeaderContentRenderers(rowHeaders, []);
385
325
  }
386
-
387
326
  this.resetOversizedRows();
388
327
  this.tableRenderer.setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
389
328
  var workspaceWidth;
390
-
391
329
  if (this.isMaster) {
392
330
  workspaceWidth = this.dataAccessObject.workspaceWidth;
393
331
  this.dataAccessObject.wtViewport.containerWidth = null;
394
332
  this.markOversizedColumnHeaders();
395
333
  }
396
-
397
334
  this.adjustColumnHeaderHeights();
398
-
399
335
  if (this.isMaster || this.is(CLONE_BOTTOM)) {
400
336
  this.markOversizedRows();
401
337
  }
402
-
403
338
  if (this.isMaster) {
404
339
  this.dataAccessObject.wtViewport.createVisibleCalculators();
405
340
  this.dataAccessObject.wtOverlays.refresh(false);
406
341
  this.dataAccessObject.wtOverlays.applyToDOM();
407
342
  var hiderWidth = outerWidth(this.hider);
408
343
  var tableWidth = outerWidth(this.TABLE);
409
-
410
344
  if (hiderWidth !== 0 && tableWidth !== hiderWidth) {
411
345
  // Recalculate the column widths, if width changes made in the overlays removed the scrollbar, thus changing the viewport width.
412
346
  this.columnUtils.calculateWidths();
413
347
  this.tableRenderer.renderer.colGroup.render();
414
348
  }
415
-
416
349
  if (workspaceWidth !== this.dataAccessObject.wtViewport.getWorkspaceWidth()) {
417
350
  // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching
418
351
  this.dataAccessObject.wtViewport.containerWidth = null;
419
352
  this.columnUtils.calculateWidths();
420
353
  this.tableRenderer.renderer.colGroup.render();
421
354
  }
422
-
423
355
  this.wtSettings.getSetting('onDraw', true);
424
356
  } else if (this.is(CLONE_BOTTOM)) {
425
357
  this.dataAccessObject.cloneSource.wtOverlays.adjustElementsSize();
426
358
  }
427
359
  }
428
360
  }
429
-
361
+ var positionChanged = false;
430
362
  if (this.isMaster) {
431
- var positionChanged = wtOverlays.topOverlay.resetFixedPosition();
432
-
363
+ positionChanged = wtOverlays.topOverlay.resetFixedPosition();
433
364
  if (wtOverlays.bottomOverlay.clone) {
434
365
  positionChanged = wtOverlays.bottomOverlay.resetFixedPosition() || positionChanged;
435
366
  }
436
-
437
367
  positionChanged = wtOverlays.inlineStartOverlay.resetFixedPosition() || positionChanged;
438
-
439
368
  if (wtOverlays.topInlineStartCornerOverlay) {
440
369
  wtOverlays.topInlineStartCornerOverlay.resetFixedPosition();
441
370
  }
442
-
443
371
  if (wtOverlays.bottomInlineStartCornerOverlay && wtOverlays.bottomInlineStartCornerOverlay.clone) {
444
372
  wtOverlays.bottomInlineStartCornerOverlay.resetFixedPosition();
445
373
  }
446
-
447
- if (positionChanged) {
448
- // It refreshes the cells borders caused by a 1px shift (introduced by overlays which add or
449
- // remove `innerBorderTop` and `innerBorderInlineStart` CSS classes to the DOM element. This happens
450
- // when there is a switch between rendering from 0 to N rows/columns and vice versa).
451
- wtOverlays.refreshAll();
452
- wtOverlays.adjustElementsSize();
453
- }
454
374
  }
455
-
456
- this.refreshSelections(runFastDraw);
457
-
375
+ if (positionChanged) {
376
+ // It refreshes the cells borders caused by a 1px shift (introduced by overlays which add or
377
+ // remove `innerBorderTop` and `innerBorderInlineStart` CSS classes to the DOM element. This happens
378
+ // when there is a switch between rendering from 0 to N rows/columns and vice versa).
379
+ wtOverlays.refreshAll(); // `refreshAll()` internally already calls `refreshSelections()` method
380
+ wtOverlays.adjustElementsSize();
381
+ } else {
382
+ this.refreshSelections(runFastDraw);
383
+ }
458
384
  if (syncScroll) {
459
385
  wtOverlays.syncScrollWithMaster();
460
386
  }
461
-
462
387
  this.dataAccessObject.drawn = true;
463
388
  return this;
464
389
  }
390
+
465
391
  /**
466
392
  * @param {number} col The visual column index.
467
393
  */
468
-
469
394
  }, {
470
395
  key: "markIfOversizedColumnHeader",
471
396
  value: function markIfOversizedColumnHeader(col) {
@@ -476,23 +401,18 @@ var Table = /*#__PURE__*/function () {
476
401
  var currentHeader;
477
402
  var currentHeaderHeight;
478
403
  var columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];
479
-
480
404
  while (level) {
481
405
  level -= 1;
482
406
  previousColHeaderHeight = this.getColumnHeaderHeight(level);
483
407
  currentHeader = this.getColumnHeader(sourceColIndex, level);
484
-
485
408
  if (!currentHeader) {
486
409
  /* eslint-disable no-continue */
487
410
  continue;
488
411
  }
489
-
490
412
  currentHeaderHeight = innerHeight(currentHeader);
491
-
492
413
  if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {
493
414
  this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
494
415
  }
495
-
496
416
  if (Array.isArray(columnHeaderHeightSetting)) {
497
417
  if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== void 0) {
498
418
  this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
@@ -500,16 +420,15 @@ var Table = /*#__PURE__*/function () {
500
420
  } else if (!isNaN(columnHeaderHeightSetting)) {
501
421
  this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
502
422
  }
503
-
504
423
  if (this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] < (columnHeaderHeightSetting[level] || columnHeaderHeightSetting)) {
505
424
  this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level] || columnHeaderHeightSetting; // eslint-disable-line max-len
506
425
  }
507
426
  }
508
427
  }
428
+
509
429
  /**
510
430
  *
511
431
  */
512
-
513
432
  }, {
514
433
  key: "adjustColumnHeaderHeights",
515
434
  value: function adjustColumnHeaderHeights() {
@@ -517,126 +436,109 @@ var Table = /*#__PURE__*/function () {
517
436
  var children = this.THEAD.childNodes;
518
437
  var oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
519
438
  var columnHeaders = wtSettings.getSetting('columnHeaders');
520
-
521
439
  for (var i = 0, len = columnHeaders.length; i < len; i++) {
522
440
  if (oversizedColumnHeaders[i]) {
523
441
  if (!children[i] || children[i].childNodes.length === 0) {
524
442
  return;
525
443
  }
526
-
527
444
  children[i].childNodes[0].style.height = "".concat(oversizedColumnHeaders[i], "px");
528
445
  }
529
446
  }
530
447
  }
448
+
531
449
  /**
532
450
  * Resets cache of row heights. The cache should be cached for each render cycle in a case
533
451
  * when new cell values have content which increases/decreases cell height.
534
452
  */
535
-
536
453
  }, {
537
454
  key: "resetOversizedRows",
538
455
  value: function resetOversizedRows() {
539
456
  var wtSettings = this.wtSettings;
540
457
  var wtViewport = this.dataAccessObject.wtViewport;
541
-
542
458
  if (!this.isMaster && !this.is(CLONE_BOTTOM)) {
543
459
  return;
544
460
  }
545
-
546
461
  if (!wtSettings.getSetting('externalRowCalculator')) {
547
- var rowsToRender = this.getRenderedRowsCount(); // Reset the oversized row cache for rendered rows
462
+ var rowsToRender = this.getRenderedRowsCount();
548
463
 
464
+ // Reset the oversized row cache for rendered rows
549
465
  for (var visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
550
466
  var sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);
551
-
552
467
  if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {
553
468
  wtViewport.oversizedRows[sourceRow] = void 0;
554
469
  }
555
470
  }
556
471
  }
557
472
  }
473
+
558
474
  /**
559
475
  * @param {string} className The CSS class name to remove from the table cells.
560
476
  */
561
-
562
477
  }, {
563
478
  key: "removeClassFromCells",
564
479
  value: function removeClassFromCells(className) {
565
480
  var nodes = this.TABLE.querySelectorAll(".".concat(className));
566
-
567
481
  for (var i = 0, len = nodes.length; i < len; i++) {
568
482
  removeClass(nodes[i], className);
569
483
  }
570
484
  }
485
+
571
486
  /**
572
487
  * Refresh the table selection by re-rendering Selection instances connected with that instance.
573
488
  *
574
489
  * @param {boolean} fastDraw If fast drawing is enabled than additionally className clearing is applied.
575
490
  */
576
-
577
491
  }, {
578
492
  key: "refreshSelections",
579
493
  value: function refreshSelections(fastDraw) {
580
494
  var wtSettings = this.wtSettings;
581
495
  var selections = this.dataAccessObject.selections;
582
-
583
496
  if (!selections) {
584
497
  return;
585
498
  }
586
-
587
499
  var highlights = Array.from(selections);
588
500
  var len = highlights.length;
589
-
590
501
  if (fastDraw) {
591
502
  var classesToRemove = [];
592
-
593
503
  for (var i = 0; i < len; i++) {
594
504
  var _highlights$i$setting = highlights[i].settings,
595
- highlightHeaderClassName = _highlights$i$setting.highlightHeaderClassName,
596
- highlightRowClassName = _highlights$i$setting.highlightRowClassName,
597
- highlightColumnClassName = _highlights$i$setting.highlightColumnClassName;
505
+ highlightHeaderClassName = _highlights$i$setting.highlightHeaderClassName,
506
+ highlightRowClassName = _highlights$i$setting.highlightRowClassName,
507
+ highlightColumnClassName = _highlights$i$setting.highlightColumnClassName;
598
508
  var classNames = highlights[i].classNames;
599
509
  var classNamesLength = classNames.length;
600
-
601
510
  for (var j = 0; j < classNamesLength; j++) {
602
511
  if (!classesToRemove.includes(classNames[j])) {
603
512
  classesToRemove.push(classNames[j]);
604
513
  }
605
514
  }
606
-
607
515
  if (highlightHeaderClassName && !classesToRemove.includes(highlightHeaderClassName)) {
608
516
  classesToRemove.push(highlightHeaderClassName);
609
517
  }
610
-
611
518
  if (highlightRowClassName && !classesToRemove.includes(highlightRowClassName)) {
612
519
  classesToRemove.push(highlightRowClassName);
613
520
  }
614
-
615
521
  if (highlightColumnClassName && !classesToRemove.includes(highlightColumnClassName)) {
616
522
  classesToRemove.push(highlightColumnClassName);
617
523
  }
618
524
  }
619
-
620
525
  var additionalClassesToRemove = wtSettings.getSetting('onBeforeRemoveCellClassNames');
621
-
622
526
  if (Array.isArray(additionalClassesToRemove)) {
623
527
  for (var _i = 0; _i < additionalClassesToRemove.length; _i++) {
624
528
  classesToRemove.push(additionalClassesToRemove[_i]);
625
529
  }
626
530
  }
627
-
628
531
  var classesToRemoveLength = classesToRemove.length;
629
-
630
532
  for (var _i2 = 0; _i2 < classesToRemoveLength; _i2++) {
631
533
  // there was no rerender, so we need to remove classNames by ourselves
632
534
  this.removeClassFromCells(classesToRemove[_i2]);
633
535
  }
634
536
  }
635
-
636
537
  for (var _i3 = 0; _i3 < len; _i3++) {
637
538
  highlights[_i3].draw(this.facadeGetter(), fastDraw);
638
539
  }
639
540
  }
541
+
640
542
  /**
641
543
  * Get cell element at coords.
642
544
  * Negative coords.row or coords.col are used to retrieve header cells. If there are multiple header levels, the
@@ -656,21 +558,17 @@ var Table = /*#__PURE__*/function () {
656
558
  * -3 column before viewport
657
559
  * -4 column after viewport.
658
560
  */
659
-
660
561
  }, {
661
562
  key: "getCell",
662
563
  value: function getCell(coords) {
663
564
  var row = coords.row;
664
565
  var column = coords.col;
665
566
  var hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column);
666
-
667
567
  if (hookResult && Array.isArray(hookResult)) {
668
568
  var _hookResult = _slicedToArray(hookResult, 2);
669
-
670
569
  row = _hookResult[0];
671
570
  column = _hookResult[1];
672
571
  }
673
-
674
572
  if (this.isRowBeforeRenderedRows(row)) {
675
573
  // row before rendered rows
676
574
  return -1;
@@ -684,27 +582,22 @@ var Table = /*#__PURE__*/function () {
684
582
  // column after rendered columns
685
583
  return -4;
686
584
  }
687
-
688
585
  var TR;
689
-
690
586
  if (row < 0) {
691
587
  TR = this.THEAD.childNodes[this.rowFilter.sourceRowToVisibleColHeadedRow(row)];
692
588
  } else {
693
589
  TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
694
590
  }
695
-
696
591
  if (!TR && row >= 0) {
697
592
  throw new Error('TR was expected to be rendered but is not');
698
593
  }
699
-
700
594
  var TD = TR.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column)];
701
-
702
595
  if (!TD && column >= 0) {
703
596
  throw new Error('TD or TH was expected to be rendered but is not');
704
597
  }
705
-
706
598
  return TD;
707
599
  }
600
+
708
601
  /**
709
602
  * GetColumnHeader.
710
603
  *
@@ -712,7 +605,6 @@ var Table = /*#__PURE__*/function () {
712
605
  * @param {number} [level=0] Header level (0 = most distant to the table).
713
606
  * @returns {object} HTMLElement on success or undefined on error.
714
607
  */
715
-
716
608
  }, {
717
609
  key: "getColumnHeader",
718
610
  value: function getColumnHeader(col) {
@@ -720,13 +612,13 @@ var Table = /*#__PURE__*/function () {
720
612
  var TR = this.THEAD.childNodes[level];
721
613
  return TR === null || TR === void 0 ? void 0 : TR.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(col)];
722
614
  }
615
+
723
616
  /**
724
617
  * Gets all columns headers (TH elements) from the table.
725
618
  *
726
619
  * @param {number} column A source column index.
727
620
  * @returns {HTMLTableCellElement[]}
728
621
  */
729
-
730
622
  }, {
731
623
  key: "getColumnHeaders",
732
624
  value: function getColumnHeaders(column) {
@@ -734,13 +626,13 @@ var Table = /*#__PURE__*/function () {
734
626
  var visibleColumn = this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column);
735
627
  this.THEAD.childNodes.forEach(function (TR) {
736
628
  var TH = TR.childNodes[visibleColumn];
737
-
738
629
  if (TH) {
739
630
  THs.push(TH);
740
631
  }
741
632
  });
742
633
  return THs;
743
634
  }
635
+
744
636
  /**
745
637
  * GetRowHeader.
746
638
  *
@@ -748,78 +640,65 @@ var Table = /*#__PURE__*/function () {
748
640
  * @param {number} [level=0] Header level (0 = most distant to the table).
749
641
  * @returns {HTMLElement} HTMLElement on success or Number one of the exit codes on error: `null table doesn't have row headers`.
750
642
  */
751
-
752
643
  }, {
753
644
  key: "getRowHeader",
754
645
  value: function getRowHeader(row) {
755
646
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
756
-
757
647
  if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
758
648
  return;
759
649
  }
760
-
761
650
  var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
762
-
763
651
  if (level >= rowHeadersCount) {
764
652
  return;
765
653
  }
766
-
767
654
  var TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
768
655
  return TR === null || TR === void 0 ? void 0 : TR.childNodes[level];
769
656
  }
657
+
770
658
  /**
771
659
  * Gets all rows headers (TH elements) from the table.
772
660
  *
773
661
  * @param {number} row A source row index.
774
662
  * @returns {HTMLTableCellElement[]}
775
663
  */
776
-
777
664
  }, {
778
665
  key: "getRowHeaders",
779
666
  value: function getRowHeaders(row) {
780
667
  if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
781
668
  return [];
782
669
  }
783
-
784
670
  var THs = [];
785
671
  var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
786
-
787
672
  for (var renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++) {
788
673
  var TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
789
674
  var TH = TR === null || TR === void 0 ? void 0 : TR.childNodes[renderedRowIndex];
790
-
791
675
  if (TH) {
792
676
  THs.push(TH);
793
677
  }
794
678
  }
795
-
796
679
  return THs;
797
680
  }
681
+
798
682
  /**
799
683
  * Returns cell coords object for a given TD (or a child element of a TD element).
800
684
  *
801
685
  * @param {HTMLTableCellElement} TD A cell DOM element (or a child of one).
802
686
  * @returns {CellCoords|null} The coordinates of the provided TD element (or the closest TD element) or null, if the provided element is not applicable.
803
687
  */
804
-
805
688
  }, {
806
689
  key: "getCoords",
807
690
  value: function getCoords(TD) {
808
691
  var cellElement = TD;
809
-
810
692
  if (cellElement.nodeName !== 'TD' && cellElement.nodeName !== 'TH') {
811
693
  cellElement = closest(cellElement, ['TD', 'TH']);
812
694
  }
813
-
814
695
  if (cellElement === null) {
815
696
  return null;
816
697
  }
817
-
818
698
  var TR = cellElement.parentNode;
819
699
  var CONTAINER = TR.parentNode;
820
700
  var row = index(TR);
821
701
  var col = cellElement.cellIndex;
822
-
823
702
  if (overlayContainsElement(CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || overlayContainsElement(CLONE_TOP, cellElement, this.wtRootElement)) {
824
703
  if (CONTAINER.nodeName === 'THEAD') {
825
704
  row -= CONTAINER.childNodes.length;
@@ -832,26 +711,23 @@ var Table = /*#__PURE__*/function () {
832
711
  } else {
833
712
  row = this.rowFilter.renderedToSource(row);
834
713
  }
835
-
836
714
  if (overlayContainsElement(CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || overlayContainsElement(CLONE_INLINE_START, cellElement, this.wtRootElement) || overlayContainsElement(CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement)) {
837
715
  col = this.columnFilter.offsettedTH(col);
838
716
  } else {
839
717
  col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
840
718
  }
841
-
842
719
  return this.wot.createCellCoords(row, col);
843
720
  }
721
+
844
722
  /**
845
723
  * Check if any of the rendered rows is higher than expected, and if so, cache them.
846
724
  */
847
-
848
725
  }, {
849
726
  key: "markOversizedRows",
850
727
  value: function markOversizedRows() {
851
728
  if (this.wtSettings.getSetting('externalRowCalculator')) {
852
729
  return;
853
730
  }
854
-
855
731
  var rowCount = this.TBODY.childNodes.length;
856
732
  var expectedTableHeight = rowCount * this.wtSettings.getSetting('defaultRowHeight');
857
733
  var actualTableHeight = innerHeight(this.TBODY) - 1;
@@ -860,79 +736,73 @@ var Table = /*#__PURE__*/function () {
860
736
  var sourceRowIndex;
861
737
  var currentTr;
862
738
  var rowHeader;
863
-
864
739
  if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {
865
740
  // If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them
866
741
  return;
867
742
  }
868
-
869
743
  while (rowCount) {
870
744
  rowCount -= 1;
871
745
  sourceRowIndex = this.rowFilter.renderedToSource(rowCount);
872
746
  previousRowHeight = this.getRowHeight(sourceRowIndex);
873
747
  currentTr = this.getTrForRow(sourceRowIndex);
874
748
  rowHeader = currentTr.querySelector('th');
875
-
876
749
  if (rowHeader) {
877
750
  rowInnerHeight = innerHeight(rowHeader);
878
751
  } else {
879
752
  rowInnerHeight = innerHeight(currentTr) - 1;
880
753
  }
881
-
882
754
  if (!previousRowHeight && this.wtSettings.getSetting('defaultRowHeight') < rowInnerHeight || previousRowHeight < rowInnerHeight) {
883
755
  rowInnerHeight += 1;
884
756
  this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowInnerHeight;
885
757
  }
886
758
  }
887
759
  }
760
+
888
761
  /**
889
762
  * @param {number} row The visual row index.
890
763
  * @returns {HTMLTableElement}
891
764
  */
892
-
893
765
  }, {
894
766
  key: "getTrForRow",
895
767
  value: function getTrForRow(row) {
896
768
  return this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
897
769
  }
770
+
898
771
  /**
899
772
  * Checks if the column index (negative value from -1 to N) is rendered.
900
773
  *
901
774
  * @param {number} column The column index (negative value from -1 to N).
902
775
  * @returns {boolean}
903
776
  */
904
-
905
777
  }, {
906
778
  key: "isColumnHeaderRendered",
907
779
  value: function isColumnHeaderRendered(column) {
908
780
  if (column >= 0) {
909
781
  return false;
910
782
  }
911
-
912
783
  var rowHeaders = this.wtSettings.getSetting('rowHeaders');
913
784
  var rowHeadersCount = rowHeaders.length;
914
785
  return Math.abs(column) <= rowHeadersCount;
915
786
  }
787
+
916
788
  /**
917
789
  * Checks if the row index (negative value from -1 to N) is rendered.
918
790
  *
919
791
  * @param {number} row The row index (negative value from -1 to N).
920
792
  * @returns {boolean}
921
793
  */
922
-
923
794
  }, {
924
795
  key: "isRowHeaderRendered",
925
796
  value: function isRowHeaderRendered(row) {
926
797
  if (row >= 0) {
927
798
  return false;
928
799
  }
929
-
930
800
  var columnHeaders = this.wtSettings.getSetting('columnHeaders');
931
801
  var columnHeadersCount = columnHeaders.length;
932
802
  return Math.abs(row) <= columnHeadersCount;
933
803
  }
934
- /* eslint-disable jsdoc/require-description-complete-sentence */
935
804
 
805
+ /* eslint-disable jsdoc/require-description-complete-sentence */
936
806
  /**
937
807
  * Check if the given row index is lower than the index of the first row that
938
808
  * is currently rendered and return TRUE in that case, or FALSE otherwise.
@@ -961,23 +831,21 @@ var Table = /*#__PURE__*/function () {
961
831
  * @function isRowBeforeRenderedRows
962
832
  * @returns {boolean}
963
833
  */
964
-
965
834
  /* eslint-enable jsdoc/require-description-complete-sentence */
966
-
967
835
  }, {
968
836
  key: "isRowBeforeRenderedRows",
969
837
  value: function isRowBeforeRenderedRows(row) {
970
- var first = this.getFirstRenderedRow(); // Check the headers only in case when the first rendered row is -1 or 0.
971
- // This is an indication that the overlay is placed on the most top position.
838
+ var first = this.getFirstRenderedRow();
972
839
 
840
+ // Check the headers only in case when the first rendered row is -1 or 0.
841
+ // This is an indication that the overlay is placed on the most top position.
973
842
  if (row < 0 && first <= 0) {
974
843
  return !this.isRowHeaderRendered(row);
975
844
  }
976
-
977
845
  return row < first;
978
846
  }
979
- /* eslint-disable jsdoc/require-description-complete-sentence */
980
847
 
848
+ /* eslint-disable jsdoc/require-description-complete-sentence */
981
849
  /**
982
850
  * Check if the given column index is greater than the index of the last column that
983
851
  * is currently rendered and return TRUE in that case, or FALSE otherwise.
@@ -1009,16 +877,14 @@ var Table = /*#__PURE__*/function () {
1009
877
  * @function isRowAfterRenderedRows
1010
878
  * @returns {boolean}
1011
879
  */
1012
-
1013
880
  /* eslint-enable jsdoc/require-description-complete-sentence */
1014
-
1015
881
  }, {
1016
882
  key: "isRowAfterRenderedRows",
1017
883
  value: function isRowAfterRenderedRows(row) {
1018
884
  return row > this.getLastRenderedRow();
1019
885
  }
1020
- /* eslint-disable jsdoc/require-description-complete-sentence */
1021
886
 
887
+ /* eslint-disable jsdoc/require-description-complete-sentence */
1022
888
  /**
1023
889
  * Check if the given column index is lower than the index of the first column that
1024
890
  * is currently rendered and return TRUE in that case, or FALSE otherwise.
@@ -1046,23 +912,21 @@ var Table = /*#__PURE__*/function () {
1046
912
  * @function isColumnBeforeRenderedColumns
1047
913
  * @returns {boolean}
1048
914
  */
1049
-
1050
915
  /* eslint-enable jsdoc/require-description-complete-sentence */
1051
-
1052
916
  }, {
1053
917
  key: "isColumnBeforeRenderedColumns",
1054
918
  value: function isColumnBeforeRenderedColumns(column) {
1055
- var first = this.getFirstRenderedColumn(); // Check the headers only in case when the first rendered column is -1 or 0.
1056
- // This is an indication that the overlay is placed on the most left position.
919
+ var first = this.getFirstRenderedColumn();
1057
920
 
921
+ // Check the headers only in case when the first rendered column is -1 or 0.
922
+ // This is an indication that the overlay is placed on the most left position.
1058
923
  if (column < 0 && first <= 0) {
1059
924
  return !this.isColumnHeaderRendered(column);
1060
925
  }
1061
-
1062
926
  return column < first;
1063
927
  }
1064
- /* eslint-disable jsdoc/require-description-complete-sentence */
1065
928
 
929
+ /* eslint-disable jsdoc/require-description-complete-sentence */
1066
930
  /**
1067
931
  * Check if the given column index is greater than the index of the last column that
1068
932
  * is currently rendered and return TRUE in that case, or FALSE otherwise.
@@ -1093,9 +957,7 @@ var Table = /*#__PURE__*/function () {
1093
957
  * @function isColumnAfterRenderedColumns
1094
958
  * @returns {boolean}
1095
959
  */
1096
-
1097
960
  /* eslint-enable jsdoc/require-description-complete-sentence */
1098
-
1099
961
  }, {
1100
962
  key: "isColumnAfterRenderedColumns",
1101
963
  value: function isColumnAfterRenderedColumns(column) {
@@ -1136,124 +998,127 @@ var Table = /*#__PURE__*/function () {
1136
998
  value: function allColumnsInViewport() {
1137
999
  return this.wtSettings.getSetting('totalColumns') === this.getVisibleColumnsCount();
1138
1000
  }
1001
+
1139
1002
  /**
1140
1003
  * Checks if any of the row's cells content exceeds its initial height, and if so, returns the oversized height.
1141
1004
  *
1142
1005
  * @param {number} sourceRow The physical row index.
1143
1006
  * @returns {number}
1144
1007
  */
1145
-
1146
1008
  }, {
1147
1009
  key: "getRowHeight",
1148
1010
  value: function getRowHeight(sourceRow) {
1149
1011
  return this.rowUtils.getHeight(sourceRow);
1150
1012
  }
1013
+
1151
1014
  /**
1152
1015
  * @param {number} level The column level.
1153
1016
  * @returns {number}
1154
1017
  */
1155
-
1156
1018
  }, {
1157
1019
  key: "getColumnHeaderHeight",
1158
1020
  value: function getColumnHeaderHeight(level) {
1159
1021
  return this.columnUtils.getHeaderHeight(level);
1160
1022
  }
1023
+
1161
1024
  /**
1162
1025
  * @param {number} sourceColumn The physical column index.
1163
1026
  * @returns {number}
1164
1027
  */
1165
-
1166
1028
  }, {
1167
1029
  key: "getColumnWidth",
1168
1030
  value: function getColumnWidth(sourceColumn) {
1169
1031
  return this.columnUtils.getWidth(sourceColumn);
1170
1032
  }
1033
+
1171
1034
  /**
1172
1035
  * @param {number} sourceColumn The physical column index.
1173
1036
  * @returns {number}
1174
1037
  */
1175
-
1176
1038
  }, {
1177
1039
  key: "getStretchedColumnWidth",
1178
1040
  value: function getStretchedColumnWidth(sourceColumn) {
1179
1041
  return this.columnUtils.getStretchedColumnWidth(sourceColumn);
1180
1042
  }
1043
+
1181
1044
  /**
1182
1045
  * Checks if the table has defined size. It returns `true` when the table has width and height
1183
1046
  * set bigger than `0px`.
1184
1047
  *
1185
1048
  * @returns {boolean}
1186
1049
  */
1187
-
1188
1050
  }, {
1189
1051
  key: "hasDefinedSize",
1190
1052
  value: function hasDefinedSize() {
1191
1053
  return this.hasTableHeight && this.hasTableWidth;
1192
1054
  }
1055
+
1193
1056
  /**
1194
1057
  * Gets table's width. The returned width is the width of the rendered cells that fit in the
1195
1058
  * current viewport. The value may change depends on the viewport position (scroll position).
1196
1059
  *
1197
1060
  * @returns {number}
1198
1061
  */
1199
-
1200
1062
  }, {
1201
1063
  key: "getWidth",
1202
1064
  value: function getWidth() {
1203
1065
  return outerWidth(this.TABLE);
1204
1066
  }
1067
+
1205
1068
  /**
1206
1069
  * Gets table's height. The returned height is the height of the rendered cells that fit in the
1207
1070
  * current viewport. The value may change depends on the viewport position (scroll position).
1208
1071
  *
1209
1072
  * @returns {number}
1210
1073
  */
1211
-
1212
1074
  }, {
1213
1075
  key: "getHeight",
1214
1076
  value: function getHeight() {
1215
1077
  return outerHeight(this.TABLE);
1216
1078
  }
1079
+
1217
1080
  /**
1218
1081
  * Gets table's total width. The returned width is the width of all rendered cells (including headers)
1219
1082
  * that can be displayed in the table.
1220
1083
  *
1221
1084
  * @returns {number}
1222
1085
  */
1223
-
1224
1086
  }, {
1225
1087
  key: "getTotalWidth",
1226
1088
  value: function getTotalWidth() {
1227
- var width = outerWidth(this.hider); // when the overlay's table does not have any cells the hider returns 0, get then width from the table element
1089
+ var width = outerWidth(this.hider);
1228
1090
 
1091
+ // when the overlay's table does not have any cells the hider returns 0, get then width from the table element
1229
1092
  return width !== 0 ? width : this.getWidth();
1230
1093
  }
1094
+
1231
1095
  /**
1232
1096
  * Gets table's total height. The returned height is the height of all rendered cells (including headers)
1233
1097
  * that can be displayed in the table.
1234
1098
  *
1235
1099
  * @returns {number}
1236
1100
  */
1237
-
1238
1101
  }, {
1239
1102
  key: "getTotalHeight",
1240
1103
  value: function getTotalHeight() {
1241
- var height = outerHeight(this.hider); // when the overlay's table does not have any cells the hider returns 0, get then height from the table element
1104
+ var height = outerHeight(this.hider);
1242
1105
 
1106
+ // when the overlay's table does not have any cells the hider returns 0, get then height from the table element
1243
1107
  return height !== 0 ? height : this.getHeight();
1244
1108
  }
1109
+
1245
1110
  /**
1246
1111
  * Checks if the table is visible. It returns `true` when the holder element (or its parents)
1247
1112
  * has CSS 'display' property different than 'none'.
1248
1113
  *
1249
1114
  * @returns {boolean}
1250
1115
  */
1251
-
1252
1116
  }, {
1253
1117
  key: "isVisible",
1254
1118
  value: function isVisible() {
1255
1119
  return _isVisible(this.TABLE);
1256
1120
  }
1121
+
1257
1122
  /**
1258
1123
  * Modify row header widths provided by user in class contructor.
1259
1124
  *
@@ -1261,21 +1126,19 @@ var Table = /*#__PURE__*/function () {
1261
1126
  * @param {Function} rowHeaderWidthFactory The function which can provide default width values for rows..
1262
1127
  * @returns {number}
1263
1128
  */
1264
-
1265
1129
  }, {
1266
1130
  key: "_modifyRowHeaderWidth",
1267
1131
  value: function _modifyRowHeaderWidth(rowHeaderWidthFactory) {
1268
1132
  var widths = isFunction(rowHeaderWidthFactory) ? rowHeaderWidthFactory() : null;
1269
-
1270
1133
  if (Array.isArray(widths)) {
1271
1134
  widths = _toConsumableArray(widths);
1272
1135
  widths[widths.length - 1] = this._correctRowHeaderWidth(widths[widths.length - 1]);
1273
1136
  } else {
1274
1137
  widths = this._correctRowHeaderWidth(widths);
1275
1138
  }
1276
-
1277
1139
  return widths;
1278
1140
  }
1141
+
1279
1142
  /**
1280
1143
  * Correct row header width if necessary.
1281
1144
  *
@@ -1283,25 +1146,19 @@ var Table = /*#__PURE__*/function () {
1283
1146
  * @param {number} width The width to process.
1284
1147
  * @returns {number}
1285
1148
  */
1286
-
1287
1149
  }, {
1288
1150
  key: "_correctRowHeaderWidth",
1289
1151
  value: function _correctRowHeaderWidth(width) {
1290
1152
  var rowHeaderWidth = width;
1291
-
1292
1153
  if (typeof width !== 'number') {
1293
1154
  rowHeaderWidth = this.wtSettings.getSetting('defaultColumnWidth');
1294
1155
  }
1295
-
1296
1156
  if (this.correctHeaderWidth) {
1297
1157
  rowHeaderWidth += 1;
1298
1158
  }
1299
-
1300
1159
  return rowHeaderWidth;
1301
1160
  }
1302
1161
  }]);
1303
-
1304
1162
  return Table;
1305
1163
  }();
1306
-
1307
1164
  export default Table;