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
@@ -10,10 +10,9 @@ var _utils = require("../contextMenu/utils");
10
10
  var _element = require("../../helpers/dom/element");
11
11
  var _itemsFactory = require("../contextMenu/itemsFactory");
12
12
  var _menu = require("../contextMenu/menu");
13
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
13
+ var _hooks = require("../../core/hooks");
14
14
  var _predefinedItems = require("../contextMenu/predefinedItems");
15
15
  var _a11y = require("../../helpers/a11y");
16
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
16
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
18
17
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
19
18
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -23,11 +22,11 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
23
22
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
24
23
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
25
24
  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"); }
26
- _pluginHooks.default.getSingleton().register('afterDropdownMenuDefaultOptions');
27
- _pluginHooks.default.getSingleton().register('beforeDropdownMenuShow');
28
- _pluginHooks.default.getSingleton().register('afterDropdownMenuShow');
29
- _pluginHooks.default.getSingleton().register('afterDropdownMenuHide');
30
- _pluginHooks.default.getSingleton().register('afterDropdownMenuExecute');
25
+ _hooks.Hooks.getSingleton().register('afterDropdownMenuDefaultOptions');
26
+ _hooks.Hooks.getSingleton().register('beforeDropdownMenuShow');
27
+ _hooks.Hooks.getSingleton().register('afterDropdownMenuShow');
28
+ _hooks.Hooks.getSingleton().register('afterDropdownMenuHide');
29
+ _hooks.Hooks.getSingleton().register('afterDropdownMenuExecute');
31
30
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'dropdownMenu';
32
31
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 230;
33
32
  const BUTTON_CLASS_NAME = 'changeType';
@@ -16,7 +16,7 @@ import { getDocumentOffsetByElement } from "../contextMenu/utils.mjs";
16
16
  import { hasClass, setAttribute } from "../../helpers/dom/element.mjs";
17
17
  import { ItemsFactory } from "../contextMenu/itemsFactory.mjs";
18
18
  import { Menu } from "../contextMenu/menu/index.mjs";
19
- import Hooks from "../../pluginHooks.mjs";
19
+ import { Hooks } from "../../core/hooks/index.mjs";
20
20
  import { COLUMN_LEFT, COLUMN_RIGHT, REMOVE_COLUMN, CLEAR_COLUMN, READ_ONLY, ALIGNMENT, SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
21
21
  import { A11Y_HASPOPUP, A11Y_HIDDEN, A11Y_LABEL } from "../../helpers/a11y.mjs";
22
22
  Hooks.getSingleton().register('afterDropdownMenuDefaultOptions');
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/esnext.iterator.map.js");
4
5
  var _array = require("../../../helpers/array");
5
6
  var _mixed = require("../../../helpers/mixed");
6
7
  var _base = _interopRequireDefault(require("./_base"));
@@ -1,3 +1,4 @@
1
+ import "core-js/modules/esnext.iterator.map.js";
1
2
  import { arrayEach, arrayMap } from "../../../helpers/array.mjs";
2
3
  import { stringify } from "../../../helpers/mixed.mjs";
3
4
  import BaseType from "./_base.mjs";
@@ -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.filter.js");
6
8
  var _element = require("../../../helpers/dom/element");
7
9
  var _event = require("../../../helpers/dom/event");
8
10
  var _array = require("../../../helpers/array");
@@ -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.filter.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; }
@@ -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.find.js");
6
8
  var _element = require("../../../helpers/dom/element");
7
9
  var _array = require("../../../helpers/array");
8
10
  var _templateLiteralTag = require("../../../helpers/templateLiteralTag");
@@ -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.find.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; }
@@ -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.filter.js");
8
+ require("core-js/modules/esnext.iterator.map.js");
6
9
  var _element = require("../../../helpers/dom/element");
7
10
  var _event = require("../../../helpers/dom/event");
8
11
  var _array = require("../../../helpers/array");
@@ -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 _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
5
8
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -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.map.js");
8
+ require("core-js/modules/esnext.iterator.some.js");
6
9
  var _array = require("../../helpers/array");
