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,41 +1,40 @@
1
1
  "use strict";
2
2
 
3
- 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); }
4
- require("core-js/modules/es.object.set-prototype-of.js");
5
- require("core-js/modules/es.object.get-prototype-of.js");
6
- require("core-js/modules/es.reflect.construct.js");
7
- require("core-js/modules/es.reflect.get.js");
8
- require("core-js/modules/es.object.get-own-property-descriptor.js");
9
3
  require("core-js/modules/es.symbol.to-primitive.js");
10
4
  require("core-js/modules/es.date.to-primitive.js");
11
5
  require("core-js/modules/es.symbol.js");
12
6
  require("core-js/modules/es.symbol.description.js");
13
7
  require("core-js/modules/es.number.constructor.js");
8
+ require("core-js/modules/es.object.set-prototype-of.js");
9
+ require("core-js/modules/es.object.get-prototype-of.js");
10
+ require("core-js/modules/es.reflect.construct.js");
11
+ require("core-js/modules/es.reflect.get.js");
12
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
14
13
  require("core-js/modules/es.symbol.iterator.js");
14
+ 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); }
15
15
  exports.__esModule = true;
16
- exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.Comments = void 0;
16
+ exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.META_STYLE = exports.META_READONLY = exports.META_COMMENT_VALUE = exports.META_COMMENT = exports.Comments = void 0;
17
+ require("core-js/modules/es.array.concat.js");
17
18
  require("core-js/modules/es.array.iterator.js");
18
19
  require("core-js/modules/es.object.to-string.js");
19
20
  require("core-js/modules/es.string.iterator.js");
20
21
  require("core-js/modules/es.weak-map.js");
21
22
  require("core-js/modules/web.dom-collections.iterator.js");
22
23
  var _element = require("../../helpers/dom/element");
24
+ var _event = require("../../helpers/dom/event");
23
25
  var _object = require("../../helpers/object");
24
26
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
25
27
  var _base = require("../base");
26
28
  var _commentEditor = _interopRequireDefault(require("./commentEditor"));
27
- var _utils = require("../contextMenu/utils");
28
- var _displaySwitch = _interopRequireDefault(require("./displaySwitch"));
29
- var C = _interopRequireWildcard(require("../../i18n/constants"));
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+ var _displaySwitch2 = _interopRequireDefault(require("./displaySwitch"));
30
+ var _predefinedItems = require("../contextMenu/predefinedItems");
31
+ var _addEditComment = _interopRequireDefault(require("./contextMenuItem/addEditComment"));
32
+ var _removeComment = _interopRequireDefault(require("./contextMenuItem/removeComment"));
33
+ var _readOnlyComment = _interopRequireDefault(require("./contextMenuItem/readOnlyComment"));
32
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
35
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
36
  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); } }
36
37
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
37
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
38
- 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); }
39
38
  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); }
40
39
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
41
40
  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); }
@@ -45,15 +44,30 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
45
44
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
46
45
  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; } }
47
46
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
47
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
48
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
49
+ 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; }
50
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
51
+ 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); }
52
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
53
+ 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; } }
54
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
55
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
56
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
48
57
  var PLUGIN_KEY = 'comments';
49
58
  exports.PLUGIN_KEY = PLUGIN_KEY;
50
59
  var PLUGIN_PRIORITY = 60;
51
60
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
52
- var privatePool = new WeakMap();
53
61
  var META_COMMENT = 'comment';
62
+ exports.META_COMMENT = META_COMMENT;
54
63
  var META_COMMENT_VALUE = 'value';
64
+ exports.META_COMMENT_VALUE = META_COMMENT_VALUE;
55
65
  var META_STYLE = 'style';
66
+ exports.META_STYLE = META_STYLE;
56
67
  var META_READONLY = 'readOnly';
68
+ exports.META_READONLY = META_READONLY;
69
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
70
+ var SHORTCUTS_CONTEXT_NAME = "plugin:".concat(PLUGIN_KEY);
57
71
 
58
72
  /* eslint-disable jsdoc/require-description-complete-sentence */
59
73
  /**
@@ -145,63 +159,119 @@ var META_READONLY = 'readOnly';
145
159
  * ```
146
160
  * :::
147
161
  */
