handsontable 14.6.1 → 15.0.0-next-4472a60-20241203

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
  5. package/3rdparty/walkontable/src/calculator/index.js +1 -2
  6. package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
  7. package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
  8. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
  9. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  10. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  11. package/3rdparty/walkontable/src/core/_base.js +29 -23
  12. package/3rdparty/walkontable/src/core/_base.mjs +29 -23
  13. package/3rdparty/walkontable/src/core/clone.js +1 -0
  14. package/3rdparty/walkontable/src/core/clone.mjs +1 -0
  15. package/3rdparty/walkontable/src/core/core.js +2 -0
  16. package/3rdparty/walkontable/src/core/core.mjs +2 -0
  17. package/3rdparty/walkontable/src/facade/core.js +12 -6
  18. package/3rdparty/walkontable/src/facade/core.mjs +12 -6
  19. package/3rdparty/walkontable/src/index.js +0 -1
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +8 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
  23. package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
  24. package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
  25. package/3rdparty/walkontable/src/overlay/index.js +2 -0
  26. package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
  27. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
  28. package/3rdparty/walkontable/src/overlay/top.js +9 -8
  29. package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
  30. package/3rdparty/walkontable/src/overlays.js +10 -26
  31. package/3rdparty/walkontable/src/overlays.mjs +10 -26
  32. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  33. package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
  34. package/3rdparty/walkontable/src/renderer/index.js +4 -2
  35. package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
  36. package/3rdparty/walkontable/src/renderer/table.js +13 -4
  37. package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
  38. package/3rdparty/walkontable/src/scroll.js +46 -37
  39. package/3rdparty/walkontable/src/scroll.mjs +46 -37
  40. package/3rdparty/walkontable/src/selection/border/border.js +52 -58
  41. package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
  42. package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
  43. package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
  44. package/3rdparty/walkontable/src/selection/index.js +6 -4
  45. package/3rdparty/walkontable/src/selection/index.mjs +1 -1
  46. package/3rdparty/walkontable/src/selection/manager.js +3 -0
  47. package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
  48. package/3rdparty/walkontable/src/selection/scanner.js +46 -11
  49. package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
  50. package/3rdparty/walkontable/src/settings.js +8 -9
  51. package/3rdparty/walkontable/src/settings.mjs +8 -9
  52. package/3rdparty/walkontable/src/table/master.js +1 -1
  53. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  54. package/3rdparty/walkontable/src/table.js +25 -36
  55. package/3rdparty/walkontable/src/table.mjs +25 -36
  56. package/3rdparty/walkontable/src/types.js +1 -0
  57. package/3rdparty/walkontable/src/types.mjs +1 -0
  58. package/3rdparty/walkontable/src/utils/column.js +1 -43
  59. package/3rdparty/walkontable/src/utils/column.mjs +1 -43
  60. package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
  61. package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
  62. package/3rdparty/walkontable/src/viewport.js +94 -91
  63. package/3rdparty/walkontable/src/viewport.mjs +95 -92
  64. package/CHANGELOG.md +36 -0
  65. package/README.md +1 -1
  66. package/base.js +4 -4
  67. package/base.mjs +3 -3
  68. package/core/focusCatcher/focusDetector.js +1 -0
  69. package/core/focusCatcher/focusDetector.mjs +1 -0
  70. package/core/hooks/bucket.js +184 -0
  71. package/core/hooks/bucket.mjs +180 -0
  72. package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
  73. package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
  74. package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
  75. package/core/hooks/index.js +385 -0
  76. package/core/hooks/index.mjs +381 -0
  77. package/core/index.js +2 -0
  78. package/core.d.ts +5 -3
  79. package/core.js +77 -35
  80. package/core.mjs +69 -27
  81. package/dataMap/dataMap.js +3 -0
  82. package/dataMap/dataMap.mjs +3 -0
  83. package/dataMap/dataSource.js +2 -0
  84. package/dataMap/dataSource.mjs +2 -0
  85. package/dataMap/metaManager/index.js +2 -0
  86. package/dataMap/metaManager/index.mjs +2 -0
  87. package/dataMap/metaManager/metaSchema.js +91 -5
  88. package/dataMap/metaManager/metaSchema.mjs +91 -5
  89. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
  90. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  91. package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
  92. package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
  93. package/dist/handsontable.css +84 -72
  94. package/dist/handsontable.full.css +317 -304
  95. package/dist/handsontable.full.js +14826 -7294
  96. package/dist/handsontable.full.min.css +15 -10
  97. package/dist/handsontable.full.min.js +262 -69
  98. package/dist/handsontable.js +7826 -5552
  99. package/dist/handsontable.min.css +10 -6
  100. package/dist/handsontable.min.js +33 -33
  101. package/dist/languages/all.js +1 -1
  102. package/dist/languages/ar-AR.js +1 -1
  103. package/dist/languages/cs-CZ.js +1 -1
  104. package/dist/languages/de-CH.js +1 -1
  105. package/dist/languages/de-DE.js +1 -1
  106. package/dist/languages/en-US.js +1 -1
  107. package/dist/languages/es-MX.js +1 -1
  108. package/dist/languages/fr-FR.js +1 -1
  109. package/dist/languages/hr-HR.js +1 -1
  110. package/dist/languages/it-IT.js +1 -1
  111. package/dist/languages/ja-JP.js +1 -1
  112. package/dist/languages/ko-KR.js +1 -1
  113. package/dist/languages/lv-LV.js +1 -1
  114. package/dist/languages/nb-NO.js +1 -1
  115. package/dist/languages/nl-NL.js +1 -1
  116. package/dist/languages/pl-PL.js +1 -1
  117. package/dist/languages/pt-BR.js +1 -1
  118. package/dist/languages/ru-RU.js +1 -1
  119. package/dist/languages/sr-SP.js +1 -1
  120. package/dist/languages/zh-CN.js +1 -1
  121. package/dist/languages/zh-TW.js +1 -1
  122. package/editorManager.js +2 -2
  123. package/editorManager.mjs +2 -2
  124. package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
  125. package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
  126. package/editors/baseEditor/baseEditor.js +25 -18
  127. package/editors/baseEditor/baseEditor.mjs +26 -19
  128. package/editors/dateEditor/dateEditor.js +9 -0
  129. package/editors/dateEditor/dateEditor.mjs +10 -1
  130. package/editors/dropdownEditor/dropdownEditor.js +4 -3
  131. package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
  132. package/editors/handsontableEditor/handsontableEditor.js +36 -2
  133. package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
  134. package/editors/passwordEditor/passwordEditor.js +18 -0
  135. package/editors/passwordEditor/passwordEditor.mjs +18 -0
  136. package/editors/registry.js +2 -2
  137. package/editors/registry.mjs +1 -1
  138. package/editors/selectEditor/selectEditor.js +20 -9
  139. package/editors/selectEditor/selectEditor.mjs +20 -9
  140. package/editors/textEditor/textEditor.js +5 -12
  141. package/editors/textEditor/textEditor.mjs +6 -13
  142. package/focusManager.js +5 -7
  143. package/focusManager.mjs +5 -7
  144. package/helpers/array.js +2 -0
  145. package/helpers/array.mjs +2 -0
  146. package/helpers/data.js +3 -0
  147. package/helpers/data.mjs +3 -0
  148. package/helpers/dom/element.js +39 -18
  149. package/helpers/dom/element.mjs +38 -17
  150. package/helpers/mixed.js +3 -3
  151. package/helpers/mixed.mjs +3 -3
  152. package/helpers/moves.js +3 -0
  153. package/helpers/moves.mjs +3 -0
  154. package/helpers/number.js +1 -0
  155. package/helpers/number.mjs +1 -0
  156. package/helpers/object.js +2 -0
  157. package/helpers/object.mjs +2 -0
  158. package/helpers/themes.js +17 -0
  159. package/helpers/themes.mjs +13 -0
  160. package/i18n/index.js +2 -0
  161. package/i18n/languages/index.d.ts +8 -0
  162. package/i18n/languages/ja-JP.d.ts +1 -1
  163. package/i18n/phraseFormatters/substituteVariables.js +1 -0
  164. package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
  165. package/index.d.ts +9 -1
  166. package/languages/all.js +1 -1
  167. package/languages/ar-AR.js +1 -1
  168. package/languages/cs-CZ.js +1 -1
  169. package/languages/de-CH.js +1 -1
  170. package/languages/de-DE.js +1 -1
  171. package/languages/en-US.js +1 -1
  172. package/languages/es-MX.js +1 -1
  173. package/languages/fr-FR.js +1 -1
  174. package/languages/hr-HR.js +1 -1
  175. package/languages/index.js +1 -1
  176. package/languages/it-IT.js +1 -1
  177. package/languages/ja-JP.js +1 -1
  178. package/languages/ko-KR.js +1 -1
  179. package/languages/lv-LV.js +1 -1
  180. package/languages/nb-NO.js +1 -1
  181. package/languages/nl-NL.js +1 -1
  182. package/languages/pl-PL.js +1 -1
  183. package/languages/pt-BR.js +1 -1
  184. package/languages/ru-RU.js +1 -1
  185. package/languages/sr-SP.js +1 -1
  186. package/languages/zh-CN.js +1 -1
  187. package/languages/zh-TW.js +1 -1
  188. package/package.json +22 -7
  189. package/plugins/autoColumnSize/autoColumnSize.js +22 -27
  190. package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
  191. package/plugins/autoRowSize/autoRowSize.js +20 -22
  192. package/plugins/autoRowSize/autoRowSize.mjs +21 -23
  193. package/plugins/autofill/autofill.js +4 -5
  194. package/plugins/autofill/autofill.mjs +1 -1
  195. package/plugins/base/base.d.ts +1 -1
  196. package/plugins/base/base.js +41 -0
  197. package/plugins/base/base.mjs +42 -1
  198. package/plugins/base/index.js +2 -1
  199. package/plugins/base/index.mjs +1 -1
  200. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
  201. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
  202. package/plugins/columnSorting/columnSorting.js +5 -4
  203. package/plugins/columnSorting/columnSorting.mjs +3 -1
  204. package/plugins/columnSorting/columnStatesManager.js +1 -0
  205. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  206. package/plugins/columnSorting/utils.js +3 -0
  207. package/plugins/columnSorting/utils.mjs +3 -0
  208. package/plugins/columnSummary/endpoints.js +3 -0
  209. package/plugins/columnSummary/endpoints.mjs +3 -0
  210. package/plugins/comments/commentEditor.js +9 -0
  211. package/plugins/comments/commentEditor.mjs +9 -0
  212. package/plugins/comments/comments.js +24 -18
  213. package/plugins/comments/comments.mjs +26 -20
  214. package/plugins/comments/editorResizeObserver.js +2 -0
  215. package/plugins/comments/editorResizeObserver.mjs +2 -0
  216. package/plugins/contextMenu/contextMenu.d.ts +2 -1
  217. package/plugins/contextMenu/contextMenu.js +6 -7
  218. package/plugins/contextMenu/contextMenu.mjs +1 -1
  219. package/plugins/contextMenu/menu/index.js +2 -0
  220. package/plugins/contextMenu/menu/menu.js +10 -5
  221. package/plugins/contextMenu/menu/menu.mjs +11 -6
  222. package/plugins/contextMenu/menu/positioner.js +4 -2
  223. package/plugins/contextMenu/menu/positioner.mjs +4 -2
  224. package/plugins/contextMenu/menu/shortcuts.js +3 -1
  225. package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
  226. package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
  227. package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
  228. package/plugins/contextMenu/utils.js +0 -10
  229. package/plugins/contextMenu/utils.mjs +0 -9
  230. package/plugins/copyPaste/copyPaste.d.ts +1 -0
  231. package/plugins/copyPaste/copyPaste.js +32 -23
  232. package/plugins/copyPaste/copyPaste.mjs +24 -15
  233. package/plugins/customBorders/utils.js +2 -0
  234. package/plugins/customBorders/utils.mjs +2 -0
  235. package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
  236. package/plugins/dropdownMenu/dropdownMenu.js +6 -7
  237. package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
  238. package/plugins/exportFile/types/csv.js +1 -0
  239. package/plugins/exportFile/types/csv.mjs +1 -0
  240. package/plugins/filters/component/condition.js +2 -0
  241. package/plugins/filters/component/condition.mjs +2 -0
  242. package/plugins/filters/component/operators.js +2 -0
  243. package/plugins/filters/component/operators.mjs +2 -0
  244. package/plugins/filters/component/value.js +3 -0
  245. package/plugins/filters/component/value.mjs +3 -0
  246. package/plugins/filters/conditionCollection.js +3 -0
  247. package/plugins/filters/conditionCollection.mjs +3 -0
  248. package/plugins/filters/conditionUpdateObserver.js +2 -0
  249. package/plugins/filters/conditionUpdateObserver.mjs +2 -0
  250. package/plugins/filters/filters.js +43 -13
  251. package/plugins/filters/filters.mjs +43 -13
  252. package/plugins/filters/logicalOperations/conjunction.js +2 -0
  253. package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
  254. package/plugins/filters/logicalOperations/disjunction.js +2 -0
  255. package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
  256. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
  257. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
  258. package/plugins/filters/menu/focusController.js +38 -14
  259. package/plugins/filters/menu/focusController.mjs +38 -14
  260. package/plugins/filters/ui/multipleSelect.js +10 -0
  261. package/plugins/filters/ui/multipleSelect.mjs +10 -0
  262. package/plugins/formulas/engine/register.js +3 -0
  263. package/plugins/formulas/engine/register.mjs +3 -0
  264. package/plugins/formulas/engine/settings.js +3 -0
  265. package/plugins/formulas/engine/settings.mjs +3 -0
  266. package/plugins/formulas/formulas.js +12 -7
  267. package/plugins/formulas/formulas.mjs +6 -1
  268. package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
  269. package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
  270. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
  271. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
  272. package/plugins/hiddenColumns/hiddenColumns.js +22 -30
  273. package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
  274. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
  275. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
  276. package/plugins/hiddenRows/hiddenRows.js +21 -29
  277. package/plugins/hiddenRows/hiddenRows.mjs +17 -25
  278. package/plugins/index.d.ts +3 -0
  279. package/plugins/index.js +3 -0
  280. package/plugins/index.mjs +3 -1
  281. package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
  282. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
  283. package/plugins/manualColumnMove/manualColumnMove.js +6 -6
  284. package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
  285. package/plugins/manualColumnResize/manualColumnResize.js +26 -12
  286. package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
  287. package/plugins/manualRowMove/manualRowMove.js +8 -6
  288. package/plugins/manualRowMove/manualRowMove.mjs +6 -4
  289. package/plugins/manualRowResize/manualRowResize.js +3 -2
  290. package/plugins/manualRowResize/manualRowResize.mjs +4 -3
  291. package/plugins/mergeCells/cellsCollection.js +19 -3
  292. package/plugins/mergeCells/cellsCollection.mjs +20 -4
  293. package/plugins/mergeCells/mergeCells.d.ts +6 -2
  294. package/plugins/mergeCells/mergeCells.js +84 -56
  295. package/plugins/mergeCells/mergeCells.mjs +82 -54
  296. package/plugins/mergeCells/renderer.js +13 -3
  297. package/plugins/mergeCells/renderer.mjs +13 -3
  298. package/plugins/multiColumnSorting/domHelpers.js +2 -0
  299. package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
  300. package/plugins/nestedHeaders/nestedHeaders.js +63 -16
  301. package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
  302. package/plugins/nestedHeaders/stateManager/index.js +1 -0
  303. package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
  304. package/plugins/nestedRows/nestedRows.js +3 -0
  305. package/plugins/nestedRows/nestedRows.mjs +3 -0
  306. package/plugins/nestedRows/ui/headers.js +7 -1
  307. package/plugins/nestedRows/ui/headers.mjs +7 -1
  308. package/plugins/nestedRows/utils/rowMoveController.js +4 -0
  309. package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
  310. package/plugins/persistentState/persistentState.js +4 -4
  311. package/plugins/persistentState/persistentState.mjs +1 -1
  312. package/plugins/stretchColumns/calculator.js +162 -0
  313. package/plugins/stretchColumns/calculator.mjs +158 -0
  314. package/plugins/stretchColumns/index.d.ts +1 -0
  315. package/plugins/stretchColumns/index.js +7 -0
  316. package/plugins/stretchColumns/index.mjs +1 -0
  317. package/plugins/stretchColumns/strategies/_base.js +85 -0
  318. package/plugins/stretchColumns/strategies/_base.mjs +81 -0
  319. package/plugins/stretchColumns/strategies/all.js +71 -0
  320. package/plugins/stretchColumns/strategies/all.mjs +67 -0
  321. package/plugins/stretchColumns/strategies/last.js +79 -0
  322. package/plugins/stretchColumns/strategies/last.mjs +75 -0
  323. package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
  324. package/plugins/stretchColumns/stretchColumns.js +222 -0
  325. package/plugins/stretchColumns/stretchColumns.mjs +218 -0
  326. package/plugins/trimRows/trimRows.js +2 -0
  327. package/plugins/trimRows/trimRows.mjs +2 -0
  328. package/plugins/undoRedo/undoRedo.js +9 -5
  329. package/plugins/undoRedo/undoRedo.mjs +8 -3
  330. package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
  331. package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
  332. package/selection/index.js +2 -0
  333. package/selection/range.js +2 -0
  334. package/selection/range.mjs +2 -0
  335. package/selection/selection.js +7 -2
  336. package/selection/selection.mjs +7 -2
  337. package/selection/utils.js +2 -0
  338. package/selection/utils.mjs +2 -0
  339. package/settings.d.ts +4 -1
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
  342. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
  343. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
  344. package/shortcutContexts/commands/index.js +2 -0
  345. package/shortcutContexts/commands/index.mjs +2 -0
  346. package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
  347. package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
  348. package/shortcutContexts/index.js +2 -0
  349. package/shortcutContexts/index.mjs +2 -0
  350. package/shortcuts/context.js +3 -0
  351. package/shortcuts/context.mjs +3 -0
  352. package/shortcuts/recorder.js +3 -3
  353. package/shortcuts/recorder.mjs +3 -3
  354. package/shortcuts/utils.js +1 -0
  355. package/shortcuts/utils.mjs +1 -0
  356. package/styles/handsontable.css +2307 -0
  357. package/styles/handsontable.min.css +30 -0
  358. package/styles/ht-theme-horizon.css +607 -0
  359. package/styles/ht-theme-horizon.min.css +30 -0
  360. package/styles/ht-theme-main.css +613 -0
  361. package/styles/ht-theme-main.min.css +30 -0
  362. package/tableView.js +205 -33
  363. package/tableView.mjs +206 -34
  364. package/translations/changesObservable/observable.js +2 -0
  365. package/translations/changesObservable/observable.mjs +2 -0
  366. package/translations/index.js +2 -0
  367. package/translations/indexMapper.js +4 -0
  368. package/translations/indexMapper.mjs +4 -0
  369. package/translations/mapCollections/index.js +2 -0
  370. package/translations/mapCollections/mapCollection.js +2 -0
  371. package/translations/mapCollections/mapCollection.mjs +2 -0
  372. package/translations/maps/index.js +2 -0
  373. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  374. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  375. package/translations/maps/utils/actionsOnIndexes.js +2 -0
  376. package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
  377. package/translations/maps/utils/physicallyIndexed.js +1 -0
  378. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  379. package/utils/autoResize.js +11 -3
  380. package/utils/autoResize.mjs +11 -3
  381. package/utils/dataStructures/priorityMap.js +1 -0
  382. package/utils/dataStructures/priorityMap.mjs +1 -0
  383. package/utils/dataStructures/uniqueMap.js +2 -0
  384. package/utils/dataStructures/uniqueMap.mjs +2 -0
  385. package/utils/ghostTable.js +7 -3
  386. package/utils/ghostTable.mjs +7 -3
  387. package/utils/parseTable.js +4 -0
  388. package/utils/parseTable.mjs +4 -0
  389. package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
  390. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  391. package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
  392. package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -6,7 +6,7 @@ import moment from 'moment';
