handsontable 0.0.0-next-a1e4b4f-20230628 → 0.0.0-next-e697250-20230707

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (456) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -28
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -28
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +69 -36
  6. package/3rdparty/walkontable/src/cell/range.mjs +68 -35
  7. package/3rdparty/walkontable/src/event.js +3 -5
  8. package/3rdparty/walkontable/src/event.mjs +3 -5
  9. package/3rdparty/walkontable/src/overlay/_base.js +6 -7
  10. package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
  11. package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
  12. package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
  13. package/3rdparty/walkontable/src/overlay/top.js +6 -7
  14. package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
  15. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
  16. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
  17. package/3rdparty/walkontable/src/overlays.js +55 -64
  18. package/3rdparty/walkontable/src/overlays.mjs +55 -64
  19. package/3rdparty/walkontable/src/renderer/table.js +0 -2
  20. package/3rdparty/walkontable/src/renderer/table.mjs +0 -2
  21. package/3rdparty/walkontable/src/scroll.js +20 -23
  22. package/3rdparty/walkontable/src/scroll.mjs +20 -23
  23. package/3rdparty/walkontable/src/selection/border/border.js +1 -0
  24. package/3rdparty/walkontable/src/selection/border/border.mjs +1 -0
  25. package/3rdparty/walkontable/src/selection/manager.js +40 -45
  26. package/3rdparty/walkontable/src/selection/manager.mjs +33 -38
  27. package/3rdparty/walkontable/src/selection/scanner.js +5 -4
  28. package/3rdparty/walkontable/src/selection/scanner.mjs +1 -0
  29. package/3rdparty/walkontable/src/settings.js +13 -15
  30. package/3rdparty/walkontable/src/settings.mjs +13 -15
  31. package/3rdparty/walkontable/src/table.js +23 -26
  32. package/3rdparty/walkontable/src/table.mjs +23 -26
  33. package/CHANGELOG.md +56 -0
  34. package/base.js +2 -4
  35. package/base.mjs +2 -2
  36. package/common.d.ts +1 -1
  37. package/core.d.ts +7 -9
  38. package/core.js +241 -439
  39. package/core.mjs +245 -443
  40. package/dataMap/dataMap.js +1 -0
  41. package/dataMap/dataMap.mjs +1 -0
  42. package/dataMap/dataSource.js +5 -5
  43. package/dataMap/dataSource.mjs +5 -5
  44. package/dataMap/metaManager/lazyFactoryMap.js +1 -0
  45. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
  46. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
  47. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
  48. package/dataMap/metaManager/metaSchema.js +33 -24
  49. package/dataMap/metaManager/metaSchema.mjs +33 -24
  50. package/dist/handsontable.css +25 -3
  51. package/dist/handsontable.full.css +25 -3
  52. package/dist/handsontable.full.js +14539 -11358
  53. package/dist/handsontable.full.min.css +5 -5
  54. package/dist/handsontable.full.min.js +137 -125
  55. package/dist/handsontable.js +31414 -28455
  56. package/dist/handsontable.min.css +5 -5
  57. package/dist/handsontable.min.js +11 -3
  58. package/dist/languages/all.js +133 -0
  59. package/dist/languages/ar-AR.js +7 -0
  60. package/dist/languages/cs-CZ.js +7 -0
  61. package/dist/languages/de-CH.js +7 -0
  62. package/dist/languages/de-DE.js +7 -0
  63. package/dist/languages/en-US.js +7 -0
  64. package/dist/languages/es-MX.js +7 -0
  65. package/dist/languages/fr-FR.js +7 -0
  66. package/dist/languages/it-IT.js +7 -0
  67. package/dist/languages/ja-JP.js +7 -0
  68. package/dist/languages/ko-KR.js +7 -0
  69. package/dist/languages/lv-LV.js +7 -0
  70. package/dist/languages/nb-NO.js +7 -0
  71. package/dist/languages/nl-NL.js +7 -0
  72. package/dist/languages/pl-PL.js +7 -0
  73. package/dist/languages/pt-BR.js +7 -0
  74. package/dist/languages/ru-RU.js +7 -0
  75. package/dist/languages/sr-SP.js +7 -0
  76. package/dist/languages/zh-CN.js +7 -0
  77. package/dist/languages/zh-TW.js +7 -0
  78. package/editorManager.js +19 -89
  79. package/editorManager.mjs +24 -93
  80. package/editors/baseEditor/baseEditor.js +1 -0
  81. package/editors/baseEditor/baseEditor.mjs +1 -0
  82. package/editors/textEditor/textEditor.js +14 -20
  83. package/editors/textEditor/textEditor.mjs +16 -22
  84. package/helpers/dom/element.js +0 -11
  85. package/helpers/dom/element.mjs +0 -10
  86. package/helpers/mixed.js +2 -2
  87. package/helpers/mixed.mjs +2 -2
  88. package/helpers/number.d.ts +1 -0
  89. package/helpers/number.js +18 -0
  90. package/helpers/number.mjs +17 -0
  91. package/helpers/object.js +2 -0
  92. package/helpers/object.mjs +2 -0
  93. package/i18n/languages/ar-AR.js +7 -1
  94. package/i18n/languages/cs-CZ.js +7 -1
  95. package/i18n/languages/de-CH.js +7 -1
  96. package/i18n/languages/de-DE.js +7 -1
  97. package/i18n/languages/en-US.js +7 -1
  98. package/i18n/languages/es-MX.js +7 -1
  99. package/i18n/languages/fr-FR.js +7 -1
  100. package/i18n/languages/it-IT.js +7 -1
  101. package/i18n/languages/ja-JP.js +7 -1
  102. package/i18n/languages/ko-KR.js +7 -1
  103. package/i18n/languages/lv-LV.js +7 -1
  104. package/i18n/languages/nb-NO.js +7 -1
  105. package/i18n/languages/nl-NL.js +7 -1
  106. package/i18n/languages/pl-PL.js +7 -1
  107. package/i18n/languages/pt-BR.js +7 -1
  108. package/i18n/languages/ru-RU.js +7 -1
  109. package/i18n/languages/sr-SP.js +7 -1
  110. package/i18n/languages/zh-CN.js +7 -1
  111. package/i18n/languages/zh-TW.js +7 -1
  112. package/languages/all.js +133 -0
  113. package/languages/ar-AR.js +7 -0
  114. package/languages/cs-CZ.js +7 -0
  115. package/languages/de-CH.js +7 -0
  116. package/languages/de-DE.js +7 -0
  117. package/languages/en-US.js +7 -0
  118. package/languages/es-MX.js +7 -0
  119. package/languages/fr-FR.js +7 -0
  120. package/languages/index.js +133 -0
  121. package/languages/it-IT.js +7 -0
  122. package/languages/ja-JP.js +7 -0
  123. package/languages/ko-KR.js +7 -0
  124. package/languages/lv-LV.js +7 -0
  125. package/languages/nb-NO.js +7 -0
  126. package/languages/nl-NL.js +7 -0
  127. package/languages/pl-PL.js +7 -0
  128. package/languages/pt-BR.js +7 -0
  129. package/languages/ru-RU.js +7 -0
  130. package/languages/sr-SP.js +7 -0
  131. package/languages/zh-CN.js +7 -0
  132. package/languages/zh-TW.js +7 -0
  133. package/package.json +3 -2
  134. package/pluginHooks.d.ts +8 -2
  135. package/pluginHooks.js +116 -18
  136. package/pluginHooks.mjs +115 -15
  137. package/plugins/autoColumnSize/autoColumnSize.js +1 -0
  138. package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
  139. package/plugins/autoRowSize/autoRowSize.js +3 -2
  140. package/plugins/autoRowSize/autoRowSize.mjs +3 -2
  141. package/plugins/autofill/autofill.js +2 -2
  142. package/plugins/autofill/autofill.mjs +3 -3
  143. package/plugins/autofill/utils.js +1 -39
  144. package/plugins/autofill/utils.mjs +0 -37
  145. package/plugins/base/base.js +1 -0
  146. package/plugins/base/base.mjs +1 -0
  147. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
  148. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +82 -24
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +82 -24
  151. package/plugins/columnSorting/columnSorting.js +51 -8
  152. package/plugins/columnSorting/columnSorting.mjs +50 -9
  153. package/plugins/columnSorting/columnStatesManager.js +1 -0
  154. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  155. package/plugins/columnSorting/index.js +4 -2
  156. package/plugins/columnSorting/index.mjs +1 -1
  157. package/plugins/columnSorting/rootComparator.js +1 -0
  158. package/plugins/columnSorting/rootComparator.mjs +1 -0
  159. package/plugins/comments/commentEditor.js +1 -0
  160. package/plugins/comments/commentEditor.mjs +1 -0
  161. package/plugins/comments/comments.js +289 -224
  162. package/plugins/comments/comments.mjs +297 -234
  163. package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
  164. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  165. package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
  166. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
  167. package/plugins/comments/contextMenuItem/removeComment.js +48 -0
  168. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  169. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  170. package/plugins/contextMenu/contextMenu.js +81 -29
  171. package/plugins/contextMenu/contextMenu.mjs +82 -30
  172. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  173. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  174. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  175. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  176. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  177. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  178. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  179. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  180. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  181. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  182. package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -5
  183. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +6 -3
  184. package/plugins/contextMenu/predefinedItems/removeRow.js +8 -5
  185. package/plugins/contextMenu/predefinedItems/removeRow.mjs +6 -3
  186. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  187. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  188. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  189. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  190. package/plugins/contextMenu/utils.js +25 -16
  191. package/plugins/contextMenu/utils.mjs +24 -15
  192. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  193. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  194. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  195. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  196. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  197. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  198. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  199. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  200. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  201. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  202. package/plugins/copyPaste/copyPaste.js +100 -14
  203. package/plugins/copyPaste/copyPaste.mjs +100 -14
  204. package/plugins/copyPaste/copyableRanges.js +25 -31
  205. package/plugins/copyPaste/copyableRanges.mjs +18 -24
  206. package/plugins/copyPaste/focusableElement.js +219 -0
  207. package/plugins/copyPaste/focusableElement.mjs +213 -0
  208. package/plugins/customBorders/customBorders.d.ts +2 -0
  209. package/plugins/customBorders/customBorders.js +19 -50
  210. package/plugins/customBorders/customBorders.mjs +19 -50
  211. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  212. package/plugins/dropdownMenu/dropdownMenu.js +94 -30
  213. package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
  214. package/plugins/exportFile/dataProvider.js +1 -0
  215. package/plugins/exportFile/dataProvider.mjs +1 -0
  216. package/plugins/filters/component/value.js +1 -0
  217. package/plugins/filters/component/value.mjs +1 -0
  218. package/plugins/filters/condition/beginsWith.js +1 -0
  219. package/plugins/filters/condition/beginsWith.mjs +1 -0
  220. package/plugins/filters/condition/between.js +1 -0
  221. package/plugins/filters/condition/between.mjs +1 -0
  222. package/plugins/filters/condition/byValue.js +1 -0
  223. package/plugins/filters/condition/byValue.mjs +1 -0
  224. package/plugins/filters/condition/contains.js +1 -0
  225. package/plugins/filters/condition/contains.mjs +1 -0
  226. package/plugins/filters/condition/date/after.js +1 -0
  227. package/plugins/filters/condition/date/after.mjs +1 -0
  228. package/plugins/filters/condition/date/before.js +1 -0
  229. package/plugins/filters/condition/date/before.mjs +1 -0
  230. package/plugins/filters/condition/endsWith.js +1 -0
  231. package/plugins/filters/condition/endsWith.mjs +1 -0
  232. package/plugins/filters/condition/equal.js +1 -0
  233. package/plugins/filters/condition/equal.mjs +1 -0
  234. package/plugins/filters/condition/greaterThan.js +1 -0
  235. package/plugins/filters/condition/greaterThan.mjs +1 -0
  236. package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
  237. package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
  238. package/plugins/filters/condition/lessThan.js +1 -0
  239. package/plugins/filters/condition/lessThan.mjs +1 -0
  240. package/plugins/filters/condition/lessThanOrEqual.js +1 -0
  241. package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
  242. package/plugins/filters/conditionCollection.js +1 -0
  243. package/plugins/filters/conditionCollection.mjs +1 -0
  244. package/plugins/filters/filters.js +68 -42
  245. package/plugins/filters/filters.mjs +67 -41
  246. package/plugins/filters/ui/multipleSelect.js +1 -0
  247. package/plugins/filters/ui/multipleSelect.mjs +1 -0
  248. package/plugins/formulas/formulas.js +191 -168
  249. package/plugins/formulas/formulas.mjs +191 -168
  250. package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
  251. package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
  252. package/plugins/formulas/indexSyncer/index.js +225 -0
  253. package/plugins/formulas/indexSyncer/index.mjs +219 -0
  254. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
  255. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
  256. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
  257. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
  258. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
  259. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
  260. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
  261. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
  262. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
  263. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
  264. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
  265. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
  266. package/plugins/manualColumnResize/manualColumnResize.js +36 -5
  267. package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
  268. package/plugins/manualRowMove/manualRowMove.js +31 -12
  269. package/plugins/manualRowMove/manualRowMove.mjs +32 -13
  270. package/plugins/manualRowResize/manualRowResize.js +40 -9
  271. package/plugins/manualRowResize/manualRowResize.mjs +40 -9
  272. package/plugins/mergeCells/calculations/autofill.js +1 -0
  273. package/plugins/mergeCells/calculations/autofill.mjs +1 -0
  274. package/plugins/mergeCells/cellsCollection.js +1 -0
  275. package/plugins/mergeCells/cellsCollection.mjs +1 -0
  276. package/plugins/mergeCells/mergeCells.js +6 -2
  277. package/plugins/mergeCells/mergeCells.mjs +6 -2
  278. package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
  279. package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
  280. package/plugins/multiColumnSorting/rootComparator.js +1 -0
  281. package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
  282. package/plugins/nestedHeaders/nestedHeaders.js +129 -6
  283. package/plugins/nestedHeaders/nestedHeaders.mjs +129 -6
  284. package/plugins/nestedHeaders/stateManager/headersTree.js +24 -26
  285. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -23
  286. package/plugins/nestedHeaders/stateManager/index.js +40 -3
  287. package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
  288. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
  289. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -1
  290. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
  291. package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
  292. package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
  293. package/plugins/nestedRows/data/dataManager.js +1 -0
  294. package/plugins/nestedRows/data/dataManager.mjs +1 -0
  295. package/plugins/nestedRows/nestedRows.js +53 -7
  296. package/plugins/nestedRows/nestedRows.mjs +53 -7
  297. package/plugins/nestedRows/ui/collapsing.js +1 -0
  298. package/plugins/nestedRows/ui/collapsing.mjs +1 -0
  299. package/plugins/nestedRows/utils/rowMoveController.js +1 -0
  300. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
  301. package/plugins/persistentState/storage.js +1 -0
  302. package/plugins/persistentState/storage.mjs +1 -0
  303. package/plugins/registry.js +4 -1
  304. package/plugins/registry.mjs +1 -0
  305. package/plugins/undoRedo/undoRedo.js +1 -1
  306. package/plugins/undoRedo/undoRedo.mjs +1 -1
  307. package/renderers/baseRenderer/baseRenderer.js +0 -3
  308. package/renderers/baseRenderer/baseRenderer.mjs +0 -3
  309. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  310. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  311. package/selection/highlight/highlight.js +120 -98
  312. package/selection/highlight/highlight.mjs +118 -96
  313. package/selection/highlight/visualSelection.js +30 -17
  314. package/selection/highlight/visualSelection.mjs +30 -17
  315. package/selection/mouseEventHandler.js +1 -1
  316. package/selection/mouseEventHandler.mjs +1 -1
  317. package/selection/range.js +8 -8
  318. package/selection/range.mjs +8 -8
  319. package/selection/selection.js +246 -153
  320. package/selection/selection.mjs +247 -154
  321. package/selection/transformation.js +233 -96
  322. package/selection/transformation.mjs +230 -93
  323. package/selection/utils.js +12 -35
  324. package/selection/utils.mjs +13 -35
  325. package/settings.d.ts +2 -1
  326. package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
  327. package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
  328. package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
  329. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  330. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  331. package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
  332. package/shortcutContexts/commands/editor/index.js +16 -0
  333. package/shortcutContexts/commands/editor/index.mjs +12 -0
  334. package/shortcutContexts/commands/editor/open.js +29 -0
  335. package/shortcutContexts/commands/editor/open.mjs +24 -0
  336. package/shortcutContexts/commands/emptySelectedCells.js +12 -0
  337. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  338. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  339. package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
  342. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  343. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  344. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  345. package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
  346. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  347. package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
  348. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  349. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
  350. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
  351. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
  352. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
  353. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
  354. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
  355. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
  356. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
  357. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
  358. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
  359. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
  360. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
  361. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
  362. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  363. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
  364. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  365. package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
  366. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  367. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
  368. package/shortcutContexts/commands/index.js +53 -0
  369. package/shortcutContexts/commands/index.mjs +49 -0
  370. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  371. package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
  372. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
  373. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
  374. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  375. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  376. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
  377. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  378. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  380. package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
  381. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  382. package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
  383. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  384. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  385. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
  386. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  387. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
  388. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  389. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
  390. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  391. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
  392. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
  393. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
  394. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
  395. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
  396. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  397. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
  398. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  399. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
  400. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  401. package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
  402. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
  403. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
  404. package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
  405. package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
  406. package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
  407. package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
  408. package/shortcutContexts/commands/selectAll.js +11 -0
  409. package/shortcutContexts/commands/selectAll.mjs +6 -0
  410. package/shortcutContexts/constants.js +19 -0
  411. package/shortcutContexts/constants.mjs +12 -0
  412. package/shortcutContexts/editor.js +29 -0
  413. package/shortcutContexts/editor.mjs +25 -0
  414. package/shortcutContexts/grid.js +252 -0
  415. package/shortcutContexts/grid.mjs +248 -0
  416. package/shortcutContexts/index.js +29 -0
  417. package/shortcutContexts/index.mjs +15 -0
  418. package/shortcuts/context.js +1 -0
  419. package/shortcuts/context.mjs +1 -0
  420. package/shortcuts/manager.js +2 -0
  421. package/shortcuts/manager.mjs +2 -0
  422. package/shortcuts/recorder.js +2 -2
  423. package/shortcuts/recorder.mjs +2 -2
  424. package/shortcuts/utils.js +21 -5
  425. package/shortcuts/utils.mjs +20 -4
  426. package/tableView.js +112 -82
  427. package/tableView.mjs +112 -82
  428. package/translations/changesObservable/observable.js +41 -46
  429. package/translations/changesObservable/observable.mjs +36 -41
  430. package/translations/changesObservable/observer.js +1 -1
  431. package/translations/indexMapper.d.ts +0 -2
  432. package/translations/indexMapper.js +38 -64
  433. package/translations/indexMapper.mjs +39 -64
  434. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  435. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  436. package/translations/maps/utils/indexesSequence.js +1 -0
  437. package/translations/maps/utils/indexesSequence.mjs +1 -0
  438. package/translations/maps/utils/physicallyIndexed.js +1 -0
  439. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  440. package/utils/dataStructures/priorityMap.js +1 -0
  441. package/utils/dataStructures/priorityMap.mjs +1 -0
  442. package/utils/dataStructures/tree.js +16 -18
  443. package/utils/dataStructures/tree.mjs +16 -18
  444. package/utils/dataStructures/uniqueMap.js +1 -0
  445. package/utils/dataStructures/uniqueMap.mjs +1 -0
  446. package/utils/dataStructures/uniqueSet.js +1 -0
  447. package/utils/dataStructures/uniqueSet.mjs +1 -0
  448. package/utils/ghostTable.js +1 -0
  449. package/utils/ghostTable.mjs +1 -0
  450. package/utils/parseTable.js +5 -1
  451. package/utils/parseTable.mjs +5 -1
  452. package/utils/staticRegister.js +1 -0
  453. package/utils/staticRegister.mjs +1 -0
  454. package/focusManager.d.ts +0 -12
  455. package/focusManager.js +0 -275
  456. package/focusManager.mjs +0 -270
