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
@@ -1,5 +1,7 @@
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.for-each.js";
3
5
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
4
6
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
5
7
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -8,7 +10,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
8
10
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
11
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
10
12
  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"); }
11
- import { defineGetter, objectEach } from "../../helpers/object.mjs";
13
+ import { defineGetter, objectEach, isObject } from "../../helpers/object.mjs";
12
14
  import { arrayEach } from "../../helpers/array.mjs";
13
15
  import { getPluginsNames, hasPlugin } from "../registry.mjs";
14
16
  import { hasCellType } from "../../cellTypes/registry.mjs";
@@ -17,6 +19,7 @@ import { hasRenderer } from "../../renderers/registry.mjs";
17
19
  import { hasValidator } from "../../validators/registry.mjs";
18
20
  import EventManager from "../../eventManager.mjs";
19
21
  const DEPS_TYPE_CHECKERS = new Map([['plugin', hasPlugin], ['cell-type', hasCellType], ['editor', hasEditor], ['renderer', hasRenderer], ['validator', hasValidator]]);
22
+ export const defaultMainSettingSymbol = Symbol('mainSetting');
20
23
  export const PLUGIN_KEY = 'base';
21
24
  const missingDepsMsgs = [];
22
25
  let initializedPlugins = null;
@@ -45,6 +48,15 @@ export class BasePlugin {
45
48
  return [this.PLUGIN_KEY];
46
49
  }
47
50
 
51
+ /**
52
+ * The `DEFAULT_SETTINGS` getter defines the plugin default settings.
53
+ *
54
+ * @returns {object}
55
+ */
56
+ static get DEFAULT_SETTINGS() {
57
+ return {};
58
+ }
59
+
48
60
  /**
49
61
  * The instance of the {@link EventManager} class.
50
62
  *
@@ -145,6 +157,7 @@ export class BasePlugin {
145
157
  if (isAllPluginsAreInitialized) {
146
158
  if (missingDepsMsgs.length > 0) {
147
159
  const errorMsg = [`${missingDepsMsgs.join('\n')}\n`, 'You have to import and register them manually.'].join('');
160
+ missingDepsMsgs.length = 0;
148
161
  throw new Error(errorMsg);
149
162
  }
150
163
  this.hot.runHooks('afterPluginsInitialized');
@@ -169,6 +182,34 @@ export class BasePlugin {
169
182
  this.enabled = false;
170
183
  }
171
184
 
185
+ /**
186
+ * Gets the plugin settings. If there is no setting under the provided key, it returns the default setting
187
+ * provided by the DEFAULT_SETTINGS static property of the class.
188
+ *
189
+ * @param {string} [settingName] The setting name. If the setting name is not provided, it returns
190
+ * the whole plugin's settings object.
191
+ * @returns {*}
192
+ */
193
+ getSetting(settingName) {
194
+ const pluginSettings = this.hot.getSettings()[this.constructor.PLUGIN_KEY];
195
+ if (settingName === undefined) {
196
+ return pluginSettings;
197
+ }
198
+ const defaultSettings = this.constructor.DEFAULT_SETTINGS;
199
+ if ((Array.isArray(pluginSettings) || isObject(pluginSettings)) && defaultSettings[defaultMainSettingSymbol] === settingName) {
200
+ var _pluginSettings$setti;
201
+ if (Array.isArray(pluginSettings)) {
202
+ return pluginSettings;
203
+ }
204
+ return (_pluginSettings$setti = pluginSettings[settingName]) !== null && _pluginSettings$setti !== void 0 ? _pluginSettings$setti : defaultSettings[settingName];
205
+ }
206
+ if (isObject(pluginSettings)) {
207
+ var _pluginSettings$setti2;
208
+ return (_pluginSettings$setti2 = pluginSettings[settingName]) !== null && _pluginSettings$setti2 !== void 0 ? _pluginSettings$setti2 : defaultSettings[settingName];
209
+ }
210
+ return defaultSettings[settingName];
211
+ }
212
+
172
213
  /**
173
214
  * Add listener to plugin hooks system.
174
215
  *
@@ -3,4 +3,5 @@
3
3
  exports.__esModule = true;
4
4
  var _base = require("./base");
5
5
  exports.PLUGIN_KEY = _base.PLUGIN_KEY;
6
- exports.BasePlugin = _base.BasePlugin;
6
+ exports.BasePlugin = _base.BasePlugin;
7
+ exports.defaultMainSettingSymbol = _base.defaultMainSettingSymbol;
@@ -1 +1 @@
1
- export { PLUGIN_KEY, BasePlugin } from "./base.mjs";
1
+ export { PLUGIN_KEY, BasePlugin, defaultMainSettingSymbol } from "./base.mjs";
@@ -88,14 +88,11 @@ class BindRowsWithHeaders extends _base.BasePlugin {
88
88
  * Enables the plugin functionality for this Handsontable instance.
89
89
  */