6
6
  import Pikaday from '@handsontable/pikaday';
7
7
  import { EDITOR_STATE } from "../baseEditor/index.mjs";
8
8
  import { TextEditor } from "../textEditor/index.mjs";
9
- import { addClass, hasClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
9
+ import { addClass, removeClass, hasClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
10
10
  import { deepExtend } from "../../helpers/object.mjs";
11
11
  import { isFunctionKey } from "../../helpers/unicode.mjs";
12
12
  export const EDITOR_TYPE = 'date';
@@ -48,6 +48,12 @@ export class DateEditor extends TextEditor {
48
48
  this.parentDestroyed = true;
49
49
  this.destroyElements();
50
50
  });
51
+ this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
52
+ if (!firstRun) {
53
+ removeClass(this.datePicker, /ht-theme-.*/g);
54
+ addClass(this.datePicker, themeName);
55
+ }
56
+ });
51
57
  }
52
58
 
53
59
  /**
@@ -63,6 +69,9 @@ export class DateEditor extends TextEditor {
63
69
  this.datePickerStyle.zIndex = 9999;
64
70
  this.datePicker.setAttribute('dir', this.hot.isRtl() ? 'rtl' : 'ltr');
65
71
  addClass(this.datePicker, 'htDatepickerHolder');
72
+ const themeClassName = this.hot.getCurrentThemeName();
73
+ removeClass(this.datePicker, /ht-theme-.*/g);
74
+ addClass(this.datePicker, themeClassName);
66
75
  this.hot.rootDocument.body.appendChild(this.datePicker);
