handsontable 15.3.0 → 16.0.0-next-f486b48-20250702

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 (277) hide show
  1. package/3rdparty/walkontable/src/core/_base.js +0 -3
  2. package/3rdparty/walkontable/src/core/_base.mjs +0 -3
  3. package/3rdparty/walkontable/src/core/clone.js +0 -1
  4. package/3rdparty/walkontable/src/core/clone.mjs +0 -1
  5. package/3rdparty/walkontable/src/core/core.js +0 -2
  6. package/3rdparty/walkontable/src/core/core.mjs +0 -2
  7. package/3rdparty/walkontable/src/facade/core.js +0 -3
  8. package/3rdparty/walkontable/src/facade/core.mjs +0 -3
  9. package/3rdparty/walkontable/src/index.js +1 -2
  10. package/3rdparty/walkontable/src/overlay/_base.js +1 -3
  11. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -3
  12. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  13. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  14. package/3rdparty/walkontable/src/overlay/top.js +1 -1
  15. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  16. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  17. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  18. package/3rdparty/walkontable/src/selection/border/border.js +17 -11
  19. package/3rdparty/walkontable/src/selection/border/border.mjs +17 -11
  20. package/3rdparty/walkontable/src/selection/border/utils.js +1 -1
  21. package/3rdparty/walkontable/src/selection/border/utils.mjs +1 -1
  22. package/3rdparty/walkontable/src/settings.js +3 -1
  23. package/3rdparty/walkontable/src/settings.mjs +3 -1
  24. package/3rdparty/walkontable/src/table.js +9 -6
  25. package/3rdparty/walkontable/src/table.mjs +9 -6
  26. package/3rdparty/walkontable/src/types.js +0 -1
  27. package/3rdparty/walkontable/src/types.mjs +0 -1
  28. package/3rdparty/walkontable/src/utils/column.js +1 -1
  29. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  30. package/3rdparty/walkontable/src/viewport.js +1 -1
  31. package/3rdparty/walkontable/src/viewport.mjs +1 -1
  32. package/CHANGELOG.md +53 -31
  33. package/README.md +10 -4
  34. package/base.js +2 -2
  35. package/base.mjs +2 -2
  36. package/cellTypes/registry.js +2 -3
  37. package/cellTypes/registry.mjs +1 -1
  38. package/core/coordsMapper/rangeToRenderableMapper.js +124 -0
  39. package/core/coordsMapper/rangeToRenderableMapper.mjs +120 -0
  40. package/core/focusCatcher/focusDetector.js +2 -2
  41. package/core/focusCatcher/focusDetector.mjs +2 -2
  42. package/core/hooks/constants.js +259 -1
  43. package/core/hooks/constants.mjs +259 -1
  44. package/core.d.ts +2 -0
  45. package/core.js +202 -58
  46. package/core.mjs +202 -58
  47. package/dataMap/dataMap.js +16 -30
  48. package/dataMap/dataMap.mjs +16 -30
  49. package/dataMap/metaManager/metaSchema.js +58 -0
  50. package/dataMap/metaManager/metaSchema.mjs +58 -0
  51. package/dist/handsontable.css +30 -4
  52. package/dist/handsontable.full.css +30 -4
  53. package/dist/handsontable.full.js +6073 -4352
  54. package/dist/handsontable.full.min.css +3 -3
  55. package/dist/handsontable.full.min.js +206 -206
  56. package/dist/handsontable.js +5751 -4037
  57. package/dist/handsontable.min.css +3 -3
  58. package/dist/handsontable.min.js +41 -41
  59. package/dist/languages/all.min.js +1 -1
  60. package/dist/languages/ar-AR.min.js +1 -1
  61. package/dist/languages/cs-CZ.min.js +1 -1
  62. package/dist/languages/de-CH.min.js +1 -1
  63. package/dist/languages/de-DE.min.js +1 -1
  64. package/dist/languages/en-US.min.js +1 -1
  65. package/dist/languages/es-MX.min.js +1 -1
  66. package/dist/languages/fa-IR.min.js +1 -1
  67. package/dist/languages/fr-FR.min.js +1 -1
  68. package/dist/languages/hr-HR.min.js +1 -1
  69. package/dist/languages/it-IT.min.js +1 -1
  70. package/dist/languages/ja-JP.min.js +1 -1
  71. package/dist/languages/ko-KR.min.js +1 -1
  72. package/dist/languages/lv-LV.min.js +1 -1
  73. package/dist/languages/nb-NO.min.js +1 -1
  74. package/dist/languages/nl-NL.min.js +1 -1
  75. package/dist/languages/pl-PL.min.js +1 -1
  76. package/dist/languages/pt-BR.min.js +1 -1
  77. package/dist/languages/ru-RU.min.js +1 -1
  78. package/dist/languages/sr-SP.min.js +1 -1
  79. package/dist/languages/zh-CN.min.js +1 -1
  80. package/dist/languages/zh-TW.min.js +1 -1
  81. package/editorManager.js +5 -1
  82. package/editorManager.mjs +5 -1
  83. package/editors/autocompleteEditor/autocompleteEditor.d.ts +0 -12
  84. package/editors/autocompleteEditor/autocompleteEditor.js +42 -69
  85. package/editors/autocompleteEditor/autocompleteEditor.mjs +43 -70
  86. package/editors/baseEditor/baseEditor.js +1 -1
  87. package/editors/baseEditor/baseEditor.mjs +1 -1
  88. package/editors/dateEditor/dateEditor.js +2 -8
  89. package/editors/dateEditor/dateEditor.mjs +3 -9
  90. package/editors/handsontableEditor/handsontableEditor.d.ts +8 -0
  91. package/editors/handsontableEditor/handsontableEditor.js +173 -17
  92. package/editors/handsontableEditor/handsontableEditor.mjs +173 -17
  93. package/editors/passwordEditor/passwordEditor.js +2 -0
  94. package/editors/passwordEditor/passwordEditor.mjs +2 -0
  95. package/editors/registry.js +2 -3
  96. package/editors/registry.mjs +1 -1
  97. package/editors/textEditor/textEditor.js +2 -0
  98. package/editors/textEditor/textEditor.mjs +2 -0
  99. package/helpers/a11y.js +2 -0
  100. package/helpers/a11y.mjs +1 -0
  101. package/helpers/dom/element.d.ts +1 -0
  102. package/helpers/dom/element.js +26 -1
  103. package/helpers/dom/element.mjs +25 -1
  104. package/helpers/mixed.js +4 -4
  105. package/helpers/mixed.mjs +4 -4
  106. package/i18n/languages/ar-AR.js +1 -2
  107. package/i18n/languages/cs-CZ.js +1 -2
  108. package/i18n/languages/de-CH.js +1 -2
  109. package/i18n/languages/de-DE.js +1 -2
  110. package/i18n/languages/en-US.js +1 -2
  111. package/i18n/languages/es-MX.js +1 -2
  112. package/i18n/languages/fa-IR.js +1 -2
  113. package/i18n/languages/fr-FR.js +1 -2
  114. package/i18n/languages/hr-HR.js +1 -2
  115. package/i18n/languages/it-IT.js +1 -2
  116. package/i18n/languages/ja-JP.js +1 -2
  117. package/i18n/languages/ko-KR.js +1 -2
  118. package/i18n/languages/lv-LV.js +1 -2
  119. package/i18n/languages/nb-NO.js +1 -2
  120. package/i18n/languages/nl-NL.js +1 -2
  121. package/i18n/languages/pl-PL.js +1 -2
  122. package/i18n/languages/pt-BR.js +1 -2
  123. package/i18n/languages/ru-RU.js +1 -2
  124. package/i18n/languages/sr-SP.js +1 -2
  125. package/i18n/languages/zh-CN.js +1 -2
  126. package/i18n/languages/zh-TW.js +1 -2
  127. package/i18n/phraseFormatters/index.js +2 -2
  128. package/i18n/phraseFormatters/index.mjs +1 -1
  129. package/i18n/registry.js +3 -4
  130. package/i18n/registry.mjs +1 -1
  131. package/index.js +1 -2
  132. package/package.json +10 -4
  133. package/plugins/autoColumnSize/autoColumnSize.js +47 -0
  134. package/plugins/autoColumnSize/autoColumnSize.mjs +47 -0
  135. package/plugins/autoRowSize/autoRowSize.js +45 -0
  136. package/plugins/autoRowSize/autoRowSize.mjs +45 -0
  137. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +13 -0
  138. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +13 -0
  139. package/plugins/collapsibleColumns/collapsibleColumns.js +31 -0
  140. package/plugins/collapsibleColumns/collapsibleColumns.mjs +31 -0
  141. package/plugins/columnSorting/sortService/registry.js +3 -4
  142. package/plugins/columnSorting/sortService/registry.mjs +1 -1
  143. package/plugins/columnSummary/columnSummary.js +33 -0
  144. package/plugins/columnSummary/columnSummary.mjs +33 -0
  145. package/plugins/comments/commentEditor.js +8 -2
  146. package/plugins/comments/commentEditor.mjs +8 -2
  147. package/plugins/comments/comments.js +59 -15
  148. package/plugins/comments/comments.mjs +60 -16
  149. package/plugins/comments/contextMenuItem/addEditComment.js +1 -2
  150. package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -2
  151. package/plugins/comments/contextMenuItem/removeComment.js +1 -2
  152. package/plugins/contextMenu/contextMenu.js +1 -1
  153. package/plugins/contextMenu/contextMenu.mjs +1 -1
  154. package/plugins/contextMenu/menu/menu.js +12 -6
  155. package/plugins/contextMenu/menu/menu.mjs +13 -7
  156. package/plugins/contextMenu/predefinedItems/alignment.js +1 -2
  157. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -2
  158. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -2
  159. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -2
  160. package/plugins/contextMenu/predefinedItems/index.js +1 -2
  161. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -2
  162. package/plugins/contextMenu/predefinedItems/redo.js +1 -2
  163. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -2
  164. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -2
  165. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -2
  166. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -2
  167. package/plugins/contextMenu/predefinedItems/undo.js +1 -2
  168. package/plugins/copyPaste/contextMenuItem/cut.js +1 -2
  169. package/plugins/customBorders/contextMenuItem/bottom.js +1 -2
  170. package/plugins/customBorders/contextMenuItem/left.js +1 -2
  171. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -2
  172. package/plugins/customBorders/contextMenuItem/right.js +1 -2
  173. package/plugins/customBorders/contextMenuItem/top.js +1 -2
  174. package/plugins/customBorders/customBorders.js +1 -2
  175. package/plugins/dropdownMenu/dropdownMenu.js +16 -1
  176. package/plugins/dropdownMenu/dropdownMenu.mjs +16 -1
  177. package/plugins/exportFile/exportFile.js +59 -2
  178. package/plugins/exportFile/exportFile.mjs +58 -0
  179. package/plugins/filters/component/actionBar.js +1 -2
  180. package/plugins/filters/component/condition.js +1 -2
  181. package/plugins/filters/component/value.js +1 -2
  182. package/plugins/filters/condition/beginsWith.js +1 -2
  183. package/plugins/filters/condition/between.js +1 -2
  184. package/plugins/filters/condition/contains.js +1 -2
  185. package/plugins/filters/condition/date/after.js +1 -2
  186. package/plugins/filters/condition/date/before.js +1 -2
  187. package/plugins/filters/condition/date/today.js +1 -2
  188. package/plugins/filters/condition/date/tomorrow.js +1 -2
  189. package/plugins/filters/condition/date/yesterday.js +1 -2
  190. package/plugins/filters/condition/empty.js +1 -2
  191. package/plugins/filters/condition/endsWith.js +1 -2
  192. package/plugins/filters/condition/equal.js +1 -2
  193. package/plugins/filters/condition/greaterThan.js +1 -2
  194. package/plugins/filters/condition/greaterThanOrEqual.js +1 -2
  195. package/plugins/filters/condition/lessThan.js +1 -2
  196. package/plugins/filters/condition/lessThanOrEqual.js +1 -2
  197. package/plugins/filters/condition/none.js +1 -2
  198. package/plugins/filters/condition/notBetween.js +1 -2
  199. package/plugins/filters/condition/notContains.js +1 -2
  200. package/plugins/filters/condition/notEmpty.js +1 -2
  201. package/plugins/filters/condition/notEqual.js +1 -2
  202. package/plugins/filters/filters.js +76 -3
  203. package/plugins/filters/filters.mjs +75 -1
  204. package/plugins/filters/logicalOperations/conjunction.js +1 -2
  205. package/plugins/filters/logicalOperations/disjunction.js +1 -2
  206. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -2
  207. package/plugins/filters/ui/_base.js +1 -2
  208. package/plugins/filters/ui/multipleSelect.js +1 -7
  209. package/plugins/filters/ui/multipleSelect.mjs +0 -5
  210. package/plugins/filters/ui/select.js +1 -2
  211. package/plugins/formulas/engine/register.js +3 -4
  212. package/plugins/formulas/engine/register.mjs +1 -1
  213. package/plugins/formulas/formulas.js +40 -41
  214. package/plugins/formulas/formulas.mjs +39 -40
  215. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -2
  216. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -2
  217. package/plugins/hiddenColumns/hiddenColumns.js +64 -0
  218. package/plugins/hiddenColumns/hiddenColumns.mjs +64 -0
  219. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -2
  220. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -2
  221. package/plugins/hiddenRows/hiddenRows.js +64 -0
  222. package/plugins/hiddenRows/hiddenRows.mjs +64 -0
  223. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -2
  224. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -2
  225. package/plugins/manualRowMove/manualRowMove.js +1 -1
  226. package/plugins/manualRowMove/manualRowMove.mjs +1 -1
  227. package/plugins/manualRowResize/manualRowResize.js +1 -1
  228. package/plugins/manualRowResize/manualRowResize.mjs +1 -1
  229. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -2
  230. package/plugins/mergeCells/mergeCells.js +56 -38
  231. package/plugins/mergeCells/mergeCells.mjs +56 -38
  232. package/plugins/mergeCells/utils.js +3 -4
  233. package/plugins/mergeCells/utils.mjs +3 -4
  234. package/plugins/nestedHeaders/nestedHeaders.js +37 -12
  235. package/plugins/nestedHeaders/nestedHeaders.mjs +37 -12
  236. package/plugins/nestedRows/nestedRows.js +12 -12
  237. package/plugins/nestedRows/nestedRows.mjs +12 -12
  238. package/plugins/nestedRows/ui/contextMenu.js +1 -2
  239. package/plugins/nestedRows/ui/headers.js +2 -3
  240. package/plugins/nestedRows/ui/headers.mjs +2 -3
  241. package/plugins/persistentState/persistentState.js +1 -1
  242. package/plugins/persistentState/persistentState.mjs +1 -1
  243. package/plugins/stretchColumns/calculator.js +3 -2
  244. package/plugins/stretchColumns/calculator.mjs +3 -2
  245. package/plugins/stretchColumns/stretchColumns.js +13 -0
  246. package/plugins/stretchColumns/stretchColumns.mjs +13 -0
  247. package/plugins/trimRows/trimRows.js +61 -0
  248. package/plugins/trimRows/trimRows.mjs +61 -0
  249. package/renderers/baseRenderer/baseRenderer.js +4 -0
  250. package/renderers/baseRenderer/baseRenderer.mjs +4 -0
  251. package/renderers/registry.js +2 -3
  252. package/renderers/registry.mjs +1 -1
  253. package/selection/mouseEventHandler.js +48 -13
  254. package/selection/mouseEventHandler.mjs +47 -13
  255. package/selection/range.js +73 -6
  256. package/selection/range.mjs +73 -6
  257. package/selection/selection.js +46 -32
  258. package/selection/selection.mjs +45 -30
  259. package/settings.d.ts +1 -0
  260. package/styles/handsontable.css +131 -55
  261. package/styles/handsontable.min.css +3 -3
  262. package/styles/ht-theme-horizon.css +296 -181
  263. package/styles/ht-theme-horizon.min.css +3 -3
  264. package/styles/ht-theme-main.css +314 -205
  265. package/styles/ht-theme-main.min.css +3 -3
  266. package/tableView.js +9 -20
  267. package/tableView.mjs +9 -20
  268. package/translations/indexMapper.js +9 -5
  269. package/translations/indexMapper.mjs +9 -5
  270. package/utils/paginator.js +13 -0
  271. package/utils/paginator.mjs +13 -0
  272. package/utils/staticRegister.js +24 -2
  273. package/utils/staticRegister.mjs +23 -2
  274. package/{3rdparty/walkontable/src/utils → utils}/stylesHandler.js +16 -30
  275. package/{3rdparty/walkontable/src/utils → utils}/stylesHandler.mjs +16 -30
  276. package/validators/registry.js +2 -3
  277. package/validators/registry.mjs +1 -1
