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
@@ -27,6 +27,7 @@ import "core-js/modules/es.symbol.iterator.js";
27
27
  import "core-js/modules/es.string.iterator.js";
28
28
  import "core-js/modules/es.array.from.js";
29
29
  import "core-js/modules/es.array.slice.js";
30
+ import "core-js/modules/es.regexp.to-string.js";
30
31
  import "core-js/modules/es.function.name.js";
31
32
  import "core-js/modules/es.regexp.exec.js";
32
33
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -8,6 +8,7 @@ require("core-js/modules/es.array.iterator.js");
8
8
  require("core-js/modules/es.string.iterator.js");
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
10
  require("core-js/modules/es.array.from.js");
11
+ require("core-js/modules/es.regexp.to-string.js");
11
12
  require("core-js/modules/es.function.name.js");
12
13
  require("core-js/modules/es.regexp.exec.js");
13
14
  exports.__esModule = true;
@@ -10,6 +10,7 @@ import "core-js/modules/es.array.iterator.js";
10
10
  import "core-js/modules/es.string.iterator.js";
11
11
  import "core-js/modules/web.dom-collections.iterator.js";
12
12
  import "core-js/modules/es.array.from.js";
13
+ import "core-js/modules/es.regexp.to-string.js";
13
14
  import "core-js/modules/es.function.name.js";
14
15
  import "core-js/modules/es.regexp.exec.js";
15
16
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -8,6 +8,7 @@ require("core-js/modules/es.array.iterator.js");
8
8
  require("core-js/modules/es.string.iterator.js");
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
10
  require("core-js/modules/es.array.from.js");
11
+ require("core-js/modules/es.regexp.to-string.js");
11
12
  require("core-js/modules/es.function.name.js");
12
13
  require("core-js/modules/es.regexp.exec.js");
13
14
  exports.__esModule = true;
@@ -11,6 +11,7 @@ import "core-js/modules/es.array.iterator.js";
11
11
  import "core-js/modules/es.string.iterator.js";
12
12
  import "core-js/modules/web.dom-collections.iterator.js";
13
13
  import "core-js/modules/es.array.from.js";
14
+ import "core-js/modules/es.regexp.to-string.js";
14
15
  import "core-js/modules/es.function.name.js";
15
16
  import "core-js/modules/es.regexp.exec.js";
16
17
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -4,6 +4,7 @@ require("core-js/modules/es.symbol.js");
4
4
  require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.slice.js");
7
+ require("core-js/modules/es.regexp.to-string.js");
7
8
  require("core-js/modules/es.function.name.js");