162
+ var _editor = /*#__PURE__*/new WeakMap();
163
+ var _displaySwitch = /*#__PURE__*/new WeakMap();
164
+ var _preventEditorAutoSwitch = /*#__PURE__*/new WeakMap();
165
+ var _preventEditorHiding = /*#__PURE__*/new WeakMap();
166
+ var _tempEditorDimensions = /*#__PURE__*/new WeakMap();
167
+ var _cellBelowCursor = /*#__PURE__*/new WeakMap();
168
+ var _commentValueBeforeSave = /*#__PURE__*/new WeakMap();
148
169
  var Comments = /*#__PURE__*/function (_BasePlugin) {
149
170
  _inherits(Comments, _BasePlugin);
150
171
  var _super = _createSuper(Comments);
151
- function Comments(hotInstance) {
172
+ function Comments() {
152
173
  var _this;
153
174
  _classCallCheck(this, Comments);
154
- _this = _super.call(this, hotInstance);
175
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
176
+ args[_key] = arguments[_key];
177
+ }
178
+ _this = _super.call.apply(_super, [this].concat(args));
179
+ /**
180
+ * Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
181
+ *
182
+ * @type {object}
183
+ */
184
+ _defineProperty(_assertThisInitialized(_this), "range", {});
185
+ /**
186
+ * Instance of {@link EventManager}.
187
+ *
188
+ * @protected
189
+ * @type {EventManager}
190
+ */
191
+ _defineProperty(_assertThisInitialized(_this), "eventManager", null);
155
192
  /**
156
193
  * Instance of {@link CommentEditor}.
157
194
  *
158
195
  * @private
159
196
  * @type {CommentEditor}
160
197
  */
161
- _this.editor = null;
198
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _editor, {
199
+ writable: true,
200
+ value: null
201
+ });
162
202
  /**
163
203
  * Instance of {@link DisplaySwitch}.
164
204
  *
165
205
  * @private
166
206
  * @type {DisplaySwitch}
167
207
  */
168
- _this.displaySwitch = null;
208
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _displaySwitch, {
209
+ writable: true,
210
+ value: null
211
+ });
169
212
  /**
170
- * Instance of {@link EventManager}.
213
+ * Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
171
214
  *
172
215
  * @private
173
- * @type {EventManager}
216
+ * @type {boolean}
174
217
  */
175
- _this.eventManager = null;
218
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _preventEditorAutoSwitch, {
219
+ writable: true,
220
+ value: false
221
+ });
176
222
  /**
177
- * Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
223
+ * Prevents hiding editor when the table viewport is scrolled and that scroll is triggered by the
224
+ * keyboard shortcut that insert or edits the comment.
178
225
  *
226
+ * @private
227
+ * @type {boolean}
228
+ */
229
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _preventEditorHiding, {
230
+ writable: true,
231
+ value: false
232
+ });
233
+ /**
234
+ * The property for holding editor dimensions for further processing.
235
+ *
236
+ * @private
179
237
  * @type {object}
180
238
  */
181
- _this.range = {};
239
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _tempEditorDimensions, {
240
+ writable: true,
241
+ value: {}
242
+ });
182
243
  /**
183
- * Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
244
+ * The flag that allows processing mousedown event correctly when comments editor is triggered.
184
245
  *
185
246
  * @private
186
247
  * @type {boolean}
187
248
  */
188
- _this.preventEditorAutoSwitch = false;
189
- privatePool.set(_assertThisInitialized(_this), {
190
- tempEditorDimensions: {},
191
- cellBelowCursor: null
249
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _cellBelowCursor, {
250
+ writable: true,
251
+ value: null
252
+ });
253
+ /**
254
+ * Holds the comment value before it's actually saved to the cell meta.
255
+ *
256
+ * @private
257
+ * @type {string}
258
+ */
259
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _commentValueBeforeSave, {
260
+ writable: true,
261
+ value: ''
192
262
  });
193
263
  return _this;
194
264
  }