@@ -1,10 +1,24 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- 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; }
2
+ import "core-js/modules/es.array.concat.js";
3
+ import "core-js/modules/es.array.iterator.js";
4
+ import "core-js/modules/es.object.to-string.js";
5
+ import "core-js/modules/es.string.iterator.js";
6
+ import "core-js/modules/es.weak-map.js";
7
+ import "core-js/modules/web.dom-collections.iterator.js";
8
+ import "core-js/modules/es.symbol.to-primitive.js";
9
+ import "core-js/modules/es.date.to-primitive.js";
10
+ import "core-js/modules/es.symbol.js";
11
+ import "core-js/modules/es.symbol.description.js";
12
+ import "core-js/modules/es.number.constructor.js";
13
+ import "core-js/modules/es.object.set-prototype-of.js";
14
+ import "core-js/modules/es.object.get-prototype-of.js";
15
+ import "core-js/modules/es.reflect.construct.js";
16
+ import "core-js/modules/es.reflect.get.js";
17
+ import "core-js/modules/es.object.get-own-property-descriptor.js";
18
+ import "core-js/modules/es.symbol.iterator.js";
3
19
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
20
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
5
21
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
22
  function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
9
23
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
10
24
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
@@ -14,37 +28,35 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
14
28
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
15
29
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
16
30
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
17
- import "core-js/modules/es.array.iterator.js";
18
- import "core-js/modules/es.object.to-string.js";
19
- import "core-js/modules/es.string.iterator.js";
20
- import "core-js/modules/es.weak-map.js";
21
- import "core-js/modules/web.dom-collections.iterator.js";
22
- import "core-js/modules/es.object.set-prototype-of.js";
23
- import "core-js/modules/es.object.get-prototype-of.js";
24
- import "core-js/modules/es.reflect.construct.js";
25
- import "core-js/modules/es.reflect.get.js";
26
- import "core-js/modules/es.object.get-own-property-descriptor.js";
27
- import "core-js/modules/es.symbol.to-primitive.js";
28
- import "core-js/modules/es.date.to-primitive.js";
29
- import "core-js/modules/es.symbol.js";
30
- import "core-js/modules/es.symbol.description.js";
31
- import "core-js/modules/es.number.constructor.js";
32
- import "core-js/modules/es.symbol.iterator.js";
31
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
32
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
33
+ 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; }
34
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
35
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
36
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
37
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
38
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
39
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
40
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
33
41
  import { addClass, closest, isChildOf, hasClass, outerWidth, outerHeight } from "../../helpers/dom/element.mjs";
