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,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- require("core-js/modules/es.array.push.js");
5
4
  require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.push.js");
6
6
  var _base = require("../base");
7
7
  var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
8
8
  var _SheetClip = require("../../3rdparty/SheetClip");
@@ -23,14 +23,11 @@ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclarati
23
23
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
24
24
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
25
25
  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; }
26
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
26
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
27
27
  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); }
28
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
29
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
30
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
31
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
32
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
33
- 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; } }
28
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
29
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
30
+ 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"); }
34
31
  _pluginHooks.default.getSingleton().register('afterCopyLimit');
35
32
  _pluginHooks.default.getSingleton().register('modifyCopyableRange');
36
33
  _pluginHooks.default.getSingleton().register('beforeCut');
@@ -52,12 +49,12 @@ const META_HEAD = ['<meta name="generator" content="Handsontable"/>', '<style ty
52
49
  * Control the `CopyPaste` plugin programmatically through its [API methods](#methods).
53
50
  *
54
51
  * The user can access the copy-paste features through:
55
- * - The [context menu](@/guides/cell-features/clipboard.md#context-menu).
56
- * - The [keyboard shortcuts](@/guides/cell-features/clipboard.md#related-keyboard-shortcuts).
52
+ * - The [context menu](@/guides/cell-features/clipboard/clipboard.md#context-menu).
53
+ * - The [keyboard shortcuts](@/guides/cell-features/clipboard/clipboard.md#related-keyboard-shortcuts).
57
54
  * - The browser's menu bar.
58
55
  *
59
56
  * Read more:
60
- * - [Guides: Clipboard](@/guides/cell-features/clipboard.md)
57
+ * - [Guides: Clipboard](@/guides/cell-features/clipboard/clipboard.md)
61
58
  * - [Configuration options: `copyPaste`](@/api/options.md#copypaste)
62
59
  *
63
60
  * @example
@@ -87,76 +84,16 @@ var _isTriggeredByCopy = /*#__PURE__*/new WeakMap();
87
84
  var _isTriggeredByCut = /*#__PURE__*/new WeakMap();
88
85
  var _copyableRangesFactory = /*#__PURE__*/new WeakMap();
89
86
  var _preventViewportScrollOnPaste = /*#__PURE__*/new WeakMap();
90
- var _ensureClipboardEventsGetTriggered = /*#__PURE__*/new WeakSet();
91
- var _countCopiedHeaders = /*#__PURE__*/new WeakSet();
92
- var _addContentEditableToHighlightedCell = /*#__PURE__*/new WeakSet();
93
- var _removeContentEditableFromHighlightedCell = /*#__PURE__*/new WeakSet();
94
- var _onAfterContextMenuDefaultOptions = /*#__PURE__*/new WeakSet();
95
- var _onAfterSelection = /*#__PURE__*/new WeakSet();
96
- var _onAfterSelectionEnd = /*#__PURE__*/new WeakSet();
97
- var _onSafariMouseEnter = /*#__PURE__*/new WeakSet();
98
- var _onSafariMouseLeave = /*#__PURE__*/new WeakSet();
99
- var _onSafariAfterSelection = /*#__PURE__*/new WeakSet();
87
+ var _CopyPaste_brand = /*#__PURE__*/new WeakSet();
100
88
  class CopyPaste extends _base.BasePlugin {
101
89
  constructor() {
102
90
  super(...arguments);
103
- /**
104
- * `afterSelection` hook callback triggered only on Safari.
105
- */
106
- _classPrivateMethodInitSpec(this, _onSafariAfterSelection);
107
- /**
108
- * `document.body` `mouseleave` callback used to work around a Safari's problem with copying/cutting from the
109
- * browser's menu.
110
- */
111
- _classPrivateMethodInitSpec(this, _onSafariMouseLeave);
112
- /**
113
- * `document.body` `mouseenter` callback used to work around a Safari's problem with copying/cutting from the
114
- * browser's menu.
115
- */
116
- _classPrivateMethodInitSpec(this, _onSafariMouseEnter);
117
- /**
118
- * Force focus on focusableElement after end of the selection.
119
- */
120
- _classPrivateMethodInitSpec(this, _onAfterSelectionEnd);
121
- /**
122
- * Disables the viewport scroll after pasting the data.
123
- *
124
- * @param {number} fromRow Selection start row visual index.
125
- * @param {number} fromColumn Selection start column visual index.
126
- * @param {number} toRow Selection end row visual index.
127
- * @param {number} toColumn Selection end column visual index.
128
- * @param {object} preventScrolling Object with `value` property. If `true`, the viewport scroll will be prevented.
129
- */
130
- _classPrivateMethodInitSpec(this, _onAfterSelection);
131
- /**
132
- * Add copy and cut options to the Context Menu.
133
- *
134
- * @param {object} options Contains default added options of the Context Menu.
135
- */
136
- _classPrivateMethodInitSpec(this, _onAfterContextMenuDefaultOptions);
137
- /**
138
- * Remove the `contenteditable` attribute from the highlighted cell and deselect its content.
139
- */
140
- _classPrivateMethodInitSpec(this, _removeContentEditableFromHighlightedCell);
141
- /**
142
- * Add the `contenteditable` attribute to the highlighted cell and select its content.
143
- */
144
- _classPrivateMethodInitSpec(this, _addContentEditableToHighlightedCell);
145
- /**
146
- * Counts how many column headers will be copied based on the passed range.
147
- *
148
- * @private
149
- * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.
150
- * @returns {{ columnHeadersCount: number }} Returns an object with keys that holds
151
- * information with the number of copied headers.
152
- */
153
- _classPrivateMethodInitSpec(this, _countCopiedHeaders);
154
91
  /**
155
92
  * Ensure that the `copy`/`cut` events get triggered properly in Safari.
156
93
  *
157
94
  * @param {string} eventName Name of the event to get triggered.
158
95
  */
159
- _classPrivateMethodInitSpec(this, _ensureClipboardEventsGetTriggered);
96
+ _classPrivateMethodInitSpec(this, _CopyPaste_brand);
160
97
  /**
161
98
  * The maximum number of columns than can be copied to the clipboard.
162
99
  *
@@ -173,9 +110,9 @@ class CopyPaste extends _base.BasePlugin {
173
110
  _defineProperty(this, "rowsLimit", Infinity);
174
111
  /**
175
112
  * When pasting:
176
- * - `'overwrite'`: overwrite the currently-selected cells
177
- * - `'shift_down'`: move currently-selected cells down
178
- * - `'shift_right'`: move currently-selected cells to the right
113
+ * - `'overwrite'` - overwrite the currently-selected cells
114
+ * - `'shift_down'` - move currently-selected cells down
115
+ * - `'shift_right'` - move currently-selected cells to the right
179
116
  *
180
117
  * @type {string}
181
118
  * @default 'overwrite'
@@ -194,10 +131,7 @@ class CopyPaste extends _base.BasePlugin {
194
131
  * @type {boolean}
195
132
  * @default false
196
133
  */
197
- _classPrivateFieldInitSpec(this, _enableCopyColumnHeaders, {
198
- writable: true,
199
- value: false
200
- });
134
+ _classPrivateFieldInitSpec(this, _enableCopyColumnHeaders, false);
201
135
  /**
202
136
  * Shows the "Copy with group headers" item in the context menu and extends the context menu with the
203
137
  * `'copy_with_column_group headers'` option that can be used for creating custom menus arrangements.
@@ -205,10 +139,7 @@ class CopyPaste extends _base.BasePlugin {
205
139
  * @type {boolean}
206
140
  * @default false
207
141
  */
208
- _classPrivateFieldInitSpec(this, _enableCopyColumnGroupHeaders, {
209
- writable: true,
210
- value: false
211
- });
142
+ _classPrivateFieldInitSpec(this, _enableCopyColumnGroupHeaders, false);
212
143
  /**
213
144
  * Shows the "Copy headers only" item in the context menu and extends the context menu with the
214
145
  * `'copy_column_headers_only'` option that can be used for creating custom menus arrangements.
@@ -216,10 +147,7 @@ class CopyPaste extends _base.BasePlugin {
216
147
  * @type {boolean}
217
148
  * @default false
218
149
  */
219
- _classPrivateFieldInitSpec(this, _enableCopyColumnHeadersOnly, {
220
- writable: true,
221
- value: false
222
- });
150
+ _classPrivateFieldInitSpec(this, _enableCopyColumnHeadersOnly, false);
223
151
  /**
224
152
  * Defines the data range to copy. Possible values:
225
153
  * * `'cells-only'` Copy selected cells only;
@@ -229,53 +157,38 @@ class CopyPaste extends _base.BasePlugin {
229
157
  *
230
158
  * @type {'cells-only' | 'column-headers-only' | 'with-column-group-headers' | 'with-column-headers'}
231
159
  */
232
- _classPrivateFieldInitSpec(this, _copyMode, {
233
- writable: true,
234
- value: 'cells-only'
235
- });
160
+ _classPrivateFieldInitSpec(this, _copyMode, 'cells-only');
236
161
  /**
237
162
  * Flag that is used to prevent copying when the native shortcut was not pressed.
238
163
  *
239
164
  * @type {boolean}
240
165
  */
241
- _classPrivateFieldInitSpec(this, _isTriggeredByCopy, {
242
- writable: true,
243
- value: false
244
- });
166
+ _classPrivateFieldInitSpec(this, _isTriggeredByCopy, false);
245
167
  /**
246
168
  * Flag that is used to prevent cutting when the native shortcut was not pressed.
247
169
  *
248
170
  * @type {boolean}
249
171
  */
250
- _classPrivateFieldInitSpec(this, _isTriggeredByCut, {
251
- writable: true,
252
- value: false
253
- });
172
+ _classPrivateFieldInitSpec(this, _isTriggeredByCut, false);
254
173
  /**
255
174
  * Class that helps generate copyable ranges based on the current selection for different copy mode
256
175
  * types.
257
176
  *
258
177
  * @type {CopyableRangesFactory}
259
178
  */
260
- _classPrivateFieldInitSpec(this, _copyableRangesFactory, {
261
- writable: true,
262
- value: new _copyableRanges.CopyableRangesFactory({
263
- countRows: () => this.hot.countRows(),
264
- countColumns: () => this.hot.countCols(),
265
- rowsLimit: () => this.rowsLimit,
266
- columnsLimit: () => this.columnsLimit,
267
- countColumnHeaders: () => this.hot.view.getColumnHeadersCount()
268
- })
269
- });
179
+ _classPrivateFieldInitSpec(this, _copyableRangesFactory, new _copyableRanges.CopyableRangesFactory({
180
+ countRows: () => this.hot.countRows(),
181
+ countColumns: () => this.hot.countCols(),
182
+ rowsLimit: () => this.rowsLimit,
183
+ columnsLimit: () => this.columnsLimit,
184
+ countColumnHeaders: () => this.hot.view.getColumnHeadersCount()
185
+ }));
270
186
  /**
271
187
  * Flag that indicates if the viewport scroll should be prevented after pasting the data.
272
188
  *
273
189
  * @type {boolean}
274
190
  */
275
- _classPrivateFieldInitSpec(this, _preventViewportScrollOnPaste, {
276
- writable: true,
277
- value: false
278
- });
191
+ _classPrivateFieldInitSpec(this, _preventViewportScrollOnPaste, false);
279
192
  /**
280
193
  * Ranges of the cells coordinates, which should be used to copy/cut/paste actions.
281
194
  *
@@ -321,19 +234,19 @@ class CopyPaste extends _base.BasePlugin {
321
234
  this.pasteMode = (_settings$pasteMode = settings.pasteMode) !== null && _settings$pasteMode !== void 0 ? _settings$pasteMode : this.pasteMode;
322
235
  this.rowsLimit = isNaN(settings.rowsLimit) ? this.rowsLimit : settings.rowsLimit;
323
236
  this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;
324
- _classPrivateFieldSet(this, _enableCopyColumnHeaders, !!settings.copyColumnHeaders);
325
- _classPrivateFieldSet(this, _enableCopyColumnGroupHeaders, !!settings.copyColumnGroupHeaders);
326
- _classPrivateFieldSet(this, _enableCopyColumnHeadersOnly, !!settings.copyColumnHeadersOnly);
237
+ _classPrivateFieldSet(_enableCopyColumnHeaders, this, !!settings.copyColumnHeaders);
238
+ _classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, !!settings.copyColumnGroupHeaders);
239
+ _classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, !!settings.copyColumnHeadersOnly);
327
240
  this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
328
241
  }
329
- this.addHook('afterContextMenuDefaultOptions', options => _classPrivateMethodGet(this, _onAfterContextMenuDefaultOptions, _onAfterContextMenuDefaultOptions2).call(this, options));
242
+ this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CopyPaste_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));
330
243
  this.addHook('afterSelection', function () {
331
244
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
332
245
  args[_key] = arguments[_key];
333
246
  }
334
- return _classPrivateMethodGet(_this, _onAfterSelection, _onAfterSelection2).call(_this, ...args);
247
+ return _assertClassBrand(_CopyPaste_brand, _this, _onAfterSelection).call(_this, ...args);
335
248
  });
336
- this.addHook('afterSelectionEnd', () => _classPrivateMethodGet(this, _onAfterSelectionEnd, _onAfterSelectionEnd2).call(this));
249
+ this.addHook('afterSelectionEnd', () => _assertClassBrand(_CopyPaste_brand, this, _onAfterSelectionEnd).call(this));
337
250
  this.eventManager.addEventListener(this.hot.rootDocument, 'copy', function () {
338
251
  return _this.onCopy(...arguments);
339
252
  });
@@ -350,15 +263,15 @@ class CopyPaste extends _base.BasePlugin {
350
263
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
351
264
  args[_key2] = arguments[_key2];
352
265
  }
353
- return _classPrivateMethodGet(_this, _onSafariMouseEnter, _onSafariMouseEnter2).call(_this, ...args);
266
+ return _assertClassBrand(_CopyPaste_brand, _this, _onSafariMouseEnter).call(_this, ...args);
354
267
  });
355
268
  this.eventManager.addEventListener(this.hot.rootDocument.body, 'mouseleave', function () {
356
269
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
357
270
  args[_key3] = arguments[_key3];
358
271
  }
359
- return _classPrivateMethodGet(_this, _onSafariMouseLeave, _onSafariMouseLeave2).call(_this, ...args);
272
+ return _assertClassBrand(_CopyPaste_brand, _this, _onSafariMouseLeave).call(_this, ...args);
360
273
  });
361
- this.addHook('afterSelection', () => _classPrivateMethodGet(this, _onSafariAfterSelection, _onSafariAfterSelection2).call(this));
274
+ this.addHook('afterSelection', () => _assertClassBrand(_CopyPaste_brand, this, _onSafariAfterSelection).call(this));
362
275
  }
363
276
  super.enablePlugin();
364
277
  }
@@ -400,9 +313,9 @@ class CopyPaste extends _base.BasePlugin {
400
313
  */
401
314
  copy() {
402
315
  let copyMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'cells-only';
403
- _classPrivateFieldSet(this, _copyMode, copyMode);
404
- _classPrivateFieldSet(this, _isTriggeredByCopy, true);
405
- _classPrivateMethodGet(this, _ensureClipboardEventsGetTriggered, _ensureClipboardEventsGetTriggered2).call(this, 'copy');
316
+ _classPrivateFieldSet(_copyMode, this, copyMode);
317
+ _classPrivateFieldSet(_isTriggeredByCopy, this, true);
318
+ _assertClassBrand(_CopyPaste_brand, this, _ensureClipboardEventsGetTriggered).call(this, 'copy');
406
319
  }
407
320
 
408
321
  /**
@@ -434,8 +347,8 @@ class CopyPaste extends _base.BasePlugin {
434
347
  * Cuts the contents of the selected cells to the system clipboard.
435
348
  */
436
349
  cut() {
437
- _classPrivateFieldSet(this, _isTriggeredByCut, true);
438
- _classPrivateMethodGet(this, _ensureClipboardEventsGetTriggered, _ensureClipboardEventsGetTriggered2).call(this, 'cut');
350
+ _classPrivateFieldSet(_isTriggeredByCut, this, true);
351
+ _assertClassBrand(_CopyPaste_brand, this, _ensureClipboardEventsGetTriggered).call(this, 'cut');
439
352
  }
440
353
 
441
354
  /**
@@ -513,17 +426,17 @@ class CopyPaste extends _base.BasePlugin {
513
426
  this.copyableRanges = [];
514
427
  return;
515
428
  }
516
- _classPrivateFieldGet(this, _copyableRangesFactory).setSelectedRange(selectionRange);
429
+ _classPrivateFieldGet(_copyableRangesFactory, this).setSelectedRange(selectionRange);
517
430
  const groupedRanges = new Map([['headers', null], ['cells', null]]);
518
- if (_classPrivateFieldGet(this, _copyMode) === 'column-headers-only') {
519
- groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getMostBottomColumnHeadersRange());
431
+ if (_classPrivateFieldGet(_copyMode, this) === 'column-headers-only') {
432
+ groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getMostBottomColumnHeadersRange());
520
433
  } else {
521
- if (_classPrivateFieldGet(this, _copyMode) === 'with-column-headers') {
522
- groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getMostBottomColumnHeadersRange());
523
- } else if (_classPrivateFieldGet(this, _copyMode) === 'with-column-group-headers') {
524
- groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getAllColumnHeadersRange());
434
+ if (_classPrivateFieldGet(_copyMode, this) === 'with-column-headers') {
435
+ groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getMostBottomColumnHeadersRange());
436
+ } else if (_classPrivateFieldGet(_copyMode, this) === 'with-column-group-headers') {
437
+ groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getAllColumnHeadersRange());
525
438
  }
526
- groupedRanges.set('cells', _classPrivateFieldGet(this, _copyableRangesFactory).getCellsRange());
439
+ groupedRanges.set('cells', _classPrivateFieldGet(_copyableRangesFactory, this).getCellsRange());
527
440
  }
528
441
  this.copyableRanges = Array.from(groupedRanges.values()).filter(range => range !== null).map(_ref => {
529
442
  let {
@@ -624,10 +537,15 @@ class CopyPaste extends _base.BasePlugin {
624
537
  }
625
538
  newRows.push(newRow);
626
539
  }
627
- _classPrivateFieldSet(this, _preventViewportScrollOnPaste, true);
540
+ _classPrivateFieldSet(_preventViewportScrollOnPaste, this, true);
628
541
  this.hot.populateFromArray(startRow, startColumn, newRows, undefined, undefined, 'CopyPaste.paste', this.pasteMode);
629
542
  return [startRow, startColumn, lastVisualRow, lastVisualColumn];
630
543
  }
544
+
545
+ /**
546
+ * Add the `contenteditable` attribute to the highlighted cell and select its content.
547
+ */
548
+
631
549
  /**
632
550
  * `copy` event callback on textarea element.
633
551
  *
@@ -635,13 +553,13 @@ class CopyPaste extends _base.BasePlugin {
635
553
  * @private
636
554
  */
637
555
  onCopy(event) {
638
- if (!this.hot.isListening() && !_classPrivateFieldGet(this, _isTriggeredByCopy) || this.isEditorOpened()) {
556
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened()) {
639
557
  return;
640
558
  }
641
559
  this.setCopyableText();
642
- _classPrivateFieldSet(this, _isTriggeredByCopy, false);
560
+ _classPrivateFieldSet(_isTriggeredByCopy, this, false);
643
561
  const data = this.getRangedData(this.copyableRanges);
644
- const copiedHeadersCount = _classPrivateMethodGet(this, _countCopiedHeaders, _countCopiedHeaders2).call(this, this.copyableRanges);
562
+ const copiedHeadersCount = _assertClassBrand(_CopyPaste_brand, this, _countCopiedHeaders).call(this, this.copyableRanges);
645
563
  const allowCopying = !!this.hot.runHooks('beforeCopy', data, this.copyableRanges, copiedHeadersCount);
646
564
  if (allowCopying) {
647
565
  const textPlain = (0, _SheetClip.stringify)(data);
@@ -654,7 +572,7 @@ class CopyPaste extends _base.BasePlugin {
654
572
  }
655
573
  this.hot.runHooks('afterCopy', data, this.copyableRanges, copiedHeadersCount);
656
574
  }
657
- _classPrivateFieldSet(this, _copyMode, 'cells-only');
575
+ _classPrivateFieldSet(_copyMode, this, 'cells-only');
658
576
  event.preventDefault();
659
577
  }
660
578
 
@@ -665,11 +583,11 @@ class CopyPaste extends _base.BasePlugin {
665
583
  * @private
666
584
  */
667
585
  onCut(event) {
668
- if (!this.hot.isListening() && !_classPrivateFieldGet(this, _isTriggeredByCut) || this.isEditorOpened()) {
586
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened()) {
669
587
  return;
670
588
  }
671
589
  this.setCopyableText();
672
- _classPrivateFieldSet(this, _isTriggeredByCut, false);
590
+ _classPrivateFieldSet(_isTriggeredByCut, this, false);
673
591
  const rangedData = this.getRangedData(this.copyableRanges);
674
592
  const allowCuttingOut = !!this.hot.runHooks('beforeCut', rangedData, this.copyableRanges);
675
593
  if (allowCuttingOut) {
@@ -729,6 +647,13 @@ class CopyPaste extends _base.BasePlugin {
729
647
  this.hot.selectCell(startRow, startColumn, Math.min(this.hot.countRows() - 1, endRow), Math.min(this.hot.countCols() - 1, endColumn));
730
648
  this.hot.runHooks('afterPaste', pastedData, this.copyableRanges);
731
649
  }
650
+
651
+ /**
652
+ * Add copy and cut options to the Context Menu.
653
+ *
654
+ * @param {object} options Contains default added options of the Context Menu.
655
+ */
656
+
732
657
  /**
733
658
  * Destroys the `CopyPaste` plugin instance.
734
659
  */
@@ -737,7 +662,7 @@ class CopyPaste extends _base.BasePlugin {
737
662
  }
738
663
  }
739
664
  exports.CopyPaste = CopyPaste;
740
- function _ensureClipboardEventsGetTriggered2(eventName) {
665
+ function _ensureClipboardEventsGetTriggered(eventName) {
741
666
  // Without this workaround Safari (tested on Safari@16.5.2) does not trigger the 'copy' event.
742
667
  if ((0, _browser.isSafari)()) {
743
668
  const lastSelectedRange = this.hot.getSelectedRangeLast();
@@ -757,7 +682,15 @@ function _ensureClipboardEventsGetTriggered2(eventName) {
757
682
  this.hot.rootDocument.execCommand(eventName);
758
683
  }
759
684
  }
760
- function _countCopiedHeaders2(ranges) {
685
+ /**
686
+ * Counts how many column headers will be copied based on the passed range.
687
+ *
688
+ * @private
689
+ * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.
690
+ * @returns {{ columnHeadersCount: number }} Returns an object with keys that holds
691
+ * information with the number of copied headers.
692
+ */
693
+ function _countCopiedHeaders(ranges) {
761
694
  const {
762
695
  rows
763
696
  } = (0, _copyableRanges.normalizeRanges)(ranges);
@@ -772,7 +705,7 @@ function _countCopiedHeaders2(ranges) {
772
705
  columnHeadersCount
773
706
  };
774
707
  }
775
- function _addContentEditableToHighlightedCell2() {
708
+ function _addContentEditableToHighlightedCell() {
776
709
  if (this.hot.isListening()) {
777
710
  const lastSelectedRange = this.hot.getSelectedRangeLast();
778
711
  if (lastSelectedRange) {
@@ -787,7 +720,10 @@ function _addContentEditableToHighlightedCell2() {
787
720
  }
788
721
  }
789
722
  }
790
- function _removeContentEditableFromHighlightedCell2() {
723
+ /**
724
+ * Remove the `contenteditable` attribute from the highlighted cell and deselect its content.
725
+ */
726
+ function _removeContentEditableFromHighlightedCell() {
791
727
  // If the instance is not listening, the workaround is not needed.
792
728
  if (this.hot.isListening()) {
793
729
  const lastSelectedRange = this.hot.getSelectedRangeLast();
@@ -803,28 +739,40 @@ function _removeContentEditableFromHighlightedCell2() {
803
739
  }
804
740
  }
805
741
  }
806
- function _onAfterContextMenuDefaultOptions2(options) {
742
+ function _onAfterContextMenuDefaultOptions(options) {
807
743
  options.items.push({
808
744
  name: '---------'
809
745
  }, (0, _copy.default)(this));
810
- if (_classPrivateFieldGet(this, _enableCopyColumnHeaders)) {
746
+ if (_classPrivateFieldGet(_enableCopyColumnHeaders, this)) {
811
747
  options.items.push((0, _copyWithColumnHeaders.default)(this));
812
748
  }
813
- if (_classPrivateFieldGet(this, _enableCopyColumnGroupHeaders)) {
749
+ if (_classPrivateFieldGet(_enableCopyColumnGroupHeaders, this)) {
814
750
  options.items.push((0, _copyWithColumnGroupHeaders.default)(this));
815
751
  }
816
- if (_classPrivateFieldGet(this, _enableCopyColumnHeadersOnly)) {
752
+ if (_classPrivateFieldGet(_enableCopyColumnHeadersOnly, this)) {
817
753
  options.items.push((0, _copyColumnHeadersOnly.default)(this));
818
754
  }
819
755
  options.items.push((0, _cut.default)(this));
820
756
  }
821
- function _onAfterSelection2(fromRow, fromColumn, toRow, toColumn, preventScrolling) {
822
- if (_classPrivateFieldGet(this, _preventViewportScrollOnPaste)) {
757
+ /**
758
+ * Disables the viewport scroll after pasting the data.
759
+ *
760
+ * @param {number} fromRow Selection start row visual index.
761
+ * @param {number} fromColumn Selection start column visual index.
762
+ * @param {number} toRow Selection end row visual index.
763
+ * @param {number} toColumn Selection end column visual index.
764
+ * @param {object} preventScrolling Object with `value` property. If `true`, the viewport scroll will be prevented.
765
+ */
766
+ function _onAfterSelection(fromRow, fromColumn, toRow, toColumn, preventScrolling) {
767
+ if (_classPrivateFieldGet(_preventViewportScrollOnPaste, this)) {
823
768
  preventScrolling.value = true;
824
769
  }
825
- _classPrivateFieldSet(this, _preventViewportScrollOnPaste, false);
770
+ _classPrivateFieldSet(_preventViewportScrollOnPaste, this, false);
826
771
  }
827
- function _onAfterSelectionEnd2() {
772
+ /**
773
+ * Force focus on focusableElement after end of the selection.
774
+ */
775
+ function _onAfterSelectionEnd() {
828
776
  if (this.isEditorOpened()) {
829
777
  return;
830
778
  }
@@ -833,12 +781,23 @@ function _onAfterSelectionEnd2() {
833
781
  }
834
782
  this.setCopyableText();
835
783
  }
836
- function _onSafariMouseEnter2() {
837
- _classPrivateMethodGet(this, _removeContentEditableFromHighlightedCell, _removeContentEditableFromHighlightedCell2).call(this);
784
+ /**
785
+ * `document.body` `mouseenter` callback used to work around a Safari's problem with copying/cutting from the
786
+ * browser's menu.
787
+ */
788
+ function _onSafariMouseEnter() {
789
+ _assertClassBrand(_CopyPaste_brand, this, _removeContentEditableFromHighlightedCell).call(this);
838
790
  }
839
- function _onSafariMouseLeave2() {
840
- _classPrivateMethodGet(this, _addContentEditableToHighlightedCell, _addContentEditableToHighlightedCell2).call(this);
791
+ /**
792
+ * `document.body` `mouseleave` callback used to work around a Safari's problem with copying/cutting from the
793
+ * browser's menu.
794
+ */
795
+ function _onSafariMouseLeave() {
796
+ _assertClassBrand(_CopyPaste_brand, this, _addContentEditableToHighlightedCell).call(this);
841
797
  }
842
- function _onSafariAfterSelection2() {
843
- _classPrivateMethodGet(this, _removeContentEditableFromHighlightedCell, _removeContentEditableFromHighlightedCell2).call(this);
798
+ /**
799
+ * `afterSelection` hook callback triggered only on Safari.
800
+ */
801
+ function _onSafariAfterSelection() {
802
+ _assertClassBrand(_CopyPaste_brand, this, _removeContentEditableFromHighlightedCell).call(this);
844
803
  }