7
10
  var _object = require("../../helpers/object");
8
11
  var _templateLiteralTag = require("../../helpers/templateLiteralTag");
@@ -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.map.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); }
@@ -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.filter.js");
6
8
  var _array = require("../../helpers/array");
7
9
  var _object = require("../../helpers/object");
8
10
  var _function = require("../../helpers/function");
@@ -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.filter.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; }
@@ -4,6 +4,10 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
6
  require("core-js/modules/es.array.unscopables.flat.js");
7
+ require("core-js/modules/esnext.iterator.constructor.js");
8
+ require("core-js/modules/esnext.iterator.filter.js");
9
+ require("core-js/modules/esnext.iterator.for-each.js");
10
+ require("core-js/modules/esnext.iterator.map.js");
7
11
  var _base = require("../base");
8
12
  var _array = require("../../helpers/array");
9
13
  var _templateLiteralTag = require("../../helpers/templateLiteralTag");
@@ -76,6 +80,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
76
80
  * :::
77
81
  */
78
82
  var _menuFocusNavigator = /*#__PURE__*/new WeakMap();
83
+ var _dropdownMenuTraces = /*#__PURE__*/new WeakMap();
79
84
  var _Filters_brand = /*#__PURE__*/new WeakSet();
80
85
  class Filters extends _base.BasePlugin {
81
86
  static get PLUGIN_KEY() {
@@ -139,6 +144,12 @@ class Filters extends _base.BasePlugin {
139
144
  * @type {MenuFocusNavigator|undefined}
140
145
  */
141
146
  _classPrivateFieldInitSpec(this, _menuFocusNavigator, void 0);
147
+ /**
148
+ * Traces the new menu instances to apply the focus navigation to the latest one.
149
+ *
150
+ * @type {WeakSet<Menu>}
151
+ */
152
+ _classPrivateFieldInitSpec(this, _dropdownMenuTraces, new WeakSet());
142
153
  this.hot.addHook('afterGetColHeader', (col, TH) => _assertClassBrand(_Filters_brand, this, _onAfterGetColHeader).call(this, col, TH));
143
154
  }
144
155
 
@@ -157,6 +168,7 @@ class Filters extends _base.BasePlugin {
157
168
  * Enables the plugin functionality for this Handsontable instance.
158
169
  */
159
170
  enablePlugin() {
171
+ var _this = this;
160
172
  if (this.enabled) {
161
173
  return;
162
174
  }
@@ -218,7 +230,13 @@ class Filters extends _base.BasePlugin {
218
230
  this.conditionUpdateObserver.addLocalHook('update', conditionState => _assertClassBrand(_Filters_brand, this, _updateComponents).call(this, conditionState));
219
231
  }
220
232
  this.components.forEach(component => component.show());
221
- this.addHook('afterDropdownMenuDefaultOptions', defaultOptions => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuDefaultOptions).call(this, defaultOptions));
233
+ this.addHook('afterDropdownMenuDefaultOptions', function () {
234
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
235
+ args[_key] = arguments[_key];
236
+ }
237
+ return _assertClassBrand(_Filters_brand, _this, _onAfterDropdownMenuDefaultOptions).call(_this, ...args);
238
+ });
239
+ this.addHook('beforeDropdownMenuShow', () => _assertClassBrand(_Filters_brand, this, _onBeforeDropdownMenuShow).call(this));
222
240
  this.addHook('afterDropdownMenuShow', () => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuShow).call(this));
223
241
  this.addHook('afterDropdownMenuHide', () => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuHide).call(this));
224
242
  this.addHook('afterChange', changes => _assertClassBrand(_Filters_brand, this, _onAfterChange).call(this, changes));
@@ -229,15 +247,15 @@ class Filters extends _base.BasePlugin {
229
247
  this.dropdownMenuPlugin.enablePlugin();
230
248
  }
