handsontable 11.0.0 → 12.0.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 (633) hide show
  1. package/3rdparty/walkontable/src/border.js +121 -99
  2. package/3rdparty/walkontable/src/border.mjs +122 -96
  3. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
  6. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -1
  7. package/3rdparty/walkontable/src/cell/coords.js +60 -18
  8. package/3rdparty/walkontable/src/cell/coords.mjs +56 -18
  9. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  10. package/3rdparty/walkontable/src/cell/range.js +279 -100
  11. package/3rdparty/walkontable/src/cell/range.mjs +274 -100
  12. package/3rdparty/walkontable/src/core/_base.js +452 -0
  13. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  14. package/3rdparty/walkontable/src/core/clone.js +97 -0
  15. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  16. package/3rdparty/walkontable/src/core/core.js +183 -0
  17. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  18. package/3rdparty/walkontable/src/event.js +100 -67
  19. package/3rdparty/walkontable/src/event.mjs +100 -64
  20. package/3rdparty/walkontable/src/facade/core.js +251 -0
  21. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  22. package/3rdparty/walkontable/src/filter/column.js +1 -1
  23. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  24. package/3rdparty/walkontable/src/filter/row.js +1 -1
  25. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  26. package/3rdparty/walkontable/src/index.js +3 -47
  27. package/3rdparty/walkontable/src/index.mjs +3 -13
  28. package/3rdparty/walkontable/src/overlay/_base.js +125 -58
  29. package/3rdparty/walkontable/src/overlay/_base.mjs +126 -59
  30. package/3rdparty/walkontable/src/overlay/bottom.js +86 -76
  31. package/3rdparty/walkontable/src/overlay/bottom.mjs +86 -76
  32. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +35 -58
  33. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +34 -57
  34. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  35. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  36. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  37. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  38. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +102 -80
  39. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +101 -79
  40. package/3rdparty/walkontable/src/overlay/top.js +84 -79
  41. package/3rdparty/walkontable/src/overlay/top.mjs +84 -79
  42. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  43. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  44. package/3rdparty/walkontable/src/overlays.js +226 -157
  45. package/3rdparty/walkontable/src/overlays.mjs +226 -156
  46. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  47. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  48. package/3rdparty/walkontable/src/renderer/cells.js +5 -4
  49. package/3rdparty/walkontable/src/renderer/cells.mjs +5 -4
  50. package/3rdparty/walkontable/src/renderer/colGroup.js +3 -3
  51. package/3rdparty/walkontable/src/renderer/colGroup.mjs +3 -3
  52. package/3rdparty/walkontable/src/renderer/columnHeaders.js +3 -3
  53. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +3 -3
  54. package/3rdparty/walkontable/src/renderer/index.js +1 -1
  55. package/3rdparty/walkontable/src/renderer/index.mjs +1 -1
  56. package/3rdparty/walkontable/src/renderer/rowHeaders.js +3 -3
  57. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +3 -3
  58. package/3rdparty/walkontable/src/renderer/rows.js +3 -3
  59. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -3
  60. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  61. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  62. package/3rdparty/walkontable/src/scroll.js +61 -88
  63. package/3rdparty/walkontable/src/scroll.mjs +61 -88
  64. package/3rdparty/walkontable/src/selection.js +12 -16
  65. package/3rdparty/walkontable/src/selection.mjs +12 -14
  66. package/3rdparty/walkontable/src/settings.js +236 -127
  67. package/3rdparty/walkontable/src/settings.mjs +236 -126
  68. package/3rdparty/walkontable/src/table/bottom.js +21 -6
  69. package/3rdparty/walkontable/src/table/bottom.mjs +20 -6
  70. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +31 -15
  71. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +30 -15
  72. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +27 -15
  73. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +26 -15
  74. package/3rdparty/walkontable/src/table/master.js +23 -13
  75. package/3rdparty/walkontable/src/table/master.mjs +23 -13
  76. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  77. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  78. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  79. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  80. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  81. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  82. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  83. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  84. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  85. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  86. package/3rdparty/walkontable/src/table/top.js +21 -6
  87. package/3rdparty/walkontable/src/table/top.mjs +20 -6
  88. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +31 -15
  89. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +30 -15
  90. package/3rdparty/walkontable/src/table.js +236 -141
  91. package/3rdparty/walkontable/src/table.mjs +232 -135
  92. package/3rdparty/walkontable/src/types.js +103 -0
  93. package/3rdparty/walkontable/src/types.mjs +102 -0
  94. package/3rdparty/walkontable/src/utils/column.js +23 -34
  95. package/3rdparty/walkontable/src/utils/column.mjs +23 -31
  96. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  97. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  98. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -3
  99. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +3 -3
  100. package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
  101. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  102. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  103. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  104. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  105. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  106. package/3rdparty/walkontable/src/utils/row.js +10 -5
  107. package/3rdparty/walkontable/src/utils/row.mjs +10 -5
  108. package/3rdparty/walkontable/src/viewport.js +78 -81
  109. package/3rdparty/walkontable/src/viewport.mjs +78 -78
  110. package/CHANGELOG.md +94 -17
  111. package/README.md +10 -7
  112. package/base.js +2 -2
  113. package/base.mjs +2 -2
  114. package/cellTypes/timeType/timeType.d.ts +6 -6
  115. package/cellTypes/timeType/timeType.js +4 -5
  116. package/cellTypes/timeType/timeType.mjs +4 -5
  117. package/core.d.ts +9 -3
  118. package/core.js +590 -157
  119. package/core.mjs +599 -169
  120. package/dataMap/dataMap.js +2 -2
  121. package/dataMap/dataMap.mjs +2 -2
  122. package/dataMap/index.js +8 -0
  123. package/dataMap/index.mjs +3 -1
  124. package/dataMap/metaManager/index.js +3 -3
  125. package/dataMap/metaManager/index.mjs +3 -3
  126. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  127. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  128. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
  129. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  130. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  131. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  132. package/dataMap/metaManager/metaLayers/globalMeta.js +7 -3
  133. package/dataMap/metaManager/metaLayers/globalMeta.mjs +7 -3
  134. package/dataMap/metaManager/metaLayers/tableMeta.js +3 -3
  135. package/dataMap/metaManager/metaLayers/tableMeta.mjs +3 -3
  136. package/dataMap/metaManager/metaSchema.js +2931 -2676
  137. package/dataMap/metaManager/metaSchema.mjs +2931 -2676
  138. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  139. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  140. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  141. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  142. package/dataMap/replaceData.js +140 -0
  143. package/dataMap/replaceData.mjs +124 -0
  144. package/dataSource.js +1 -1
  145. package/dataSource.mjs +1 -1
  146. package/dist/README.md +2 -2
  147. package/dist/handsontable.css +424 -166
  148. package/dist/handsontable.full.css +559 -298
  149. package/dist/handsontable.full.js +47163 -41289
  150. package/dist/handsontable.full.min.css +8 -13
  151. package/dist/handsontable.full.min.js +143 -142
  152. package/dist/handsontable.js +28270 -24105
  153. package/dist/handsontable.min.css +8 -11
  154. package/dist/handsontable.min.js +3 -3
  155. package/dist/languages/all.js +69 -38
  156. package/dist/languages/all.min.js +1 -1
  157. package/dist/languages/ar-AR.js +167 -0
  158. package/dist/languages/ar-AR.min.js +1 -0
  159. package/dist/languages/de-CH.js +32 -33
  160. package/dist/languages/de-CH.min.js +1 -1
  161. package/dist/languages/de-DE.js +5 -6
  162. package/dist/languages/de-DE.min.js +1 -1
  163. package/dist/languages/en-US.js +5 -6
  164. package/dist/languages/en-US.min.js +1 -1
  165. package/dist/languages/es-MX.js +5 -6
  166. package/dist/languages/es-MX.min.js +1 -1
  167. package/dist/languages/fr-FR.js +5 -6
  168. package/dist/languages/fr-FR.min.js +1 -1
  169. package/dist/languages/it-IT.js +5 -6
  170. package/dist/languages/it-IT.min.js +1 -1
  171. package/dist/languages/ja-JP.js +5 -6
  172. package/dist/languages/ja-JP.min.js +1 -1
  173. package/dist/languages/ko-KR.js +37 -42
  174. package/dist/languages/ko-KR.min.js +1 -1
  175. package/dist/languages/lv-LV.js +4 -6
  176. package/dist/languages/lv-LV.min.js +1 -1
  177. package/dist/languages/nb-NO.js +4 -6
  178. package/dist/languages/nb-NO.min.js +1 -1
  179. package/dist/languages/nl-NL.js +4 -6
  180. package/dist/languages/nl-NL.min.js +1 -1
  181. package/dist/languages/pl-PL.js +4 -6
  182. package/dist/languages/pl-PL.min.js +1 -1
  183. package/dist/languages/pt-BR.js +4 -6
  184. package/dist/languages/pt-BR.min.js +1 -1
  185. package/dist/languages/ru-RU.js +4 -6
  186. package/dist/languages/ru-RU.min.js +1 -1
  187. package/dist/languages/zh-CN.js +4 -6
  188. package/dist/languages/zh-CN.min.js +1 -1
  189. package/dist/languages/zh-TW.js +25 -27
  190. package/dist/languages/zh-TW.min.js +1 -1
  191. package/editorManager.js +121 -268
  192. package/editorManager.mjs +129 -279
  193. package/editors/autocompleteEditor/autocompleteEditor.js +19 -17
  194. package/editors/autocompleteEditor/autocompleteEditor.mjs +19 -17
  195. package/editors/baseEditor/baseEditor.js +207 -36
  196. package/editors/baseEditor/baseEditor.mjs +202 -34
  197. package/editors/checkboxEditor/checkboxEditor.js +3 -3
  198. package/editors/checkboxEditor/checkboxEditor.mjs +3 -3
  199. package/editors/dateEditor/dateEditor.js +22 -9
  200. package/editors/dateEditor/dateEditor.mjs +23 -10
  201. package/editors/dropdownEditor/dropdownEditor.js +4 -4
  202. package/editors/dropdownEditor/dropdownEditor.mjs +4 -4
  203. package/editors/handsontableEditor/handsontableEditor.js +107 -56
  204. package/editors/handsontableEditor/handsontableEditor.mjs +107 -56
  205. package/editors/index.d.ts +3 -0
  206. package/editors/index.js +6 -0
  207. package/editors/index.mjs +3 -1
  208. package/editors/numericEditor/numericEditor.js +3 -3
  209. package/editors/numericEditor/numericEditor.mjs +3 -3
  210. package/editors/passwordEditor/passwordEditor.js +4 -4
  211. package/editors/passwordEditor/passwordEditor.mjs +4 -4
  212. package/editors/selectEditor/selectEditor.js +66 -111
  213. package/editors/selectEditor/selectEditor.mjs +67 -110
  214. package/editors/textEditor/caretPositioner.js +49 -0
  215. package/editors/textEditor/caretPositioner.mjs +42 -0
  216. package/editors/textEditor/textEditor.js +206 -182
  217. package/editors/textEditor/textEditor.mjs +200 -180
  218. package/editors/timeEditor/index.d.ts +1 -0
  219. package/editors/timeEditor/index.js +9 -0
  220. package/editors/timeEditor/index.mjs +1 -0
  221. package/editors/timeEditor/timeEditor.d.ts +7 -0
  222. package/editors/timeEditor/timeEditor.js +105 -0
  223. package/editors/timeEditor/timeEditor.mjs +84 -0
  224. package/eventManager.js +11 -5
  225. package/eventManager.mjs +11 -5
  226. package/helpers/data.js +1 -1
  227. package/helpers/data.mjs +1 -1
  228. package/helpers/dom/element.js +1 -1
  229. package/helpers/dom/element.mjs +1 -1
  230. package/helpers/feature.js +1 -1
  231. package/helpers/feature.mjs +1 -1
  232. package/helpers/mixed.js +3 -3
  233. package/helpers/mixed.mjs +3 -3
  234. package/helpers/number.js +4 -4
  235. package/helpers/number.mjs +4 -4
  236. package/helpers/object.js +1 -1
  237. package/helpers/object.mjs +1 -1
  238. package/i18n/languages/ar-AR.js +41 -0
  239. package/i18n/languages/ar-AR.mjs +17 -0
  240. package/i18n/languages/de-CH.js +1 -1
  241. package/i18n/languages/de-DE.js +1 -1
  242. package/i18n/languages/en-US.js +1 -1
  243. package/i18n/languages/es-MX.js +1 -1
  244. package/i18n/languages/fr-FR.js +1 -1
  245. package/i18n/languages/index.js +4 -0
  246. package/i18n/languages/index.mjs +2 -1
  247. package/i18n/languages/it-IT.js +1 -1
  248. package/i18n/languages/ja-JP.js +1 -1
  249. package/i18n/languages/ko-KR.js +1 -1
  250. package/i18n/languages/lv-LV.js +1 -1
  251. package/i18n/languages/nb-NO.js +1 -1
  252. package/i18n/languages/nl-NL.js +1 -1
  253. package/i18n/languages/pl-PL.js +1 -1
  254. package/i18n/languages/pt-BR.js +1 -1
  255. package/i18n/languages/ru-RU.js +1 -1
  256. package/i18n/languages/zh-CN.js +1 -1
  257. package/i18n/languages/zh-TW.js +1 -1
  258. package/i18n/registry.js +1 -1
  259. package/index.d.ts +4 -0
  260. package/index.js +1 -1
  261. package/languages/all.js +69 -38
  262. package/languages/ar-AR.js +167 -0
  263. package/languages/ar-AR.mjs +19 -0
  264. package/languages/de-CH.js +32 -33
  265. package/languages/de-DE.js +5 -6
  266. package/languages/en-US.js +5 -6
  267. package/languages/es-MX.js +5 -6
  268. package/languages/fr-FR.js +5 -6
  269. package/languages/index.js +69 -38
  270. package/languages/index.mjs +2 -1
  271. package/languages/it-IT.js +5 -6
  272. package/languages/ja-JP.js +5 -6
  273. package/languages/ko-KR.js +37 -42
  274. package/languages/lv-LV.js +4 -6
  275. package/languages/nb-NO.js +4 -6
  276. package/languages/nl-NL.js +4 -6
  277. package/languages/pl-PL.js +4 -6
  278. package/languages/pt-BR.js +4 -6
  279. package/languages/ru-RU.js +4 -6
  280. package/languages/zh-CN.js +4 -6
  281. package/languages/zh-TW.js +25 -27
  282. package/package.json +26 -8
  283. package/pluginHooks.d.ts +2 -0
  284. package/pluginHooks.js +58 -27
  285. package/pluginHooks.mjs +58 -27
  286. package/plugins/autoColumnSize/autoColumnSize.js +14 -9
  287. package/plugins/autoColumnSize/autoColumnSize.mjs +14 -9
  288. package/plugins/autoRowSize/autoRowSize.js +15 -10
  289. package/plugins/autoRowSize/autoRowSize.mjs +15 -10
  290. package/plugins/autofill/autofill.js +50 -34
  291. package/plugins/autofill/autofill.mjs +50 -33
  292. package/plugins/autofill/utils.js +10 -11
  293. package/plugins/autofill/utils.mjs +10 -10
  294. package/plugins/base/base.d.ts +8 -2
  295. package/plugins/base/base.js +68 -5
  296. package/plugins/base/base.mjs +67 -5
  297. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  298. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +4 -4
  299. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +4 -4
  300. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +4 -4
  301. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +4 -4
  302. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +4 -4
  303. package/plugins/collapsibleColumns/collapsibleColumns.js +49 -30
  304. package/plugins/collapsibleColumns/collapsibleColumns.mjs +49 -30
  305. package/plugins/columnSorting/columnSorting.d.ts +1 -1
  306. package/plugins/columnSorting/columnSorting.js +10 -12
  307. package/plugins/columnSorting/columnSorting.mjs +10 -11
  308. package/plugins/columnSorting/columnStatesManager.js +3 -3
  309. package/plugins/columnSorting/columnStatesManager.mjs +3 -3
  310. package/plugins/columnSummary/columnSummary.js +4 -4
  311. package/plugins/columnSummary/columnSummary.mjs +4 -4
  312. package/plugins/columnSummary/endpoints.js +1 -1
  313. package/plugins/columnSummary/endpoints.mjs +1 -1
  314. package/plugins/comments/commentEditor.js +24 -4
  315. package/plugins/comments/commentEditor.mjs +25 -5
  316. package/plugins/comments/comments.js +63 -104
  317. package/plugins/comments/comments.mjs +63 -102
  318. package/plugins/comments/displaySwitch.js +1 -1
  319. package/plugins/comments/displaySwitch.mjs +1 -1
  320. package/plugins/contextMenu/commandExecutor.js +1 -1
  321. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  322. package/plugins/contextMenu/contextMenu.js +11 -7
  323. package/plugins/contextMenu/contextMenu.mjs +11 -7
  324. package/plugins/contextMenu/cursor.js +1 -1
  325. package/plugins/contextMenu/cursor.mjs +1 -1
  326. package/plugins/contextMenu/itemsFactory.js +1 -1
  327. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  328. package/plugins/contextMenu/menu.js +223 -111
  329. package/plugins/contextMenu/menu.mjs +220 -112
  330. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  331. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  332. package/plugins/contextMenu/predefinedItems/columnLeft.js +13 -5
  333. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  334. package/plugins/contextMenu/predefinedItems/columnRight.js +10 -10
  335. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  336. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  337. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  338. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  339. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  340. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  341. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  342. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  343. package/plugins/contextMenu/predefinedItems.js +1 -1
  344. package/plugins/contextMenu/utils.js +2 -2
  345. package/plugins/contextMenu/utils.mjs +2 -2
  346. package/plugins/copyPaste/clipboardData.js +1 -1
  347. package/plugins/copyPaste/clipboardData.mjs +1 -1
  348. package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
  349. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  350. package/plugins/copyPaste/copyPaste.js +29 -19
  351. package/plugins/copyPaste/copyPaste.mjs +28 -19
  352. package/plugins/copyPaste/focusableElement.js +1 -1
  353. package/plugins/copyPaste/focusableElement.mjs +1 -1
  354. package/plugins/copyPaste/pasteEvent.js +6 -2
  355. package/plugins/copyPaste/pasteEvent.mjs +6 -2
  356. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  357. package/plugins/customBorders/contextMenuItem/left.js +5 -4
  358. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  359. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  360. package/plugins/customBorders/contextMenuItem/right.js +5 -4
  361. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  362. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  363. package/plugins/customBorders/customBorders.js +141 -85
  364. package/plugins/customBorders/customBorders.mjs +139 -82
  365. package/plugins/customBorders/utils.js +131 -27
  366. package/plugins/customBorders/utils.mjs +115 -27
  367. package/plugins/dragToScroll/dragToScroll.js +11 -6
  368. package/plugins/dragToScroll/dragToScroll.mjs +11 -6
  369. package/plugins/dropdownMenu/dropdownMenu.js +8 -7
  370. package/plugins/dropdownMenu/dropdownMenu.mjs +8 -7
  371. package/plugins/exportFile/dataProvider.js +1 -1
  372. package/plugins/exportFile/dataProvider.mjs +1 -1
  373. package/plugins/exportFile/exportFile.js +3 -3
  374. package/plugins/exportFile/exportFile.mjs +3 -3
  375. package/plugins/exportFile/types/_base.js +1 -1
  376. package/plugins/exportFile/types/_base.mjs +1 -1
  377. package/plugins/exportFile/types/csv.js +3 -3
  378. package/plugins/exportFile/types/csv.mjs +3 -3
  379. package/plugins/filters/component/_base.js +1 -1
  380. package/plugins/filters/component/_base.mjs +1 -1
  381. package/plugins/filters/component/actionBar.js +3 -3
  382. package/plugins/filters/component/actionBar.mjs +3 -3
  383. package/plugins/filters/component/condition.js +4 -4
  384. package/plugins/filters/component/condition.mjs +4 -4
  385. package/plugins/filters/component/operators.js +3 -3
  386. package/plugins/filters/component/operators.mjs +3 -3
  387. package/plugins/filters/component/value.js +4 -4
  388. package/plugins/filters/component/value.mjs +4 -4
  389. package/plugins/filters/condition/beginsWith.js +1 -1
  390. package/plugins/filters/condition/between.js +1 -1
  391. package/plugins/filters/condition/contains.js +1 -1
  392. package/plugins/filters/condition/date/after.js +1 -1
  393. package/plugins/filters/condition/date/before.js +1 -1
  394. package/plugins/filters/condition/date/today.js +1 -1
  395. package/plugins/filters/condition/date/tomorrow.js +1 -1
  396. package/plugins/filters/condition/date/yesterday.js +1 -1
  397. package/plugins/filters/condition/empty.js +1 -1
  398. package/plugins/filters/condition/endsWith.js +1 -1
  399. package/plugins/filters/condition/equal.js +1 -1
  400. package/plugins/filters/condition/greaterThan.js +1 -1
  401. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  402. package/plugins/filters/condition/lessThan.js +1 -1
  403. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  404. package/plugins/filters/condition/none.js +1 -1
  405. package/plugins/filters/condition/notBetween.js +1 -1
  406. package/plugins/filters/condition/notContains.js +1 -1
  407. package/plugins/filters/condition/notEmpty.js +1 -1
  408. package/plugins/filters/condition/notEqual.js +1 -1
  409. package/plugins/filters/conditionCollection.js +1 -1
  410. package/plugins/filters/conditionCollection.mjs +1 -1
  411. package/plugins/filters/conditionUpdateObserver.js +1 -1
  412. package/plugins/filters/conditionUpdateObserver.mjs +1 -1
  413. package/plugins/filters/dataFilter.js +1 -1
  414. package/plugins/filters/dataFilter.mjs +1 -1
  415. package/plugins/filters/filters.js +12 -9
  416. package/plugins/filters/filters.mjs +12 -9
  417. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  418. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  419. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  420. package/plugins/filters/ui/_base.js +2 -2
  421. package/plugins/filters/ui/_base.mjs +1 -1
  422. package/plugins/filters/ui/input.js +4 -4
  423. package/plugins/filters/ui/input.mjs +4 -4
  424. package/plugins/filters/ui/link.js +4 -4
  425. package/plugins/filters/ui/link.mjs +4 -4
  426. package/plugins/filters/ui/multipleSelect.js +19 -32
  427. package/plugins/filters/ui/multipleSelect.mjs +19 -32
  428. package/plugins/filters/ui/radioInput.js +4 -4
  429. package/plugins/filters/ui/radioInput.mjs +4 -4
  430. package/plugins/filters/ui/select.js +5 -5
  431. package/plugins/filters/ui/select.mjs +5 -5
  432. package/plugins/formulas/engine/register.js +1 -1
  433. package/plugins/formulas/engine/register.mjs +1 -1
  434. package/plugins/formulas/engine/settings.js +2 -2
  435. package/plugins/formulas/engine/settings.mjs +2 -2
  436. package/plugins/formulas/formulas.js +10 -10
  437. package/plugins/formulas/formulas.mjs +10 -10
  438. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  439. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +3 -3
  440. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
  441. package/plugins/hiddenColumns/hiddenColumns.js +10 -5
  442. package/plugins/hiddenColumns/hiddenColumns.mjs +10 -5
  443. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  444. package/plugins/hiddenRows/contextMenuItem/showRow.js +3 -3
  445. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
  446. package/plugins/hiddenRows/hiddenRows.js +10 -5
  447. package/plugins/hiddenRows/hiddenRows.mjs +10 -5
  448. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  449. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  450. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  451. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  452. package/plugins/manualColumnFreeze/manualColumnFreeze.js +26 -13
  453. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +26 -13
  454. package/plugins/manualColumnMove/manualColumnMove.js +73 -62
  455. package/plugins/manualColumnMove/manualColumnMove.mjs +74 -63
  456. package/plugins/manualColumnMove/ui/_base.js +26 -13
  457. package/plugins/manualColumnMove/ui/_base.mjs +25 -13
  458. package/plugins/manualColumnMove/ui/backlight.js +4 -4
  459. package/plugins/manualColumnMove/ui/backlight.mjs +4 -4
  460. package/plugins/manualColumnMove/ui/guideline.js +4 -4
  461. package/plugins/manualColumnMove/ui/guideline.mjs +4 -4
  462. package/plugins/manualColumnResize/manualColumnResize.js +38 -22
  463. package/plugins/manualColumnResize/manualColumnResize.mjs +38 -22
  464. package/plugins/manualRowMove/manualRowMove.js +27 -17
  465. package/plugins/manualRowMove/manualRowMove.mjs +27 -17
  466. package/plugins/manualRowMove/ui/_base.js +1 -1
  467. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  468. package/plugins/manualRowMove/ui/backlight.js +4 -4
  469. package/plugins/manualRowMove/ui/backlight.mjs +4 -4
  470. package/plugins/manualRowMove/ui/guideline.js +4 -4
  471. package/plugins/manualRowMove/ui/guideline.mjs +4 -4
  472. package/plugins/manualRowResize/manualRowResize.js +35 -20
  473. package/plugins/manualRowResize/manualRowResize.mjs +35 -20
  474. package/plugins/mergeCells/calculations/autofill.js +7 -6
  475. package/plugins/mergeCells/calculations/autofill.mjs +7 -5
  476. package/plugins/mergeCells/calculations/selection.js +10 -5
  477. package/plugins/mergeCells/calculations/selection.mjs +10 -5
  478. package/plugins/mergeCells/cellCoords.js +17 -5
  479. package/plugins/mergeCells/cellCoords.mjs +17 -4
  480. package/plugins/mergeCells/cellsCollection.js +28 -21
  481. package/plugins/mergeCells/cellsCollection.mjs +28 -20
  482. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  483. package/plugins/mergeCells/mergeCells.js +83 -50
  484. package/plugins/mergeCells/mergeCells.mjs +83 -48
  485. package/plugins/multiColumnSorting/multiColumnSorting.js +5 -7
  486. package/plugins/multiColumnSorting/multiColumnSorting.mjs +5 -6
  487. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +52 -58
  488. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +53 -58
  489. package/plugins/nestedHeaders/nestedHeaders.js +26 -19
  490. package/plugins/nestedHeaders/nestedHeaders.mjs +26 -19
  491. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  492. package/plugins/nestedHeaders/stateManager/headersTree.mjs +3 -3
  493. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  494. package/plugins/nestedHeaders/stateManager/index.mjs +3 -3
  495. package/plugins/nestedHeaders/stateManager/sourceSettings.js +3 -3
  496. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +3 -3
  497. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  498. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  499. package/plugins/nestedRows/data/dataManager.js +2 -2
  500. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  501. package/plugins/nestedRows/nestedRows.js +11 -5
  502. package/plugins/nestedRows/nestedRows.mjs +11 -5
  503. package/plugins/nestedRows/ui/_base.js +6 -2
  504. package/plugins/nestedRows/ui/_base.mjs +6 -2
  505. package/plugins/nestedRows/ui/collapsing.js +3 -3
  506. package/plugins/nestedRows/ui/collapsing.mjs +3 -3
  507. package/plugins/nestedRows/ui/contextMenu.js +3 -3
  508. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  509. package/plugins/nestedRows/ui/headers.js +3 -3
  510. package/plugins/nestedRows/ui/headers.mjs +3 -3
  511. package/plugins/nestedRows/utils/rowMoveController.js +3 -5
  512. package/plugins/nestedRows/utils/rowMoveController.mjs +3 -4
  513. package/plugins/persistentState/persistentState.js +10 -5
  514. package/plugins/persistentState/persistentState.mjs +10 -5
  515. package/plugins/persistentState/storage.js +1 -1
  516. package/plugins/persistentState/storage.mjs +1 -1
  517. package/plugins/search/search.js +10 -5
  518. package/plugins/search/search.mjs +10 -5
  519. package/plugins/touchScroll/touchScroll.js +32 -26
  520. package/plugins/touchScroll/touchScroll.mjs +32 -25
  521. package/plugins/trimRows/trimRows.js +10 -5
  522. package/plugins/trimRows/trimRows.mjs +10 -5
  523. package/plugins/undoRedo/index.js +1 -1
  524. package/plugins/undoRedo/undoRedo.js +54 -48
  525. package/plugins/undoRedo/undoRedo.mjs +54 -47
  526. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  527. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  528. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  529. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  530. package/renderers/index.d.ts +4 -1
  531. package/renderers/index.js +6 -0
  532. package/renderers/index.mjs +3 -1
  533. package/renderers/numericRenderer/numericRenderer.js +1 -0
  534. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  535. package/renderers/timeRenderer/index.d.ts +1 -0
  536. package/renderers/timeRenderer/index.js +9 -0
  537. package/renderers/timeRenderer/index.mjs +1 -0
  538. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  539. package/renderers/timeRenderer/timeRenderer.js +31 -0
  540. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  541. package/selection/highlight/highlight.js +3 -3
  542. package/selection/highlight/highlight.mjs +3 -3
  543. package/selection/highlight/types/activeHeader.js +2 -2
  544. package/selection/highlight/types/activeHeader.mjs +2 -2
  545. package/selection/highlight/types/area.js +2 -2
  546. package/selection/highlight/types/area.mjs +2 -2
  547. package/selection/highlight/types/cell.js +2 -2
  548. package/selection/highlight/types/cell.mjs +2 -2
  549. package/selection/highlight/types/customSelection.js +2 -2
  550. package/selection/highlight/types/customSelection.mjs +2 -2
  551. package/selection/highlight/types/fill.js +2 -2
  552. package/selection/highlight/types/fill.mjs +2 -2
  553. package/selection/highlight/types/header.js +2 -2
  554. package/selection/highlight/types/header.mjs +2 -2
  555. package/selection/highlight/types/index.js +2 -2
  556. package/selection/highlight/types/index.mjs +2 -2
  557. package/selection/highlight/visualSelection.js +17 -16
  558. package/selection/highlight/visualSelection.mjs +18 -17
  559. package/selection/mouseEventHandler.js +15 -10
  560. package/selection/mouseEventHandler.mjs +15 -9
  561. package/selection/range.js +5 -6
  562. package/selection/range.mjs +5 -6
  563. package/selection/selection.js +27 -20
  564. package/selection/selection.mjs +27 -18
  565. package/selection/transformation.js +5 -7
  566. package/selection/transformation.mjs +5 -6
  567. package/selection/utils.js +1 -1
  568. package/selection/utils.mjs +1 -1
  569. package/settings.d.ts +3 -1
  570. package/shortcuts/context.d.ts +20 -0
  571. package/shortcuts/context.js +296 -0
  572. package/shortcuts/context.mjs +268 -0
  573. package/shortcuts/index.d.ts +1 -0
  574. package/shortcuts/index.js +8 -0
  575. package/shortcuts/index.mjs +1 -0
  576. package/shortcuts/keyObserver.js +67 -0
  577. package/shortcuts/keyObserver.mjs +58 -0
  578. package/shortcuts/manager.d.ts +10 -0
  579. package/shortcuts/manager.js +183 -0
  580. package/shortcuts/manager.mjs +174 -0
  581. package/shortcuts/recorder.js +183 -0
  582. package/shortcuts/recorder.mjs +171 -0
  583. package/shortcuts/utils.js +77 -0
  584. package/shortcuts/utils.mjs +54 -0
  585. package/tableView.js +138 -80
  586. package/tableView.mjs +138 -70
  587. package/translations/changesObservable/observable.js +1 -1
  588. package/translations/changesObservable/observable.mjs +1 -1
  589. package/translations/changesObservable/observer.js +1 -2
  590. package/translations/changesObservable/observer.mjs +1 -2
  591. package/translations/indexMapper.d.ts +1 -0
  592. package/translations/indexMapper.js +25 -2
  593. package/translations/indexMapper.mjs +24 -2
  594. package/translations/mapCollections/aggregatedCollection.js +3 -3
  595. package/translations/mapCollections/aggregatedCollection.mjs +3 -3
  596. package/translations/mapCollections/mapCollection.js +1 -1
  597. package/translations/mapCollections/mapCollection.mjs +1 -1
  598. package/translations/maps/hidingMap.js +5 -3
  599. package/translations/maps/hidingMap.mjs +5 -3
  600. package/translations/maps/indexMap.js +3 -1
  601. package/translations/maps/indexMap.mjs +3 -1
  602. package/translations/maps/indexesSequence.js +6 -4
  603. package/translations/maps/indexesSequence.mjs +6 -4
  604. package/translations/maps/linkedPhysicalIndexToValueMap.js +6 -4
  605. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +6 -4
  606. package/translations/maps/physicalIndexToValueMap.js +6 -4
  607. package/translations/maps/physicalIndexToValueMap.mjs +6 -4
  608. package/translations/maps/trimmingMap.js +5 -3
  609. package/translations/maps/trimmingMap.mjs +5 -3
  610. package/utils/dataStructures/linkedList.js +3 -3
  611. package/utils/dataStructures/linkedList.mjs +3 -3
  612. package/utils/dataStructures/queue.js +1 -1
  613. package/utils/dataStructures/queue.mjs +1 -1
  614. package/utils/dataStructures/stack.js +1 -1
  615. package/utils/dataStructures/stack.mjs +1 -1
  616. package/utils/dataStructures/tree.js +3 -3
  617. package/utils/dataStructures/tree.mjs +3 -3
  618. package/utils/dataStructures/uniqueMap.js +14 -1
  619. package/utils/dataStructures/uniqueMap.mjs +14 -1
  620. package/utils/dataStructures/uniqueSet.js +9 -0
  621. package/utils/dataStructures/uniqueSet.mjs +9 -0
  622. package/utils/ghostTable.js +14 -3
  623. package/utils/ghostTable.mjs +15 -4
  624. package/utils/interval.js +1 -1
  625. package/utils/interval.mjs +1 -1
  626. package/utils/samplesGenerator.js +1 -1
  627. package/utils/samplesGenerator.mjs +1 -1
  628. package/3rdparty/walkontable/src/core.js +0 -309
  629. package/3rdparty/walkontable/src/core.mjs +0 -293
  630. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  631. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  632. package/utils/keyStateObserver.js +0 -121
  633. package/utils/keyStateObserver.mjs +0 -103
