handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203

Sign up to get free protection for your applications and to get access to all the features.
Files changed (392) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
  5. package/3rdparty/walkontable/src/calculator/index.js +1 -2
  6. package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
  7. package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
  8. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
  9. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  10. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  11. package/3rdparty/walkontable/src/core/_base.js +29 -23
  12. package/3rdparty/walkontable/src/core/_base.mjs +29 -23
  13. package/3rdparty/walkontable/src/core/clone.js +1 -0
  14. package/3rdparty/walkontable/src/core/clone.mjs +1 -0
  15. package/3rdparty/walkontable/src/core/core.js +2 -0
  16. package/3rdparty/walkontable/src/core/core.mjs +2 -0
  17. package/3rdparty/walkontable/src/facade/core.js +12 -6
  18. package/3rdparty/walkontable/src/facade/core.mjs +12 -6
  19. package/3rdparty/walkontable/src/index.js +0 -1
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +8 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
  23. package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
  24. package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
  25. package/3rdparty/walkontable/src/overlay/index.js +2 -0
  26. package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
  27. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
  28. package/3rdparty/walkontable/src/overlay/top.js +9 -8
  29. package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
  30. package/3rdparty/walkontable/src/overlays.js +10 -26
  31. package/3rdparty/walkontable/src/overlays.mjs +10 -26
  32. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  33. package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
  34. package/3rdparty/walkontable/src/renderer/index.js +4 -2
  35. package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
  36. package/3rdparty/walkontable/src/renderer/table.js +13 -4
  37. package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
  38. package/3rdparty/walkontable/src/scroll.js +46 -37
  39. package/3rdparty/walkontable/src/scroll.mjs +46 -37
  40. package/3rdparty/walkontable/src/selection/border/border.js +52 -58
  41. package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
  42. package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
  43. package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
  44. package/3rdparty/walkontable/src/selection/index.js +6 -4
  45. package/3rdparty/walkontable/src/selection/index.mjs +1 -1
  46. package/3rdparty/walkontable/src/selection/manager.js +3 -0
  47. package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
  48. package/3rdparty/walkontable/src/selection/scanner.js +46 -11
  49. package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
  50. package/3rdparty/walkontable/src/settings.js +8 -9
  51. package/3rdparty/walkontable/src/settings.mjs +8 -9
  52. package/3rdparty/walkontable/src/table/master.js +1 -1
  53. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  54. package/3rdparty/walkontable/src/table.js +25 -36
  55. package/3rdparty/walkontable/src/table.mjs +25 -36
  56. package/3rdparty/walkontable/src/types.js +1 -0
  57. package/3rdparty/walkontable/src/types.mjs +1 -0
  58. package/3rdparty/walkontable/src/utils/column.js +1 -43
  59. package/3rdparty/walkontable/src/utils/column.mjs +1 -43
  60. package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
  61. package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
  62. package/3rdparty/walkontable/src/viewport.js +94 -91
  63. package/3rdparty/walkontable/src/viewport.mjs +95 -92
  64. package/CHANGELOG.md +36 -0
  65. package/README.md +1 -1
  66. package/base.js +4 -4
  67. package/base.mjs +3 -3
  68. package/core/focusCatcher/focusDetector.js +1 -0
  69. package/core/focusCatcher/focusDetector.mjs +1 -0
  70. package/core/hooks/bucket.js +184 -0
  71. package/core/hooks/bucket.mjs +180 -0
  72. package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
  73. package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
  74. package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
  75. package/core/hooks/index.js +385 -0
  76. package/core/hooks/index.mjs +381 -0
  77. package/core/index.js +2 -0
  78. package/core.d.ts +5 -3
  79. package/core.js +77 -35
  80. package/core.mjs +69 -27
  81. package/dataMap/dataMap.js +3 -0
  82. package/dataMap/dataMap.mjs +3 -0
  83. package/dataMap/dataSource.js +2 -0
  84. package/dataMap/dataSource.mjs +2 -0
  85. package/dataMap/metaManager/index.js +2 -0
  86. package/dataMap/metaManager/index.mjs +2 -0
  87. package/dataMap/metaManager/metaSchema.js +91 -5
  88. package/dataMap/metaManager/metaSchema.mjs +91 -5
  89. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
  90. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  91. package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
  92. package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
  93. package/dist/handsontable.css +84 -72
  94. package/dist/handsontable.full.css +317 -304
  95. package/dist/handsontable.full.js +14826 -7294
  96. package/dist/handsontable.full.min.css +15 -10
  97. package/dist/handsontable.full.min.js +262 -69
  98. package/dist/handsontable.js +7826 -5552
  99. package/dist/handsontable.min.css +10 -6
  100. package/dist/handsontable.min.js +33 -33
  101. package/dist/languages/all.js +1 -1
  102. package/dist/languages/ar-AR.js +1 -1
  103. package/dist/languages/cs-CZ.js +1 -1
  104. package/dist/languages/de-CH.js +1 -1
  105. package/dist/languages/de-DE.js +1 -1
  106. package/dist/languages/en-US.js +1 -1
  107. package/dist/languages/es-MX.js +1 -1
  108. package/dist/languages/fr-FR.js +1 -1
  109. package/dist/languages/hr-HR.js +1 -1
  110. package/dist/languages/it-IT.js +1 -1
  111. package/dist/languages/ja-JP.js +1 -1
  112. package/dist/languages/ko-KR.js +1 -1
  113. package/dist/languages/lv-LV.js +1 -1
  114. package/dist/languages/nb-NO.js +1 -1
  115. package/dist/languages/nl-NL.js +1 -1
  116. package/dist/languages/pl-PL.js +1 -1
  117. package/dist/languages/pt-BR.js +1 -1
  118. package/dist/languages/ru-RU.js +1 -1
  119. package/dist/languages/sr-SP.js +1 -1
  120. package/dist/languages/zh-CN.js +1 -1
  121. package/dist/languages/zh-TW.js +1 -1
  122. package/editorManager.js +2 -2
  123. package/editorManager.mjs +2 -2
  124. package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
  125. package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
  126. package/editors/baseEditor/baseEditor.js +25 -18
  127. package/editors/baseEditor/baseEditor.mjs +26 -19
  128. package/editors/dateEditor/dateEditor.js +9 -0
  129. package/editors/dateEditor/dateEditor.mjs +10 -1
  130. package/editors/dropdownEditor/dropdownEditor.js +4 -3
  131. package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
  132. package/editors/handsontableEditor/handsontableEditor.js +36 -2
  133. package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
  134. package/editors/passwordEditor/passwordEditor.js +18 -0
  135. package/editors/passwordEditor/passwordEditor.mjs +18 -0
  136. package/editors/registry.js +2 -2
  137. package/editors/registry.mjs +1 -1
  138. package/editors/selectEditor/selectEditor.js +20 -9
  139. package/editors/selectEditor/selectEditor.mjs +20 -9
  140. package/editors/textEditor/textEditor.js +5 -12
  141. package/editors/textEditor/textEditor.mjs +6 -13
  142. package/focusManager.js +5 -7
  143. package/focusManager.mjs +5 -7
  144. package/helpers/array.js +2 -0
  145. package/helpers/array.mjs +2 -0
  146. package/helpers/data.js +3 -0
  147. package/helpers/data.mjs +3 -0
  148. package/helpers/dom/element.js +39 -18
  149. package/helpers/dom/element.mjs +38 -17
  150. package/helpers/mixed.js +3 -3
  151. package/helpers/mixed.mjs +3 -3
  152. package/helpers/moves.js +3 -0
  153. package/helpers/moves.mjs +3 -0
  154. package/helpers/number.js +1 -0
  155. package/helpers/number.mjs +1 -0
  156. package/helpers/object.js +2 -0
  157. package/helpers/object.mjs +2 -0
  158. package/helpers/themes.js +17 -0
  159. package/helpers/themes.mjs +13 -0
  160. package/i18n/index.js +2 -0
  161. package/i18n/languages/index.d.ts +8 -0
  162. package/i18n/languages/ja-JP.d.ts +1 -1
  163. package/i18n/phraseFormatters/substituteVariables.js +1 -0
  164. package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
  165. package/index.d.ts +9 -1
  166. package/languages/all.js +1 -1
  167. package/languages/ar-AR.js +1 -1
  168. package/languages/cs-CZ.js +1 -1
  169. package/languages/de-CH.js +1 -1
  170. package/languages/de-DE.js +1 -1
  171. package/languages/en-US.js +1 -1
  172. package/languages/es-MX.js +1 -1
  173. package/languages/fr-FR.js +1 -1
  174. package/languages/hr-HR.js +1 -1
  175. package/languages/index.js +1 -1
  176. package/languages/it-IT.js +1 -1
  177. package/languages/ja-JP.js +1 -1
  178. package/languages/ko-KR.js +1 -1
  179. package/languages/lv-LV.js +1 -1
  180. package/languages/nb-NO.js +1 -1
  181. package/languages/nl-NL.js +1 -1
  182. package/languages/pl-PL.js +1 -1
  183. package/languages/pt-BR.js +1 -1
  184. package/languages/ru-RU.js +1 -1
  185. package/languages/sr-SP.js +1 -1
  186. package/languages/zh-CN.js +1 -1
  187. package/languages/zh-TW.js +1 -1
  188. package/package.json +22 -7
  189. package/plugins/autoColumnSize/autoColumnSize.js +22 -27
  190. package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
  191. package/plugins/autoRowSize/autoRowSize.js +20 -22
  192. package/plugins/autoRowSize/autoRowSize.mjs +21 -23
  193. package/plugins/autofill/autofill.js +4 -5
  194. package/plugins/autofill/autofill.mjs +1 -1
  195. package/plugins/base/base.d.ts +1 -1
  196. package/plugins/base/base.js +41 -0
  197. package/plugins/base/base.mjs +42 -1
  198. package/plugins/base/index.js +2 -1
  199. package/plugins/base/index.mjs +1 -1
  200. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
  201. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
  202. package/plugins/columnSorting/columnSorting.js +5 -4
  203. package/plugins/columnSorting/columnSorting.mjs +3 -1
  204. package/plugins/columnSorting/columnStatesManager.js +1 -0
  205. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  206. package/plugins/columnSorting/utils.js +3 -0
  207. package/plugins/columnSorting/utils.mjs +3 -0
  208. package/plugins/columnSummary/endpoints.js +3 -0
  209. package/plugins/columnSummary/endpoints.mjs +3 -0
  210. package/plugins/comments/commentEditor.js +9 -0
  211. package/plugins/comments/commentEditor.mjs +9 -0
  212. package/plugins/comments/comments.js +24 -18
  213. package/plugins/comments/comments.mjs +26 -20
  214. package/plugins/comments/editorResizeObserver.js +2 -0
  215. package/plugins/comments/editorResizeObserver.mjs +2 -0
  216. package/plugins/contextMenu/contextMenu.d.ts +2 -1
  217. package/plugins/contextMenu/contextMenu.js +6 -7
  218. package/plugins/contextMenu/contextMenu.mjs +1 -1
  219. package/plugins/contextMenu/menu/index.js +2 -0
  220. package/plugins/contextMenu/menu/menu.js +10 -5
  221. package/plugins/contextMenu/menu/menu.mjs +11 -6
  222. package/plugins/contextMenu/menu/positioner.js +4 -2
  223. package/plugins/contextMenu/menu/positioner.mjs +4 -2
  224. package/plugins/contextMenu/menu/shortcuts.js +3 -1
  225. package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
  226. package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
  227. package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
  228. package/plugins/contextMenu/utils.js +0 -10
  229. package/plugins/contextMenu/utils.mjs +0 -9
  230. package/plugins/copyPaste/copyPaste.d.ts +1 -0
  231. package/plugins/copyPaste/copyPaste.js +32 -23
  232. package/plugins/copyPaste/copyPaste.mjs +24 -15
  233. package/plugins/customBorders/utils.js +2 -0
  234. package/plugins/customBorders/utils.mjs +2 -0
  235. package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
  236. package/plugins/dropdownMenu/dropdownMenu.js +6 -7
  237. package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
  238. package/plugins/exportFile/types/csv.js +1 -0
  239. package/plugins/exportFile/types/csv.mjs +1 -0
  240. package/plugins/filters/component/condition.js +2 -0
  241. package/plugins/filters/component/condition.mjs +2 -0
  242. package/plugins/filters/component/operators.js +2 -0
  243. package/plugins/filters/component/operators.mjs +2 -0
  244. package/plugins/filters/component/value.js +3 -0
  245. package/plugins/filters/component/value.mjs +3 -0
  246. package/plugins/filters/conditionCollection.js +3 -0
  247. package/plugins/filters/conditionCollection.mjs +3 -0
  248. package/plugins/filters/conditionUpdateObserver.js +2 -0
  249. package/plugins/filters/conditionUpdateObserver.mjs +2 -0
  250. package/plugins/filters/filters.js +43 -13
  251. package/plugins/filters/filters.mjs +43 -13
  252. package/plugins/filters/logicalOperations/conjunction.js +2 -0
  253. package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
  254. package/plugins/filters/logicalOperations/disjunction.js +2 -0
  255. package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
  256. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
  257. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
  258. package/plugins/filters/menu/focusController.js +38 -14
  259. package/plugins/filters/menu/focusController.mjs +38 -14
  260. package/plugins/filters/ui/multipleSelect.js +10 -0
  261. package/plugins/filters/ui/multipleSelect.mjs +10 -0
  262. package/plugins/formulas/engine/register.js +3 -0
  263. package/plugins/formulas/engine/register.mjs +3 -0
  264. package/plugins/formulas/engine/settings.js +3 -0
  265. package/plugins/formulas/engine/settings.mjs +3 -0
  266. package/plugins/formulas/formulas.js +12 -7
  267. package/plugins/formulas/formulas.mjs +6 -1
  268. package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
  269. package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
  270. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
  271. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
  272. package/plugins/hiddenColumns/hiddenColumns.js +22 -30
  273. package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
  274. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
  275. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
  276. package/plugins/hiddenRows/hiddenRows.js +21 -29
  277. package/plugins/hiddenRows/hiddenRows.mjs +17 -25
  278. package/plugins/index.d.ts +3 -0
  279. package/plugins/index.js +3 -0
  280. package/plugins/index.mjs +3 -1
  281. package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
  282. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
  283. package/plugins/manualColumnMove/manualColumnMove.js +6 -6
  284. package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
  285. package/plugins/manualColumnResize/manualColumnResize.js +26 -12
  286. package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
  287. package/plugins/manualRowMove/manualRowMove.js +8 -6
  288. package/plugins/manualRowMove/manualRowMove.mjs +6 -4
  289. package/plugins/manualRowResize/manualRowResize.js +3 -2
  290. package/plugins/manualRowResize/manualRowResize.mjs +4 -3
  291. package/plugins/mergeCells/cellsCollection.js +19 -3
  292. package/plugins/mergeCells/cellsCollection.mjs +20 -4
  293. package/plugins/mergeCells/mergeCells.d.ts +6 -2
  294. package/plugins/mergeCells/mergeCells.js +84 -56
  295. package/plugins/mergeCells/mergeCells.mjs +82 -54
  296. package/plugins/mergeCells/renderer.js +13 -3
  297. package/plugins/mergeCells/renderer.mjs +13 -3
  298. package/plugins/multiColumnSorting/domHelpers.js +2 -0
  299. package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
  300. package/plugins/nestedHeaders/nestedHeaders.js +63 -16
  301. package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
  302. package/plugins/nestedHeaders/stateManager/index.js +1 -0
  303. package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
  304. package/plugins/nestedRows/nestedRows.js +3 -0
  305. package/plugins/nestedRows/nestedRows.mjs +3 -0
  306. package/plugins/nestedRows/ui/headers.js +7 -1
  307. package/plugins/nestedRows/ui/headers.mjs +7 -1
  308. package/plugins/nestedRows/utils/rowMoveController.js +4 -0
  309. package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
  310. package/plugins/persistentState/persistentState.js +4 -4
  311. package/plugins/persistentState/persistentState.mjs +1 -1
  312. package/plugins/stretchColumns/calculator.js +162 -0
  313. package/plugins/stretchColumns/calculator.mjs +158 -0
  314. package/plugins/stretchColumns/index.d.ts +1 -0
  315. package/plugins/stretchColumns/index.js +7 -0
  316. package/plugins/stretchColumns/index.mjs +1 -0
  317. package/plugins/stretchColumns/strategies/_base.js +85 -0
  318. package/plugins/stretchColumns/strategies/_base.mjs +81 -0
  319. package/plugins/stretchColumns/strategies/all.js +71 -0
  320. package/plugins/stretchColumns/strategies/all.mjs +67 -0
  321. package/plugins/stretchColumns/strategies/last.js +79 -0
  322. package/plugins/stretchColumns/strategies/last.mjs +75 -0
  323. package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
  324. package/plugins/stretchColumns/stretchColumns.js +222 -0
  325. package/plugins/stretchColumns/stretchColumns.mjs +218 -0
  326. package/plugins/trimRows/trimRows.js +2 -0
  327. package/plugins/trimRows/trimRows.mjs +2 -0
  328. package/plugins/undoRedo/undoRedo.js +9 -5
  329. package/plugins/undoRedo/undoRedo.mjs +8 -3
  330. package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
  331. package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
  332. package/selection/index.js +2 -0
  333. package/selection/range.js +2 -0
  334. package/selection/range.mjs +2 -0
  335. package/selection/selection.js +7 -2
  336. package/selection/selection.mjs +7 -2
  337. package/selection/utils.js +2 -0
  338. package/selection/utils.mjs +2 -0
  339. package/settings.d.ts +4 -1
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
  342. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
  343. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
  344. package/shortcutContexts/commands/index.js +2 -0
  345. package/shortcutContexts/commands/index.mjs +2 -0
  346. package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
  347. package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
  348. package/shortcutContexts/index.js +2 -0
  349. package/shortcutContexts/index.mjs +2 -0
  350. package/shortcuts/context.js +3 -0
  351. package/shortcuts/context.mjs +3 -0
  352. package/shortcuts/recorder.js +3 -3
  353. package/shortcuts/recorder.mjs +3 -3
  354. package/shortcuts/utils.js +1 -0
  355. package/shortcuts/utils.mjs +1 -0
  356. package/styles/handsontable.css +2307 -0
  357. package/styles/handsontable.min.css +30 -0
  358. package/styles/ht-theme-horizon.css +607 -0
  359. package/styles/ht-theme-horizon.min.css +30 -0
  360. package/styles/ht-theme-main.css +613 -0
  361. package/styles/ht-theme-main.min.css +30 -0
  362. package/tableView.js +205 -33
  363. package/tableView.mjs +206 -34
  364. package/translations/changesObservable/observable.js +2 -0
  365. package/translations/changesObservable/observable.mjs +2 -0
  366. package/translations/index.js +2 -0
  367. package/translations/indexMapper.js +4 -0
  368. package/translations/indexMapper.mjs +4 -0
  369. package/translations/mapCollections/index.js +2 -0
  370. package/translations/mapCollections/mapCollection.js +2 -0
  371. package/translations/mapCollections/mapCollection.mjs +2 -0
  372. package/translations/maps/index.js +2 -0
  373. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  374. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  375. package/translations/maps/utils/actionsOnIndexes.js +2 -0
  376. package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
  377. package/translations/maps/utils/physicallyIndexed.js +1 -0
  378. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  379. package/utils/autoResize.js +11 -3
  380. package/utils/autoResize.mjs +11 -3
  381. package/utils/dataStructures/priorityMap.js +1 -0
  382. package/utils/dataStructures/priorityMap.mjs +1 -0
  383. package/utils/dataStructures/uniqueMap.js +2 -0
  384. package/utils/dataStructures/uniqueMap.mjs +2 -0
  385. package/utils/ghostTable.js +7 -3
  386. package/utils/ghostTable.mjs +7 -3
  387. package/utils/parseTable.js +4 -0
  388. package/utils/parseTable.mjs +4 -0
  389. package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
  390. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  391. package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
  392. package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -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;