handsontable 13.1.0 → 14.0.0-next-e8f87aa-20231030

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (691) hide show
  1. package/3rdparty/walkontable/src/calculator/constants.js +3 -6
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -2
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -2
  4. package/3rdparty/walkontable/src/cell/coords.d.ts +8 -1
  5. package/3rdparty/walkontable/src/cell/coords.js +81 -13
  6. package/3rdparty/walkontable/src/cell/coords.mjs +80 -11
  7. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  8. package/3rdparty/walkontable/src/cell/range.js +39 -9
  9. package/3rdparty/walkontable/src/cell/range.mjs +38 -7
  10. package/3rdparty/walkontable/src/core/_base.js +9 -3
  11. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  12. package/3rdparty/walkontable/src/core/clone.js +2 -2
  13. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  14. package/3rdparty/walkontable/src/core/core.js +3 -2
  15. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  16. package/3rdparty/walkontable/src/event.js +13 -12
  17. package/3rdparty/walkontable/src/event.mjs +12 -10
  18. package/3rdparty/walkontable/src/facade/core.js +2 -2
  19. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  20. package/3rdparty/walkontable/src/filter/column.js +1 -2
  21. package/3rdparty/walkontable/src/filter/row.js +1 -2
  22. package/3rdparty/walkontable/src/index.js +12 -4
  23. package/3rdparty/walkontable/src/index.mjs +2 -2
  24. package/3rdparty/walkontable/src/overlay/_base.js +13 -2
  25. package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
  26. package/3rdparty/walkontable/src/overlay/constants.js +7 -14
  27. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  28. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  29. package/3rdparty/walkontable/src/overlay/top.js +2 -6
  30. package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
  31. package/3rdparty/walkontable/src/overlays.js +1 -2
  32. package/3rdparty/walkontable/src/renderer/cells.js +10 -0
  33. package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
  34. package/3rdparty/walkontable/src/renderer/columnHeaders.js +13 -0
  35. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +14 -1
  36. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -0
  37. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +8 -0
  38. package/3rdparty/walkontable/src/renderer/rows.js +13 -0
  39. package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
  40. package/3rdparty/walkontable/src/renderer/table.js +9 -0
  41. package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
  42. package/3rdparty/walkontable/src/scroll.js +3 -2
  43. package/3rdparty/walkontable/src/scroll.mjs +2 -0
  44. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +8 -14
  45. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  46. package/3rdparty/walkontable/src/selection/border/constants.js +15 -0
  47. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  48. package/3rdparty/walkontable/src/selection/constants.js +54 -0
  49. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  50. package/3rdparty/walkontable/src/selection/index.js +26 -0
  51. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  52. package/3rdparty/walkontable/src/selection/manager.js +274 -0
  53. package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
  54. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  55. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  56. package/3rdparty/walkontable/src/selection/selection.js +100 -0
  57. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  58. package/3rdparty/walkontable/src/settings.js +13 -4
  59. package/3rdparty/walkontable/src/settings.mjs +13 -4
  60. package/3rdparty/walkontable/src/table/bottom.js +1 -2
  61. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -2
  62. package/3rdparty/walkontable/src/table/inlineStart.js +1 -2
  63. package/3rdparty/walkontable/src/table/master.js +3 -6
  64. package/3rdparty/walkontable/src/table/master.mjs +2 -4
  65. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +10 -2
  66. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  67. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +10 -2
  68. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  69. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +10 -2
  70. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +10 -2
  72. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  73. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +10 -2
  74. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  75. package/3rdparty/walkontable/src/table/top.js +1 -2
  76. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -2
  77. package/3rdparty/walkontable/src/table.js +20 -80
  78. package/3rdparty/walkontable/src/table.mjs +20 -79
  79. package/3rdparty/walkontable/src/utils/orderView/constants.js +3 -6
  80. package/3rdparty/walkontable/src/viewport.js +1 -2
  81. package/CHANGELOG.md +51 -0
  82. package/base.js +3 -4
  83. package/base.mjs +2 -2
  84. package/cellTypes/autocompleteType/autocompleteType.js +3 -5
  85. package/cellTypes/checkboxType/checkboxType.js +3 -5
  86. package/cellTypes/dateType/dateType.d.ts +3 -3
  87. package/cellTypes/dateType/dateType.js +5 -7
  88. package/cellTypes/dateType/dateType.mjs +2 -2
  89. package/cellTypes/dropdownType/dropdownType.js +3 -5
  90. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  91. package/cellTypes/handsontableType/handsontableType.js +5 -7
  92. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  93. package/cellTypes/index.d.ts +3 -0
  94. package/cellTypes/index.js +4 -0
  95. package/cellTypes/index.mjs +3 -1
  96. package/cellTypes/numericType/numericType.js +3 -5
  97. package/cellTypes/passwordType/passwordType.js +3 -5
  98. package/cellTypes/selectType/index.d.ts +1 -0
  99. package/cellTypes/selectType/index.js +6 -0
  100. package/cellTypes/selectType/index.mjs +1 -0
  101. package/cellTypes/selectType/selectType.d.ts +14 -0
  102. package/cellTypes/selectType/selectType.js +11 -0
  103. package/cellTypes/selectType/selectType.mjs +8 -0
  104. package/cellTypes/textType/textType.js +3 -5
  105. package/cellTypes/timeType/timeType.js +3 -5
  106. package/common.d.ts +1 -1
  107. package/core/focusCatcher/focusDetector.js +63 -0
  108. package/core/focusCatcher/focusDetector.mjs +59 -0
  109. package/core/focusCatcher/index.js +148 -0
  110. package/core/focusCatcher/index.mjs +144 -0
  111. package/core/index.js +9 -0
  112. package/core/index.mjs +1 -0
  113. package/core.d.ts +10 -5
  114. package/core.js +327 -359
  115. package/core.mjs +327 -359
  116. package/dataMap/dataMap.js +1 -2
  117. package/dataMap/dataSource.js +1 -2
  118. package/dataMap/metaManager/metaSchema.js +65 -0
  119. package/dataMap/metaManager/metaSchema.mjs +65 -0
  120. package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
  121. package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
  122. package/dataMap/replaceData.js +5 -0
  123. package/dataMap/replaceData.mjs +5 -0
  124. package/dist/handsontable.css +94 -76
  125. package/dist/handsontable.full.css +94 -76
  126. package/dist/handsontable.full.js +23133 -15992
  127. package/dist/handsontable.full.min.css +8 -8
  128. package/dist/handsontable.full.min.js +170 -152
  129. package/dist/handsontable.js +21856 -15085
  130. package/dist/handsontable.min.css +7 -7
  131. package/dist/handsontable.min.js +30 -22
  132. package/dist/languages/all.js +47 -40
  133. package/dist/languages/all.min.js +1 -1
  134. package/dist/languages/ar-AR.js +1 -2
  135. package/dist/languages/cs-CZ.js +1 -2
  136. package/dist/languages/de-CH.js +1 -2
  137. package/dist/languages/de-DE.js +1 -2
  138. package/dist/languages/en-US.js +15 -3
  139. package/dist/languages/en-US.min.js +1 -1
  140. package/dist/languages/es-MX.js +1 -2
  141. package/dist/languages/fr-FR.js +1 -2
  142. package/dist/languages/it-IT.js +1 -2
  143. package/dist/languages/ja-JP.js +1 -2
  144. package/dist/languages/ko-KR.js +1 -2
  145. package/dist/languages/lv-LV.js +1 -2
  146. package/dist/languages/nb-NO.js +1 -2
  147. package/dist/languages/nl-NL.js +1 -2
  148. package/dist/languages/pl-PL.js +15 -3
  149. package/dist/languages/pl-PL.min.js +1 -1
  150. package/dist/languages/pt-BR.js +1 -2
  151. package/dist/languages/ru-RU.js +1 -2
  152. package/dist/languages/sr-SP.js +1 -2
  153. package/dist/languages/zh-CN.js +1 -2
  154. package/dist/languages/zh-TW.js +1 -2
  155. package/editorManager.js +17 -91
  156. package/editorManager.mjs +16 -87
  157. package/editors/autocompleteEditor/autocompleteEditor.js +65 -11
  158. package/editors/autocompleteEditor/autocompleteEditor.mjs +65 -10
  159. package/editors/baseEditor/baseEditor.js +19 -13
  160. package/editors/baseEditor/baseEditor.mjs +16 -7
  161. package/editors/checkboxEditor/checkboxEditor.js +1 -2
  162. package/editors/dateEditor/dateEditor.js +27 -9
  163. package/editors/dateEditor/dateEditor.mjs +27 -8
  164. package/editors/dropdownEditor/dropdownEditor.js +1 -2
  165. package/editors/handsontableEditor/handsontableEditor.js +14 -7
  166. package/editors/handsontableEditor/handsontableEditor.mjs +14 -6
  167. package/editors/numericEditor/numericEditor.js +1 -2
  168. package/editors/passwordEditor/passwordEditor.js +1 -2
  169. package/editors/selectEditor/selectEditor.js +1 -2
  170. package/editors/textEditor/textEditor.js +20 -29
  171. package/editors/textEditor/textEditor.mjs +22 -30
  172. package/editors/timeEditor/timeEditor.js +1 -2
  173. package/eventManager.js +1 -2
  174. package/focusManager.d.ts +12 -0
  175. package/focusManager.js +265 -0
  176. package/focusManager.mjs +261 -0
  177. package/helpers/a11y.js +81 -0
  178. package/helpers/a11y.mjs +39 -0
  179. package/helpers/dom/element.js +224 -12
  180. package/helpers/dom/element.mjs +216 -10
  181. package/helpers/dom/event.d.ts +1 -0
  182. package/helpers/dom/event.js +25 -0
  183. package/helpers/dom/event.mjs +24 -0
  184. package/helpers/mixed.js +2 -2
  185. package/helpers/mixed.mjs +2 -2
  186. package/helpers/number.d.ts +1 -0
  187. package/helpers/number.js +18 -0
  188. package/helpers/number.mjs +17 -0
  189. package/helpers/unicode.js +1 -2
  190. package/i18n/constants.js +97 -160
  191. package/i18n/constants.mjs +17 -1
  192. package/i18n/languages/ar-AR.js +3 -4
  193. package/i18n/languages/cs-CZ.js +3 -4
  194. package/i18n/languages/de-CH.js +3 -4
  195. package/i18n/languages/de-DE.js +3 -4
  196. package/i18n/languages/en-US.js +17 -5
  197. package/i18n/languages/en-US.mjs +14 -1
  198. package/i18n/languages/es-MX.js +3 -4
  199. package/i18n/languages/fr-FR.js +3 -4
  200. package/i18n/languages/it-IT.js +3 -4
  201. package/i18n/languages/ja-JP.js +3 -4
  202. package/i18n/languages/ko-KR.js +3 -4
  203. package/i18n/languages/lv-LV.js +3 -4
  204. package/i18n/languages/nb-NO.js +3 -4
  205. package/i18n/languages/nl-NL.js +3 -4
  206. package/i18n/languages/pl-PL.js +17 -5
  207. package/i18n/languages/pl-PL.mjs +14 -1
  208. package/i18n/languages/pt-BR.js +3 -4
  209. package/i18n/languages/ru-RU.js +3 -4
  210. package/i18n/languages/sr-SP.js +3 -4
  211. package/i18n/languages/zh-CN.js +3 -4
  212. package/i18n/languages/zh-TW.js +3 -4
  213. package/i18n/registry.js +4 -6
  214. package/index.js +3 -4
  215. package/languages/all.js +47 -40
  216. package/languages/ar-AR.js +1 -2
  217. package/languages/cs-CZ.js +1 -2
  218. package/languages/de-CH.js +1 -2
  219. package/languages/de-DE.js +1 -2
  220. package/languages/en-US.js +15 -3
  221. package/languages/en-US.mjs +14 -1
  222. package/languages/es-MX.js +1 -2
  223. package/languages/fr-FR.js +1 -2
  224. package/languages/index.js +47 -40
  225. package/languages/it-IT.js +1 -2
  226. package/languages/ja-JP.js +1 -2
  227. package/languages/ko-KR.js +1 -2
  228. package/languages/lv-LV.js +1 -2
  229. package/languages/nb-NO.js +1 -2
  230. package/languages/nl-NL.js +1 -2
  231. package/languages/pl-PL.js +15 -3
  232. package/languages/pl-PL.mjs +14 -1
  233. package/languages/pt-BR.js +1 -2
  234. package/languages/ru-RU.js +1 -2
  235. package/languages/sr-SP.js +1 -2
  236. package/languages/zh-CN.js +1 -2
  237. package/languages/zh-TW.js +1 -2
  238. package/mixins/hooksRefRegisterer.js +1 -2
  239. package/mixins/localHooks.js +1 -2
  240. package/package.json +119 -96
  241. package/pluginHooks.d.ts +42 -7
  242. package/pluginHooks.js +301 -65
  243. package/pluginHooks.mjs +300 -63
  244. package/plugins/autoColumnSize/autoColumnSize.d.ts +2 -0
  245. package/plugins/autoColumnSize/autoColumnSize.js +2 -4
  246. package/plugins/autoRowSize/autoRowSize.d.ts +2 -0
  247. package/plugins/autoRowSize/autoRowSize.js +15 -10
  248. package/plugins/autoRowSize/autoRowSize.mjs +13 -6
  249. package/plugins/autofill/autofill.js +2 -4
  250. package/plugins/autofill/utils.js +1 -2
  251. package/plugins/base/base.js +1 -2
  252. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -4
  253. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +1 -2
  254. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -2
  255. package/plugins/collapsibleColumns/collapsibleColumns.js +77 -8
  256. package/plugins/collapsibleColumns/collapsibleColumns.mjs +76 -5
  257. package/plugins/columnSorting/columnSorting.js +71 -6
  258. package/plugins/columnSorting/columnSorting.mjs +70 -3
  259. package/plugins/columnSorting/index.js +3 -1
  260. package/plugins/columnSorting/index.mjs +1 -1
  261. package/plugins/columnSorting/sortFunction/checkbox.js +1 -2
  262. package/plugins/columnSorting/sortFunction/date.js +1 -2
  263. package/plugins/columnSorting/sortFunction/default.js +1 -2
  264. package/plugins/columnSorting/sortFunction/numeric.js +1 -2
  265. package/plugins/columnSorting/sortService/engine.js +3 -6
  266. package/plugins/columnSorting/utils.js +3 -6
  267. package/plugins/columnSummary/columnSummary.js +2 -4
  268. package/plugins/columnSummary/endpoints.js +1 -2
  269. package/plugins/comments/commentEditor.js +2 -2
  270. package/plugins/comments/commentEditor.mjs +1 -0
  271. package/plugins/comments/comments.js +254 -197
  272. package/plugins/comments/comments.mjs +251 -190
  273. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  274. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  275. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  276. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  277. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  278. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  279. package/plugins/comments/displaySwitch.js +1 -2
  280. package/plugins/contextMenu/commandExecutor.js +2 -3
  281. package/plugins/contextMenu/commandExecutor.mjs +2 -3
  282. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  283. package/plugins/contextMenu/contextMenu.js +77 -40
  284. package/plugins/contextMenu/contextMenu.mjs +74 -35
  285. package/plugins/contextMenu/itemsFactory.js +2 -3
  286. package/plugins/contextMenu/itemsFactory.mjs +3 -4
  287. package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
  288. package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
  289. package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
  290. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
  291. package/plugins/contextMenu/menu/index.js +9 -0
  292. package/plugins/contextMenu/menu/index.mjs +1 -0
  293. package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
  294. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
  295. package/plugins/contextMenu/menu/menuItemRenderer.js +70 -0
  296. package/plugins/contextMenu/menu/menuItemRenderer.mjs +66 -0
  297. package/plugins/contextMenu/menu/navigator.js +27 -0
  298. package/plugins/contextMenu/menu/navigator.mjs +23 -0
  299. package/plugins/contextMenu/menu/positioner.js +213 -0
  300. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  301. package/plugins/contextMenu/menu/shortcuts.js +114 -0
  302. package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
  303. package/plugins/contextMenu/menu/utils.js +177 -0
  304. package/plugins/contextMenu/menu/utils.mjs +163 -0
  305. package/plugins/contextMenu/predefinedItems/alignment.js +10 -4
  306. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  307. package/plugins/contextMenu/predefinedItems/clearColumn.js +8 -7
  308. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  309. package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -7
  310. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  311. package/plugins/contextMenu/predefinedItems/columnRight.js +8 -7
  312. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  313. package/plugins/contextMenu/predefinedItems/index.js +75 -0
  314. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  315. package/plugins/contextMenu/predefinedItems/noItems.js +1 -2
  316. package/plugins/contextMenu/predefinedItems/readOnly.js +10 -4
  317. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  318. package/plugins/contextMenu/predefinedItems/redo.js +3 -4
  319. package/plugins/contextMenu/predefinedItems/removeColumn.js +10 -9
  320. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  321. package/plugins/contextMenu/predefinedItems/removeRow.js +10 -9
  322. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  323. package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -7
  324. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  325. package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -7
  326. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  327. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  328. package/plugins/contextMenu/predefinedItems/undo.js +3 -4
  329. package/plugins/contextMenu/utils.js +35 -151
  330. package/plugins/contextMenu/utils.mjs +35 -144
  331. package/plugins/copyPaste/clipboardData/clipboardData.js +516 -0
  332. package/plugins/copyPaste/clipboardData/clipboardData.mjs +512 -0
  333. package/plugins/copyPaste/clipboardData/copyClipboardData.js +69 -0
  334. package/plugins/copyPaste/clipboardData/copyClipboardData.mjs +65 -0
  335. package/plugins/copyPaste/clipboardData/index.js +9 -0
  336. package/plugins/copyPaste/clipboardData/index.mjs +4 -0
  337. package/plugins/copyPaste/clipboardData/pasteClipboardData.js +81 -0
  338. package/plugins/copyPaste/clipboardData/pasteClipboardData.mjs +77 -0
  339. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  340. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  341. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  342. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  343. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  344. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  345. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  346. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  347. package/plugins/copyPaste/contextMenuItem/cut.js +9 -2
  348. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  349. package/plugins/copyPaste/copyPaste.js +160 -167
  350. package/plugins/copyPaste/copyPaste.mjs +161 -166
  351. package/plugins/customBorders/contextMenuItem/bottom.js +2 -2
  352. package/plugins/customBorders/contextMenuItem/left.js +2 -2
  353. package/plugins/customBorders/contextMenuItem/noBorders.js +2 -2
  354. package/plugins/customBorders/contextMenuItem/right.js +2 -2
  355. package/plugins/customBorders/contextMenuItem/top.js +2 -2
  356. package/plugins/customBorders/customBorders.js +27 -26
  357. package/plugins/customBorders/customBorders.mjs +24 -21
  358. package/plugins/dragToScroll/dragToScroll.js +2 -4
  359. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  360. package/plugins/dropdownMenu/dropdownMenu.js +130 -44
  361. package/plugins/dropdownMenu/dropdownMenu.mjs +127 -39
  362. package/plugins/exportFile/dataProvider.js +1 -2
  363. package/plugins/exportFile/exportFile.js +4 -6
  364. package/plugins/exportFile/typeFactory.js +5 -8
  365. package/plugins/exportFile/types/_base.js +1 -2
  366. package/plugins/exportFile/types/csv.js +1 -2
  367. package/plugins/filters/component/_base.js +23 -8
  368. package/plugins/filters/component/_base.mjs +23 -8
  369. package/plugins/filters/component/actionBar.js +31 -29
  370. package/plugins/filters/component/actionBar.mjs +26 -23
  371. package/plugins/filters/component/condition.js +48 -61
  372. package/plugins/filters/component/condition.mjs +40 -52
  373. package/plugins/filters/component/operators.js +21 -22
  374. package/plugins/filters/component/operators.mjs +18 -18
  375. package/plugins/filters/component/value.js +37 -28
  376. package/plugins/filters/component/value.mjs +32 -22
  377. package/plugins/filters/condition/beginsWith.js +3 -4
  378. package/plugins/filters/condition/between.js +3 -4
  379. package/plugins/filters/condition/byValue.js +1 -2
  380. package/plugins/filters/condition/contains.js +3 -4
  381. package/plugins/filters/condition/date/after.js +3 -4
  382. package/plugins/filters/condition/date/before.js +3 -4
  383. package/plugins/filters/condition/date/today.js +3 -4
  384. package/plugins/filters/condition/date/tomorrow.js +3 -4
  385. package/plugins/filters/condition/date/yesterday.js +3 -4
  386. package/plugins/filters/condition/empty.js +3 -4
  387. package/plugins/filters/condition/endsWith.js +3 -4
  388. package/plugins/filters/condition/equal.js +3 -4
  389. package/plugins/filters/condition/false.js +1 -2
  390. package/plugins/filters/condition/greaterThan.js +3 -4
  391. package/plugins/filters/condition/greaterThanOrEqual.js +3 -4
  392. package/plugins/filters/condition/lessThan.js +3 -4
  393. package/plugins/filters/condition/lessThanOrEqual.js +3 -4
  394. package/plugins/filters/condition/none.js +3 -4
  395. package/plugins/filters/condition/notBetween.js +3 -4
  396. package/plugins/filters/condition/notContains.js +3 -4
  397. package/plugins/filters/condition/notEmpty.js +3 -4
  398. package/plugins/filters/condition/notEqual.js +3 -4
  399. package/plugins/filters/condition/true.js +1 -2
  400. package/plugins/filters/conditionCollection.d.ts +3 -2
  401. package/plugins/filters/conditionCollection.js +1 -2
  402. package/plugins/filters/conditionRegisterer.js +1 -2
  403. package/plugins/filters/conditionUpdateObserver.js +1 -2
  404. package/plugins/filters/constants.js +4 -8
  405. package/plugins/filters/constants.mjs +1 -1
  406. package/plugins/filters/dataFilter.js +1 -2
  407. package/plugins/filters/filters.d.ts +3 -5
  408. package/plugins/filters/filters.js +118 -67
  409. package/plugins/filters/filters.mjs +109 -56
  410. package/plugins/filters/logicalOperationRegisterer.js +1 -2
  411. package/plugins/filters/logicalOperations/conjunction.js +4 -6
  412. package/plugins/filters/logicalOperations/disjunction.js +4 -6
  413. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +4 -6
  414. package/plugins/filters/menu/focusController.js +123 -0
  415. package/plugins/filters/menu/focusController.mjs +119 -0
  416. package/plugins/filters/menu/focusNavigator.js +30 -0
  417. package/plugins/filters/menu/focusNavigator.mjs +26 -0
  418. package/plugins/filters/ui/_base.js +37 -15
  419. package/plugins/filters/ui/_base.mjs +35 -13
  420. package/plugins/filters/ui/input.js +43 -35
  421. package/plugins/filters/ui/input.mjs +42 -33
  422. package/plugins/filters/ui/link.js +44 -12
  423. package/plugins/filters/ui/link.mjs +44 -11
  424. package/plugins/filters/ui/multipleSelect.js +237 -133
  425. package/plugins/filters/ui/multipleSelect.mjs +232 -127
  426. package/plugins/filters/ui/radioInput.js +42 -18
  427. package/plugins/filters/ui/radioInput.mjs +42 -17
  428. package/plugins/filters/ui/select.js +152 -77
  429. package/plugins/filters/ui/select.mjs +148 -72
  430. package/plugins/formulas/engine/settings.js +2 -4
  431. package/plugins/formulas/formulas.js +3 -6
  432. package/plugins/formulas/indexSyncer/axisSyncer.js +1 -2
  433. package/plugins/formulas/indexSyncer/index.js +1 -2
  434. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -2
  435. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
  436. package/plugins/hiddenColumns/hiddenColumns.d.ts +1 -0
  437. package/plugins/hiddenColumns/hiddenColumns.js +49 -6
  438. package/plugins/hiddenColumns/hiddenColumns.mjs +48 -3
  439. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -2
  440. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
  441. package/plugins/hiddenRows/hiddenRows.d.ts +1 -0
  442. package/plugins/hiddenRows/hiddenRows.js +49 -6
  443. package/plugins/hiddenRows/hiddenRows.mjs +48 -3
  444. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  445. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  446. package/plugins/manualColumnFreeze/manualColumnFreeze.js +2 -4
  447. package/plugins/manualColumnMove/manualColumnMove.js +9 -17
  448. package/plugins/manualColumnMove/manualColumnMove.mjs +7 -13
  449. package/plugins/manualColumnMove/ui/_base.js +1 -2
  450. package/plugins/manualColumnMove/ui/backlight.js +1 -2
  451. package/plugins/manualColumnMove/ui/guideline.js +1 -2
  452. package/plugins/manualColumnResize/manualColumnResize.js +2 -4
  453. package/plugins/manualRowMove/manualRowMove.js +6 -23
  454. package/plugins/manualRowMove/manualRowMove.mjs +4 -19
  455. package/plugins/manualRowMove/ui/_base.js +1 -2
  456. package/plugins/manualRowMove/ui/backlight.js +1 -2
  457. package/plugins/manualRowMove/ui/guideline.js +1 -2
  458. package/plugins/manualRowResize/manualRowResize.js +2 -4
  459. package/plugins/mergeCells/calculations/autofill.js +1 -2
  460. package/plugins/mergeCells/calculations/selection.js +1 -2
  461. package/plugins/mergeCells/cellCoords.js +1 -2
  462. package/plugins/mergeCells/cellsCollection.js +1 -2
  463. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +2 -2
  464. package/plugins/mergeCells/mergeCells.js +7 -20
  465. package/plugins/mergeCells/mergeCells.mjs +5 -16
  466. package/plugins/multiColumnSorting/multiColumnSorting.js +60 -6
  467. package/plugins/multiColumnSorting/multiColumnSorting.mjs +59 -3
  468. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -4
  469. package/plugins/nestedHeaders/nestedHeaders.js +263 -36
  470. package/plugins/nestedHeaders/nestedHeaders.mjs +262 -33
  471. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  472. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  473. package/plugins/nestedHeaders/stateManager/sourceSettings.js +1 -2
  474. package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
  475. package/plugins/nestedRows/data/dataManager.js +1 -2
  476. package/plugins/nestedRows/nestedRows.js +47 -10
  477. package/plugins/nestedRows/nestedRows.mjs +45 -6
  478. package/plugins/nestedRows/ui/_base.js +1 -2
  479. package/plugins/nestedRows/ui/collapsing.js +1 -2
  480. package/plugins/nestedRows/ui/contextMenu.js +3 -4
  481. package/plugins/nestedRows/ui/headers.js +13 -3
  482. package/plugins/nestedRows/ui/headers.mjs +13 -2
  483. package/plugins/persistentState/persistentState.js +2 -4
  484. package/plugins/persistentState/storage.js +1 -2
  485. package/plugins/search/search.js +2 -4
  486. package/plugins/touchScroll/touchScroll.js +2 -4
  487. package/plugins/trimRows/trimRows.js +2 -4
  488. package/plugins/undoRedo/index.js +2 -2
  489. package/plugins/undoRedo/undoRedo.js +2 -4
  490. package/renderers/autocompleteRenderer/autocompleteRenderer.js +9 -2
  491. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  492. package/renderers/baseRenderer/baseRenderer.js +18 -2
  493. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  494. package/renderers/checkboxRenderer/checkboxRenderer.js +10 -6
  495. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  496. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  497. package/renderers/dateRenderer/dateRenderer.js +28 -0
  498. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  499. package/renderers/dateRenderer/index.d.ts +1 -0
  500. package/renderers/dateRenderer/index.js +6 -0
  501. package/renderers/dateRenderer/index.mjs +1 -0
  502. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  503. package/renderers/handsontableRenderer/handsontableRenderer.js +28 -0
  504. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  505. package/renderers/handsontableRenderer/index.d.ts +1 -0
  506. package/renderers/handsontableRenderer/index.js +6 -0
  507. package/renderers/handsontableRenderer/index.mjs +1 -0
  508. package/renderers/htmlRenderer/htmlRenderer.js +1 -2
  509. package/renderers/index.d.ts +9 -0
  510. package/renderers/numericRenderer/numericRenderer.js +1 -2
  511. package/renderers/passwordRenderer/passwordRenderer.js +1 -2
  512. package/renderers/selectRenderer/index.d.ts +1 -0
  513. package/renderers/selectRenderer/index.js +6 -0
  514. package/renderers/selectRenderer/index.mjs +1 -0
  515. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  516. package/renderers/selectRenderer/selectRenderer.js +26 -0
  517. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  518. package/renderers/textRenderer/textRenderer.js +1 -2
  519. package/renderers/timeRenderer/timeRenderer.js +1 -2
  520. package/selection/highlight/highlight.js +257 -73
  521. package/selection/highlight/highlight.mjs +250 -71
  522. package/selection/highlight/types/activeHeader.js +10 -8
  523. package/selection/highlight/types/activeHeader.mjs +10 -8
  524. package/selection/highlight/types/area.js +6 -18
  525. package/selection/highlight/types/area.mjs +6 -18
  526. package/selection/highlight/types/areaLayered.js +31 -0
  527. package/selection/highlight/types/areaLayered.mjs +26 -0
  528. package/selection/highlight/types/column.js +27 -0
  529. package/selection/highlight/types/column.mjs +22 -0
  530. package/selection/highlight/types/customSelection.js +7 -9
  531. package/selection/highlight/types/customSelection.mjs +7 -9
  532. package/selection/highlight/types/fill.js +5 -7
  533. package/selection/highlight/types/fill.mjs +5 -7
  534. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  535. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  536. package/selection/highlight/types/header.js +9 -18
  537. package/selection/highlight/types/header.mjs +9 -18
  538. package/selection/highlight/types/row.js +27 -0
  539. package/selection/highlight/types/row.mjs +22 -0
  540. package/selection/highlight/visualSelection.js +32 -29
  541. package/selection/highlight/visualSelection.mjs +31 -27
  542. package/selection/index.js +4 -7
  543. package/selection/index.mjs +2 -3
  544. package/selection/mouseEventHandler.js +7 -1
  545. package/selection/mouseEventHandler.mjs +7 -1
  546. package/selection/range.js +9 -10
  547. package/selection/range.mjs +8 -8
  548. package/selection/selection.js +334 -154
  549. package/selection/selection.mjs +330 -151
  550. package/selection/transformation.js +233 -94
  551. package/selection/transformation.mjs +232 -92
  552. package/selection/utils.js +20 -31
  553. package/selection/utils.mjs +16 -21
  554. package/settings.d.ts +4 -0
  555. package/shortcutContexts/commands/editor/closeAndSave.js +11 -0
  556. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  557. package/shortcutContexts/commands/editor/closeWithoutSaving.js +11 -0
  558. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  559. package/shortcutContexts/commands/editor/fastOpen.js +15 -0
  560. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  561. package/shortcutContexts/commands/editor/index.js +16 -0
  562. package/shortcutContexts/commands/editor/index.mjs +12 -0
  563. package/shortcutContexts/commands/editor/open.js +26 -0
  564. package/shortcutContexts/commands/editor/open.mjs +23 -0
  565. package/shortcutContexts/commands/emptySelectedCells.js +10 -0
  566. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  567. package/shortcutContexts/commands/extendCellsSelection/down.js +14 -0
  568. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  569. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +24 -0
  570. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  571. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  572. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  573. package/shortcutContexts/commands/extendCellsSelection/left.js +14 -0
  574. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  575. package/shortcutContexts/commands/extendCellsSelection/right.js +14 -0
  576. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  577. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +18 -0
  578. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  579. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +28 -0
  580. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  581. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +18 -0
  582. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  583. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +18 -0
  584. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  585. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +28 -0
  586. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  587. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +28 -0
  588. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  589. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +28 -0
  590. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  591. package/shortcutContexts/commands/extendCellsSelection/toRows.js +18 -0
  592. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  593. package/shortcutContexts/commands/extendCellsSelection/up.js +14 -0
  594. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  595. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +24 -0
  596. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  597. package/shortcutContexts/commands/index.js +35 -0
  598. package/shortcutContexts/commands/index.mjs +31 -0
  599. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  600. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  601. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +32 -0
  602. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  603. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  604. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  605. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +11 -0
  606. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  607. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +11 -0
  608. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  609. package/shortcutContexts/commands/moveCellSelection/left.js +9 -0
  610. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  611. package/shortcutContexts/commands/moveCellSelection/right.js +9 -0
  612. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  613. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  614. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  615. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  616. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  617. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  618. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  619. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  620. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  621. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +18 -0
  622. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  623. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +20 -0
  624. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  625. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  626. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  627. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  628. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  629. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  630. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  631. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +32 -0
  632. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  633. package/shortcutContexts/commands/populateSelectedCellsData.js +28 -0
  634. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  635. package/shortcutContexts/commands/scrollToFocusedCell.js +34 -0
  636. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  637. package/shortcutContexts/commands/selectAll.js +11 -0
  638. package/shortcutContexts/commands/selectAll.mjs +8 -0
  639. package/shortcutContexts/constants.js +11 -0
  640. package/shortcutContexts/constants.mjs +8 -0
  641. package/shortcutContexts/editor.js +25 -0
  642. package/shortcutContexts/editor.mjs +21 -0
  643. package/shortcutContexts/grid.js +167 -0
  644. package/shortcutContexts/grid.mjs +163 -0
  645. package/shortcutContexts/index.js +24 -0
  646. package/shortcutContexts/index.mjs +11 -0
  647. package/shortcuts/context.d.ts +1 -0
  648. package/shortcuts/context.js +23 -4
  649. package/shortcuts/context.mjs +23 -5
  650. package/shortcuts/manager.js +31 -7
  651. package/shortcuts/manager.mjs +32 -7
  652. package/shortcuts/recorder.js +30 -14
  653. package/shortcuts/recorder.mjs +30 -14
  654. package/shortcuts/utils.js +19 -5
  655. package/shortcuts/utils.mjs +18 -4
  656. package/tableView.js +113 -16
  657. package/tableView.mjs +113 -15
  658. package/utils/dataStructures/linkedList.js +1 -2
  659. package/utils/dataStructures/priorityMap.js +2 -4
  660. package/utils/dataStructures/queue.js +1 -2
  661. package/utils/dataStructures/stack.js +1 -2
  662. package/utils/dataStructures/tree.js +3 -6
  663. package/utils/ghostTable.js +32 -17
  664. package/utils/ghostTable.mjs +31 -15
  665. package/utils/interval.js +1 -2
  666. package/utils/paginator.js +151 -0
  667. package/utils/paginator.mjs +147 -0
  668. package/utils/parseTable.js +527 -83
  669. package/utils/parseTable.mjs +523 -82
  670. package/utils/rootInstance.js +2 -4
  671. package/utils/samplesGenerator.js +21 -13
  672. package/utils/samplesGenerator.mjs +20 -11
  673. package/utils/staticRegister.js +1 -2
  674. package/validators/autocompleteValidator/autocompleteValidator.js +1 -2
  675. package/validators/dateValidator/dateValidator.js +1 -2
  676. package/validators/numericValidator/numericValidator.js +1 -2
  677. package/validators/timeValidator/timeValidator.js +1 -2
  678. package/3rdparty/walkontable/src/selection.js +0 -295
  679. package/3rdparty/walkontable/src/selection.mjs +0 -290
  680. package/plugins/contextMenu/predefinedItems.js +0 -76
  681. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  682. package/plugins/copyPaste/clipboardData.js +0 -18
  683. package/plugins/copyPaste/clipboardData.mjs +0 -14
  684. package/plugins/copyPaste/focusableElement.js +0 -186
  685. package/plugins/copyPaste/focusableElement.mjs +0 -180
  686. package/plugins/copyPaste/pasteEvent.js +0 -14
  687. package/plugins/copyPaste/pasteEvent.mjs +0 -9
  688. package/selection/highlight/constants.js +0 -15
  689. package/selection/highlight/constants.mjs +0 -6
  690. package/selection/highlight/types/index.js +0 -35
  691. package/selection/highlight/types/index.mjs +0 -31