42
+ import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
34
43
  import { deepClone, deepExtend, isObject } from "../../helpers/object.mjs";
35
44
  import EventManager from "../../eventManager.mjs";
36
45
  import { BasePlugin } from "../base/index.mjs";
37
46
  import CommentEditor from "./commentEditor.mjs";
38
- import { checkSelectionConsistency, markLabelAsSelected } from "../contextMenu/utils.mjs";
39
47
  import DisplaySwitch from "./displaySwitch.mjs";
40
- import * as C from "../../i18n/constants.mjs";
48
+ import { SEPARATOR } from "../contextMenu/predefinedItems.mjs";
49
+ import addEditCommentItem from "./contextMenuItem/addEditComment.mjs";
50
+ import removeCommentItem from "./contextMenuItem/removeComment.mjs";
51
+ import readOnlyCommentItem from "./contextMenuItem/readOnlyComment.mjs";
41
52
  export var PLUGIN_KEY = 'comments';
42
53
  export var PLUGIN_PRIORITY = 60;
43
- var privatePool = new WeakMap();
44
- var META_COMMENT = 'comment';
45
- var META_COMMENT_VALUE = 'value';
46
- var META_STYLE = 'style';
47
- var META_READONLY = 'readOnly';
54
+ export var META_COMMENT = 'comment';
55
+ export var META_COMMENT_VALUE = 'value';
56
+ export var META_STYLE = 'style';
57
+ export var META_READONLY = 'readOnly';
58
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
59
+ var SHORTCUTS_CONTEXT_NAME = "plugin:".concat(PLUGIN_KEY);
48
60
 
