handsontable 0.0.0-next-a1e4b4f-20230628 → 0.0.0-next-e697250-20230707

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (456) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -28
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -28
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +69 -36
  6. package/3rdparty/walkontable/src/cell/range.mjs +68 -35
  7. package/3rdparty/walkontable/src/event.js +3 -5
  8. package/3rdparty/walkontable/src/event.mjs +3 -5
  9. package/3rdparty/walkontable/src/overlay/_base.js +6 -7
  10. package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
  11. package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
  12. package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
  13. package/3rdparty/walkontable/src/overlay/top.js +6 -7
  14. package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
  15. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
  16. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
  17. package/3rdparty/walkontable/src/overlays.js +55 -64
  18. package/3rdparty/walkontable/src/overlays.mjs +55 -64
  19. package/3rdparty/walkontable/src/renderer/table.js +0 -2
  20. package/3rdparty/walkontable/src/renderer/table.mjs +0 -2
  21. package/3rdparty/walkontable/src/scroll.js +20 -23
  22. package/3rdparty/walkontable/src/scroll.mjs +20 -23
  23. package/3rdparty/walkontable/src/selection/border/border.js +1 -0
  24. package/3rdparty/walkontable/src/selection/border/border.mjs +1 -0
  25. package/3rdparty/walkontable/src/selection/manager.js +40 -45
  26. package/3rdparty/walkontable/src/selection/manager.mjs +33 -38
  27. package/3rdparty/walkontable/src/selection/scanner.js +5 -4
  28. package/3rdparty/walkontable/src/selection/scanner.mjs +1 -0
  29. package/3rdparty/walkontable/src/settings.js +13 -15
  30. package/3rdparty/walkontable/src/settings.mjs +13 -15
  31. package/3rdparty/walkontable/src/table.js +23 -26
  32. package/3rdparty/walkontable/src/table.mjs +23 -26
  33. package/CHANGELOG.md +56 -0
  34. package/base.js +2 -4
  35. package/base.mjs +2 -2
  36. package/common.d.ts +1 -1
  37. package/core.d.ts +7 -9
  38. package/core.js +241 -439
  39. package/core.mjs +245 -443
  40. package/dataMap/dataMap.js +1 -0
  41. package/dataMap/dataMap.mjs +1 -0
  42. package/dataMap/dataSource.js +5 -5
  43. package/dataMap/dataSource.mjs +5 -5
  44. package/dataMap/metaManager/lazyFactoryMap.js +1 -0
  45. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
  46. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
  47. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
  48. package/dataMap/metaManager/metaSchema.js +33 -24
  49. package/dataMap/metaManager/metaSchema.mjs +33 -24
  50. package/dist/handsontable.css +25 -3
  51. package/dist/handsontable.full.css +25 -3
  52. package/dist/handsontable.full.js +14539 -11358
  53. package/dist/handsontable.full.min.css +5 -5
  54. package/dist/handsontable.full.min.js +137 -125
  55. package/dist/handsontable.js +31414 -28455
  56. package/dist/handsontable.min.css +5 -5
  57. package/dist/handsontable.min.js +11 -3
  58. package/dist/languages/all.js +133 -0
  59. package/dist/languages/ar-AR.js +7 -0
  60. package/dist/languages/cs-CZ.js +7 -0
  61. package/dist/languages/de-CH.js +7 -0
  62. package/dist/languages/de-DE.js +7 -0
  63. package/dist/languages/en-US.js +7 -0
  64. package/dist/languages/es-MX.js +7 -0
  65. package/dist/languages/fr-FR.js +7 -0
  66. package/dist/languages/it-IT.js +7 -0
  67. package/dist/languages/ja-JP.js +7 -0
  68. package/dist/languages/ko-KR.js +7 -0
  69. package/dist/languages/lv-LV.js +7 -0
  70. package/dist/languages/nb-NO.js +7 -0
  71. package/dist/languages/nl-NL.js +7 -0
  72. package/dist/languages/pl-PL.js +7 -0
  73. package/dist/languages/pt-BR.js +7 -0
  74. package/dist/languages/ru-RU.js +7 -0
  75. package/dist/languages/sr-SP.js +7 -0
  76. package/dist/languages/zh-CN.js +7 -0
  77. package/dist/languages/zh-TW.js +7 -0
  78. package/editorManager.js +19 -89
  79. package/editorManager.mjs +24 -93
  80. package/editors/baseEditor/baseEditor.js +1 -0
  81. package/editors/baseEditor/baseEditor.mjs +1 -0
  82. package/editors/textEditor/textEditor.js +14 -20
  83. package/editors/textEditor/textEditor.mjs +16 -22
  84. package/helpers/dom/element.js +0 -11
  85. package/helpers/dom/element.mjs +0 -10
  86. package/helpers/mixed.js +2 -2
  87. package/helpers/mixed.mjs +2 -2
  88. package/helpers/number.d.ts +1 -0
  89. package/helpers/number.js +18 -0
  90. package/helpers/number.mjs +17 -0
  91. package/helpers/object.js +2 -0
  92. package/helpers/object.mjs +2 -0
  93. package/i18n/languages/ar-AR.js +7 -1
  94. package/i18n/languages/cs-CZ.js +7 -1
  95. package/i18n/languages/de-CH.js +7 -1
  96. package/i18n/languages/de-DE.js +7 -1
  97. package/i18n/languages/en-US.js +7 -1
  98. package/i18n/languages/es-MX.js +7 -1
  99. package/i18n/languages/fr-FR.js +7 -1
  100. package/i18n/languages/it-IT.js +7 -1
  101. package/i18n/languages/ja-JP.js +7 -1
  102. package/i18n/languages/ko-KR.js +7 -1
  103. package/i18n/languages/lv-LV.js +7 -1
  104. package/i18n/languages/nb-NO.js +7 -1
  105. package/i18n/languages/nl-NL.js +7 -1
  106. package/i18n/languages/pl-PL.js +7 -1
  107. package/i18n/languages/pt-BR.js +7 -1
  108. package/i18n/languages/ru-RU.js +7 -1
  109. package/i18n/languages/sr-SP.js +7 -1
  110. package/i18n/languages/zh-CN.js +7 -1
  111. package/i18n/languages/zh-TW.js +7 -1
  112. package/languages/all.js +133 -0
  113. package/languages/ar-AR.js +7 -0
  114. package/languages/cs-CZ.js +7 -0
  115. package/languages/de-CH.js +7 -0
  116. package/languages/de-DE.js +7 -0
  117. package/languages/en-US.js +7 -0
  118. package/languages/es-MX.js +7 -0
  119. package/languages/fr-FR.js +7 -0
  120. package/languages/index.js +133 -0
  121. package/languages/it-IT.js +7 -0
  122. package/languages/ja-JP.js +7 -0
  123. package/languages/ko-KR.js +7 -0
  124. package/languages/lv-LV.js +7 -0
  125. package/languages/nb-NO.js +7 -0
  126. package/languages/nl-NL.js +7 -0
  127. package/languages/pl-PL.js +7 -0
  128. package/languages/pt-BR.js +7 -0
  129. package/languages/ru-RU.js +7 -0
  130. package/languages/sr-SP.js +7 -0
  131. package/languages/zh-CN.js +7 -0
  132. package/languages/zh-TW.js +7 -0
  133. package/package.json +3 -2
  134. package/pluginHooks.d.ts +8 -2
  135. package/pluginHooks.js +116 -18
  136. package/pluginHooks.mjs +115 -15
  137. package/plugins/autoColumnSize/autoColumnSize.js +1 -0
  138. package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
  139. package/plugins/autoRowSize/autoRowSize.js +3 -2
  140. package/plugins/autoRowSize/autoRowSize.mjs +3 -2
  141. package/plugins/autofill/autofill.js +2 -2
  142. package/plugins/autofill/autofill.mjs +3 -3
  143. package/plugins/autofill/utils.js +1 -39
  144. package/plugins/autofill/utils.mjs +0 -37
  145. package/plugins/base/base.js +1 -0
  146. package/plugins/base/base.mjs +1 -0
  147. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
  148. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +82 -24
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +82 -24
  151. package/plugins/columnSorting/columnSorting.js +51 -8
  152. package/plugins/columnSorting/columnSorting.mjs +50 -9
  153. package/plugins/columnSorting/columnStatesManager.js +1 -0
  154. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  155. package/plugins/columnSorting/index.js +4 -2
  156. package/plugins/columnSorting/index.mjs +1 -1
  157. package/plugins/columnSorting/rootComparator.js +1 -0
  158. package/plugins/columnSorting/rootComparator.mjs +1 -0
  159. package/plugins/comments/commentEditor.js +1 -0
  160. package/plugins/comments/commentEditor.mjs +1 -0
  161. package/plugins/comments/comments.js +289 -224
  162. package/plugins/comments/comments.mjs +297 -234
  163. package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
  164. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  165. package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
  166. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
  167. package/plugins/comments/contextMenuItem/removeComment.js +48 -0
  168. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  169. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  170. package/plugins/contextMenu/contextMenu.js +81 -29
  171. package/plugins/contextMenu/contextMenu.mjs +82 -30
  172. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  173. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  174. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  175. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  176. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  177. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  178. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  179. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  180. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  181. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  182. package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -5
  183. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +6 -3
  184. package/plugins/contextMenu/predefinedItems/removeRow.js +8 -5
  185. package/plugins/contextMenu/predefinedItems/removeRow.mjs +6 -3
  186. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  187. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  188. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  189. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  190. package/plugins/contextMenu/utils.js +25 -16
  191. package/plugins/contextMenu/utils.mjs +24 -15
  192. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  193. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  194. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  195. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  196. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  197. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  198. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  199. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  200. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  201. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  202. package/plugins/copyPaste/copyPaste.js +100 -14
  203. package/plugins/copyPaste/copyPaste.mjs +100 -14
  204. package/plugins/copyPaste/copyableRanges.js +25 -31
  205. package/plugins/copyPaste/copyableRanges.mjs +18 -24
  206. package/plugins/copyPaste/focusableElement.js +219 -0
  207. package/plugins/copyPaste/focusableElement.mjs +213 -0
  208. package/plugins/customBorders/customBorders.d.ts +2 -0
  209. package/plugins/customBorders/customBorders.js +19 -50
  210. package/plugins/customBorders/customBorders.mjs +19 -50
  211. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  212. package/plugins/dropdownMenu/dropdownMenu.js +94 -30
  213. package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
  214. package/plugins/exportFile/dataProvider.js +1 -0
  215. package/plugins/exportFile/dataProvider.mjs +1 -0
  216. package/plugins/filters/component/value.js +1 -0
  217. package/plugins/filters/component/value.mjs +1 -0
  218. package/plugins/filters/condition/beginsWith.js +1 -0
  219. package/plugins/filters/condition/beginsWith.mjs +1 -0
  220. package/plugins/filters/condition/between.js +1 -0
  221. package/plugins/filters/condition/between.mjs +1 -0
  222. package/plugins/filters/condition/byValue.js +1 -0
  223. package/plugins/filters/condition/byValue.mjs +1 -0
  224. package/plugins/filters/condition/contains.js +1 -0
  225. package/plugins/filters/condition/contains.mjs +1 -0
  226. package/plugins/filters/condition/date/after.js +1 -0
  227. package/plugins/filters/condition/date/after.mjs +1 -0
  228. package/plugins/filters/condition/date/before.js +1 -0
  229. package/plugins/filters/condition/date/before.mjs +1 -0
  230. package/plugins/filters/condition/endsWith.js +1 -0
  231. package/plugins/filters/condition/endsWith.mjs +1 -0
  232. package/plugins/filters/condition/equal.js +1 -0
  233. package/plugins/filters/condition/equal.mjs +1 -0
  234. package/plugins/filters/condition/greaterThan.js +1 -0
  235. package/plugins/filters/condition/greaterThan.mjs +1 -0
  236. package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
  237. package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
  238. package/plugins/filters/condition/lessThan.js +1 -0
  239. package/plugins/filters/condition/lessThan.mjs +1 -0
  240. package/plugins/filters/condition/lessThanOrEqual.js +1 -0
  241. package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
  242. package/plugins/filters/conditionCollection.js +1 -0
  243. package/plugins/filters/conditionCollection.mjs +1 -0
  244. package/plugins/filters/filters.js +68 -42
  245. package/plugins/filters/filters.mjs +67 -41
  246. package/plugins/filters/ui/multipleSelect.js +1 -0
  247. package/plugins/filters/ui/multipleSelect.mjs +1 -0
  248. package/plugins/formulas/formulas.js +191 -168
  249. package/plugins/formulas/formulas.mjs +191 -168
  250. package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
  251. package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
  252. package/plugins/formulas/indexSyncer/index.js +225 -0
  253. package/plugins/formulas/indexSyncer/index.mjs +219 -0
  254. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
  255. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
  256. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
  257. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
  258. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
  259. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
  260. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
  261. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
  262. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
  263. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
  264. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
  265. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
  266. package/plugins/manualColumnResize/manualColumnResize.js +36 -5
  267. package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
  268. package/plugins/manualRowMove/manualRowMove.js +31 -12
  269. package/plugins/manualRowMove/manualRowMove.mjs +32 -13
  270. package/plugins/manualRowResize/manualRowResize.js +40 -9
  271. package/plugins/manualRowResize/manualRowResize.mjs +40 -9
  272. package/plugins/mergeCells/calculations/autofill.js +1 -0
  273. package/plugins/mergeCells/calculations/autofill.mjs +1 -0
  274. package/plugins/mergeCells/cellsCollection.js +1 -0
  275. package/plugins/mergeCells/cellsCollection.mjs +1 -0
  276. package/plugins/mergeCells/mergeCells.js +6 -2
  277. package/plugins/mergeCells/mergeCells.mjs +6 -2
  278. package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
  279. package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
  280. package/plugins/multiColumnSorting/rootComparator.js +1 -0
  281. package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
  282. package/plugins/nestedHeaders/nestedHeaders.js +129 -6
  283. package/plugins/nestedHeaders/nestedHeaders.mjs +129 -6
  284. package/plugins/nestedHeaders/stateManager/headersTree.js +24 -26
  285. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -23
  286. package/plugins/nestedHeaders/stateManager/index.js +40 -3
  287. package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
  288. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
  289. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -1
  290. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
  291. package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
  292. package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
  293. package/plugins/nestedRows/data/dataManager.js +1 -0
  294. package/plugins/nestedRows/data/dataManager.mjs +1 -0
  295. package/plugins/nestedRows/nestedRows.js +53 -7
  296. package/plugins/nestedRows/nestedRows.mjs +53 -7
  297. package/plugins/nestedRows/ui/collapsing.js +1 -0
  298. package/plugins/nestedRows/ui/collapsing.mjs +1 -0
  299. package/plugins/nestedRows/utils/rowMoveController.js +1 -0
  300. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
  301. package/plugins/persistentState/storage.js +1 -0
  302. package/plugins/persistentState/storage.mjs +1 -0
  303. package/plugins/registry.js +4 -1
  304. package/plugins/registry.mjs +1 -0
  305. package/plugins/undoRedo/undoRedo.js +1 -1
  306. package/plugins/undoRedo/undoRedo.mjs +1 -1
  307. package/renderers/baseRenderer/baseRenderer.js +0 -3
  308. package/renderers/baseRenderer/baseRenderer.mjs +0 -3
  309. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  310. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  311. package/selection/highlight/highlight.js +120 -98
  312. package/selection/highlight/highlight.mjs +118 -96
  313. package/selection/highlight/visualSelection.js +30 -17
  314. package/selection/highlight/visualSelection.mjs +30 -17
  315. package/selection/mouseEventHandler.js +1 -1
  316. package/selection/mouseEventHandler.mjs +1 -1
  317. package/selection/range.js +8 -8
  318. package/selection/range.mjs +8 -8
  319. package/selection/selection.js +246 -153
  320. package/selection/selection.mjs +247 -154
  321. package/selection/transformation.js +233 -96
  322. package/selection/transformation.mjs +230 -93
  323. package/selection/utils.js +12 -35
  324. package/selection/utils.mjs +13 -35
  325. package/settings.d.ts +2 -1
  326. package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
  327. package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
  328. package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
  329. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  330. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  331. package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
  332. package/shortcutContexts/commands/editor/index.js +16 -0
  333. package/shortcutContexts/commands/editor/index.mjs +12 -0
  334. package/shortcutContexts/commands/editor/open.js +29 -0
  335. package/shortcutContexts/commands/editor/open.mjs +24 -0
  336. package/shortcutContexts/commands/emptySelectedCells.js +12 -0
  337. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  338. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  339. package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
  342. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  343. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  344. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  345. package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
  346. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  347. package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
  348. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  349. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
  350. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
  351. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
  352. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
  353. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
  354. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
  355. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
  356. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
  357. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
  358. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
  359. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
  360. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
  361. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
  362. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  363. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
  364. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  365. package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
  366. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  367. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
  368. package/shortcutContexts/commands/index.js +53 -0
  369. package/shortcutContexts/commands/index.mjs +49 -0
  370. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  371. package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
  372. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
  373. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
  374. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  375. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  376. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
  377. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  378. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  380. package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
  381. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  382. package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
  383. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  384. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  385. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
  386. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  387. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
  388. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  389. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
  390. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  391. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
  392. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
  393. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
  394. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
  395. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
  396. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  397. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
  398. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  399. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
  400. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  401. package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
  402. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
  403. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
  404. package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
  405. package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
  406. package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
  407. package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
  408. package/shortcutContexts/commands/selectAll.js +11 -0
  409. package/shortcutContexts/commands/selectAll.mjs +6 -0
  410. package/shortcutContexts/constants.js +19 -0
  411. package/shortcutContexts/constants.mjs +12 -0
  412. package/shortcutContexts/editor.js +29 -0
  413. package/shortcutContexts/editor.mjs +25 -0
  414. package/shortcutContexts/grid.js +252 -0
  415. package/shortcutContexts/grid.mjs +248 -0
  416. package/shortcutContexts/index.js +29 -0
  417. package/shortcutContexts/index.mjs +15 -0
  418. package/shortcuts/context.js +1 -0
  419. package/shortcuts/context.mjs +1 -0
  420. package/shortcuts/manager.js +2 -0
  421. package/shortcuts/manager.mjs +2 -0
  422. package/shortcuts/recorder.js +2 -2
  423. package/shortcuts/recorder.mjs +2 -2
  424. package/shortcuts/utils.js +21 -5
  425. package/shortcuts/utils.mjs +20 -4
  426. package/tableView.js +112 -82
  427. package/tableView.mjs +112 -82
  428. package/translations/changesObservable/observable.js +41 -46
  429. package/translations/changesObservable/observable.mjs +36 -41
  430. package/translations/changesObservable/observer.js +1 -1
  431. package/translations/indexMapper.d.ts +0 -2
  432. package/translations/indexMapper.js +38 -64
  433. package/translations/indexMapper.mjs +39 -64
  434. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  435. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  436. package/translations/maps/utils/indexesSequence.js +1 -0
  437. package/translations/maps/utils/indexesSequence.mjs +1 -0
  438. package/translations/maps/utils/physicallyIndexed.js +1 -0
  439. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  440. package/utils/dataStructures/priorityMap.js +1 -0
  441. package/utils/dataStructures/priorityMap.mjs +1 -0
  442. package/utils/dataStructures/tree.js +16 -18
  443. package/utils/dataStructures/tree.mjs +16 -18
  444. package/utils/dataStructures/uniqueMap.js +1 -0
  445. package/utils/dataStructures/uniqueMap.mjs +1 -0
  446. package/utils/dataStructures/uniqueSet.js +1 -0
  447. package/utils/dataStructures/uniqueSet.mjs +1 -0
  448. package/utils/ghostTable.js +1 -0
  449. package/utils/ghostTable.mjs +1 -0
  450. package/utils/parseTable.js +5 -1
  451. package/utils/parseTable.mjs +5 -1
  452. package/utils/staticRegister.js +1 -0
  453. package/utils/staticRegister.mjs +1 -0
  454. package/focusManager.d.ts +0 -12
  455. package/focusManager.js +0 -275
  456. package/focusManager.mjs +0 -270