@@ -0,0 +1,512 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
+ 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); }
5
+ import { isDefined } from "../../../helpers/mixed.mjs";
6
+ import { deepClone } from "../../../helpers/object.mjs";
7
+ import { toSingleLine } from "../../../helpers/templateLiteralTag.mjs";
8
+ import { warn } from "../../../helpers/console.mjs";
9
+ import { getDataWithHeadersByConfig, getHTMLFromConfig, htmlToGridSettings } from "../../../utils/parseTable.mjs";
10
+ export const META_HEAD = ['<meta name="generator" content="Handsontable"/>', '<style type="text/css">td{white-space:normal}br{mso-data-placement:same-cell}</style>'].join('');
11
+
12
+ /**
13
+ * Creates an object containing information about performed action: copy, cut (performing also copying) or paste.
14
+ *
15
+ * @private
16
+ */
17
+ export class ClipboardData {
18
+ constructor() {
19
+ /**
20
+ * Sanitized data of "text/html" type inside the clipboard.
21
+ *
22
+ * @private
23
+ * @type {string}
24
+ */
25
+ _defineProperty(this, "html", void 0);
26
+ /**
27
+ * Copied data stored as array of arrays.
28
+ *
29
+ * @private
30
+ * @type {string[][]}
31
+ */
32
+ _defineProperty(this, "data", void 0);
33
+ if (this.constructor === ClipboardData) {
34
+ throw new Error('The `ClipboardData` is an abstract class and it can\'t be instantiated. Please use ' + '`CopyClipboardData` or `PasteClipboardData` classes instead.');
35
+ }
36
+ }
37
+
38
+ /**
39
+ * Gets copied data stored as array of arrays.
40
+ *
41
+ * @returns {string[][]}
42
+ */
43
+ getData() {
44
+ return deepClone(this.data);
45
+ }
46
+
47
+ /**
48
+ * Gets meta information about copied data.
49
+ *
50
+ * @returns {object} Object containing `data`, `colHeaders`, `rowHeaders`, `nestedHeaders`, `mergeCells` keys and
51
+ * the corresponding values.
52
+ */
53
+ getMetaInfo() {
54
+ return htmlToGridSettings(this.html);
55
+ }
56
+
57
+ /**
58
+ * Overwrite stored data basing on handled configuration.
59
+ *
60
+ * @private
61
+ * @param {object} config Configuration.
62
+ */
63
+ overwriteInfo(config) {
64
+ this.html = [this.isSerializedHandsontable() ? META_HEAD : '', getHTMLFromConfig(config)].join('');
65
+ this.data = getDataWithHeadersByConfig(config);
66
+ }
67
+
68
+ /**
69
+ * Adjust information about merged cells after removing some columns.
70
+ *
71
+ * Note: Used indexes refers to processed data, not to the instance of Handsontable.
72
+ *
73
+ * @private
74
+ * @param {object} metaInfo Object containing `data`, `colHeaders`, `rowHeaders`, `nestedHeaders`, `mergeCells`
75
+ * keys and the corresponding values, which will be changed by the reference.
76
+ * @param {number[]} removedColumns List of column indexes which should be excluded when creating copy/cut/paste data.
77
+ */
78
+ adjustAfterColumnsRemoval(metaInfo, removedColumns) {
79
+ const mergedCells = metaInfo.mergeCells;
80
+ if (isDefined(mergedCells) === false) {
81
+ return;
82
+ }
83
+ metaInfo.mergeCells = mergedCells.reduce((filteredNestedCells, mergeArea) => {
84
+ const {
85
+ col: mergeStartColumn,
86
+ colspan
87
+ } = mergeArea;
88
+ const removedMergedColumns = removedColumns.filter(column => column >= mergeStartColumn && column < mergeStartColumn + colspan);
89
+ const removedMergedColumnsLength = removedMergedColumns.length;
90
+ if (removedMergedColumnsLength === colspan) {
91
+ return filteredNestedCells;
92
+ } else if (colspan - removedMergedColumnsLength === 1) {
93
+ delete mergeArea.colspan;
94
+ } else if (removedMergedColumnsLength > 0) {
95
+ mergeArea.colspan = colspan - removedMergedColumnsLength;
96
+ }
97
+ if (Number.isInteger(mergeArea.rowspan) || Number.isInteger(mergeArea.colspan)) {
98
+ return filteredNestedCells.concat(mergeArea);
99
+ }
100
+ return filteredNestedCells;
101
+ }, []);
102
+ metaInfo.mergeCells.forEach(mergeArea => {
103
+ const shiftedColumns = removedColumns.filter(column => column < mergeArea.col);
104
+ const shifterColumnsLength = shiftedColumns.length;
105
+ mergeArea.col = mergeArea.col - shifterColumnsLength;
106
+ });
107
+ if (metaInfo.mergeCells.length === 0) {
108
+ delete metaInfo.mergeCells;
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Adjust information about merged cells after removing some rows.
114
+ *
115
+ * Note: Used indexes refers to processed data, not to the instance of Handsontable.
116
+ *
117
+ * @private
118
+ * @param {object} metaInfo Object containing `data`, `colHeaders`, `rowHeaders`, `nestedHeaders`, `mergeCells`
119
+ * keys and the corresponding values, which will be changed by the reference.
120
+ * @param {number[]} removedRows List of row indexes which should be excluded when creating copy/cut/paste data.
121
+ */
122
+ adjustAfterRowRemoval(metaInfo, removedRows) {
123
+ const mergedCells = metaInfo.mergeCells;
124
+ if (isDefined(mergedCells) === false) {
125
+ return;
126
+ }
127
+ metaInfo.mergeCells = mergedCells.reduce((filteredNestedCells, mergeArea) => {
128
+ const {
129
+ row: mergeStartRow,
130
+ rowspan
131
+ } = mergeArea;
132
+ const removedMergedRows = removedRows.filter(row => row >= mergeStartRow && row < mergeStartRow + rowspan);
133
+ const removedMergedRowsLength = removedMergedRows.length;
134
+ if (removedMergedRowsLength === rowspan) {
135
+ return filteredNestedCells;
136
+ } else if (rowspan - removedMergedRowsLength === 1) {
137
+ delete mergeArea.rowspan;
138
+ } else if (removedMergedRowsLength > 0) {
139
+ mergeArea.rowspan = rowspan - removedMergedRowsLength;
140
+ }
141
+ if (Number.isInteger(mergeArea.rowspan) || Number.isInteger(mergeArea.colspan)) {
142
+ return filteredNestedCells.concat(mergeArea);
143
+ }
144
+ return filteredNestedCells;
145
+ }, []);
146
+ metaInfo.mergeCells.forEach(mergeArea => {
147
+ const shiftedRows = removedRows.filter(row => row < mergeArea.row);
148
+ const shifterRowsLength = shiftedRows.length;
149
+ mergeArea.row = mergeArea.row - shifterRowsLength;
150
+ });
151
+ if (metaInfo.mergeCells.length === 0) {
152
+ delete metaInfo.mergeCells;
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Remove rows from the serialized dataset.
158
+ *
159
+ * Note: Used indexes refers to processed data, not to the instance of Handsontable. Please keep in mind that headers
160
+ * are handled separately from cells and they are recognised using negative indexes.
161
+ *
162
+ * @param {number[]} rows List of row indexes which should be excluded when creating copy/cut/paste data.
163
+ */
164
+ removeRows(rows) {
165
+ if (this.isSerializedTable() === false) {
166
+ return;
167
+ }
168
+ const metaInfo = this.getMetaInfo();
169
+ this.adjustAfterRowRemoval(metaInfo, rows);
170
+ const config = {
171
+ ...metaInfo,
172
+ excludedRows: rows
173
+ };
174
+ this.overwriteInfo(config);
175
+ }
176
+
177
+ /**
178
+ * Remove columns from the serialized dataset.
179
+ *
180
+ * Note: Used indexes refers to processed data, not to the instance of Handsontable. Please keep in mind that headers
181
+ * are handled separately from cells and they are recognised using negative indexes.
182
+ *
183
+ * @param {number[]} columns List of column indexes which should be excluded when creating copy/cut/paste data.
184
+ */
185
+ removeColumns(columns) {
186
+ if (this.isSerializedTable() === false) {
187
+ return;
188
+ }
189
+ const metaInfo = this.getMetaInfo();
190
+ const {
191
+ nestedHeaders,
192
+ colHeaders
193
+ } = metaInfo;
194
+ if (Array.isArray(nestedHeaders) && columns.length > 0) {
195
+ warn('It\'s not possible to modify copied dataset containing nested headers.');
196
+ return;
197
+ }
198
+ if (Array.isArray(colHeaders) && columns.length > 0) {
199
+ metaInfo.colHeaders = colHeaders.filter(columnIndex => columns.includes(columnIndex) === false);
200
+ }
201
+ this.adjustAfterColumnsRemoval(metaInfo, columns);
202
+ const config = {
203
+ ...metaInfo,
204
+ excludedColumns: columns
205
+ };
206
+ this.overwriteInfo(config);
207
+ }
208
+
209
+ /**
210
+ * Get warning message when there is some problem with row insertion or undefined otherwise.
211
+ *
212
+ * @private
213
+ * @param {number} rowIndex An index of the row at which the new values will be inserted.
214
+ * @param {string[]} values List of values.
215
+ * @returns {undefined|string}
216
+ */
217
+ getRowInsertionWarn(rowIndex, values) {
218
+ const metaInfo = this.getMetaInfo();
219
+ const data = metaInfo.data;
220
+ const insertedElementsCount = values.length;
221
+ if (Array.isArray(data) === false) {
222
+ const {
223
+ nestedHeaders,
224
+ colHeaders
225
+ } = metaInfo;
226
+ if (rowIndex > 0) {
227
+ return toSingleLine`Invalid row insertion done inside some \`CopyPaste\` hook. There is no possibility to\x20
228
+ expand an empty dataset at position higher than zero.`;
229
+ }
230
+ if (Array.isArray(nestedHeaders) && nestedHeaders[0].length !== insertedElementsCount || Array.isArray(colHeaders) && colHeaders.length !== insertedElementsCount) {
231
+ return toSingleLine`Invalid row insertion done inside some \`CopyPaste\` hook. Please provide proper number\x20
232
+ of elements (corresponding to size of the dataset in other rows) for inserted rows.`;
233
+ }
234
+ return;
235
+ }
236
+ const numberOfRows = data.length;
237
+ const numberOfColumns = data[0].length;
238
+ if (rowIndex > numberOfRows) {
239
+ return toSingleLine`Invalid row insertion done inside some \`CopyPaste\` hook. Please provide an valid row\x20
240
+ index (not too high) for row data insertion.`;
241
+ }
242
+ if (numberOfColumns !== insertedElementsCount) {
243
+ return toSingleLine`Invalid row insertion done inside some \`CopyPaste\` hook. Please provide proper number of\x20
244
+ elements (corresponding to size of the dataset in other rows) for inserted rows.`;
245
+ }
246
+ }
247
+
248
+ /**
249
+ * Adjust information about merged cells after row insertion.
250
+ *
251
+ * Note: Used index refers to processed data, not to the instance of Handsontable.
252
+ *
253
+ * @private
254
+ * @param {object} metaInfo Object containing `data`, `colHeaders`, `rowHeaders`, `nestedHeaders`, `mergeCells`
255
+ * keys and the corresponding values, which will be changed by the reference.
256
+ * @param {number} rowIndex An index of the row at which the new values have been inserted.
257
+ */
258
+ adjustAfterRowInsertion(metaInfo, rowIndex) {
259
+ const {
260
+ mergeCells: mergedCells,
261
+ data
262
+ } = metaInfo;
263
+ mergedCells === null || mergedCells === void 0 || mergedCells.forEach(mergeArea => {
264
+ const {
265
+ row: mergeStartRow,
266
+ col: mergeStartColumn,
267
+ rowspan,
268
+ colspan
269
+ } = mergeArea;
270
+ if (rowIndex > mergeStartRow && rowIndex < mergeStartRow + rowspan) {
271
+ mergeArea.rowspan += 1;
272
+ for (let i = 0; i < colspan; i += 1) {
273
+ data[rowIndex][mergeStartColumn + i] = '';
274
+ }
275
+ }
276
+ });
277
+ mergedCells === null || mergedCells === void 0 || mergedCells.forEach(mergeArea => {
278
+ if (rowIndex <= mergeArea.row) {
279
+ mergeArea.row += 1;
280
+ }
281
+ });
282
+ }
283
+
284
+ /**
285
+ * Insert values at row index.
286
+ *
287
+ * Note: Used index refers to processed data, not to the instance of Handsontable.
288
+ *
289
+ * @param {number} rowIndex An index of the row at which the new values will be inserted.
290
+ * @param {string[]} values List of values.
291
+ */
292
+ insertAtRow(rowIndex, values) {
293
+ if (this.isSerializedTable() === false) {
294
+ return;
295
+ }
296
+ const metaInfo = this.getMetaInfo();
297
+ const data = metaInfo.data || [];
298
+ const rowInsertionWarn = this.getRowInsertionWarn(rowIndex, values);
299
+ if (isDefined(rowInsertionWarn)) {
300
+ warn(rowInsertionWarn);
301
+ return;
302
+ }
303
+ metaInfo.data = [...data.slice(0, rowIndex), values, ...data.slice(rowIndex)];
304
+ this.adjustAfterRowInsertion(metaInfo, rowIndex);
305
+ this.overwriteInfo(metaInfo);
306
+ }
307
+
308
+ /**
309
+ * Get warning message when there is some problem with row insertion or undefined otherwise.
310
+ *
311
+ * @private
312
+ * @param {number} columnIndex An index of the column at which the new values will be inserted or removed.
313
+ * @param {string[]} values List of values.
314
+ * @returns {undefined|string}
315
+ */
316
+ getColumnInsertionWarn(columnIndex, values) {
317
+ const {
318
+ nestedHeaders,
319
+ data,
320
+ colHeaders
321
+ } = this.getMetaInfo();
322
+ const headerLevels = isDefined(colHeaders) ? 1 : 0;
323
+ if (Array.isArray(nestedHeaders)) {
324
+ return toSingleLine`Invalid column insertion done inside some \`CopyPaste\` hook. It's not possible to modify\x20
325
+ copied dataset containing nested headers`;
326
+ }
327
+ if (Array.isArray(data) === false) {
328
+ return;
329
+ }
330
+ const numberOfRows = data.length + headerLevels;
331
+ const numberOfColumns = data[0].length;
332
+ if (columnIndex > numberOfColumns) {
333
+ return toSingleLine`Invalid column insertion done inside some \`CopyPaste\` hook. Please provide an valid\x20
334
+ column index (not too high) for column data insertion.`;
335
+ }
336
+ if (values.length !== numberOfRows) {
337
+ return toSingleLine`Invalid column insertion done inside some \`CopyPaste\` hook. Please provide proper number\x20
338
+ of elements (corresponding to size of the dataset in other columns, including headers) for inserted columns.`;
339
+ }
340
+ }
341
+
342
+ /**
343
+ * Adjust information about merged cells after column insertion.
344
+ *
345
+ * Note: Used index refers to processed data, not to the instance of Handsontable.
346
+ *
347
+ * @private
348
+ * @param {object} metaInfo Object containing `data`, `colHeaders`, `rowHeaders`, `nestedHeaders`, `mergeCells`
349
+ * keys and the corresponding values, which will be changed by the reference.
350
+ * @param {number} columnIndex An index of the column at which the new values have been inserted.
351
+ */
352
+ adjustAfterColumnInsertion(metaInfo, columnIndex) {
353
+ const {
354
+ mergeCells: mergedCells,
355
+ data
356
+ } = metaInfo;
357
+ mergedCells === null || mergedCells === void 0 || mergedCells.forEach(mergeArea => {
358
+ const {
359
+ row: mergeStartRow,
360
+ col: mergeStartColumn,
361
+ colspan,
362
+ rowspan
363
+ } = mergeArea;
364
+ if (columnIndex > mergeStartColumn && columnIndex < mergeStartColumn + colspan) {
365
+ mergeArea.colspan += 1;
366
+ for (let i = 0; i < rowspan; i += 1) {
367
+ data[mergeStartRow + i][columnIndex] = '';
368
+ }
369
+ }
370
+ });
371
+ mergedCells === null || mergedCells === void 0 || mergedCells.forEach(mergeArea => {
372
+ if (columnIndex <= mergeArea.col) {
373
+ mergeArea.col += 1;
374
+ }
375
+ });
376
+ }
377
+
378
+ /**
379
+ * Insert values at column index.
380
+ *
381
+ * Note: Used index refers to processed data, not to the instance of Handsontable.
382
+ *
383
+ * @param {number} columnIndex An index of the column at which the new values will be inserted or removed.
384
+ * @param {string[]} values List of values.
385
+ */
386
+ insertAtColumn(columnIndex, values) {
387
+ if (this.isSerializedTable() === false) {
388
+ return;
389
+ }
390
+ const metaInfo = this.getMetaInfo();
391
+ const {
392
+ data,
393
+ colHeaders
394
+ } = metaInfo;
395
+ const headerLevels = isDefined(colHeaders) ? 1 : 0;
396
+ const columnInsertionWarn = this.getColumnInsertionWarn(columnIndex, values);
397
+ if (isDefined(columnInsertionWarn)) {
398
+ warn(columnInsertionWarn);
399
+ return;
400
+ }
401
+ if (headerLevels > 0) {
402
+ colHeaders.splice(columnIndex, 0, values[0]);
403
+ }
404
+ data === null || data === void 0 || data.forEach((rowData, rowIndex) => {
405
+ rowData.splice(columnIndex, 0, values[rowIndex + headerLevels]);
406
+ });
407
+ this.adjustAfterColumnInsertion(metaInfo, columnIndex);
408
+ this.overwriteInfo(metaInfo);
409
+ }
410
+
411
+ /**
412
+ * Change headers or cells in the serialized dataset.
413
+ *
414
+ * Note: Used indexes refers to processed data, not to the instance of Handsontable. Please keep in mind that headers
415
+ * are handled separately from cells and they are recognised using negative indexes.
416
+ *
417
+ * @param {number} row Row index of cell which should be changed.
418
+ * @param {number} column Column index of cell which should be changed.
419
+ * @param {string} value Value for particular indexes.
420
+ */
421
+ setCellAt(row, column, value) {
422
+ if (this.isSerializedTable() === false) {
423
+ return;
424
+ }
425
+ const config = this.getMetaInfo();
426
+ const {
427
+ data,
428
+ nestedHeaders,
429
+ colHeaders
430
+ } = config;
431
+ if (row < 0) {
432
+ if (Array.isArray(nestedHeaders)) {
433
+ const rowRelative = row + nestedHeaders.length;
434
+ if (Array.isArray(nestedHeaders[rowRelative]) && isDefined(nestedHeaders[rowRelative][column])) {
435
+ nestedHeaders[rowRelative][column] = value;
436
+ }
437
+ } else if (Array.isArray(colHeaders)) {
438
+ if (isDefined(colHeaders[column])) {
439
+ colHeaders[column] = value;
440
+ }
441
+ }
442
+ } else if (row >= 0 && Array.isArray(data) && Array.isArray(data[row]) && isDefined(data[row][column])) {
443
+ data[row][column] = value;
444
+ }
445
+ this.overwriteInfo(config);
446
+ }
447
+
448
+ /**
449
+ * Gets header or cell values from the serialized dataset.
450
+ *
451
+ * Note: Used indexes refers to processed data, not to the instance of Handsontable. Please keep in mind that headers
452
+ * are handled separately from cells and they are recognised using negative indexes.
453
+ *
454
+ * @param {number} row Row index of cell which should be get.
455
+ * @param {number} column Column index of cell which should be get.
456
+ * @returns {undefined|string}
457
+ */
458
+ getCellAt(row, column) {
459
+ if (this.isSerializedTable() === false) {
460
+ return;
461
+ }
462
+ const config = this.getMetaInfo();
463
+ const {
464
+ data,
465
+ nestedHeaders,
466
+ colHeaders
467
+ } = config;
468
+ if (row < 0) {
469
+ if (Array.isArray(nestedHeaders)) {
470
+ const rowRelative = row + nestedHeaders.length;
471
+ if (Array.isArray(nestedHeaders[rowRelative]) && isDefined(nestedHeaders[rowRelative][column])) {
472
+ return nestedHeaders[rowRelative][column];
473
+ }
474
+ } else if (Array.isArray(colHeaders)) {
475
+ if (isDefined(colHeaders[column])) {
476
+ return colHeaders[column];
477
+ }
478
+ }
479
+ } else if (row >= 0 && Array.isArray(data) && Array.isArray(data[row]) && isDefined(data[row][column])) {
480
+ return data[row][column];
481
+ }
482
+ }
483
+
484
+ /**
485
+ * Checks whether serialized data is an array.
486
+ *
487
+ * @private
488
+ * @returns {boolean}
489
+ */
490
+ isSerializedTable() {
491
+ return true;
492
+ }
493
+
494
+ /**
495
+ * Checks whether serialized data is a Handsontable.
496
+ *
497
+ * @private
498
+ * @returns {boolean}
499
+ */
500
+ isSerializedHandsontable() {
501
+ return true;
502
+ }
503
+
504
+ /**
505
+ * Gets source of the copied data.
506
+ *
507
+ * @returns {string}
508
+ */
509
+ getType() {
510
+ return 'handsontable';
511
+ }
512
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ var _clipboardData = require("./clipboardData");
6
+ var _copyableRanges = require("../copyableRanges");
7
+ var _parseTable = require("../../../utils/parseTable");
8
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
10
+ 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); }
11
+ /**
12
+ * Creates an object containing information about copy/cut action.
13
+ *
14
+ * @private
15
+ */
16
+ class CopyClipboardData extends _clipboardData.ClipboardData {
17
+ /**
18
+ * @param {Core} instance Handsontable instance (used only while copying data).
19
+ * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} copyableRanges Cell
20
+ * ranges related to instance of Handsontable (used only while copying data).
21
+ */
22
+ constructor(instance, copyableRanges) {
23
+ super();
24
+ /**
25
+ * Sanitized data of "text/html" type inside the clipboard.
26
+ *
27
+ * @private
28
+ * @type {string}
29
+ */
30
+ _defineProperty(this, "html", void 0);
31
+ /**
32
+ * Copied data stored as array of arrays.
33
+ *
34
+ * @private
35
+ * @type {string[][]}
36
+ */
37
+ _defineProperty(this, "data", void 0);
38
+ /**
39
+ * Copied cell ranges related to instance of Handsontable.
40
+ *
41
+ * @private
42
+ * @type {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>}
43
+ */
44
+ _defineProperty(this, "copyableRanges", void 0);
45
+ const {
46
+ rows,
47
+ columns
48
+ } = (0, _copyableRanges.normalizeRanges)(copyableRanges);
49
+ this.html = [_clipboardData.META_HEAD, (0, _parseTable.getHTMLByCoords)(instance, {
50
+ rows,
51
+ columns
52
+ })].join('');
53
+ this.data = (0, _parseTable.getDataByCoords)(instance, {
54
+ rows,
55
+ columns
56
+ });
57
+ this.copyableRanges = copyableRanges;
58
+ }
59
+
60
+ /**
61
+ * Gets ranges related to copied part of Handsontable.
62
+ *
63
+ * @returns {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>}
64
+ */
65
+ getRanges() {
66
+ return this.copyableRanges;
67
+ }
68
+ }
69
+ exports.CopyClipboardData = CopyClipboardData;
@@ -0,0 +1,65 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
+ 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); }
5
+ import { META_HEAD, ClipboardData } from "./clipboardData.mjs";
6
+ import { normalizeRanges } from "../copyableRanges.mjs";
7
+ import { getDataByCoords, getHTMLByCoords } from "../../../utils/parseTable.mjs";
8
+ /**
9
+ * Creates an object containing information about copy/cut action.
10
+ *
11
+ * @private
12
+ */
13
+ export class CopyClipboardData extends ClipboardData {
14
+ /**
15
+ * @param {Core} instance Handsontable instance (used only while copying data).
16
+ * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} copyableRanges Cell
17
+ * ranges related to instance of Handsontable (used only while copying data).
18
+ */
19
+ constructor(instance, copyableRanges) {
20
+ super();
21
+ /**
22
+ * Sanitized data of "text/html" type inside the clipboard.
23
+ *
24
+ * @private
25
+ * @type {string}
26
+ */
27
+ _defineProperty(this, "html", void 0);
28
+ /**
29
+ * Copied data stored as array of arrays.
30
+ *
31
+ * @private
32
+ * @type {string[][]}
33
+ */
34
+ _defineProperty(this, "data", void 0);
35
+ /**
36
+ * Copied cell ranges related to instance of Handsontable.
37
+ *
38
+ * @private
39
+ * @type {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>}
40
+ */
41
+ _defineProperty(this, "copyableRanges", void 0);
42
+ const {
43
+ rows,
44
+ columns
45
+ } = normalizeRanges(copyableRanges);
46
+ this.html = [META_HEAD, getHTMLByCoords(instance, {
47
+ rows,
48
+ columns
49
+ })].join('');
50
+ this.data = getDataByCoords(instance, {
51
+ rows,
52
+ columns
53
+ });
54
+ this.copyableRanges = copyableRanges;
55
+ }
56
+
57
+ /**
58
+ * Gets ranges related to copied part of Handsontable.
59
+ *
60
+ * @returns {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>}
61
+ */
62
+ getRanges() {
63
+ return this.copyableRanges;
64
+ }
65
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _copyClipboardData = require("./copyClipboardData");
5
+ exports.CopyClipboardData = _copyClipboardData.CopyClipboardData;
6
+ var _pasteClipboardData = require("./pasteClipboardData");
7
+ exports.PasteClipboardData = _pasteClipboardData.PasteClipboardData;
8
+ var _clipboardData = require("./clipboardData");
9
+ exports.META_HEAD = _clipboardData.META_HEAD;
@@ -0,0 +1,4 @@
1
+ import { CopyClipboardData } from "./copyClipboardData.mjs";
2
+ import { PasteClipboardData } from "./pasteClipboardData.mjs";
3
+ import { META_HEAD } from "./clipboardData.mjs";
4
+ export { CopyClipboardData, PasteClipboardData, META_HEAD };