handsontable 14.6.1 → 15.0.0-next-fdd4480-20241205

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 (392) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
  5. package/3rdparty/walkontable/src/calculator/index.js +1 -2
  6. package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
  7. package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
  8. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
  9. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  10. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  11. package/3rdparty/walkontable/src/core/_base.js +29 -23
  12. package/3rdparty/walkontable/src/core/_base.mjs +29 -23
  13. package/3rdparty/walkontable/src/core/clone.js +1 -0
  14. package/3rdparty/walkontable/src/core/clone.mjs +1 -0
  15. package/3rdparty/walkontable/src/core/core.js +2 -0
  16. package/3rdparty/walkontable/src/core/core.mjs +2 -0
  17. package/3rdparty/walkontable/src/facade/core.js +12 -6
  18. package/3rdparty/walkontable/src/facade/core.mjs +12 -6
  19. package/3rdparty/walkontable/src/index.js +0 -1
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +8 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
  23. package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
  24. package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
  25. package/3rdparty/walkontable/src/overlay/index.js +2 -0
  26. package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
  27. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
  28. package/3rdparty/walkontable/src/overlay/top.js +9 -8
  29. package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
  30. package/3rdparty/walkontable/src/overlays.js +10 -26
  31. package/3rdparty/walkontable/src/overlays.mjs +10 -26
  32. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  33. package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
  34. package/3rdparty/walkontable/src/renderer/index.js +4 -2
  35. package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
  36. package/3rdparty/walkontable/src/renderer/table.js +13 -4
  37. package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
  38. package/3rdparty/walkontable/src/scroll.js +46 -37
  39. package/3rdparty/walkontable/src/scroll.mjs +46 -37
  40. package/3rdparty/walkontable/src/selection/border/border.js +52 -58
  41. package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
  42. package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
  43. package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
  44. package/3rdparty/walkontable/src/selection/index.js +6 -4
  45. package/3rdparty/walkontable/src/selection/index.mjs +1 -1
  46. package/3rdparty/walkontable/src/selection/manager.js +3 -0
  47. package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
  48. package/3rdparty/walkontable/src/selection/scanner.js +46 -11
  49. package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
  50. package/3rdparty/walkontable/src/settings.js +8 -9
  51. package/3rdparty/walkontable/src/settings.mjs +8 -9
  52. package/3rdparty/walkontable/src/table/master.js +1 -1
  53. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  54. package/3rdparty/walkontable/src/table.js +25 -36
  55. package/3rdparty/walkontable/src/table.mjs +25 -36
  56. package/3rdparty/walkontable/src/types.js +1 -0
  57. package/3rdparty/walkontable/src/types.mjs +1 -0
  58. package/3rdparty/walkontable/src/utils/column.js +1 -43
  59. package/3rdparty/walkontable/src/utils/column.mjs +1 -43
  60. package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
  61. package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
  62. package/3rdparty/walkontable/src/viewport.js +94 -91
  63. package/3rdparty/walkontable/src/viewport.mjs +95 -92
  64. package/CHANGELOG.md +36 -0
  65. package/README.md +1 -1
  66. package/base.js +4 -4
  67. package/base.mjs +3 -3
  68. package/core/focusCatcher/focusDetector.js +1 -0
  69. package/core/focusCatcher/focusDetector.mjs +1 -0
  70. package/core/hooks/bucket.js +184 -0
  71. package/core/hooks/bucket.mjs +180 -0
  72. package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
  73. package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
  74. package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
  75. package/core/hooks/index.js +385 -0
  76. package/core/hooks/index.mjs +381 -0
  77. package/core/index.js +2 -0
  78. package/core.d.ts +5 -3
  79. package/core.js +77 -35
  80. package/core.mjs +69 -27
  81. package/dataMap/dataMap.js +3 -0
  82. package/dataMap/dataMap.mjs +3 -0
  83. package/dataMap/dataSource.js +2 -0
  84. package/dataMap/dataSource.mjs +2 -0
  85. package/dataMap/metaManager/index.js +2 -0
  86. package/dataMap/metaManager/index.mjs +2 -0
  87. package/dataMap/metaManager/metaSchema.js +91 -5
  88. package/dataMap/metaManager/metaSchema.mjs +91 -5
  89. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
  90. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  91. package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
  92. package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
  93. package/dist/handsontable.css +84 -72
  94. package/dist/handsontable.full.css +317 -304
  95. package/dist/handsontable.full.js +14826 -7294
  96. package/dist/handsontable.full.min.css +15 -10
  97. package/dist/handsontable.full.min.js +262 -69
  98. package/dist/handsontable.js +7826 -5552
  99. package/dist/handsontable.min.css +10 -6
  100. package/dist/handsontable.min.js +33 -33
  101. package/dist/languages/all.js +1 -1
  102. package/dist/languages/ar-AR.js +1 -1
  103. package/dist/languages/cs-CZ.js +1 -1
  104. package/dist/languages/de-CH.js +1 -1
  105. package/dist/languages/de-DE.js +1 -1
  106. package/dist/languages/en-US.js +1 -1
  107. package/dist/languages/es-MX.js +1 -1
  108. package/dist/languages/fr-FR.js +1 -1
  109. package/dist/languages/hr-HR.js +1 -1
  110. package/dist/languages/it-IT.js +1 -1
  111. package/dist/languages/ja-JP.js +1 -1
  112. package/dist/languages/ko-KR.js +1 -1
  113. package/dist/languages/lv-LV.js +1 -1
  114. package/dist/languages/nb-NO.js +1 -1
  115. package/dist/languages/nl-NL.js +1 -1
  116. package/dist/languages/pl-PL.js +1 -1
  117. package/dist/languages/pt-BR.js +1 -1
  118. package/dist/languages/ru-RU.js +1 -1
  119. package/dist/languages/sr-SP.js +1 -1
  120. package/dist/languages/zh-CN.js +1 -1
  121. package/dist/languages/zh-TW.js +1 -1
  122. package/editorManager.js +2 -2
  123. package/editorManager.mjs +2 -2
  124. package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
  125. package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
  126. package/editors/baseEditor/baseEditor.js +25 -18
  127. package/editors/baseEditor/baseEditor.mjs +26 -19
  128. package/editors/dateEditor/dateEditor.js +9 -0
  129. package/editors/dateEditor/dateEditor.mjs +10 -1
  130. package/editors/dropdownEditor/dropdownEditor.js +4 -3
  131. package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
  132. package/editors/handsontableEditor/handsontableEditor.js +36 -2
  133. package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
  134. package/editors/passwordEditor/passwordEditor.js +18 -0
  135. package/editors/passwordEditor/passwordEditor.mjs +18 -0
  136. package/editors/registry.js +2 -2
  137. package/editors/registry.mjs +1 -1
  138. package/editors/selectEditor/selectEditor.js +20 -9
  139. package/editors/selectEditor/selectEditor.mjs +20 -9
  140. package/editors/textEditor/textEditor.js +5 -12
  141. package/editors/textEditor/textEditor.mjs +6 -13
  142. package/focusManager.js +5 -7
  143. package/focusManager.mjs +5 -7
  144. package/helpers/array.js +2 -0
  145. package/helpers/array.mjs +2 -0
  146. package/helpers/data.js +3 -0
  147. package/helpers/data.mjs +3 -0
  148. package/helpers/dom/element.js +39 -18
  149. package/helpers/dom/element.mjs +38 -17
  150. package/helpers/mixed.js +3 -3
  151. package/helpers/mixed.mjs +3 -3
  152. package/helpers/moves.js +3 -0
  153. package/helpers/moves.mjs +3 -0
  154. package/helpers/number.js +1 -0
  155. package/helpers/number.mjs +1 -0
  156. package/helpers/object.js +2 -0
  157. package/helpers/object.mjs +2 -0
  158. package/helpers/themes.js +17 -0
  159. package/helpers/themes.mjs +13 -0
  160. package/i18n/index.js +2 -0
  161. package/i18n/languages/index.d.ts +8 -0
  162. package/i18n/languages/ja-JP.d.ts +1 -1
  163. package/i18n/phraseFormatters/substituteVariables.js +1 -0
  164. package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
  165. package/index.d.ts +9 -1
  166. package/languages/all.js +1 -1
  167. package/languages/ar-AR.js +1 -1
  168. package/languages/cs-CZ.js +1 -1
  169. package/languages/de-CH.js +1 -1
  170. package/languages/de-DE.js +1 -1
  171. package/languages/en-US.js +1 -1
  172. package/languages/es-MX.js +1 -1
  173. package/languages/fr-FR.js +1 -1
  174. package/languages/hr-HR.js +1 -1
  175. package/languages/index.js +1 -1
  176. package/languages/it-IT.js +1 -1
  177. package/languages/ja-JP.js +1 -1
  178. package/languages/ko-KR.js +1 -1
  179. package/languages/lv-LV.js +1 -1
  180. package/languages/nb-NO.js +1 -1
  181. package/languages/nl-NL.js +1 -1
  182. package/languages/pl-PL.js +1 -1
  183. package/languages/pt-BR.js +1 -1
  184. package/languages/ru-RU.js +1 -1
  185. package/languages/sr-SP.js +1 -1
  186. package/languages/zh-CN.js +1 -1
  187. package/languages/zh-TW.js +1 -1
  188. package/package.json +22 -7
  189. package/plugins/autoColumnSize/autoColumnSize.js +22 -27
  190. package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
  191. package/plugins/autoRowSize/autoRowSize.js +20 -22
  192. package/plugins/autoRowSize/autoRowSize.mjs +21 -23
  193. package/plugins/autofill/autofill.js +4 -5
  194. package/plugins/autofill/autofill.mjs +1 -1
  195. package/plugins/base/base.d.ts +1 -1
  196. package/plugins/base/base.js +41 -0
  197. package/plugins/base/base.mjs +42 -1
  198. package/plugins/base/index.js +2 -1
  199. package/plugins/base/index.mjs +1 -1
  200. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
  201. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
  202. package/plugins/columnSorting/columnSorting.js +5 -4
  203. package/plugins/columnSorting/columnSorting.mjs +3 -1
  204. package/plugins/columnSorting/columnStatesManager.js +1 -0
  205. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  206. package/plugins/columnSorting/utils.js +3 -0
  207. package/plugins/columnSorting/utils.mjs +3 -0
  208. package/plugins/columnSummary/endpoints.js +3 -0
  209. package/plugins/columnSummary/endpoints.mjs +3 -0
  210. package/plugins/comments/commentEditor.js +9 -0
  211. package/plugins/comments/commentEditor.mjs +9 -0
  212. package/plugins/comments/comments.js +24 -18
  213. package/plugins/comments/comments.mjs +26 -20
  214. package/plugins/comments/editorResizeObserver.js +2 -0
  215. package/plugins/comments/editorResizeObserver.mjs +2 -0
  216. package/plugins/contextMenu/contextMenu.d.ts +2 -1
  217. package/plugins/contextMenu/contextMenu.js +6 -7
  218. package/plugins/contextMenu/contextMenu.mjs +1 -1
  219. package/plugins/contextMenu/menu/index.js +2 -0
  220. package/plugins/contextMenu/menu/menu.js +10 -5
  221. package/plugins/contextMenu/menu/menu.mjs +11 -6
  222. package/plugins/contextMenu/menu/positioner.js +4 -2
  223. package/plugins/contextMenu/menu/positioner.mjs +4 -2
  224. package/plugins/contextMenu/menu/shortcuts.js +3 -1
  225. package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
  226. package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
  227. package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
  228. package/plugins/contextMenu/utils.js +0 -10
  229. package/plugins/contextMenu/utils.mjs +0 -9
  230. package/plugins/copyPaste/copyPaste.d.ts +1 -0
  231. package/plugins/copyPaste/copyPaste.js +32 -23
  232. package/plugins/copyPaste/copyPaste.mjs +24 -15
  233. package/plugins/customBorders/utils.js +2 -0
  234. package/plugins/customBorders/utils.mjs +2 -0
  235. package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
  236. package/plugins/dropdownMenu/dropdownMenu.js +6 -7
  237. package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
  238. package/plugins/exportFile/types/csv.js +1 -0
  239. package/plugins/exportFile/types/csv.mjs +1 -0
  240. package/plugins/filters/component/condition.js +2 -0
  241. package/plugins/filters/component/condition.mjs +2 -0
  242. package/plugins/filters/component/operators.js +2 -0
  243. package/plugins/filters/component/operators.mjs +2 -0
  244. package/plugins/filters/component/value.js +3 -0
  245. package/plugins/filters/component/value.mjs +3 -0
  246. package/plugins/filters/conditionCollection.js +3 -0
  247. package/plugins/filters/conditionCollection.mjs +3 -0
  248. package/plugins/filters/conditionUpdateObserver.js +2 -0
  249. package/plugins/filters/conditionUpdateObserver.mjs +2 -0
  250. package/plugins/filters/filters.js +43 -13
  251. package/plugins/filters/filters.mjs +43 -13
  252. package/plugins/filters/logicalOperations/conjunction.js +2 -0
  253. package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
  254. package/plugins/filters/logicalOperations/disjunction.js +2 -0
  255. package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
  256. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
  257. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
  258. package/plugins/filters/menu/focusController.js +38 -14
  259. package/plugins/filters/menu/focusController.mjs +38 -14
  260. package/plugins/filters/ui/multipleSelect.js +10 -0
  261. package/plugins/filters/ui/multipleSelect.mjs +10 -0
  262. package/plugins/formulas/engine/register.js +3 -0
  263. package/plugins/formulas/engine/register.mjs +3 -0
  264. package/plugins/formulas/engine/settings.js +3 -0
  265. package/plugins/formulas/engine/settings.mjs +3 -0
  266. package/plugins/formulas/formulas.js +12 -7
  267. package/plugins/formulas/formulas.mjs +6 -1
  268. package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
  269. package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
  270. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
  271. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
  272. package/plugins/hiddenColumns/hiddenColumns.js +22 -30
  273. package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
  274. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
  275. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
  276. package/plugins/hiddenRows/hiddenRows.js +21 -29
  277. package/plugins/hiddenRows/hiddenRows.mjs +17 -25
  278. package/plugins/index.d.ts +3 -0
  279. package/plugins/index.js +3 -0
  280. package/plugins/index.mjs +3 -1
  281. package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
  282. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
  283. package/plugins/manualColumnMove/manualColumnMove.js +6 -6
  284. package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
  285. package/plugins/manualColumnResize/manualColumnResize.js +26 -12
  286. package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
  287. package/plugins/manualRowMove/manualRowMove.js +8 -6
  288. package/plugins/manualRowMove/manualRowMove.mjs +6 -4
  289. package/plugins/manualRowResize/manualRowResize.js +3 -2
  290. package/plugins/manualRowResize/manualRowResize.mjs +4 -3
  291. package/plugins/mergeCells/cellsCollection.js +19 -3
  292. package/plugins/mergeCells/cellsCollection.mjs +20 -4
  293. package/plugins/mergeCells/mergeCells.d.ts +6 -2
  294. package/plugins/mergeCells/mergeCells.js +84 -56
  295. package/plugins/mergeCells/mergeCells.mjs +82 -54
  296. package/plugins/mergeCells/renderer.js +13 -3
  297. package/plugins/mergeCells/renderer.mjs +13 -3
  298. package/plugins/multiColumnSorting/domHelpers.js +2 -0
  299. package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
  300. package/plugins/nestedHeaders/nestedHeaders.js +63 -16
  301. package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
  302. package/plugins/nestedHeaders/stateManager/index.js +1 -0
  303. package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
  304. package/plugins/nestedRows/nestedRows.js +3 -0
  305. package/plugins/nestedRows/nestedRows.mjs +3 -0
  306. package/plugins/nestedRows/ui/headers.js +7 -1
  307. package/plugins/nestedRows/ui/headers.mjs +7 -1
  308. package/plugins/nestedRows/utils/rowMoveController.js +4 -0
  309. package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
  310. package/plugins/persistentState/persistentState.js +4 -4
  311. package/plugins/persistentState/persistentState.mjs +1 -1
  312. package/plugins/stretchColumns/calculator.js +162 -0
  313. package/plugins/stretchColumns/calculator.mjs +158 -0
  314. package/plugins/stretchColumns/index.d.ts +1 -0
  315. package/plugins/stretchColumns/index.js +7 -0
  316. package/plugins/stretchColumns/index.mjs +1 -0
  317. package/plugins/stretchColumns/strategies/_base.js +85 -0
  318. package/plugins/stretchColumns/strategies/_base.mjs +81 -0
  319. package/plugins/stretchColumns/strategies/all.js +71 -0
  320. package/plugins/stretchColumns/strategies/all.mjs +67 -0
  321. package/plugins/stretchColumns/strategies/last.js +79 -0
  322. package/plugins/stretchColumns/strategies/last.mjs +75 -0
  323. package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
  324. package/plugins/stretchColumns/stretchColumns.js +222 -0
  325. package/plugins/stretchColumns/stretchColumns.mjs +218 -0
  326. package/plugins/trimRows/trimRows.js +2 -0
  327. package/plugins/trimRows/trimRows.mjs +2 -0
  328. package/plugins/undoRedo/undoRedo.js +9 -5
  329. package/plugins/undoRedo/undoRedo.mjs +8 -3
  330. package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
  331. package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
  332. package/selection/index.js +2 -0
  333. package/selection/range.js +2 -0
  334. package/selection/range.mjs +2 -0
  335. package/selection/selection.js +7 -2
  336. package/selection/selection.mjs +7 -2
  337. package/selection/utils.js +2 -0
  338. package/selection/utils.mjs +2 -0
  339. package/settings.d.ts +4 -1
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
  342. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
  343. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
  344. package/shortcutContexts/commands/index.js +2 -0
  345. package/shortcutContexts/commands/index.mjs +2 -0
  346. package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
  347. package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
  348. package/shortcutContexts/index.js +2 -0
  349. package/shortcutContexts/index.mjs +2 -0
  350. package/shortcuts/context.js +3 -0
  351. package/shortcuts/context.mjs +3 -0
  352. package/shortcuts/recorder.js +3 -3
  353. package/shortcuts/recorder.mjs +3 -3
  354. package/shortcuts/utils.js +1 -0
  355. package/shortcuts/utils.mjs +1 -0
  356. package/styles/handsontable.css +2307 -0
  357. package/styles/handsontable.min.css +30 -0
  358. package/styles/ht-theme-horizon.css +607 -0
  359. package/styles/ht-theme-horizon.min.css +30 -0
  360. package/styles/ht-theme-main.css +613 -0
  361. package/styles/ht-theme-main.min.css +30 -0
  362. package/tableView.js +205 -33
  363. package/tableView.mjs +206 -34
  364. package/translations/changesObservable/observable.js +2 -0
  365. package/translations/changesObservable/observable.mjs +2 -0
  366. package/translations/index.js +2 -0
  367. package/translations/indexMapper.js +4 -0
  368. package/translations/indexMapper.mjs +4 -0
  369. package/translations/mapCollections/index.js +2 -0
  370. package/translations/mapCollections/mapCollection.js +2 -0
  371. package/translations/mapCollections/mapCollection.mjs +2 -0
  372. package/translations/maps/index.js +2 -0
  373. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  374. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  375. package/translations/maps/utils/actionsOnIndexes.js +2 -0
  376. package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
  377. package/translations/maps/utils/physicallyIndexed.js +1 -0
  378. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  379. package/utils/autoResize.js +11 -3
  380. package/utils/autoResize.mjs +11 -3
  381. package/utils/dataStructures/priorityMap.js +1 -0
  382. package/utils/dataStructures/priorityMap.mjs +1 -0
  383. package/utils/dataStructures/uniqueMap.js +2 -0
  384. package/utils/dataStructures/uniqueMap.mjs +2 -0
  385. package/utils/ghostTable.js +7 -3
  386. package/utils/ghostTable.mjs +7 -3
  387. package/utils/parseTable.js +4 -0
  388. package/utils/parseTable.mjs +4 -0
  389. package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
  390. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  391. package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
  392. package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -1,11 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
