handsontable 14.6.1-next-689aaa6-20241016 → 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
@@ -16,7 +16,7 @@ import { filterSeparators, hasSubMenu, isItemHidden, normalizeSelection, isItemS
16
16
  import EventManager from "../../../eventManager.mjs";
17
17
  import { arrayEach, arrayFilter, arrayReduce } from "../../../helpers/array.mjs";
18
18
  import { isWindowsOS, isMobileBrowser, isIpadOS } from "../../../helpers/browser.mjs";
19
- import { addClass, isChildOf, getComputedStyle, getParentWindow, hasClass, setAttribute, outerHeight } from "../../../helpers/dom/element.mjs";
19
+ import { addClass, isChildOf, getParentWindow, hasClass, setAttribute, outerHeight } from "../../../helpers/dom/element.mjs";
20
20
  import { isRightClick } from "../../../helpers/dom/event.mjs";
21
21
  import { debounce, isFunction } from "../../../helpers/function.mjs";
22
22
  import { isUndefined, isDefined } from "../../../helpers/mixed.mjs";
@@ -53,7 +53,7 @@ export class Menu {
53
53
  */
54
54
  get tableBorderWidth() {
55
55
  if (_classPrivateFieldGet(_tableBorderWidth, this) === undefined && this.hotMenu) {
56
- _classPrivateFieldSet(_tableBorderWidth, this, parseInt(getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
56
+ _classPrivateFieldSet(_tableBorderWidth, this, parseInt(this.hotMenu.rootWindow.getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
57
57
  }
58
58
  return _classPrivateFieldGet(_tableBorderWidth, this);
59
59
  }
@@ -158,6 +158,12 @@ export class Menu {
158
158
  return _this.parentMenu.runLocalHooks('afterSelectionChange', ...args);
159
159
  });
160
160
  }
161
+ this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
162
+ if (!firstRun) {
163
+ var _this$hotMenu;
164
+ (_this$hotMenu = this.hotMenu) === null || _this$hotMenu === void 0 || _this$hotMenu.useTheme(themeName);
165
+ }
166
+ });
161
167
  }
162
168
 
163
169
  /**
@@ -282,6 +288,7 @@ export class Menu {
282
288
  disableVisualSelection: 'area',
283
289
  layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr',
284
290
  ariaTags: false,
291
+ themeName: this.hot.getCurrentThemeName(),
285
292
  beforeOnCellMouseOver: (event, coords) => {
286
293
  _classPrivateFieldGet(_navigator, this).setCurrentPage(coords.row);
287
294
  },
@@ -575,10 +582,8 @@ export class Menu {
575
582
  const currentRowHeight = itemCell ? outerHeight(this.hotMenu.getCell(index, 0)) : 0;
576
583
  return accumulator + (value.name === SEPARATOR ? 1 : currentRowHeight);
577
584
  }, 0);
578
-
579
- // Additional 3px to menu's size because of additional border around its `table.htCore`.
580
- holderStyle.width = `${currentHiderWidth + 3}px`;
581
- holderStyle.height = `${realHeight + 3}px`;
585
+ holderStyle.width = `${currentHiderWidth}px`;
586
+ holderStyle.height = `${realHeight}px`;
582
587
  hiderStyle.height = holderStyle.height;
583
588
  }
584
589
 
@@ -165,7 +165,8 @@ class Positioner {
165
165
  setPositionOnRightOfCursor() {
166
166
  let left = _classPrivateFieldGet(_cursor, this).left;
167
167
  if (_classPrivateFieldGet(_parentContainer, this)) {
168
- const borderRightWidth = Number.parseInt(getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
168
+ const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
169
+ const borderRightWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
169
170
  left += _classPrivateFieldGet(_cursor, this).cellWidth + borderRightWidth;
170
171
  } else {
171
172
  left += _classPrivateFieldGet(_offset, this).right;
@@ -179,7 +180,8 @@ class Positioner {
179
180
  setPositionOnLeftOfCursor() {
180
181
  let left = _classPrivateFieldGet(_offset, this).left + _classPrivateFieldGet(_cursor, this).left - _classPrivateFieldGet(_container, this).offsetWidth;
181
182
  if (_classPrivateFieldGet(_parentContainer, this)) {
182
- const borderLeftWidth = Number.parseInt(getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
183
+ const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
184
+ const borderLeftWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
183
185
  left -= borderLeftWidth;
184
186
  }
185
187
  _classPrivateFieldGet(_container, this).style.left = `${left}px`;
@@ -162,7 +162,8 @@ export class Positioner {
162
162
  setPositionOnRightOfCursor() {
163
163
  let left = _classPrivateFieldGet(_cursor, this).left;
164
164
  if (_classPrivateFieldGet(_parentContainer, this)) {
165
- const borderRightWidth = Number.parseInt(getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
165
+ const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
166
+ const borderRightWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
166
167
  left += _classPrivateFieldGet(_cursor, this).cellWidth + borderRightWidth;
167
168
  } else {
168
169
  left += _classPrivateFieldGet(_offset, this).right;
@@ -176,7 +177,8 @@ export class Positioner {
176
177
  setPositionOnLeftOfCursor() {
177
178
  let left = _classPrivateFieldGet(_offset, this).left + _classPrivateFieldGet(_cursor, this).left - _classPrivateFieldGet(_container, this).offsetWidth;
178
179
  if (_classPrivateFieldGet(_parentContainer, this)) {
179
- const borderLeftWidth = Number.parseInt(getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
180
+ const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
181
+ const borderLeftWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
180
182
  left -= borderLeftWidth;
181
183
  }
182
184
  _classPrivateFieldGet(_container, this).style.left = `${left}px`;
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.createKeyboardShortcutsCtrl = createKeyboardShortcutsCtrl;
5
5
  require("core-js/modules/es.array.push.js");
6
+ require("core-js/modules/esnext.iterator.constructor.js");
7
+ require("core-js/modules/esnext.iterator.for-each.js");
6
8
  var _defaultShortcutsList = require("./defaultShortcutsList");
7
9
  const SHORTCUTS_CONTEXT = 'menu';
8
10
  const SHORTCUTS_GROUP = SHORTCUTS_CONTEXT;
@@ -100,7 +102,7 @@ function createKeyboardShortcutsCtrl(menu) {
100
102
  /**
101
103
  * Makes the specified context active.
102
104
  *
103
- * @param {string} contextName The context name.
105
+ * @param {string} [contextName] The context name.
104
106
  */
105
107
  function listen(contextName) {
106
108
  menu.hotMenu.getShortcutManager().setActiveContextName(_getContextName(contextName));
@@ -1,4 +1,6 @@
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.for-each.js";
2
4
  import { createDefaultShortcutsList } from "./defaultShortcutsList.mjs";
3
5
  const SHORTCUTS_CONTEXT = 'menu';
4
6
  const SHORTCUTS_GROUP = SHORTCUTS_CONTEXT;
@@ -96,7 +98,7 @@ export function createKeyboardShortcutsCtrl(menu) {
96
98
  /**
97
99
  * Makes the specified context active.
98
100
  *
99
- * @param {string} contextName The context name.
101
+ * @param {string} [contextName] The context name.
100
102
  */
101
103
  function listen(contextName) {
102
104
  menu.hotMenu.getShortcutManager().setActiveContextName(_getContextName(contextName));
@@ -34,19 +34,8 @@ function alignmentItem() {
34
34
  submenu: {
35
35
  items: [{
36
36
  key: `${KEY}:left`,
37
- checkable: true,
38
- ariaLabel() {
39
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
40
- },
41
- ariaChecked() {
42
- return (0, _utils.hasSelectionAClass)(this, 'htLeft');
43
- },
44
37
  name() {
45
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
46
- if ((0, _utils.hasSelectionAClass)(this, 'htLeft')) {
47
- label = (0, _utils.markLabelAsSelected)(label);
48
- }
49
- return label;
38
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
50
39
  },
51
40
  callback() {
52
41
  const selectedRange = this.getSelectedRange();
@@ -60,19 +49,8 @@ function alignmentItem() {
60
49
  disabled: false
61
50
  }, {
62
51
  key: `${KEY}:center`,
63
- checkable: true,
64
- ariaLabel() {
65
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
66
- },
67
- ariaChecked() {
68
- return (0, _utils.hasSelectionAClass)(this, 'htCenter');
69
- },
70
52
  name() {
71
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
72
- if ((0, _utils.hasSelectionAClass)(this, 'htCenter')) {
73
- label = (0, _utils.markLabelAsSelected)(label);
74
- }
75
- return label;
53
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
76
54
  },
77
55
  callback() {
78
56
  const selectedRange = this.getSelectedRange();
@@ -86,19 +64,8 @@ function alignmentItem() {
86
64
  disabled: false
87
65
  }, {
88
66
  key: `${KEY}:right`,
89
- checkable: true,
90
- ariaLabel() {
91
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
92
- },
93
- ariaChecked() {
94
- return (0, _utils.hasSelectionAClass)(this, 'htRight');
95
- },
96
67
  name() {
97
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
98
- if ((0, _utils.hasSelectionAClass)(this, 'htRight')) {
99
- label = (0, _utils.markLabelAsSelected)(label);
100
- }
101
- return label;
68
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
102
69
  },
103
70
  callback() {
104
71
  const selectedRange = this.getSelectedRange();
@@ -112,19 +79,8 @@ function alignmentItem() {
112
79
  disabled: false
113
80
  }, {
114
81
  key: `${KEY}:justify`,
115
- checkable: true,
116
- ariaLabel() {
117
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
118
- },
119
- ariaChecked() {
120
- return (0, _utils.hasSelectionAClass)(this, 'htJustify');
121
- },
122
82
  name() {
123
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
124
- if ((0, _utils.hasSelectionAClass)(this, 'htJustify')) {
125
- label = (0, _utils.markLabelAsSelected)(label);
126
- }
127
- return label;
83
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
128
84
  },
129
85
  callback() {
130
86
  const selectedRange = this.getSelectedRange();
@@ -140,19 +96,8 @@ function alignmentItem() {
140
96
  name: _separator.KEY
141
97
  }, {
142
98
  key: `${KEY}:top`,
143
- checkable: true,
144
- ariaLabel() {
145
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
146
- },
147
- ariaChecked() {
148
- return (0, _utils.hasSelectionAClass)(this, 'htTop');
149
- },
150
99
  name() {
151
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
152
- if ((0, _utils.hasSelectionAClass)(this, 'htTop')) {
153
- label = (0, _utils.markLabelAsSelected)(label);
154
- }
155
- return label;
100
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
156
101
  },
157
102
  callback() {
158
103
  const selectedRange = this.getSelectedRange();
@@ -166,19 +111,8 @@ function alignmentItem() {
166
111
  disabled: false
167
112
  }, {
168
113
  key: `${KEY}:middle`,
169
- checkable: true,
170
- ariaLabel() {
171
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
172
- },
173
- ariaChecked() {
174
- return (0, _utils.hasSelectionAClass)(this, 'htMiddle');
175
- },
176
114
  name() {
177
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
178
- if ((0, _utils.hasSelectionAClass)(this, 'htMiddle')) {
179
- label = (0, _utils.markLabelAsSelected)(label);
180
- }
181
- return label;
115
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
182
116
  },
183
117
  callback() {
184
118
  const selectedRange = this.getSelectedRange();
@@ -192,19 +126,8 @@ function alignmentItem() {
192
126
  disabled: false
193
127
  }, {
194
128
  key: `${KEY}:bottom`,
195
- checkable: true,
196
- ariaLabel() {
197
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
198
- },
199
- ariaChecked() {
200
- return (0, _utils.hasSelectionAClass)(this, 'htBottom');
201
- },
202
129
  name() {
203
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
204
- if ((0, _utils.hasSelectionAClass)(this, 'htBottom')) {
205
- label = (0, _utils.markLabelAsSelected)(label);
206
- }
207
- return label;
130
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
208
131
  },
209
132
  callback() {
210
133
  const selectedRange = this.getSelectedRange();
@@ -1,4 +1,4 @@
1
- import { align, getAlignmentClasses, markLabelAsSelected, hasSelectionAClass } from "../utils.mjs";
1
+ import { align, getAlignmentClasses } from "../utils.mjs";
2
2
  import { KEY as SEPARATOR } from "./separator.mjs";
3
3
  import * as C from "../../../i18n/constants.mjs";
4
4
  export const KEY = 'alignment';
@@ -28,19 +28,8 @@ export default function alignmentItem() {
28
28
  submenu: {
29
29
  items: [{
30
30
  key: `${KEY}:left`,
31
- checkable: true,
32
- ariaLabel() {
33
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
34
- },
35
- ariaChecked() {
36
- return hasSelectionAClass(this, 'htLeft');
37
- },
38
31
  name() {
39
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
40
- if (hasSelectionAClass(this, 'htLeft')) {
41
- label = markLabelAsSelected(label);
42
- }
43
- return label;
32
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
44
33
  },
45
34
  callback() {
46
35
  const selectedRange = this.getSelectedRange();
@@ -54,19 +43,8 @@ export default function alignmentItem() {
54
43
  disabled: false
55
44
  }, {
56
45
  key: `${KEY}:center`,
57
- checkable: true,
58
- ariaLabel() {
59
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
60
- },
61
- ariaChecked() {
62
- return hasSelectionAClass(this, 'htCenter');
63
- },
64
46
  name() {
65
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
66
- if (hasSelectionAClass(this, 'htCenter')) {
67
- label = markLabelAsSelected(label);
68
- }
69
- return label;
47
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
70
48
  },
71
49
  callback() {
72
50
  const selectedRange = this.getSelectedRange();
@@ -80,19 +58,8 @@ export default function alignmentItem() {
80
58
  disabled: false
81
59
  }, {
82
60
  key: `${KEY}:right`,
83
- checkable: true,
84
- ariaLabel() {
85
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
86
- },
87
- ariaChecked() {
88
- return hasSelectionAClass(this, 'htRight');
89
- },
90
61
  name() {
91
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
92
- if (hasSelectionAClass(this, 'htRight')) {
93
- label = markLabelAsSelected(label);
94
- }
95
- return label;
62
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
96
63
  },
97
64
  callback() {
98
65
  const selectedRange = this.getSelectedRange();
@@ -106,19 +73,8 @@ export default function alignmentItem() {
106
73
  disabled: false
107
74
  }, {
108
75
  key: `${KEY}:justify`,
109
- checkable: true,
110
- ariaLabel() {
111
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
112
- },
113
- ariaChecked() {
114
- return hasSelectionAClass(this, 'htJustify');
115
- },
116
76
  name() {
117
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
118
- if (hasSelectionAClass(this, 'htJustify')) {
119
- label = markLabelAsSelected(label);
120
- }
121
- return label;
77
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
122
78
  },
123
79
  callback() {
124
80
  const selectedRange = this.getSelectedRange();
@@ -134,19 +90,8 @@ export default function alignmentItem() {
134
90
  name: SEPARATOR
135
91
  }, {
136
92
  key: `${KEY}:top`,
137
- checkable: true,
138
- ariaLabel() {
139
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
140
- },
141
- ariaChecked() {
142
- return hasSelectionAClass(this, 'htTop');
143
- },
144
93
  name() {
145
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
146
- if (hasSelectionAClass(this, 'htTop')) {
147
- label = markLabelAsSelected(label);
148
- }
149
- return label;
94
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
150
95
  },
151
96
  callback() {
152
97
  const selectedRange = this.getSelectedRange();
@@ -160,19 +105,8 @@ export default function alignmentItem() {
160
105
  disabled: false
161
106
  }, {
162
107
  key: `${KEY}:middle`,
163
- checkable: true,
164
- ariaLabel() {
165
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
166
- },
167
- ariaChecked() {
168
- return hasSelectionAClass(this, 'htMiddle');
169
- },
170
108
  name() {
171
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
172
- if (hasSelectionAClass(this, 'htMiddle')) {
173
- label = markLabelAsSelected(label);
174
- }
175
- return label;
109
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
176
110
  },
177
111
  callback() {
178
112
  const selectedRange = this.getSelectedRange();
@@ -186,19 +120,8 @@ export default function alignmentItem() {
186
120
  disabled: false
187
121
  }, {
188
122
  key: `${KEY}:bottom`,
189
- checkable: true,
190
- ariaLabel() {
191
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
192
- },
193
- ariaChecked() {
194
- return hasSelectionAClass(this, 'htBottom');
195
- },
196
123
  name() {
197
- let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
198
- if (hasSelectionAClass(this, 'htBottom')) {
199
- label = markLabelAsSelected(label);
200
- }
201
- return label;
124
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
202
125
  },
203
126
  callback() {
204
127
  const selectedRange = this.getSelectedRange();
@@ -6,7 +6,6 @@ exports.checkSelectionConsistency = checkSelectionConsistency;
6
6
  exports.getAlignmentClasses = getAlignmentClasses;
7
7
  exports.getAlignmentComparatorByClass = getAlignmentComparatorByClass;
8
8
  exports.getDocumentOffsetByElement = getDocumentOffsetByElement;
9
- exports.hasSelectionAClass = hasSelectionAClass;
10
9
  exports.markLabelAsSelected = markLabelAsSelected;
11
10
  exports.prepareHorizontalAlignClass = prepareHorizontalAlignClass;
12
11
  exports.prepareVerticalAlignClass = prepareVerticalAlignClass;
@@ -168,13 +167,4 @@ function getAlignmentComparatorByClass(htClassName) {
168
167
  const className = this.getCellMeta(row, col).className;
169
168
  return className && className.indexOf(htClassName) !== -1;
170
169
  };
171
- }
172
-
173
- /**
174
- * @param {object} hot Handsontable instance.
175
- * @param {string} htClassName The class name to check.
176
- * @returns {boolean} Returns true if at least one cell has the provided class name.
177
- */
178
- function hasSelectionAClass(hot, htClassName) {
179
- return checkSelectionConsistency(hot.getSelectedRange(), getAlignmentComparatorByClass(htClassName).bind(hot));
180
170
  }
@@ -156,13 +156,4 @@ export function getAlignmentComparatorByClass(htClassName) {
156
156
  const className = this.getCellMeta(row, col).className;
157
157
  return className && className.indexOf(htClassName) !== -1;
158
158
  };
159
- }
160
-
161
- /**
162
- * @param {object} hot Handsontable instance.
163
- * @param {string} htClassName The class name to check.
164
- * @returns {boolean} Returns true if at least one cell has the provided class name.
165
- */
166
- export function hasSelectionAClass(hot, htClassName) {
167
- return checkSelectionConsistency(hot.getSelectedRange(), getAlignmentComparatorByClass(htClassName).bind(hot));
168
159
  }
@@ -9,6 +9,7 @@ export interface DetailedSettings {
9
9
  copyColumnHeaders?: boolean;
10
10
  copyColumnGroupHeaders?: boolean;
11
11
  copyColumnHeadersOnly?: boolean;
12
+ uiContainer?: HTMLElement;
12
13
  }
13
14
 
14
15
  export type Settings = boolean | DetailedSettings;
@@ -3,8 +3,11 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
+ require("core-js/modules/esnext.iterator.constructor.js");
7
+ require("core-js/modules/esnext.iterator.filter.js");
8
+ require("core-js/modules/esnext.iterator.map.js");
6
9
  var _base = require("../base");
7
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
10
+ var _hooks = require("../../core/hooks");
8
11
  var _SheetClip = require("../../3rdparty/SheetClip");
9
12
  var _array = require("../../helpers/array");
10
13
  var _string = require("../../helpers/string");
@@ -28,14 +31,14 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
28
31
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
29
32
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
30
33
  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"); }
31
- _pluginHooks.default.getSingleton().register('afterCopyLimit');
32
- _pluginHooks.default.getSingleton().register('modifyCopyableRange');
33
- _pluginHooks.default.getSingleton().register('beforeCut');
34
- _pluginHooks.default.getSingleton().register('afterCut');
35
- _pluginHooks.default.getSingleton().register('beforePaste');
36
- _pluginHooks.default.getSingleton().register('afterPaste');
37
- _pluginHooks.default.getSingleton().register('beforeCopy');
38
- _pluginHooks.default.getSingleton().register('afterCopy');
34
+ _hooks.Hooks.getSingleton().register('afterCopyLimit');
35
+ _hooks.Hooks.getSingleton().register('modifyCopyableRange');
36
+ _hooks.Hooks.getSingleton().register('beforeCut');
37
+ _hooks.Hooks.getSingleton().register('afterCut');
38
+ _hooks.Hooks.getSingleton().register('beforePaste');
39
+ _hooks.Hooks.getSingleton().register('afterPaste');
40
+ _hooks.Hooks.getSingleton().register('beforeCopy');
41
+ _hooks.Hooks.getSingleton().register('afterCopy');
39
42
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'copyPaste';
40
43
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 80;
41
44
  const SETTING_KEYS = ['fragmentSelection'];
@@ -206,6 +209,16 @@ class CopyPaste extends _base.BasePlugin {
206
209
  static get PLUGIN_PRIORITY() {
207
210
  return PLUGIN_PRIORITY;
208
211
  }
212
+ static get DEFAULT_SETTINGS() {
213
+ return {
214
+ pasteMode: 'overwrite',
215
+ rowsLimit: Infinity,
216
+ columnsLimit: Infinity,
217
+ copyColumnHeaders: false,
218
+ copyColumnGroupHeaders: false,
219
+ copyColumnHeadersOnly: false
220
+ };
221
+ }
209
222
  /**
210
223
  * Checks if the [`CopyPaste`](#copypaste) plugin is enabled.
211
224
  *
@@ -222,23 +235,19 @@ class CopyPaste extends _base.BasePlugin {
222
235
  * Enables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
223
236
  */
224
237
  enablePlugin() {
225
- var _this = this;
238
+ var _this$getSetting,
239
+ _this$getSetting2,
240
+ _this = this;
226
241
  if (this.enabled) {
227
242
  return;
228
243
  }
229
- const {
230
- [PLUGIN_KEY]: settings
231
- } = this.hot.getSettings();
232
- if (typeof settings === 'object') {
233
- var _settings$pasteMode, _settings$uiContainer;
234
- this.pasteMode = (_settings$pasteMode = settings.pasteMode) !== null && _settings$pasteMode !== void 0 ? _settings$pasteMode : this.pasteMode;
235
- this.rowsLimit = isNaN(settings.rowsLimit) ? this.rowsLimit : settings.rowsLimit;
236
- this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;
237
- _classPrivateFieldSet(_enableCopyColumnHeaders, this, !!settings.copyColumnHeaders);
238
- _classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, !!settings.copyColumnGroupHeaders);
239
- _classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, !!settings.copyColumnHeadersOnly);
240
- this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
241
- }
244
+ this.pasteMode = (_this$getSetting = this.getSetting('pasteMode')) !== null && _this$getSetting !== void 0 ? _this$getSetting : this.pasteMode;
245
+ this.rowsLimit = isNaN(this.getSetting('rowsLimit')) ? this.rowsLimit : this.getSetting('rowsLimit');
246
+ this.columnsLimit = isNaN(this.getSetting('columnsLimit')) ? this.columnsLimit : this.getSetting('columnsLimit');
247
+ _classPrivateFieldSet(_enableCopyColumnHeaders, this, this.getSetting('copyColumnHeaders'));
248
+ _classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, this.getSetting('copyColumnGroupHeaders'));
249
+ _classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, this.getSetting('copyColumnHeadersOnly'));
250
+ this.uiContainer = (_this$getSetting2 = this.getSetting('uiContainer')) !== null && _this$getSetting2 !== void 0 ? _this$getSetting2 : this.uiContainer;
242
251
  this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CopyPaste_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));
243
252
  this.addHook('afterSelection', function () {
244
253
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -1,5 +1,8 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
+ import "core-js/modules/esnext.iterator.constructor.js";
4
+ import "core-js/modules/esnext.iterator.filter.js";
5
+ import "core-js/modules/esnext.iterator.map.js";
3
6
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
4
7
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
5
8
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -10,7 +13,7 @@ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
10
13
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
11
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"); }
12
15
  import { BasePlugin } from "../base/index.mjs";
13
- import Hooks from "../../pluginHooks.mjs";
16
+ import { Hooks } from "../../core/hooks/index.mjs";
14
17
  import { stringify, parse } from "../../3rdparty/SheetClip/index.mjs";
15
18
  import { arrayEach } from "../../helpers/array.mjs";
16
19
  import { sanitize } from "../../helpers/string.mjs";
@@ -202,6 +205,16 @@ export class CopyPaste extends BasePlugin {
202
205
  static get PLUGIN_PRIORITY() {
203
206
  return PLUGIN_PRIORITY;
204
207
  }
208
+ static get DEFAULT_SETTINGS() {
209
+ return {
210
+ pasteMode: 'overwrite',
211
+ rowsLimit: Infinity,
212
+ columnsLimit: Infinity,
213
+ copyColumnHeaders: false,
214
+ copyColumnGroupHeaders: false,
215
+ copyColumnHeadersOnly: false
216
+ };
217
+ }
205
218
  /**
206
219
  * Checks if the [`CopyPaste`](#copypaste) plugin is enabled.
207
220
  *
@@ -218,23 +231,19 @@ export class CopyPaste extends BasePlugin {
218
231
  * Enables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
219
232
  */
220
233
  enablePlugin() {
221
- var _this = this;
234
+ var _this$getSetting,
235
+ _this$getSetting2,
236
+ _this = this;
222
237
  if (this.enabled) {
223
238
  return;
224
239
  }
225
- const {
226
- [PLUGIN_KEY]: settings
227
- } = this.hot.getSettings();
228
- if (typeof settings === 'object') {
229
- var _settings$pasteMode, _settings$uiContainer;
230
- this.pasteMode = (_settings$pasteMode = settings.pasteMode) !== null && _settings$pasteMode !== void 0 ? _settings$pasteMode : this.pasteMode;
231
- this.rowsLimit = isNaN(settings.rowsLimit) ? this.rowsLimit : settings.rowsLimit;
232
- this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;
233
- _classPrivateFieldSet(_enableCopyColumnHeaders, this, !!settings.copyColumnHeaders);
234
- _classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, !!settings.copyColumnGroupHeaders);
235
- _classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, !!settings.copyColumnHeadersOnly);
236
- this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
237
- }
240
+ this.pasteMode = (_this$getSetting = this.getSetting('pasteMode')) !== null && _this$getSetting !== void 0 ? _this$getSetting : this.pasteMode;
241
+ this.rowsLimit = isNaN(this.getSetting('rowsLimit')) ? this.rowsLimit : this.getSetting('rowsLimit');
242
+ this.columnsLimit = isNaN(this.getSetting('columnsLimit')) ? this.columnsLimit : this.getSetting('columnsLimit');
243
+ _classPrivateFieldSet(_enableCopyColumnHeaders, this, this.getSetting('copyColumnHeaders'));
244
+ _classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, this.getSetting('copyColumnGroupHeaders'));
245
+ _classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, this.getSetting('copyColumnHeadersOnly'));
246
+ this.uiContainer = (_this$getSetting2 = this.getSetting('uiContainer')) !== null && _this$getSetting2 !== void 0 ? _this$getSetting2 : this.uiContainer;
238
247
  this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CopyPaste_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));
239
248
  this.addHook('afterSelection', function () {
240
249
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -14,6 +14,8 @@ exports.hasStartEndTypeOptions = hasStartEndTypeOptions;
14
14
  exports.markSelected = markSelected;
15
15
  exports.normalizeBorder = normalizeBorder;
16
16
  exports.toInlinePropName = toInlinePropName;
17
+ require("core-js/modules/esnext.iterator.constructor.js");
18
+ require("core-js/modules/esnext.iterator.some.js");
17
19
  var _object = require("../../helpers/object");
18
20
  var _mixed = require("../../helpers/mixed");
19
21
  var _array = require("../../helpers/array");
@@ -1,3 +1,5 @@
1
+ import "core-js/modules/esnext.iterator.constructor.js";
2
+ import "core-js/modules/esnext.iterator.some.js";
1
3
  import { hasOwnProperty, isObject } from "../../helpers/object.mjs";
2
4
  import { isDefined } from "../../helpers/mixed.mjs";
3
5
  import { arrayEach } from "../../helpers/array.mjs";
@@ -8,7 +8,8 @@ export interface SeparatorObject {
8
8
 
9
9
  export interface DetailedSettings {
10
10
  callback?: (key: string, selection: Selection[], clickEvent: MouseEvent) => void;
11
- items: PredefinedMenuItemKey[] | MenuConfig;
11
+ uiContainer?: HTMLElement,
12
+ items?: PredefinedMenuItemKey[] | MenuConfig;
12
13
  }
13
14
 
14
15
  export type Settings = boolean | PredefinedMenuItemKey[] | DetailedSettings;