8
9
  require("core-js/modules/es.array.from.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
@@ -19,6 +19,7 @@ import "core-js/modules/es.symbol.js";
19
19
  import "core-js/modules/es.symbol.description.js";
20
20
  import "core-js/modules/es.symbol.iterator.js";
21
21
  import "core-js/modules/es.array.slice.js";
22
+ import "core-js/modules/es.regexp.to-string.js";
22
23
  import "core-js/modules/es.function.name.js";
23
24
  import "core-js/modules/es.array.from.js";
24
25
  import "core-js/modules/es.regexp.exec.js";
@@ -6,6 +6,7 @@ require("core-js/modules/es.symbol.description.js");
6
6
  require("core-js/modules/es.symbol.iterator.js");
7
7
  require("core-js/modules/es.array.from.js");
8
8
  require("core-js/modules/es.array.slice.js");
9
+ require("core-js/modules/es.regexp.to-string.js");
9
10
  require("core-js/modules/es.function.name.js");
10
11
  require("core-js/modules/es.regexp.exec.js");
11
12
  require("core-js/modules/es.symbol.to-primitive.js");
@@ -130,28 +131,25 @@ var TRAVERSAL_STRATEGIES = new Map([[TRAVERSAL_DF_PRE, depthFirstPreOrder], [TRA
130
131
  *
131
132
  */
132
133
  var TreeNode = /*#__PURE__*/function () {
133
- /**
134
- * A tree data.
135
- *
136
- * @type {object}
137
- */
138
-
139
- /**
140
- * A parent node.
141
- *
142
- * @type {TreeNode}
143
- */
144
-
145
- /**
146
- * A tree leaves.
147
- *
148
- * @type {TreeNode[]}
149
- */
150
-
151
134
  function TreeNode(data) {
152
135
  _classCallCheck(this, TreeNode);
136
+ /**
137
+ * A tree data.
138
+ *
139
+ * @type {object}
140
+ */
153
141
  _defineProperty(this, "data", {});
142
+ /**
143
+ * A parent node.
144
+ *
145
+ * @type {TreeNode}
146
+ */
154
147
  _defineProperty(this, "parent", null);
148
+ /**
149
+ * A tree leaves.
150
+ *
151
+ * @type {TreeNode[]}
152
+ */
155
153
  _defineProperty(this, "childs", []);
156
154
  this.data = data;
157
155
  }
@@ -17,6 +17,7 @@ import "core-js/modules/es.symbol.description.js";
17
17
  import "core-js/modules/es.symbol.iterator.js";
18
18
  import "core-js/modules/es.array.from.js";
19
19
  import "core-js/modules/es.array.slice.js";
20
+ import "core-js/modules/es.regexp.to-string.js";
20
21
  import "core-js/modules/es.function.name.js";
21
22
  import "core-js/modules/es.regexp.exec.js";
22
23
  import "core-js/modules/es.symbol.to-primitive.js";
@@ -122,28 +123,25 @@ var TRAVERSAL_STRATEGIES = new Map([[TRAVERSAL_DF_PRE, depthFirstPreOrder], [TRA
122
123
  *
123
124
  */
124
125
  var TreeNode = /*#__PURE__*/function () {
125
- /**
126
- * A tree data.
127
- *
128
- * @type {object}
129
- */
130
-
131
- /**
132
- * A parent node.
133
- *
134
- * @type {TreeNode}
135
- */
136
-
137
- /**
138
- * A tree leaves.
139
- *
140
- * @type {TreeNode[]}
141
- */
142
-
143
126
  function TreeNode(data) {
144
127
  _classCallCheck(this, TreeNode);
128
+ /**
129
+ * A tree data.
130
+ *
131
+ * @type {object}
132
+ */
145
133
  _defineProperty(this, "data", {});
134
+ /**
135
+ * A parent node.
136
+ *
137
+ * @type {TreeNode}
138
+ */
146
139
  _defineProperty(this, "parent", null);
140
+ /**
141
+ * A tree leaves.
142
+ *
143
+ * @type {TreeNode[]}
144
+ */
147
145
  _defineProperty(this, "childs", []);
148
146
  this.data = data;
149
147
  }
@@ -4,6 +4,7 @@ require("core-js/modules/es.symbol.js");
4
4
  require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.slice.js");
7
+ require("core-js/modules/es.regexp.to-string.js");
7
8
  require("core-js/modules/es.function.name.js");
8
9
  require("core-js/modules/es.array.from.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
@@ -18,6 +18,7 @@ import "core-js/modules/es.symbol.js";
18
18
  import "core-js/modules/es.symbol.description.js";
19
19
  import "core-js/modules/es.symbol.iterator.js";
20
20
  import "core-js/modules/es.array.slice.js";
21
+ import "core-js/modules/es.regexp.to-string.js";
21
22
  import "core-js/modules/es.function.name.js";
22
23
  import "core-js/modules/es.array.from.js";
23
24
  import "core-js/modules/es.regexp.exec.js";
@@ -5,6 +5,7 @@ require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.from.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
10
11
  exports.__esModule = true;
@@ -14,6 +14,7 @@ import "core-js/modules/es.symbol.description.js";
14
14
  import "core-js/modules/es.symbol.iterator.js";
15
15
  import "core-js/modules/es.array.from.js";
16
16
  import "core-js/modules/es.array.slice.js";
17
+ import "core-js/modules/es.regexp.to-string.js";
17
18
  import "core-js/modules/es.function.name.js";
18
19
  import "core-js/modules/es.regexp.exec.js";
19
20
  import { isFunction } from "../../helpers/function.mjs";
@@ -5,6 +5,7 @@ require("core-js/modules/es.array.iterator.js");
5
5
  require("core-js/modules/es.string.iterator.js");
6
6
  require("core-js/modules/web.dom-collections.iterator.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.array.from.js");
10
11
  require("core-js/modules/es.regexp.exec.js");
@@ -18,6 +18,7 @@ import "core-js/modules/es.array.iterator.js";
18
18
  import "core-js/modules/es.string.iterator.js";
19
19
  import "core-js/modules/web.dom-collections.iterator.js";
20
20
  import "core-js/modules/es.array.slice.js";
21
+ import "core-js/modules/es.regexp.to-string.js";
21
22
  import "core-js/modules/es.function.name.js";
22
23
  import "core-js/modules/es.array.from.js";
23
24
  import "core-js/modules/es.regexp.exec.js";
@@ -21,6 +21,7 @@ require("core-js/modules/es.string.replace.js");
21
21
  require("core-js/modules/es.object.to-string.js");
22
22
  require("core-js/modules/es.array.concat.js");
23
23
  require("core-js/modules/es.array.splice.js");
24
+ require("core-js/modules/es.string.repeat.js");
24
25
  require("core-js/modules/es.string.match.js");
25
26
  require("core-js/modules/es.array.last-index-of.js");
26
27
  require("core-js/modules/es.array.reduce.js");
@@ -139,7 +140,10 @@ function _dataToHTML(input) {
139
140
  }
140
141
  for (var column = 0; column < columnsLen; column += 1) {
141
142
  var cellData = rowData[column];
142
- var parsedCellData = (0, _mixed.isEmpty)(cellData) ? '' : cellData.toString().replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g, '<br>\r\n').replace(/\x20/gi, '&nbsp;').replace(/\t/gi, '&#9;');
143
+ var parsedCellData = (0, _mixed.isEmpty)(cellData) ? '' : cellData.toString().replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g, '<br>\r\n').replace(/\x20{2,}/gi, function (substring) {
144
+ // The way how Excel serializes data with at least two spaces.
145
+ return "<span style=\"mso-spacerun: yes\">".concat('&nbsp;'.repeat(substring.length - 1), " </span>");
146
+ }).replace(/\t/gi, '&#9;');
143
147
  columnsResult.push("<td>".concat(parsedCellData, "</td>"));
144
148
  }
145
149
  result.push.apply(result, ['<tr>'].concat(columnsResult, ['</tr>']));
@@ -14,6 +14,7 @@ import "core-js/modules/es.string.replace.js";
14
14
  import "core-js/modules/es.object.to-string.js";
15
15
  import "core-js/modules/es.array.concat.js";
16
16
  import "core-js/modules/es.array.splice.js";
17
+ import "core-js/modules/es.string.repeat.js";
17
18
  import "core-js/modules/es.string.match.js";
18
19
  import "core-js/modules/es.array.last-index-of.js";
19
20
  import "core-js/modules/es.array.reduce.js";
@@ -133,7 +134,10 @@ export function _dataToHTML(input) {
133
134
  }
134
135
  for (var column = 0; column < columnsLen; column += 1) {
135
136
  var cellData = rowData[column];
136
- var parsedCellData = isEmpty(cellData) ? '' : cellData.toString().replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g, '<br>\r\n').replace(/\x20/gi, '&nbsp;').replace(/\t/gi, '&#9;');
137
+ var parsedCellData = isEmpty(cellData) ? '' : cellData.toString().replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g, '<br>\r\n').replace(/\x20{2,}/gi, function (substring) {
138
+ // The way how Excel serializes data with at least two spaces.
139
+ return "<span style=\"mso-spacerun: yes\">".concat('&nbsp;'.repeat(substring.length - 1), " </span>");
140
+ }).replace(/\t/gi, '&#9;');
137
141
  columnsResult.push("<td>".concat(parsedCellData, "</td>"));
138
142
  }
139
143
  result.push.apply(result, ['<tr>'].concat(columnsResult, ['</tr>']));
@@ -5,6 +5,7 @@ require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.from.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
10
11
  exports.__esModule = true;
@@ -14,6 +14,7 @@ import "core-js/modules/es.symbol.description.js";
14
14
  import "core-js/modules/es.symbol.iterator.js";
15
15
  import "core-js/modules/es.array.from.js";
16
16
  import "core-js/modules/es.array.slice.js";
17
+ import "core-js/modules/es.regexp.to-string.js";
17
18
  import "core-js/modules/es.function.name.js";
18
19
  import "core-js/modules/es.regexp.exec.js";
19
20
  export var collection = new Map();
package/focusManager.d.ts DELETED
@@ -1,12 +0,0 @@
1
- type FocusMode = 'cell' | 'mixed';
2
-
3
- export interface FocusManager {
4
- getFocusMode(): FocusMode;
5
- setFocusMode(focusMode: FocusMode): void;
6
- getRefocusDelay(): number;
7
- setRefocusDelay(delay: number): void;
8
- setRefocusElementGetter(getterFn: () => HTMLElement): void;
9
- getRefocusElement(): HTMLElement | void;
10
- focusOnHighlightedCell(): void;
11
- refocusToEditorTextarea(delay: number): void;
12
- }
package/focusManager.js DELETED
@@ -1,275 +0,0 @@
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.FocusManager = void 0;
12
- require("core-js/modules/es.object.freeze.js");
13
- require("core-js/modules/es.array.concat.js");
14
- require("core-js/modules/es.array.includes.js");
15
- require("core-js/modules/es.string.includes.js");
16
- require("core-js/modules/es.object.values.js");
17
- require("core-js/modules/es.array.iterator.js");
18
- require("core-js/modules/es.object.to-string.js");
19
- require("core-js/modules/es.string.iterator.js");
20
- require("core-js/modules/es.weak-map.js");
21
- require("core-js/modules/web.dom-collections.iterator.js");
22
- require("core-js/modules/es.weak-set.js");
23
- var _console = require("./helpers/console");
24
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
- 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); } }
26
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
27
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
28
- 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); }
29
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
30
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
31
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
32
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
33
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
34
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
35
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
36
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
37
- 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; } }
38
- /**
39
- * Possible focus modes.
40
- * - CELL - The browser's focus stays on the lastly selected cell element.
41
- * - MIXED - The browser's focus switches from the lastly selected cell element to the currently active editor's
42
- * `TEXTAREA` element after a delay defined in the manager.
43
- *
44
- * @type {{CELL: string, MIXED: string}}
45
- */
46
- var FOCUS_MODES = Object.freeze({
47
- CELL: 'cell',
48
- MIXED: 'mixed'
49
- });
50
-
51
- /**
52
- * Manages the browser's focus in the table.
53
- */
54
- var _hot = /*#__PURE__*/new WeakMap();
55
- var _focusMode = /*#__PURE__*/new WeakMap();
56
- var _refocusDelay = /*#__PURE__*/new WeakMap();
57
- var _refocusElementGetter = /*#__PURE__*/new WeakMap();
58
- var _manageFocus = /*#__PURE__*/new WeakSet();
59
- var _onUpdateSettings = /*#__PURE__*/new WeakSet();
60
- var FocusManager = /*#__PURE__*/function () {
61
- /**
62
- * The Handsontable instance.
63
- *
64
- * @private
65
- */
66
-
67
- /**
68
- * The currently enabled focus mode.
69
- * Can be either:
70
- *
71
- * - 'cell' - The browser's focus stays on the lastly selected cell element.
72
- * - 'mixed' - The browser's focus switches from the lastly selected cell element to the currently active editor's
73
- * `TEXTAREA` element after a delay defined in the manager.
74
- *
75
- * @type {string}
76
- * @private
77
- */
78
-
79
- /**
80
- * The delay after which the focus switches from the lastly selected cell to the active editor's `TEXTAREA`
81
- * element if the focus mode is set to 'mixed'.
82
- *
83
- * @type {number}
84
- * @private
85
- */
86
-
87
- /**
88
- * Getter function for the element to be used when refocusing the browser after a delay. If `null`, the active
89
- * editor's `TEXTAREA` element will be used.
90
- *
91
- * @type {null|Function}
92
- * @private
93
- */
94
-
95
- function FocusManager(hotInstance) {
96
- var _this = this;
97
- _classCallCheck(this, FocusManager);
98
- /**
99
- * Update the manager configuration after calling `updateSettings`.
100
- *
101
- * @private
102
- * @param {object} newSettings The new settings passed to the `updateSettings` method.
103
- */
104
- _classPrivateMethodInitSpec(this, _onUpdateSettings);
105
- /**
106
- * Manage the browser's focus after cell selection.
107
- *
108
- * @private
109
- */
110
- _classPrivateMethodInitSpec(this, _manageFocus);
111
- _classPrivateFieldInitSpec(this, _hot, {
112
- writable: true,
113
- value: void 0
114
- });
115
- _classPrivateFieldInitSpec(this, _focusMode, {
116
- writable: true,
117
- value: void 0
118
- });
119
- _classPrivateFieldInitSpec(this, _refocusDelay, {
120
- writable: true,
121
- value: 50
122
- });
123
- _classPrivateFieldInitSpec(this, _refocusElementGetter, {
124
- writable: true,
125
- value: null
126
- });
127
- var hotSettings = hotInstance.getSettings();
128
- _classPrivateFieldSet(this, _hot, hotInstance);
129
- _classPrivateFieldSet(this, _focusMode, hotSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);
130
- _classPrivateFieldGet(this, _hot).addHook('afterUpdateSettings', function () {
131
- var _classPrivateMethodGe;
132
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
133
- args[_key] = arguments[_key];
134
- }
135
- return (_classPrivateMethodGe = _classPrivateMethodGet(_this, _onUpdateSettings, _onUpdateSettings2)).call.apply(_classPrivateMethodGe, [_this].concat(args));
136
- });
137
- _classPrivateFieldGet(this, _hot).addHook('afterSelectionEnd', function () {
138
- var _classPrivateMethodGe2;
139
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
140
- args[_key2] = arguments[_key2];
141
- }
142
- return (_classPrivateMethodGe2 = _classPrivateMethodGet(_this, _manageFocus, _manageFocus2)).call.apply(_classPrivateMethodGe2, [_this].concat(args));
143
- });
144
- }
145
-
146
- /**
147
- * Get the current focus mode.
148
- *
149
- * @returns {'cell' | 'mixed'}
150
- */
151
- _createClass(FocusManager, [{
152
- key: "getFocusMode",
153
- value: function getFocusMode() {
154
- return _classPrivateFieldGet(this, _focusMode);
155
- }
156
-
157
- /**
158
- * Set the focus mode.
159
- *
160
- * @param {'cell' | 'mixed'} focusMode The new focus mode.
161
- */
162
- }, {
163
- key: "setFocusMode",
164
- value: function setFocusMode(focusMode) {
165
- if (Object.values(FOCUS_MODES).includes(focusMode)) {
166
- _classPrivateFieldSet(this, _focusMode, focusMode);
167
- } else {
168
- (0, _console.warn)("\"".concat(focusMode, "\" is not a valid focus mode."));
169
- }
170
- }
171
-
172
- /**
173
- * Get the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA`
174
- * element if the focus mode is set to 'mixed'.
175
- *
176
- * @returns {number} Delay in milliseconds.
177
- */
178
- }, {
179
- key: "getRefocusDelay",
180
- value: function getRefocusDelay() {
181
- return _classPrivateFieldGet(this, _refocusDelay);
182
- }
183
-
184
- /**
185
- * Set the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA`
186
- * element if the focus mode is set to 'mixed'.
187
- *
188
- * @param {number} delay Delay in milliseconds.
189
- */
190
- }, {
191
- key: "setRefocusDelay",
192
- value: function setRefocusDelay(delay) {
193
- _classPrivateFieldSet(this, _refocusDelay, delay);
194
- }
195
-
196
- /**
197
- * Set the function to be used as the "refocus element" getter. It should return a focusable HTML element.
198
- *
199
- * @param {Function} getRefocusElementFunction The refocus element getter.
200
- */
201
- }, {
202
- key: "setRefocusElementGetter",
203
- value: function setRefocusElementGetter(getRefocusElementFunction) {
204
- _classPrivateFieldSet(this, _refocusElementGetter, getRefocusElementFunction);
205
- }
206
-
207
- /**
208
- * Get the element to be used when refocusing the browser after a delay in case of the focus mode being 'mixed'.
209
- *
210
- * @returns {HTMLTextAreaElement|HTMLElement|undefined}
211
- */
212
- }, {
213
- key: "getRefocusElement",
214
- value: function getRefocusElement() {
215
- if (typeof _classPrivateFieldGet(this, _refocusElementGetter) === 'function') {
216
- return _classPrivateFieldGet(this, _refocusElementGetter).call(this);
217
- } else {
218
- var _classPrivateFieldGet2;
219
- return (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _hot).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
220
- }
221
- }
222
-
223
- /**
224
- * Set the browser's focus to the highlighted cell of the last selection.
225
- */
226
- }, {
227
- key: "focusOnHighlightedCell",
228
- value: function focusOnHighlightedCell() {
229
- var _classPrivateFieldGet3;
230
- var lastSelectedRange = _classPrivateFieldGet(this, _hot).getSelectedRangeLast();
231
- var selectedCellCoords = lastSelectedRange.highlight;
232
- var selectedCell = _classPrivateFieldGet(this, _hot).getCell(selectedCellCoords.row, selectedCellCoords.col);
233
- if (selectedCell && !((_classPrivateFieldGet3 = _classPrivateFieldGet(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet3 !== void 0 && _classPrivateFieldGet3.isOpened())) {
234
- _classPrivateFieldGet(this, _hot).getCell(selectedCellCoords.row, selectedCellCoords.col).focus({
235
- preventScroll: true
236
- });
237
- }
238
- }
239
-
240
- /**
241
- * Set the focus to the active editor's `TEXTAREA` element after the provided delay. If no delay is provided, it
242
- * will be taken from the manager's configuration.
243
- *
244
- * @param {number} delay Delay in milliseconds.
245
- */
246
- }, {
247
- key: "refocusToEditorTextarea",
248
- value: function refocusToEditorTextarea() {
249
- var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(this, _refocusDelay);
250
- var refocusElement = this.getRefocusElement();
251
-
252
- // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
253
- if (_classPrivateFieldGet(this, _hot).getSettings().imeFastEdit && !!refocusElement) {
254
- _classPrivateFieldGet(this, _hot)._registerTimeout(function () {
255
- refocusElement.select();
256
- }, delay);
257
- }
258
- }
259
- }]);
260
- return FocusManager;
261
- }();
262
- exports.FocusManager = FocusManager;
263
- function _manageFocus2() {
264
- this.focusOnHighlightedCell();
265
- if (this.getFocusMode() === FOCUS_MODES.MIXED) {
266
- this.refocusToEditorTextarea();
267
- }
268
- }
269
- function _onUpdateSettings2(newSettings) {
270
- if (newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.MIXED) {
271
- this.setFocusMode(FOCUS_MODES.MIXED);
272
- } else if (!newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.CELL) {
273
- this.setFocusMode(FOCUS_MODES.CELL);
274
- }
275
- }