4
5
  var _partiallyVisibleColumns = require("./partiallyVisibleColumns");
6
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
9
  /**
6
10
  * @class RenderedColumnsCalculationType
7
11
  */
8
12
  class RenderedColumnsCalculationType extends _partiallyVisibleColumns.PartiallyVisibleColumnsCalculationType {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * The property holds the offset applied in the `overrideFn` function to the `startColumn` value.
17
+ *
18
+ * @type {number}
19
+ */
20
+ _defineProperty(this, "columnStartOffset", 0);
21
+ /**
22
+ * The property holds the offset applied in the `overrideFn` function to the `endColumn` value.
23
+ *
24
+ * @type {number}
25
+ */
26
+ _defineProperty(this, "columnEndOffset", 0);
27
+ }
9
28
  /**
10
29
  * Finalizes the calculation.
11
30
  *
@@ -20,7 +39,11 @@ class RenderedColumnsCalculationType extends _partiallyVisibleColumns.PartiallyV
20
39
  startPositions
21
40
  } = viewportCalculator;
22
41
  if (this.startColumn !== null && typeof overrideFn === 'function') {
42
+ const startColumn = this.startColumn;
43
+ const endColumn = this.endColumn;
23
44
  overrideFn(this);
45
+ this.columnStartOffset = startColumn - this.startColumn;
46
+ this.columnEndOffset = this.endColumn - endColumn;
24
47
  }
25
48
  if (this.startColumn < 0) {
26
49
  this.startColumn = 0;
@@ -1,8 +1,27 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
5
  import { PartiallyVisibleColumnsCalculationType } from "./partiallyVisibleColumns.mjs";
2
6
  /**
3
7
  * @class RenderedColumnsCalculationType
4
8
  */