49
61
  /* eslint-disable jsdoc/require-description-complete-sentence */
50
62
  /**
@@ -136,63 +148,119 @@ var META_READONLY = 'readOnly';
136
148
  * ```
137
149
  * :::
138
150
  */
151
+ var _editor = /*#__PURE__*/new WeakMap();
152
+ var _displaySwitch = /*#__PURE__*/new WeakMap();
153
+ var _preventEditorAutoSwitch = /*#__PURE__*/new WeakMap();
154
+ var _preventEditorHiding = /*#__PURE__*/new WeakMap();
155
+ var _tempEditorDimensions = /*#__PURE__*/new WeakMap();
156
+ var _cellBelowCursor = /*#__PURE__*/new WeakMap();
157
+ var _commentValueBeforeSave = /*#__PURE__*/new WeakMap();
139
158
  export var Comments = /*#__PURE__*/function (_BasePlugin) {
140
159
  _inherits(Comments, _BasePlugin);
141
160
  var _super = _createSuper(Comments);
142
- function Comments(hotInstance) {
161
+ function Comments() {
143
162
  var _this;
144
163
  _classCallCheck(this, Comments);
145
- _this = _super.call(this, hotInstance);
164
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
165
+ args[_key] = arguments[_key];
166
+ }
167
+ _this = _super.call.apply(_super, [this].concat(args));
168
+ /**
169
+ * Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
170
+ *
171
+ * @type {object}
172
+ */
173
+ _defineProperty(_assertThisInitialized(_this), "range", {});
174
+ /**
175
+ * Instance of {@link EventManager}.
176
+ *
177
+ * @protected
178
+ * @type {EventManager}
179
+ */
180
+ _defineProperty(_assertThisInitialized(_this), "eventManager", null);
146
181
  /**
147
182
  * Instance of {@link CommentEditor}.
148
183
  *
149
184
  * @private
150
185
  * @type {CommentEditor}
151
186
  */
152
- _this.editor = null;
187
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _editor, {
188
+ writable: true,
189
+ value: null
190
+ });
153
191
  /**
154
192
  * Instance of {@link DisplaySwitch}.
155
193
  *
156
194
  * @private
157
195
  * @type {DisplaySwitch}
158
196
  */
159
- _this.displaySwitch = null;
197
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _displaySwitch, {
198
+ writable: true,
199
+ value: null
200
+ });
160
201
  /**
161
- * Instance of {@link EventManager}.
202
+ * Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
162
203
  *
163
204
  * @private
164
- * @type {EventManager}
205
+ * @type {boolean}
165
206
  */
