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
@@ -0,0 +1,374 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ import "core-js/modules/es.array.map.js";
3
+ import "core-js/modules/es.array.index-of.js";
4
+ import "core-js/modules/es.object.to-string.js";
5
+ import "core-js/modules/web.dom-collections.for-each.js";
6
+ import "core-js/modules/es.array.filter.js";
7
+ import "core-js/modules/es.array.from.js";
8
+ import "core-js/modules/es.string.iterator.js";
9
+ import "core-js/modules/es.array.iterator.js";
10
+ import "core-js/modules/web.dom-collections.iterator.js";
11
+ import "core-js/modules/es.array.includes.js";
12
+ import "core-js/modules/es.string.includes.js";
13
+ import "core-js/modules/es.array.slice.js";
14
+ import "core-js/modules/es.weak-map.js";
15
+ import "core-js/modules/es.symbol.to-primitive.js";
16
+ import "core-js/modules/es.date.to-primitive.js";
17
+ import "core-js/modules/es.symbol.js";
18
+ import "core-js/modules/es.symbol.description.js";
19
+ import "core-js/modules/es.number.constructor.js";
20
+ import "core-js/modules/es.symbol.iterator.js";
21
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
23
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
24
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
25
+ 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); }
26
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
27
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
28
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
29
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
30
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
31
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
32
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
33
+ import { toUpperCaseFirst } from "../../../helpers/string.mjs";
34
+ /**
35
+ * @private
36
+ * @class IndexSyncer
37
+ * @description
38
+ *
39
+ * Indexes synchronizer responsible for providing logic for particular axis. It respects an idea to represent trimmed
40
+ * elements in HF's engine to perform formulas calculations on them. It also provides method for translation from visual
41
+ * row/column indexes to HF's row/column indexes.
42
+ */
43
+ var _axis = /*#__PURE__*/new WeakMap();
44
+ var _indexMapper = /*#__PURE__*/new WeakMap();
45
+ var _indexSyncer = /*#__PURE__*/new WeakMap();
46
+ var _indexesSequence = /*#__PURE__*/new WeakMap();
47
+ var _movedIndexes = /*#__PURE__*/new WeakMap();
48
+ var _finalIndex = /*#__PURE__*/new WeakMap();
49
+ var _removedIndexes = /*#__PURE__*/new WeakMap();
50
+ var AxisSyncer = /*#__PURE__*/function () {
51
+ function AxisSyncer(axis, indexMapper, indexSyncer) {
52
+ _classCallCheck(this, AxisSyncer);
53
+ /**
54
+ * The axis for which the actions are performed.
55
+ *
56
+ * @private
57
+ * @type {'row'|'column'}
58
+ */
59
+ _classPrivateFieldInitSpec(this, _axis, {
60
+ writable: true,
61
+ value: void 0
62
+ });
63
+ /**
64
+ * Reference to index mapper.
65
+ *
66
+ * @private
67
+ * @type {IndexMapper}
68
+ */
69
+ _classPrivateFieldInitSpec(this, _indexMapper, {
70
+ writable: true,
71
+ value: void 0
72
+ });
73
+ /**
74
+ * The index synchronizer for both axis (is storing some more general information).
75
+ *
76
+ * @private
77
+ * @type {IndexSyncer}
78
+ */
79
+ _classPrivateFieldInitSpec(this, _indexSyncer, {
80
+ writable: true,
81
+ value: void 0
82
+ });
83
+ /**
84
+ * Sequence of physical indexes stored for watching changes and calculating some transformations.
85
+ *
86
+ * @private
87
+ * @type {Array<number>}
88
+ */
89
+ _classPrivateFieldInitSpec(this, _indexesSequence, {
90
+ writable: true,
91
+ value: []
92
+ });
93
+ /**
94
+ * List of moved HF indexes, stored before performing move on HOT to calculate transformation needed on HF's engine.
95
+ *
96
+ * @private
97
+ * @type {Array<number>}
98
+ */
99
+ _classPrivateFieldInitSpec(this, _movedIndexes, {
100
+ writable: true,
101
+ value: []
102
+ });
103
+ /**
104
+ * Final HF's place where to move indexes, stored before performing move on HOT to calculate transformation needed on HF's engine.
105
+ *
106
+ * @private
107
+ * @type {number|undefined}
108
+ */
109
+ _classPrivateFieldInitSpec(this, _finalIndex, {
110
+ writable: true,
111
+ value: void 0
112
+ });
113
+ /**
114
+ * List of removed HF indexes, stored before performing removal on HOT to calculate transformation needed on HF's engine.
115
+ *
116
+ * @private
117
+ * @type {Array<number>}
118
+ */
119
+ _classPrivateFieldInitSpec(this, _removedIndexes, {
120
+ writable: true,
121
+ value: []
122
+ });
123
+ _classPrivateFieldSet(this, _axis, axis);
124
+ _classPrivateFieldSet(this, _indexMapper, indexMapper);
125
+ _classPrivateFieldSet(this, _indexSyncer, indexSyncer);
126
+ }
127
+
128
+ /**
129
+ * Sets removed HF indexes (it should be done right before performing move on HOT).
130
+ *
131
+ * @param {Array<number>} removedIndexes List of removed physical indexes.
132
+ * @returns {Array<number>} List of removed visual indexes.
133
+ */
134
+ _createClass(AxisSyncer, [{
135
+ key: "setRemovedHfIndexes",
136
+ value: function setRemovedHfIndexes(removedIndexes) {
137
+ var _this = this;
138
+ _classPrivateFieldSet(this, _removedIndexes, removedIndexes.map(function (physicalIndex) {
139
+ var visualIndex = _classPrivateFieldGet(_this, _indexMapper).getVisualFromPhysicalIndex(physicalIndex);
140
+ return _this.getHfIndexFromVisualIndex(visualIndex);
141
+ }));
142
+ return _classPrivateFieldGet(this, _removedIndexes);
143
+ }
144
+
145
+ /**
146
+ * Gets removed HF indexes (right before performing removal on HOT).
147
+ *
148
+ * @returns {Array<number>} List of removed HF indexes.
149
+ */
150
+ }, {
151
+ key: "getRemovedHfIndexes",
152
+ value: function getRemovedHfIndexes() {
153
+ return _classPrivateFieldGet(this, _removedIndexes);
154
+ }
155
+
156
+ /**
157
+ * Gets corresponding HyperFormula index for particular visual index. It's respecting the idea that HF's engine
158
+ * is fed also with trimmed indexes (business requirements for formula result calculation also for trimmed elements).
159
+ *
160
+ * @param {number} visualIndex Visual index.
161
+ * @returns {number}
162
+ */
163
+ }, {
164
+ key: "getHfIndexFromVisualIndex",
165
+ value: function getHfIndexFromVisualIndex(visualIndex) {
166
+ var indexesSequence = _classPrivateFieldGet(this, _indexMapper).getIndexesSequence();
167
+ var notTrimmedIndexes = _classPrivateFieldGet(this, _indexMapper).getNotTrimmedIndexes();
168
+ return indexesSequence.indexOf(notTrimmedIndexes[visualIndex]);
169
+ }
170
+
171
+ /**
172
+ * Synchronizes moves done on HOT to HF engine (based on previously calculated positions).
173
+ *
174
+ * @private
175
+ * @param {Array<{from: number, to: number}>} moves Calculated HF's move positions.
176
+ */
177
+ }, {
178
+ key: "syncMoves",
179
+ value: function syncMoves(moves) {
180
+ var _this2 = this;
181
+ var NUMBER_OF_MOVED_INDEXES = 1;
182
+ var SYNC_MOVE_METHOD_NAME = "move".concat(toUpperCaseFirst(_classPrivateFieldGet(this, _axis)), "s");
183
+ _classPrivateFieldGet(this, _indexSyncer).getEngine().batch(function () {
184
+ moves.forEach(function (move) {
185
+ var moveToTheSamePosition = move.from !== move.to;
186
+ // Moving from left to right (or top to bottom) to a line (drop index) right after already moved element.
187
+ var anotherMoveWithoutEffect = move.from + 1 !== move.to;
188
+ if (moveToTheSamePosition && anotherMoveWithoutEffect) {
189
+ _classPrivateFieldGet(_this2, _indexSyncer).getEngine()[SYNC_MOVE_METHOD_NAME](_classPrivateFieldGet(_this2, _indexSyncer).getSheetId(), move.from, NUMBER_OF_MOVED_INDEXES, move.to);
190
+ }
191
+ });
192
+ });
193
+ }
194
+
195
+ /**
196
+ * Stores information about performed HOT moves for purpose of calculating where to move HF elements.
197
+ *
198
+ * @param {Array<number>} movedVisualIndexes Sequence of moved visual indexes for certain axis.
199
+ * @param {number} visualFinalIndex Final visual place where to move HOT indexes.
200
+ * @param {boolean} movePossible Indicates if it's possible to move HOT indexes to the desired position.
201
+ */
202
+ }, {
203
+ key: "storeMovesInformation",
204
+ value: function storeMovesInformation(movedVisualIndexes, visualFinalIndex, movePossible) {
205
+ var _this3 = this;
206
+ if (movePossible === false) {
207
+ return;
208
+ }
209
+ _classPrivateFieldSet(this, _movedIndexes, movedVisualIndexes.map(function (index) {
210
+ return _this3.getHfIndexFromVisualIndex(index);
211
+ }));
212
+ _classPrivateFieldSet(this, _finalIndex, this.getHfIndexFromVisualIndex(visualFinalIndex));
213
+ }
214
+
215
+ /**
216
+ * Gets first position where to move element (respecting the fact that some element will be sooner or later
217
+ * taken out of the dataset in order to move them).
218
+ *
219
+ * @param {Array<number>} movedHfIndexes Sequence of moved HF indexes for certain axis.
220
+ * @param {number} finalHfIndex Final HF place where to move rows.
221
+ * @returns {number} HF's index informing where to move the first element.
222
+ * @private
223
+ */
224
+ }, {
225
+ key: "getMoveLine",
226
+ value: function getMoveLine(movedHfIndexes, finalHfIndex) {
227
+ var numberOfElements = _classPrivateFieldGet(this, _indexMapper).getNumberOfIndexes();
228
+ var notMovedElements = Array.from(Array(numberOfElements).keys()).filter(function (index) {
229
+ return movedHfIndexes.includes(index) === false;
230
+ });
231
+ if (finalHfIndex === 0) {
232
+ var _notMovedElements$fin;
233
+ return (_notMovedElements$fin = notMovedElements[finalHfIndex]) !== null && _notMovedElements$fin !== void 0 ? _notMovedElements$fin : 0; // Moving before the first dataset's element.
234
+ }
235
+
236
+ return notMovedElements[finalHfIndex - 1] + 1; // Moving before another element.
237
+ }
238
+
239
+ /**
240
+ * Gets initially calculated HF's move positions.
241
+ *
242
+ * @private
243
+ * @param {Array<number>} movedHfIndexes Sequence of moved HF indexes for certain axis.
244
+ * @param {number} finalHfIndex Final HF place where to move rows.
245
+ * @returns {Array<{from: number, to: number}>} Initially calculated HF's move positions.
246
+ */
247
+ }, {
248
+ key: "getInitiallyCalculatedMoves",
249
+ value: function getInitiallyCalculatedMoves(movedHfIndexes, finalHfIndex) {
250
+ var moveLine = this.getMoveLine(movedHfIndexes, finalHfIndex);
251
+ var moves = [];
252
+ movedHfIndexes.forEach(function (movedHfIndex) {
253
+ var move = {
254
+ from: movedHfIndex,
255
+ to: moveLine
256
+ };
257
+ moves.forEach(function (previouslyMovedIndex) {
258
+ var isMovingFromEndToStart = previouslyMovedIndex.from > previouslyMovedIndex.to;
259
+ var isMovingElementBefore = previouslyMovedIndex.to <= move.from;
260
+ var isMovingAfterElement = previouslyMovedIndex.from > move.from;
261
+ if (isMovingAfterElement && isMovingElementBefore && isMovingFromEndToStart) {
262
+ move.from += 1;
263
+ }
264
+ });
265
+
266
+ // Moved element from right to left (or bottom to top).
267
+ if (move.from >= moveLine) {
268
+ moveLine += 1;
269
+ }
270
+ moves.push(move);
271
+ });
272
+ return moves;
273
+ }
274
+
275
+ /**
276
+ * Gets finally calculated HF's move positions (after adjusting).
277
+ *
278
+ * @private
279
+ * @param {Array<{from: number, to: number}>} moves Initially calculated HF's move positions.
280
+ * @returns {Array<{from: number, to: number}>} Finally calculated HF's move positions (after adjusting).
281
+ */
282
+ }, {
283
+ key: "adjustedCalculatedMoves",
284
+ value: function adjustedCalculatedMoves(moves) {
285
+ moves.forEach(function (move, index) {
286
+ var nextMoved = moves.slice(index + 1);
287
+ nextMoved.forEach(function (nextMovedIndex) {
288
+ var isMovingFromStartToEnd = nextMovedIndex.from < nextMovedIndex.to;
289
+ if (nextMovedIndex.from > move.from && isMovingFromStartToEnd) {
290
+ nextMovedIndex.from -= 1;
291
+ }
292
+ });
293
+ });
294
+ return moves;
295
+ }
296
+
297
+ /**
298
+ * Calculating where to move HF elements and performing already calculated moves.
299
+ *
300
+ * @param {boolean} movePossible Indicates if it was possible to move HOT indexes to the desired position.
301
+ * @param {boolean} orderChanged Indicates if order of HOT indexes was changed by move.
302
+ */
303
+ }, {
304
+ key: "calculateAndSyncMoves",
305
+ value: function calculateAndSyncMoves(movePossible, orderChanged) {
306
+ var _this4 = this;
307
+ if (_classPrivateFieldGet(this, _indexSyncer).isPerformingUndoRedo()) {
308
+ return;
309
+ }
310
+ if (movePossible === false || orderChanged === false) {
311
+ return;
312
+ }
313
+ var calculatedMoves = this.adjustedCalculatedMoves(this.getInitiallyCalculatedMoves(_classPrivateFieldGet(this, _movedIndexes), _classPrivateFieldGet(this, _finalIndex)));
314
+ if (_classPrivateFieldGet(this, _indexSyncer).getSheetId() === null) {
315
+ _classPrivateFieldGet(this, _indexSyncer).getPostponeAction(function () {
316
+ return _this4.syncMoves(calculatedMoves);
317
+ });
318
+ } else {
319
+ this.syncMoves(calculatedMoves);
320
+ }
321
+ }
322
+
323
+ /**
324
+ * Gets callback for hook triggered after performing change of indexes order.
325
+ *
326
+ * @returns {Function}
327
+ */
328
+ }, {
329
+ key: "getIndexesChangeSyncMethod",
330
+ value: function getIndexesChangeSyncMethod() {
331
+ var _this5 = this;
332
+ var SYNC_ORDER_CHANGE_METHOD_NAME = "set".concat(toUpperCaseFirst(_classPrivateFieldGet(this, _axis)), "Order");
333
+ return function (source) {
334
+ if (_classPrivateFieldGet(_this5, _indexSyncer).isPerformingUndoRedo()) {
335
+ return;
336
+ }
337
+ var newSequence = _classPrivateFieldGet(_this5, _indexMapper).getIndexesSequence();
338
+ if (source === 'update') {
339
+ var relativeTransformation = _classPrivateFieldGet(_this5, _indexesSequence).map(function (index) {
340
+ return newSequence.indexOf(index);
341
+ });
342
+ var sheetDimensions = _classPrivateFieldGet(_this5, _indexSyncer).getEngine().getSheetDimensions(_classPrivateFieldGet(_this5, _indexSyncer).getSheetId());
343
+ var sizeForAxis;
344
+ if (_classPrivateFieldGet(_this5, _axis) === 'row') {
345
+ sizeForAxis = sheetDimensions.height;
346
+ } else {
347
+ sizeForAxis = sheetDimensions.width;
348
+ }
349
+ var numberOfReorganisedIndexes = relativeTransformation.length;
350
+
351
+ // Sheet dimension can be changed by HF's engine for purpose of calculating values. It extends dependency
352
+ // graph to calculate values outside of a defined dataset. This part of code could be removed after resolving
353
+ // feature request from HF issue board (handsontable/hyperformula#1179).
354
+ for (var i = numberOfReorganisedIndexes; i < sizeForAxis; i += 1) {
355
+ relativeTransformation.push(i);
356
+ }
357
+ _classPrivateFieldGet(_this5, _indexSyncer).getEngine()[SYNC_ORDER_CHANGE_METHOD_NAME](_classPrivateFieldGet(_this5, _indexSyncer).getSheetId(), relativeTransformation);
358
+ }
359
+ _classPrivateFieldSet(_this5, _indexesSequence, newSequence);
360
+ };
361
+ }
362
+
363
+ /**
364
+ * Initialize the AxisSyncer.
365
+ */
366
+ }, {
367
+ key: "init",
368
+ value: function init() {
369
+ _classPrivateFieldSet(this, _indexesSequence, _classPrivateFieldGet(this, _indexMapper).getIndexesSequence());
370
+ }
371
+ }]);
372
+ return AxisSyncer;
373
+ }();
374
+ export default AxisSyncer;
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.to-primitive.js");
4
+ require("core-js/modules/es.date.to-primitive.js");
5
+ require("core-js/modules/es.symbol.js");
6
+ require("core-js/modules/es.symbol.description.js");
7
+ require("core-js/modules/es.number.constructor.js");
8
+ require("core-js/modules/es.symbol.iterator.js");
9
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10
+ exports.__esModule = true;
11
+ exports.default = void 0;
12
+ require("core-js/modules/es.array.iterator.js");
13
+ require("core-js/modules/es.object.to-string.js");
14
+ require("core-js/modules/es.string.iterator.js");
15
+ require("core-js/modules/es.weak-map.js");
16
+ require("core-js/modules/web.dom-collections.iterator.js");
17
+ var _axisSyncer = _interopRequireDefault(require("./axisSyncer"));
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
21
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
22
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
23
+ 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); }
24
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
25
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
26
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
27
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
28
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
29
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
30
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
31
+ /**
32
+ * @private
33
+ * @class IndexSyncer
34
+ * @description
35
+ *
36
+ * Indexes synchronizer responsible for providing logic for syncing actions done on indexes for HOT to actions performed
37
+ * on HF's.
38
+ *
39
+ */
40
+ var _rowIndexSyncer = /*#__PURE__*/new WeakMap();
41
+ var _columnIndexSyncer = /*#__PURE__*/new WeakMap();
42
+ var _postponeAction = /*#__PURE__*/new WeakMap();
43
+ var _isPerformingUndo = /*#__PURE__*/new WeakMap();
44
+ var _isPerformingRedo = /*#__PURE__*/new WeakMap();
45
+ var _engine = /*#__PURE__*/new WeakMap();
46
+ var _sheetId = /*#__PURE__*/new WeakMap();
47
+ var IndexSyncer = /*#__PURE__*/function () {
48
+ function IndexSyncer(rowIndexMapper, columnIndexMapper, postponeAction) {
49
+ _classCallCheck(this, IndexSyncer);
50
+ /**
51
+ * Indexes synchronizer for the axis of the rows.
52
+ *
53
+ * @private
54
+ * @type {AxisSyncer}
55
+ */
56
+ _classPrivateFieldInitSpec(this, _rowIndexSyncer, {
57
+ writable: true,
58
+ value: void 0
59
+ });
60
+ /**
61
+ * Indexes synchronizer for the axis of the columns.
62
+ *
63
+ * @private
64
+ * @type {AxisSyncer}
65
+ */
66
+ _classPrivateFieldInitSpec(this, _columnIndexSyncer, {
67
+ writable: true,
68
+ value: void 0
69
+ });
70
+ /**
71
+ * Method which will postpone execution of some action (needed when synchronization endpoint isn't setup yet).
72
+ *
73
+ * @private
74
+ * @type {Function}
75
+ */
76
+ _classPrivateFieldInitSpec(this, _postponeAction, {
77
+ writable: true,
78
+ value: void 0
79
+ });
80
+ /**
81
+ * Flag informing whether undo is already performed (we don't perform synchronization in such case).
82
+ *
83
+ * @private
84
+ * @type {boolean}
85
+ */
86
+ _classPrivateFieldInitSpec(this, _isPerformingUndo, {
87
+ writable: true,
88
+ value: false
89
+ });
90
+ /**
91
+ * Flag informing whether redo is already performed (we don't perform synchronization in such case).
92
+ *
93
+ * @private
94
+ * @type {boolean}
95
+ */
96
+ _classPrivateFieldInitSpec(this, _isPerformingRedo, {
97
+ writable: true,
98
+ value: false
99
+ });
100
+ /**
101
+ * The HF's engine instance which will be synced.
102
+ *
103
+ * @private
104
+ * @type {HyperFormula|null}
105
+ */
106
+ _classPrivateFieldInitSpec(this, _engine, {
107
+ writable: true,
108
+ value: null
109
+ });
110
+ /**
111
+ * HyperFormula's sheet name.
112
+ *
113
+ * @private
114
+ * @type {string|null}
115
+ */
116
+ _classPrivateFieldInitSpec(this, _sheetId, {
117
+ writable: true,
118
+ value: null
119
+ });
120
+ _classPrivateFieldSet(this, _rowIndexSyncer, new _axisSyncer.default('row', rowIndexMapper, this));
121
+ _classPrivateFieldSet(this, _columnIndexSyncer, new _axisSyncer.default('column', columnIndexMapper, this));
122
+ _classPrivateFieldSet(this, _postponeAction, postponeAction);
123
+ }
124
+
125
+ /**
126
+ * Gets index synchronizer for a particular axis.
127
+ *
128
+ * @param {'row'|'column'} indexType Type of indexes.
129
+ * @returns {AxisSyncer}
130
+ */
131
+ _createClass(IndexSyncer, [{
132
+ key: "getForAxis",
133
+ value: function getForAxis(indexType) {
134
+ if (indexType === 'row') {
135
+ return _classPrivateFieldGet(this, _rowIndexSyncer);
136
+ }
137
+ return _classPrivateFieldGet(this, _columnIndexSyncer);
138
+ }
139
+
140
+ /**
141
+ * Sets flag informing whether an undo action is already performed (we don't execute synchronization in such case).
142
+ *
143
+ * @param {boolean} flagValue Boolean value for the flag.
144
+ */
145
+ }, {
146
+ key: "setPerformUndo",
147
+ value: function setPerformUndo(flagValue) {
148
+ _classPrivateFieldSet(this, _isPerformingUndo, flagValue);
149
+ }
150
+
151
+ /**
152
+ * Sets flag informing whether a redo action is already performed (we don't execute synchronization in such case).
153
+ *
154
+ * @param {boolean} flagValue Boolean value for the flag.
155
+ */
156
+ }, {
157
+ key: "setPerformRedo",
158
+ value: function setPerformRedo(flagValue) {
159
+ _classPrivateFieldSet(this, _isPerformingRedo, flagValue);
160
+ }
161
+
162
+ /**
163
+ * Gets information whether redo or undo action is already performed (we don't execute synchronization in such case).
164
+ *
165
+ * @private
166
+ * @returns {boolean}
167
+ */
168
+ }, {
169
+ key: "isPerformingUndoRedo",
170
+ value: function isPerformingUndoRedo() {
171
+ return _classPrivateFieldGet(this, _isPerformingUndo) || _classPrivateFieldGet(this, _isPerformingRedo);
172
+ }
173
+
174
+ /**
175
+ * Gets HyperFormula's sheet id.
176
+ *
177
+ * @returns {string|null}
178
+ */
179
+ }, {
180
+ key: "getSheetId",
181
+ value: function getSheetId() {
182
+ return _classPrivateFieldGet(this, _sheetId);
183
+ }
184
+
185
+ /**
186
+ * Gets engine instance that will be used for handled instance of Handsontable.
187
+ *
188
+ * @type {HyperFormula|null}
189
+ */
190
+ }, {
191
+ key: "getEngine",
192
+ value: function getEngine() {
193
+ return _classPrivateFieldGet(this, _engine);
194
+ }
195
+
196
+ /**
197
+ * Gets method which will postpone execution of some action (needed when synchronization endpoint isn't setup yet).
198
+ *
199
+ * @returns {Function}
200
+ */
201
+ }, {
202
+ key: "getPostponeAction",
203
+ value: function getPostponeAction() {
204
+ return _classPrivateFieldGet(this, _postponeAction);
205
+ }
206
+
207
+ /**
208
+ * Setups a synchronization endpoint.
209
+ *
210
+ * @param {HyperFormula|null} engine The HF's engine instance which will be synced.
211
+ * @param {string|null} sheetId HyperFormula's sheet name.
212
+ */
213
+ }, {
214
+ key: "setupSyncEndpoint",
215
+ value: function setupSyncEndpoint(engine, sheetId) {
216
+ _classPrivateFieldSet(this, _engine, engine);
217
+ _classPrivateFieldSet(this, _sheetId, sheetId);
218
+ _classPrivateFieldGet(this, _rowIndexSyncer).init();
219
+ _classPrivateFieldGet(this, _columnIndexSyncer).init();
220
+ }
221
+ }]);
222
+ return IndexSyncer;
223
+ }();
224
+ var _default = IndexSyncer;
225
+ exports.default = _default;