handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410

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 (469) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
  9. package/3rdparty/walkontable/src/cell/coords.js +13 -18
  10. package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
  11. package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
  12. package/3rdparty/walkontable/src/cell/range.js +42 -30
  13. package/3rdparty/walkontable/src/cell/range.mjs +42 -30
  14. package/3rdparty/walkontable/src/core/_base.js +2 -2
  15. package/3rdparty/walkontable/src/core/_base.mjs +2 -2
  16. package/3rdparty/walkontable/src/core/clone.js +1 -1
  17. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  18. package/3rdparty/walkontable/src/event.js +72 -104
  19. package/3rdparty/walkontable/src/event.mjs +72 -104
  20. package/3rdparty/walkontable/src/filter/column.js +1 -1
  21. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  22. package/3rdparty/walkontable/src/filter/row.js +1 -1
  23. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  24. package/3rdparty/walkontable/src/index.js +1 -1
  25. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  26. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  27. package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
  28. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  29. package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
  30. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
  31. package/3rdparty/walkontable/src/overlay/top.js +12 -1
  32. package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
  33. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
  34. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  35. package/3rdparty/walkontable/src/overlays.js +47 -5
  36. package/3rdparty/walkontable/src/overlays.mjs +47 -5
  37. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  38. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  39. package/3rdparty/walkontable/src/renderer/cells.js +1 -1
  40. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  41. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
  42. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  43. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  44. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  45. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  46. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  47. package/3rdparty/walkontable/src/scroll.js +16 -18
  48. package/3rdparty/walkontable/src/scroll.mjs +16 -18
  49. package/3rdparty/walkontable/src/selection/manager.js +48 -69
  50. package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
  51. package/3rdparty/walkontable/src/selection/scanner.js +33 -42
  52. package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
  53. package/3rdparty/walkontable/src/settings.js +1 -1
  54. package/3rdparty/walkontable/src/settings.mjs +1 -1
  55. package/3rdparty/walkontable/src/table.js +1 -1
  56. package/3rdparty/walkontable/src/table.mjs +1 -1
  57. package/3rdparty/walkontable/src/utils/column.js +1 -1
  58. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  59. package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
  60. package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
  61. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  62. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  63. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  64. package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
  65. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  66. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  67. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  68. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  69. package/3rdparty/walkontable/src/utils/row.js +1 -1
  70. package/3rdparty/walkontable/src/utils/row.mjs +1 -1
  71. package/CHANGELOG.md +20 -0
  72. package/base.js +2 -2
  73. package/base.mjs +2 -2
  74. package/core/viewportScroll/index.js +4 -1
  75. package/core/viewportScroll/index.mjs +4 -1
  76. package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
  77. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
  78. package/core.d.ts +4 -3
  79. package/core.js +98 -43
  80. package/core.mjs +98 -43
  81. package/dataMap/dataMap.js +1 -1
  82. package/dataMap/dataMap.mjs +1 -1
  83. package/dataMap/dataSource.js +2 -2
  84. package/dataMap/dataSource.mjs +2 -2
  85. package/dataMap/metaManager/lazyFactoryMap.js +3 -5
  86. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
  87. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  88. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
  89. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  90. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  91. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  92. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  93. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  94. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  95. package/dataMap/metaManager/metaSchema.js +272 -272
  96. package/dataMap/metaManager/metaSchema.mjs +272 -272
  97. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  98. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  99. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
  100. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
  101. package/dataMap/replaceData.js +1 -1
  102. package/dataMap/replaceData.mjs +1 -1
  103. package/dist/handsontable.css +4 -4
  104. package/dist/handsontable.full.css +4 -4
  105. package/dist/handsontable.full.js +9814 -10020
  106. package/dist/handsontable.full.min.css +3 -3
  107. package/dist/handsontable.full.min.js +292 -292
  108. package/dist/handsontable.js +7484 -7056
  109. package/dist/handsontable.min.css +3 -3
  110. package/dist/handsontable.min.js +25 -25
  111. package/dist/languages/all.min.js +1 -1
  112. package/dist/languages/ar-AR.min.js +1 -1
  113. package/dist/languages/cs-CZ.min.js +1 -1
  114. package/dist/languages/de-CH.min.js +1 -1
  115. package/dist/languages/de-DE.min.js +1 -1
  116. package/dist/languages/en-US.min.js +1 -1
  117. package/dist/languages/es-MX.min.js +1 -1
  118. package/dist/languages/fr-FR.min.js +1 -1
  119. package/dist/languages/hr-HR.min.js +1 -1
  120. package/dist/languages/it-IT.min.js +1 -1
  121. package/dist/languages/ja-JP.min.js +1 -1
  122. package/dist/languages/ko-KR.min.js +1 -1
  123. package/dist/languages/lv-LV.min.js +1 -1
  124. package/dist/languages/nb-NO.min.js +1 -1
  125. package/dist/languages/nl-NL.min.js +1 -1
  126. package/dist/languages/pl-PL.min.js +1 -1
  127. package/dist/languages/pt-BR.min.js +1 -1
  128. package/dist/languages/ru-RU.min.js +1 -1
  129. package/dist/languages/sr-SP.min.js +1 -1
  130. package/dist/languages/zh-CN.min.js +1 -1
  131. package/dist/languages/zh-TW.min.js +1 -1
  132. package/editorManager.js +26 -24
  133. package/editorManager.mjs +26 -24
  134. package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
  135. package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
  136. package/editors/baseEditor/baseEditor.js +1 -1
  137. package/editors/baseEditor/baseEditor.mjs +1 -1
  138. package/editors/dateEditor/dateEditor.js +49 -11
  139. package/editors/dateEditor/dateEditor.mjs +49 -11
  140. package/editors/selectEditor/selectEditor.js +20 -19
  141. package/editors/selectEditor/selectEditor.mjs +20 -19
  142. package/editors/textEditor/textEditor.js +1 -1
  143. package/editors/textEditor/textEditor.mjs +1 -1
  144. package/eventManager.js +2 -2
  145. package/eventManager.mjs +2 -2
  146. package/focusManager.js +64 -82
  147. package/focusManager.mjs +64 -82
  148. package/helpers/dom/element.js +23 -1
  149. package/helpers/dom/element.mjs +21 -1
  150. package/helpers/mixed.js +2 -2
  151. package/helpers/mixed.mjs +2 -2
  152. package/helpers/object.js +2 -2
  153. package/helpers/object.mjs +2 -2
  154. package/i18n/languages/ar-AR.d.ts +5 -0
  155. package/i18n/languages/ar-AR.js +1 -1
  156. package/i18n/languages/cs-CZ.d.ts +5 -0
  157. package/i18n/languages/cs-CZ.js +1 -1
  158. package/i18n/languages/de-CH.js +1 -1
  159. package/i18n/languages/de-DE.js +1 -1
  160. package/i18n/languages/en-US.js +1 -1
  161. package/i18n/languages/es-MX.js +1 -1
  162. package/i18n/languages/fr-FR.js +1 -1
  163. package/i18n/languages/hr-HR.d.ts +5 -0
  164. package/i18n/languages/hr-HR.js +1 -1
  165. package/i18n/languages/it-IT.js +1 -1
  166. package/i18n/languages/ja-JP.js +1 -1
  167. package/i18n/languages/ko-KR.js +1 -1
  168. package/i18n/languages/lv-LV.js +1 -1
  169. package/i18n/languages/nb-NO.js +1 -1
  170. package/i18n/languages/nl-NL.js +1 -1
  171. package/i18n/languages/pl-PL.js +1 -1
  172. package/i18n/languages/pt-BR.js +1 -1
  173. package/i18n/languages/ru-RU.js +1 -1
  174. package/i18n/languages/sr-SP.d.ts +5 -0
  175. package/i18n/languages/sr-SP.js +1 -1
  176. package/i18n/languages/zh-CN.js +1 -1
  177. package/i18n/languages/zh-TW.js +1 -1
  178. package/i18n/registry.js +1 -1
  179. package/index.d.ts +10 -0
  180. package/index.js +1 -1
  181. package/package.json +14 -10
  182. package/pluginHooks.d.ts +4 -3
  183. package/pluginHooks.js +143 -82
  184. package/pluginHooks.mjs +143 -82
  185. package/plugins/autoColumnSize/autoColumnSize.js +50 -66
  186. package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
  187. package/plugins/autoRowSize/autoRowSize.js +29 -35
  188. package/plugins/autoRowSize/autoRowSize.mjs +29 -35
  189. package/plugins/autofill/autofill.js +31 -39
  190. package/plugins/autofill/autofill.mjs +31 -39
  191. package/plugins/base/base.js +13 -18
  192. package/plugins/base/base.mjs +13 -18
  193. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
  194. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
  195. package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
  196. package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
  197. package/plugins/columnSorting/columnSorting.js +50 -46
  198. package/plugins/columnSorting/columnSorting.mjs +50 -46
  199. package/plugins/columnSorting/columnStatesManager.js +1 -1
  200. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  201. package/plugins/columnSummary/columnSummary.js +36 -40
  202. package/plugins/columnSummary/columnSummary.mjs +36 -40
  203. package/plugins/columnSummary/endpoints.js +1 -1
  204. package/plugins/columnSummary/endpoints.mjs +1 -1
  205. package/plugins/comments/commentEditor.js +1 -1
  206. package/plugins/comments/commentEditor.mjs +1 -1
  207. package/plugins/comments/comments.js +117 -159
  208. package/plugins/comments/comments.mjs +117 -159
  209. package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
  210. package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
  211. package/plugins/comments/contextMenuItem/removeComment.js +1 -1
  212. package/plugins/comments/displaySwitch.js +1 -1
  213. package/plugins/comments/displaySwitch.mjs +1 -1
  214. package/plugins/contextMenu/commandExecutor.js +1 -1
  215. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  216. package/plugins/contextMenu/contextMenu.js +24 -30
  217. package/plugins/contextMenu/contextMenu.mjs +24 -30
  218. package/plugins/contextMenu/itemsFactory.js +2 -2
  219. package/plugins/contextMenu/itemsFactory.mjs +2 -2
  220. package/plugins/contextMenu/menu/cursor.js +1 -1
  221. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  222. package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
  223. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
  224. package/plugins/contextMenu/menu/menu.js +14 -22
  225. package/plugins/contextMenu/menu/menu.mjs +14 -22
  226. package/plugins/contextMenu/menu/positioner.js +41 -58
  227. package/plugins/contextMenu/menu/positioner.mjs +41 -58
  228. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  229. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  230. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
  231. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
  232. package/plugins/contextMenu/predefinedItems/index.js +1 -1
  233. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  234. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  235. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  236. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  237. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  238. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  239. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  240. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  241. package/plugins/copyPaste/copyPaste.js +120 -161
  242. package/plugins/copyPaste/copyPaste.mjs +120 -161
  243. package/plugins/copyPaste/copyableRanges.js +43 -66
  244. package/plugins/copyPaste/copyableRanges.mjs +43 -66
  245. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  246. package/plugins/customBorders/contextMenuItem/left.js +1 -1
  247. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  248. package/plugins/customBorders/contextMenuItem/right.js +1 -1
  249. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  250. package/plugins/customBorders/customBorders.js +14 -16
  251. package/plugins/customBorders/customBorders.mjs +13 -15
  252. package/plugins/dragToScroll/dragToScroll.js +7 -7
  253. package/plugins/dragToScroll/dragToScroll.mjs +7 -7
  254. package/plugins/dropdownMenu/dropdownMenu.js +84 -110
  255. package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
  256. package/plugins/exportFile/dataProvider.js +2 -2
  257. package/plugins/exportFile/dataProvider.mjs +2 -2
  258. package/plugins/exportFile/exportFile.js +2 -2
  259. package/plugins/exportFile/exportFile.mjs +1 -1
  260. package/plugins/exportFile/types/_base.js +1 -1
  261. package/plugins/exportFile/types/_base.mjs +1 -1
  262. package/plugins/filters/component/_base.js +1 -1
  263. package/plugins/filters/component/_base.mjs +1 -1
  264. package/plugins/filters/component/actionBar.js +11 -11
  265. package/plugins/filters/component/actionBar.mjs +9 -9
  266. package/plugins/filters/component/condition.js +15 -17
  267. package/plugins/filters/component/condition.mjs +14 -16
  268. package/plugins/filters/component/operators.js +7 -7
  269. package/plugins/filters/component/operators.mjs +7 -7
  270. package/plugins/filters/component/value.js +26 -30
  271. package/plugins/filters/component/value.mjs +25 -29
  272. package/plugins/filters/condition/beginsWith.js +1 -1
  273. package/plugins/filters/condition/between.js +1 -1
  274. package/plugins/filters/condition/contains.js +1 -1
  275. package/plugins/filters/condition/date/after.js +1 -1
  276. package/plugins/filters/condition/date/before.js +1 -1
  277. package/plugins/filters/condition/date/today.js +1 -1
  278. package/plugins/filters/condition/date/tomorrow.js +1 -1
  279. package/plugins/filters/condition/date/yesterday.js +1 -1
  280. package/plugins/filters/condition/empty.js +1 -1
  281. package/plugins/filters/condition/endsWith.js +1 -1
  282. package/plugins/filters/condition/equal.js +1 -1
  283. package/plugins/filters/condition/greaterThan.js +1 -1
  284. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  285. package/plugins/filters/condition/lessThan.js +1 -1
  286. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  287. package/plugins/filters/condition/none.js +1 -1
  288. package/plugins/filters/condition/notBetween.js +1 -1
  289. package/plugins/filters/condition/notContains.js +1 -1
  290. package/plugins/filters/condition/notEmpty.js +1 -1
  291. package/plugins/filters/condition/notEqual.js +1 -1
  292. package/plugins/filters/conditionCollection.js +1 -1
  293. package/plugins/filters/conditionCollection.mjs +1 -1
  294. package/plugins/filters/conditionUpdateObserver.js +23 -25
  295. package/plugins/filters/conditionUpdateObserver.mjs +23 -25
  296. package/plugins/filters/dataFilter.js +2 -2
  297. package/plugins/filters/dataFilter.mjs +2 -2
  298. package/plugins/filters/filters.js +84 -98
  299. package/plugins/filters/filters.mjs +83 -97
  300. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  301. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  302. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  303. package/plugins/filters/ui/_base.js +2 -2
  304. package/plugins/filters/ui/_base.mjs +1 -1
  305. package/plugins/filters/ui/input.js +13 -19
  306. package/plugins/filters/ui/input.mjs +13 -19
  307. package/plugins/filters/ui/link.js +8 -13
  308. package/plugins/filters/ui/link.mjs +8 -13
  309. package/plugins/filters/ui/multipleSelect.js +86 -113
  310. package/plugins/filters/ui/multipleSelect.mjs +85 -112
  311. package/plugins/filters/ui/radioInput.js +12 -20
  312. package/plugins/filters/ui/radioInput.mjs +12 -20
  313. package/plugins/filters/ui/select.js +51 -73
  314. package/plugins/filters/ui/select.mjs +49 -71
  315. package/plugins/formulas/formulas.js +270 -328
  316. package/plugins/formulas/formulas.mjs +271 -329
  317. package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
  318. package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
  319. package/plugins/formulas/indexSyncer/index.js +25 -48
  320. package/plugins/formulas/indexSyncer/index.mjs +25 -48
  321. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  322. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  323. package/plugins/hiddenColumns/hiddenColumns.js +68 -87
  324. package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
  325. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  326. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  327. package/plugins/hiddenRows/hiddenRows.js +67 -86
  328. package/plugins/hiddenRows/hiddenRows.mjs +67 -86
  329. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  330. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  331. package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
  332. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
  333. package/plugins/manualColumnMove/manualColumnMove.js +133 -177
  334. package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
  335. package/plugins/manualColumnMove/ui/_base.js +1 -1
  336. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  337. package/plugins/manualColumnResize/manualColumnResize.js +169 -230
  338. package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
  339. package/plugins/manualRowMove/manualRowMove.js +106 -135
  340. package/plugins/manualRowMove/manualRowMove.mjs +106 -135
  341. package/plugins/manualRowMove/ui/_base.js +1 -1
  342. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  343. package/plugins/manualRowResize/manualRowResize.js +150 -209
  344. package/plugins/manualRowResize/manualRowResize.mjs +150 -209
  345. package/plugins/mergeCells/calculations/autofill.js +1 -1
  346. package/plugins/mergeCells/calculations/autofill.mjs +1 -1
  347. package/plugins/mergeCells/calculations/selection.js +3 -72
  348. package/plugins/mergeCells/calculations/selection.mjs +3 -72
  349. package/plugins/mergeCells/cellCoords.js +1 -1
  350. package/plugins/mergeCells/cellCoords.mjs +1 -1
  351. package/plugins/mergeCells/cellsCollection.js +118 -2
  352. package/plugins/mergeCells/cellsCollection.mjs +118 -2
  353. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
  354. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
  355. package/plugins/mergeCells/focusOrder.js +305 -0
  356. package/plugins/mergeCells/focusOrder.mjs +300 -0
  357. package/plugins/mergeCells/mergeCells.js +500 -398
  358. package/plugins/mergeCells/mergeCells.mjs +500 -398
  359. package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
  360. package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
  362. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
  363. package/plugins/nestedHeaders/nestedHeaders.js +206 -254
  364. package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
  365. package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
  366. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
  367. package/plugins/nestedHeaders/stateManager/index.js +30 -41
  368. package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
  369. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
  370. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
  371. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  372. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  373. package/plugins/nestedRows/data/dataManager.js +2 -2
  374. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  375. package/plugins/nestedRows/nestedRows.js +154 -185
  376. package/plugins/nestedRows/nestedRows.mjs +155 -186
  377. package/plugins/nestedRows/ui/_base.js +1 -1
  378. package/plugins/nestedRows/ui/_base.mjs +1 -1
  379. package/plugins/nestedRows/ui/contextMenu.js +13 -17
  380. package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
  381. package/plugins/nestedRows/utils/rowMoveController.js +6 -6
  382. package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
  383. package/plugins/persistentState/persistentState.js +1 -1
  384. package/plugins/persistentState/persistentState.mjs +1 -1
  385. package/plugins/persistentState/storage.js +3 -3
  386. package/plugins/persistentState/storage.mjs +3 -3
  387. package/plugins/search/search.js +8 -8
  388. package/plugins/search/search.mjs +8 -8
  389. package/plugins/touchScroll/touchScroll.js +16 -20
  390. package/plugins/touchScroll/touchScroll.mjs +17 -21
  391. package/plugins/trimRows/trimRows.js +7 -7
  392. package/plugins/trimRows/trimRows.mjs +7 -7
  393. package/plugins/undoRedo/index.js +1 -1
  394. package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
  395. package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
  396. package/selection/highlight/highlight.js +16 -18
  397. package/selection/highlight/highlight.mjs +15 -17
  398. package/selection/highlight/visualSelection.js +3 -1
  399. package/selection/highlight/visualSelection.mjs +3 -1
  400. package/selection/range.js +3 -5
  401. package/selection/range.mjs +2 -4
  402. package/selection/selection.js +227 -69
  403. package/selection/selection.mjs +225 -67
  404. package/selection/transformation.js +149 -118
  405. package/selection/transformation.mjs +149 -118
  406. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  407. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  408. package/shortcutContexts/commands/editor/open.js +18 -3
  409. package/shortcutContexts/commands/editor/open.mjs +18 -3
  410. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  411. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  412. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  413. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  414. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  415. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  416. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  417. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  418. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
  419. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
  420. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
  421. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
  422. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
  423. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
  424. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
  425. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
  426. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
  427. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
  428. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
  429. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
  430. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  431. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  432. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  433. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  434. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
  435. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
  436. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
  437. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
  438. package/shortcutContexts/grid.js +9 -3
  439. package/shortcutContexts/grid.mjs +9 -3
  440. package/shortcuts/context.js +3 -2
  441. package/shortcuts/context.mjs +3 -2
  442. package/shortcuts/manager.js +2 -2
  443. package/shortcuts/manager.mjs +2 -2
  444. package/tableView.js +53 -79
  445. package/tableView.mjs +53 -79
  446. package/translations/changesObservable/observable.js +21 -38
  447. package/translations/changesObservable/observable.mjs +21 -38
  448. package/translations/changesObservable/observer.js +7 -12
  449. package/translations/changesObservable/observer.mjs +6 -11
  450. package/translations/indexMapper.js +1 -1
  451. package/translations/indexMapper.mjs +1 -1
  452. package/translations/mapCollections/aggregatedCollection.js +2 -2
  453. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  454. package/translations/mapCollections/mapCollection.js +1 -1
  455. package/translations/mapCollections/mapCollection.mjs +1 -1
  456. package/translations/maps/indexMap.js +2 -2
  457. package/translations/maps/indexMap.mjs +2 -2
  458. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  459. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  460. package/utils/dataStructures/linkedList.js +7 -2
  461. package/utils/dataStructures/linkedList.mjs +7 -2
  462. package/utils/dataStructures/tree.js +2 -2
  463. package/utils/dataStructures/tree.mjs +2 -2
  464. package/utils/ghostTable.js +1 -1
  465. package/utils/ghostTable.mjs +1 -1
  466. package/utils/interval.js +27 -45
  467. package/utils/interval.mjs +27 -45
  468. package/utils/samplesGenerator.js +1 -1
  469. package/utils/samplesGenerator.mjs +1 -1