166
- _this.eventManager = null;
207
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _preventEditorAutoSwitch, {
208
+ writable: true,
209
+ value: false
210
+ });
167
211
  /**
168
- * Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
212
+ * Prevents hiding editor when the table viewport is scrolled and that scroll is triggered by the
213
+ * keyboard shortcut that insert or edits the comment.
214
+ *
215
+ * @private
216
+ * @type {boolean}
217
+ */
218
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _preventEditorHiding, {
219
+ writable: true,
220
+ value: false
221
+ });
222
+ /**
223
+ * The property for holding editor dimensions for further processing.
169
224
  *
225
+ * @private
170
226
  * @type {object}
171
227
  */
172
- _this.range = {};
228
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _tempEditorDimensions, {
229
+ writable: true,
230
+ value: {}
231
+ });
173
232
  /**
174
- * Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
233
+ * The flag that allows processing mousedown event correctly when comments editor is triggered.
175
234
  *
176
235
  * @private
177
236
  * @type {boolean}
178
237
  */
179
- _this.preventEditorAutoSwitch = false;
180
- privatePool.set(_assertThisInitialized(_this), {
181
- tempEditorDimensions: {},
182
- cellBelowCursor: null
238
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _cellBelowCursor, {
239
+ writable: true,
240
+ value: null
241
+ });
242
+ /**
243
+ * Holds the comment value before it's actually saved to the cell meta.
244
+ *
245
+ * @private
246
+ * @type {string}
247
+ */
248
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _commentValueBeforeSave, {
249
+ writable: true,
250
+ value: ''
183
251
  });
184
252
  return _this;
185
253
  }