@@ -305,9 +305,6 @@ class CoreAbstract {
305
305
  get selectionManager() {
306
306
  return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
307
307
  },
308
- get stylesHandler() {
309
- return wot.stylesHandler;
310
- },
311
308
  get drawn() {
312
309
  return wot.drawn;
313
310
  },
@@ -301,9 +301,6 @@ export default class CoreAbstract {
301
301
  get selectionManager() {
302
302
  return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
303
303
  },
304
- get stylesHandler() {
305
- return wot.stylesHandler;
306
- },
307
304
  get drawn() {
308
305
  return wot.drawn;
309
306
  },
@@ -30,7 +30,6 @@ 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;
34
33
  this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
35
34
  this.wtViewport = clone.viewport;
36
35
  this.selectionManager = clone.selectionManager;
@@ -26,7 +26,6 @@ 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;
30
29
  this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
31
30
  this.wtViewport = clone.viewport;
32
31
  this.selectionManager = clone.selectionManager;
@@ -12,7 +12,6 @@ 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");
16
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
16
  /**
18
17
  * @class Walkontable
@@ -24,7 +23,6 @@ class Walkontable extends _base.default {
24
23
  */
25
24
  constructor(table, settings) {
26
25
  super(table, new _settings.default(settings));
27
- this.stylesHandler = new _stylesHandler.StylesHandler(this.domBindings);
28
26
  const facadeGetter = this.wtSettings.getSetting('facade', this); // todo rethink. I would like to have no access to facade from the internal scope.
29
27
 
30
28
  this.wtTable = new _master.default(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
@@ -9,7 +9,6 @@ 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";
13
12
  /**
14
13
  * @class Walkontable
15
14
  */
@@ -20,7 +19,6 @@ export default class Walkontable extends CoreAbstract {
20
19
  */
21
20
  constructor(table, settings) {
22
21
  super(table, new Settings(settings));
23
- this.stylesHandler = new StylesHandler(this.domBindings);
24
22
  const facadeGetter = this.wtSettings.getSetting('facade', this); // todo rethink. I would like to have no access to facade from the internal scope.
25
23
 
26
24
  this.wtTable = new MasterTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
@@ -110,9 +110,6 @@ class WalkontableFacade {
110
110
  get eventManager() {
111
111
  return this._wot.eventManager;
112
112
  }
113
- get stylesHandler() {
114
- return this._wot.stylesHandler;
115
- }
116
113
  createCellCoords(row, column) {
117
114
  return this._wot.createCellCoords(row, column);
118
115
  }
@@ -106,9 +106,6 @@ export default class WalkontableFacade {
106
106
  get eventManager() {
107
107
  return this._wot.eventManager;
108
108
  }
109
- get stylesHandler() {
110
- return this._wot.stylesHandler;
111
- }
112
109
  createCellCoords(row, column) {
113
110
  return this._wot.createCellCoords(row, column);
114
111
  }
@@ -31,6 +31,5 @@ var _nodesPool = require("./utils/nodesPool");
31
31
  exports.NodesPool = _nodesPool.NodesPool;
32
32
  var _eventManager = require("../../../eventManager");
33
33
  exports.getListenersCounter = _eventManager.getListenersCounter;
34
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
35
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
34
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
36
35
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -302,9 +302,7 @@ class Overlay {
302
302
  // todo ioc , or factor func if used only here
303
303
  event: this.wot.wtEvent,
304
304
  // todo ioc , or factory func if used only here
305
- selectionManager: this.wot.selectionManager,
306
- // todo ioc , or factory func if used only here
307
- stylesHandler: this.wot.stylesHandler
305
+ selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
308
306
  });
309
307
  }
310
308
 
@@ -298,9 +298,7 @@ export class Overlay {
298
298
  // todo ioc , or factor func if used only here
299
299
  event: this.wot.wtEvent,
300
300
  // todo ioc , or factory func if used only here
301
- selectionManager: this.wot.selectionManager,
302
- // todo ioc , or factory func if used only here
303
- stylesHandler: this.wot.stylesHandler
301
+ selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
304
302
  });
305
303
  }
306
304
 
@@ -147,9 +147,9 @@ class BottomOverlay extends _base.Overlay {
147
147
  sumCellSizes(from, to) {
148
148
  const {
149
149
  wtTable,
150
- stylesHandler
150
+ wtSettings
151
151
  } = this.wot;
152
- const defaultRowHeight = stylesHandler.getDefaultRowHeight();
152
+ const defaultRowHeight = wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
153
153
  let row = from;
154
154
  let sum = 0;
155
155
  while (row < to) {
@@ -143,9 +143,9 @@ export class BottomOverlay extends Overlay {
143
143
  sumCellSizes(from, to) {
144
144
  const {
145
145
  wtTable,
146
- stylesHandler
146
+ wtSettings
147
147
  } = this.wot;
148
- const defaultRowHeight = stylesHandler.getDefaultRowHeight();
148
+ const defaultRowHeight = wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
149
149
  let row = from;
150
150
  let sum = 0;
151
151
  while (row < to) {
@@ -143,7 +143,7 @@ class TopOverlay extends _base.Overlay {
143
143
  * @returns {number} Height sum.
144
144
  */
145
145
  sumCellSizes(from, to) {
146
- const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
146
+ const defaultRowHeight = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
147
147
  let row = from;
148
148
  let sum = 0;
149
149
  while (row < to) {
@@ -139,7 +139,7 @@ export class TopOverlay extends Overlay {
139
139
  * @returns {number} Height sum.
140
140
  */
141
141
  sumCellSizes(from, to) {
142
- const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
142
+ const defaultRowHeight = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
143
143
  let row = from;
144
144
  let sum = 0;
145
145
  while (row < to) {
@@ -95,7 +95,7 @@ class ColumnHeadersRenderer extends _base.BaseRenderer {
95
95
  (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_COLINDEX)(renderedColumnIndex + 1 + this.table.rowHeadersCount), (0, _a11y.A11Y_TABINDEX)(-1), (0, _a11y.A11Y_COLUMNHEADER)(), ...(renderedColumnIndex >= 0 ? [(0, _a11y.A11Y_SCOPE_COL)()] : [
96
96
  // Adding `role=row` to the corner headers to prevent
97
97
  // https://github.com/handsontable/dev-handsontable/issues/1574
98
- (0, _a11y.A11Y_ROW)()])]);
98
+ (0, _a11y.A11Y_GRIDCELL_BUTTON)(), (0, _a11y.A11Y_LABEL)('Select whole grid')])]);
99
99
  }
100
100
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
101
101
  }
@@ -1,6 +1,6 @@
1
1
  import { empty, setAttribute, removeAttribute } from "../../../../helpers/dom/element.mjs";
2
2
  import { BaseRenderer } from "./_base.mjs";
3
- import { A11Y_COLINDEX, A11Y_COLUMNHEADER, A11Y_ROW, A11Y_ROWGROUP, A11Y_ROWINDEX, A11Y_SCOPE_COL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
3
+ import { A11Y_COLINDEX, A11Y_COLUMNHEADER, A11Y_GRIDCELL_BUTTON, A11Y_LABEL, A11Y_ROW, A11Y_ROWGROUP, A11Y_ROWINDEX, A11Y_SCOPE_COL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
4
4
  /**
5
5
  * Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.
6
6
  *
@@ -92,7 +92,7 @@ export class ColumnHeadersRenderer extends BaseRenderer {
92
92
  setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), A11Y_COLUMNHEADER(), ...(renderedColumnIndex >= 0 ? [A11Y_SCOPE_COL()] : [
93
93
  // Adding `role=row` to the corner headers to prevent
94
94
  // https://github.com/handsontable/dev-handsontable/issues/1574
95
- A11Y_ROW()])]);
95
+ A11Y_GRIDCELL_BUTTON(), A11Y_LABEL('Select whole grid')])]);
96
96
  }
97
97
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
98
98
  }
@@ -192,8 +192,9 @@ class Border {
192
192
  createMultipleSelectorHandles() {
193
193
  const {
194
194
  rootDocument,
195
- stylesHandler
195
+ wtSettings
196
196
  } = this.wot;
197
+ const stylesHandler = wtSettings.getSetting('stylesHandler');
197
198
  const cellMobileHandleSize = stylesHandler.getCSSVariableValue('cell-mobile-handle-size');
198
199
  const cellMobileHandleBorderRadius = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-radius');
199
200
  const cellMobileHandleBackgroundColor = stylesHandler.getCSSVariableValue('cell-mobile-handle-background-color');
@@ -348,6 +349,7 @@ class Border {
348
349
  rootWindow
349
350
  } = this.wot;
350
351
  const isMultiple = fromRow !== toRow || fromColumn !== toColumn;
352
+ const isClassicTheme = this.wot.wtSettings.getSetting('stylesHandler').isClassicTheme();
351
353
  const firstRenderedRow = wtTable.getFirstRenderedRow();
352
354
  const lastRenderedRow = wtTable.getLastRenderedRow();
353
355
  const firstRenderedColumn = wtTable.getFirstRenderedColumn();
@@ -428,22 +430,22 @@ class Border {
428
430
  width = width > 0 ? width - 1 : 0;
429
431
  }
430
432
  const inlinePosProperty = isRtl ? 'right' : 'left';
433
+ const delta = Math.ceil(this.settings.border.width / 2);
431
434
  this.topStyle.top = `${top}px`;
432
435
  this.topStyle[inlinePosProperty] = `${inlineStartPos}px`;
433
- this.topStyle.width = `${width}px`;
436
+ this.topStyle.width = `${width + delta}px`;
434
437
  this.topStyle.display = 'block';
435
438
  this.startStyle.top = `${top}px`;
436
439
  this.startStyle[inlinePosProperty] = `${inlineStartPos}px`;
437
- this.startStyle.height = `${height}px`;
440
+ this.startStyle.height = `${height + delta}px`;
438
441
  this.startStyle.display = 'block';
439
- const delta = Math.floor(this.settings.border.width / 2);
440
- this.bottomStyle.top = `${top + height - delta}px`;
442
+ this.bottomStyle.top = `${top + height - parseInt(this.bottomStyle.height, 10) + delta}px`;
441
443
  this.bottomStyle[inlinePosProperty] = `${inlineStartPos}px`;
442
- this.bottomStyle.width = `${width}px`;
444
+ this.bottomStyle.width = `${width + delta}px`;
443
445
  this.bottomStyle.display = 'block';
444
446
  this.endStyle.top = `${top}px`;
445
- this.endStyle[inlinePosProperty] = `${inlineStartPos + width - delta}px`;
446
- this.endStyle.height = `${height + 1}px`;
447
+ this.endStyle[inlinePosProperty] = `${inlineStartPos + width - parseInt(this.endStyle.width, 10) + delta}px`;
448
+ this.endStyle.height = `${height + delta}px`;
447
449
  this.endStyle.display = 'block';
448
450
  let cornerVisibleSetting = this.settings.border.cornerVisible;
449
451
  cornerVisibleSetting = typeof cornerVisibleSetting === 'function' ? cornerVisibleSetting(this.settings.layerLevel) : cornerVisibleSetting;
@@ -487,15 +489,19 @@ class Border {
487
489
  cornerOverlappingContainer = cornerEdge >= (0, _element.innerWidth)(trimmingContainer);
488
490
  }
489
491
  if (cornerOverlappingContainer) {
490
- this.cornerStyle[inlinePosProperty] = `${Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - cornerHalfWidth - cornerBorderCompensation)}px`;
491
- this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;
492
+ const inlineStartPosition = Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - cornerHalfWidth - cornerBorderCompensation);
493
+ if (isClassicTheme) {
494
+ this.cornerStyle[inlinePosProperty] = `${inlineStartPosition}px`;
495
+ this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;
496
+ } else {
497
+ this.cornerStyle[inlinePosProperty] = `${inlineStartPosition - 1}px`;
498
+ }
492
499
  }
493
500
  }
494
501
  if (toRow === this.wot.getSetting('totalRows') - 1) {
495
502
  const toTdOffsetTop = trimToWindow ? toTD.getBoundingClientRect().top : toTD.offsetTop;
496
503
  const cornerBottomEdge = toTdOffsetTop + (0, _element.outerHeight)(toTD) + parseInt(this.cornerDefaultStyle.height, 10) / 2;
497
504
  const cornerOverlappingContainer = cornerBottomEdge >= (0, _element.innerHeight)(trimmingContainer);
498
- const isClassicTheme = this.wot.stylesHandler.isClassicTheme();
499
505
  if (cornerOverlappingContainer) {
500
506
  const cornerTopPosition = Math.floor(top + height + this.cornerCenterPointOffset - cornerHalfHeight - cornerBorderCompensation);
501
507
  if (isClassicTheme) {
@@ -189,8 +189,9 @@ class Border {
189
189
  createMultipleSelectorHandles() {
190
190
  const {
191
191
  rootDocument,
192
- stylesHandler
192
+ wtSettings
193
193
  } = this.wot;
194
+ const stylesHandler = wtSettings.getSetting('stylesHandler');
194
195
  const cellMobileHandleSize = stylesHandler.getCSSVariableValue('cell-mobile-handle-size');
195
196
  const cellMobileHandleBorderRadius = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-radius');
196
197
  const cellMobileHandleBackgroundColor = stylesHandler.getCSSVariableValue('cell-mobile-handle-background-color');
@@ -345,6 +346,7 @@ class Border {
345
346
  rootWindow
346
347
  } = this.wot;
347
348
  const isMultiple = fromRow !== toRow || fromColumn !== toColumn;
349
+ const isClassicTheme = this.wot.wtSettings.getSetting('stylesHandler').isClassicTheme();
348
350
  const firstRenderedRow = wtTable.getFirstRenderedRow();
349
351
  const lastRenderedRow = wtTable.getLastRenderedRow();
350
352
  const firstRenderedColumn = wtTable.getFirstRenderedColumn();
@@ -425,22 +427,22 @@ class Border {
425
427
  width = width > 0 ? width - 1 : 0;
426
428
  }
427
429
  const inlinePosProperty = isRtl ? 'right' : 'left';
430
+ const delta = Math.ceil(this.settings.border.width / 2);
428
431
  this.topStyle.top = `${top}px`;
429
432
  this.topStyle[inlinePosProperty] = `${inlineStartPos}px`;
430
- this.topStyle.width = `${width}px`;
433
+ this.topStyle.width = `${width + delta}px`;
431
434
  this.topStyle.display = 'block';
432
435
  this.startStyle.top = `${top}px`;
433
436
  this.startStyle[inlinePosProperty] = `${inlineStartPos}px`;
434
- this.startStyle.height = `${height}px`;
437
+ this.startStyle.height = `${height + delta}px`;
435
438
  this.startStyle.display = 'block';
436
- const delta = Math.floor(this.settings.border.width / 2);
437
- this.bottomStyle.top = `${top + height - delta}px`;
439
+ this.bottomStyle.top = `${top + height - parseInt(this.bottomStyle.height, 10) + delta}px`;
438
440
  this.bottomStyle[inlinePosProperty] = `${inlineStartPos}px`;
439
- this.bottomStyle.width = `${width}px`;
441
+ this.bottomStyle.width = `${width + delta}px`;
440
442
  this.bottomStyle.display = 'block';
441
443
  this.endStyle.top = `${top}px`;
442
- this.endStyle[inlinePosProperty] = `${inlineStartPos + width - delta}px`;
443
- this.endStyle.height = `${height + 1}px`;
444
+ this.endStyle[inlinePosProperty] = `${inlineStartPos + width - parseInt(this.endStyle.width, 10) + delta}px`;
445
+ this.endStyle.height = `${height + delta}px`;
444
446
  this.endStyle.display = 'block';
445
447
  let cornerVisibleSetting = this.settings.border.cornerVisible;
446
448
  cornerVisibleSetting = typeof cornerVisibleSetting === 'function' ? cornerVisibleSetting(this.settings.layerLevel) : cornerVisibleSetting;
@@ -484,15 +486,19 @@ class Border {
484
486
  cornerOverlappingContainer = cornerEdge >= innerWidth(trimmingContainer);
485
487
  }
486
488
  if (cornerOverlappingContainer) {
487
- this.cornerStyle[inlinePosProperty] = `${Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - cornerHalfWidth - cornerBorderCompensation)}px`;
488
- this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;
489
+ const inlineStartPosition = Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - cornerHalfWidth - cornerBorderCompensation);
490
+ if (isClassicTheme) {
491
+ this.cornerStyle[inlinePosProperty] = `${inlineStartPosition}px`;
492
+ this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;
493
+ } else {
494
+ this.cornerStyle[inlinePosProperty] = `${inlineStartPosition - 1}px`;
495
+ }
489
496
  }
490
497
  }
491
498
  if (toRow === this.wot.getSetting('totalRows') - 1) {
492
499
  const toTdOffsetTop = trimToWindow ? toTD.getBoundingClientRect().top : toTD.offsetTop;
493
500
  const cornerBottomEdge = toTdOffsetTop + outerHeight(toTD) + parseInt(this.cornerDefaultStyle.height, 10) / 2;
494
501
  const cornerOverlappingContainer = cornerBottomEdge >= innerHeight(trimmingContainer);
495
- const isClassicTheme = this.wot.stylesHandler.isClassicTheme();
496
502
  if (cornerOverlappingContainer) {
497
503
  const cornerTopPosition = Math.floor(top + height + this.cornerCenterPointOffset - cornerHalfHeight - cornerBorderCompensation);
498
504
  if (isClassicTheme) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  const getCornerStyle = wot => {
5
- const stylesHandler = wot.stylesHandler;
5
+ const stylesHandler = wot.wtSettings.getSetting('stylesHandler');
6
6
  if (stylesHandler.isClassicTheme()) {
7
7
  return Object.freeze({
8
8
  width: 6,
@@ -1,5 +1,5 @@
1
1
  export const getCornerStyle = wot => {
2
- const stylesHandler = wot.stylesHandler;
2
+ const stylesHandler = wot.wtSettings.getSetting('stylesHandler');
3
3
  if (stylesHandler.isClassicTheme()) {
4
4
  return Object.freeze({
5
5
  width: 6,
@@ -76,6 +76,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
76
76
  * @property {?Option} viewportRowCalculatorOverride Option `viewportRowCalculatorOverride`.
77
77
  * @property {?Option} viewportColumnRenderingThreshold Option `viewportColumnRenderingThreshold`.
78
78
  * @property {?Option} viewportRowRenderingThreshold Option `viewportRowRenderingThreshold`.
79
+ * @property {?Option} stylesHandler Option `stylesHandler`.
79
80
  */
80
81
 
81
82
  /**
@@ -230,7 +231,8 @@ class Settings {
230
231
  columnHeaderHeight: null,
231
232
  headerClassName: null,
232
233
  rtlMode: false,
233
- ariaTags: true
234
+ ariaTags: true,
235
+ stylesHandler: null
234
236
  };
235
237
  }
236
238
 
@@ -73,6 +73,7 @@ import { objectEach } from "../../../helpers/object.mjs";
73
73
  * @property {?Option} viewportRowCalculatorOverride Option `viewportRowCalculatorOverride`.
74
74
  * @property {?Option} viewportColumnRenderingThreshold Option `viewportColumnRenderingThreshold`.
75
75
  * @property {?Option} viewportRowRenderingThreshold Option `viewportRowRenderingThreshold`.
76
+ * @property {?Option} stylesHandler Option `stylesHandler`.
76
77
  */
77
78
  /**
78
79
  * @template TValue.
@@ -225,7 +226,8 @@ export default class Settings {
225
226
  columnHeaderHeight: null,
226
227
  headerClassName: null,
227
228
  rtlMode: false,
228
- ariaTags: true
229
+ ariaTags: true,
230
+ stylesHandler: null
229
231
  };
230
232
  }
231
233
 
@@ -118,7 +118,7 @@ class Table {
118
118
  rowUtils: this.rowUtils,
119
119
  columnUtils: this.columnUtils,
120
120
  cellRenderer: this.wtSettings.getSettingPure('cellRenderer'),
121
- stylesHandler: this.dataAccessObject.stylesHandler
121
+ stylesHandler: this.wtSettings.getSetting('stylesHandler')
122
122
  });
123
123
  }
124
124
 
@@ -213,7 +213,9 @@ class Table {
213
213
  holder = this.domBindings.rootDocument.createElement('div');
214
214
  holder.style.position = 'relative';
215
215
  holder.className = 'wtHolder';
216
- (0, _element.setAttribute)(holder, [(0, _a11y.A11Y_TABINDEX)(-1)]);
216
+ if (this.isMaster) {
217
+ (0, _element.setAttribute)(holder, [(0, _a11y.A11Y_TABINDEX)(-1)]);
218
+ }
217
219
  if (parent) {
218
220
  // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
219
221
  parent.insertBefore(holder, hider);
@@ -355,7 +357,7 @@ class Table {
355
357
  markIfOversizedColumnHeader(col) {
356
358
  const sourceColIndex = this.columnFilter.renderedToSource(col);
357
359
  let level = this.wtSettings.getSetting('columnHeaders').length;
358
- const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
360
+ const defaultRowHeight = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
359
361
  let previousColHeaderHeight;
360
362
  let currentHeader;
361
363
  let currentHeaderHeight;
@@ -636,9 +638,10 @@ class Table {
636
638
  return;
637
639
  }
638
640
  let rowCount = this.TBODY.childNodes.length;
639
- const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
641
+ const stylesHandler = this.wtSettings.getSetting('stylesHandler');
642
+ const expectedTableHeight = rowCount * stylesHandler.getDefaultRowHeight();
640
643
  const actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
641
- const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
644
+ const borderBoxSizing = stylesHandler.areCellsBorderBox();
642
645
  const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
643
646
  const borderCompensation = borderBoxSizing ? 0 : 1;
644
647
  const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
@@ -663,7 +666,7 @@ class Table {
663
666
  } else {
664
667
  rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
665
668
  }
666
- if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
669
+ if (!previousRowHeight && stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
667
670
  if (!borderBoxSizing) {
668
671
  rowCurrentHeight += 1;
669
672
  }
@@ -114,7 +114,7 @@ class Table {
114
114
  rowUtils: this.rowUtils,
115
115
  columnUtils: this.columnUtils,
116
116
  cellRenderer: this.wtSettings.getSettingPure('cellRenderer'),
117
- stylesHandler: this.dataAccessObject.stylesHandler
117
+ stylesHandler: this.wtSettings.getSetting('stylesHandler')
118
118
  });
119
119
  }
120
120
 
@@ -209,7 +209,9 @@ class Table {
209
209
  holder = this.domBindings.rootDocument.createElement('div');
210
210
  holder.style.position = 'relative';
211
211
  holder.className = 'wtHolder';
212
- setAttribute(holder, [A11Y_TABINDEX(-1)]);
212
+ if (this.isMaster) {
213
+ setAttribute(holder, [A11Y_TABINDEX(-1)]);
214
+ }
213
215
  if (parent) {
214
216
  // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
215
217
  parent.insertBefore(holder, hider);
@@ -351,7 +353,7 @@ class Table {
351
353
  markIfOversizedColumnHeader(col) {
352
354
  const sourceColIndex = this.columnFilter.renderedToSource(col);
353
355
  let level = this.wtSettings.getSetting('columnHeaders').length;
354
- const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
356
+ const defaultRowHeight = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
355
357
  let previousColHeaderHeight;
356
358
  let currentHeader;
357
359
  let currentHeaderHeight;
@@ -632,9 +634,10 @@ class Table {
632
634
  return;
633
635
  }
634
636
  let rowCount = this.TBODY.childNodes.length;
635
- const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
637
+ const stylesHandler = this.wtSettings.getSetting('stylesHandler');
638
+ const expectedTableHeight = rowCount * stylesHandler.getDefaultRowHeight();
636
639
  const actualTableHeight = innerHeight(this.TBODY) - 1;
637
- const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
640
+ const borderBoxSizing = stylesHandler.areCellsBorderBox();
638
641
  const rowHeightFn = borderBoxSizing ? outerHeight : innerHeight;
639
642
  const borderCompensation = borderBoxSizing ? 0 : 1;
640
643
  const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
@@ -659,7 +662,7 @@ class Table {
659
662
  } else {
660
663
  rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
661
664
  }
662
- if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
665
+ if (!previousRowHeight && stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
663
666
  if (!borderBoxSizing) {
664
667
  rowCurrentHeight += 1;
665
668
  }
@@ -66,7 +66,6 @@
66
66
  * @property {Walkontable} cloneSource CloneSource.
67
67
  * @property {Walkontable} wot Wot.
68
68
  * @property {number} parentTableOffset ParentTableOffset.
69
- * @property {StylesHandler} stylesHandler StylesHandler.
70
69
  * @property {number|null} startColumnRendered StartColumnRendered.
71
70
  * @property {number|null} startColumnVisible StartColumnVisible.
72
71
  * @property {number|null} endColumnRendered EndColumnRendered.
@@ -66,7 +66,6 @@
66
66
  * @property {Walkontable} cloneSource CloneSource.
67
67
  * @property {Walkontable} wot Wot.
68
68
  * @property {number} parentTableOffset ParentTableOffset.
69
- * @property {StylesHandler} stylesHandler StylesHandler.
70
69
  * @property {number|null} startColumnRendered StartColumnRendered.
71
70
  * @property {number|null} startColumnVisible StartColumnVisible.
72
71
  * @property {number|null} endColumnRendered EndColumnRendered.
@@ -50,7 +50,7 @@ class ColumnUtils {
50
50
  * @returns {number}
51
51
  */
52
52
  getHeaderHeight(level) {
53
- let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
53
+ let height = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
54
54
  const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
55
55
  if (oversizedHeight !== undefined) {
56
56
  height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
@@ -47,7 +47,7 @@ export default class ColumnUtils {
47
47
  * @returns {number}
48
48
  */
49
49
  getHeaderHeight(level) {
50
- let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
50
+ let height = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
51
51
  const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
52
52
  if (oversizedHeight !== undefined) {
53
53
  height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
@@ -291,7 +291,7 @@ class Viewport {
291
291
  viewportHeight: height,
292
292
  scrollOffset: pos,
293
293
  totalRows: wtSettings.getSetting('totalRows'),
294
- defaultRowHeight: this.instance.stylesHandler.getDefaultRowHeight(),
294
+ defaultRowHeight: wtSettings.getSetting('stylesHandler').getDefaultRowHeight(),
295
295
  rowHeightFn: sourceRow => wtTable.getRowHeight(sourceRow),
296
296
  overrideFn: wtSettings.getSettingPure('viewportRowCalculatorOverride'),
297
297
  horizontalScrollbarHeight: scrollbarHeight
@@ -288,7 +288,7 @@ class Viewport {
288
288
  viewportHeight: height,
289
289
  scrollOffset: pos,
290
290
  totalRows: wtSettings.getSetting('totalRows'),
291
- defaultRowHeight: this.instance.stylesHandler.getDefaultRowHeight(),
291
+ defaultRowHeight: wtSettings.getSetting('stylesHandler').getDefaultRowHeight(),
292
292
  rowHeightFn: sourceRow => wtTable.getRowHeight(sourceRow),
293
293
  overrideFn: wtSettings.getSettingPure('viewportRowCalculatorOverride'),
294
294
  horizontalScrollbarHeight: scrollbarHeight