@@ -5,6 +5,7 @@ require("core-js/modules/es.date.to-primitive.js");
5
5
  require("core-js/modules/es.number.constructor.js");
6
6
  require("core-js/modules/es.array.from.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
10
11
  require("core-js/modules/es.object.keys.js");
@@ -65,8 +66,6 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
65
66
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
66
67
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
67
68
  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
68
- var _createHighlight = /*#__PURE__*/new WeakSet();
69
- _Symbol$iterator = Symbol.iterator;
70
69
  /**
71
70
  * Highlight class responsible for managing Walkontable Selection classes.
72
71
  *
@@ -82,102 +81,9 @@ _Symbol$iterator = Symbol.iterator;
82
81
  * @class Highlight
83
82
  * @util
84
83
  */
84
+ var _createHighlight = /*#__PURE__*/new WeakSet();
85
+ _Symbol$iterator = Symbol.iterator;
85
86
  var Highlight = /*#__PURE__*/function () {
86
- /**
87
- * Options consumed by Highlight class and Walkontable Selection classes.
88
- *
89
- * @type {object}
90
- */
91
-
92
- /**
93
- * The property which describes which layer level of the visual selection will be modified.
94
- * This option is valid only for `area` and `header` highlight types which occurs multiple times on
95
- * the table (as a non-consecutive selection).
96
- *
97
- * An order of the layers is the same as the order of added new non-consecutive selections.
98
- *
99
- * @type {number}
100
- * @default 0
101
- */
102
-
103
- /**
104
- * `cell` highlight object which describes attributes for the currently selected cell.
105
- * It can only occur only once on the table.
106
- *
107
- * @type {Selection}
108
- */
109
-
110
- /**
111
- * `fill` highlight object which describes attributes for the borders for autofill functionality.
112
- * It can only occur only once on the table.
113
- *
114
- * @type {Selection}
115
- */
116
-
117
- /**
118
- * Collection of the `area` highlights. That objects describes attributes for the borders and selection of
119
- * the multiple selected cells. It can occur multiple times on the table.
120
- *
121
- * @type {Map.<number, Selection>}
122
- */
123
-
124
- /**
125
- * Collection of the `highlight` highlights. That objects describes attributes for the borders and selection of
126
- * the multiple selected cells. It can occur multiple times on the table.
127
- *
128
- * @type {Map.<number, Selection>}
129
- */
130
-
131
- /**
132
- * Collection of the `header` highlights. That objects describes attributes for the selection of
133
- * the multiple selected rows in the table header. It can occur multiple times on the table.
134
- *
135
- * @type {Map.<number, Selection>}
136
- */
137
-
138
- /**
139
- * Collection of the `header` highlights. That objects describes attributes for the selection of
140
- * the multiple selected columns in the table header. It can occur multiple times on the table.
141
- *
142
- * @type {Map.<number, Selection>}
143
- */
144
-
145
- /**
146
- * Collection of the `active-header` highlights. That objects describes attributes for the selection of
147
- * the multiple selected rows in the table header. The table headers which have selected all items in
148
- * a row will be marked as `active-header`.
149
- *
150
- * @type {Map.<number, Selection>}
151
- */
152
-
153
- /**
154
- * Collection of the `active-header` highlights. That objects describes attributes for the selection of
155
- * the multiple selected columns in the table header. The table headers which have selected all items in
156
- * a row will be marked as `active-header`.
157
- *
158
- * @type {Map.<number, Selection>}
159
- */
160
-
161
- /**
162
- * Collection of the `rows` highlights. That objects describes attributes for the selection of
163
- * the multiple selected cells in a row. It can occur multiple times on the table.
164
- *
165
- * @type {Map.<number, Selection>}
166
- */
167
-
168
- /**
169
- * Collection of the `columns` highlights. That objects describes attributes for the selection of
170
- * the multiple selected cells in a column. It can occur multiple times on the table.
171
- *
172
- * @type {Map.<number, Selection>}
173
- */
174
-
175
- /**
176
- * Collection of the `custom-selection`, holder for example borders added through CustomBorders plugin.
177
- *
178
- * @type {Selection[]}
179
- */
180
-
181
87
  function Highlight(options) {
182
88
  _classCallCheck(this, Highlight);
183
89
  /**
@@ -188,18 +94,108 @@ var Highlight = /*#__PURE__*/function () {
188
94
  * @returns {VisualSelection}
189
95
  */
190
96
  _classPrivateMethodInitSpec(this, _createHighlight);
97
+ /**
98
+ * Options consumed by Highlight class and Walkontable Selection classes.
99
+ *
100
+ * @type {object}
101
+ */
191
102
  _defineProperty(this, "options", void 0);
103
+ /**
104
+ * The property which describes which layer level of the visual selection will be modified.
105
+ * This option is valid only for `area` and `header` highlight types which occurs multiple times on
106
+ * the table (as a non-consecutive selection).
107
+ *
108
+ * An order of the layers is the same as the order of added new non-consecutive selections.
109
+ *
110
+ * @type {number}
111
+ * @default 0
112
+ */
192
113
  _defineProperty(this, "layerLevel", 0);
114
+ /**
115
+ * `cell` highlight object which describes attributes for the currently selected cell.
116
+ * It can only occur only once on the table.
117
+ *
118
+ * @type {Selection}
119
+ */
193
120
  _defineProperty(this, "focus", void 0);
121
+ /**
122
+ * `fill` highlight object which describes attributes for the borders for autofill functionality.
123
+ * It can only occur only once on the table.
124
+ *
125
+ * @type {Selection}
126
+ */
194
127
  _defineProperty(this, "fill", void 0);
128
+ /**
129
+ * Collection of the `area` highlights. That objects describes attributes for the borders and selection of
130
+ * the multiple selected cells. It can occur multiple times on the table.
131
+ *
132
+ * @type {Map.<number, Selection>}
133
+ */
195
134
  _defineProperty(this, "layeredAreas", new Map());
135
+ /**
136
+ * Collection of the `highlight` highlights. That objects describes attributes for the borders and selection of
137
+ * the multiple selected cells. It can occur multiple times on the table.
138
+ *
139
+ * @type {Map.<number, Selection>}
140
+ */
196
141
  _defineProperty(this, "areas", new Map());
142
+ /**
143
+ * Collection of the `header` highlights. That objects describes attributes for the selection of
144
+ * the multiple selected rows in the table header. It can occur multiple times on the table.
145
+ *
146
+ * @type {Map.<number, Selection>}
147
+ */
197
148
  _defineProperty(this, "rowHeaders", new Map());
149
+ /**
150
+ * Collection of the `header` highlights. That objects describes attributes for the selection of
151
+ * the multiple selected columns in the table header. It can occur multiple times on the table.
152
+ *
153
+ * @type {Map.<number, Selection>}
154
+ */
198
155
  _defineProperty(this, "columnHeaders", new Map());
156
+ /**
157
+ * Collection of the `active-header` highlights. That objects describes attributes for the selection of
158
+ * the multiple selected rows in the table header. The table headers which have selected all items in
159
+ * a row will be marked as `active-header`.
160
+ *
161
+ * @type {Map.<number, Selection>}
162
+ */
199
163
  _defineProperty(this, "activeRowHeaders", new Map());
164
+ /**
165
+ * Collection of the `active-header` highlights. That objects describes attributes for the selection of
166
+ * the multiple selected columns in the table header. The table headers which have selected all items in
167
+ * a row will be marked as `active-header`.
168
+ *
169
+ * @type {Map.<number, Selection>}
170
+ */
200
171
  _defineProperty(this, "activeColumnHeaders", new Map());
172
+ /**
173
+ * Collection of the `active-header` highlights. That objects describes attributes for the selection of
174
+ * the selected corner in the table header. The table headers which have selected all items in
175
+ * a row will be marked as `active-header`.
176
+ *
177
+ * @type {Map.<number, Selection>}
178
+ */
179
+ _defineProperty(this, "activeCornerHeaders", new Map());
180
+ /**
181
+ * Collection of the `rows` highlights. That objects describes attributes for the selection of
182
+ * the multiple selected cells in a row. It can occur multiple times on the table.
183
+ *
184
+ * @type {Map.<number, Selection>}
185
+ */
201
186
  _defineProperty(this, "rowHighlights", new Map());
187
+ /**
188
+ * Collection of the `columns` highlights. That objects describes attributes for the selection of
189
+ * the multiple selected cells in a column. It can occur multiple times on the table.
190
+ *
191
+ * @type {Map.<number, Selection>}
192
+ */
202
193
  _defineProperty(this, "columnHighlights", new Map());
194
+ /**
195
+ * Collection of the `custom-selection`, holder for example borders added through CustomBorders plugin.
196
+ *
197
+ * @type {Selection[]}
198
+ */
203
199
  _defineProperty(this, "customSelections", []);
204
200
  this.options = options;
205
201
  this.focus = (0, _focus.createHighlight)(options);
@@ -408,6 +404,29 @@ var Highlight = /*#__PURE__*/function () {
408
404
  return _toConsumableArray(this.activeColumnHeaders.values());
409
405
  }
410
406
 
407
+ /**
408
+ * Creates (if not exist in the cache) Walkontable Selection instance created for controlling
409
+ * highlight for the headers corner.
410
+ *
411
+ * @returns {Selection}
412
+ */
413
+ }, {
414
+ key: "createActiveCornerHeader",
415
+ value: function createActiveCornerHeader() {
416
+ return _classPrivateMethodGet(this, _createHighlight, _createHighlight2).call(this, this.activeCornerHeaders, _activeHeader.createHighlight);
417
+ }
418
+
419
+ /**
420
+ * Get all Walkontable Selection instances which describes the state of the visual highlight of the headers corner.
421
+ *
422
+ * @returns {Selection[]}
423
+ */
424
+ }, {
425
+ key: "getActiveCornerHeaders",
426
+ value: function getActiveCornerHeaders() {
427
+ return _toConsumableArray(this.activeCornerHeaders.values());
428
+ }
429
+
411
430
  /**
412
431
  * Creates (if not exist in the cache) Walkontable Selection instance created for controlling
413
432
  * highlight cells in a row.
@@ -502,6 +521,9 @@ var Highlight = /*#__PURE__*/function () {
502
521
  (0, _array.arrayEach)(this.activeColumnHeaders.values(), function (highlight) {
503
522
  return void highlight.clear();
504
523
  });
524
+ (0, _array.arrayEach)(this.activeCornerHeaders.values(), function (highlight) {
525
+ return void highlight.clear();
526
+ });
505
527
  (0, _array.arrayEach)(this.rowHighlights.values(), function (highlight) {
506
528
  return void highlight.clear();
507
529
  });
@@ -518,7 +540,7 @@ var Highlight = /*#__PURE__*/function () {
518
540
  * @returns {Selection[]}
519
541
  */
520
542
  function value() {
521
- return [this.focus, this.fill].concat(_toConsumableArray(this.areas.values()), _toConsumableArray(this.layeredAreas.values()), _toConsumableArray(this.rowHeaders.values()), _toConsumableArray(this.columnHeaders.values()), _toConsumableArray(this.activeRowHeaders.values()), _toConsumableArray(this.activeColumnHeaders.values()), _toConsumableArray(this.rowHighlights.values()), _toConsumableArray(this.columnHighlights.values()), _toConsumableArray(this.customSelections))[Symbol.iterator]();
543
+ return [this.focus, this.fill].concat(_toConsumableArray(this.areas.values()), _toConsumableArray(this.layeredAreas.values()), _toConsumableArray(this.rowHeaders.values()), _toConsumableArray(this.columnHeaders.values()), _toConsumableArray(this.activeRowHeaders.values()), _toConsumableArray(this.activeColumnHeaders.values()), _toConsumableArray(this.activeCornerHeaders.values()), _toConsumableArray(this.rowHighlights.values()), _toConsumableArray(this.columnHighlights.values()), _toConsumableArray(this.customSelections))[Symbol.iterator]();
522
544
  }
523
545
  }]);
524
546
  return Highlight;
@@ -26,6 +26,7 @@ import "core-js/modules/es.date.to-primitive.js";
26
26
  import "core-js/modules/es.number.constructor.js";
27
27
  import "core-js/modules/es.array.from.js";
28
28
  import "core-js/modules/es.array.slice.js";
29
+ import "core-js/modules/es.regexp.to-string.js";
29
30
  import "core-js/modules/es.function.name.js";
30
31
  import "core-js/modules/es.regexp.exec.js";
31
32
  import "core-js/modules/es.object.keys.js";
@@ -73,101 +74,6 @@ export { HIGHLIGHT_ACTIVE_HEADER_TYPE as ACTIVE_HEADER_TYPE, HIGHLIGHT_AREA_TYPE
73
74
  var _createHighlight = /*#__PURE__*/new WeakSet();
74
75
  _Symbol$iterator = Symbol.iterator;
75
76
  var Highlight = /*#__PURE__*/function () {
76
- /**
77
- * Options consumed by Highlight class and Walkontable Selection classes.
78
- *
79
- * @type {object}
80
- */
81
-
82
- /**
83
- * The property which describes which layer level of the visual selection will be modified.
84
- * This option is valid only for `area` and `header` highlight types which occurs multiple times on
85
- * the table (as a non-consecutive selection).
86
- *
87
- * An order of the layers is the same as the order of added new non-consecutive selections.
88
- *
89
- * @type {number}
90
- * @default 0
91
- */
92
-
93
- /**
94
- * `cell` highlight object which describes attributes for the currently selected cell.
95
- * It can only occur only once on the table.
96
- *
97
- * @type {Selection}
98
- */
99
-
100
- /**
101
- * `fill` highlight object which describes attributes for the borders for autofill functionality.
102
- * It can only occur only once on the table.
103
- *
104
- * @type {Selection}
105
- */
106
-
107
- /**
108
- * Collection of the `area` highlights. That objects describes attributes for the borders and selection of
109
- * the multiple selected cells. It can occur multiple times on the table.
110
- *
111
- * @type {Map.<number, Selection>}
112
- */
113
-
114
- /**
115
- * Collection of the `highlight` highlights. That objects describes attributes for the borders and selection of
116
- * the multiple selected cells. It can occur multiple times on the table.
117
- *
118
- * @type {Map.<number, Selection>}
119
- */
120
-
121
- /**
122
- * Collection of the `header` highlights. That objects describes attributes for the selection of
123
- * the multiple selected rows in the table header. It can occur multiple times on the table.
124
- *
125
- * @type {Map.<number, Selection>}
126
- */
127
-
128
- /**
129
- * Collection of the `header` highlights. That objects describes attributes for the selection of
130
- * the multiple selected columns in the table header. It can occur multiple times on the table.
131
- *
132
- * @type {Map.<number, Selection>}
133
- */
134
-
135
- /**
136
- * Collection of the `active-header` highlights. That objects describes attributes for the selection of
137
- * the multiple selected rows in the table header. The table headers which have selected all items in
138
- * a row will be marked as `active-header`.
139
- *
140
- * @type {Map.<number, Selection>}
141
- */
142
-
143
- /**
144
- * Collection of the `active-header` highlights. That objects describes attributes for the selection of
145
- * the multiple selected columns in the table header. The table headers which have selected all items in
146
- * a row will be marked as `active-header`.
147
- *
148
- * @type {Map.<number, Selection>}
149
- */
150
-
151
- /**
152
- * Collection of the `rows` highlights. That objects describes attributes for the selection of
153
- * the multiple selected cells in a row. It can occur multiple times on the table.
154
- *
155
- * @type {Map.<number, Selection>}
156
- */
157
-
158
- /**
159
- * Collection of the `columns` highlights. That objects describes attributes for the selection of
160
- * the multiple selected cells in a column. It can occur multiple times on the table.
161
- *
162
- * @type {Map.<number, Selection>}
163
- */
164
-
165
- /**
166
- * Collection of the `custom-selection`, holder for example borders added through CustomBorders plugin.
167
- *
168
- * @type {Selection[]}
169
- */
170
-
171
77
  function Highlight(options) {
172
78
  _classCallCheck(this, Highlight);
173
79
  /**
@@ -178,18 +84,108 @@ var Highlight = /*#__PURE__*/function () {
178
84
  * @returns {VisualSelection}
179
85
  */
180
86
  _classPrivateMethodInitSpec(this, _createHighlight);
87
+ /**
88
+ * Options consumed by Highlight class and Walkontable Selection classes.
89
+ *
90
+ * @type {object}
91
+ */
181
92
  _defineProperty(this, "options", void 0);
93
+ /**
94
+ * The property which describes which layer level of the visual selection will be modified.
95
+ * This option is valid only for `area` and `header` highlight types which occurs multiple times on
96
+ * the table (as a non-consecutive selection).
97
+ *
98
+ * An order of the layers is the same as the order of added new non-consecutive selections.
99
+ *
100
+ * @type {number}
101
+ * @default 0
102
+ */
182
103
  _defineProperty(this, "layerLevel", 0);
104
+ /**
105
+ * `cell` highlight object which describes attributes for the currently selected cell.
106
+ * It can only occur only once on the table.
107
+ *
108
+ * @type {Selection}
109
+ */
183
110
  _defineProperty(this, "focus", void 0);
111
+ /**
112
+ * `fill` highlight object which describes attributes for the borders for autofill functionality.
113
+ * It can only occur only once on the table.
114
+ *
115
+ * @type {Selection}
116
+ */
184
117
  _defineProperty(this, "fill", void 0);
118
+ /**
119
+ * Collection of the `area` highlights. That objects describes attributes for the borders and selection of
120
+ * the multiple selected cells. It can occur multiple times on the table.
121
+ *
122
+ * @type {Map.<number, Selection>}
123
+ */
185
124
  _defineProperty(this, "layeredAreas", new Map());
125
+ /**
126
+ * Collection of the `highlight` highlights. That objects describes attributes for the borders and selection of
127
+ * the multiple selected cells. It can occur multiple times on the table.
128
+ *
129
+ * @type {Map.<number, Selection>}
130
+ */
186
131
  _defineProperty(this, "areas", new Map());
132
+ /**
133
+ * Collection of the `header` highlights. That objects describes attributes for the selection of
134
+ * the multiple selected rows in the table header. It can occur multiple times on the table.
135
+ *
136
+ * @type {Map.<number, Selection>}
137
+ */
187
138
  _defineProperty(this, "rowHeaders", new Map());
139
+ /**
140
+ * Collection of the `header` highlights. That objects describes attributes for the selection of
141
+ * the multiple selected columns in the table header. It can occur multiple times on the table.
142
+ *
143
+ * @type {Map.<number, Selection>}
144
+ */
188
145
  _defineProperty(this, "columnHeaders", new Map());
146
+ /**
147
+ * Collection of the `active-header` highlights. That objects describes attributes for the selection of
148
+ * the multiple selected rows in the table header. The table headers which have selected all items in
149
+ * a row will be marked as `active-header`.
150
+ *
151
+ * @type {Map.<number, Selection>}
152
+ */
189
153
  _defineProperty(this, "activeRowHeaders", new Map());
154
+ /**
155
+ * Collection of the `active-header` highlights. That objects describes attributes for the selection of
156
+ * the multiple selected columns in the table header. The table headers which have selected all items in
157
+ * a row will be marked as `active-header`.
158
+ *
159
+ * @type {Map.<number, Selection>}
160
+ */
190
161
  _defineProperty(this, "activeColumnHeaders", new Map());
162
+ /**
163
+ * Collection of the `active-header` highlights. That objects describes attributes for the selection of
164
+ * the selected corner in the table header. The table headers which have selected all items in
165
+ * a row will be marked as `active-header`.
166
+ *
167
+ * @type {Map.<number, Selection>}
168
+ */
169
+ _defineProperty(this, "activeCornerHeaders", new Map());
170
+ /**
171
+ * Collection of the `rows` highlights. That objects describes attributes for the selection of
172
+ * the multiple selected cells in a row. It can occur multiple times on the table.
173
+ *
174
+ * @type {Map.<number, Selection>}
175
+ */
191
176
  _defineProperty(this, "rowHighlights", new Map());
177
+ /**
178
+ * Collection of the `columns` highlights. That objects describes attributes for the selection of
179
+ * the multiple selected cells in a column. It can occur multiple times on the table.
180
+ *
181
+ * @type {Map.<number, Selection>}
182
+ */
192
183
  _defineProperty(this, "columnHighlights", new Map());
184
+ /**
185
+ * Collection of the `custom-selection`, holder for example borders added through CustomBorders plugin.
186
+ *
187
+ * @type {Selection[]}
188
+ */
193
189
  _defineProperty(this, "customSelections", []);
194
190
  this.options = options;
195
191
  this.focus = createFocusHighlight(options);
@@ -398,6 +394,29 @@ var Highlight = /*#__PURE__*/function () {
398
394
  return _toConsumableArray(this.activeColumnHeaders.values());
399
395
  }
400
396
 
397
+ /**
398
+ * Creates (if not exist in the cache) Walkontable Selection instance created for controlling
399
+ * highlight for the headers corner.
400
+ *
401
+ * @returns {Selection}
402
+ */
403
+ }, {
404
+ key: "createActiveCornerHeader",
405
+ value: function createActiveCornerHeader() {
406
+ return _classPrivateMethodGet(this, _createHighlight, _createHighlight2).call(this, this.activeCornerHeaders, createActiveHighlight);
407
+ }
408
+
409
+ /**
410
+ * Get all Walkontable Selection instances which describes the state of the visual highlight of the headers corner.
411
+ *
412
+ * @returns {Selection[]}
413
+ */
414
+ }, {
415
+ key: "getActiveCornerHeaders",
416
+ value: function getActiveCornerHeaders() {
417
+ return _toConsumableArray(this.activeCornerHeaders.values());
418
+ }
419
+
401
420
  /**
402
421
  * Creates (if not exist in the cache) Walkontable Selection instance created for controlling
403
422
  * highlight cells in a row.
@@ -492,6 +511,9 @@ var Highlight = /*#__PURE__*/function () {
492
511
  arrayEach(this.activeColumnHeaders.values(), function (highlight) {
493
512
  return void highlight.clear();
494
513
  });
514
+ arrayEach(this.activeCornerHeaders.values(), function (highlight) {
515
+ return void highlight.clear();
516
+ });
495
517
  arrayEach(this.rowHighlights.values(), function (highlight) {
496
518
  return void highlight.clear();
497
519
  });
@@ -508,7 +530,7 @@ var Highlight = /*#__PURE__*/function () {
508
530
  * @returns {Selection[]}
509
531
  */
510
532
  function value() {
511
- return [this.focus, this.fill].concat(_toConsumableArray(this.areas.values()), _toConsumableArray(this.layeredAreas.values()), _toConsumableArray(this.rowHeaders.values()), _toConsumableArray(this.columnHeaders.values()), _toConsumableArray(this.activeRowHeaders.values()), _toConsumableArray(this.activeColumnHeaders.values()), _toConsumableArray(this.rowHighlights.values()), _toConsumableArray(this.columnHighlights.values()), _toConsumableArray(this.customSelections))[Symbol.iterator]();
533
+ return [this.focus, this.fill].concat(_toConsumableArray(this.areas.values()), _toConsumableArray(this.layeredAreas.values()), _toConsumableArray(this.rowHeaders.values()), _toConsumableArray(this.columnHeaders.values()), _toConsumableArray(this.activeRowHeaders.values()), _toConsumableArray(this.activeColumnHeaders.values()), _toConsumableArray(this.activeCornerHeaders.values()), _toConsumableArray(this.rowHighlights.values()), _toConsumableArray(this.columnHighlights.values()), _toConsumableArray(this.customSelections))[Symbol.iterator]();
512
534
  }
513
535
  }]);
514
536
  return Highlight;
@@ -37,16 +37,15 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
37
37
  var VisualSelection = /*#__PURE__*/function (_Selection) {
38
38
  _inherits(VisualSelection, _Selection);
39
39
  var _super = _createSuper(VisualSelection);
40
- /**
41
- * Range of selection visually. Visual representation may have representation in a rendered selection.
42
- *
43
- * @type {null|CellRange}
44
- */
45
-
46
40
  function VisualSelection(settings, visualCellRange) {
47
41
  var _this;
48
42
  _classCallCheck(this, VisualSelection);
49
43
  _this = _super.call(this, settings, null);
44
+ /**
45
+ * Range of selection visually. Visual representation may have representation in a rendered selection.
46
+ *
47
+ * @type {null|CellRange}
48
+ */
50
49
  _defineProperty(_assertThisInitialized(_this), "visualCellRange", null);
51
50
  _this.visualCellRange = visualCellRange || null;
52
51
  _this.commit();
@@ -121,13 +120,13 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
121
120
  key: "getNearestNotHiddenCoords",
122
121
  value: function getNearestNotHiddenCoords(coords, rowSearchDirection) {
123
122
  var columnSearchDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rowSearchDirection;
124
- var nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper(), coords.row, rowSearchDirection);
123
+ var nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper, coords.row, rowSearchDirection);
125
124
 
126
125
  // There are no more visual rows in the range.
127
126
  if (nextVisibleRow === null) {
128
127
  return null;
129
128
  }
130
- var nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper(), coords.col, columnSearchDirection);
129
+ var nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper, coords.col, columnSearchDirection);
131
130
 
132
131
  // There are no more visual columns in the range.
133
132
  if (nextVisibleColumn === null) {
@@ -193,24 +192,38 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
193
192
  }, {
194
193
  key: "syncWith",
195
194
  value: function syncWith(broaderCellRange) {
195
+ var coordsFrom = broaderCellRange.from.clone().normalize();
196
196
  var rowDirection = broaderCellRange.getVerticalDirection() === 'N-S' ? 1 : -1;
197
197
  var columnDirection = broaderCellRange.getHorizontalDirection() === 'W-E' ? 1 : -1;
198
- var singleCellRangeVisual = this.getNearestNotHiddenCoords(broaderCellRange.from.clone().normalize(), rowDirection, columnDirection);
199
- if (singleCellRangeVisual !== null && broaderCellRange.overlaps(singleCellRangeVisual)) {
200
- // We can't show selection visually now, but we found fist visible range in the broader cell range.
198
+ var renderableHighlight = this.settings.visualToRenderableCoords(this.visualCellRange.highlight);
199
+ var cellCoordsVisual = null;
200
+ if (renderableHighlight === null || renderableHighlight.col === null || renderableHighlight.row === null) {
201
+ cellCoordsVisual = this.getNearestNotHiddenCoords(coordsFrom, rowDirection, columnDirection);
202
+ }
203
+ if (cellCoordsVisual !== null && broaderCellRange.overlaps(cellCoordsVisual)) {
204
+ var currentHighlight = broaderCellRange.highlight.clone();
205
+ if (currentHighlight.row >= 0) {
206
+ currentHighlight.row = cellCoordsVisual.row;
207
+ }
208
+ if (currentHighlight.col >= 0) {
209
+ currentHighlight.col = cellCoordsVisual.col;
210
+ }
211
+
212
+ // We can't show selection visually now, but we found first visible range in the broader cell range.
201
213
  if (this.cellRange === null) {
202
- var singleCellRangeRenderable = this.settings.visualToRenderableCoords(singleCellRangeVisual);
203
- this.cellRange = this.settings.createCellRange(singleCellRangeRenderable);
214
+ var cellCoordsRenderable = this.settings.visualToRenderableCoords(currentHighlight);
215
+ this.cellRange = this.settings.createCellRange(cellCoordsRenderable);
204
216
  }
205
217
 
206
218
  // We set new highlight as it might change (for example, when showing/hiding some cells from the broader selection range)
207
219
  // TODO: It is also handled by the `MergeCells` plugin while adjusting already modified coordinates. Should it?
208
- broaderCellRange.setHighlight(singleCellRangeVisual);
209
- return this;
220
+ broaderCellRange.setHighlight(currentHighlight);
210
221
  }
211
222
 
212
- // Fallback to the start of the range. It resets the previous highlight (for example, when all columns have been hidden).
213
- broaderCellRange.setHighlight(broaderCellRange.from);
223
+ // Sync the highlight coords from the visual selection layer with logical coords.
224
+ if (this.settings.selectionType === 'focus' && renderableHighlight !== null && cellCoordsVisual === null) {
225
+ broaderCellRange.setHighlight(this.visualCellRange.highlight);
226
+ }
214
227
  return this;
215
228
  }
216
229