@@ -12,13 +12,13 @@ require("core-js/modules/web.dom-collections.iterator.js");
12
12
 
13
13
  require("core-js/modules/es.array.slice.js");
14
14
 
15
- require("core-js/modules/es.function.name.js");
16
-
17
15
  require("core-js/modules/es.regexp.exec.js");
18
16
 
19
17
  exports.__esModule = true;
20
18
  exports.default = void 0;
21
19
 
20
+ require("core-js/modules/es.function.name.js");
21
+
22
22
  require("core-js/modules/es.array.from.js");
23
23
 
24
24
  require("core-js/modules/es.string.iterator.js");
@@ -29,11 +29,9 @@ require("core-js/modules/es.object.to-string.js");
29
29
 
30
30
  require("core-js/modules/web.dom-collections.for-each.js");
31
31
 
32
- var _element = require("./../../../helpers/dom/element");
33
-
34
- var _function = require("./../../../helpers/function");
32
+ var _element = require("../../../helpers/dom/element");
35
33
 
36
- var _coords = _interopRequireDefault(require("./cell/coords"));
34
+ var _function = require("../../../helpers/function");
37
35
 
38
36
  var _column = _interopRequireDefault(require("./filter/column"));
39
37
 
@@ -45,9 +43,7 @@ var _column2 = _interopRequireDefault(require("./utils/column"));
45
43
 
