handsontable 14.6.1 → 15.0.0-next-fdd4480-20241205

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
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");
7
+ var _element = require("../../../../helpers/dom/element");
8
+ var _console = require("../../../../helpers/console");
9
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
10
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
11
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
12
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
13
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
14
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
15
+ const CLASSIC_THEME_DEFAULT_HEIGHT = 23;
16
+
17
+ /**
18
+ * Handles the theme-related style operations.
19
+ */
20
+ var _themeName = /*#__PURE__*/new WeakMap();
21
+ var _rootElement = /*#__PURE__*/new WeakMap();
22
+ var _rootComputedStyle = /*#__PURE__*/new WeakMap();
23
+ var _rootDocument = /*#__PURE__*/new WeakMap();
24
+ var _isClassicTheme = /*#__PURE__*/new WeakMap();
25
+ var _cssVars = /*#__PURE__*/new WeakMap();
26
+ var _computedStyles = /*#__PURE__*/new WeakMap();
27
+ var _StylesHandler_brand = /*#__PURE__*/new WeakSet();
28
+ class StylesHandler {
29
+ /**
30
+ * Initializes a new instance of the `StylesHandler` class.
31
+ *
32
+ * @param {object} domBindings - The DOM bindings for the instance.
33
+ */
34
+ constructor(domBindings) {
35
+ /**
36
+ * Calculates the row height based on the current theme and CSS variables.
37
+ *
38
+ * @returns {number|null} The calculated row height, or `null` if any required CSS variable is not found.
39
+ */
40
+ _classPrivateMethodInitSpec(this, _StylesHandler_brand);
41
+ /**
42
+ * The name of the theme.
43
+ *
44
+ * @type {string|undefined}
45
+ */
46
+ _classPrivateFieldInitSpec(this, _themeName, void 0);
47
+ /**
48
+ * The instance's root element.
49
+ *
50
+ * @type {HTMLElement}
51
+ */
52
+ _classPrivateFieldInitSpec(this, _rootElement, void 0);
53
+ /**
54
+ * The computed style of the root element.
55
+ *
56
+ * @type {CSSStyleDeclaration}
57
+ * @private
58
+ */
59
+ _classPrivateFieldInitSpec(this, _rootComputedStyle, void 0);
60
+ /**
61
+ * The root document of the instance.
62
+ *
63
+ * @type {Document}
64
+ * @private
65
+ */
66
+ _classPrivateFieldInitSpec(this, _rootDocument, void 0);
67
+ /**
68
+ * `true` if the classic theme is enabled, `false` otherwise.
69
+ *
70
+ * @type {boolean}
71
+ */
72
+ _classPrivateFieldInitSpec(this, _isClassicTheme, true);
73
+ /**
74
+ * An object to store CSS variable values.
75
+ *
76
+ * @type {object}
77
+ * @private
78
+ */
79
+ _classPrivateFieldInitSpec(this, _cssVars, {});
80
+ /**
81
+ * Stores the computed styles for various elements.
82
+ *
83
+ * @type {object} - An object containing the computed styles if a nested structore of `element: { [element type]: {property: value} }`.
84
+ * @private
85
+ */
86
+ _classPrivateFieldInitSpec(this, _computedStyles, {});
87
+ _classPrivateFieldSet(_rootElement, this, domBindings.rootTable.parentElement.parentElement);
88
+ _classPrivateFieldSet(_rootDocument, this, domBindings.rootDocument);
89
+ }
90
+
91
+ /**
92
+ * Gets the value indicating whether the classic theme is enabled.
93
+ *
94
+ * @returns {boolean} `true` if the classic theme is enabled, `false` otherwise.
95
+ */
96
+ isClassicTheme() {
97
+ return _classPrivateFieldGet(_isClassicTheme, this);
98
+ }
99
+
100
+ /**
101
+ * Retrieves the value of a specified CSS variable.
102
+ *
103
+ * @param {string} variableName - The name of the CSS variable to retrieve.
104
+ * @returns {number|null|undefined} The value of the specified CSS variable, or `undefined` if not found.
105
+ */
106
+ getCSSVariableValue(variableName) {
107
+ var _assertClassBrand$cal;
108
+ if (_classPrivateFieldGet(_isClassicTheme, this)) {
109
+ return null;
110
+ }
111
+ if (_classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`]) {
112
+ return _classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`];
113
+ }
114
+ const acquiredValue = (_assertClassBrand$cal = _assertClassBrand(_StylesHandler_brand, this, _getParsedNumericCSSValue).call(this, `--ht-${variableName}`)) !== null && _assertClassBrand$cal !== void 0 ? _assertClassBrand$cal : _assertClassBrand(_StylesHandler_brand, this, _getCSSValue).call(this, `--ht-${variableName}`);
115
+ if (acquiredValue !== null) {
116
+ _classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`] = acquiredValue;
117
+ return acquiredValue;
118
+ }
119
+ }
120
+
121
+ /**
122
+ * Retrieves the computed style value for a specified CSS property of a `td` element.
123
+ *
124
+ * @param {string} cssProperty - The CSS property to retrieve the value for.
125
+ * @returns {number|string|undefined} The value of the specified CSS property, or `undefined` if not found.
126
+ */
127
+ getStyleForTD(cssProperty) {
128
+ var _classPrivateFieldGet2;
129
+ return (_classPrivateFieldGet2 = _classPrivateFieldGet(_computedStyles, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.td[cssProperty];
130
+ }
131
+
132
+ /**
133
+ * Calculates the row height based on the current theme and CSS variables.
134
+ *
135
+ * @returns {number} The calculated row height.
136
+ */
137
+ getDefaultRowHeight() {
138
+ if (_classPrivateFieldGet(_isClassicTheme, this)) {
139
+ return CLASSIC_THEME_DEFAULT_HEIGHT;
140
+ }
141
+ const calculatedRowHeight = _assertClassBrand(_StylesHandler_brand, this, _calculateRowHeight).call(this);
142
+ if (!calculatedRowHeight && (0, _element.hasClass)(_classPrivateFieldGet(_rootElement, this), 'ht-wrapper')) {
143
+ (0, _console.warn)(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing or not imported correctly. \
144
+ Import the correct CSS files in order to use that theme.`);
145
+ _classPrivateFieldSet(_isClassicTheme, this, true);
146
+ this.useTheme();
147
+ return CLASSIC_THEME_DEFAULT_HEIGHT;
148
+ }
149
+ return calculatedRowHeight;
150
+ }
151
+
152
+ /**
153
+ * Checks if the cells are using the `border-box` box-sizing model.
154
+ *
155
+ * @returns {boolean}
156
+ */
157
+ areCellsBorderBox() {
158
+ return this.getStyleForTD('box-sizing') === 'border-box';
159
+ }
160
+
161
+ /**
162
+ * Applies the specified theme to the instance.
163
+ *
164
+ * @param {string|undefined|boolean} [themeName] - The name of the theme to apply.
165
+ */
166
+ useTheme(themeName) {
167
+ if (!themeName) {
168
+ _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
169
+ _classPrivateFieldSet(_isClassicTheme, this, true);
170
+ _classPrivateFieldSet(_themeName, this, themeName || undefined);
171
+ return;
172
+ }
173
+ if (themeName && themeName !== _classPrivateFieldGet(_themeName, this)) {
174
+ if (_classPrivateFieldGet(_themeName, this)) {
175
+ _assertClassBrand(_StylesHandler_brand, this, _clearCachedValues).call(this);
176
+ }
177
+ _classPrivateFieldSet(_themeName, this, themeName);
178
+ _classPrivateFieldSet(_isClassicTheme, this, false);
179
+ _assertClassBrand(_StylesHandler_brand, this, _applyClassNames).call(this);
180
+ _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
181
+ }
182
+ }
183
+
184
+ /**
185
+ * Gets the name of the theme.
186
+ *
187
+ * @returns {string|undefined}
188
+ */
189
+ getThemeName() {
190
+ return _classPrivateFieldGet(_themeName, this);
191
+ }
192
+
193
+ /**
194
+ * Removes the theme-related class names from the root element.
195
+ */
196
+ removeClassNames() {
197
+ if ((0, _element.hasClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this))) {
198
+ (0, _element.removeClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
199
+ }
200
+ }
201
+ }
202
+ exports.StylesHandler = StylesHandler;
203
+ function _calculateRowHeight() {
204
+ const lineHeightVarValue = this.getCSSVariableValue('line-height');
205
+ const verticalPaddingVarValue = this.getCSSVariableValue('cell-vertical-padding');
206
+ const bottomBorderWidth = Math.ceil(parseFloat(this.getStyleForTD('border-bottom-width')));
207
+ if (lineHeightVarValue === null || verticalPaddingVarValue === null || isNaN(bottomBorderWidth)) {
208
+ return null;
209
+ }
210
+ return lineHeightVarValue + 2 * verticalPaddingVarValue + bottomBorderWidth;
211
+ }
212
+ /**
213
+ * Applies the necessary class names to the root element.
214
+ */
215
+ function _applyClassNames() {
216
+ (0, _element.removeClass)(_classPrivateFieldGet(_rootElement, this), /ht-theme-.*/g);
217
+ (0, _element.addClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
218
+ }
219
+ /**
220
+ * Caches the computed style values for the root element and `td` element.
221
+ */
222
+ function _cacheStylesheetValues() {
223
+ if (!this.isClassicTheme()) {
224
+ _classPrivateFieldSet(_rootComputedStyle, this, getComputedStyle(_classPrivateFieldGet(_rootElement, this)));
225
+ }
226
+ const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing', 'border-bottom-width']);
227
+ _classPrivateFieldGet(_computedStyles, this).td = {
228
+ ..._classPrivateFieldGet(_computedStyles, this).td,
229
+ ...{
230
+ 'box-sizing': stylesForTD['box-sizing'],
231
+ 'border-bottom-width': stylesForTD['border-bottom-width']
232
+ }
233
+ };
234
+ }
235
+ /**
236
+ * Retrieves and processes the computed styles for a `td` element.
237
+ *
238
+ * This method creates a temporary table structure, appends it to the root element,
239
+ * retrieves the computed styles for the `td` element, and then removes the table
240
+ * from the DOM. The computed styles are passed to the provided callback function.
241
+ *
242
+ * @param {Array} cssProps - An array of CSS properties to retrieve.
243
+ * @returns {object} An object containing the requested computed styles for the `td` element.
244
+ * @private
245
+ */
246
+ function _getStylesForTD(cssProps) {
247
+ const rootDocument = _classPrivateFieldGet(_rootDocument, this);
248
+ const rootElement = _classPrivateFieldGet(_rootElement, this);
249
+ const table = rootDocument.createElement('table');
250
+ const tbody = rootDocument.createElement('tbody');
251
+ const tr = rootDocument.createElement('tr');
252
+ // This needs not to be the first row in order to get "regular" vaules.
253
+ const tr2 = rootDocument.createElement('tr');
254
+ const td = rootDocument.createElement('td');
255
+ tr2.appendChild(td);
256
+ tbody.appendChild(tr);
257
+ tbody.appendChild(tr2);
258
+ table.appendChild(tbody);
259
+ rootElement.appendChild(table);
260
+ const computedStyle = getComputedStyle(td);
261
+ const returnObject = {};
262
+ cssProps.forEach(prop => {
263
+ returnObject[prop] = computedStyle.getPropertyValue(prop);
264
+ });
265
+ rootElement.removeChild(table);
266
+ return returnObject;
267
+ }
268
+ /**
269
+ * Parses the numeric value of a specified CSS property from the root element's computed style.
270
+ *
271
+ * @param {string} property - The CSS property to retrieve and parse.
272
+ * @returns {number|null} The parsed value of the CSS property or `null` if non-existent.
273
+ */
274
+ function _getParsedNumericCSSValue(property) {
275
+ const parsedValue = Math.ceil(parseFloat(_assertClassBrand(_StylesHandler_brand, this, _getCSSValue).call(this, property)));
276
+ return Number.isNaN(parsedValue) ? null : parsedValue;
277
+ }
278
+ /**
279
+ * Retrieves the non-numeric value of a specified CSS property from the root element's computed style.
280
+ *
281
+ * @param {string} property - The CSS property to retrieve.
282
+ * @returns {string|null} The value of the specified CSS property or `null` if non-existent.
283
+ */
284
+ function _getCSSValue(property) {
285
+ const acquiredValue = _classPrivateFieldGet(_rootComputedStyle, this).getPropertyValue(property);
286
+ return acquiredValue === '' ? null : acquiredValue;
287
+ }
288
+ /**
289
+ * Clears the cached values.
290
+ */
291
+ function _clearCachedValues() {
292
+ _classPrivateFieldSet(_computedStyles, this, {});
293
+ _classPrivateFieldSet(_cssVars, this, {});
294
+ _classPrivateFieldSet(_isClassicTheme, this, true);
295
+ }
@@ -0,0 +1,291 @@
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";
4
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
5
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
6
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
7
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
8
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
9
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
10
+ import { addClass, hasClass, removeClass } from "../../../../helpers/dom/element.mjs";
11
+ import { warn } from "../../../../helpers/console.mjs";
12
+ const CLASSIC_THEME_DEFAULT_HEIGHT = 23;
13
+
14
+ /**
15
+ * Handles the theme-related style operations.
16
+ */
17
+ var _themeName = /*#__PURE__*/new WeakMap();
18
+ var _rootElement = /*#__PURE__*/new WeakMap();
19
+ var _rootComputedStyle = /*#__PURE__*/new WeakMap();
20
+ var _rootDocument = /*#__PURE__*/new WeakMap();
21
+ var _isClassicTheme = /*#__PURE__*/new WeakMap();
22
+ var _cssVars = /*#__PURE__*/new WeakMap();
23
+ var _computedStyles = /*#__PURE__*/new WeakMap();
24
+ var _StylesHandler_brand = /*#__PURE__*/new WeakSet();
25
+ export class StylesHandler {
26
+ /**
27
+ * Initializes a new instance of the `StylesHandler` class.
28
+ *
29
+ * @param {object} domBindings - The DOM bindings for the instance.
30
+ */
31
+ constructor(domBindings) {
32
+ /**
33
+ * Calculates the row height based on the current theme and CSS variables.
34
+ *
35
+ * @returns {number|null} The calculated row height, or `null` if any required CSS variable is not found.
36
+ */
37
+ _classPrivateMethodInitSpec(this, _StylesHandler_brand);
38
+ /**
39
+ * The name of the theme.
40
+ *
41
+ * @type {string|undefined}
42
+ */
43
+ _classPrivateFieldInitSpec(this, _themeName, void 0);
44
+ /**
45
+ * The instance's root element.
46
+ *
47
+ * @type {HTMLElement}
48
+ */
49
+ _classPrivateFieldInitSpec(this, _rootElement, void 0);
50
+ /**
51
+ * The computed style of the root element.
52
+ *
53
+ * @type {CSSStyleDeclaration}
54
+ * @private
55
+ */
56
+ _classPrivateFieldInitSpec(this, _rootComputedStyle, void 0);
57
+ /**
58
+ * The root document of the instance.
59
+ *
60
+ * @type {Document}
61
+ * @private
62
+ */
63
+ _classPrivateFieldInitSpec(this, _rootDocument, void 0);
64
+ /**
65
+ * `true` if the classic theme is enabled, `false` otherwise.
66
+ *
67
+ * @type {boolean}
68
+ */
69
+ _classPrivateFieldInitSpec(this, _isClassicTheme, true);
70
+ /**
71
+ * An object to store CSS variable values.
72
+ *
73
+ * @type {object}
74
+ * @private
75
+ */
76
+ _classPrivateFieldInitSpec(this, _cssVars, {});
77
+ /**
78
+ * Stores the computed styles for various elements.
79
+ *
80
+ * @type {object} - An object containing the computed styles if a nested structore of `element: { [element type]: {property: value} }`.
81
+ * @private
82
+ */
83
+ _classPrivateFieldInitSpec(this, _computedStyles, {});
84
+ _classPrivateFieldSet(_rootElement, this, domBindings.rootTable.parentElement.parentElement);
85
+ _classPrivateFieldSet(_rootDocument, this, domBindings.rootDocument);
86
+ }
87
+
88
+ /**
89
+ * Gets the value indicating whether the classic theme is enabled.
90
+ *
91
+ * @returns {boolean} `true` if the classic theme is enabled, `false` otherwise.
92
+ */
93
+ isClassicTheme() {
94
+ return _classPrivateFieldGet(_isClassicTheme, this);
95
+ }
96
+
97
+ /**
98
+ * Retrieves the value of a specified CSS variable.
99
+ *
100
+ * @param {string} variableName - The name of the CSS variable to retrieve.
101
+ * @returns {number|null|undefined} The value of the specified CSS variable, or `undefined` if not found.
102
+ */
103
+ getCSSVariableValue(variableName) {
104
+ var _assertClassBrand$cal;
105
+ if (_classPrivateFieldGet(_isClassicTheme, this)) {
106
+ return null;
107
+ }
108
+ if (_classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`]) {
109
+ return _classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`];
110
+ }
111
+ const acquiredValue = (_assertClassBrand$cal = _assertClassBrand(_StylesHandler_brand, this, _getParsedNumericCSSValue).call(this, `--ht-${variableName}`)) !== null && _assertClassBrand$cal !== void 0 ? _assertClassBrand$cal : _assertClassBrand(_StylesHandler_brand, this, _getCSSValue).call(this, `--ht-${variableName}`);
112
+ if (acquiredValue !== null) {
113
+ _classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`] = acquiredValue;
114
+ return acquiredValue;
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Retrieves the computed style value for a specified CSS property of a `td` element.
120
+ *
121
+ * @param {string} cssProperty - The CSS property to retrieve the value for.
122
+ * @returns {number|string|undefined} The value of the specified CSS property, or `undefined` if not found.
123
+ */
124
+ getStyleForTD(cssProperty) {
125
+ var _classPrivateFieldGet2;
126
+ return (_classPrivateFieldGet2 = _classPrivateFieldGet(_computedStyles, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.td[cssProperty];
127
+ }
128
+
129
+ /**
130
+ * Calculates the row height based on the current theme and CSS variables.
131
+ *
132
+ * @returns {number} The calculated row height.
133
+ */
134
+ getDefaultRowHeight() {
135
+ if (_classPrivateFieldGet(_isClassicTheme, this)) {
136
+ return CLASSIC_THEME_DEFAULT_HEIGHT;
137
+ }
138
+ const calculatedRowHeight = _assertClassBrand(_StylesHandler_brand, this, _calculateRowHeight).call(this);
139
+ if (!calculatedRowHeight && hasClass(_classPrivateFieldGet(_rootElement, this), 'ht-wrapper')) {
140
+ warn(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing or not imported correctly. \
141
+ Import the correct CSS files in order to use that theme.`);
142
+ _classPrivateFieldSet(_isClassicTheme, this, true);
143
+ this.useTheme();
144
+ return CLASSIC_THEME_DEFAULT_HEIGHT;
145
+ }
146
+ return calculatedRowHeight;
147
+ }
148
+
149
+ /**
150
+ * Checks if the cells are using the `border-box` box-sizing model.
151
+ *
152
+ * @returns {boolean}
153
+ */
154
+ areCellsBorderBox() {
155
+ return this.getStyleForTD('box-sizing') === 'border-box';
156
+ }
157
+
158
+ /**
159
+ * Applies the specified theme to the instance.
160
+ *
161
+ * @param {string|undefined|boolean} [themeName] - The name of the theme to apply.
162
+ */
163
+ useTheme(themeName) {
164
+ if (!themeName) {
165
+ _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
166
+ _classPrivateFieldSet(_isClassicTheme, this, true);
167
+ _classPrivateFieldSet(_themeName, this, themeName || undefined);
168
+ return;
169
+ }
170
+ if (themeName && themeName !== _classPrivateFieldGet(_themeName, this)) {
171
+ if (_classPrivateFieldGet(_themeName, this)) {
172
+ _assertClassBrand(_StylesHandler_brand, this, _clearCachedValues).call(this);
173
+ }
174
+ _classPrivateFieldSet(_themeName, this, themeName);
175
+ _classPrivateFieldSet(_isClassicTheme, this, false);
176
+ _assertClassBrand(_StylesHandler_brand, this, _applyClassNames).call(this);
177
+ _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Gets the name of the theme.
183
+ *
184
+ * @returns {string|undefined}
185
+ */
186
+ getThemeName() {
187
+ return _classPrivateFieldGet(_themeName, this);
188
+ }
189
+
190
+ /**
191
+ * Removes the theme-related class names from the root element.
192
+ */
193
+ removeClassNames() {
194
+ if (hasClass(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this))) {
195
+ removeClass(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
196
+ }
197
+ }
198
+ }
199
+ function _calculateRowHeight() {
200
+ const lineHeightVarValue = this.getCSSVariableValue('line-height');
201
+ const verticalPaddingVarValue = this.getCSSVariableValue('cell-vertical-padding');
202
+ const bottomBorderWidth = Math.ceil(parseFloat(this.getStyleForTD('border-bottom-width')));
203
+ if (lineHeightVarValue === null || verticalPaddingVarValue === null || isNaN(bottomBorderWidth)) {
204
+ return null;
205
+ }
206
+ return lineHeightVarValue + 2 * verticalPaddingVarValue + bottomBorderWidth;
207
+ }
208
+ /**
209
+ * Applies the necessary class names to the root element.
210
+ */
211
+ function _applyClassNames() {
212
+ removeClass(_classPrivateFieldGet(_rootElement, this), /ht-theme-.*/g);
213
+ addClass(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
214
+ }
215
+ /**
216
+ * Caches the computed style values for the root element and `td` element.
217
+ */
218
+ function _cacheStylesheetValues() {
219
+ if (!this.isClassicTheme()) {
220
+ _classPrivateFieldSet(_rootComputedStyle, this, getComputedStyle(_classPrivateFieldGet(_rootElement, this)));
221
+ }
222
+ const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing', 'border-bottom-width']);
223
+ _classPrivateFieldGet(_computedStyles, this).td = {
224
+ ..._classPrivateFieldGet(_computedStyles, this).td,
225
+ ...{
226
+ 'box-sizing': stylesForTD['box-sizing'],
227
+ 'border-bottom-width': stylesForTD['border-bottom-width']
228
+ }
229
+ };
230
+ }
231
+ /**
232
+ * Retrieves and processes the computed styles for a `td` element.
233
+ *
234
+ * This method creates a temporary table structure, appends it to the root element,
235
+ * retrieves the computed styles for the `td` element, and then removes the table
236
+ * from the DOM. The computed styles are passed to the provided callback function.
237
+ *
238
+ * @param {Array} cssProps - An array of CSS properties to retrieve.
239
+ * @returns {object} An object containing the requested computed styles for the `td` element.
240
+ * @private
241
+ */
242
+ function _getStylesForTD(cssProps) {
243
+ const rootDocument = _classPrivateFieldGet(_rootDocument, this);
244
+ const rootElement = _classPrivateFieldGet(_rootElement, this);
245
+ const table = rootDocument.createElement('table');
246
+ const tbody = rootDocument.createElement('tbody');
247
+ const tr = rootDocument.createElement('tr');
248
+ // This needs not to be the first row in order to get "regular" vaules.
249
+ const tr2 = rootDocument.createElement('tr');
250
+ const td = rootDocument.createElement('td');
251
+ tr2.appendChild(td);
252
+ tbody.appendChild(tr);
253
+ tbody.appendChild(tr2);
254
+ table.appendChild(tbody);
255
+ rootElement.appendChild(table);
256
+ const computedStyle = getComputedStyle(td);
257
+ const returnObject = {};
258
+ cssProps.forEach(prop => {
259
+ returnObject[prop] = computedStyle.getPropertyValue(prop);
260
+ });
261
+ rootElement.removeChild(table);
262
+ return returnObject;
263
+ }
264
+ /**
265
+ * Parses the numeric value of a specified CSS property from the root element's computed style.
266
+ *
267
+ * @param {string} property - The CSS property to retrieve and parse.
268
+ * @returns {number|null} The parsed value of the CSS property or `null` if non-existent.
269
+ */
270
+ function _getParsedNumericCSSValue(property) {
271
+ const parsedValue = Math.ceil(parseFloat(_assertClassBrand(_StylesHandler_brand, this, _getCSSValue).call(this, property)));
272
+ return Number.isNaN(parsedValue) ? null : parsedValue;
273
+ }
274
+ /**
275
+ * Retrieves the non-numeric value of a specified CSS property from the root element's computed style.
276
+ *
277
+ * @param {string} property - The CSS property to retrieve.
278
+ * @returns {string|null} The value of the specified CSS property or `null` if non-existent.
279
+ */
280
+ function _getCSSValue(property) {
281
+ const acquiredValue = _classPrivateFieldGet(_rootComputedStyle, this).getPropertyValue(property);
282
+ return acquiredValue === '' ? null : acquiredValue;
283
+ }
284
+ /**
285
+ * Clears the cached values.
286
+ */
287
+ function _clearCachedValues() {
288
+ _classPrivateFieldSet(_computedStyles, this, {});
289
+ _classPrivateFieldSet(_cssVars, this, {});
290
+ _classPrivateFieldSet(_isClassicTheme, this, true);
291
+ }