@@ -1,17 +1,14 @@
1
- import "core-js/modules/es.array.push.js";
2
1
  import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/es.array.push.js";
3
3
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
4
4
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
5
5
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
6
6
  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; }
7
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
8
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
10
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
11
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
12
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
13
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
14
- 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; } }
9
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
10
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
11
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
15
12
  import { BasePlugin } from "../base/index.mjs";
16
13
  import Hooks from "../../pluginHooks.mjs";
17
14
  import { stringify, parse } from "../../3rdparty/SheetClip/index.mjs";
@@ -48,12 +45,12 @@ const META_HEAD = ['<meta name="generator" content="Handsontable"/>', '<style ty
48
45
  * Control the `CopyPaste` plugin programmatically through its [API methods](#methods).
49
46
  *
50
47
  * The user can access the copy-paste features through:
51
- * - The [context menu](@/guides/cell-features/clipboard.md#context-menu).
52
- * - The [keyboard shortcuts](@/guides/cell-features/clipboard.md#related-keyboard-shortcuts).
48
+ * - The [context menu](@/guides/cell-features/clipboard/clipboard.md#context-menu).
49
+ * - The [keyboard shortcuts](@/guides/cell-features/clipboard/clipboard.md#related-keyboard-shortcuts).
53
50
  * - The browser's menu bar.
54
51
  *
55
52
  * Read more:
56
- * - [Guides: Clipboard](@/guides/cell-features/clipboard.md)
53
+ * - [Guides: Clipboard](@/guides/cell-features/clipboard/clipboard.md)
57
54
  * - [Configuration options: `copyPaste`](@/api/options.md#copypaste)
58
55
  *
59
56
  * @example
@@ -83,76 +80,16 @@ var _isTriggeredByCopy = /*#__PURE__*/new WeakMap();
83
80
  var _isTriggeredByCut = /*#__PURE__*/new WeakMap();
84
81
  var _copyableRangesFactory = /*#__PURE__*/new WeakMap();
85
82
  var _preventViewportScrollOnPaste = /*#__PURE__*/new WeakMap();
86
- var _ensureClipboardEventsGetTriggered = /*#__PURE__*/new WeakSet();
87
- var _countCopiedHeaders = /*#__PURE__*/new WeakSet();
88
- var _addContentEditableToHighlightedCell = /*#__PURE__*/new WeakSet();
89
- var _removeContentEditableFromHighlightedCell = /*#__PURE__*/new WeakSet();
90
- var _onAfterContextMenuDefaultOptions = /*#__PURE__*/new WeakSet();
91
- var _onAfterSelection = /*#__PURE__*/new WeakSet();
92
- var _onAfterSelectionEnd = /*#__PURE__*/new WeakSet();
93
- var _onSafariMouseEnter = /*#__PURE__*/new WeakSet();
94
- var _onSafariMouseLeave = /*#__PURE__*/new WeakSet();
95
- var _onSafariAfterSelection = /*#__PURE__*/new WeakSet();
83
+ var _CopyPaste_brand = /*#__PURE__*/new WeakSet();
96
84
  export class CopyPaste extends BasePlugin {
97
85
  constructor() {
98
86
  super(...arguments);
99
- /**
100
- * `afterSelection` hook callback triggered only on Safari.
101
- */
102
- _classPrivateMethodInitSpec(this, _onSafariAfterSelection);
103
- /**
104
- * `document.body` `mouseleave` callback used to work around a Safari's problem with copying/cutting from the
105
- * browser's menu.
106
- */
107
- _classPrivateMethodInitSpec(this, _onSafariMouseLeave);
108
- /**
109
- * `document.body` `mouseenter` callback used to work around a Safari's problem with copying/cutting from the
110
- * browser's menu.
111
- */
112
- _classPrivateMethodInitSpec(this, _onSafariMouseEnter);
113
- /**
114
- * Force focus on focusableElement after end of the selection.
115
- */
116
- _classPrivateMethodInitSpec(this, _onAfterSelectionEnd);
117
- /**
118
- * Disables the viewport scroll after pasting the data.
119
- *
120
- * @param {number} fromRow Selection start row visual index.
121
- * @param {number} fromColumn Selection start column visual index.
122
- * @param {number} toRow Selection end row visual index.
123
- * @param {number} toColumn Selection end column visual index.
124
- * @param {object} preventScrolling Object with `value` property. If `true`, the viewport scroll will be prevented.
125
- */
126
- _classPrivateMethodInitSpec(this, _onAfterSelection);
127
- /**
128
- * Add copy and cut options to the Context Menu.
129
- *
130
- * @param {object} options Contains default added options of the Context Menu.
131
- */
132
- _classPrivateMethodInitSpec(this, _onAfterContextMenuDefaultOptions);
133
- /**
134
- * Remove the `contenteditable` attribute from the highlighted cell and deselect its content.
135
- */
136
- _classPrivateMethodInitSpec(this, _removeContentEditableFromHighlightedCell);
137
- /**
138
- * Add the `contenteditable` attribute to the highlighted cell and select its content.
139
- */
140
- _classPrivateMethodInitSpec(this, _addContentEditableToHighlightedCell);
141
- /**
142
- * Counts how many column headers will be copied based on the passed range.
143
- *
144
- * @private
145
- * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.
146
- * @returns {{ columnHeadersCount: number }} Returns an object with keys that holds
147
- * information with the number of copied headers.
148
- */
149
- _classPrivateMethodInitSpec(this, _countCopiedHeaders);
150
87
  /**
151
88
  * Ensure that the `copy`/`cut` events get triggered properly in Safari.
152
89
  *
153
90
  * @param {string} eventName Name of the event to get triggered.
154
91
  */
155
- _classPrivateMethodInitSpec(this, _ensureClipboardEventsGetTriggered);
92
+ _classPrivateMethodInitSpec(this, _CopyPaste_brand);
156
93
  /**
157
94
  * The maximum number of columns than can be copied to the clipboard.
158
95
  *
@@ -169,9 +106,9 @@ export class CopyPaste extends BasePlugin {
169
106
  _defineProperty(this, "rowsLimit", Infinity);
170
107
  /**
171
108
  * When pasting:
172
- * - `'overwrite'`: overwrite the currently-selected cells
173
- * - `'shift_down'`: move currently-selected cells down
174
- * - `'shift_right'`: move currently-selected cells to the right
109
+ * - `'overwrite'` - overwrite the currently-selected cells
110
+ * - `'shift_down'` - move currently-selected cells down
111
+ * - `'shift_right'` - move currently-selected cells to the right
175
112
  *
176
113
  * @type {string}
177
114
  * @default 'overwrite'
@@ -190,10 +127,7 @@ export class CopyPaste extends BasePlugin {
190
127
  * @type {boolean}
191
128
  * @default false
192
129
  */
193
- _classPrivateFieldInitSpec(this, _enableCopyColumnHeaders, {
194
- writable: true,
195
- value: false
196
- });
130
+ _classPrivateFieldInitSpec(this, _enableCopyColumnHeaders, false);
197
131
  /**
198
132
  * Shows the "Copy with group headers" item in the context menu and extends the context menu with the
199
133
  * `'copy_with_column_group headers'` option that can be used for creating custom menus arrangements.
@@ -201,10 +135,7 @@ export class CopyPaste extends BasePlugin {
201
135
  * @type {boolean}
202
136
  * @default false
203
137
  */
204
- _classPrivateFieldInitSpec(this, _enableCopyColumnGroupHeaders, {
205
- writable: true,
206
- value: false
207
- });
138
+ _classPrivateFieldInitSpec(this, _enableCopyColumnGroupHeaders, false);
208
139
  /**
209
140
  * Shows the "Copy headers only" item in the context menu and extends the context menu with the
210
141
  * `'copy_column_headers_only'` option that can be used for creating custom menus arrangements.
@@ -212,10 +143,7 @@ export class CopyPaste extends BasePlugin {
212
143
  * @type {boolean}
213
144
  * @default false
214
145
  */
215
- _classPrivateFieldInitSpec(this, _enableCopyColumnHeadersOnly, {
216
- writable: true,
217
- value: false
218
- });
146
+ _classPrivateFieldInitSpec(this, _enableCopyColumnHeadersOnly, false);
219
147
  /**
220
148
  * Defines the data range to copy. Possible values:
221
149
  * * `'cells-only'` Copy selected cells only;
@@ -225,53 +153,38 @@ export class CopyPaste extends BasePlugin {
225
153
  *
226
154
  * @type {'cells-only' | 'column-headers-only' | 'with-column-group-headers' | 'with-column-headers'}
227
155
  */
228
- _classPrivateFieldInitSpec(this, _copyMode, {
229
- writable: true,
230
- value: 'cells-only'
231
- });
156
+ _classPrivateFieldInitSpec(this, _copyMode, 'cells-only');
232
157
  /**
233
158
  * Flag that is used to prevent copying when the native shortcut was not pressed.
234
159
  *
235
160
  * @type {boolean}
236
161
  */
237
- _classPrivateFieldInitSpec(this, _isTriggeredByCopy, {
238
- writable: true,
239
- value: false
240
- });
162
+ _classPrivateFieldInitSpec(this, _isTriggeredByCopy, false);
241
163
  /**
242
164
  * Flag that is used to prevent cutting when the native shortcut was not pressed.
243
165
  *
244
166
  * @type {boolean}
245
167
  */
246
- _classPrivateFieldInitSpec(this, _isTriggeredByCut, {
247
- writable: true,
248
- value: false
249
- });
168
+ _classPrivateFieldInitSpec(this, _isTriggeredByCut, false);
250
169
  /**
251
170
  * Class that helps generate copyable ranges based on the current selection for different copy mode
252
171
  * types.
253
172
  *
254
173
  * @type {CopyableRangesFactory}
255
174
  */
256
- _classPrivateFieldInitSpec(this, _copyableRangesFactory, {
257
- writable: true,
258
- value: new CopyableRangesFactory({
259
- countRows: () => this.hot.countRows(),
260
- countColumns: () => this.hot.countCols(),
261
- rowsLimit: () => this.rowsLimit,
262
- columnsLimit: () => this.columnsLimit,
263
- countColumnHeaders: () => this.hot.view.getColumnHeadersCount()
264
- })
265
- });
175
+ _classPrivateFieldInitSpec(this, _copyableRangesFactory, new CopyableRangesFactory({
176
+ countRows: () => this.hot.countRows(),
177
+ countColumns: () => this.hot.countCols(),
178
+ rowsLimit: () => this.rowsLimit,
179
+ columnsLimit: () => this.columnsLimit,
180
+ countColumnHeaders: () => this.hot.view.getColumnHeadersCount()
181
+ }));
266
182
  /**
267
183
  * Flag that indicates if the viewport scroll should be prevented after pasting the data.
268
184
  *
269
185
  * @type {boolean}
270
186
  */
271
- _classPrivateFieldInitSpec(this, _preventViewportScrollOnPaste, {
272
- writable: true,
273
- value: false
274
- });
187
+ _classPrivateFieldInitSpec(this, _preventViewportScrollOnPaste, false);
275
188
  /**
276
189
  * Ranges of the cells coordinates, which should be used to copy/cut/paste actions.
277
190
  *
@@ -317,19 +230,19 @@ export class CopyPaste extends BasePlugin {
317
230
  this.pasteMode = (_settings$pasteMode = settings.pasteMode) !== null && _settings$pasteMode !== void 0 ? _settings$pasteMode : this.pasteMode;
318
231
  this.rowsLimit = isNaN(settings.rowsLimit) ? this.rowsLimit : settings.rowsLimit;
319
232
  this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;
320
- _classPrivateFieldSet(this, _enableCopyColumnHeaders, !!settings.copyColumnHeaders);
321
- _classPrivateFieldSet(this, _enableCopyColumnGroupHeaders, !!settings.copyColumnGroupHeaders);
322
- _classPrivateFieldSet(this, _enableCopyColumnHeadersOnly, !!settings.copyColumnHeadersOnly);
233
+ _classPrivateFieldSet(_enableCopyColumnHeaders, this, !!settings.copyColumnHeaders);
234
+ _classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, !!settings.copyColumnGroupHeaders);
235
+ _classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, !!settings.copyColumnHeadersOnly);
323
236
  this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
324
237
  }
325
- this.addHook('afterContextMenuDefaultOptions', options => _classPrivateMethodGet(this, _onAfterContextMenuDefaultOptions, _onAfterContextMenuDefaultOptions2).call(this, options));
238
+ this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CopyPaste_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));
326
239
  this.addHook('afterSelection', function () {
327
240
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
328
241
  args[_key] = arguments[_key];
329
242
  }
330
- return _classPrivateMethodGet(_this, _onAfterSelection, _onAfterSelection2).call(_this, ...args);
243
+ return _assertClassBrand(_CopyPaste_brand, _this, _onAfterSelection).call(_this, ...args);
331
244
  });
332
- this.addHook('afterSelectionEnd', () => _classPrivateMethodGet(this, _onAfterSelectionEnd, _onAfterSelectionEnd2).call(this));
245
+ this.addHook('afterSelectionEnd', () => _assertClassBrand(_CopyPaste_brand, this, _onAfterSelectionEnd).call(this));
333
246
  this.eventManager.addEventListener(this.hot.rootDocument, 'copy', function () {
334
247
  return _this.onCopy(...arguments);
335
248
  });
@@ -346,15 +259,15 @@ export class CopyPaste extends BasePlugin {
346
259
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
347
260
  args[_key2] = arguments[_key2];
348
261
  }
349
- return _classPrivateMethodGet(_this, _onSafariMouseEnter, _onSafariMouseEnter2).call(_this, ...args);
262
+ return _assertClassBrand(_CopyPaste_brand, _this, _onSafariMouseEnter).call(_this, ...args);
350
263
  });
351
264
  this.eventManager.addEventListener(this.hot.rootDocument.body, 'mouseleave', function () {
352
265
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
353
266
  args[_key3] = arguments[_key3];
354
267
  }
355
- return _classPrivateMethodGet(_this, _onSafariMouseLeave, _onSafariMouseLeave2).call(_this, ...args);
268
+ return _assertClassBrand(_CopyPaste_brand, _this, _onSafariMouseLeave).call(_this, ...args);
356
269
  });
357
- this.addHook('afterSelection', () => _classPrivateMethodGet(this, _onSafariAfterSelection, _onSafariAfterSelection2).call(this));
270
+ this.addHook('afterSelection', () => _assertClassBrand(_CopyPaste_brand, this, _onSafariAfterSelection).call(this));
358
271
  }
359
272
  super.enablePlugin();
360
273
  }
@@ -396,9 +309,9 @@ export class CopyPaste extends BasePlugin {
396
309
  */
397
310
  copy() {
398
311
  let copyMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'cells-only';
399
- _classPrivateFieldSet(this, _copyMode, copyMode);
400
- _classPrivateFieldSet(this, _isTriggeredByCopy, true);
401
- _classPrivateMethodGet(this, _ensureClipboardEventsGetTriggered, _ensureClipboardEventsGetTriggered2).call(this, 'copy');
312
+ _classPrivateFieldSet(_copyMode, this, copyMode);
313
+ _classPrivateFieldSet(_isTriggeredByCopy, this, true);
314
+ _assertClassBrand(_CopyPaste_brand, this, _ensureClipboardEventsGetTriggered).call(this, 'copy');
402
315
  }
403
316
 
404
317
  /**
@@ -430,8 +343,8 @@ export class CopyPaste extends BasePlugin {
430
343
  * Cuts the contents of the selected cells to the system clipboard.
431
344
  */
432
345
  cut() {
433
- _classPrivateFieldSet(this, _isTriggeredByCut, true);
434
- _classPrivateMethodGet(this, _ensureClipboardEventsGetTriggered, _ensureClipboardEventsGetTriggered2).call(this, 'cut');
346
+ _classPrivateFieldSet(_isTriggeredByCut, this, true);
347
+ _assertClassBrand(_CopyPaste_brand, this, _ensureClipboardEventsGetTriggered).call(this, 'cut');
435
348
  }
436
349
 
437
350
  /**
@@ -509,17 +422,17 @@ export class CopyPaste extends BasePlugin {
509
422
  this.copyableRanges = [];
510
423
  return;
511
424
  }
512
- _classPrivateFieldGet(this, _copyableRangesFactory).setSelectedRange(selectionRange);
425
+ _classPrivateFieldGet(_copyableRangesFactory, this).setSelectedRange(selectionRange);
513
426
  const groupedRanges = new Map([['headers', null], ['cells', null]]);
514
- if (_classPrivateFieldGet(this, _copyMode) === 'column-headers-only') {
515
- groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getMostBottomColumnHeadersRange());
427
+ if (_classPrivateFieldGet(_copyMode, this) === 'column-headers-only') {
428
+ groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getMostBottomColumnHeadersRange());
516
429
  } else {
517
- if (_classPrivateFieldGet(this, _copyMode) === 'with-column-headers') {
518
- groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getMostBottomColumnHeadersRange());
519
- } else if (_classPrivateFieldGet(this, _copyMode) === 'with-column-group-headers') {
520
- groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getAllColumnHeadersRange());
430
+ if (_classPrivateFieldGet(_copyMode, this) === 'with-column-headers') {
431
+ groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getMostBottomColumnHeadersRange());
432
+ } else if (_classPrivateFieldGet(_copyMode, this) === 'with-column-group-headers') {
433
+ groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getAllColumnHeadersRange());
521
434
  }
522
- groupedRanges.set('cells', _classPrivateFieldGet(this, _copyableRangesFactory).getCellsRange());
435
+ groupedRanges.set('cells', _classPrivateFieldGet(_copyableRangesFactory, this).getCellsRange());
523
436
  }
524
437
  this.copyableRanges = Array.from(groupedRanges.values()).filter(range => range !== null).map(_ref => {
525
438
  let {
@@ -620,10 +533,15 @@ export class CopyPaste extends BasePlugin {
620
533
  }
621
534
  newRows.push(newRow);
622
535
  }
623
- _classPrivateFieldSet(this, _preventViewportScrollOnPaste, true);
536
+ _classPrivateFieldSet(_preventViewportScrollOnPaste, this, true);
624
537
  this.hot.populateFromArray(startRow, startColumn, newRows, undefined, undefined, 'CopyPaste.paste', this.pasteMode);
625
538
  return [startRow, startColumn, lastVisualRow, lastVisualColumn];
626
539
  }
540
+
541
+ /**
542
+ * Add the `contenteditable` attribute to the highlighted cell and select its content.
543
+ */
544
+
627
545
  /**
628
546
  * `copy` event callback on textarea element.
629
547
  *
@@ -631,13 +549,13 @@ export class CopyPaste extends BasePlugin {
631
549
  * @private
632
550
  */
633
551
  onCopy(event) {
634
- if (!this.hot.isListening() && !_classPrivateFieldGet(this, _isTriggeredByCopy) || this.isEditorOpened()) {
552
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened()) {
635
553
  return;
636
554
  }
637
555
  this.setCopyableText();
638
- _classPrivateFieldSet(this, _isTriggeredByCopy, false);
556
+ _classPrivateFieldSet(_isTriggeredByCopy, this, false);
639
557
  const data = this.getRangedData(this.copyableRanges);
640
- const copiedHeadersCount = _classPrivateMethodGet(this, _countCopiedHeaders, _countCopiedHeaders2).call(this, this.copyableRanges);
558
+ const copiedHeadersCount = _assertClassBrand(_CopyPaste_brand, this, _countCopiedHeaders).call(this, this.copyableRanges);
641
559
  const allowCopying = !!this.hot.runHooks('beforeCopy', data, this.copyableRanges, copiedHeadersCount);
642
560
  if (allowCopying) {
643
561
  const textPlain = stringify(data);
@@ -650,7 +568,7 @@ export class CopyPaste extends BasePlugin {
650
568
  }
651
569
  this.hot.runHooks('afterCopy', data, this.copyableRanges, copiedHeadersCount);
652
570
  }
653
- _classPrivateFieldSet(this, _copyMode, 'cells-only');
571
+ _classPrivateFieldSet(_copyMode, this, 'cells-only');
654
572
  event.preventDefault();
655
573
  }
656
574
 
@@ -661,11 +579,11 @@ export class CopyPaste extends BasePlugin {
661
579
  * @private
662
580
  */
663
581
  onCut(event) {
664
- if (!this.hot.isListening() && !_classPrivateFieldGet(this, _isTriggeredByCut) || this.isEditorOpened()) {
582
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened()) {
665
583
  return;
666
584
  }
667
585
  this.setCopyableText();
668
- _classPrivateFieldSet(this, _isTriggeredByCut, false);
586
+ _classPrivateFieldSet(_isTriggeredByCut, this, false);
669
587
  const rangedData = this.getRangedData(this.copyableRanges);
670
588
  const allowCuttingOut = !!this.hot.runHooks('beforeCut', rangedData, this.copyableRanges);
671
589
  if (allowCuttingOut) {
@@ -725,6 +643,13 @@ export class CopyPaste extends BasePlugin {
725
643
  this.hot.selectCell(startRow, startColumn, Math.min(this.hot.countRows() - 1, endRow), Math.min(this.hot.countCols() - 1, endColumn));
726
644
  this.hot.runHooks('afterPaste', pastedData, this.copyableRanges);
727
645
  }
646
+
647
+ /**
648
+ * Add copy and cut options to the Context Menu.
649
+ *
650
+ * @param {object} options Contains default added options of the Context Menu.
651
+ */
652
+
728
653
  /**
729
654
  * Destroys the `CopyPaste` plugin instance.
730
655
  */
@@ -732,7 +657,7 @@ export class CopyPaste extends BasePlugin {
732
657
  super.destroy();
733
658
  }
734
659
  }
735
- function _ensureClipboardEventsGetTriggered2(eventName) {
660
+ function _ensureClipboardEventsGetTriggered(eventName) {
736
661
  // Without this workaround Safari (tested on Safari@16.5.2) does not trigger the 'copy' event.
737
662
  if (isSafari()) {
738
663
  const lastSelectedRange = this.hot.getSelectedRangeLast();
@@ -752,7 +677,15 @@ function _ensureClipboardEventsGetTriggered2(eventName) {
752
677
  this.hot.rootDocument.execCommand(eventName);
753
678
  }
754
679
  }
755
- function _countCopiedHeaders2(ranges) {
680
+ /**
681
+ * Counts how many column headers will be copied based on the passed range.
682
+ *
683
+ * @private
684
+ * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.
685
+ * @returns {{ columnHeadersCount: number }} Returns an object with keys that holds
686
+ * information with the number of copied headers.
687
+ */
688
+ function _countCopiedHeaders(ranges) {
756
689
  const {
757
690
  rows
758
691
  } = normalizeRanges(ranges);
@@ -767,7 +700,7 @@ function _countCopiedHeaders2(ranges) {
767
700
  columnHeadersCount
768
701
  };
769
702
  }
770
- function _addContentEditableToHighlightedCell2() {
703
+ function _addContentEditableToHighlightedCell() {
771
704
  if (this.hot.isListening()) {
772
705
  const lastSelectedRange = this.hot.getSelectedRangeLast();
773
706
  if (lastSelectedRange) {
@@ -782,7 +715,10 @@ function _addContentEditableToHighlightedCell2() {
782
715
  }
783
716
  }
784
717
  }
785
- function _removeContentEditableFromHighlightedCell2() {
718
+ /**
719
+ * Remove the `contenteditable` attribute from the highlighted cell and deselect its content.
720
+ */
721
+ function _removeContentEditableFromHighlightedCell() {
786
722
  // If the instance is not listening, the workaround is not needed.
787
723
  if (this.hot.isListening()) {
788
724
  const lastSelectedRange = this.hot.getSelectedRangeLast();
@@ -798,28 +734,40 @@ function _removeContentEditableFromHighlightedCell2() {
798
734
  }
799
735
  }
800
736
  }
801
- function _onAfterContextMenuDefaultOptions2(options) {
737
+ function _onAfterContextMenuDefaultOptions(options) {
802
738
  options.items.push({
803
739
  name: '---------'
804
740
  }, copyItem(this));
805
- if (_classPrivateFieldGet(this, _enableCopyColumnHeaders)) {
741
+ if (_classPrivateFieldGet(_enableCopyColumnHeaders, this)) {
806
742
  options.items.push(copyWithColumnHeadersItem(this));
807
743
  }
808
- if (_classPrivateFieldGet(this, _enableCopyColumnGroupHeaders)) {
744
+ if (_classPrivateFieldGet(_enableCopyColumnGroupHeaders, this)) {
809
745
  options.items.push(copyWithColumnGroupHeadersItem(this));
810
746
  }
811
- if (_classPrivateFieldGet(this, _enableCopyColumnHeadersOnly)) {
747
+ if (_classPrivateFieldGet(_enableCopyColumnHeadersOnly, this)) {
812
748
  options.items.push(copyColumnHeadersOnlyItem(this));
813
749
  }
814
750
  options.items.push(cutItem(this));
815
751
  }
816
- function _onAfterSelection2(fromRow, fromColumn, toRow, toColumn, preventScrolling) {
817
- if (_classPrivateFieldGet(this, _preventViewportScrollOnPaste)) {
752
+ /**
753
+ * Disables the viewport scroll after pasting the data.
754
+ *
755
+ * @param {number} fromRow Selection start row visual index.
756
+ * @param {number} fromColumn Selection start column visual index.
757
+ * @param {number} toRow Selection end row visual index.
758
+ * @param {number} toColumn Selection end column visual index.
759
+ * @param {object} preventScrolling Object with `value` property. If `true`, the viewport scroll will be prevented.
760
+ */
761
+ function _onAfterSelection(fromRow, fromColumn, toRow, toColumn, preventScrolling) {
762
+ if (_classPrivateFieldGet(_preventViewportScrollOnPaste, this)) {
818
763
  preventScrolling.value = true;
819
764
  }
820
- _classPrivateFieldSet(this, _preventViewportScrollOnPaste, false);
765
+ _classPrivateFieldSet(_preventViewportScrollOnPaste, this, false);
821
766
  }
822
- function _onAfterSelectionEnd2() {
767
+ /**
768
+ * Force focus on focusableElement after end of the selection.
769
+ */
770
+ function _onAfterSelectionEnd() {
823
771
  if (this.isEditorOpened()) {
824
772
  return;
825
773
  }
@@ -828,12 +776,23 @@ function _onAfterSelectionEnd2() {
828
776
  }
829
777
  this.setCopyableText();
830
778
  }
831
- function _onSafariMouseEnter2() {
832
- _classPrivateMethodGet(this, _removeContentEditableFromHighlightedCell, _removeContentEditableFromHighlightedCell2).call(this);
779
+ /**
780
+ * `document.body` `mouseenter` callback used to work around a Safari's problem with copying/cutting from the
781
+ * browser's menu.
782
+ */
783
+ function _onSafariMouseEnter() {
784
+ _assertClassBrand(_CopyPaste_brand, this, _removeContentEditableFromHighlightedCell).call(this);
833
785
  }
834
- function _onSafariMouseLeave2() {
835
- _classPrivateMethodGet(this, _addContentEditableToHighlightedCell, _addContentEditableToHighlightedCell2).call(this);
786
+ /**
787
+ * `document.body` `mouseleave` callback used to work around a Safari's problem with copying/cutting from the
788
+ * browser's menu.
789
+ */
790
+ function _onSafariMouseLeave() {
791
+ _assertClassBrand(_CopyPaste_brand, this, _addContentEditableToHighlightedCell).call(this);
836
792
  }
837
- function _onSafariAfterSelection2() {
838
- _classPrivateMethodGet(this, _removeContentEditableFromHighlightedCell, _removeContentEditableFromHighlightedCell2).call(this);
793
+ /**
794
+ * `afterSelection` hook callback triggered only on Safari.
795
+ */
796
+ function _onSafariAfterSelection() {
797
+ _assertClassBrand(_CopyPaste_brand, this, _removeContentEditableFromHighlightedCell).call(this);
839
798
  }