90
90
  enablePlugin() {
91
+ var _bindTypeToMapStrateg;
91
92
  if (this.enabled) {
92
93
  return;
93
94
  }
94
- let bindType = this.hot.getSettings()[PLUGIN_KEY];
95
- if (typeof bindType !== 'string') {
96
- bindType = DEFAULT_BIND;
97
- }
98
- const MapStrategy = bindTypeToMapStrategy.get(bindType);
95
+ const MapStrategy = (_bindTypeToMapStrateg = bindTypeToMapStrategy.get(this.getSetting())) !== null && _bindTypeToMapStrateg !== void 0 ? _bindTypeToMapStrateg : bindTypeToMapStrategy.get(DEFAULT_BIND);
99
96
  this.headerIndexes = this.hot.rowIndexMapper.registerMap('bindRowsWithHeaders', new MapStrategy());
100
97
  this.addHook('modifyRowHeader', row => _assertClassBrand(_BindRowsWithHeaders_brand, this, _onModifyRowHeader).call(this, row));
101
98
  super.enablePlugin();
@@ -84,14 +84,11 @@ export class BindRowsWithHeaders extends BasePlugin {
84
84
  * Enables the plugin functionality for this Handsontable instance.
85
85
  */
86
86
  enablePlugin() {
87
+ var _bindTypeToMapStrateg;
87
88
  if (this.enabled) {
88
89
  return;
89
90
  }
90
- let bindType = this.hot.getSettings()[PLUGIN_KEY];
91
- if (typeof bindType !== 'string') {
92
- bindType = DEFAULT_BIND;
93
- }
94
- const MapStrategy = bindTypeToMapStrategy.get(bindType);
91
+ const MapStrategy = (_bindTypeToMapStrateg = bindTypeToMapStrategy.get(this.getSetting())) !== null && _bindTypeToMapStrateg !== void 0 ? _bindTypeToMapStrateg : bindTypeToMapStrategy.get(DEFAULT_BIND);
95
92
  this.headerIndexes = this.hot.rowIndexMapper.registerMap('bindRowsWithHeaders', new MapStrategy());
96
93
  this.addHook('modifyRowHeader', row => _assertClassBrand(_BindRowsWithHeaders_brand, this, _onModifyRowHeader).call(this, row));
97
94
  super.enablePlugin();
@@ -3,6 +3,8 @@
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.every.js");
6
8
  var _element = require("../../helpers/dom/element");
7
9
  var _mixed = require("../../helpers/mixed");
8
10
  var _object = require("../../helpers/object");
@@ -10,7 +12,7 @@ var _function = require("../../helpers/function");
10
12
  var _array = require("../../helpers/array");
11
13
  var _base = require("../base");
12
14
  var _translations = require("../../translations");
13
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
15
+ var _hooks = require("../../core/hooks");
14
16
  var _columnStatesManager = require("./columnStatesManager");
15
17
  var _shortcutContexts = require("../../shortcutContexts");
16
18
  var _utils = require("./utils");
@@ -18,7 +20,6 @@ var _domHelpers = require("./domHelpers");
18
20
  var _rootComparator = require("./rootComparator");
19
21
  var _sortService = require("./sortService");
20
22
  var _a11y = require("../../helpers/a11y");
21
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
23
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
23
24
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
24
25
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -31,8 +32,8 @@ const APPEND_COLUMN_CONFIG_STRATEGY = exports.APPEND_COLUMN_CONFIG_STRATEGY = 'a
31
32
  const REPLACE_COLUMN_CONFIG_STRATEGY = exports.REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
32
33
  const SHORTCUTS_GROUP = PLUGIN_KEY;
33
34
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
34
- _pluginHooks.default.getSingleton().register('beforeColumnSort');
35
- _pluginHooks.default.getSingleton().register('afterColumnSort');
35
+ _hooks.Hooks.getSingleton().register('beforeColumnSort');
36
+ _hooks.Hooks.getSingleton().register('afterColumnSort');
36
37
 
37
38
  // DIFF - MultiColumnSorting & ColumnSorting: changed configuration documentation.
38
39
  /**
@@ -1,5 +1,7 @@
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.every.js";
3
5
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
4
6
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
5
7
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -13,7 +15,7 @@ import { isFunction } from "../../helpers/function.mjs";
13
15
  import { arrayMap } from "../../helpers/array.mjs";
14
16
  import { BasePlugin } from "../base/index.mjs";
15
17
  import { IndexesSequence, PhysicalIndexToValueMap as IndexToValueMap } from "../../translations/index.mjs";
16
- import Hooks from "../../pluginHooks.mjs";
18
+ import { Hooks } from "../../core/hooks/index.mjs";
17
19
  import { ColumnStatesManager } from "./columnStatesManager.mjs";
18
20
  import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
19
21
  import { HEADER_SPAN_CLASS, getNextSortOrder, areValidSortStates, getHeaderSpanElement, isFirstLevelColumnHeader, wasHeaderClickedProperly } from "./utils.mjs";
@@ -2,6 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/esnext.iterator.map.js");
5
6
  var _object = require("../../helpers/object");
6
7
  var _translations = require("../../translations");
7
8
  var _mixed = require("../../helpers/mixed");
@@ -1,4 +1,5 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/esnext.iterator.map.js";
2
3
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -14,6 +14,9 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
14
14
  require("core-js/modules/es.set.is-superset-of.v2.js");
15
15
  require("core-js/modules/es.set.symmetric-difference.v2.js");
16
16
  require("core-js/modules/es.set.union.v2.js");
17
+ require("core-js/modules/esnext.iterator.constructor.js");
18
+ require("core-js/modules/esnext.iterator.map.js");
19
+ require("core-js/modules/esnext.iterator.some.js");
17
20
  var _moment = _interopRequireDefault(require("moment"));
18
21
  var _object = require("../../helpers/object");
19
22
  var _event = require("../../helpers/dom/event");
@@ -5,6 +5,9 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
5
5
  import "core-js/modules/es.set.is-superset-of.v2.js";
6
6
  import "core-js/modules/es.set.symmetric-difference.v2.js";
7
7
  import "core-js/modules/es.set.union.v2.js";
8
+ import "core-js/modules/esnext.iterator.constructor.js";
9
+ import "core-js/modules/esnext.iterator.map.js";
10
+ import "core-js/modules/esnext.iterator.some.js";
8
11
  import moment from 'moment';
9
12
  import { isObject } from "../../helpers/object.mjs";
10
13
  import { isRightClick } from "../../helpers/dom/event.mjs";
@@ -3,6 +3,9 @@
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.for-each.js");
8
+ require("core-js/modules/esnext.iterator.some.js");
6
9
  var _array = require("../../helpers/array");
7
10
  var _console = require("../../helpers/console");
8
11
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -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.for-each.js";
5
+ import "core-js/modules/esnext.iterator.some.js";
3
6
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
7
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
8
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -241,6 +241,15 @@ class CommentEditor {
241
241
  return _classPrivateFieldGet(_editor, this).querySelector(`.${CommentEditor.CLASS_INPUT}`);
242
242
  }
243
243
 
244
+ /**
245
+ * Get the editor element.
246
+ *
247
+ * @returns {HTMLElement} The editor element.
248
+ */
249
+ getEditorElement() {
250
+ return _classPrivateFieldGet(_editor, this);
251
+ }
252
+
244
253
  /**
245
254
  * Destroy the comments editor.
246
255
  */
@@ -237,6 +237,15 @@ class CommentEditor {
237
237
  return _classPrivateFieldGet(_editor, this).querySelector(`.${CommentEditor.CLASS_INPUT}`);
238
238
  }
239
239
 
240
+ /**
241
+ * Get the editor element.
242
+ *
243
+ * @returns {HTMLElement} The editor element.
244
+ */
245
+ getEditorElement() {
246
+ return _classPrivateFieldGet(_editor, this);
247
+ }
248
+
240
249
  /**
241
250
  * Destroy the comments editor.
242
251
  */
@@ -194,6 +194,11 @@ class Comments extends _base.BasePlugin {
194
194
  static get PLUGIN_PRIORITY() {
195
195
  return PLUGIN_PRIORITY;
196
196
  }
197
+ static get DEFAULT_SETTINGS() {
198
+ return {
199
+ displayDelay: 250
200
+ };
201
+ }
197
202
  /**
198
203
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
199
204
  * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
@@ -222,13 +227,19 @@ class Comments extends _base.BasePlugin {
222
227
  });
223
228
  }
224
229
  if (!_classPrivateFieldGet(_displaySwitch, this)) {
225
- _classPrivateFieldSet(_displaySwitch, this, new _displaySwitch2.default(this.getDisplayDelaySetting()));
230
+ _classPrivateFieldSet(_displaySwitch, this, new _displaySwitch2.default(this.getSetting('displayDelay')));
226
231
  }
227
232
  this.addHook('afterContextMenuDefaultOptions', options => this.addToContextMenu(options));
228
233
  this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) => _assertClassBrand(_Comments_brand, this, _onAfterRenderer).call(this, TD, cellProperties));
229
234
  this.addHook('afterScroll', () => _assertClassBrand(_Comments_brand, this, _onAfterScroll).call(this));
230
235
  this.addHook('afterBeginEditing', () => this.hide());
231
236
  this.addHook('afterDocumentKeyDown', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));
237
+ this.addHook('afterSetTheme', function () {
238
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
239
+ args[_key2] = arguments[_key2];
240
+ }
241
+ return _assertClassBrand(_Comments_brand, _this, _updateEditorThemeClassName).call(_this, ...args);
242
+ });
232
243
  _classPrivateFieldGet(_displaySwitch, this).addLocalHook('hide', () => this.hide());
233
244
  _classPrivateFieldGet(_displaySwitch, this).addLocalHook('show', (row, col) => this.showAtCell(row, col));
234
245
  this.registerShortcuts();
@@ -243,7 +254,7 @@ class Comments extends _base.BasePlugin {
243
254
  * - [`comments`](@/api/options.md#comments)
244
255
  */
245
256
  updatePlugin() {
246
- _classPrivateFieldGet(_displaySwitch, this).updateDelay(this.getDisplayDelaySetting());
257
+ _classPrivateFieldGet(_displaySwitch, this).updateDelay(this.getSetting('displayDelay'));
247
258
  super.updatePlugin();
248
259
  }
249
260
 
@@ -282,7 +293,7 @@ class Comments extends _base.BasePlugin {
282
293
  stopPropagation: true,
283
294
  runOnlyIf: () => {
284
295
  var _this$hot$getSelected;
285
- return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(_editor, this).isVisible();
296
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell();
286
297
  },
287
298
  group: SHORTCUTS_GROUP
288
299
  });
@@ -570,7 +581,7 @@ class Comments extends _base.BasePlugin {
570
581
  } else {
571
582
  _classPrivateFieldGet(_editor, this).resetSize();
572
583
  }
573
- const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
584
+ const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getColumnWidth(renderableColumn);
574
585
  const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? (0, _element.outerHeight)(TD) : 0;
575
586
  const {
576
587
  left,
@@ -660,19 +671,6 @@ class Comments extends _base.BasePlugin {
660
671
  }, (0, _addEditComment.default)(this), (0, _removeComment.default)(this), (0, _readOnlyComment.default)(this));
661
672
  }
662
673
 
663
- /**
664
- * Get `displayDelay` setting of comment plugin.
665
- *
666
- * @private
667
- * @returns {number|undefined}
668
- */
669
- getDisplayDelaySetting() {
670
- const commentSetting = this.hot.getSettings()[PLUGIN_KEY];
671
- if ((0, _object.isObject)(commentSetting)) {
672
- return commentSetting.displayDelay;
673
- }
674
- }
675
-
676
674
  /**
677
675
  * Gets the editors input element.
678
676
  *
@@ -785,7 +783,7 @@ function _onEditorResize(width, height) {
785
783
  * @param {Event} event The keydown event.
786
784
  */
787
785
  function _onAfterDocumentKeyDown(event) {
788
- if (_classPrivateFieldGet(_editor, this).isVisible()) {
786
+ if (_classPrivateFieldGet(_editor, this).isFocused()) {
789
787
  (0, _event.stopImmediatePropagation)(event);
790
788
  }
791
789
  }
@@ -796,4 +794,12 @@ function _onAfterScroll() {
796
794
  if (!_classPrivateFieldGet(_preventEditorHiding, this)) {
797
795
  this.hide();
798
796
  }
797
+ }
798
+ /**
799
+ * Updates the editor theme class name.
800
+ */
801
+ function _updateEditorThemeClassName() {
802
+ const editorElement = _classPrivateFieldGet(_editor, this).getEditorElement();
803
+ (0, _element.removeClass)(editorElement, /ht-theme-.*/g);
804
+ (0, _element.addClass)(editorElement, this.hot.getCurrentThemeName());
799
805
  }
@@ -9,9 +9,9 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
9
9
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
10
10
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
11
11
  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
- import { addClass, closest, isChildOf, hasClass, outerHeight } from "../../helpers/dom/element.mjs";
12
+ import { addClass, removeClass, closest, isChildOf, hasClass, outerHeight } from "../../helpers/dom/element.mjs";
13
13
  import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
14
- import { deepClone, deepExtend, isObject } from "../../helpers/object.mjs";
14
+ import { deepClone, deepExtend } from "../../helpers/object.mjs";
15
15
  import { BasePlugin } from "../base/index.mjs";
16
16
  import CommentEditor from "./commentEditor.mjs";
17
17
  import DisplaySwitch from "./displaySwitch.mjs";
@@ -190,6 +190,11 @@ export class Comments extends BasePlugin {
190
190
  static get PLUGIN_PRIORITY() {
191
191
  return PLUGIN_PRIORITY;
192
192
  }
193
+ static get DEFAULT_SETTINGS() {
194
+ return {
195
+ displayDelay: 250
196
+ };
197
+ }
193
198
  /**
194
199
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
195
200
  * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
@@ -218,13 +223,19 @@ export class Comments extends BasePlugin {
218
223
  });
219
224
  }
220
225
  if (!_classPrivateFieldGet(_displaySwitch, this)) {
221
- _classPrivateFieldSet(_displaySwitch, this, new DisplaySwitch(this.getDisplayDelaySetting()));
226
+ _classPrivateFieldSet(_displaySwitch, this, new DisplaySwitch(this.getSetting('displayDelay')));
222
227
  }
223
228
  this.addHook('afterContextMenuDefaultOptions', options => this.addToContextMenu(options));
224
229
  this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) => _assertClassBrand(_Comments_brand, this, _onAfterRenderer).call(this, TD, cellProperties));
225
230
  this.addHook('afterScroll', () => _assertClassBrand(_Comments_brand, this, _onAfterScroll).call(this));
226
231
  this.addHook('afterBeginEditing', () => this.hide());
227
232
  this.addHook('afterDocumentKeyDown', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));
233
+ this.addHook('afterSetTheme', function () {
234
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
235
+ args[_key2] = arguments[_key2];
236
+ }
237
+ return _assertClassBrand(_Comments_brand, _this, _updateEditorThemeClassName).call(_this, ...args);
238
+ });
228
239
  _classPrivateFieldGet(_displaySwitch, this).addLocalHook('hide', () => this.hide());
229
240
  _classPrivateFieldGet(_displaySwitch, this).addLocalHook('show', (row, col) => this.showAtCell(row, col));
230
241
  this.registerShortcuts();
@@ -239,7 +250,7 @@ export class Comments extends BasePlugin {
239
250
  * - [`comments`](@/api/options.md#comments)
240
251
  */
241
252
  updatePlugin() {
242
- _classPrivateFieldGet(_displaySwitch, this).updateDelay(this.getDisplayDelaySetting());
253
+ _classPrivateFieldGet(_displaySwitch, this).updateDelay(this.getSetting('displayDelay'));
243
254
  super.updatePlugin();
244
255
  }
245
256
 
@@ -278,7 +289,7 @@ export class Comments extends BasePlugin {
278
289
  stopPropagation: true,
279
290
  runOnlyIf: () => {
280
291
  var _this$hot$getSelected;
281
- return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(_editor, this).isVisible();
292
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell();
282
293
  },
283
294
  group: SHORTCUTS_GROUP
284
295
  });
@@ -566,7 +577,7 @@ export class Comments extends BasePlugin {
566
577
  } else {
567
578
  _classPrivateFieldGet(_editor, this).resetSize();
568
579
  }
569
- const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
580
+ const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getColumnWidth(renderableColumn);
570
581
  const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? outerHeight(TD) : 0;
571
582
  const {
572
583
  left,
@@ -656,19 +667,6 @@ export class Comments extends BasePlugin {
656
667
  }, addEditCommentItem(this), removeCommentItem(this), readOnlyCommentItem(this));
657
668
  }
658
669
 
659
- /**
660
- * Get `displayDelay` setting of comment plugin.
661
- *
662
- * @private
663
- * @returns {number|undefined}
664
- */
665
- getDisplayDelaySetting() {
666
- const commentSetting = this.hot.getSettings()[PLUGIN_KEY];
667
- if (isObject(commentSetting)) {
668
- return commentSetting.displayDelay;
669
- }
670
- }
671
-
672
670
  /**
673
671
  * Gets the editors input element.
674
672
  *
@@ -780,7 +778,7 @@ function _onEditorResize(width, height) {
780
778
  * @param {Event} event The keydown event.
781
779
  */
782
780
  function _onAfterDocumentKeyDown(event) {
783
- if (_classPrivateFieldGet(_editor, this).isVisible()) {
781
+ if (_classPrivateFieldGet(_editor, this).isFocused()) {
784
782
  stopImmediatePropagation(event);
785
783
  }
786
784
  }
@@ -791,4 +789,12 @@ function _onAfterScroll() {
791
789
  if (!_classPrivateFieldGet(_preventEditorHiding, this)) {
792
790
  this.hide();
793
791
  }
792
+ }
793
+ /**
794
+ * Updates the editor theme class name.
795
+ */
796
+ function _updateEditorThemeClassName() {
797
+ const editorElement = _classPrivateFieldGet(_editor, this).getEditorElement();
798
+ removeClass(editorElement, /ht-theme-.*/g);
799
+ addClass(editorElement, this.hot.getCurrentThemeName());
794
800
  }
@@ -2,6 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.for-each.js");
5
7
  var _object = require("../../helpers/object");
6
8
  var _localHooks = _interopRequireDefault(require("../../mixins/localHooks"));
7
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1,4 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/esnext.iterator.constructor.js";
3
+ import "core-js/modules/esnext.iterator.for-each.js";
2
4
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
3
5
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
4
6
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -49,7 +49,8 @@ export interface SubmenuItemConfig extends Omit<MenuItemConfig, "key"> {
49
49
 
50
50
  export interface DetailedSettings {
51
51
  callback?: (key: string, selection: Selection[], clickEvent: MouseEvent) => void;
52
- items: PredefinedMenuItemKey[] | MenuConfig;
52
+ uiContainer?: HTMLElement,
53
+ items?: PredefinedMenuItemKey[] | MenuConfig;
53
54
  }
54
55
 
55
56
  export type Settings = boolean | PredefinedMenuItemKey[] | DetailedSettings;
@@ -3,7 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  var _base = require("../base");
6
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
6
+ var _hooks = require("../../core/hooks");
7
7
  var _array = require("../../helpers/array");
8
8
  var _object = require("../../helpers/object");
9
9
  var _commandExecutor = require("./commandExecutor");
@@ -12,7 +12,6 @@ var _menu = require("./menu");
12
12
  var _utils = require("./utils");
13
13
  var _element = require("../../helpers/dom/element");
14
14
  var _predefinedItems = require("./predefinedItems");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
15
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
17
16
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
18
17
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -22,11 +21,11 @@ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.h
22
21
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'contextMenu';
23
22
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 70;
24
23
  const SHORTCUTS_GROUP = PLUGIN_KEY;
25
- _pluginHooks.default.getSingleton().register('afterContextMenuDefaultOptions');
26
- _pluginHooks.default.getSingleton().register('beforeContextMenuShow');
27
- _pluginHooks.default.getSingleton().register('afterContextMenuShow');
28
- _pluginHooks.default.getSingleton().register('afterContextMenuHide');
29
- _pluginHooks.default.getSingleton().register('afterContextMenuExecute');
24
+ _hooks.Hooks.getSingleton().register('afterContextMenuDefaultOptions');
25
+ _hooks.Hooks.getSingleton().register('beforeContextMenuShow');
26
+ _hooks.Hooks.getSingleton().register('afterContextMenuShow');
27
+ _hooks.Hooks.getSingleton().register('afterContextMenuHide');
28
+ _hooks.Hooks.getSingleton().register('afterContextMenuExecute');
30
29
 
31
30
  /* eslint-disable jsdoc/require-description-complete-sentence */
32
31
  /**
@@ -6,7 +6,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
6
6
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  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"); }
8
8
  import { BasePlugin } from "../base/index.mjs";
9
- import Hooks from "../../pluginHooks.mjs";
9
+ import { Hooks } from "../../core/hooks/index.mjs";
10
10
  import { arrayEach } from "../../helpers/array.mjs";
11
11
  import { objectEach } from "../../helpers/object.mjs";
12
12
  import { CommandExecutor } from "./commandExecutor.mjs";
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/esnext.iterator.constructor.js");
4
+ require("core-js/modules/esnext.iterator.for-each.js");
3
5
  exports.__esModule = true;
4
6
  var _menu = require("./menu");
5
7
  Object.keys(_menu).forEach(function (key) {
@@ -57,7 +57,7 @@ class Menu {
57
57
  */
58
58
  get tableBorderWidth() {
59
59
  if (_classPrivateFieldGet(_tableBorderWidth, this) === undefined && this.hotMenu) {
60
- _classPrivateFieldSet(_tableBorderWidth, this, parseInt((0, _element.getComputedStyle)(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
60
+ _classPrivateFieldSet(_tableBorderWidth, this, parseInt(this.hotMenu.rootWindow.getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
61
61
  }
62
62
  return _classPrivateFieldGet(_tableBorderWidth, this);
63
63
  }
@@ -162,6 +162,12 @@ class Menu {
162
162
  return _this.parentMenu.runLocalHooks('afterSelectionChange', ...args);
163
163
  });
164
164
  }
165
+ this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
166
+ if (!firstRun) {
167
+ var _this$hotMenu;
168
+ (_this$hotMenu = this.hotMenu) === null || _this$hotMenu === void 0 || _this$hotMenu.useTheme(themeName);
169
+ }
170
+ });
165
171
  }
166
172
 
167
173
  /**
@@ -286,6 +292,7 @@ class Menu {
286
292
  disableVisualSelection: 'area',
287
293
  layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr',
288
294
  ariaTags: false,
295
+ themeName: this.hot.getCurrentThemeName(),
289
296
  beforeOnCellMouseOver: (event, coords) => {
290
297
  _classPrivateFieldGet(_navigator, this).setCurrentPage(coords.row);
291
298
  },
@@ -579,10 +586,8 @@ class Menu {
579
586
  const currentRowHeight = itemCell ? (0, _element.outerHeight)(this.hotMenu.getCell(index, 0)) : 0;
580
587
  return accumulator + (value.name === _predefinedItems.SEPARATOR ? 1 : currentRowHeight);
581
588
  }, 0);
582
-
583
- // Additional 3px to menu's size because of additional border around its `table.htCore`.
584
- holderStyle.width = `${currentHiderWidth + 3}px`;
585
- holderStyle.height = `${realHeight + 3}px`;
589
+ holderStyle.width = `${currentHiderWidth}px`;
590
+ holderStyle.height = `${realHeight}px`;
586
591
  hiderStyle.height = holderStyle.height;
587
592
  }
588
593