195
-
196
- /**
197
- * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
198
- * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
199
- *
200
- * @returns {boolean}
201
- */
202
265
  _createClass(Comments, [{
203
266
  key: "isEnabled",
204
- value: function isEnabled() {
267
+ value:
268
+ /**
269
+ * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
270
+ * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
271
+ *
272
+ * @returns {boolean}
273
+ */
274
+ function isEnabled() {
205
275
  return !!this.hot.getSettings()[PLUGIN_KEY];
206
276
  }
207
277
 
@@ -215,14 +285,14 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
215
285
  if (this.enabled) {
216
286
  return;
217
287
  }
218
- if (!this.editor) {
219
- this.editor = new _commentEditor.default(this.hot.rootDocument, this.hot.isRtl());
288
+ if (!_classPrivateFieldGet(this, _editor)) {
289
+ _classPrivateFieldSet(this, _editor, new _commentEditor.default(this.hot.rootDocument, this.hot.isRtl()));
220
290
  }
221
291
  if (!this.eventManager) {
222
292
  this.eventManager = new _eventManager.default(this);
223
293
  }
224
- if (!this.displaySwitch) {
225
- this.displaySwitch = new _displaySwitch.default(this.getDisplayDelaySetting());
294
+ if (!_classPrivateFieldGet(this, _displaySwitch)) {
295
+ _classPrivateFieldSet(this, _displaySwitch, new _displaySwitch2.default(this.getDisplayDelaySetting()));
226
296
  }
227
297
  this.addHook('afterContextMenuDefaultOptions', function (options) {
228
298
  return _this2.addToContextMenu(options);
@@ -230,21 +300,22 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
230
300
  this.addHook('afterRenderer', function (TD, row, col, prop, value, cellProperties) {
231
301
  return _this2.onAfterRenderer(TD, cellProperties);
232
302
  });
233
- this.addHook('afterScrollHorizontally', function () {
234
- return _this2.hide();
235
- });
236
- this.addHook('afterScrollVertically', function () {
237
- return _this2.hide();
303
+ this.addHook('afterScroll', function () {
304
+ return _this2.onAfterScroll();
238
305
  });
239
306
  this.addHook('afterBeginEditing', function () {
240
307
  return _this2.hide();
241
308
  });
242
- this.displaySwitch.addLocalHook('hide', function () {
309
+ this.addHook('afterDocumentKeyDown', function (event) {
310
+ return _this2.onAfterDocumentKeyDown(event);
311
+ });
312
+ _classPrivateFieldGet(this, _displaySwitch).addLocalHook('hide', function () {
243
313
  return _this2.hide();
244
314
  });
245
- this.displaySwitch.addLocalHook('show', function (row, col) {
315
+ _classPrivateFieldGet(this, _displaySwitch).addLocalHook('show', function (row, col) {
246
316
  return _this2.showAtCell(row, col);
247
317
  });
318
+ this.registerShortcuts();
248
319
  this.registerListeners();
249
320
  _get(_getPrototypeOf(Comments.prototype), "enablePlugin", this).call(this);
250
321
  }
@@ -258,10 +329,8 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
258
329
  }, {
259
330
  key: "updatePlugin",
260
331
  value: function updatePlugin() {
261
- this.disablePlugin();
262
- this.enablePlugin();
332
+ _classPrivateFieldGet(this, _displaySwitch).updateDelay(this.getDisplayDelaySetting());
263
333
  _get(_getPrototypeOf(Comments.prototype), "updatePlugin", this).call(this);
264
- this.displaySwitch.updateDelay(this.getDisplayDelaySetting());
265
334
  }
266
335
 
267
336
  /**
@@ -270,9 +339,82 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
270
339
  }, {
271
340
  key: "disablePlugin",
272
341
  value: function disablePlugin() {
342
+ this.unregisterShortcuts();
273
343
  _get(_getPrototypeOf(Comments.prototype), "disablePlugin", this).call(this);
274
344
  }
275
345
 
346
+ /**
347
+ * Register shortcuts responsible for toggling context menu.
348
+ *
349
+ * @private
350
+ */
351
+ }, {
352
+ key: "registerShortcuts",
353
+ value: function registerShortcuts() {
354
+ var _this3 = this;
355
+ var manager = this.hot.getShortcutManager();
356
+ var gridContext = manager.getContext('grid');
357
+ var pluginContext = manager.addContext(SHORTCUTS_CONTEXT_NAME);
358
+ gridContext.addShortcut({
359
+ keys: [['Control', 'Alt', 'M']],
360
+ callback: function callback() {
361
+ var range = _this3.hot.getSelectedRangeLast();
362
+ _classPrivateFieldSet(_this3, _preventEditorHiding, true);
363
+ _this3.hot.scrollToFocusedCell(function () {
364
+ _this3.setRange(range);
365
+ _this3.show();
366
+ _this3.focusEditor();
367
+ manager.setActiveContextName(SHORTCUTS_CONTEXT_NAME);
368
+ _this3.hot._registerTimeout(function () {
369
+ _classPrivateFieldSet(_this3, _preventEditorHiding, false);
370
+ });
371
+ });
372
+ },
373
+ stopPropagation: true,
374
+ runOnlyIf: function runOnlyIf() {
375
+ var _this3$hot$getSelecte;
376
+ return ((_this3$hot$getSelecte = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte === void 0 ? void 0 : _this3$hot$getSelecte.highlight.isCell()) && !_classPrivateFieldGet(_this3, _editor).isVisible();
377
+ },
378
+ group: SHORTCUTS_GROUP
379
+ });
380
+ pluginContext.addShortcut({
381
+ keys: [['Escape']],
382
+ callback: function callback() {
383
+ _classPrivateFieldGet(_this3, _editor).setValue(_classPrivateFieldGet(_this3, _commentValueBeforeSave));
384
+ _this3.hide();
385
+ manager.setActiveContextName('grid');
386
+ },
387
+ runOnlyIf: function runOnlyIf() {
388
+ var _this3$hot$getSelecte2;
389
+ return ((_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isCell()) && _classPrivateFieldGet(_this3, _editor).isVisible();
390
+ },
391
+ group: SHORTCUTS_GROUP
392
+ });
393
+ pluginContext.addShortcut({
394
+ keys: [['Control/Meta', 'Enter']],
395
+ callback: function callback() {
396
+ _this3.hide();
397
+ manager.setActiveContextName('grid');
398
+ },
399
+ runOnlyIf: function runOnlyIf() {
400
+ var _this3$hot$getSelecte3;
401
+ return ((_this3$hot$getSelecte3 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte3 === void 0 ? void 0 : _this3$hot$getSelecte3.highlight.isCell()) && _classPrivateFieldGet(_this3, _editor).isVisible();
402
+ },
403
+ group: SHORTCUTS_GROUP
404
+ });
405
+ }
406
+
407
+ /**
408
+ * Unregister shortcuts responsible for toggling context menu.
409
+ *
410
+ * @private
411
+ */
412
+ }, {
413
+ key: "unregisterShortcuts",
414
+ value: function unregisterShortcuts() {
415
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
416
+ }
417
+
276
418
  /**
277
419
  * Registers all necessary DOM listeners.
278
420
  *
@@ -281,25 +423,29 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
281
423
  }, {
282
424
  key: "registerListeners",
283
425
  value: function registerListeners() {
284
- var _this3 = this;
426
+ var _this4 = this;
285
427
  var rootDocument = this.hot.rootDocument;
428
+ var editorElement = this.getEditorInputElement();
286
429
  this.eventManager.addEventListener(rootDocument, 'mouseover', function (event) {
287
- return _this3.onMouseOver(event);
430
+ return _this4.onMouseOver(event);
288
431
  });
289
432
  this.eventManager.addEventListener(rootDocument, 'mousedown', function (event) {
290
- return _this3.onMouseDown(event);
433
+ return _this4.onMouseDown(event);
291
434
  });
292
435
  this.eventManager.addEventListener(rootDocument, 'mouseup', function () {
293
- return _this3.onMouseUp();
436
+ return _this4.onMouseUp();
437
+ });
438
+ this.eventManager.addEventListener(editorElement, 'focus', function () {
439
+ return _this4.onEditorFocus();
294
440
  });
295
- this.eventManager.addEventListener(this.editor.getInputElement(), 'blur', function () {
296
- return _this3.onEditorBlur();
441
+ this.eventManager.addEventListener(editorElement, 'blur', function () {
442
+ return _this4.onEditorBlur();
297
443
  });
298
- this.eventManager.addEventListener(this.editor.getInputElement(), 'mousedown', function (event) {
299
- return _this3.onEditorMouseDown(event);
444
+ this.eventManager.addEventListener(editorElement, 'mousedown', function (event) {
445
+ return _this4.onEditorMouseDown(event);
300
446
  });
301
- this.eventManager.addEventListener(this.editor.getInputElement(), 'mouseup', function (event) {
302
- return _this3.onEditorMouseUp(event);
447
+ this.eventManager.addEventListener(editorElement, 'mouseup', function (event) {
448
+ return _this4.onEditorMouseUp(event);
303
449
  });
304
450
  }
305
451
 
@@ -347,7 +493,7 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
347
493
  }, {
348
494
  key: "targetIsCommentTextArea",
349
495
  value: function targetIsCommentTextArea(event) {
350
- return this.editor.getInputElement() === event.target;
496
+ return this.getEditorInputElement() === event.target;
351
497
  }
352
498
 
353
499
  /**
@@ -361,7 +507,7 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
361
507
  if (!this.range.from) {
362
508
  throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
363
509
  }
364
- var editorValue = this.editor.getValue();
510
+ var editorValue = _classPrivateFieldGet(this, _editor).getValue();
365
511
  var comment = '';
366
512
  if (value !== null && value !== void 0) {
367
513
  comment = value;
@@ -470,8 +616,9 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
470
616
  return false;
471
617
  }
472
618
  var meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);
473
- this.editor.setValue(meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null || '');
474
- this.editor.show();
619
+ _classPrivateFieldGet(this, _displaySwitch).cancelHiding();
620
+ _classPrivateFieldGet(this, _editor).setValue(meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null || '');
621
+ _classPrivateFieldGet(this, _editor).show();
475
622
  this.refreshEditor(true);
476
623
  return true;
477
624
  }
@@ -498,7 +645,7 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
498
645
  }, {
499
646
  key: "hide",
500
647
  value: function hide() {
501
- this.editor.hide();
648
+ _classPrivateFieldGet(this, _editor).hide();
502
649
  }
503
650
 
504
651
  /**
@@ -511,7 +658,7 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
511
658
  value: function refreshEditor() {
512
659
  var _renderableRow, _renderableColumn;
513
660
  var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
514
- if (!force && (!this.range.from || !this.editor.isVisible())) {
661
+ if (!force && (!this.range.from || !_classPrivateFieldGet(this, _editor).isVisible())) {
515
662
  return;
516
663
  }
517
664
  var _this$hot = this.hot,
@@ -527,7 +674,7 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
527
674
 
528
675
  // Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its
529
676
  // previous position
530
- this.editor.setPosition(0, 0);
677
+ _classPrivateFieldGet(this, _editor).setPosition(0, 0);
531
678
  if (renderableRow === null) {
532
679
  renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));
533
680
  }
@@ -550,9 +697,9 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
550
697
  }, true);
551
698
  var commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);
552
699
  if (commentStyle) {
553
- this.editor.setSize(commentStyle.width, commentStyle.height);
700
+ _classPrivateFieldGet(this, _editor).setSize(commentStyle.width, commentStyle.height);
554
701
  } else {
555
- this.editor.resetSize();
702
+ _classPrivateFieldGet(this, _editor).resetSize();
556
703
  }
557
704
  var lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
558
705
  var lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? (0, _element.outerHeight)(TD) : 0;
@@ -561,9 +708,9 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
561
708
  top = _TD$getBoundingClient.top,
562
709
  cellWidth = _TD$getBoundingClient.width,
563
710
  cellHeight = _TD$getBoundingClient.height;
564
- var _this$editor$getSize = this.editor.getSize(),
565
- editorWidth = _this$editor$getSize.width,
566
- editorHeight = _this$editor$getSize.height;
711
+ var _classPrivateFieldGet2 = _classPrivateFieldGet(this, _editor).getSize(),
712
+ editorWidth = _classPrivateFieldGet2.width,
713
+ editorHeight = _classPrivateFieldGet2.height;
567
714
  var _this$hot$rootWindow = this.hot.rootWindow,
568
715
  innerWidth = _this$hot$rootWindow.innerWidth,
569
716
  innerHeight = _this$hot$rootWindow.innerHeight;
@@ -583,30 +730,17 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
583
730
  if (top + editorHeight > innerHeight) {
584
731
  y -= editorHeight - cellHeight + 1;
585
732
  }
586
- this.editor.setPosition(x, y);
587
- this.editor.setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
733
+ _classPrivateFieldGet(this, _editor).setPosition(x, y);
734
+ _classPrivateFieldGet(this, _editor).setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
588
735
  }
589
736
 
590
737
  /**
591
- * Checks if there is a comment for selected range.
592
- *
593
- * @private
594
- * @returns {boolean}
738
+ * Focuses the comments editor element.
595
739
  */
596
740
  }, {
597
- key: "checkSelectionCommentsConsistency",
598
- value: function checkSelectionCommentsConsistency() {
599
- var selected = this.hot.getSelectedRangeLast();
600
- if (!selected) {
601
- return false;
602
- }
603
- var hasComment = false;
604
- var cell = selected.getTopStartCorner(); // IN EXCEL THERE IS COMMENT ONLY FOR TOP LEFT CELL IN SELECTION
605
-
606
- if (this.getCommentMeta(cell.row, cell.col, META_COMMENT_VALUE)) {
607
- hasComment = true;
608
- }
609
- return hasComment;
741
+ key: "focusEditor",
742
+ value: function focusEditor() {
743
+ _classPrivateFieldGet(this, _editor).focus();
610
744
  }
611
745
 
612
746
  /**
@@ -660,7 +794,7 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
660
794
  if (!this.hot.view || !this.hot.view._wt) {
661
795
  return;
662
796
  }
663
- if (!this.preventEditorAutoSwitch && !this.targetIsCommentTextArea(event)) {
797
+ if (!_classPrivateFieldGet(this, _preventEditorAutoSwitch) && !this.targetIsCommentTextArea(event)) {
664
798
  var eventCell = (0, _element.closest)(event.target, 'TD', 'TBODY');
665
799
  var coordinates = null;
666
800
  if (eventCell) {
@@ -681,17 +815,16 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
681
815
  }, {
682
816
  key: "onMouseOver",
683
817
  value: function onMouseOver(event) {
684
- var priv = privatePool.get(this);
685
818
  var rootDocument = this.hot.rootDocument;
686
- if (this.preventEditorAutoSwitch || this.editor.isFocused() || (0, _element.hasClass)(event.target, 'wtBorder') || priv.cellBelowCursor === event.target || !this.editor) {
819
+ if (_classPrivateFieldGet(this, _preventEditorAutoSwitch) || _classPrivateFieldGet(this, _editor).isFocused() || (0, _element.hasClass)(event.target, 'wtBorder') || _classPrivateFieldGet(this, _cellBelowCursor) === event.target || !_classPrivateFieldGet(this, _editor)) {
687
820
  return;
688
821
  }
689
- priv.cellBelowCursor = rootDocument.elementFromPoint(event.clientX, event.clientY);
822
+ _classPrivateFieldSet(this, _cellBelowCursor, rootDocument.elementFromPoint(event.clientX, event.clientY));
690
823
  if (this.targetIsCellWithComment(event)) {
691
824
  var range = this.hot._createCellRange(this.hot.getCoords(event.target));
692
- this.displaySwitch.show(range);
825
+ _classPrivateFieldGet(this, _displaySwitch).show(range);
693
826
  } else if ((0, _element.isChildOf)(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
694
- this.displaySwitch.hide();
827
+ _classPrivateFieldGet(this, _displaySwitch).hide();
695
828
  }
696
829
  }
697
830
 
@@ -703,7 +836,7 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
703
836
  }, {
704
837
  key: "onMouseUp",
705
838
  value: function onMouseUp() {
706
- this.preventEditorAutoSwitch = false;
839
+ _classPrivateFieldSet(this, _preventEditorAutoSwitch, false);
707
840
  }
708
841
 
709
842
  /**
@@ -722,16 +855,33 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
722
855
  }
723
856
 
724
857
  /**
725
- * `blur` event callback for the comment editor.
858
+ * Hook observer the "blur" event from the comments editor element. The hook clears the
859
+ * editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
726
860
  *
727
861
  * @private
728
862
  */
729
863
  }, {
730
864
  key: "onEditorBlur",
731
865
  value: function onEditorBlur() {
866
+ _classPrivateFieldSet(this, _commentValueBeforeSave, '');
867
+ this.hot.getShortcutManager().setActiveContextName('grid');
732
868
  this.setComment();
733
869
  }
734
870
 
871
+ /**
872
+ * Hook observer the "focus" event from the comments editor element. The hook takes the control of
873
+ * the keyboard shortcuts by switching the context to plugins one.
874
+ *
875
+ * @private
876
+ */
877
+ }, {
878
+ key: "onEditorFocus",
879
+ value: function onEditorFocus() {
880
+ _classPrivateFieldSet(this, _commentValueBeforeSave, this.getComment());
881
+ this.hot.listen();
882
+ this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);
883
+ }
884
+
735
885
  /**
736
886
  * `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
737
887
  *
@@ -741,11 +891,10 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
741
891
  }, {
742
892
  key: "onEditorMouseDown",
743
893
  value: function onEditorMouseDown(event) {
744
- var priv = privatePool.get(this);
745
- priv.tempEditorDimensions = {
894
+ _classPrivateFieldSet(this, _tempEditorDimensions, {
746
895
  width: (0, _element.outerWidth)(event.target),
747
896
  height: (0, _element.outerHeight)(event.target)
748
- };
897
+ });
749
898
  }
750
899
 
751
900
  /**
@@ -757,10 +906,9 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
757
906
  }, {
758
907
  key: "onEditorMouseUp",
759
908
  value: function onEditorMouseUp(event) {
760
- var priv = privatePool.get(this);
761
909
  var currentWidth = (0, _element.outerWidth)(event.target);
762
910
  var currentHeight = (0, _element.outerHeight)(event.target);
763
- if (currentWidth !== priv.tempEditorDimensions.width + 1 || currentHeight !== priv.tempEditorDimensions.height + 2) {
911
+ if (currentWidth !== _classPrivateFieldGet(this, _tempEditorDimensions).width + 1 || currentHeight !== _classPrivateFieldGet(this, _tempEditorDimensions).height + 2) {
764
912
  this.updateCommentMeta(this.range.from.row, this.range.from.col, _defineProperty({}, META_STYLE, {
765
913
  width: currentWidth,
766
914
  height: currentHeight
@@ -769,137 +917,42 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
769
917
  }
770
918
 
771
919
  /**
772
- * Context Menu's "Add comment" callback. Results in showing the comment editor.
920
+ * Observes the pressed keys and if there is already opened the comment editor prevents open
921
+ * the table editor into the fast edit mode.
773
922
  *
774
- * @private
923
+ * @param {Event} event The keydown event.
775
924
  */
776
925
  }, {
777
- key: "onContextMenuAddComment",
778
- value: function onContextMenuAddComment() {
779
- var coords = this.hot.getSelectedRangeLast();
780
- this.preventEditorAutoSwitch = true;
781
- this.displaySwitch.cancelHiding();
782
- this.setRange({
783
- from: coords.highlight
784
- });
785
- this.show();
786
- this.hot.deselectCell();
787
- this.editor.focus();
788
- }
789
-
790
- /**
791
- * Context Menu's "remove comment" callback.
792
- *
793
- * @private
794
- */
795
- }, {
796
- key: "onContextMenuRemoveComment",
797
- value: function onContextMenuRemoveComment() {
798
- var _this4 = this;
799
- var coords = this.hot.getSelectedRangeLast();
800
- this.preventEditorAutoSwitch = true;
801
- coords.forAll(function (row, column) {
802
- if (row >= 0 && column >= 0) {
803
- _this4.removeCommentAtCell(row, column, false);
804
- }
805
- });
806
- this.hot.render();
926
+ key: "onAfterDocumentKeyDown",
927
+ value: function onAfterDocumentKeyDown(event) {
928
+ if (_classPrivateFieldGet(this, _editor).isVisible()) {
929
+ (0, _event.stopImmediatePropagation)(event);
930
+ }
807
931
  }
808
932
 
809
933
  /**
810
- * Context Menu's "make comment read-only" callback.
811
- *
812
- * @private
934
+ * Observes the changes in the scroll position if triggered it hides the comment editor.
813
935
  */
814
936
  }, {
815
- key: "onContextMenuMakeReadOnly",
816
- value: function onContextMenuMakeReadOnly() {
817
- var _this5 = this;
818
- var coords = this.hot.getSelectedRangeLast();
819
- this.preventEditorAutoSwitch = true;
820
- coords.forAll(function (row, column) {
821
- if (row >= 0 && column >= 0) {
822
- var currentState = !!_this5.getCommentMeta(row, column, META_READONLY);
823
- _this5.updateCommentMeta(row, column, _defineProperty({}, META_READONLY, !currentState));
824
- }
825
- });
937
+ key: "onAfterScroll",
938
+ value: function onAfterScroll() {
939
+ if (!_classPrivateFieldGet(this, _preventEditorHiding)) {
940
+ this.hide();
941
+ }
826
942
  }
827
943
 
828
944
  /**
829
945
  * Add Comments plugin options to the Context Menu.
830
946
  *
831
947
  * @private
832
- * @param {object} defaultOptions The menu options.
948
+ * @param {object} options The menu options.
833
949
  */
834
950
  }, {
835
951
  key: "addToContextMenu",
836
- value: function addToContextMenu(defaultOptions) {
837
- var _this6 = this;
838
- var isThereAnyCellRendered = function isThereAnyCellRendered() {
839
- return _this6.hot.rowIndexMapper.getRenderableIndexesLength() > 0 && _this6.hot.columnIndexMapper.getRenderableIndexesLength() > 0;
840
- };
841
- defaultOptions.items.push({
842
- name: '---------'
843
- }, {
844
- key: 'commentsAddEdit',
845
- name: function name() {
846
- if (_this6.checkSelectionCommentsConsistency()) {
847
- return _this6.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_EDIT_COMMENT);
848
- }
849
- return _this6.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ADD_COMMENT);
850
- },
851
- callback: function callback() {
852
- return _this6.onContextMenuAddComment();
853
- },
854
- disabled: function disabled() {
855
- if (!isThereAnyCellRendered()) {
856
- return true;
857
- }
858
- return !(_this6.hot.getSelectedLast() && !_this6.hot.selection.isSelectedByCorner());
859
- }
860
- }, {
861
- key: 'commentsRemove',
862
- name: function name() {
863
- return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COMMENT);
864
- },
865
- callback: function callback() {
866
- return _this6.onContextMenuRemoveComment();
867
- },
868
- disabled: function disabled() {
869
- if (!isThereAnyCellRendered()) {
870
- return true;
871
- }
872
- return !(_this6.hot.getSelectedLast() && !_this6.hot.selection.isSelectedByCorner());
873
- }
874
- }, {
875
- key: 'commentsReadOnly',
876
- name: function name() {
877
- var _this7 = this;
878
- var label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT);
879
- var hasProperty = (0, _utils.checkSelectionConsistency)(this.getSelectedRangeLast(), function (row, col) {
880
- var readOnlyProperty = _this7.getCellMeta(row, col)[META_COMMENT];
881
- if (readOnlyProperty) {
882
- readOnlyProperty = readOnlyProperty[META_READONLY];
883
- }
884
- if (readOnlyProperty) {
885
- return true;
886
- }
887
- });
888
- if (hasProperty) {
889
- label = (0, _utils.markLabelAsSelected)(label);
890
- }
891
- return label;
892
- },
893
- callback: function callback() {
894
- return _this6.onContextMenuMakeReadOnly();
895
- },
896
- disabled: function disabled() {
897
- if (!isThereAnyCellRendered()) {
898
- return true;
899
- }
900
- return !(_this6.hot.getSelectedLast() && !_this6.hot.selection.isSelectedByCorner()) || !_this6.checkSelectionCommentsConsistency();
901
- }
902
- });
952
+ value: function addToContextMenu(options) {
953
+ options.items.push({
954
+ name: _predefinedItems.SEPARATOR
955
+ }, (0, _addEditComment.default)(this), (0, _removeComment.default)(this), (0, _readOnlyComment.default)(this));
903
956
  }
904
957
 
905
958
  /**
@@ -917,17 +970,29 @@ var Comments = /*#__PURE__*/function (_BasePlugin) {
917
970
  }
918
971
  }
919
972
 
973
+ /**
974
+ * Gets the editors input element.
975
+ *
976
+ * @private
977
+ * @returns {HTMLTextAreaElement}
978
+ */
979
+ }, {
980
+ key: "getEditorInputElement",
981
+ value: function getEditorInputElement() {
982
+ return _classPrivateFieldGet(this, _editor).getInputElement();
983
+ }
984
+
920
985
  /**
921
986
  * Destroys the plugin instance.
922
987
  */
923
988
  }, {
924
989
  key: "destroy",
925
990
  value: function destroy() {
926
- if (this.editor) {
927
- this.editor.destroy();
991
+ if (_classPrivateFieldGet(this, _editor)) {
992
+ _classPrivateFieldGet(this, _editor).destroy();
928
993
  }
929
- if (this.displaySwitch) {
930
- this.displaySwitch.destroy();
994
+ if (_classPrivateFieldGet(this, _displaySwitch)) {
995
+ _classPrivateFieldGet(this, _displaySwitch).destroy();
931
996
  }
932
997
  _get(_getPrototypeOf(Comments.prototype), "destroy", this).call(this);
933
998
  }