67
76
 
68
77
  /**
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/esnext.iterator.constructor.js");
5
+ require("core-js/modules/esnext.iterator.filter.js");
4
6
  var _autocompleteEditor = require("../autocompleteEditor");
5
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
6
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
+ var _hooks = require("../../core/hooks");
7
8
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'dropdown';
8
9
 
9
10
  /**
@@ -30,7 +31,7 @@ class DropdownEditor extends _autocompleteEditor.AutocompleteEditor {
30
31
  }
31
32
  }
32
33
  exports.DropdownEditor = DropdownEditor;
33
- _pluginHooks.default.getSingleton().add('beforeValidate', function (value, row, col) {
34
+ _hooks.Hooks.getSingleton().add('beforeValidate', function (value, row, col) {
34
35
  const visualColumnIndex = this.propToCol(col);
35
36
  if (Number.isInteger(visualColumnIndex)) {
36
37
  const cellMeta = this.getCellMeta(row, visualColumnIndex);
@@ -1,5 +1,7 @@
1
+ import "core-js/modules/esnext.iterator.constructor.js";
2
+ import "core-js/modules/esnext.iterator.filter.js";
1
3
  import { AutocompleteEditor } from "../autocompleteEditor/index.mjs";
2
- import Hooks from "../../pluginHooks.mjs";
4
+ import { Hooks } from "../../core/hooks/index.mjs";
3
5
  export const EDITOR_TYPE = 'dropdown';
4
6
 
5
7
  /**
@@ -23,11 +23,15 @@ class HandsontableEditor extends _textEditor.TextEditor {
23
23
  */