186
-
187
- /**
188
- * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
189
- * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
190
- *
191
- * @returns {boolean}
192
- */
193
254
  _createClass(Comments, [{
194
255
  key: "isEnabled",
195
- value: function isEnabled() {
256
+ value:
257
+ /**
258
+ * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
259
+ * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
260
+ *
261
+ * @returns {boolean}
262
+ */
263
+ function isEnabled() {
196
264
  return !!this.hot.getSettings()[PLUGIN_KEY];
197
265
  }
198
266
 
@@ -206,14 +274,14 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
206
274
  if (this.enabled) {
207
275
  return;
208
276
  }
209
- if (!this.editor) {
210
- this.editor = new CommentEditor(this.hot.rootDocument, this.hot.isRtl());
277
+ if (!_classPrivateFieldGet(this, _editor)) {
278
+ _classPrivateFieldSet(this, _editor, new CommentEditor(this.hot.rootDocument, this.hot.isRtl()));
211
279
  }
212
280
  if (!this.eventManager) {
213
281
  this.eventManager = new EventManager(this);
214
282
  }
215
- if (!this.displaySwitch) {
216
- this.displaySwitch = new DisplaySwitch(this.getDisplayDelaySetting());
283
+ if (!_classPrivateFieldGet(this, _displaySwitch)) {
284
+ _classPrivateFieldSet(this, _displaySwitch, new DisplaySwitch(this.getDisplayDelaySetting()));
217
285
  }
218
286
  this.addHook('afterContextMenuDefaultOptions', function (options) {
219
287
  return _this2.addToContextMenu(options);
@@ -221,21 +289,22 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
221
289
  this.addHook('afterRenderer', function (TD, row, col, prop, value, cellProperties) {
222
290
  return _this2.onAfterRenderer(TD, cellProperties);
223
291
  });
224
- this.addHook('afterScrollHorizontally', function () {
225
- return _this2.hide();
226
- });
227
- this.addHook('afterScrollVertically', function () {
228
- return _this2.hide();
292
+ this.addHook('afterScroll', function () {
293
+ return _this2.onAfterScroll();
229
294
  });
230
295
  this.addHook('afterBeginEditing', function () {
231
296
  return _this2.hide();
232
297
  });
233
- this.displaySwitch.addLocalHook('hide', function () {
298
+ this.addHook('afterDocumentKeyDown', function (event) {
299
+ return _this2.onAfterDocumentKeyDown(event);
300
+ });
301
+ _classPrivateFieldGet(this, _displaySwitch).addLocalHook('hide', function () {
234
302
  return _this2.hide();
235
303
  });
236
- this.displaySwitch.addLocalHook('show', function (row, col) {
304
+ _classPrivateFieldGet(this, _displaySwitch).addLocalHook('show', function (row, col) {
237
305
  return _this2.showAtCell(row, col);
238
306
  });
307
+ this.registerShortcuts();
239
308
  this.registerListeners();
240
309
  _get(_getPrototypeOf(Comments.prototype), "enablePlugin", this).call(this);
241
310
  }
@@ -249,10 +318,8 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
249
318
  }, {
250
319
  key: "updatePlugin",
251
320
  value: function updatePlugin() {
252
- this.disablePlugin();
253
- this.enablePlugin();
321
+ _classPrivateFieldGet(this, _displaySwitch).updateDelay(this.getDisplayDelaySetting());
254
322
  _get(_getPrototypeOf(Comments.prototype), "updatePlugin", this).call(this);
255
- this.displaySwitch.updateDelay(this.getDisplayDelaySetting());
256
323
  }
257
324
 
258
325
  /**
@@ -261,9 +328,82 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
261
328
  }, {
262
329
  key: "disablePlugin",
263
330
  value: function disablePlugin() {
331
+ this.unregisterShortcuts();
264
332
  _get(_getPrototypeOf(Comments.prototype), "disablePlugin", this).call(this);
265
333
  }
266
334
 
335
+ /**
336
+ * Register shortcuts responsible for toggling context menu.
337
+ *
338
+ * @private
339
+ */
340
+ }, {
341
+ key: "registerShortcuts",
342
+ value: function registerShortcuts() {
343
+ var _this3 = this;
344
+ var manager = this.hot.getShortcutManager();
345
+ var gridContext = manager.getContext('grid');
346
+ var pluginContext = manager.addContext(SHORTCUTS_CONTEXT_NAME);
347
+ gridContext.addShortcut({
348
+ keys: [['Control', 'Alt', 'M']],
349
+ callback: function callback() {
350
+ var range = _this3.hot.getSelectedRangeLast();
351
+ _classPrivateFieldSet(_this3, _preventEditorHiding, true);
352
+ _this3.hot.scrollToFocusedCell(function () {
353
+ _this3.setRange(range);
354
+ _this3.show();
355
+ _this3.focusEditor();
356
+ manager.setActiveContextName(SHORTCUTS_CONTEXT_NAME);
357
+ _this3.hot._registerTimeout(function () {
358
+ _classPrivateFieldSet(_this3, _preventEditorHiding, false);
359
+ });
360
+ });
361
+ },
362
+ stopPropagation: true,
363
+ runOnlyIf: function runOnlyIf() {
364
+ var _this3$hot$getSelecte;
365
+ return ((_this3$hot$getSelecte = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte === void 0 ? void 0 : _this3$hot$getSelecte.highlight.isCell()) && !_classPrivateFieldGet(_this3, _editor).isVisible();
366
+ },
367
+ group: SHORTCUTS_GROUP
368
+ });
369
+ pluginContext.addShortcut({
370
+ keys: [['Escape']],
371
+ callback: function callback() {
372
+ _classPrivateFieldGet(_this3, _editor).setValue(_classPrivateFieldGet(_this3, _commentValueBeforeSave));
373
+ _this3.hide();
374
+ manager.setActiveContextName('grid');
375
+ },
376
+ runOnlyIf: function runOnlyIf() {
377
+ var _this3$hot$getSelecte2;
378
+ return ((_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isCell()) && _classPrivateFieldGet(_this3, _editor).isVisible();
379
+ },
380
+ group: SHORTCUTS_GROUP
381
+ });
382
+ pluginContext.addShortcut({
383
+ keys: [['Control/Meta', 'Enter']],
384
+ callback: function callback() {
385
+ _this3.hide();
386
+ manager.setActiveContextName('grid');
387
+ },
388
+ runOnlyIf: function runOnlyIf() {
389
+ var _this3$hot$getSelecte3;
390
+ return ((_this3$hot$getSelecte3 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte3 === void 0 ? void 0 : _this3$hot$getSelecte3.highlight.isCell()) && _classPrivateFieldGet(_this3, _editor).isVisible();
391
+ },
392
+ group: SHORTCUTS_GROUP
393
+ });
394
+ }
395
+
396
+ /**
397
+ * Unregister shortcuts responsible for toggling context menu.
398
+ *
399
+ * @private
400
+ */
401
+ }, {
402
+ key: "unregisterShortcuts",
403
+ value: function unregisterShortcuts() {
404
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
405
+ }
406
+
267
407
  /**
268
408
  * Registers all necessary DOM listeners.
269
409
  *
@@ -272,25 +412,29 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
272
412
  }, {
273
413
  key: "registerListeners",
274
414
  value: function registerListeners() {
275
- var _this3 = this;
415
+ var _this4 = this;
276
416
  var rootDocument = this.hot.rootDocument;
417
+ var editorElement = this.getEditorInputElement();
277
418
  this.eventManager.addEventListener(rootDocument, 'mouseover', function (event) {
278
- return _this3.onMouseOver(event);
419
+ return _this4.onMouseOver(event);
279
420
  });
280
421
  this.eventManager.addEventListener(rootDocument, 'mousedown', function (event) {
281
- return _this3.onMouseDown(event);
422
+ return _this4.onMouseDown(event);
282
423
  });
283
424
  this.eventManager.addEventListener(rootDocument, 'mouseup', function () {
284
- return _this3.onMouseUp();
425
+ return _this4.onMouseUp();
426
+ });
427
+ this.eventManager.addEventListener(editorElement, 'focus', function () {
428
+ return _this4.onEditorFocus();
285
429
  });
286
- this.eventManager.addEventListener(this.editor.getInputElement(), 'blur', function () {
287
- return _this3.onEditorBlur();
430
+ this.eventManager.addEventListener(editorElement, 'blur', function () {
431
+ return _this4.onEditorBlur();
288
432
  });
289
- this.eventManager.addEventListener(this.editor.getInputElement(), 'mousedown', function (event) {
290
- return _this3.onEditorMouseDown(event);
433
+ this.eventManager.addEventListener(editorElement, 'mousedown', function (event) {
434
+ return _this4.onEditorMouseDown(event);
291
435
  });
292
- this.eventManager.addEventListener(this.editor.getInputElement(), 'mouseup', function (event) {
293
- return _this3.onEditorMouseUp(event);
436
+ this.eventManager.addEventListener(editorElement, 'mouseup', function (event) {
437
+ return _this4.onEditorMouseUp(event);
294
438
  });
295
439
  }
296
440
 
@@ -338,7 +482,7 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
338
482
  }, {
339
483
  key: "targetIsCommentTextArea",
340
484
  value: function targetIsCommentTextArea(event) {
341
- return this.editor.getInputElement() === event.target;
485
+ return this.getEditorInputElement() === event.target;
342
486
  }
343
487
 
344
488
  /**
@@ -352,7 +496,7 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
352
496
  if (!this.range.from) {
353
497
  throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
354
498
  }
355
- var editorValue = this.editor.getValue();
499
+ var editorValue = _classPrivateFieldGet(this, _editor).getValue();
356
500
  var comment = '';
357
501
  if (value !== null && value !== void 0) {
358
502
  comment = value;
@@ -461,8 +605,9 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
461
605
  return false;
462
606
  }
463
607
  var meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);
464
- this.editor.setValue(meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null || '');
465
- this.editor.show();
608
+ _classPrivateFieldGet(this, _displaySwitch).cancelHiding();
609
+ _classPrivateFieldGet(this, _editor).setValue(meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null || '');
610
+ _classPrivateFieldGet(this, _editor).show();
466
611
  this.refreshEditor(true);
467
612
  return true;
468
613
  }
@@ -489,7 +634,7 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
489
634
  }, {
490
635
  key: "hide",
491
636
  value: function hide() {
492
- this.editor.hide();
637
+ _classPrivateFieldGet(this, _editor).hide();
493
638
  }
494
639
 
495
640
  /**
@@ -502,7 +647,7 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
502
647
  value: function refreshEditor() {
503
648
  var _renderableRow, _renderableColumn;
504
649
  var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
505
- if (!force && (!this.range.from || !this.editor.isVisible())) {
650
+ if (!force && (!this.range.from || !_classPrivateFieldGet(this, _editor).isVisible())) {
506
651
  return;
507
652
  }
508
653
  var _this$hot = this.hot,
@@ -518,7 +663,7 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
518
663
 
519
664
  // Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its
520
665
  // previous position
521
- this.editor.setPosition(0, 0);
666
+ _classPrivateFieldGet(this, _editor).setPosition(0, 0);
522
667
  if (renderableRow === null) {
523
668
  renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));
524
669
  }
@@ -541,9 +686,9 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
541
686
  }, true);
542
687
  var commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);
543
688
  if (commentStyle) {
544
- this.editor.setSize(commentStyle.width, commentStyle.height);
689
+ _classPrivateFieldGet(this, _editor).setSize(commentStyle.width, commentStyle.height);
545
690
  } else {
546
- this.editor.resetSize();
691
+ _classPrivateFieldGet(this, _editor).resetSize();
547
692
  }
548
693
  var lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
549
694
  var lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? outerHeight(TD) : 0;
@@ -552,9 +697,9 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
552
697
  top = _TD$getBoundingClient.top,
553
698
  cellWidth = _TD$getBoundingClient.width,
554
699
  cellHeight = _TD$getBoundingClient.height;
555
- var _this$editor$getSize = this.editor.getSize(),
556
- editorWidth = _this$editor$getSize.width,
557
- editorHeight = _this$editor$getSize.height;
700
+ var _classPrivateFieldGet2 = _classPrivateFieldGet(this, _editor).getSize(),
701
+ editorWidth = _classPrivateFieldGet2.width,
702
+ editorHeight = _classPrivateFieldGet2.height;
558
703
  var _this$hot$rootWindow = this.hot.rootWindow,
559
704
  innerWidth = _this$hot$rootWindow.innerWidth,
560
705
  innerHeight = _this$hot$rootWindow.innerHeight;
@@ -574,30 +719,17 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
574
719
  if (top + editorHeight > innerHeight) {
575
720
  y -= editorHeight - cellHeight + 1;
576
721
  }
577
- this.editor.setPosition(x, y);
578
- this.editor.setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
722
+ _classPrivateFieldGet(this, _editor).setPosition(x, y);
723
+ _classPrivateFieldGet(this, _editor).setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
579
724
  }
580
725
 
581
726
  /**
582
- * Checks if there is a comment for selected range.
583
- *
584
- * @private
585
- * @returns {boolean}
727
+ * Focuses the comments editor element.
586
728
  */
587
729
  }, {
588
- key: "checkSelectionCommentsConsistency",
589
- value: function checkSelectionCommentsConsistency() {
590
- var selected = this.hot.getSelectedRangeLast();
591
- if (!selected) {
592
- return false;
593
- }
594
- var hasComment = false;
595
- var cell = selected.getTopStartCorner(); // IN EXCEL THERE IS COMMENT ONLY FOR TOP LEFT CELL IN SELECTION
596
-
597
- if (this.getCommentMeta(cell.row, cell.col, META_COMMENT_VALUE)) {
598
- hasComment = true;
599
- }
600
- return hasComment;
730
+ key: "focusEditor",
731
+ value: function focusEditor() {
732
+ _classPrivateFieldGet(this, _editor).focus();
601
733
  }
602
734
 
603
735
  /**
@@ -651,7 +783,7 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
651
783
  if (!this.hot.view || !this.hot.view._wt) {
652
784
  return;
653
785
  }
654
- if (!this.preventEditorAutoSwitch && !this.targetIsCommentTextArea(event)) {
786
+ if (!_classPrivateFieldGet(this, _preventEditorAutoSwitch) && !this.targetIsCommentTextArea(event)) {
655
787
  var eventCell = closest(event.target, 'TD', 'TBODY');
656
788
  var coordinates = null;
657
789
  if (eventCell) {
@@ -672,17 +804,16 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
672
804
  }, {
673
805
  key: "onMouseOver",
674
806
  value: function onMouseOver(event) {
675
- var priv = privatePool.get(this);
676
807
  var rootDocument = this.hot.rootDocument;
677
- if (this.preventEditorAutoSwitch || this.editor.isFocused() || hasClass(event.target, 'wtBorder') || priv.cellBelowCursor === event.target || !this.editor) {
808
+ if (_classPrivateFieldGet(this, _preventEditorAutoSwitch) || _classPrivateFieldGet(this, _editor).isFocused() || hasClass(event.target, 'wtBorder') || _classPrivateFieldGet(this, _cellBelowCursor) === event.target || !_classPrivateFieldGet(this, _editor)) {
678
809
  return;
679
810
  }
680
- priv.cellBelowCursor = rootDocument.elementFromPoint(event.clientX, event.clientY);
811
+ _classPrivateFieldSet(this, _cellBelowCursor, rootDocument.elementFromPoint(event.clientX, event.clientY));
681
812
  if (this.targetIsCellWithComment(event)) {
682
813
  var range = this.hot._createCellRange(this.hot.getCoords(event.target));
683
- this.displaySwitch.show(range);
814
+ _classPrivateFieldGet(this, _displaySwitch).show(range);
684
815
  } else if (isChildOf(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
685
- this.displaySwitch.hide();
816
+ _classPrivateFieldGet(this, _displaySwitch).hide();
686
817
  }
687
818
  }
688
819
 
@@ -694,7 +825,7 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
694
825
  }, {
695
826
  key: "onMouseUp",
696
827
  value: function onMouseUp() {
697
- this.preventEditorAutoSwitch = false;
828
+ _classPrivateFieldSet(this, _preventEditorAutoSwitch, false);
698
829
  }
699
830
 
700
831
  /**
@@ -713,16 +844,33 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
713
844
  }
714
845
 
715
846
  /**
716
- * `blur` event callback for the comment editor.
847
+ * Hook observer the "blur" event from the comments editor element. The hook clears the
848
+ * editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
717
849
  *
718
850
  * @private
719
851
  */
720
852
  }, {
721
853
  key: "onEditorBlur",
722
854
  value: function onEditorBlur() {
855
+ _classPrivateFieldSet(this, _commentValueBeforeSave, '');
856
+ this.hot.getShortcutManager().setActiveContextName('grid');
723
857
  this.setComment();
724
858
  }
725
859
 
860
+ /**
861
+ * Hook observer the "focus" event from the comments editor element. The hook takes the control of
862
+ * the keyboard shortcuts by switching the context to plugins one.
863
+ *
864
+ * @private
865
+ */
866
+ }, {
867
+ key: "onEditorFocus",
868
+ value: function onEditorFocus() {
869
+ _classPrivateFieldSet(this, _commentValueBeforeSave, this.getComment());
870
+ this.hot.listen();
871
+ this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);
872
+ }
873
+
726
874
  /**
727
875
  * `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
728
876
  *
@@ -732,11 +880,10 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
732
880
  }, {
733
881
  key: "onEditorMouseDown",
734
882
  value: function onEditorMouseDown(event) {
735
- var priv = privatePool.get(this);
736
- priv.tempEditorDimensions = {
883
+ _classPrivateFieldSet(this, _tempEditorDimensions, {
737
884
  width: outerWidth(event.target),
738
885
  height: outerHeight(event.target)
739
- };
886
+ });
740
887
  }
741
888
 
742
889
  /**
@@ -748,10 +895,9 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
748
895
  }, {
749
896
  key: "onEditorMouseUp",
750
897
  value: function onEditorMouseUp(event) {
751
- var priv = privatePool.get(this);
752
898
  var currentWidth = outerWidth(event.target);
753
899
  var currentHeight = outerHeight(event.target);
754
- if (currentWidth !== priv.tempEditorDimensions.width + 1 || currentHeight !== priv.tempEditorDimensions.height + 2) {
900
+ if (currentWidth !== _classPrivateFieldGet(this, _tempEditorDimensions).width + 1 || currentHeight !== _classPrivateFieldGet(this, _tempEditorDimensions).height + 2) {
755
901
  this.updateCommentMeta(this.range.from.row, this.range.from.col, _defineProperty({}, META_STYLE, {
756
902
  width: currentWidth,
757
903
  height: currentHeight
@@ -760,137 +906,42 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
760
906
  }
761
907
 
762
908
  /**
763
- * Context Menu's "Add comment" callback. Results in showing the comment editor.
909
+ * Observes the pressed keys and if there is already opened the comment editor prevents open
910
+ * the table editor into the fast edit mode.
764
911
  *
765
- * @private
912
+ * @param {Event} event The keydown event.
766
913
  */
767
914
  }, {
768
- key: "onContextMenuAddComment",
769
- value: function onContextMenuAddComment() {
770
- var coords = this.hot.getSelectedRangeLast();
771
- this.preventEditorAutoSwitch = true;
772
- this.displaySwitch.cancelHiding();
773
- this.setRange({
774
- from: coords.highlight
775
- });
776
- this.show();
777
- this.hot.deselectCell();
778
- this.editor.focus();
779
- }
780
-
781
- /**
782
- * Context Menu's "remove comment" callback.
783
- *
784
- * @private
785
- */
786
- }, {
787
- key: "onContextMenuRemoveComment",
788
- value: function onContextMenuRemoveComment() {
789
- var _this4 = this;
790
- var coords = this.hot.getSelectedRangeLast();
791
- this.preventEditorAutoSwitch = true;
792
- coords.forAll(function (row, column) {
793
- if (row >= 0 && column >= 0) {
794
- _this4.removeCommentAtCell(row, column, false);
795
- }
796
- });
797
- this.hot.render();
915
+ key: "onAfterDocumentKeyDown",
916
+ value: function onAfterDocumentKeyDown(event) {
917
+ if (_classPrivateFieldGet(this, _editor).isVisible()) {
918
+ stopImmediatePropagation(event);
919
+ }
798
920
  }
799
921
 
800
922
  /**
801
- * Context Menu's "make comment read-only" callback.
802
- *
803
- * @private
923
+ * Observes the changes in the scroll position if triggered it hides the comment editor.
804
924
  */
805
925
  }, {
806
- key: "onContextMenuMakeReadOnly",
807
- value: function onContextMenuMakeReadOnly() {
808
- var _this5 = this;
809
- var coords = this.hot.getSelectedRangeLast();
810
- this.preventEditorAutoSwitch = true;
811
- coords.forAll(function (row, column) {
812
- if (row >= 0 && column >= 0) {
813
- var currentState = !!_this5.getCommentMeta(row, column, META_READONLY);
814
- _this5.updateCommentMeta(row, column, _defineProperty({}, META_READONLY, !currentState));
815
- }
816
- });
926
+ key: "onAfterScroll",
927
+ value: function onAfterScroll() {
928
+ if (!_classPrivateFieldGet(this, _preventEditorHiding)) {
929
+ this.hide();
930
+ }
817
931
  }
818
932
 
819
933
  /**
820
934
  * Add Comments plugin options to the Context Menu.
821
935
  *
822
936
  * @private
823
- * @param {object} defaultOptions The menu options.
937
+ * @param {object} options The menu options.
824
938
  */
825
939
  }, {
826
940
  key: "addToContextMenu",
827
- value: function addToContextMenu(defaultOptions) {
828
- var _this6 = this;
829
- var isThereAnyCellRendered = function isThereAnyCellRendered() {
830
- return _this6.hot.rowIndexMapper.getRenderableIndexesLength() > 0 && _this6.hot.columnIndexMapper.getRenderableIndexesLength() > 0;
831
- };
832
- defaultOptions.items.push({
833
- name: '---------'
834
- }, {
835
- key: 'commentsAddEdit',
836
- name: function name() {
837
- if (_this6.checkSelectionCommentsConsistency()) {
838
- return _this6.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_EDIT_COMMENT);
839
- }
840
- return _this6.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ADD_COMMENT);
841
- },
842
- callback: function callback() {
843
- return _this6.onContextMenuAddComment();
844
- },
845
- disabled: function disabled() {
846
- if (!isThereAnyCellRendered()) {
847
- return true;
848
- }
849
- return !(_this6.hot.getSelectedLast() && !_this6.hot.selection.isSelectedByCorner());
850
- }
851
- }, {
852
- key: 'commentsRemove',
853
- name: function name() {
854
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COMMENT);
855
- },
856
- callback: function callback() {
857
- return _this6.onContextMenuRemoveComment();
858
- },
859
- disabled: function disabled() {
860
- if (!isThereAnyCellRendered()) {
861
- return true;
862
- }
863
- return !(_this6.hot.getSelectedLast() && !_this6.hot.selection.isSelectedByCorner());
864
- }
865
- }, {
866
- key: 'commentsReadOnly',
867
- name: function name() {
868
- var _this7 = this;
869
- var label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT);
870
- var hasProperty = checkSelectionConsistency(this.getSelectedRangeLast(), function (row, col) {
871
- var readOnlyProperty = _this7.getCellMeta(row, col)[META_COMMENT];
872
- if (readOnlyProperty) {
873
- readOnlyProperty = readOnlyProperty[META_READONLY];
874
- }
875
- if (readOnlyProperty) {
876
- return true;
877
- }
878
- });
879
- if (hasProperty) {
880
- label = markLabelAsSelected(label);
881
- }
882
- return label;
883
- },
884
- callback: function callback() {
885
- return _this6.onContextMenuMakeReadOnly();
886
- },
887
- disabled: function disabled() {
888
- if (!isThereAnyCellRendered()) {
889
- return true;
890
- }
891
- return !(_this6.hot.getSelectedLast() && !_this6.hot.selection.isSelectedByCorner()) || !_this6.checkSelectionCommentsConsistency();
892
- }
893
- });
941
+ value: function addToContextMenu(options) {
942
+ options.items.push({
943
+ name: SEPARATOR
944
+ }, addEditCommentItem(this), removeCommentItem(this), readOnlyCommentItem(this));
894
945
  }
895
946
 
896
947
  /**
@@ -908,17 +959,29 @@ export var Comments = /*#__PURE__*/function (_BasePlugin) {
908
959
  }
909
960
  }
910
961
 
962
+ /**
963
+ * Gets the editors input element.
964
+ *
965
+ * @private
966
+ * @returns {HTMLTextAreaElement}
967
+ */
968
+ }, {
969
+ key: "getEditorInputElement",
970
+ value: function getEditorInputElement() {
971
+ return _classPrivateFieldGet(this, _editor).getInputElement();
972
+ }
973
+
911
974
  /**
912
975
  * Destroys the plugin instance.
913
976
  */
914
977
  }, {
915
978
  key: "destroy",
916
979
  value: function destroy() {
917
- if (this.editor) {
918
- this.editor.destroy();
980
+ if (_classPrivateFieldGet(this, _editor)) {
981
+ _classPrivateFieldGet(this, _editor).destroy();
919
982
  }
920
- if (this.displaySwitch) {
921
- this.displaySwitch.destroy();
983
+ if (_classPrivateFieldGet(this, _displaySwitch)) {
984
+ _classPrivateFieldGet(this, _displaySwitch).destroy();
922
985
  }
923
986
  _get(_getPrototypeOf(Comments.prototype), "destroy", this).call(this);
924
987
  }