46
44
  var _row2 = _interopRequireDefault(require("./utils/row"));
47
45
 
48
- var _registerer = require("./overlay/registerer");
49
-
50
- var _constants = require("./overlay/constants");
46
+ var _overlay = require("./overlay");
51
47
 
52
48
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
49
 
@@ -75,93 +71,138 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
75
71
 
76
72
  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); } }
77
73
 
78
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
74
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
75
+
76
+ 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; }
79
77
 
80
78
  /**
81
- *
79
+ * @todo These mixes are never added to the class Table, however their members are used here.
80
+ * @todo Continue: Potentially it works only, because some of these mixes are added to every inherited class.
81
+ * @todo Refactoring, move code from `if(this.isMaster)` into MasterTable, and others like that.
82
+ * @mixes stickyColumnsStart
83
+ * @mixes stickyRowsBottom
84
+ * @mixes stickyRowsTop
85
+ * @mixes calculatedRows
86
+ * @mixes calculatedColumns
87
+ * @abstract
82
88
  */
83
89
  var Table = /*#__PURE__*/function () {
84
90
  /**
85
- * @param {Walkontable} wotInstance The Walkontable instance.
86
- * @param {HTMLTableElement} table An element to the Walkontable generated table is injected.
91
+ * The walkontable settings.
92
+ *
93
+ * @protected
94
+ * @type {Settings}
95
+ */
96
+
97
+ /**
98
+ * Indicates if the table has height bigger than 0px.
99
+ *
100
+ * @type {boolean}
101
+ */
102
+
103
+ /**
104
+ * Indicates if the table has width bigger than 0px.
105
+ *
106
+ * @type {boolean}
107
+ */
108
+
109
+ /**
110
+ * Indicates if the table is visible. By visible, it means that the holder
111
+ * element has CSS 'display' property different than 'none'.
112
+ *
113
+ * @type {boolean}
114
+ */
115
+
116
+ /**
117
+ *
118
+ * @abstract
119
+ * @param {TableDao} dataAccessObject The data access object.
120
+ * @param {FacadeGetter} facadeGetter Function which return proper facade.
121
+ * @param {DomBindings} domBindings Bindings into DOM.
122
+ * @param {Settings} wtSettings The Walkontable settings.
123
+ * @param {'master'|CLONE_TYPES_ENUM} name Overlay name.
87
124
  */
88
- function Table(wotInstance, table) {
125
+ function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
89
126
  var _this = this;
90
127
 
91
128
  _classCallCheck(this, Table);
92
129
 
93
- /**
94
- * Indicates if this instance is of type `MasterTable` (i.e. It is NOT an overlay).
95
- *
96
- * @type {boolean}
97
- */
98
- this.isMaster = !wotInstance.cloneOverlay; // "instanceof" operator isn't used, because it caused a circular reference in Webpack
130
+ _defineProperty(this, "wtSettings", null);
99
131
 
100
- this.wot = wotInstance; // legacy support
132
+ _defineProperty(this, "domBindings", void 0);
101
133
 
102
- this.instance = this.wot;
103
- this.TABLE = table;
104
- this.TBODY = null;
105
- this.THEAD = null;
106
- this.COLGROUP = null;
107
- this.tableOffset = 0;
108
- this.holderOffset = 0;
109
- /**
110
- * Indicates if the table has height bigger than 0px.
111
- *
112
- * @type {boolean}
113
- */
134
+ _defineProperty(this, "TBODY", null);
114
135
 
115
- this.hasTableHeight = true;
116
- /**
117
- * Indicates if the table has width bigger than 0px.
118
- *
119
- * @type {boolean}
120
- */
136
+ _defineProperty(this, "THEAD", null);
137
+
138
+ _defineProperty(this, "COLGROUP", null);
139
+
140
+ _defineProperty(this, "hasTableHeight", true);
141
+
142
+ _defineProperty(this, "hasTableWidth", true);
143
+
144
+ _defineProperty(this, "isTableVisible", false);
145
+
146
+ _defineProperty(this, "tableOffset", 0);
121
147
 
122
- this.hasTableWidth = true;
148
+ _defineProperty(this, "holderOffset", 0);
149
+
150
+ this.domBindings = domBindings;
123
151
  /**
124
- * Indicates if the table is visible. By visible, it means that the holder
125
- * element has CSS 'display' property different than 'none'.
152
+ * Indicates if this instance is of type `MasterTable` (i.e. It is NOT an overlay).
126
153
  *
127
154
  * @type {boolean}
128
155
  */
129
156
 
130
- this.isTableVisible = false;
131
- (0, _element.removeTextNodes)(this.TABLE);
157
+ this.isMaster = name === 'master';
158
+ this.name = name;
159
+ this.dataAccessObject = dataAccessObject;
160
+ this.facadeGetter = facadeGetter;
161
+ this.wtSettings = wtSettings; // legacy support
162
+
163
+ this.instance = this.dataAccessObject.wot; // TODO refactoring: it might be removed here, and provides legacy support through facade.
164
+
165
+ this.wot = this.dataAccessObject.wot;
166
+ this.TABLE = domBindings.rootTable;
167
+ (0, _element.removeTextNodes)(this.TABLE); // TODO refactoring, to recognize the legitimacy of moving them into domBidings
168
+
132
169
  this.spreader = this.createSpreader(this.TABLE);
133
170
  this.hider = this.createHider(this.spreader);
134
171
  this.holder = this.createHolder(this.hider);
135
172
  this.wtRootElement = this.holder.parentNode;
136
173
 
137
174
  if (this.isMaster) {
138
- this.alignOverlaysWithTrimmingContainer();
175
+ this.alignOverlaysWithTrimmingContainer(); // todo wow, It calls method from child class (MasterTable).
139
176
  }
140
177
 
141
178
  this.fixTableDomTree();
142
- this.rowFilter = null;
143
- this.columnFilter = null;
179
+ this.rowFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
180
+
181
+ this.columnFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
182
+
144
183
  this.correctHeaderWidth = false;
145
- var origRowHeaderWidth = this.wot.wtSettings.settings.rowHeaderWidth; // Fix for jumping row headers (https://github.com/handsontable/handsontable/issues/3850)
184
+ var origRowHeaderWidth = this.wtSettings.getSettingPure('rowHeaderWidth'); // Fix for jumping row headers (https://github.com/handsontable/handsontable/issues/3850)
146
185
 
147
- this.wot.wtSettings.settings.rowHeaderWidth = function () {
186
+ this.wtSettings.update('rowHeaderWidth', function () {
148
187
  return _this._modifyRowHeaderWidth(origRowHeaderWidth);
149
- };
188
+ });
189
+ this.rowUtils = new _row2.default(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
190
+
191
+ this.columnUtils = new _column2.default(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
150
192
 
151
- this.rowUtils = new _row2.default(this.wot);
152
- this.columnUtils = new _column2.default(this.wot);
153
193
  this.tableRenderer = new _renderer.Renderer({
194
+ // TODO refactoring, It can be passed through IOC.
154
195
  TABLE: this.TABLE,
155
196
  THEAD: this.THEAD,
156
197
  COLGROUP: this.COLGROUP,
157
198
  TBODY: this.TBODY,
158
199
  rowUtils: this.rowUtils,
159
200
  columnUtils: this.columnUtils,
160
- cellRenderer: this.wot.wtSettings.settings.cellRenderer
201
+ cellRenderer: this.wtSettings.getSettingPure('cellRenderer')
161
202
  });
162
203
  }
163
204
  /**
164
- * Returns a boolean that is true if this intance of Table represents a specific overlay, identified by the overlay name.
205
+ * Returns a boolean that is true if this Table represents a specific overlay, identified by the overlay name.
165
206
  * For MasterTable, it returns false.
166
207
  *
167
208
  * @param {string} overlayTypeName The overlay type.
@@ -172,7 +213,8 @@ var Table = /*#__PURE__*/function () {
172
213
  _createClass(Table, [{
173
214
  key: "is",
174
215
  value: function is(overlayTypeName) {
175
- return (0, _registerer.isOverlayTypeOf)(this.wot.cloneOverlay, overlayTypeName);
216
+ // todo refactoring: eliminate all protected and private usages
217
+ return this.name === overlayTypeName;
176
218
  }
177
219
  /**
178
220
  *
@@ -181,7 +223,7 @@ var Table = /*#__PURE__*/function () {
181
223
  }, {
182
224
  key: "fixTableDomTree",
183
225
  value: function fixTableDomTree() {
184
- var rootDocument = this.wot.rootDocument;
226
+ var rootDocument = this.domBindings.rootDocument;
185
227
  this.TBODY = this.TABLE.querySelector('tbody');
186
228
 
187
229
  if (!this.TBODY) {
@@ -202,10 +244,6 @@ var Table = /*#__PURE__*/function () {
202
244
  this.COLGROUP = rootDocument.createElement('colgroup');
203
245
  this.TABLE.insertBefore(this.COLGROUP, this.THEAD);
204
246
  }
205
-
206
- if (this.wot.getSetting('columnHeaders').length && !this.THEAD.childNodes.length) {
207
- this.THEAD.appendChild(rootDocument.createElement('TR'));
208
- }
209
247
  }
210
248
  /**
211
249
  * @param {HTMLTableElement} table An element to process.
@@ -219,7 +257,7 @@ var Table = /*#__PURE__*/function () {
219
257
  var spreader;
220
258
 
221
259
  if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !(0, _element.hasClass)(parent, 'wtHolder')) {
222
- spreader = this.wot.rootDocument.createElement('div');
260
+ spreader = this.domBindings.rootDocument.createElement('div');
223
261
  spreader.className = 'wtSpreader';
224
262
 
225
263
  if (parent) {
@@ -245,7 +283,7 @@ var Table = /*#__PURE__*/function () {
245
283
  var hider;
246
284
 
247
285
  if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !(0, _element.hasClass)(parent, 'wtHolder')) {
248
- hider = this.wot.rootDocument.createElement('div');
286
+ hider = this.domBindings.rootDocument.createElement('div');
249
287
  hider.className = 'wtHider';
250
288
 
251
289
  if (parent) {
@@ -271,7 +309,7 @@ var Table = /*#__PURE__*/function () {
271
309
  var holder;
272
310
 
273
311
  if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !(0, _element.hasClass)(parent, 'wtHolder')) {
274
- holder = this.wot.rootDocument.createElement('div');
312
+ holder = this.domBindings.rootDocument.createElement('div');
275
313
  holder.style.position = 'relative';
276
314
  holder.className = 'wtHolder';
277
315
 
@@ -282,6 +320,7 @@ var Table = /*#__PURE__*/function () {
282
320
 
283
321
  if (this.isMaster) {
284
322
  holder.parentNode.className += 'ht_master handsontable';
323
+ holder.parentNode.setAttribute('dir', this.wtSettings.getSettingPure('rtlMode') ? 'rtl' : 'ltr');
285
324
  }
286
325
 
287
326
  holder.appendChild(hider);
@@ -301,14 +340,15 @@ var Table = /*#__PURE__*/function () {
301
340
  key: "draw",
302
341
  value: function draw() {
303
342
  var fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
304
- var wot = this.wot;
305
- var wtOverlays = wot.wtOverlays,
306
- wtViewport = wot.wtViewport;
307
- var totalRows = wot.getSetting('totalRows');
308
- var totalColumns = wot.getSetting('totalColumns');
309
- var rowHeaders = wot.getSetting('rowHeaders');
343
+ var wtSettings = this.wtSettings;
344
+ var _this$dataAccessObjec = this.dataAccessObject,
345
+ wtOverlays = _this$dataAccessObjec.wtOverlays,
346
+ wtViewport = _this$dataAccessObjec.wtViewport;
347
+ var totalRows = wtSettings.getSetting('totalRows');
348
+ var totalColumns = wtSettings.getSetting('totalColumns');
349
+ var rowHeaders = wtSettings.getSetting('rowHeaders');
310
350
  var rowHeadersCount = rowHeaders.length;
311
- var columnHeaders = wot.getSetting('columnHeaders');
351
+ var columnHeaders = wtSettings.getSetting('columnHeaders');
312
352
  var columnHeadersCount = columnHeaders.length;
313
353
  var syncScroll = false;
314
354
  var runFastDraw = fastDraw;
@@ -317,10 +357,10 @@ var Table = /*#__PURE__*/function () {
317
357
  this.holderOffset = (0, _element.offset)(this.holder);
318
358
  runFastDraw = wtViewport.createRenderCalculators(runFastDraw);
319
359
 
320
- if (rowHeadersCount && !wot.getSetting('fixedColumnsLeft')) {
321
- var leftScrollPos = wtOverlays.leftOverlay.getScrollPosition();
360
+ if (rowHeadersCount && !wtSettings.getSetting('fixedColumnsStart')) {
361
+ var leftScrollPos = wtOverlays.inlineStartOverlay.getScrollPosition();
322
362
  var previousState = this.correctHeaderWidth;
323
- this.correctHeaderWidth = leftScrollPos > 0;
363
+ this.correctHeaderWidth = leftScrollPos !== 0;
324
364
 
325
365
  if (previousState !== this.correctHeaderWidth) {
326
366
  runFastDraw = false;
@@ -329,7 +369,7 @@ var Table = /*#__PURE__*/function () {
329
369
  }
330
370
 
331
371
  if (this.isMaster) {
332
- syncScroll = wtOverlays.prepareOverlays();
372
+ syncScroll = wtOverlays.updateStateOfRendering();
333
373
  }
334
374
 
335
375
  if (runFastDraw) {
@@ -345,7 +385,7 @@ var Table = /*#__PURE__*/function () {
345
385
  if (this.isMaster) {
346
386
  this.tableOffset = (0, _element.offset)(this.TABLE);
347
387
  } else {
348
- this.tableOffset = this.wot.cloneSource.wtTable.tableOffset;
388
+ this.tableOffset = this.dataAccessObject.parentTableOffset;
349
389
  }
350
390
 
351
391
  var startRow = totalRows > 0 ? this.getFirstRenderedRow() : 0;
@@ -355,16 +395,17 @@ var Table = /*#__PURE__*/function () {
355
395
  var performRedraw = true; // Only master table rendering can be skipped
356
396
 
357
397
  if (this.isMaster) {
358
- this.alignOverlaysWithTrimmingContainer();
398
+ this.alignOverlaysWithTrimmingContainer(); // todo It calls method from child class (MasterTable).
399
+
359
400
  var skipRender = {};
360
- this.wot.getSetting('beforeDraw', true, skipRender);
401
+ this.wtSettings.getSetting('beforeDraw', true, skipRender);
361
402
  performRedraw = skipRender.skipRender !== true;
362
403
  }
363
404
 
364
405
  if (performRedraw) {
365
406
  this.tableRenderer.setHeaderContentRenderers(rowHeaders, columnHeaders);
366
407
 
367
- if (this.is(_constants.CLONE_BOTTOM) || this.is(_constants.CLONE_BOTTOM_LEFT_CORNER)) {
408
+ if (this.is(_overlay.CLONE_BOTTOM) || this.is(_overlay.CLONE_BOTTOM_INLINE_START_CORNER)) {
368
409
  // do NOT render headers on the bottom or bottom-left corner overlay
369
410
  this.tableRenderer.setHeaderContentRenderers(rowHeaders, []);
370
411
  }
@@ -374,21 +415,21 @@ var Table = /*#__PURE__*/function () {
374
415
  var workspaceWidth;
375
416
 
376
417
  if (this.isMaster) {
377
- workspaceWidth = this.wot.wtViewport.getWorkspaceWidth();
378
- this.wot.wtViewport.containerWidth = null;
418
+ workspaceWidth = this.dataAccessObject.workspaceWidth;
419
+ this.dataAccessObject.wtViewport.containerWidth = null;
379
420
  this.markOversizedColumnHeaders();
380
421
  }
381
422
 
382
423
  this.adjustColumnHeaderHeights();
383
424
 
384
- if (this.isMaster || this.is(_constants.CLONE_BOTTOM)) {
425
+ if (this.isMaster || this.is(_overlay.CLONE_BOTTOM)) {
385
426
  this.markOversizedRows();
386
427
  }
387
428
 
388
429
  if (this.isMaster) {
389
- this.wot.wtViewport.createVisibleCalculators();
390
- this.wot.wtOverlays.refresh(false);
391
- this.wot.wtOverlays.applyToDOM();
430
+ this.dataAccessObject.wtViewport.createVisibleCalculators();
431
+ this.dataAccessObject.wtOverlays.refresh(false);
432
+ this.dataAccessObject.wtOverlays.applyToDOM();
392
433
  var hiderWidth = (0, _element.outerWidth)(this.hider);
393
434
  var tableWidth = (0, _element.outerWidth)(this.TABLE);
394
435
 
@@ -398,16 +439,16 @@ var Table = /*#__PURE__*/function () {
398
439
  this.tableRenderer.renderer.colGroup.render();
399
440
  }
400
441
 
401
- if (workspaceWidth !== this.wot.wtViewport.getWorkspaceWidth()) {
442
+ if (workspaceWidth !== this.dataAccessObject.wtViewport.getWorkspaceWidth()) {
402
443
  // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching
403
- this.wot.wtViewport.containerWidth = null;
444
+ this.dataAccessObject.wtViewport.containerWidth = null;
404
445
  this.columnUtils.calculateWidths();
405
446
  this.tableRenderer.renderer.colGroup.render();
406
447
  }
407
448
 
408
- this.wot.getSetting('onDraw', true);
409
- } else if (this.is(_constants.CLONE_BOTTOM)) {
410
- this.wot.cloneSource.wtOverlays.adjustElementsSize();
449
+ this.wtSettings.getSetting('onDraw', true);
450
+ } else if (this.is(_overlay.CLONE_BOTTOM)) {
451
+ this.dataAccessObject.cloneSource.wtOverlays.adjustElementsSize();
411
452
  }
412
453
  }
413
454
  }
@@ -419,19 +460,19 @@ var Table = /*#__PURE__*/function () {
419
460
  positionChanged = wtOverlays.bottomOverlay.resetFixedPosition() || positionChanged;
420
461
  }
421
462
 
422
- positionChanged = wtOverlays.leftOverlay.resetFixedPosition() || positionChanged;
463
+ positionChanged = wtOverlays.inlineStartOverlay.resetFixedPosition() || positionChanged;
423
464
 
424
- if (wtOverlays.topLeftCornerOverlay) {
425
- wtOverlays.topLeftCornerOverlay.resetFixedPosition();
465
+ if (wtOverlays.topInlineStartCornerOverlay) {
466
+ wtOverlays.topInlineStartCornerOverlay.resetFixedPosition();
426
467
  }
427
468
 
428
- if (wtOverlays.bottomLeftCornerOverlay && wtOverlays.bottomLeftCornerOverlay.clone) {
429
- wtOverlays.bottomLeftCornerOverlay.resetFixedPosition();
469
+ if (wtOverlays.bottomInlineStartCornerOverlay && wtOverlays.bottomInlineStartCornerOverlay.clone) {
470
+ wtOverlays.bottomInlineStartCornerOverlay.resetFixedPosition();
430
471
  }
431
472
 
432
473
  if (positionChanged) {
433
474
  // It refreshes the cells borders caused by a 1px shift (introduced by overlays which add or
434
- // remove `innerBorderTop` and `innerBorderLeft` CSS classes to the DOM element. This happens
475
+ // remove `innerBorderTop` and `innerBorderInlineStart` CSS classes to the DOM element. This happens
435
476
  // when there is a switch between rendering from 0 to N rows/columns and vice versa).
436
477
  wtOverlays.refreshAll();
437
478
  wtOverlays.adjustElementsSize();
@@ -444,7 +485,7 @@ var Table = /*#__PURE__*/function () {
444
485
  wtOverlays.syncScrollWithMaster();
445
486
  }
446
487
 
447
- wot.drawn = true;
488
+ this.dataAccessObject.drawn = true;
448
489
  return this;
449
490
  }
450
491
  /**
@@ -454,18 +495,18 @@ var Table = /*#__PURE__*/function () {
454
495
  }, {
455
496
  key: "markIfOversizedColumnHeader",
456
497
  value: function markIfOversizedColumnHeader(col) {
457
- var sourceColIndex = this.wot.wtTable.columnFilter.renderedToSource(col);
458
- var level = this.wot.getSetting('columnHeaders').length;
459
- var defaultRowHeight = this.wot.wtSettings.settings.defaultRowHeight;
498
+ var sourceColIndex = this.columnFilter.renderedToSource(col);
499
+ var level = this.wtSettings.getSetting('columnHeaders').length;
500
+ var defaultRowHeight = this.wtSettings.getSetting('defaultRowHeight');
460
501
  var previousColHeaderHeight;
461
502
  var currentHeader;
462
503
  var currentHeaderHeight;
463
- var columnHeaderHeightSetting = this.wot.getSetting('columnHeaderHeight') || [];
504
+ var columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];
464
505
 
465
506
  while (level) {
466
507
  level -= 1;
467
- previousColHeaderHeight = this.wot.wtTable.getColumnHeaderHeight(level);
468
- currentHeader = this.wot.wtTable.getColumnHeader(sourceColIndex, level);
508
+ previousColHeaderHeight = this.getColumnHeaderHeight(level);
509
+ currentHeader = this.getColumnHeader(sourceColIndex, level);
469
510
 
470
511
  if (!currentHeader) {
471
512
  /* eslint-disable no-continue */
@@ -475,19 +516,19 @@ var Table = /*#__PURE__*/function () {
475
516
  currentHeaderHeight = (0, _element.innerHeight)(currentHeader);
476
517
 
477
518
  if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {
478
- this.wot.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
519
+ this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
479
520
  }
480
521
 
481
522
  if (Array.isArray(columnHeaderHeightSetting)) {
482
523
  if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== void 0) {
483
- this.wot.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
524
+ this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
484
525
  }
485
526
  } else if (!isNaN(columnHeaderHeightSetting)) {
486
- this.wot.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
527
+ this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
487
528
  }
488
529
 
489
- if (this.wot.wtViewport.oversizedColumnHeaders[level] < (columnHeaderHeightSetting[level] || columnHeaderHeightSetting)) {
490
- this.wot.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level] || columnHeaderHeightSetting; // eslint-disable-line max-len
530
+ if (this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] < (columnHeaderHeightSetting[level] || columnHeaderHeightSetting)) {
531
+ this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level] || columnHeaderHeightSetting; // eslint-disable-line max-len
491
532
  }
492
533
  }
493
534
  }
@@ -498,10 +539,10 @@ var Table = /*#__PURE__*/function () {
498
539
  }, {
499
540
  key: "adjustColumnHeaderHeights",
500
541
  value: function adjustColumnHeaderHeights() {
501
- var wot = this.wot;
502
- var children = wot.wtTable.THEAD.childNodes;
503
- var oversizedColumnHeaders = wot.wtViewport.oversizedColumnHeaders;
504
- var columnHeaders = wot.getSetting('columnHeaders');
542
+ var wtSettings = this.wtSettings;
543
+ var children = this.THEAD.childNodes;
544
+ var oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
545
+ var columnHeaders = wtSettings.getSetting('columnHeaders');
505
546
 
506
547
  for (var i = 0, len = columnHeaders.length; i < len; i++) {
507
548
  if (oversizedColumnHeaders[i]) {
@@ -521,20 +562,21 @@ var Table = /*#__PURE__*/function () {
521
562
  }, {
522
563
  key: "resetOversizedRows",
523
564
  value: function resetOversizedRows() {
524
- var wot = this.wot;
565
+ var wtSettings = this.wtSettings;
566
+ var wtViewport = this.dataAccessObject.wtViewport;
525
567
 
526
- if (!this.isMaster && !this.is(_constants.CLONE_BOTTOM)) {
568
+ if (!this.isMaster && !this.is(_overlay.CLONE_BOTTOM)) {
527
569
  return;
528
570
  }
529
571
 
530
- if (!wot.getSetting('externalRowCalculator')) {
572
+ if (!wtSettings.getSetting('externalRowCalculator')) {
531
573
  var rowsToRender = this.getRenderedRowsCount(); // Reset the oversized row cache for rendered rows
532
574
 
533
575
  for (var visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
534
576
  var sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);
535
577
 
536
- if (wot.wtViewport.oversizedRows && wot.wtViewport.oversizedRows[sourceRow]) {
537
- wot.wtViewport.oversizedRows[sourceRow] = void 0;
578
+ if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {
579
+ wtViewport.oversizedRows[sourceRow] = void 0;
538
580
  }
539
581
  }
540
582
  }
@@ -561,13 +603,14 @@ var Table = /*#__PURE__*/function () {
561
603
  }, {
562
604
  key: "refreshSelections",
563
605
  value: function refreshSelections(fastDraw) {
564
- var wot = this.wot;
606
+ var wtSettings = this.wtSettings;
607
+ var selections = this.dataAccessObject.selections;
565
608
 
566
- if (!wot.selections) {
609
+ if (!selections) {
567
610
  return;
568
611
  }
569
612
 
570
- var highlights = Array.from(wot.selections);
613
+ var highlights = Array.from(selections);
571
614
  var len = highlights.length;
572
615
 
573
616
  if (fastDraw) {
@@ -600,7 +643,7 @@ var Table = /*#__PURE__*/function () {
600
643
  }
601
644
  }
602
645
 
603
- var additionalClassesToRemove = wot.getSetting('onBeforeRemoveCellClassNames');
646
+ var additionalClassesToRemove = wtSettings.getSetting('onBeforeRemoveCellClassNames');
604
647
 
605
648
  if (Array.isArray(additionalClassesToRemove)) {
606
649
  for (var _i = 0; _i < additionalClassesToRemove.length; _i++) {
@@ -617,7 +660,7 @@ var Table = /*#__PURE__*/function () {
617
660
  }
618
661
 
619
662
  for (var _i3 = 0; _i3 < len; _i3++) {
620
- highlights[_i3].draw(wot, fastDraw);
663
+ highlights[_i3].draw(this.facadeGetter(), fastDraw);
621
664
  }
622
665
  }
623
666
  /**
@@ -645,7 +688,7 @@ var Table = /*#__PURE__*/function () {
645
688
  value: function getCell(coords) {
646
689
  var row = coords.row;
647
690
  var column = coords.col;
648
- var hookResult = this.wot.getSetting('onModifyGetCellCoords', row, column);
691
+ var hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column);
649
692
 
650
693
  if (hookResult && Array.isArray(hookResult)) {
651
694
  var _hookResult = _slicedToArray(hookResult, 2);
@@ -741,7 +784,7 @@ var Table = /*#__PURE__*/function () {
741
784
  return;
742
785
  }
743
786
 
744
- var rowHeadersCount = this.wot.getSetting('rowHeaders').length;
787
+ var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
745
788
 
746
789
  if (level >= rowHeadersCount) {
747
790
  return;
@@ -765,7 +808,7 @@ var Table = /*#__PURE__*/function () {
765
808
  }
766
809
 
767
810
  var THs = [];
768
- var rowHeadersCount = this.wot.getSetting('rowHeaders').length;
811
+ var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
769
812
 
770
813
  for (var renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++) {
771
814
  var TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
@@ -803,12 +846,12 @@ var Table = /*#__PURE__*/function () {
803
846
  var row = (0, _element.index)(TR);
804
847
  var col = cellElement.cellIndex;
805
848
 
806
- if ((0, _element.overlayContainsElement)(_constants.CLONE_TOP_LEFT_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_constants.CLONE_TOP, cellElement, this.wtRootElement)) {
849
+ if ((0, _element.overlayContainsElement)(_overlay.CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_TOP, cellElement, this.wtRootElement)) {
807
850
  if (CONTAINER.nodeName === 'THEAD') {
808
851
  row -= CONTAINER.childNodes.length;
809
852
  }
810
- } else if ((0, _element.overlayContainsElement)(_constants.CLONE_BOTTOM_LEFT_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_constants.CLONE_BOTTOM, cellElement, this.wtRootElement)) {
811
- var totalRows = this.wot.getSetting('totalRows');
853
+ } else if ((0, _element.overlayContainsElement)(_overlay.CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_BOTTOM, cellElement, this.wtRootElement)) {
854
+ var totalRows = this.wtSettings.getSetting('totalRows');
812
855
  row = totalRows - CONTAINER.childNodes.length + row;
813
856
  } else if (CONTAINER === this.THEAD) {
814
857
  row = this.rowFilter.visibleColHeadedRowToSourceRow(row);
@@ -816,13 +859,13 @@ var Table = /*#__PURE__*/function () {
816
859
  row = this.rowFilter.renderedToSource(row);
817
860
  }
818
861
 
819
- if ((0, _element.overlayContainsElement)(_constants.CLONE_TOP_LEFT_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_constants.CLONE_LEFT, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_constants.CLONE_BOTTOM_LEFT_CORNER, cellElement, this.wtRootElement)) {
862
+ if ((0, _element.overlayContainsElement)(_overlay.CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_INLINE_START, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement)) {
820
863
  col = this.columnFilter.offsettedTH(col);
821
864
  } else {
822
865
  col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
823
866
  }
824
867
 
825
- return new _coords.default(row, col);
868
+ return this.wot.createCellCoords(row, col);
826
869
  }
827
870
  /**
828
871
  * Check if any of the rendered rows is higher than expected, and if so, cache them.
@@ -831,12 +874,12 @@ var Table = /*#__PURE__*/function () {
831
874
  }, {
832
875
  key: "markOversizedRows",
833
876
  value: function markOversizedRows() {
834
- if (this.wot.getSetting('externalRowCalculator')) {
877
+ if (this.wtSettings.getSetting('externalRowCalculator')) {
835
878
  return;
836
879
  }
837
880
 
838
881
  var rowCount = this.TBODY.childNodes.length;
839
- var expectedTableHeight = rowCount * this.wot.wtSettings.settings.defaultRowHeight;
882
+ var expectedTableHeight = rowCount * this.wtSettings.getSetting('defaultRowHeight');
840
883
  var actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
841
884
  var previousRowHeight;
842
885
  var rowInnerHeight;
@@ -844,7 +887,7 @@ var Table = /*#__PURE__*/function () {
844
887
  var currentTr;
845
888
  var rowHeader;
846
889
 
847
- if (expectedTableHeight === actualTableHeight && !this.wot.getSetting('fixedRowsBottom')) {
890
+ if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {
848
891
  // If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them
849
892
  return;
850
893
  }
@@ -862,9 +905,9 @@ var Table = /*#__PURE__*/function () {
862
905
  rowInnerHeight = (0, _element.innerHeight)(currentTr) - 1;
863
906
  }
864
907
 
865
- if (!previousRowHeight && this.wot.wtSettings.settings.defaultRowHeight < rowInnerHeight || previousRowHeight < rowInnerHeight) {
908
+ if (!previousRowHeight && this.wtSettings.getSetting('defaultRowHeight') < rowInnerHeight || previousRowHeight < rowInnerHeight) {
866
909
  rowInnerHeight += 1;
867
- this.wot.wtViewport.oversizedRows[sourceRowIndex] = rowInnerHeight;
910
+ this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowInnerHeight;
868
911
  }
869
912
  }
870
913
  }
@@ -892,7 +935,7 @@ var Table = /*#__PURE__*/function () {
892
935
  return false;
893
936
  }
894
937
 
895
- var rowHeaders = this.wot.getSetting('rowHeaders');
938
+ var rowHeaders = this.wtSettings.getSetting('rowHeaders');
896
939
  var rowHeadersCount = rowHeaders.length;
897
940
  return Math.abs(column) <= rowHeadersCount;
898
941
  }
@@ -910,7 +953,7 @@ var Table = /*#__PURE__*/function () {
910
953
  return false;
911
954
  }
912
955
 
913
- var columnHeaders = this.wot.getSetting('columnHeaders');
956
+ var columnHeaders = this.wtSettings.getSetting('columnHeaders');
914
957
  var columnHeadersCount = columnHeaders.length;
915
958
  return Math.abs(row) <= columnHeadersCount;
916
959
  }
@@ -1008,7 +1051,7 @@ var Table = /*#__PURE__*/function () {
1008
1051
  *
1009
1052
  * Negative column index is used to check the rows' headers.
1010
1053
  *
1011
- * For fixedColumnsLeft: 1 the master overlay
1054
+ * For fixedColumnsStart: 1 the master overlay
1012
1055
  * do not render this first columns.
1013
1056
  * Headers -3 -2 -1 |
1014
1057
  * +----+----+----║┄ ┄ +------+------+
@@ -1055,7 +1098,7 @@ var Table = /*#__PURE__*/function () {
1055
1098
  * it is not possible to render headers partially. The "after" index can not be
1056
1099
  * lower than -1.
1057
1100
  *
1058
- * For fixedColumnsLeft: 1 the master overlay
1101
+ * For fixedColumnsStart: 1 the master overlay
1059
1102
  * do not render this first columns.
1060
1103
  * Headers -3 -2 -1 |
1061
1104
  * +----+----+----║┄ ┄ +------+------+
@@ -1112,12 +1155,12 @@ var Table = /*#__PURE__*/function () {
1112
1155
  }, {
1113
1156
  key: "allRowsInViewport",
1114
1157
  value: function allRowsInViewport() {
1115
- return this.wot.getSetting('totalRows') === this.getVisibleRowsCount();
1158
+ return this.wtSettings.getSetting('totalRows') === this.getVisibleRowsCount();
1116
1159
  }
1117
1160
  }, {
1118
1161
  key: "allColumnsInViewport",
1119
1162
  value: function allColumnsInViewport() {
1120
- return this.wot.getSetting('totalColumns') === this.getVisibleColumnsCount();
1163
+ return this.wtSettings.getSetting('totalColumns') === this.getVisibleColumnsCount();
1121
1164
  }
1122
1165
  /**
1123
1166
  * Checks if any of the row's cells content exceeds its initial height, and if so, returns the oversized height.
@@ -1173,6 +1216,58 @@ var Table = /*#__PURE__*/function () {
1173
1216
  value: function hasDefinedSize() {
1174
1217
  return this.hasTableHeight && this.hasTableWidth;
1175
1218
  }
1219
+ /**
1220
+ * Gets table's width. The returned width is the width of the rendered cells that fit in the
1221
+ * current viewport. The value may change depends on the viewport position (scroll position).
1222
+ *
1223
+ * @returns {number}
1224
+ */
1225
+
1226
+ }, {
1227
+ key: "getWidth",
1228
+ value: function getWidth() {
1229
+ return (0, _element.outerWidth)(this.TABLE);
1230
+ }
1231
+ /**
1232
+ * Gets table's height. The returned height is the height of the rendered cells that fit in the
1233
+ * current viewport. The value may change depends on the viewport position (scroll position).
1234
+ *
1235
+ * @returns {number}
1236
+ */
1237
+
1238
+ }, {
1239
+ key: "getHeight",
1240
+ value: function getHeight() {
1241
+ return (0, _element.outerHeight)(this.TABLE);
1242
+ }
1243
+ /**
1244
+ * Gets table's total width. The returned width is the width of all rendered cells (including headers)
1245
+ * that can be displayed in the table.
1246
+ *
1247
+ * @returns {number}
1248
+ */
1249
+
1250
+ }, {
1251
+ key: "getTotalWidth",
1252
+ value: function getTotalWidth() {
1253
+ var width = (0, _element.outerWidth)(this.hider); // when the overlay's table does not have any cells the hider returns 0, get then width from the table element
1254
+
1255
+ return width !== 0 ? width : this.getWidth();
1256
+ }
1257
+ /**
1258
+ * Gets table's total height. The returned height is the height of all rendered cells (including headers)
1259
+ * that can be displayed in the table.
1260
+ *
1261
+ * @returns {number}
1262
+ */
1263
+
1264
+ }, {
1265
+ key: "getTotalHeight",
1266
+ value: function getTotalHeight() {
1267
+ var height = (0, _element.outerHeight)(this.hider); // when the overlay's table does not have any cells the hider returns 0, get then height from the table element
1268
+
1269
+ return height !== 0 ? height : this.getHeight();
1270
+ }
1176
1271
  /**
1177
1272
  * Checks if the table is visible. It returns `true` when the holder element (or its parents)
1178
1273
  * has CSS 'display' property different than 'none'.
@@ -1221,7 +1316,7 @@ var Table = /*#__PURE__*/function () {
1221
1316
  var rowHeaderWidth = width;
1222
1317
 
1223
1318
  if (typeof width !== 'number') {
1224
- rowHeaderWidth = this.wot.getSetting('defaultColumnWidth');
1319
+ rowHeaderWidth = this.wtSettings.getSetting('defaultColumnWidth');
1225
1320
  }
1226
1321
 
1227
1322
  if (this.correctHeaderWidth) {