231
249
  if (!_classPrivateFieldGet(_menuFocusNavigator, this) && this.dropdownMenuPlugin.enabled) {
232
- const mainMenu = this.dropdownMenuPlugin.menu;
233
250
  const focusableItems = [
234
251
  // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
235
252
  // to the menu navigation using arrow keys.
236
253
  {
237
254
  focus: () => {
238
- const menuNavigator = mainMenu.getNavigator();
255
+ const menu = _classPrivateFieldGet(_menuFocusNavigator, this).getMenu();
256
+ const menuNavigator = menu.getNavigator();
239
257
  const lastSelectedMenuItem = _classPrivateFieldGet(_menuFocusNavigator, this).getLastMenuPage();
240
- mainMenu.focus();
258
+ menu.focus();
241
259
  if (lastSelectedMenuItem > 0) {
242
260
  menuNavigator.setCurrentPage(lastSelectedMenuItem);
243
261
  } else {
@@ -248,7 +266,7 @@ class Filters extends _base.BasePlugin {
248
266
  let [, component] = _ref;
249
267
  return component.getElements();
250
268
  }).flat()];
251
- _classPrivateFieldSet(_menuFocusNavigator, this, (0, _focusController.createMenuFocusController)(mainMenu, focusableItems));
269
+ _classPrivateFieldSet(_menuFocusNavigator, this, (0, _focusController.createMenuFocusController)(this.dropdownMenuPlugin.menu, focusableItems));
252
270
  const forwardToFocusNavigation = event => {
253
271
  _classPrivateFieldGet(_menuFocusNavigator, this).listen();
254
272
  event.preventDefault();
@@ -706,8 +724,8 @@ class Filters extends _base.BasePlugin {
706
724
  return indexes;
707
725
  }
708
726
  const menu = this.dropdownMenuPlugin.menu;
709
- for (var _len = arguments.length, components = new Array(_len), _key = 0; _key < _len; _key++) {
710
- components[_key] = arguments[_key];
727
+ for (var _len2 = arguments.length, components = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
728
+ components[_key2] = arguments[_key2];
711
729
  }
712
730
  (0, _array.arrayEach)(components, component => {
713
731
  (0, _array.arrayEach)(menu.menuItems, (item, index) => {
@@ -734,8 +752,8 @@ class Filters extends _base.BasePlugin {
734
752
  const menu = this.dropdownMenuPlugin.menu;
735
753
  const hotMenu = menu.hotMenu;
736
754
  const hiddenRows = hotMenu.getPlugin('hiddenRows');
737
- for (var _len2 = arguments.length, components = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
738
- components[_key2 - 1] = arguments[_key2];
755
+ for (var _len3 = arguments.length, components = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
756
+ components[_key3 - 1] = arguments[_key3];
739
757
  }
740
758
  const indexes = this.getIndexesOfComponents(...components);
741
759
  if (visible) {
@@ -753,8 +771,8 @@ class Filters extends _base.BasePlugin {
753
771
  * @param {...BaseComponent} components List of components.
754
772
  */
755
773
  hideComponents() {
756
- for (var _len3 = arguments.length, components = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
757
- components[_key3] = arguments[_key3];
774
+ for (var _len4 = arguments.length, components = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
775
+ components[_key4] = arguments[_key4];
758
776
  }
759
777
  this.changeComponentsVisibility(false, ...components);
760
778
  }
@@ -766,8 +784,8 @@ class Filters extends _base.BasePlugin {
766
784
  * @param {...BaseComponent} components List of components.
767
785
  */
768
786
  showComponents() {
769
- for (var _len4 = arguments.length, components = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
770
- components[_key4] = arguments[_key4];
787
+ for (var _len5 = arguments.length, components = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
788
+ components[_key5] = arguments[_key5];
771
789
  }
772
790
  this.changeComponentsVisibility(true, ...components);
773
791
  }
@@ -814,6 +832,16 @@ function _onAfterDropdownMenuHide() {
814
832
  this.components.get('filter_by_condition').getSelectElement().closeOptions();
815
833
  this.components.get('filter_by_condition2').getSelectElement().closeOptions();
816
834
  }
835
+ /**
836
+ * Hooks applies the new dropdown menu instance to the focus navigator.
837
+ */
838
+ function _onBeforeDropdownMenuShow() {
839
+ const mainMenu = this.dropdownMenuPlugin.menu;
840
+ if (!_classPrivateFieldGet(_dropdownMenuTraces, this).has(mainMenu)) {
841
+ _classPrivateFieldGet(_menuFocusNavigator, this).setMenu(mainMenu);
842
+ }
843
+ _classPrivateFieldGet(_dropdownMenuTraces, this).add(mainMenu);
844
+ }
817
845
  /**
818
846
  * After dropdown menu default options listener.
819
847
  *
@@ -872,10 +900,12 @@ function _onActionBarSubmit(submitType) {
872
900
  * @param {object} command Menu item object (command).
873
901
  */
874
902
  function _onComponentChange(component, command) {
903
+ const menu = this.dropdownMenuPlugin.menu;
875
904
  this.updateDependentComponentsVisibility();
876
905
  if (component.constructor === _condition.ConditionComponent && !command.inputsCount) {
877
906
  this.setListeningDropdownMenu();
878
907
  }
908
+ menu.updateMenuDimensions();
879
909
  }
880
910
  /**
881
911
  * On component SelectUI closed listener.
@@ -1,6 +1,10 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
3
  import "core-js/modules/es.array.unscopables.flat.js";
4
+ import "core-js/modules/esnext.iterator.constructor.js";
5
+ import "core-js/modules/esnext.iterator.filter.js";
6
+ import "core-js/modules/esnext.iterator.for-each.js";
7
+ import "core-js/modules/esnext.iterator.map.js";
4
8
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
5
9
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
6
10
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -70,6 +74,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
70
74
  * :::
71
75
  */
72
76
  var _menuFocusNavigator = /*#__PURE__*/new WeakMap();
77
+ var _dropdownMenuTraces = /*#__PURE__*/new WeakMap();
73
78
  var _Filters_brand = /*#__PURE__*/new WeakSet();
74
79
  export class Filters extends BasePlugin {
75
80
  static get PLUGIN_KEY() {
@@ -133,6 +138,12 @@ export class Filters extends BasePlugin {
133
138
  * @type {MenuFocusNavigator|undefined}
134
139
  */
135
140
  _classPrivateFieldInitSpec(this, _menuFocusNavigator, void 0);
141
+ /**
142
+ * Traces the new menu instances to apply the focus navigation to the latest one.
143
+ *
144
+ * @type {WeakSet<Menu>}
145
+ */
146
+ _classPrivateFieldInitSpec(this, _dropdownMenuTraces, new WeakSet());
136
147
  this.hot.addHook('afterGetColHeader', (col, TH) => _assertClassBrand(_Filters_brand, this, _onAfterGetColHeader).call(this, col, TH));
137
148
  }
138
149
 
@@ -151,6 +162,7 @@ export class Filters extends BasePlugin {
151
162
  * Enables the plugin functionality for this Handsontable instance.
152
163
  */
153
164
  enablePlugin() {
165
+ var _this = this;
154
166
  if (this.enabled) {
155
167
  return;
156
168
  }
@@ -212,7 +224,13 @@ export class Filters extends BasePlugin {
212
224
  this.conditionUpdateObserver.addLocalHook('update', conditionState => _assertClassBrand(_Filters_brand, this, _updateComponents).call(this, conditionState));
213
225
  }
214
226
  this.components.forEach(component => component.show());
215
- this.addHook('afterDropdownMenuDefaultOptions', defaultOptions => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuDefaultOptions).call(this, defaultOptions));
227
+ this.addHook('afterDropdownMenuDefaultOptions', function () {
228
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
229
+ args[_key] = arguments[_key];
230
+ }
231
+ return _assertClassBrand(_Filters_brand, _this, _onAfterDropdownMenuDefaultOptions).call(_this, ...args);
232
+ });
233
+ this.addHook('beforeDropdownMenuShow', () => _assertClassBrand(_Filters_brand, this, _onBeforeDropdownMenuShow).call(this));
216
234
  this.addHook('afterDropdownMenuShow', () => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuShow).call(this));
217
235
  this.addHook('afterDropdownMenuHide', () => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuHide).call(this));
218
236
  this.addHook('afterChange', changes => _assertClassBrand(_Filters_brand, this, _onAfterChange).call(this, changes));
@@ -223,15 +241,15 @@ export class Filters extends BasePlugin {
223
241
  this.dropdownMenuPlugin.enablePlugin();
224
242
  }
225
243
  if (!_classPrivateFieldGet(_menuFocusNavigator, this) && this.dropdownMenuPlugin.enabled) {
226
- const mainMenu = this.dropdownMenuPlugin.menu;
227
244
  const focusableItems = [
228
245
  // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
229
246
  // to the menu navigation using arrow keys.
230
247
  {
231
248
  focus: () => {
232
- const menuNavigator = mainMenu.getNavigator();
249
+ const menu = _classPrivateFieldGet(_menuFocusNavigator, this).getMenu();
250
+ const menuNavigator = menu.getNavigator();
233
251
  const lastSelectedMenuItem = _classPrivateFieldGet(_menuFocusNavigator, this).getLastMenuPage();
234
- mainMenu.focus();
252
+ menu.focus();
235
253
  if (lastSelectedMenuItem > 0) {
236
254
  menuNavigator.setCurrentPage(lastSelectedMenuItem);
237
255
  } else {
@@ -242,7 +260,7 @@ export class Filters extends BasePlugin {
242
260
  let [, component] = _ref;
243
261
  return component.getElements();
244
262
  }).flat()];
245
- _classPrivateFieldSet(_menuFocusNavigator, this, createMenuFocusController(mainMenu, focusableItems));
263
+ _classPrivateFieldSet(_menuFocusNavigator, this, createMenuFocusController(this.dropdownMenuPlugin.menu, focusableItems));
246
264
  const forwardToFocusNavigation = event => {
247
265
  _classPrivateFieldGet(_menuFocusNavigator, this).listen();
248
266
  event.preventDefault();
@@ -700,8 +718,8 @@ export class Filters extends BasePlugin {
700
718
  return indexes;
701
719
  }
702
720
  const menu = this.dropdownMenuPlugin.menu;
703
- for (var _len = arguments.length, components = new Array(_len), _key = 0; _key < _len; _key++) {
704
- components[_key] = arguments[_key];
721
+ for (var _len2 = arguments.length, components = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
722
+ components[_key2] = arguments[_key2];
705
723
  }
706
724
  arrayEach(components, component => {
707
725
  arrayEach(menu.menuItems, (item, index) => {
@@ -728,8 +746,8 @@ export class Filters extends BasePlugin {
728
746
  const menu = this.dropdownMenuPlugin.menu;
729
747
  const hotMenu = menu.hotMenu;
730
748
  const hiddenRows = hotMenu.getPlugin('hiddenRows');
731
- for (var _len2 = arguments.length, components = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
732
- components[_key2 - 1] = arguments[_key2];
749
+ for (var _len3 = arguments.length, components = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
750
+ components[_key3 - 1] = arguments[_key3];
733
751
  }
734
752
  const indexes = this.getIndexesOfComponents(...components);
735
753
  if (visible) {
@@ -747,8 +765,8 @@ export class Filters extends BasePlugin {
747
765
  * @param {...BaseComponent} components List of components.
748
766
  */
749
767
  hideComponents() {
750
- for (var _len3 = arguments.length, components = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
751
- components[_key3] = arguments[_key3];
768
+ for (var _len4 = arguments.length, components = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
769
+ components[_key4] = arguments[_key4];
752
770
  }
753
771
  this.changeComponentsVisibility(false, ...components);
754
772
  }
@@ -760,8 +778,8 @@ export class Filters extends BasePlugin {
760
778
  * @param {...BaseComponent} components List of components.
761
779
  */
762
780
  showComponents() {
763
- for (var _len4 = arguments.length, components = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
764
- components[_key4] = arguments[_key4];
781
+ for (var _len5 = arguments.length, components = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
782
+ components[_key5] = arguments[_key5];
765
783
  }
766
784
  this.changeComponentsVisibility(true, ...components);
767
785
  }
@@ -807,6 +825,16 @@ function _onAfterDropdownMenuHide() {
807
825
  this.components.get('filter_by_condition').getSelectElement().closeOptions();
808
826
  this.components.get('filter_by_condition2').getSelectElement().closeOptions();
809
827
  }
828
+ /**
829
+ * Hooks applies the new dropdown menu instance to the focus navigator.
830
+ */
831
+ function _onBeforeDropdownMenuShow() {
832
+ const mainMenu = this.dropdownMenuPlugin.menu;
833
+ if (!_classPrivateFieldGet(_dropdownMenuTraces, this).has(mainMenu)) {
834
+ _classPrivateFieldGet(_menuFocusNavigator, this).setMenu(mainMenu);
835
+ }
836
+ _classPrivateFieldGet(_dropdownMenuTraces, this).add(mainMenu);
837
+ }
810
838
  /**
811
839
  * After dropdown menu default options listener.
812
840
  *
@@ -865,10 +893,12 @@ function _onActionBarSubmit(submitType) {
865
893
  * @param {object} command Menu item object (command).
866
894
  */
867
895
  function _onComponentChange(component, command) {
896
+ const menu = this.dropdownMenuPlugin.menu;
868
897
  this.updateDependentComponentsVisibility();
869
898
  if (component.constructor === ConditionComponent && !command.inputsCount) {
870
899
  this.setListeningDropdownMenu();
871
900
  }
901
+ menu.updateMenuDimensions();
872
902
  }
873
903
  /**
874
904
  * On component SelectUI closed listener.
@@ -2,6 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.operationResult = operationResult;
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.every.js");
5
7
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
6
8
  var _logicalOperationRegisterer = require("../logicalOperationRegisterer");
7
9
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -1,3 +1,5 @@
1
+ import "core-js/modules/esnext.iterator.constructor.js";
2
+ import "core-js/modules/esnext.iterator.every.js";
1
3
  import * as C from "../../../i18n/constants.mjs";
2
4
  import { registerOperation } from "../logicalOperationRegisterer.mjs";
3
5
  export const OPERATION_ID = 'conjunction';
@@ -2,6 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.operationResult = operationResult;
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.some.js");
5
7
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
6
8
  var _logicalOperationRegisterer = require("../logicalOperationRegisterer");
7
9
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -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 * as C from "../../../i18n/constants.mjs";
2
4
  import { registerOperation } from "../logicalOperationRegisterer.mjs";
3
5
  export const OPERATION_ID = 'disjunction';
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.operationResult = operationResult;
5
5
  require("core-js/modules/es.error.cause.js");
6
+ require("core-js/modules/esnext.iterator.constructor.js");
7
+ require("core-js/modules/esnext.iterator.some.js");
6
8
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
7
9
  var _logicalOperationRegisterer = require("../logicalOperationRegisterer");
8
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(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.some.js";
2
4
  import * as C from "../../../i18n/constants.mjs";
3
5
  import { registerOperation } from "../logicalOperationRegisterer.mjs";
4
6
  export const OPERATION_ID = 'disjunctionWithExtraCondition';
@@ -2,6 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.createMenuFocusController = createMenuFocusController;
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.for-each.js");
5
7
  var _focusNavigator = require("./focusNavigator");
6
8
  var _select = require("../ui/select");
7
9
  var _base = require("../ui/_base");
@@ -32,10 +34,11 @@ function createMenuFocusController(mainMenu, menuItems) {
32
34
  * into the focus mode triggered by the TAB or SHIFT+TAB keys).
33
35
  */
34
36
  let lastSelectedMenuItem = -1;
37
+ let menuInstance;
35
38
  const focusNavigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
36
39
  const updateNavigatorPosition = element => () => {
37
- if (mainMenu.isOpened()) {
38
- mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
40
+ if (menuInstance.isOpened()) {
41
+ menuInstance.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
39
42
  }
40
43
  focusNavigator.setCurrentPage(menuItems.indexOf(element));
41
44
  };
@@ -48,11 +51,7 @@ function createMenuFocusController(mainMenu, menuItems) {
48
51
  element.addLocalHook('afterClose', updateNavigatorPosition(element));
49
52
  }
50
53
  });
51
- mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
52
- if (!selectedItem.key.startsWith('filter_')) {
53
- focusNavigator.clear();
54
- }
55
- });
54
+ setMenu(mainMenu);
56
55
 
57
56
  /**
58
57
  * Extends the menu and submenus with new keyboard shortcuts.
@@ -60,7 +59,7 @@ function createMenuFocusController(mainMenu, menuItems) {
60
59
  * @param {*} menu The menu (as main menu or submenu) instance.
61
60
  */
62
61
  function addKeyboardShortcuts(menu) {
63
- const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
62
+ const mainMenuShortcutsCtrl = menuInstance.getKeyboardShortcutsCtrl();
64
63
  const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
65
64
  focusNavigator.clear();
66
65
  currentMenuShortcutsCtrl.addCustomShortcuts([{
@@ -79,7 +78,7 @@ function createMenuFocusController(mainMenu, menuItems) {
79
78
  mainMenuShortcutsCtrl.addCustomShortcuts([{
80
79
  keys: [['Tab'], ['Shift', 'Tab']],
81
80
  callback: event => {
82
- const menuNavigator = mainMenu.getNavigator();
81
+ const menuNavigator = menuInstance.getNavigator();
83
82
  if (menuNavigator.getCurrentPage() > -1) {
84
83
  lastSelectedMenuItem = menuNavigator.getCurrentPage();
85
84
  }
@@ -93,7 +92,7 @@ function createMenuFocusController(mainMenu, menuItems) {
93
92
  }, {
94
93
  keys: [['Escape']],
95
94
  callback: () => {
96
- mainMenu.close();
95
+ menuInstance.close();
97
96
  }
98
97
  }, {
99
98
  keys: [['Enter'], ['Space']],
@@ -114,16 +113,39 @@ function createMenuFocusController(mainMenu, menuItems) {
114
113
  }
115
114
  }], SHORTCUTS_MENU_CONTEXT);
116
115
  }
117
- mainMenu.addLocalHook('afterSubmenuOpen', addKeyboardShortcuts);
118
- mainMenu.addLocalHook('afterOpen', addKeyboardShortcuts);
119
116
 
120
117
  /**
121
118
  * Focuses the menu and switches its shortcut context to that one which controls
122
119
  * the focus navigation.
123
120
  */
124
121
  function listen() {
125
- mainMenu.focus();
126
- mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
122
+ menuInstance.focus();
123
+ menuInstance.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
124
+ }
125
+
126
+ /**
127
+ * Applies the focus controller to the new menu instance.
128
+ *
129
+ * @param {Menu} menu The new menu instance.
130
+ */
131
+ function setMenu(menu) {
132
+ menu.addLocalHook('afterSelectionChange', selectedItem => {
133
+ if (!selectedItem.key.startsWith('filter_')) {
134
+ focusNavigator.clear();
135
+ }
136
+ });
137
+ menu.addLocalHook('afterSubmenuOpen', addKeyboardShortcuts);
138
+ menu.addLocalHook('afterOpen', addKeyboardShortcuts);
139
+ menuInstance = menu;
140
+ }
141
+
142
+ /**
143
+ * Retrieves the current menu instance.
144
+ *
145
+ * @returns {Menu} The current menu instance.
146
+ */
147
+ function getMenu() {
148
+ return menuInstance;
127
149
  }
128
150
 
129
151
  /**
@@ -137,6 +159,8 @@ function createMenuFocusController(mainMenu, menuItems) {
137
159
  return {
138
160
  ...focusNavigator,
139
161
  listen,
162
+ setMenu,
163
+ getMenu,
140
164
  getLastMenuPage
141
165
  };
142
166
  }