24
24
  open() {
25
25
  super.open();
26
+ const containerStyle = this.htContainer.style;
26
27
  if (this.htEditor) {
27
28
  this.htEditor.destroy();
29
+ containerStyle.width = '';
30
+ containerStyle.height = '';
31
+ containerStyle.overflow = '';
28
32
  }
29
- if (this.htContainer.style.display === 'none') {
30
- this.htContainer.style.display = '';
33
+ if (containerStyle.display === 'none') {
34
+ containerStyle.display = '';
31
35
  }
32
36
 
33
37
  // Constructs and initializes a new Handsontable instance
@@ -40,6 +44,10 @@ class HandsontableEditor extends _textEditor.TextEditor {
40
44
  this.htEditor.deselectCell();
41
45
  }
42
46
  (0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
47
+ this.htEditor.updateSettings({
48
+ width: this.getWidth(),
49
+ height: this.getHeight()
50
+ });
43
51
  this.refreshDimensions();
44
52
  }
45
53
 
@@ -81,6 +89,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
81
89
  autoWrapCol: false,
82
90
  autoWrapRow: false,
83
91
  ariaTags: false,
92
+ themeName: this.hot.getCurrentThemeName(),
84
93
  afterOnCellMouseDown(_, coords) {
85
94
  const sourceValue = this.getSourceData(coords.row, coords.col);
86
95
 
@@ -147,6 +156,26 @@ class HandsontableEditor extends _textEditor.TextEditor {
147
156
  super.finishEditing(restoreOriginalValue, ctrlDown, callback);
148
157
  }
149
158
 
159
+ /**
160
+ * Calculates and return the internal Handsontable's height.
161
+ *
162
+ * @private
163
+ * @returns {number}
164
+ */
165
+ getHeight() {
166
+ return this.htEditor.view.getTableHeight() + 1;
167
+ }
168
+
169
+ /**
170
+ * Calculates and return the internal Handsontable's width.
171
+ *
172
+ * @private
173
+ * @returns {number}
174
+ */
175
+ getWidth() {
176
+ return this.htEditor.view.getTableWidth();
177
+ }
178
+
150
179
  /**
151
180
  * Assigns afterDestroy callback to prevent memory leaks.
152
181
  *
@@ -158,6 +187,11 @@ class HandsontableEditor extends _textEditor.TextEditor {
158
187
  this.htEditor.destroy();
159
188
  }
160
189
  });
190
+ this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
191
+ if (!firstRun) {
192
+ this.htEditor.useTheme(themeName);
193
+ }
194
+ });
161
195
  }
162
196
 
163
197
  /**
@@ -20,11 +20,15 @@ export class HandsontableEditor extends TextEditor {
20
20
  */
21
21
  open() {
22
22
  super.open();
23
+ const containerStyle = this.htContainer.style;
23
24
  if (this.htEditor) {
24
25
  this.htEditor.destroy();
26
+ containerStyle.width = '';
27
+ containerStyle.height = '';
28
+ containerStyle.overflow = '';
25
29
  }
26
- if (this.htContainer.style.display === 'none') {
27
- this.htContainer.style.display = '';
30
+ if (containerStyle.display === 'none') {
31
+ containerStyle.display = '';
28
32
  }
29
33
 
30
34
  // Constructs and initializes a new Handsontable instance
@@ -37,6 +41,10 @@ export class HandsontableEditor extends TextEditor {
37
41
  this.htEditor.deselectCell();
38
42
  }
39
43
  setCaretPosition(this.TEXTAREA, 0, this.TEXTAREA.value.length);
44
+ this.htEditor.updateSettings({
45
+ width: this.getWidth(),
46
+ height: this.getHeight()
47
+ });
40
48
  this.refreshDimensions();
41
49
  }
42
50
 
@@ -78,6 +86,7 @@ export class HandsontableEditor extends TextEditor {
78
86
  autoWrapCol: false,
79
87
  autoWrapRow: false,
80
88
  ariaTags: false,
89
+ themeName: this.hot.getCurrentThemeName(),
81
90
  afterOnCellMouseDown(_, coords) {
82
91
  const sourceValue = this.getSourceData(coords.row, coords.col);
83
92
 
@@ -144,6 +153,26 @@ export class HandsontableEditor extends TextEditor {
144
153
  super.finishEditing(restoreOriginalValue, ctrlDown, callback);
145
154
  }
146
155
 
156
+ /**
157
+ * Calculates and return the internal Handsontable's height.
158
+ *
159
+ * @private
160
+ * @returns {number}
161
+ */
162
+ getHeight() {
163
+ return this.htEditor.view.getTableHeight() + 1;
164
+ }
165
+
166
+ /**
167
+ * Calculates and return the internal Handsontable's width.
168
+ *
169
+ * @private
170
+ * @returns {number}
171
+ */
172
+ getWidth() {
173
+ return this.htEditor.view.getTableWidth();
174
+ }
175
+
147
176
  /**
148
177
  * Assigns afterDestroy callback to prevent memory leaks.
149
178
  *
@@ -155,6 +184,11 @@ export class HandsontableEditor extends TextEditor {
155
184
  this.htEditor.destroy();
156
185
  }
157
186
  });
187
+ this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
188
+ if (!firstRun) {
189
+ this.htEditor.useTheme(themeName);
190
+ }
191
+ });
158
192
  }
159
193
 
160
194
  /**
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
4
5
  var _textEditor = require("../textEditor");
6
+ var _autoResize = require("../../utils/autoResize");
5
7
  var _element = require("../../helpers/dom/element");
8
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
10
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
11
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
7
12
 
8
13
  /**
@@ -10,6 +15,19 @@ const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
10
15
  * @class PasswordEditor
11
16
  */
12
17
  class PasswordEditor extends _textEditor.TextEditor {
18
+ constructor() {
19
+ super(...arguments);
20
+ /**
21
+ * Autoresize instance for resizing the editor to the size of the entered text. Its overwrites the default
22
+ * resizer of the TextEditor.
23
+ *
24
+ * @private
25
+ * @type {Function}
26
+ */
27
+ _defineProperty(this, "autoResize", (0, _autoResize.createInputElementResizer)(this.hot.rootDocument, {
28
+ textContent: element => '•'.repeat(element.value.length)
29
+ }));
30
+ }
13
31
  static get EDITOR_TYPE() {
14
32
  return EDITOR_TYPE;
15
33
  }
@@ -1,4 +1,9 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
5
  import { TextEditor } from "../textEditor/index.mjs";
6
+ import { createInputElementResizer } from "../../utils/autoResize.mjs";
2
7
  import { empty } from "../../helpers/dom/element.mjs";
3
8
  export const EDITOR_TYPE = 'password';
4
9
 
@@ -7,6 +12,19 @@ export const EDITOR_TYPE = 'password';
7
12
  * @class PasswordEditor
8
13
  */
9
14
  export class PasswordEditor extends TextEditor {
15
+ constructor() {
16
+ super(...arguments);
17
+ /**
18
+ * Autoresize instance for resizing the editor to the size of the entered text. Its overwrites the default
19
+ * resizer of the TextEditor.
20
+ *
21
+ * @private
22
+ * @type {Function}
23
+ */
24
+ _defineProperty(this, "autoResize", createInputElementResizer(this.hot.rootDocument, {
25
+ textContent: element => '•'.repeat(element.value.length)
26
+ }));
27
+ }
10
28
  static get EDITOR_TYPE() {
11
29
  return EDITOR_TYPE;
12
30
  }
@@ -6,7 +6,7 @@ exports.getEditorInstance = exports._getEditorInstance = _getEditorInstance;
6
6
  exports.getEditor = _getItem;
7
7
  exports.registerEditor = _register;
8
8
  require("core-js/modules/es.error.cause.js");
9
- var _pluginHooks = _interopRequireDefault(require("../pluginHooks"));
9
+ var _hooks = require("../core/hooks");
10
10
  var _staticRegister = _interopRequireDefault(require("../utils/staticRegister"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  /**
@@ -40,7 +40,7 @@ function RegisteredEditor(editorClass) {
40
40
  }
41
41
  return instances[hotInstance.guid];
42
42
  };
43
- _pluginHooks.default.getSingleton().add('afterDestroy', function () {
43
+ _hooks.Hooks.getSingleton().add('afterDestroy', function () {
44
44
  instances[this.guid] = null;
45
45
  });
46
46
  }
@@ -2,7 +2,7 @@ import "core-js/modules/es.error.cause.js";
2
2
  /**
3
3
  * Utility to register editors and common namespace for keeping reference to all editor classes.
4
4
  */
5
- import Hooks from "../pluginHooks.mjs";
5
+ import { Hooks } from "../core/hooks/index.mjs";
6
6
  import staticRegister from "../utils/staticRegister.mjs";
7
7
  const registeredEditorClasses = new WeakMap();
8
8
  const {
@@ -4,6 +4,7 @@ exports.__esModule = true;
4
4
  var _baseEditor = require("../baseEditor");
5
5
  var _element = require("../../helpers/dom/element");
6
6
  var _object = require("../../helpers/object");
7
+ var _a11y = require("../../helpers/a11y");
7
8
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
8
9
  const SHORTCUTS_GROUP = 'selectEditor';
9
10
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'select';
@@ -21,11 +22,21 @@ class SelectEditor extends _baseEditor.BaseEditor {
21
22
  * Initializes editor instance, DOM Element and mount hooks.
22
23
  */
23
24
  init() {
25
+ this.selectWrapper = this.hot.rootDocument.createElement('div');
24
26
  this.select = this.hot.rootDocument.createElement('select');
25
27
  this.select.setAttribute('data-hot-input', 'true');
26
- this.select.style.display = 'none';
27
- (0, _element.addClass)(this.select, 'htSelectEditor');
28
- this.hot.rootElement.appendChild(this.select);
28
+ this.selectWrapper.style.display = 'none';
29
+ const ARROW = this.hot.rootDocument.createElement('DIV');
30
+ const isAriaEnabled = this.hot.getSettings().ariaTags;
31
+ ARROW.className = 'htAutocompleteArrow';
32
+ if (isAriaEnabled) {
33
+ ARROW.setAttribute(...(0, _a11y.A11Y_HIDDEN)());
34
+ }
35
+ ARROW.appendChild(this.hot.rootDocument.createTextNode(String.fromCharCode(9660)));
36
+ (0, _element.addClass)(this.selectWrapper, 'htSelectEditor');
37
+ this.selectWrapper.appendChild(this.select);
38
+ this.selectWrapper.insertBefore(ARROW, this.selectWrapper.firstChild);
39
+ this.hot.rootElement.appendChild(this.selectWrapper);
29
40
  this.registerHooks();
30
41
  }
31
42
 
@@ -53,7 +64,7 @@ class SelectEditor extends _baseEditor.BaseEditor {
53
64
  open() {
54
65
  this._opened = true;
55
66
  this.refreshDimensions();
56
- this.select.style.display = '';
67
+ this.selectWrapper.style.display = '';
57
68
  const shortcutManager = this.hot.getShortcutManager();
58
69
  shortcutManager.setActiveContextName('editor');
59
70
  this.registerShortcuts();
@@ -64,9 +75,9 @@ class SelectEditor extends _baseEditor.BaseEditor {
64
75
  */
65
76
  close() {
66
77
  this._opened = false;
67
- this.select.style.display = 'none';
68
- if ((0, _element.hasClass)(this.select, EDITOR_VISIBLE_CLASS_NAME)) {
69
- (0, _element.removeClass)(this.select, EDITOR_VISIBLE_CLASS_NAME);
78
+ this.selectWrapper.style.display = 'none';
79
+ if ((0, _element.hasClass)(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME)) {
80
+ (0, _element.removeClass)(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
70
81
  }
71
82
  this.unregisterShortcuts();
72
83
  this.clearHooks();
@@ -172,13 +183,13 @@ class SelectEditor extends _baseEditor.BaseEditor {
172
183
  width,
173
184
  height
174
185
  } = this.getEditedCellRect();
175
- const selectStyle = this.select.style;
186
+ const selectStyle = this.selectWrapper.style;
176
187
  selectStyle.height = `${height}px`;
177
188
  selectStyle.width = `${width}px`;
178
189
  selectStyle.top = `${top}px`;
179
190
  selectStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
180
191
  selectStyle.margin = '0px';
181
- (0, _element.addClass)(this.select, EDITOR_VISIBLE_CLASS_NAME);
192
+ (0, _element.addClass)(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
182
193
  }
183
194
 
184
195
  /**
@@ -1,6 +1,7 @@
1
1
  import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
2
2
  import { addClass, empty, fastInnerHTML, hasClass, removeClass } from "../../helpers/dom/element.mjs";
3
3
  import { objectEach } from "../../helpers/object.mjs";
4
+ import { A11Y_HIDDEN } from "../../helpers/a11y.mjs";
4
5
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
5
6
  const SHORTCUTS_GROUP = 'selectEditor';
6
7
  export const EDITOR_TYPE = 'select';
@@ -18,11 +19,21 @@ export class SelectEditor extends BaseEditor {
18
19
  * Initializes editor instance, DOM Element and mount hooks.
19
20
  */
20
21
  init() {
22
+ this.selectWrapper = this.hot.rootDocument.createElement('div');
21
23
  this.select = this.hot.rootDocument.createElement('select');
22
24
  this.select.setAttribute('data-hot-input', 'true');
23
- this.select.style.display = 'none';
24
- addClass(this.select, 'htSelectEditor');
25
- this.hot.rootElement.appendChild(this.select);
25
+ this.selectWrapper.style.display = 'none';
26
+ const ARROW = this.hot.rootDocument.createElement('DIV');
27
+ const isAriaEnabled = this.hot.getSettings().ariaTags;
28
+ ARROW.className = 'htAutocompleteArrow';
29
+ if (isAriaEnabled) {
30
+ ARROW.setAttribute(...A11Y_HIDDEN());
31
+ }
32
+ ARROW.appendChild(this.hot.rootDocument.createTextNode(String.fromCharCode(9660)));
33
+ addClass(this.selectWrapper, 'htSelectEditor');
34
+ this.selectWrapper.appendChild(this.select);
35
+ this.selectWrapper.insertBefore(ARROW, this.selectWrapper.firstChild);
36
+ this.hot.rootElement.appendChild(this.selectWrapper);
26
37
  this.registerHooks();
27
38
  }
28
39
 
@@ -50,7 +61,7 @@ export class SelectEditor extends BaseEditor {
50
61
  open() {
51
62
  this._opened = true;
52
63
  this.refreshDimensions();
53
- this.select.style.display = '';
64
+ this.selectWrapper.style.display = '';
54
65
  const shortcutManager = this.hot.getShortcutManager();
55
66
  shortcutManager.setActiveContextName('editor');
56
67
  this.registerShortcuts();
@@ -61,9 +72,9 @@ export class SelectEditor extends BaseEditor {
61
72
  */
62
73
  close() {
63
74
  this._opened = false;
64
- this.select.style.display = 'none';
65
- if (hasClass(this.select, EDITOR_VISIBLE_CLASS_NAME)) {
66
- removeClass(this.select, EDITOR_VISIBLE_CLASS_NAME);
75
+ this.selectWrapper.style.display = 'none';
76
+ if (hasClass(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME)) {
77
+ removeClass(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
67
78
  }
68
79
  this.unregisterShortcuts();
69
80
  this.clearHooks();
@@ -169,13 +180,13 @@ export class SelectEditor extends BaseEditor {
169
180
  width,
170
181
  height
171
182
  } = this.getEditedCellRect();
172
- const selectStyle = this.select.style;
183
+ const selectStyle = this.selectWrapper.style;
173
184
  selectStyle.height = `${height}px`;
174
185
  selectStyle.width = `${width}px`;
175
186
  selectStyle.top = `${top}px`;
176
187
  selectStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
177
188
  selectStyle.margin = '0px';
178
- addClass(this.select, EDITOR_VISIBLE_CLASS_NAME);
189
+ addClass(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
179
190
  }
180
191
 
181
192
  /**
@@ -305,23 +305,16 @@ class TextEditor extends _baseEditor.BaseEditor {
305
305
  this.textareaParentStyle.top = `${top}px`;
306
306
  this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
307
307
  this.showEditableElement();
308
- const cellComputedStyle = (0, _element.getComputedStyle)(this.TD, this.hot.rootWindow);
308
+ const cellComputedStyle = this.hot.rootWindow.getComputedStyle(this.TD);
309
309
  this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;
310
310
  this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;
311
311
  this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;
312
- const textareaComputedStyle = (0, _element.getComputedStyle)(this.TEXTAREA);
313
- const horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);
314
- const verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);
315
- const finalWidth = width - horizontalPadding;
316
- const finalHeight = height - verticalPadding;
317
- const finalMaxWidth = maxWidth - horizontalPadding;
318
- const finalMaxHeight = maxHeight - verticalPadding;
319
312
  this.autoResize.init(this.TEXTAREA, {
320
- minWidth: Math.min(finalWidth, finalMaxWidth),
321
- minHeight: Math.min(finalHeight, finalMaxHeight),
313
+ minWidth: Math.min(width, maxWidth),
314
+ minHeight: Math.min(height, maxHeight),
322
315
  // TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)
323
- maxWidth: finalMaxWidth,
324
- maxHeight: finalMaxHeight
316
+ maxWidth,
317
+ maxHeight
325
318
  }, true);
326
319
  }
327
320
 
@@ -5,7 +5,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
5
5
  import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
6
6
  import EventManager from "../../eventManager.mjs";
7
7
  import { isEdge, isIOS } from "../../helpers/browser.mjs";
8
- import { addClass, getComputedStyle, isThisHotChild, setCaretPosition, hasClass, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
8
+ import { addClass, isThisHotChild, setCaretPosition, hasClass, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
9
9
  import { rangeEach } from "../../helpers/number.mjs";
10
10
  import { createInputElementResizer } from "../../utils/autoResize.mjs";
11
11
  import { isDefined } from "../../helpers/mixed.mjs";
@@ -301,23 +301,16 @@ export class TextEditor extends BaseEditor {
301
301
  this.textareaParentStyle.top = `${top}px`;
302
302
  this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
303
303
  this.showEditableElement();
304
- const cellComputedStyle = getComputedStyle(this.TD, this.hot.rootWindow);
304
+ const cellComputedStyle = this.hot.rootWindow.getComputedStyle(this.TD);
305
305
  this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;
306
306
  this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;
307
307
  this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;
308
- const textareaComputedStyle = getComputedStyle(this.TEXTAREA);
309
- const horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);
310
- const verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);
311
- const finalWidth = width - horizontalPadding;
312
- const finalHeight = height - verticalPadding;
313
- const finalMaxWidth = maxWidth - horizontalPadding;
314
- const finalMaxHeight = maxHeight - verticalPadding;
315
308
  this.autoResize.init(this.TEXTAREA, {
316
- minWidth: Math.min(finalWidth, finalMaxWidth),
317
- minHeight: Math.min(finalHeight, finalMaxHeight),
309
+ minWidth: Math.min(width, maxWidth),
310
+ minHeight: Math.min(height, maxHeight),
318
311
  // TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)
319
- maxWidth: finalMaxWidth,
320
- maxHeight: finalMaxHeight
312
+ maxWidth,
313
+ maxHeight
321
314
  }, true);
322
315
  }
323
316
 
package/focusManager.js CHANGED
@@ -163,12 +163,11 @@ class FocusManager {
163
163
  * @returns {HTMLTextAreaElement|HTMLElement|undefined}
164
164
  */
165
165
  getRefocusElement() {
166
+ var _classPrivateFieldGet2;
166
167
  if (typeof _classPrivateFieldGet(_refocusElementGetter, this) === 'function') {
167
168
  return _classPrivateFieldGet(_refocusElementGetter, this).call(this);
168
- } else {
169
- var _classPrivateFieldGet2;
170
- return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
171
169
  }
170
+ return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
172
171
  }
173
172
 
174
173
  /**
@@ -209,13 +208,12 @@ class FocusManager {
209
208
  refocusToEditorTextarea() {
210
209
  var _classPrivateFieldGet5;
211
210
  let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(_refocusDelay, this);
212
- const refocusElement = this.getRefocusElement();
213
-
214
211
  // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
215
- if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened()) && !!refocusElement) {
212
+ if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())) {
216
213
  if (!_classPrivateFieldGet(_debouncedSelect, this).has(delay)) {
217
214
  _classPrivateFieldGet(_debouncedSelect, this).set(delay, (0, _function.debounce)(() => {
218
- refocusElement.select();
215
+ var _this$getRefocusEleme;
216
+ (_this$getRefocusEleme = this.getRefocusElement()) === null || _this$getRefocusEleme === void 0 || _this$getRefocusEleme.select();
219
217
  }, delay));
220
218
  }
221
219
  _classPrivateFieldGet(_debouncedSelect, this).get(delay)();
package/focusManager.mjs CHANGED
@@ -160,12 +160,11 @@ export class FocusManager {
160
160
  * @returns {HTMLTextAreaElement|HTMLElement|undefined}
161
161
  */
162
162
  getRefocusElement() {
163
+ var _classPrivateFieldGet2;
163
164
  if (typeof _classPrivateFieldGet(_refocusElementGetter, this) === 'function') {
164
165
  return _classPrivateFieldGet(_refocusElementGetter, this).call(this);
165
- } else {
166
- var _classPrivateFieldGet2;
167
- return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
168
166
  }
167
+ return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
169
168
  }
170
169
 
171
170
  /**
@@ -206,13 +205,12 @@ export class FocusManager {
206
205
  refocusToEditorTextarea() {
207
206
  var _classPrivateFieldGet5;
208
207
  let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(_refocusDelay, this);
209
- const refocusElement = this.getRefocusElement();
210
-
211
208
  // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
212
- if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened()) && !!refocusElement) {
209
+ if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())) {
213
210
  if (!_classPrivateFieldGet(_debouncedSelect, this).has(delay)) {
214
211
  _classPrivateFieldGet(_debouncedSelect, this).set(delay, debounce(() => {
215
- refocusElement.select();
212
+ var _this$getRefocusEleme;
213
+ (_this$getRefocusEleme = this.getRefocusElement()) === null || _this$getRefocusEleme === void 0 || _this$getRefocusEleme.select();
216
214
  }, delay));
217
215
  }
218
216
  _classPrivateFieldGet(_debouncedSelect, this).get(delay)();
package/helpers/array.js CHANGED
@@ -26,6 +26,8 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
26
26
  require("core-js/modules/es.set.is-superset-of.v2.js");
27
27
  require("core-js/modules/es.set.symmetric-difference.v2.js");
28
28
  require("core-js/modules/es.set.union.v2.js");
29
+ require("core-js/modules/esnext.iterator.constructor.js");
30
+ require("core-js/modules/esnext.iterator.filter.js");
29
31
  /**
30
32
  * @param {Array} arr An array to process.
31
33
  */
package/helpers/array.mjs CHANGED
@@ -6,6 +6,8 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
6
6
  import "core-js/modules/es.set.is-superset-of.v2.js";
7
7
  import "core-js/modules/es.set.symmetric-difference.v2.js";
8
8
  import "core-js/modules/es.set.union.v2.js";
9
+ import "core-js/modules/esnext.iterator.constructor.js";
10
+ import "core-js/modules/esnext.iterator.filter.js";
9
11
  /**
10
12
  * @param {Array} arr An array to process.
11
13
  */
package/helpers/data.js CHANGED
@@ -11,6 +11,9 @@ exports.isArrayOfObjects = isArrayOfObjects;
11
11
  exports.spreadsheetColumnIndex = spreadsheetColumnIndex;
12
12
  exports.spreadsheetColumnLabel = spreadsheetColumnLabel;
13
13
  require("core-js/modules/es.array.push.js");
14
+ require("core-js/modules/esnext.iterator.constructor.js");
15
+ require("core-js/modules/esnext.iterator.every.js");
16
+ require("core-js/modules/esnext.iterator.for-each.js");
14
17
  var _object = require("./object");
15
18
  const COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
16
19
  const COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;
package/helpers/data.mjs CHANGED
@@ -1,4 +1,7 @@
1
1
  import "core-js/modules/es.array.push.js";
2
+ import "core-js/modules/esnext.iterator.constructor.js";
3
+ import "core-js/modules/esnext.iterator.every.js";
4
+ import "core-js/modules/esnext.iterator.for-each.js";
2
5
  import { deepObjectSize, isObject } from "./object.mjs";
3
6
  const COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
4
7
  const COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;