5
9
  export class RenderedColumnsCalculationType extends PartiallyVisibleColumnsCalculationType {
10
+ constructor() {
11
+ super(...arguments);
12
+ /**
13
+ * The property holds the offset applied in the `overrideFn` function to the `startColumn` value.
14
+ *
15
+ * @type {number}
16
+ */
17
+ _defineProperty(this, "columnStartOffset", 0);
18
+ /**
19
+ * The property holds the offset applied in the `overrideFn` function to the `endColumn` value.
20
+ *
21
+ * @type {number}
22
+ */
23
+ _defineProperty(this, "columnEndOffset", 0);
24
+ }
6
25
  /**
7
26
  * Finalizes the calculation.
8
27
  *
@@ -17,7 +36,11 @@ export class RenderedColumnsCalculationType extends PartiallyVisibleColumnsCalcu
17
36
  startPositions
18
37
  } = viewportCalculator;
19
38
  if (this.startColumn !== null && typeof overrideFn === 'function') {
39
+ const startColumn = this.startColumn;
40
+ const endColumn = this.endColumn;
20
41
  overrideFn(this);
42
+ this.columnStartOffset = startColumn - this.startColumn;
43
+ this.columnEndOffset = this.endColumn - endColumn;
21
44
  }
22
45
  if (this.startColumn < 0) {
23
46
  this.startColumn = 0;
@@ -1,11 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
4
5
  var _partiallyVisibleRows = require("./partiallyVisibleRows");
6
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
9
  /**
6
10
  * @class RenderedRowsCalculationType
7
11
  */
8
12
  class RenderedRowsCalculationType extends _partiallyVisibleRows.PartiallyVisibleRowsCalculationType {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * The property holds the offset applied in the `overrideFn` function to the `startColumn` value.
17
+ *
18
+ * @type {number}
19
+ */
20
+ _defineProperty(this, "rowStartOffset", 0);
21
+ /**
22
+ * The property holds the offset applied in the `overrideFn` function to the `endColumn` value.
23
+ *
24
+ * @type {number}
25
+ */
26
+ _defineProperty(this, "rowEndOffset", 0);
27
+ }
9
28
  /**
10
29
  * Finalizes the calculation.
11
30
  *
@@ -20,7 +39,11 @@ class RenderedRowsCalculationType extends _partiallyVisibleRows.PartiallyVisible
20
39
  startPositions
21
40
  } = viewportCalculator;
22
41
  if (this.startRow !== null && typeof overrideFn === 'function') {
42
+ const startRow = this.startRow;
43
+ const endRow = this.endRow;
23
44
  overrideFn(this);
45
+ this.rowStartOffset = startRow - this.startRow;
46
+ this.rowEndOffset = this.endRow - endRow;
24
47
  }
25
48
  if (this.startRow < 0) {
26
49
  this.startRow = 0;
@@ -1,8 +1,27 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
5
  import { PartiallyVisibleRowsCalculationType } from "./partiallyVisibleRows.mjs";
2
6
  /**
3
7
  * @class RenderedRowsCalculationType
4
8
  */
5
9
  export class RenderedRowsCalculationType extends PartiallyVisibleRowsCalculationType {
10
+ constructor() {
11
+ super(...arguments);
12
+ /**
13
+ * The property holds the offset applied in the `overrideFn` function to the `startColumn` value.
14
+ *
15
+ * @type {number}
16
+ */
17
+ _defineProperty(this, "rowStartOffset", 0);
18
+ /**
19
+ * The property holds the offset applied in the `overrideFn` function to the `endColumn` value.
20
+ *
21
+ * @type {number}
22
+ */
23
+ _defineProperty(this, "rowEndOffset", 0);
24
+ }
6
25
  /**
7
26
  * Finalizes the calculation.
8
27
  *
@@ -17,7 +36,11 @@ export class RenderedRowsCalculationType extends PartiallyVisibleRowsCalculation
17
36
  startPositions
18
37
  } = viewportCalculator;
19
38
  if (this.startRow !== null && typeof overrideFn === 'function') {
39
+ const startRow = this.startRow;
40
+ const endRow = this.endRow;
20
41
  overrideFn(this);
42
+ this.rowStartOffset = startRow - this.startRow;
43
+ this.rowEndOffset = this.endRow - endRow;
21
44
  }
22
45
  if (this.startRow < 0) {
23
46
  this.startRow = 0;
@@ -21,5 +21,4 @@ var _viewportColumns = require("./viewportColumns");
21
21
  exports.ViewportColumnsCalculator = _viewportColumns.ViewportColumnsCalculator;
22
22
  exports.DEFAULT_COLUMN_WIDTH = _viewportColumns.DEFAULT_WIDTH;
23
23
  var _viewportRows = require("./viewportRows");
24
- exports.ViewportRowsCalculator = _viewportRows.ViewportRowsCalculator;
25
- exports.DEFAULT_ROW_HEIGHT = _viewportRows.DEFAULT_HEIGHT;
24
+ exports.ViewportRowsCalculator = _viewportRows.ViewportRowsCalculator;
@@ -7,5 +7,5 @@ import { RenderedAllRowsCalculationType } from "./calculationType/renderedAllRow
7
7
  import { RenderedColumnsCalculationType } from "./calculationType/renderedColumns.mjs";
8
8
  import { RenderedRowsCalculationType } from "./calculationType/renderedRows.mjs";
9
9
  import { ViewportColumnsCalculator, DEFAULT_WIDTH } from "./viewportColumns.mjs";
10
- import { ViewportRowsCalculator, DEFAULT_HEIGHT } from "./viewportRows.mjs";
11
- export { DEFAULT_HEIGHT as DEFAULT_ROW_HEIGHT, DEFAULT_WIDTH as DEFAULT_COLUMN_WIDTH, FullyVisibleColumnsCalculationType, FullyVisibleRowsCalculationType, PartiallyVisibleColumnsCalculationType, PartiallyVisibleRowsCalculationType, RenderedAllColumnsCalculationType, RenderedAllRowsCalculationType, RenderedColumnsCalculationType, RenderedRowsCalculationType, ViewportColumnsCalculator, ViewportRowsCalculator };
10
+ import { ViewportRowsCalculator } from "./viewportRows.mjs";
11
+ export { DEFAULT_WIDTH as DEFAULT_COLUMN_WIDTH, FullyVisibleColumnsCalculationType, FullyVisibleRowsCalculationType, PartiallyVisibleColumnsCalculationType, PartiallyVisibleRowsCalculationType, RenderedAllColumnsCalculationType, RenderedAllRowsCalculationType, RenderedColumnsCalculationType, RenderedRowsCalculationType, ViewportColumnsCalculator, ViewportRowsCalculator };
@@ -2,6 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.for-each.js");
5
7
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
8
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
7
9
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -1,4 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/esnext.iterator.constructor.js";
3
+ import "core-js/modules/esnext.iterator.for-each.js";
2
4
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
6
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -7,8 +7,6 @@ var _viewportBase = require("./viewportBase");
7
7
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
8
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
9
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
- const DEFAULT_HEIGHT = exports.DEFAULT_HEIGHT = 23;
11
-
12
10
  /**
13
11
  * @typedef {object} ViewportRowsCalculatorOptions
14
12
  * @property {Map<string, ViewportBaseCalculator>} calculationTypes The calculation types to be performed.
@@ -34,6 +32,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
34
32
  viewportHeight,
35
33
  scrollOffset,
36
34
  totalRows,
35
+ defaultRowHeight,
37
36
  rowHeightFn,
38
37
  overrideFn,
39
38
  horizontalScrollbarHeight
@@ -51,6 +50,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
51
50
  _defineProperty(this, "totalCalculatedHeight", 0);
52
51
  _defineProperty(this, "startPositions", []);
53
52
  _defineProperty(this, "needReverse", true);
53
+ this.defaultHeight = defaultRowHeight;
54
54
  this.viewportHeight = viewportHeight;
55
55
  this.scrollOffset = scrollOffset;
56
56
  this.zeroBasedScrollOffset = Math.max(scrollOffset, 0);
@@ -89,7 +89,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
89
89
  getRowHeight(row) {
90
90
  const rowHeight = this.rowHeightFn(row);
91
91
  if (isNaN(rowHeight)) {
92
- return DEFAULT_HEIGHT;
92
+ return this.defaultHeight;
93
93
  }
94
94
  return rowHeight;
95
95
  }
@@ -4,8 +4,6 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
4
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
6
  import { ViewportBaseCalculator } from "./viewportBase.mjs";
7
- export const DEFAULT_HEIGHT = 23;
8
-
9
7
  /**
10
8
  * @typedef {object} ViewportRowsCalculatorOptions
11
9
  * @property {Map<string, ViewportBaseCalculator>} calculationTypes The calculation types to be performed.
@@ -31,6 +29,7 @@ export class ViewportRowsCalculator extends ViewportBaseCalculator {
31
29
  viewportHeight,
32
30
  scrollOffset,
33
31
  totalRows,
32
+ defaultRowHeight,
34
33
  rowHeightFn,
35
34
  overrideFn,
36
35
  horizontalScrollbarHeight
@@ -48,6 +47,7 @@ export class ViewportRowsCalculator extends ViewportBaseCalculator {
48
47
  _defineProperty(this, "totalCalculatedHeight", 0);
49
48
  _defineProperty(this, "startPositions", []);
50
49
  _defineProperty(this, "needReverse", true);
50
+ this.defaultHeight = defaultRowHeight;
51
51
  this.viewportHeight = viewportHeight;
52
52
  this.scrollOffset = scrollOffset;
53
53
  this.zeroBasedScrollOffset = Math.max(scrollOffset, 0);
@@ -86,7 +86,7 @@ export class ViewportRowsCalculator extends ViewportBaseCalculator {
86
86
  getRowHeight(row) {
87
87
  const rowHeight = this.rowHeightFn(row);
88
88
  if (isNaN(rowHeight)) {
89
- return DEFAULT_HEIGHT;
89
+ return this.defaultHeight;
90
90
  }
91
91
  return rowHeight;
92
92
  }
@@ -42,6 +42,13 @@ class CoreAbstract {
42
42
  _defineProperty(this, "guid", `wt_${(0, _string.randomString)()}`);
43
43
  _defineProperty(this, "drawInterrupted", false);
44
44
  _defineProperty(this, "drawn", false);
45
+ /**
46
+ * The name of the overlay that currently renders the table.
47
+ *
48
+ * @public
49
+ * @type {string}
50
+ */
51
+ _defineProperty(this, "activeOverlayName", 'master');
45
52
  /**
46
53
  * The DOM bindings.
47
54
  *
@@ -164,47 +171,43 @@ class CoreAbstract {
164
171
  * Scrolls the viewport to a cell (rerenders if needed).
165
172
  *
166
173
  * @param {CellCoords} coords The cell coordinates to scroll to.
167
- * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.
168
- * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.
169
- * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.
170
- * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.
174
+ * @param {'auto' | 'start' | 'end'} [horizontalSnap='auto'] If `'start'`, viewport is scrolled to show
175
+ * the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
176
+ * the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
177
+ * @param {'auto' | 'top' | 'bottom'} [verticalSnap='auto'] If `'top'`, viewport is scrolled to show
178
+ * the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on the bottom of
179
+ * the table. When `'auto'`, the viewport is scrolled only when the row is outside of the viewport.
171
180
  * @returns {boolean}
172
181
  */
173
- scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
174
- if (coords.col < 0 || coords.row < 0) {
175
- return false;
176
- }
177
- return this.wtScroll.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
182
+ scrollViewport(coords, horizontalSnap, verticalSnap) {
183
+ return this.wtScroll.scrollViewport(coords, horizontalSnap, verticalSnap);
178
184
  }
179
185
 
180
186
  /**
181
187
  * Scrolls the viewport to a column (rerenders if needed).
182
188
  *
183
189
  * @param {number} column Visual column index.
184
- * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.
185
- * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.
190
+ * @param {'auto' | 'start' | 'end'} [snapping='auto'] If `'start'`, viewport is scrolled to show
191
+ * the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
192
+ * the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
186
193
  * @returns {boolean}
187
194
  */
188
- scrollViewportHorizontally(column, snapToRight, snapToLeft) {
189
- if (column < 0) {
190
- return false;
191
- }
192
- return this.wtScroll.scrollViewportHorizontally(column, snapToRight, snapToLeft);
195
+ scrollViewportHorizontally(column, snapping) {
196
+ return this.wtScroll.scrollViewportHorizontally(column, snapping);
193
197
  }
194
198
 
195
199
  /**
196
200
  * Scrolls the viewport to a row (rerenders if needed).
197
201
  *
198
202
  * @param {number} row Visual row index.
199
- * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.
200
- * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.
203
+ * @param {'auto' | 'top' | 'bottom'} [snapping='auto'] If `'top'`, viewport is scrolled to show
204
+ * the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on
205
+ * the bottom of the table. When `'auto'`, the viewport is scrolled only when the row is outside of
206
+ * the viewport.
201
207
  * @returns {boolean}
202
208
  */
203
- scrollViewportVertically(row, snapToTop, snapToBottom) {
204
- if (row < 0) {
205
- return false;
206
- }
207
- return this.wtScroll.scrollViewportVertically(row, snapToTop, snapToBottom);
209
+ scrollViewportVertically(row, snapping) {
210
+ return this.wtScroll.scrollViewportVertically(row, snapping);
208
211
  }
209
212
 
210
213
  /**
@@ -302,6 +305,9 @@ class CoreAbstract {
302
305
  get selectionManager() {
303
306
  return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
304
307
  },
308
+ get stylesHandler() {
309
+ return wot.stylesHandler;
310
+ },
305
311
  get drawn() {
306
312
  return wot.drawn;
307
313
  },
@@ -38,6 +38,13 @@ export default class CoreAbstract {
38
38
  _defineProperty(this, "guid", `wt_${randomString()}`);
39
39
  _defineProperty(this, "drawInterrupted", false);
40
40
  _defineProperty(this, "drawn", false);
41
+ /**
42
+ * The name of the overlay that currently renders the table.
43
+ *
44
+ * @public
45
+ * @type {string}
46
+ */
47
+ _defineProperty(this, "activeOverlayName", 'master');
41
48
  /**
42
49
  * The DOM bindings.
43
50
  *
@@ -160,47 +167,43 @@ export default class CoreAbstract {
160
167
  * Scrolls the viewport to a cell (rerenders if needed).
161
168
  *
162
169
  * @param {CellCoords} coords The cell coordinates to scroll to.
163
- * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.
164
- * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.
165
- * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.
166
- * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.
170
+ * @param {'auto' | 'start' | 'end'} [horizontalSnap='auto'] If `'start'`, viewport is scrolled to show
171
+ * the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
172
+ * the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
173
+ * @param {'auto' | 'top' | 'bottom'} [verticalSnap='auto'] If `'top'`, viewport is scrolled to show
174
+ * the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on the bottom of
175
+ * the table. When `'auto'`, the viewport is scrolled only when the row is outside of the viewport.
167
176
  * @returns {boolean}
168
177
  */
169
- scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
170
- if (coords.col < 0 || coords.row < 0) {
171
- return false;
172
- }
173
- return this.wtScroll.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
178
+ scrollViewport(coords, horizontalSnap, verticalSnap) {
179
+ return this.wtScroll.scrollViewport(coords, horizontalSnap, verticalSnap);
174
180
  }
175
181
 
176
182
  /**
177
183
  * Scrolls the viewport to a column (rerenders if needed).
178
184
  *
179
185
  * @param {number} column Visual column index.
180
- * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.
181
- * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.
186
+ * @param {'auto' | 'start' | 'end'} [snapping='auto'] If `'start'`, viewport is scrolled to show
187
+ * the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
188
+ * the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
182
189
  * @returns {boolean}
183
190
  */
184
- scrollViewportHorizontally(column, snapToRight, snapToLeft) {
185
- if (column < 0) {
186
- return false;
187
- }
188
- return this.wtScroll.scrollViewportHorizontally(column, snapToRight, snapToLeft);
191
+ scrollViewportHorizontally(column, snapping) {
192
+ return this.wtScroll.scrollViewportHorizontally(column, snapping);
189
193
  }
190
194
 
191
195
  /**
192
196
  * Scrolls the viewport to a row (rerenders if needed).
193
197
  *
194
198
  * @param {number} row Visual row index.
195
- * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.
196
- * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.
199
+ * @param {'auto' | 'top' | 'bottom'} [snapping='auto'] If `'top'`, viewport is scrolled to show
200
+ * the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on
201
+ * the bottom of the table. When `'auto'`, the viewport is scrolled only when the row is outside of
202
+ * the viewport.
197
203
  * @returns {boolean}
198
204
  */
199
- scrollViewportVertically(row, snapToTop, snapToBottom) {
200
- if (row < 0) {
201
- return false;
202
- }
203
- return this.wtScroll.scrollViewportVertically(row, snapToTop, snapToBottom);
205
+ scrollViewportVertically(row, snapping) {
206
+ return this.wtScroll.scrollViewportVertically(row, snapping);
204
207
  }
205
208
 
206
209
  /**
@@ -298,6 +301,9 @@ export default class CoreAbstract {
298
301
  get selectionManager() {
299
302
  return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
300
303
  },
304
+ get stylesHandler() {
305
+ return wot.stylesHandler;
306
+ },
301
307
  get drawn() {
302
308
  return wot.drawn;
303
309
  },
@@ -30,6 +30,7 @@ class Clone extends _base.default {
30
30
  const facadeGetter = this.wtSettings.getSetting('facade', this);
31
31
  this.cloneSource = clone.source;
32
32
  this.cloneOverlay = clone.overlay;
33
+ this.stylesHandler = clone.stylesHandler;
33
34
  this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
34
35
  this.wtViewport = clone.viewport;
35
36
  this.selectionManager = clone.selectionManager;
@@ -26,6 +26,7 @@ export default class Clone extends CoreAbstract {
26
26
  const facadeGetter = this.wtSettings.getSetting('facade', this);
27
27
  this.cloneSource = clone.source;
28
28
  this.cloneOverlay = clone.overlay;
29
+ this.stylesHandler = clone.stylesHandler;
29
30
  this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
30
31
  this.wtViewport = clone.viewport;
31
32
  this.selectionManager = clone.selectionManager;
@@ -12,6 +12,7 @@ var _base = _interopRequireDefault(require("./_base"));
12
12
  var _manager = require("../selection/manager");
13
13
  var _object = require("../../../../helpers/object");
14
14
  var _element = require("../../../../helpers/dom/element");
15
+ var _stylesHandler = require("../utils/stylesHandler");
15
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
17
  /**
17
18
  * @class Walkontable
@@ -23,6 +24,7 @@ class Walkontable extends _base.default {
23
24
  */
24
25
  constructor(table, settings) {
25
26
  super(table, new _settings.default(settings));
27
+ this.stylesHandler = new _stylesHandler.StylesHandler(this.domBindings);
26
28
  const facadeGetter = this.wtSettings.getSetting('facade', this); // todo rethink. I would like to have no access to facade from the internal scope.
27
29
 
28
30
  this.wtTable = new _master.default(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
@@ -9,6 +9,7 @@ import CoreAbstract from "./_base.mjs";
9
9
  import { SelectionManager } from "../selection/manager.mjs";
10
10
  import { objectEach } from "../../../../helpers/object.mjs";
11
11
  import { addClass, removeClass } from "../../../../helpers/dom/element.mjs";
12
+ import { StylesHandler } from "../utils/stylesHandler.mjs";
12
13
  /**
13
14
  * @class Walkontable
14
15
  */
@@ -19,6 +20,7 @@ export default class Walkontable extends CoreAbstract {
19
20
  */
20
21
  constructor(table, settings) {
21
22
  super(table, new Settings(settings));
23
+ this.stylesHandler = new StylesHandler(this.domBindings);
22
24
  const facadeGetter = this.wtSettings.getSetting('facade', this); // todo rethink. I would like to have no access to facade from the internal scope.
23
25
 
24
26
  this.wtTable = new MasterTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
@@ -71,6 +71,9 @@ class WalkontableFacade {
71
71
  set drawn(value) {
72
72
  this._wot.drawn = value;
73
73
  }
74
+ get activeOverlayName() {
75
+ return this._wot.activeOverlayName;
76
+ }
74
77
  get drawInterrupted() {
75
78
  return this._wot.drawInterrupted;
76
79
  }
@@ -107,6 +110,9 @@ class WalkontableFacade {
107
110
  get eventManager() {
108
111
  return this._wot.eventManager;
109
112
  }
113
+ get stylesHandler() {
114
+ return this._wot.stylesHandler;
115
+ }
110
116
  createCellCoords(row, column) {
111
117
  return this._wot.createCellCoords(row, column);
112
118
  }
@@ -122,14 +128,14 @@ class WalkontableFacade {
122
128
  let topmost = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
123
129
  return this._wot.getCell(coords, topmost);
124
130
  }
125
- scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
126
- return this._wot.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
131
+ scrollViewport(coords, horizontalSnap, verticalSnap) {
132
+ return this._wot.scrollViewport(coords, horizontalSnap, verticalSnap);
127
133
  }
128
- scrollViewportHorizontally(column, snapToRight, snapToLeft) {
129
- return this._wot.scrollViewportHorizontally(column, snapToRight, snapToLeft);
134
+ scrollViewportHorizontally(column, snapping) {
135
+ return this._wot.scrollViewportHorizontally(column, snapping);
130
136
  }
131
- scrollViewportVertically(row, snapToTop, snapToBottom) {
132
- return this._wot.scrollViewportVertically(row, snapToTop, snapToBottom);
137
+ scrollViewportVertically(row, snapping) {
138
+ return this._wot.scrollViewportVertically(row, snapping);
133
139
  }
134
140
  getViewport() {
135
141
  return this._wot.getViewport();
@@ -67,6 +67,9 @@ export default class WalkontableFacade {
67
67
  set drawn(value) {
68
68
  this._wot.drawn = value;
69
69
  }
70
+ get activeOverlayName() {
71
+ return this._wot.activeOverlayName;
72
+ }
70
73
  get drawInterrupted() {
71
74
  return this._wot.drawInterrupted;
72
75
  }
@@ -103,6 +106,9 @@ export default class WalkontableFacade {
103
106
  get eventManager() {
104
107
  return this._wot.eventManager;
105
108
  }
109
+ get stylesHandler() {
110
+ return this._wot.stylesHandler;
111
+ }
106
112
  createCellCoords(row, column) {
107
113
  return this._wot.createCellCoords(row, column);
108
114
  }
@@ -118,14 +124,14 @@ export default class WalkontableFacade {
118
124
  let topmost = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
119
125
  return this._wot.getCell(coords, topmost);
120
126
  }
121
- scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
122
- return this._wot.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
127
+ scrollViewport(coords, horizontalSnap, verticalSnap) {
128
+ return this._wot.scrollViewport(coords, horizontalSnap, verticalSnap);
123
129
  }
124
- scrollViewportHorizontally(column, snapToRight, snapToLeft) {
125
- return this._wot.scrollViewportHorizontally(column, snapToRight, snapToLeft);
130
+ scrollViewportHorizontally(column, snapping) {
131
+ return this._wot.scrollViewportHorizontally(column, snapping);
126
132
  }
127
- scrollViewportVertically(row, snapToTop, snapToBottom) {
128
- return this._wot.scrollViewportVertically(row, snapToTop, snapToBottom);
133
+ scrollViewportVertically(row, snapping) {
134
+ return this._wot.scrollViewportVertically(row, snapping);
129
135
  }
130
136
  getViewport() {
131
137
  return this._wot.getViewport();
@@ -4,7 +4,6 @@ exports.__esModule = true;
4
4
  var _calculator = require("./calculator");
5
5
  exports.ViewportColumnsCalculator = _calculator.ViewportColumnsCalculator;
6
6
  exports.ViewportRowsCalculator = _calculator.ViewportRowsCalculator;
7
- exports.DEFAULT_ROW_HEIGHT = _calculator.DEFAULT_ROW_HEIGHT;
8
7
  exports.DEFAULT_COLUMN_WIDTH = _calculator.DEFAULT_COLUMN_WIDTH;
9
8
  var _coords = _interopRequireDefault(require("./cell/coords"));
10
9
  exports.CellCoords = _coords.default;
@@ -1,4 +1,4 @@
1
- import { ViewportColumnsCalculator, ViewportRowsCalculator, DEFAULT_ROW_HEIGHT, DEFAULT_COLUMN_WIDTH } from "./calculator/index.mjs";
1
+ import { ViewportColumnsCalculator, ViewportRowsCalculator, DEFAULT_COLUMN_WIDTH } from "./calculator/index.mjs";
2
2
  import CellCoords from "./cell/coords.mjs";
3
3
  import CellRange from "./cell/range.mjs";
4
4
  import Walkontable from "./facade/core.mjs";
@@ -6,4 +6,4 @@ import { Selection, ACTIVE_HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, FILL_TYPE, HEADER
6
6
  import * as Renderer from "./renderer/index.mjs";
7
7
  import { OrderView, SharedOrderView } from "./utils/orderView/index.mjs";
8
8
  import { getListenersCounter } from "../../../eventManager.mjs";
9
- export { DEFAULT_ROW_HEIGHT, DEFAULT_COLUMN_WIDTH, ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, ACTIVE_HEADER_TYPE as HIGHLIGHT_ACTIVE_HEADER_TYPE, AREA_TYPE as HIGHLIGHT_AREA_TYPE, FOCUS_TYPE as HIGHLIGHT_FOCUS_TYPE, FILL_TYPE as HIGHLIGHT_FILL_TYPE, HEADER_TYPE as HIGHLIGHT_HEADER_TYPE, ROW_TYPE as HIGHLIGHT_ROW_TYPE, COLUMN_TYPE as HIGHLIGHT_COLUMN_TYPE, CUSTOM_SELECTION_TYPE as HIGHLIGHT_CUSTOM_SELECTION_TYPE, Renderer, OrderView, SharedOrderView, getListenersCounter };
9
+ export { DEFAULT_COLUMN_WIDTH, ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, ACTIVE_HEADER_TYPE as HIGHLIGHT_ACTIVE_HEADER_TYPE, AREA_TYPE as HIGHLIGHT_AREA_TYPE, FOCUS_TYPE as HIGHLIGHT_FOCUS_TYPE, FILL_TYPE as HIGHLIGHT_FILL_TYPE, HEADER_TYPE as HIGHLIGHT_HEADER_TYPE, ROW_TYPE as HIGHLIGHT_ROW_TYPE, COLUMN_TYPE as HIGHLIGHT_COLUMN_TYPE, CUSTOM_SELECTION_TYPE as HIGHLIGHT_CUSTOM_SELECTION_TYPE, Renderer, OrderView, SharedOrderView, getListenersCounter };
@@ -2,6 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.for-each.js");
5
7
  var _element = require("../../../../helpers/dom/element");
6
8
  var _object = require("../../../../helpers/object");
7
9
  var _console = require("../../../../helpers/console");
@@ -302,7 +304,9 @@ class Overlay {
302
304
  // todo ioc , or factor func if used only here
303
305
  event: this.wot.wtEvent,
304
306
  // todo ioc , or factory func if used only here
305
- selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
307
+ selectionManager: this.wot.selectionManager,
308
+ // todo ioc , or factory func if used only here
309
+ stylesHandler: this.wot.stylesHandler
306
310
  });
307
311
  }
308
312
 
@@ -316,7 +320,10 @@ class Overlay {
316
320
  refresh() {
317
321
  let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
318
322
  if (this.needFullRender) {
323
+ const cloneSource = this.clone.cloneSource;
324
+ cloneSource.activeOverlayName = this.clone.wtTable.name;
319
325
  this.clone.draw(fastDraw);
326
+ cloneSource.activeOverlayName = 'master';
320
327
  }
321
328
  }
322
329