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
@@ -31,11 +31,6 @@ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) {
31
31
  function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
32
32
  function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
33
33
  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; } }
34
- var _observers = /*#__PURE__*/new WeakMap();
35
- var _indexMatrix = /*#__PURE__*/new WeakMap();
36
- var _currentIndexState = /*#__PURE__*/new WeakMap();
37
- var _isMatrixIndexesInitialized = /*#__PURE__*/new WeakMap();
38
- var _initialIndexValue = /*#__PURE__*/new WeakMap();
39
34
  /**
40
35
  * The ChangesObservable module is an object that represents a resource that provides
41
36
  * the ability to observe the changes that happened in the index map indexes during
@@ -44,68 +39,68 @@ var _initialIndexValue = /*#__PURE__*/new WeakMap();
44
39
  * @private
45
40
  * @class ChangesObservable
46
41
  */
42
+ var _observers = /*#__PURE__*/new WeakMap();
43
+ var _indexMatrix = /*#__PURE__*/new WeakMap();
44
+ var _currentIndexState = /*#__PURE__*/new WeakMap();
45
+ var _isMatrixIndexesInitialized = /*#__PURE__*/new WeakMap();
46
+ var _initialIndexValue = /*#__PURE__*/new WeakMap();
47
47
  var ChangesObservable = /*#__PURE__*/function () {
48
- /**
49
- * The list of registered ChangesObserver instances.
50
- *
51
- * @type {ChangesObserver[]}
52
- */
53
-
54
- /**
55
- * An array with default values that act as a base array that will be compared with
56
- * the last saved index state. The changes are generated and immediately send through
57
- * the newly created ChangesObserver object. Thanks to that, the observer initially has
58
- * all information about what indexes are currently changed.
59
- *
60
- * @type {Array}
61
- */
62
-
63
- /**
64
- * An array that holds the indexes state that is currently valid. The value is changed on every
65
- * index mapper cache update.
66
- *
67
- * @type {Array}
68
- */
69
-
70
- /**
71
- * The flag determines if the observable is initialized or not. Not initialized object creates
72
- * index matrix once while emitting new changes.
73
- *
74
- * @type {boolean}
75
- */
76
-
77
- /**
78
- * The initial index value allows control from what value the index matrix array will be created.
79
- * Changing that value changes how the array diff generates the changes for the initial data
80
- * sent to the subscribers. For example, the changes can be triggered by detecting the changes
81
- * from `false` to `true` value or vice versa. Generally, it depends on which index map type
82
- * the Observable will work with. For "hiding" or "trimming" index types, it will be boolean
83
- * values. For various index maps, it can be anything, but I suspect that the most appropriate
84
- * initial value will be "undefined" in that case.
85
- *
86
- * @type {boolean}
87
- */
88
-
89
48
  function ChangesObservable() {
90
49
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
91
50
  initialIndexValue = _ref.initialIndexValue;
92
51
  _classCallCheck(this, ChangesObservable);
52
+ /**
53
+ * The list of registered ChangesObserver instances.
54
+ *
55
+ * @type {ChangesObserver[]}
56
+ */
93
57
  _classPrivateFieldInitSpec(this, _observers, {
94
58
  writable: true,
95
59
  value: new Set()
96
60
  });
61
+ /**
62
+ * An array with default values that act as a base array that will be compared with
63
+ * the last saved index state. The changes are generated and immediately send through
64
+ * the newly created ChangesObserver object. Thanks to that, the observer initially has
65
+ * all information about what indexes are currently changed.
66
+ *
67
+ * @type {Array}
68
+ */
97
69
  _classPrivateFieldInitSpec(this, _indexMatrix, {
98
70
  writable: true,
99
71
  value: []
100
72
  });
73
+ /**
74
+ * An array that holds the indexes state that is currently valid. The value is changed on every
75
+ * index mapper cache update.
76
+ *
77
+ * @type {Array}
78
+ */
101
79
  _classPrivateFieldInitSpec(this, _currentIndexState, {
102
80
  writable: true,
103
81
  value: []
104
82
  });
83
+ /**
84
+ * The flag determines if the observable is initialized or not. Not initialized object creates
85
+ * index matrix once while emitting new changes.
86
+ *
87
+ * @type {boolean}
88
+ */
105
89
  _classPrivateFieldInitSpec(this, _isMatrixIndexesInitialized, {
106
90
  writable: true,
107
91
  value: false
108
92
  });
93
+ /**
94
+ * The initial index value allows control from what value the index matrix array will be created.
95
+ * Changing that value changes how the array diff generates the changes for the initial data
96
+ * sent to the subscribers. For example, the changes can be triggered by detecting the changes
97
+ * from `false` to `true` value or vice versa. Generally, it depends on which index map type
98
+ * the Observable will work with. For "hiding" or "trimming" index types, it will be boolean
99
+ * values. For various index maps, it can be anything, but I suspect that the most appropriate
100
+ * initial value will be "undefined" in that case.
101
+ *
102
+ * @type {boolean}
103
+ */
109
104
  _classPrivateFieldInitSpec(this, _initialIndexValue, {
110
105
  writable: true,
111
106
  value: false
@@ -41,67 +41,62 @@ var _currentIndexState = /*#__PURE__*/new WeakMap();
41
41
  var _isMatrixIndexesInitialized = /*#__PURE__*/new WeakMap();
42
42
  var _initialIndexValue = /*#__PURE__*/new WeakMap();
43
43
  export var ChangesObservable = /*#__PURE__*/function () {
44
- /**
45
- * The list of registered ChangesObserver instances.
46
- *
47
- * @type {ChangesObserver[]}
48
- */
49
-
50
- /**
51
- * An array with default values that act as a base array that will be compared with
52
- * the last saved index state. The changes are generated and immediately send through
53
- * the newly created ChangesObserver object. Thanks to that, the observer initially has
54
- * all information about what indexes are currently changed.
55
- *
56
- * @type {Array}
57
- */
58
-
59
- /**
60
- * An array that holds the indexes state that is currently valid. The value is changed on every
61
- * index mapper cache update.
62
- *
63
- * @type {Array}
64
- */
65
-
66
- /**
67
- * The flag determines if the observable is initialized or not. Not initialized object creates
68
- * index matrix once while emitting new changes.
69
- *
70
- * @type {boolean}
71
- */
72
-
73
- /**
74
- * The initial index value allows control from what value the index matrix array will be created.
75
- * Changing that value changes how the array diff generates the changes for the initial data
76
- * sent to the subscribers. For example, the changes can be triggered by detecting the changes
77
- * from `false` to `true` value or vice versa. Generally, it depends on which index map type
78
- * the Observable will work with. For "hiding" or "trimming" index types, it will be boolean
79
- * values. For various index maps, it can be anything, but I suspect that the most appropriate
80
- * initial value will be "undefined" in that case.
81
- *
82
- * @type {boolean}
83
- */
84
-
85
44
  function ChangesObservable() {
86
45
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
87
46
  initialIndexValue = _ref.initialIndexValue;
88
47
  _classCallCheck(this, ChangesObservable);
48
+ /**
49
+ * The list of registered ChangesObserver instances.
50
+ *
51
+ * @type {ChangesObserver[]}
52
+ */
89
53
  _classPrivateFieldInitSpec(this, _observers, {
90
54
  writable: true,
91
55
  value: new Set()
92
56
  });
57
+ /**
58
+ * An array with default values that act as a base array that will be compared with
59
+ * the last saved index state. The changes are generated and immediately send through
60
+ * the newly created ChangesObserver object. Thanks to that, the observer initially has
61
+ * all information about what indexes are currently changed.
62
+ *
63
+ * @type {Array}
64
+ */
93
65
  _classPrivateFieldInitSpec(this, _indexMatrix, {
94
66
  writable: true,
95
67
  value: []
96
68
  });
69
+ /**
70
+ * An array that holds the indexes state that is currently valid. The value is changed on every
71
+ * index mapper cache update.
72
+ *
73
+ * @type {Array}
74
+ */
97
75
  _classPrivateFieldInitSpec(this, _currentIndexState, {
98
76
  writable: true,
99
77
  value: []
100
78
  });
79
+ /**
80
+ * The flag determines if the observable is initialized or not. Not initialized object creates
81
+ * index matrix once while emitting new changes.
82
+ *
83
+ * @type {boolean}
84
+ */
101
85
  _classPrivateFieldInitSpec(this, _isMatrixIndexesInitialized, {
102
86
  writable: true,
103
87
  value: false
104
88
  });
89
+ /**
90
+ * The initial index value allows control from what value the index matrix array will be created.
91
+ * Changing that value changes how the array diff generates the changes for the initial data
92
+ * sent to the subscribers. For example, the changes can be triggered by detecting the changes
93
+ * from `false` to `true` value or vice versa. Generally, it depends on which index map type
94
+ * the Observable will work with. For "hiding" or "trimming" index types, it will be boolean
95
+ * values. For various index maps, it can be anything, but I suspect that the most appropriate
96
+ * initial value will be "undefined" in that case.
97
+ *
98
+ * @type {boolean}
99
+ */
105
100
  _classPrivateFieldInitSpec(this, _initialIndexValue, {
106
101
  writable: true,
107
102
  value: false
@@ -29,13 +29,13 @@ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.
29
29
  function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
30
30
  function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
31
31
  function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
32
- var _currentInitialChanges = /*#__PURE__*/new WeakMap();
33
32
  /**
34
33
  * The ChangesObserver module is an object that represents a disposable resource
35
34
  * provided by the ChangesObservable module.
36
35
  *
37
36
  * @class ChangesObserver
38
37
  */
38
+ var _currentInitialChanges = /*#__PURE__*/new WeakMap();
39
39
  var ChangesObserver = /*#__PURE__*/function () {
40
40
  function ChangesObserver() {
41
41
  _classCallCheck(this, ChangesObserver);
@@ -28,8 +28,6 @@ export class IndexMapper {
28
28
  getVisualFromPhysicalIndex(physicalIndex: number): number;
29
29
  getVisualFromRenderableIndex(renderableIndex: number): number;
30
30
  getRenderableFromVisualIndex(visualIndex: number): number;
31
- getFirstNotHiddenIndex(fromVisualIndex: number, incrementBy: number,
32
- searchAlsoOtherWayAround?: boolean, indexForNextSearch?: number): number | null;
33
31
  getNearestNotHiddenIndex(fromVisualIndex: number, searchDirection: 1|-1,
34
32
  searchAlsoOtherWayAround?: boolean): number | null;
35
33
  initToLength(length?: number): void;
@@ -5,9 +5,9 @@ require("core-js/modules/es.date.to-primitive.js");
5
5
  require("core-js/modules/es.symbol.js");
6
6
  require("core-js/modules/es.symbol.description.js");
7
7
  require("core-js/modules/es.number.constructor.js");
8
- require("core-js/modules/es.array.slice.js");
9
- require("core-js/modules/es.object.freeze.js");
10
8
  require("core-js/modules/es.symbol.iterator.js");
9
+ require("core-js/modules/es.array.slice.js");
10
+ require("core-js/modules/es.regexp.to-string.js");
11
11
  require("core-js/modules/es.function.name.js");
12
12
  require("core-js/modules/es.regexp.exec.js");
13
13
  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); }
@@ -29,15 +29,12 @@ require("core-js/modules/es.array.includes.js");
29
29
  require("core-js/modules/es.string.includes.js");
30
30
  require("core-js/modules/es.array.fill.js");
31
31
  var _array = require("../helpers/array");
32
- var _templateLiteralTag = require("../helpers/templateLiteralTag");
33
- var _console = require("../helpers/console");
34
32
  var _maps = require("./maps");
35
33
  var _mapCollections = require("./mapCollections");
36
34
  var _localHooks = _interopRequireDefault(require("../mixins/localHooks"));
37
35
  var _object = require("../helpers/object");
38
36
  var _mixed = require("../helpers/mixed");
39
37
  var _observable = require("./changesObservable/observable");
40
- var _templateObject;
41
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
39
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
43
40
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -45,13 +42,17 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
45
42
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
46
43
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
47
44
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
48
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
49
45
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
50
46
  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); } }
51
47
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
52
48
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
53
49
  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); }
54
- var deprecationWarns = new Set(['getFirstNotHiddenIndex']);
50
+ /**
51
+ * A set of deprecated feature names.
52
+ *
53
+ * @type {Set<string>}
54
+ */ // eslint-disable-next-line no-unused-vars
55
+ var deprecationWarns = new Set();
55
56
 
56
57
  /**
57
58
  * @class IndexMapper
@@ -160,6 +161,12 @@ var IndexMapper = /*#__PURE__*/function () {
160
161
  * @type {boolean}
161
162
  */
162
163
  this.indexesSequenceChanged = false;
164
+ /**
165
+ * Flag informing about source of the change.
166
+ *
167
+ * @type {undefined|string}
168
+ */
169
+ this.indexesChangeSource = void 0;
163
170
  /**
164
171
  * Flag determining whether any action on trimmed indexes has been performed. It's used for cache management.
165
172
  *
@@ -200,6 +207,7 @@ var IndexMapper = /*#__PURE__*/function () {
200
207
 
201
208
  // Sequence of stored indexes might change.
202
209
  _this.updateCache();
210
+ _this.runLocalHooks('indexesSequenceChange', _this.indexesChangeSource);
203
211
  _this.runLocalHooks('change', _this.indexesSequence, null);
204
212
  });
205
213
  this.trimmingMapsCollection.addLocalHook('change', function (changedMap) {
@@ -416,55 +424,6 @@ var IndexMapper = /*#__PURE__*/function () {
416
424
  return null;
417
425
  }
418
426
 
419
- /**
420
- * Search for the first visible, not hidden index (represented by a visual index).
421
- *
422
- * This method is deprecated and will be removed in a next major version of Handsontable.
423
- * Use the {@link IndexMapper#getNearestNotHiddenIndex} method instead.
424
- *
425
- * @deprecated
426
- * @param {number} fromVisualIndex Visual start index. Starting point for finding destination index. Start point may be destination
427
- * point when handled index is NOT hidden.
428
- * @param {number} incrementBy We are searching for a next visible indexes by increasing (to be precise, or decreasing) indexes.
429
- * This variable represent indexes shift. We are looking for an index:
430
- * - for rows: from the top to the bottom (increasing indexes, then variable should have value 1) or
431
- * other way around (decreasing indexes, then variable should have the value -1)
432
- * - for columns: from the left to the right (increasing indexes, then variable should have value 1)
433
- * or other way around (decreasing indexes, then variable should have the value -1).
434
- * @param {boolean} searchAlsoOtherWayAround The argument determine if an additional other way around search should be
435
- * performed, when the search in the first direction had no effect in finding visual index.
436
- * @param {number} indexForNextSearch Visual index for next search, when the flag is truthy.
437
- *
438
- * @returns {number|null} Visual column index or `null`.
439
- */
440
- }, {
441
- key: "getFirstNotHiddenIndex",
442
- value: function getFirstNotHiddenIndex(fromVisualIndex, incrementBy) {
443
- var searchAlsoOtherWayAround = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
444
- var indexForNextSearch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : fromVisualIndex - incrementBy;
445
- if (deprecationWarns.has('getFirstNotHiddenIndex')) {
446
- deprecationWarns.delete('getFirstNotHiddenIndex');
447
- (0, _console.warn)((0, _templateLiteralTag.toSingleLine)(_templateObject || (_templateObject = _taggedTemplateLiteral(["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next \n major release. Please use \"getNearestNotHiddenIndex\" instead."], ["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next\\x20\n major release. Please use \"getNearestNotHiddenIndex\" instead."]))));
448
- }
449
- var physicalIndex = this.getPhysicalFromVisualIndex(fromVisualIndex);
450
-
451
- // First or next (it may be end of the table) index is beyond the table boundaries.
452
- if (physicalIndex === null) {
453
- // Looking for the next index in the opposite direction. This conditional won't be fulfilled when we STARTED
454
- // the search from the index beyond the table boundaries.
455
- if (searchAlsoOtherWayAround === true && indexForNextSearch !== fromVisualIndex - incrementBy) {
456
- return this.getFirstNotHiddenIndex(indexForNextSearch, -incrementBy, false, indexForNextSearch);
457
- }
458
- return null;
459
- }
460
- if (this.isHidden(physicalIndex) === false) {
461
- return fromVisualIndex;
462
- }
463
-
464
- // Looking for the next index, as the current isn't visible.
465
- return this.getFirstNotHiddenIndex(fromVisualIndex + incrementBy, incrementBy, searchAlsoOtherWayAround, indexForNextSearch);
466
- }
467
-
468
427
  /**
469
428
  * Search for the nearest not-hidden row or column.
470
429
  *
@@ -520,7 +479,9 @@ var IndexMapper = /*#__PURE__*/function () {
520
479
  this.notTrimmedIndexesCache = _toConsumableArray(new Array(length).keys());
521
480
  this.notHiddenIndexesCache = _toConsumableArray(new Array(length).keys());
522
481
  this.suspendOperations();
482
+ this.indexesChangeSource = 'init';
523
483
  this.indexesSequence.init(length);
484
+ this.indexesChangeSource = void 0;
524
485
  this.trimmingMapsCollection.initEvery(length);
525
486
  this.resumeOperations();
526
487
 
@@ -572,7 +533,13 @@ var IndexMapper = /*#__PURE__*/function () {
572
533
  }, {
573
534
  key: "setIndexesSequence",
574
535
  value: function setIndexesSequence(indexes) {
536
+ if (this.indexesChangeSource === void 0) {
537
+ this.indexesChangeSource = 'update';
538
+ }
575
539
  this.indexesSequence.setValues(indexes);
540
+ if (this.indexesChangeSource === 'update') {
541
+ this.indexesChangeSource = void 0;
542
+ }
576
543
  }
577
544
 
578
545
  /**
@@ -708,23 +675,26 @@ var IndexMapper = /*#__PURE__*/function () {
708
675
  var notTrimmedIndexesLength = this.getNotTrimmedIndexesLength();
709
676
  var movedIndexesLength = movedIndexes.length;
710
677
 
711
- // Removing indexes without re-indexing.
712
- var listWithRemovedItems = (0, _maps.getListWithRemovedItems)(this.getIndexesSequence(), physicalMovedIndexes);
678
+ // Removing moved indexes without re-indexing.
679
+ var notMovedIndexes = (0, _maps.getListWithRemovedItems)(this.getIndexesSequence(), physicalMovedIndexes);
680
+ var notTrimmedNotMovedItems = notMovedIndexes.filter(function (index) {
681
+ return _this5.isTrimmed(index) === false;
682
+ });
713
683
 
714
684
  // When item(s) are moved after the last visible item we assign the last possible index.
715
- var destinationPosition = notTrimmedIndexesLength - movedIndexesLength;
685
+ var destinationPosition = notMovedIndexes.indexOf(notTrimmedNotMovedItems[notTrimmedNotMovedItems.length - 1]) + 1;
716
686
 
717
687
  // Otherwise, we find proper index for inserted item(s).
718
688
  if (finalIndex + movedIndexesLength < notTrimmedIndexesLength) {
719
689
  // Physical index at final index position.
720
- var physicalIndex = listWithRemovedItems.filter(function (index) {
721
- return _this5.isTrimmed(index) === false;
722
- })[finalIndex];
723
- destinationPosition = listWithRemovedItems.indexOf(physicalIndex);
690
+ var physicalIndex = notTrimmedNotMovedItems[finalIndex];
691
+ destinationPosition = notMovedIndexes.indexOf(physicalIndex);
724
692
  }
693
+ this.indexesChangeSource = 'move';
725
694
 
726
695
  // Adding indexes without re-indexing.
727
- this.setIndexesSequence((0, _maps.getListWithInsertedItems)(listWithRemovedItems, destinationPosition, physicalMovedIndexes));
696
+ this.setIndexesSequence((0, _maps.getListWithInsertedItems)(notMovedIndexes, destinationPosition, physicalMovedIndexes));
697
+ this.indexesChangeSource = void 0;
728
698
  }
729
699
 
730
700
  /**
@@ -768,7 +738,9 @@ var IndexMapper = /*#__PURE__*/function () {
768
738
  return nextIndex + stepsFromStart;
769
739
  });
770
740
  this.suspendOperations();
741
+ this.indexesChangeSource = 'insert';
771
742
  this.indexesSequence.insert(insertionIndex, insertedIndexes);
743
+ this.indexesChangeSource = void 0;
772
744
  this.trimmingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
773
745
  this.hidingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
774
746
  this.variousMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
@@ -785,7 +757,9 @@ var IndexMapper = /*#__PURE__*/function () {
785
757
  key: "removeIndexes",
786
758
  value: function removeIndexes(removedIndexes) {
787
759
  this.suspendOperations();
760
+ this.indexesChangeSource = 'remove';
788
761
  this.indexesSequence.remove(removedIndexes);
762
+ this.indexesChangeSource = void 0;
789
763
  this.trimmingMapsCollection.removeFromEvery(removedIndexes);
790
764
  this.hidingMapsCollection.removeFromEvery(removedIndexes);
791
765
  this.variousMapsCollection.removeFromEvery(removedIndexes);
@@ -1,12 +1,10 @@
1
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
- var _templateObject;
3
2
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
3
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
4
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
5
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
6
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
7
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
10
8
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
9
  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); } }
12
10
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -32,21 +30,25 @@ import "core-js/modules/es.date.to-primitive.js";
32
30
  import "core-js/modules/es.symbol.js";
33
31
  import "core-js/modules/es.symbol.description.js";
34
32
  import "core-js/modules/es.number.constructor.js";
35
- import "core-js/modules/es.array.slice.js";
36
- import "core-js/modules/es.object.freeze.js";
37
33
  import "core-js/modules/es.symbol.iterator.js";
34
+ import "core-js/modules/es.array.slice.js";
35
+ import "core-js/modules/es.regexp.to-string.js";
38
36
  import "core-js/modules/es.function.name.js";
39
37
  import "core-js/modules/es.regexp.exec.js";
40
38
  import { arrayMap } from "../helpers/array.mjs";
41
- import { toSingleLine } from "../helpers/templateLiteralTag.mjs";
42
- import { warn } from "../helpers/console.mjs";
43
39
  import { createIndexMap, getListWithInsertedItems, getListWithRemovedItems, HidingMap, IndexesSequence, TrimmingMap } from "./maps/index.mjs";
44
40
  import { AggregatedCollection, MapCollection } from "./mapCollections/index.mjs";
45
41
  import localHooks from "../mixins/localHooks.mjs";
46
42
  import { mixin } from "../helpers/object.mjs";
47
43
  import { isDefined } from "../helpers/mixed.mjs";
48
44
  import { ChangesObservable } from "./changesObservable/observable.mjs";
49
- var deprecationWarns = new Set(['getFirstNotHiddenIndex']);
45
+ /**
46
+ * A set of deprecated feature names.
47
+ *
48
+ * @type {Set<string>}
49
+ */
50
+ // eslint-disable-next-line no-unused-vars
51
+ var deprecationWarns = new Set();
50
52
 
51
53
  /**
52
54
  * @class IndexMapper
@@ -155,6 +157,12 @@ export var IndexMapper = /*#__PURE__*/function () {
155
157
  * @type {boolean}
156
158
  */
157
159
  this.indexesSequenceChanged = false;
160
+ /**
161
+ * Flag informing about source of the change.
162
+ *
163
+ * @type {undefined|string}
164
+ */
165
+ this.indexesChangeSource = void 0;
158
166
  /**
159
167
  * Flag determining whether any action on trimmed indexes has been performed. It's used for cache management.
160
168
  *
@@ -195,6 +203,7 @@ export var IndexMapper = /*#__PURE__*/function () {
195
203
 
196
204
  // Sequence of stored indexes might change.
197
205
  _this.updateCache();
206
+ _this.runLocalHooks('indexesSequenceChange', _this.indexesChangeSource);
198
207
  _this.runLocalHooks('change', _this.indexesSequence, null);
199
208
  });
200
209
  this.trimmingMapsCollection.addLocalHook('change', function (changedMap) {
@@ -411,55 +420,6 @@ export var IndexMapper = /*#__PURE__*/function () {
411
420
  return null;
412
421
  }
413
422
 
414
- /**
415
- * Search for the first visible, not hidden index (represented by a visual index).
416
- *
417
- * This method is deprecated and will be removed in a next major version of Handsontable.
418
- * Use the {@link IndexMapper#getNearestNotHiddenIndex} method instead.
419
- *
420
- * @deprecated
421
- * @param {number} fromVisualIndex Visual start index. Starting point for finding destination index. Start point may be destination
422
- * point when handled index is NOT hidden.
423
- * @param {number} incrementBy We are searching for a next visible indexes by increasing (to be precise, or decreasing) indexes.
424
- * This variable represent indexes shift. We are looking for an index:
425
- * - for rows: from the top to the bottom (increasing indexes, then variable should have value 1) or
426
- * other way around (decreasing indexes, then variable should have the value -1)
427
- * - for columns: from the left to the right (increasing indexes, then variable should have value 1)
428
- * or other way around (decreasing indexes, then variable should have the value -1).
429
- * @param {boolean} searchAlsoOtherWayAround The argument determine if an additional other way around search should be
430
- * performed, when the search in the first direction had no effect in finding visual index.
431
- * @param {number} indexForNextSearch Visual index for next search, when the flag is truthy.
432
- *
433
- * @returns {number|null} Visual column index or `null`.
434
- */
435
- }, {
436
- key: "getFirstNotHiddenIndex",
437
- value: function getFirstNotHiddenIndex(fromVisualIndex, incrementBy) {
438
- var searchAlsoOtherWayAround = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
439
- var indexForNextSearch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : fromVisualIndex - incrementBy;
440
- if (deprecationWarns.has('getFirstNotHiddenIndex')) {
441
- deprecationWarns.delete('getFirstNotHiddenIndex');
442
- warn(toSingleLine(_templateObject || (_templateObject = _taggedTemplateLiteral(["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next \n major release. Please use \"getNearestNotHiddenIndex\" instead."], ["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next\\x20\n major release. Please use \"getNearestNotHiddenIndex\" instead."]))));
443
- }
444
- var physicalIndex = this.getPhysicalFromVisualIndex(fromVisualIndex);
445
-
446
- // First or next (it may be end of the table) index is beyond the table boundaries.
447
- if (physicalIndex === null) {
448
- // Looking for the next index in the opposite direction. This conditional won't be fulfilled when we STARTED
449
- // the search from the index beyond the table boundaries.
450
- if (searchAlsoOtherWayAround === true && indexForNextSearch !== fromVisualIndex - incrementBy) {
451
- return this.getFirstNotHiddenIndex(indexForNextSearch, -incrementBy, false, indexForNextSearch);
452
- }
453
- return null;
454
- }
455
- if (this.isHidden(physicalIndex) === false) {
456
- return fromVisualIndex;
457
- }
458
-
459
- // Looking for the next index, as the current isn't visible.
460
- return this.getFirstNotHiddenIndex(fromVisualIndex + incrementBy, incrementBy, searchAlsoOtherWayAround, indexForNextSearch);
461
- }
462
-
463
423
  /**
464
424
  * Search for the nearest not-hidden row or column.
465
425
  *
@@ -515,7 +475,9 @@ export var IndexMapper = /*#__PURE__*/function () {
515
475
  this.notTrimmedIndexesCache = _toConsumableArray(new Array(length).keys());
516
476
  this.notHiddenIndexesCache = _toConsumableArray(new Array(length).keys());
517
477
  this.suspendOperations();
478
+ this.indexesChangeSource = 'init';
518
479
  this.indexesSequence.init(length);
480
+ this.indexesChangeSource = void 0;
519
481
  this.trimmingMapsCollection.initEvery(length);
520
482
  this.resumeOperations();
521
483
 
@@ -567,7 +529,13 @@ export var IndexMapper = /*#__PURE__*/function () {
567
529
  }, {
568
530
  key: "setIndexesSequence",
569
531
  value: function setIndexesSequence(indexes) {
532
+ if (this.indexesChangeSource === void 0) {
533
+ this.indexesChangeSource = 'update';
534
+ }
570
535
  this.indexesSequence.setValues(indexes);
536
+ if (this.indexesChangeSource === 'update') {
537
+ this.indexesChangeSource = void 0;
538
+ }
571
539
  }
572
540
 
573
541
  /**
@@ -703,23 +671,26 @@ export var IndexMapper = /*#__PURE__*/function () {
703
671
  var notTrimmedIndexesLength = this.getNotTrimmedIndexesLength();
704
672
  var movedIndexesLength = movedIndexes.length;
705
673
 
706
- // Removing indexes without re-indexing.
707
- var listWithRemovedItems = getListWithRemovedItems(this.getIndexesSequence(), physicalMovedIndexes);
674
+ // Removing moved indexes without re-indexing.
675
+ var notMovedIndexes = getListWithRemovedItems(this.getIndexesSequence(), physicalMovedIndexes);
676
+ var notTrimmedNotMovedItems = notMovedIndexes.filter(function (index) {
677
+ return _this5.isTrimmed(index) === false;
678
+ });
708
679
 
709
680
  // When item(s) are moved after the last visible item we assign the last possible index.
710
- var destinationPosition = notTrimmedIndexesLength - movedIndexesLength;
681
+ var destinationPosition = notMovedIndexes.indexOf(notTrimmedNotMovedItems[notTrimmedNotMovedItems.length - 1]) + 1;
711
682
 
712
683
  // Otherwise, we find proper index for inserted item(s).
713
684
  if (finalIndex + movedIndexesLength < notTrimmedIndexesLength) {
714
685
  // Physical index at final index position.
715
- var physicalIndex = listWithRemovedItems.filter(function (index) {
716
- return _this5.isTrimmed(index) === false;
717
- })[finalIndex];
718
- destinationPosition = listWithRemovedItems.indexOf(physicalIndex);
686
+ var physicalIndex = notTrimmedNotMovedItems[finalIndex];
687
+ destinationPosition = notMovedIndexes.indexOf(physicalIndex);
719
688
  }
689
+ this.indexesChangeSource = 'move';
720
690
 
721
691
  // Adding indexes without re-indexing.
722
- this.setIndexesSequence(getListWithInsertedItems(listWithRemovedItems, destinationPosition, physicalMovedIndexes));
692
+ this.setIndexesSequence(getListWithInsertedItems(notMovedIndexes, destinationPosition, physicalMovedIndexes));
693
+ this.indexesChangeSource = void 0;
723
694
  }
724
695
 
725
696
  /**
@@ -763,7 +734,9 @@ export var IndexMapper = /*#__PURE__*/function () {
763
734
  return nextIndex + stepsFromStart;
764
735
  });
765
736
  this.suspendOperations();
737
+ this.indexesChangeSource = 'insert';
766
738
  this.indexesSequence.insert(insertionIndex, insertedIndexes);
739
+ this.indexesChangeSource = void 0;
767
740
  this.trimmingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
768
741
  this.hidingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
769
742
  this.variousMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
@@ -780,7 +753,9 @@ export var IndexMapper = /*#__PURE__*/function () {
780
753
  key: "removeIndexes",
781
754
  value: function removeIndexes(removedIndexes) {
782
755
  this.suspendOperations();
756
+ this.indexesChangeSource = 'remove';
783
757
  this.indexesSequence.remove(removedIndexes);
758
+ this.indexesChangeSource = void 0;
784
759
  this.trimmingMapsCollection.removeFromEvery(removedIndexes);
785
760
  this.hidingMapsCollection.removeFromEvery(removedIndexes);
786
761
  this.variousMapsCollection.removeFromEvery(removedIndexes);
@@ -9,6 +9,7 @@ require("core-js/modules/es.symbol.iterator.js");
9
9
  require("core-js/modules/es.string.iterator.js");
10
10
  require("core-js/modules/es.array.from.js");
11
11
  require("core-js/modules/es.array.slice.js");
12
+ require("core-js/modules/es.regexp.to-string.js");
12
13
  require("core-js/modules/es.function.name.js");
13
14
  require("core-js/modules/es.regexp.exec.js");
14
15
  exports.__esModule = true;