handsontable 0.0.0-next-b0a4ea2-20231024 → 0.0.0-next-9059914-20231025

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 (446) hide show
  1. package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
  2. package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
  3. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
  4. package/3rdparty/walkontable/src/cell/coords.js +11 -50
  5. package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -38
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -38
  9. package/3rdparty/walkontable/src/core/_base.js +3 -9
  10. package/3rdparty/walkontable/src/core/_base.mjs +3 -9
  11. package/3rdparty/walkontable/src/core/clone.js +2 -2
  12. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  13. package/3rdparty/walkontable/src/core/core.js +2 -3
  14. package/3rdparty/walkontable/src/core/core.mjs +2 -3
  15. package/3rdparty/walkontable/src/event.js +10 -12
  16. package/3rdparty/walkontable/src/event.mjs +10 -12
  17. package/3rdparty/walkontable/src/facade/core.js +2 -2
  18. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  19. package/3rdparty/walkontable/src/index.js +2 -10
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +2 -13
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +6 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
  27. package/3rdparty/walkontable/src/renderer/cells.js +0 -10
  28. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
  29. package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
  30. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
  31. package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
  32. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
  33. package/3rdparty/walkontable/src/renderer/rows.js +0 -13
  34. package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
  35. package/3rdparty/walkontable/src/renderer/table.js +0 -9
  36. package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
  37. package/3rdparty/walkontable/src/scroll.js +0 -2
  38. package/3rdparty/walkontable/src/scroll.mjs +0 -2
  39. package/3rdparty/walkontable/src/selection.js +295 -0
  40. package/3rdparty/walkontable/src/selection.mjs +290 -0
  41. package/3rdparty/walkontable/src/settings.js +4 -13
  42. package/3rdparty/walkontable/src/settings.mjs +4 -13
  43. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  44. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  45. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  46. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  47. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  48. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  49. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  50. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  51. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  52. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  53. package/3rdparty/walkontable/src/table.js +78 -19
  54. package/3rdparty/walkontable/src/table.mjs +79 -20
  55. package/base.js +2 -2
  56. package/base.mjs +2 -2
  57. package/cellTypes/dateType/dateType.d.ts +3 -3
  58. package/cellTypes/dateType/dateType.js +2 -2
  59. package/cellTypes/dateType/dateType.mjs +2 -2
  60. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  61. package/cellTypes/handsontableType/handsontableType.js +2 -2
  62. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  63. package/cellTypes/index.d.ts +0 -3
  64. package/cellTypes/index.js +0 -4
  65. package/cellTypes/index.mjs +1 -3
  66. package/core.d.ts +4 -9
  67. package/core.js +327 -285
  68. package/core.mjs +327 -285
  69. package/dataMap/metaManager/metaSchema.js +0 -65
  70. package/dataMap/metaManager/metaSchema.mjs +0 -65
  71. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
  72. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
  73. package/dataMap/replaceData.js +0 -5
  74. package/dataMap/replaceData.mjs +0 -5
  75. package/dist/handsontable.css +15 -51
  76. package/dist/handsontable.full.css +15 -51
  77. package/dist/handsontable.full.js +8668 -14188
  78. package/dist/handsontable.full.min.css +7 -7
  79. package/dist/handsontable.full.min.js +136 -136
  80. package/dist/handsontable.js +22829 -28349
  81. package/dist/handsontable.min.css +6 -6
  82. package/dist/handsontable.min.js +24 -24
  83. package/dist/languages/all.js +2 -6
  84. package/dist/languages/all.min.js +1 -1
  85. package/dist/languages/en-US.js +1 -3
  86. package/dist/languages/en-US.min.js +1 -1
  87. package/dist/languages/pl-PL.js +1 -3
  88. package/dist/languages/pl-PL.min.js +1 -1
  89. package/editorManager.js +87 -15
  90. package/editorManager.mjs +87 -16
  91. package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
  92. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
  93. package/editors/dateEditor/dateEditor.js +7 -26
  94. package/editors/dateEditor/dateEditor.mjs +8 -27
  95. package/editors/handsontableEditor/handsontableEditor.js +1 -9
  96. package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
  97. package/editors/textEditor/textEditor.js +27 -19
  98. package/editors/textEditor/textEditor.mjs +30 -22
  99. package/helpers/dom/element.js +9 -188
  100. package/helpers/dom/element.mjs +9 -182
  101. package/helpers/mixed.js +1 -1
  102. package/helpers/mixed.mjs +1 -1
  103. package/helpers/number.d.ts +0 -1
  104. package/helpers/number.js +0 -18
  105. package/helpers/number.mjs +0 -17
  106. package/i18n/constants.js +1 -7
  107. package/i18n/constants.mjs +1 -4
  108. package/i18n/languages/en-US.js +1 -3
  109. package/i18n/languages/en-US.mjs +1 -3
  110. package/i18n/languages/pl-PL.js +1 -3
  111. package/i18n/languages/pl-PL.mjs +1 -3
  112. package/languages/all.js +2 -6
  113. package/languages/en-US.js +1 -3
  114. package/languages/en-US.mjs +1 -3
  115. package/languages/index.js +2 -6
  116. package/languages/pl-PL.js +1 -3
  117. package/languages/pl-PL.mjs +1 -3
  118. package/package.json +99 -116
  119. package/pluginHooks.d.ts +1 -12
  120. package/pluginHooks.js +1 -152
  121. package/pluginHooks.mjs +1 -152
  122. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
  123. package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
  124. package/plugins/columnSorting/columnSorting.js +0 -43
  125. package/plugins/columnSorting/columnSorting.mjs +3 -44
  126. package/plugins/columnSorting/index.js +1 -3
  127. package/plugins/columnSorting/index.mjs +1 -1
  128. package/plugins/comments/commentEditor.js +0 -1
  129. package/plugins/comments/commentEditor.mjs +0 -1
  130. package/plugins/comments/comments.js +189 -252
  131. package/plugins/comments/comments.mjs +190 -251
  132. package/plugins/contextMenu/commandExecutor.js +3 -2
  133. package/plugins/contextMenu/commandExecutor.mjs +3 -2
  134. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  135. package/plugins/contextMenu/contextMenu.js +36 -75
  136. package/plugins/contextMenu/contextMenu.mjs +35 -74
  137. package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
  138. package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
  139. package/plugins/contextMenu/itemsFactory.js +3 -2
  140. package/plugins/contextMenu/itemsFactory.mjs +4 -3
  141. package/plugins/contextMenu/{menu/menu.js → menu.js} +421 -145
  142. package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +422 -146
  143. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  144. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  145. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  146. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  147. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  148. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  149. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  150. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  151. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  152. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  153. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  154. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  155. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  156. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  157. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  158. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  159. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  160. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  161. package/plugins/contextMenu/{predefinedItems/index.js → predefinedItems.js} +14 -14
  162. package/plugins/contextMenu/predefinedItems.mjs +68 -0
  163. package/plugins/contextMenu/utils.js +151 -35
  164. package/plugins/contextMenu/utils.mjs +144 -35
  165. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  166. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  167. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  168. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  169. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  170. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  171. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  172. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  173. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  174. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  175. package/plugins/copyPaste/copyPaste.js +78 -127
  176. package/plugins/copyPaste/copyPaste.mjs +79 -128
  177. package/plugins/copyPaste/focusableElement.js +186 -0
  178. package/plugins/copyPaste/focusableElement.mjs +180 -0
  179. package/plugins/customBorders/customBorders.js +20 -23
  180. package/plugins/customBorders/customBorders.mjs +21 -24
  181. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  182. package/plugins/dropdownMenu/dropdownMenu.js +40 -127
  183. package/plugins/dropdownMenu/dropdownMenu.mjs +39 -126
  184. package/plugins/filters/component/_base.js +8 -23
  185. package/plugins/filters/component/_base.mjs +8 -23
  186. package/plugins/filters/component/actionBar.js +27 -29
  187. package/plugins/filters/component/actionBar.mjs +23 -26
  188. package/plugins/filters/component/condition.js +59 -46
  189. package/plugins/filters/component/condition.mjs +52 -40
  190. package/plugins/filters/component/operators.js +22 -21
  191. package/plugins/filters/component/operators.mjs +18 -18
  192. package/plugins/filters/component/value.js +26 -35
  193. package/plugins/filters/component/value.mjs +22 -32
  194. package/plugins/filters/constants.mjs +1 -1
  195. package/plugins/filters/filters.js +62 -106
  196. package/plugins/filters/filters.mjs +55 -99
  197. package/plugins/filters/ui/_base.js +13 -35
  198. package/plugins/filters/ui/_base.mjs +13 -35
  199. package/plugins/filters/ui/input.js +32 -43
  200. package/plugins/filters/ui/input.mjs +30 -42
  201. package/plugins/filters/ui/link.js +12 -44
  202. package/plugins/filters/ui/link.mjs +11 -44
  203. package/plugins/filters/ui/multipleSelect.js +129 -234
  204. package/plugins/filters/ui/multipleSelect.mjs +127 -232
  205. package/plugins/filters/ui/radioInput.js +18 -42
  206. package/plugins/filters/ui/radioInput.mjs +17 -42
  207. package/plugins/filters/ui/select.js +75 -144
  208. package/plugins/filters/ui/select.mjs +72 -142
  209. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  210. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  211. package/plugins/manualColumnMove/manualColumnMove.js +1 -3
  212. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
  213. package/plugins/mergeCells/mergeCells.js +16 -5
  214. package/plugins/mergeCells/mergeCells.mjs +16 -5
  215. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  216. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  217. package/plugins/nestedHeaders/nestedHeaders.js +10 -240
  218. package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
  219. package/plugins/nestedHeaders/stateManager/index.js +3 -102
  220. package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
  221. package/plugins/nestedRows/nestedRows.js +0 -41
  222. package/plugins/nestedRows/nestedRows.mjs +0 -41
  223. package/plugins/nestedRows/ui/headers.js +0 -11
  224. package/plugins/nestedRows/ui/headers.mjs +1 -12
  225. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
  226. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
  227. package/renderers/baseRenderer/baseRenderer.js +0 -17
  228. package/renderers/baseRenderer/baseRenderer.mjs +1 -18
  229. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
  230. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
  231. package/renderers/index.d.ts +0 -9
  232. package/selection/highlight/constants.js +15 -0
  233. package/selection/highlight/constants.mjs +6 -0
  234. package/selection/highlight/highlight.js +71 -256
  235. package/selection/highlight/highlight.mjs +71 -250
  236. package/selection/highlight/types/activeHeader.js +8 -10
  237. package/selection/highlight/types/activeHeader.mjs +8 -10
  238. package/selection/highlight/types/area.js +18 -6
  239. package/selection/highlight/types/area.mjs +18 -6
  240. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  241. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  242. package/selection/highlight/types/customSelection.js +9 -7
  243. package/selection/highlight/types/customSelection.mjs +9 -7
  244. package/selection/highlight/types/fill.js +7 -5
  245. package/selection/highlight/types/fill.mjs +7 -5
  246. package/selection/highlight/types/header.js +18 -9
  247. package/selection/highlight/types/header.mjs +18 -9
  248. package/selection/highlight/types/index.js +35 -0
  249. package/selection/highlight/types/index.mjs +31 -0
  250. package/selection/highlight/visualSelection.js +27 -31
  251. package/selection/highlight/visualSelection.mjs +27 -31
  252. package/selection/index.js +7 -4
  253. package/selection/index.mjs +3 -2
  254. package/selection/mouseEventHandler.js +1 -7
  255. package/selection/mouseEventHandler.mjs +1 -7
  256. package/selection/range.js +8 -8
  257. package/selection/range.mjs +8 -8
  258. package/selection/selection.js +152 -321
  259. package/selection/selection.mjs +151 -318
  260. package/selection/transformation.js +90 -232
  261. package/selection/transformation.mjs +90 -232
  262. package/selection/utils.js +21 -15
  263. package/selection/utils.mjs +21 -16
  264. package/settings.d.ts +0 -4
  265. package/shortcuts/context.js +4 -23
  266. package/shortcuts/context.mjs +5 -23
  267. package/shortcuts/manager.js +7 -25
  268. package/shortcuts/manager.mjs +7 -26
  269. package/shortcuts/recorder.js +3 -3
  270. package/shortcuts/recorder.mjs +3 -3
  271. package/shortcuts/utils.js +5 -19
  272. package/shortcuts/utils.mjs +4 -18
  273. package/tableView.js +13 -111
  274. package/tableView.mjs +14 -112
  275. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  276. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  277. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  278. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  279. package/3rdparty/walkontable/src/selection/index.js +0 -26
  280. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  281. package/3rdparty/walkontable/src/selection/manager.js +0 -274
  282. package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
  283. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  284. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  285. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  286. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  287. package/cellTypes/selectType/index.d.ts +0 -1
  288. package/cellTypes/selectType/index.js +0 -6
  289. package/cellTypes/selectType/index.mjs +0 -1
  290. package/cellTypes/selectType/selectType.d.ts +0 -14
  291. package/cellTypes/selectType/selectType.js +0 -13
  292. package/cellTypes/selectType/selectType.mjs +0 -8
  293. package/core/focusCatcher/focusDetector.js +0 -63
  294. package/core/focusCatcher/focusDetector.mjs +0 -59
  295. package/core/focusCatcher/index.js +0 -142
  296. package/core/focusCatcher/index.mjs +0 -138
  297. package/core/index.js +0 -9
  298. package/core/index.mjs +0 -1
  299. package/focusManager.d.ts +0 -12
  300. package/focusManager.js +0 -265
  301. package/focusManager.mjs +0 -261
  302. package/helpers/a11y.js +0 -79
  303. package/helpers/a11y.mjs +0 -38
  304. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  305. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  306. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  307. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  308. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  309. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  310. package/plugins/contextMenu/menu/defaultShortcutsList.js +0 -88
  311. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +0 -84
  312. package/plugins/contextMenu/menu/index.js +0 -9
  313. package/plugins/contextMenu/menu/index.mjs +0 -1
  314. package/plugins/contextMenu/menu/menuItemRenderer.js +0 -58
  315. package/plugins/contextMenu/menu/menuItemRenderer.mjs +0 -54
  316. package/plugins/contextMenu/menu/navigator.js +0 -27
  317. package/plugins/contextMenu/menu/navigator.mjs +0 -23
  318. package/plugins/contextMenu/menu/positioner.js +0 -213
  319. package/plugins/contextMenu/menu/positioner.mjs +0 -209
  320. package/plugins/contextMenu/menu/shortcuts.js +0 -114
  321. package/plugins/contextMenu/menu/shortcuts.mjs +0 -110
  322. package/plugins/contextMenu/menu/utils.js +0 -177
  323. package/plugins/contextMenu/menu/utils.mjs +0 -163
  324. package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
  325. package/plugins/filters/menu/focusController.js +0 -123
  326. package/plugins/filters/menu/focusController.mjs +0 -119
  327. package/plugins/filters/menu/focusNavigator.js +0 -30
  328. package/plugins/filters/menu/focusNavigator.mjs +0 -26
  329. package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
  330. package/renderers/dateRenderer/dateRenderer.js +0 -29
  331. package/renderers/dateRenderer/dateRenderer.mjs +0 -24
  332. package/renderers/dateRenderer/index.d.ts +0 -1
  333. package/renderers/dateRenderer/index.js +0 -6
  334. package/renderers/dateRenderer/index.mjs +0 -1
  335. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
  336. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
  337. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
  338. package/renderers/handsontableRenderer/index.d.ts +0 -1
  339. package/renderers/handsontableRenderer/index.js +0 -6
  340. package/renderers/handsontableRenderer/index.mjs +0 -1
  341. package/renderers/selectRenderer/index.d.ts +0 -1
  342. package/renderers/selectRenderer/index.js +0 -6
  343. package/renderers/selectRenderer/index.mjs +0 -1
  344. package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
  345. package/renderers/selectRenderer/selectRenderer.js +0 -27
  346. package/renderers/selectRenderer/selectRenderer.mjs +0 -22
  347. package/selection/highlight/types/areaLayered.js +0 -31
  348. package/selection/highlight/types/areaLayered.mjs +0 -26
  349. package/selection/highlight/types/column.js +0 -27
  350. package/selection/highlight/types/column.mjs +0 -22
  351. package/selection/highlight/types/row.js +0 -27
  352. package/selection/highlight/types/row.mjs +0 -22
  353. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  354. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  355. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  356. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  357. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  358. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  359. package/shortcutContexts/commands/editor/index.js +0 -16
  360. package/shortcutContexts/commands/editor/index.mjs +0 -12
  361. package/shortcutContexts/commands/editor/open.js +0 -27
  362. package/shortcutContexts/commands/editor/open.mjs +0 -23
  363. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  364. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  365. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  366. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  367. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
  368. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
  369. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  370. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  371. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  372. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  373. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  374. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  375. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  376. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  377. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  378. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  379. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  380. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  381. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  382. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  383. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  384. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  385. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  386. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  387. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  388. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  389. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  390. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  391. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  392. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  393. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
  394. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
  395. package/shortcutContexts/commands/index.js +0 -35
  396. package/shortcutContexts/commands/index.mjs +0 -31
  397. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  398. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  399. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
  400. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
  401. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  402. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  403. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  404. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  405. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  406. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  407. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  408. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  409. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  410. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  411. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  412. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  413. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  414. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  415. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  416. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  417. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  418. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  419. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  420. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  421. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  422. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  423. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  424. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  425. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  426. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  427. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  428. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  429. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
  430. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
  431. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  432. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  433. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
  434. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
  435. package/shortcutContexts/commands/selectAll.js +0 -12
  436. package/shortcutContexts/commands/selectAll.mjs +0 -8
  437. package/shortcutContexts/constants.js +0 -13
  438. package/shortcutContexts/constants.mjs +0 -8
  439. package/shortcutContexts/editor.js +0 -25
  440. package/shortcutContexts/editor.mjs +0 -21
  441. package/shortcutContexts/grid.js +0 -163
  442. package/shortcutContexts/grid.mjs +0 -159
  443. package/shortcutContexts/index.js +0 -24
  444. package/shortcutContexts/index.mjs +0 -11
  445. package/utils/paginator.js +0 -151
  446. package/utils/paginator.mjs +0 -147
@@ -4,41 +4,25 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
6
  var _element = require("../../helpers/dom/element");
7
- var _event = require("../../helpers/dom/event");
8
7
  var _object = require("../../helpers/object");
9
8
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
10
9
  var _base = require("../base");
11
10
  var _commentEditor = _interopRequireDefault(require("./commentEditor"));
12
- var _displaySwitch2 = _interopRequireDefault(require("./displaySwitch"));
13
- var _predefinedItems = require("../contextMenu/predefinedItems");
14
- var _addEditComment = _interopRequireDefault(require("./contextMenuItem/addEditComment"));
15
- var _removeComment = _interopRequireDefault(require("./contextMenuItem/removeComment"));
16
- var _readOnlyComment = _interopRequireDefault(require("./contextMenuItem/readOnlyComment"));
11
+ var _utils = require("../contextMenu/utils");
12
+ var _displaySwitch = _interopRequireDefault(require("./displaySwitch"));
13
+ var C = _interopRequireWildcard(require("../../i18n/constants"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ 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; }
17
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
19
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
20
- 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; }
21
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
22
- 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); }
23
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
24
- 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; } }
25
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
26
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
27
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
28
17
  const PLUGIN_KEY = 'comments';
29
18
  exports.PLUGIN_KEY = PLUGIN_KEY;
30
19
  const PLUGIN_PRIORITY = 60;
31
20
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
21
+ const privatePool = new WeakMap();
32
22
  const META_COMMENT = 'comment';
33
- exports.META_COMMENT = META_COMMENT;
34
23
  const META_COMMENT_VALUE = 'value';
35
- exports.META_COMMENT_VALUE = META_COMMENT_VALUE;
36
24
  const META_STYLE = 'style';
37
- exports.META_STYLE = META_STYLE;
38
25
  const META_READONLY = 'readOnly';
39
- exports.META_READONLY = META_READONLY;
40
- const SHORTCUTS_GROUP = PLUGIN_KEY;
41
- const SHORTCUTS_CONTEXT_NAME = `plugin:${PLUGIN_KEY}`;
42
26
 
43
27
  /* eslint-disable jsdoc/require-description-complete-sentence */
44
28
  /**
@@ -130,107 +114,55 @@ const SHORTCUTS_CONTEXT_NAME = `plugin:${PLUGIN_KEY}`;
130
114
  * ```
131
115
  * :::
132
116
  */
133
- var _editor = /*#__PURE__*/new WeakMap();
134
- var _displaySwitch = /*#__PURE__*/new WeakMap();
135
- var _preventEditorAutoSwitch = /*#__PURE__*/new WeakMap();
136
- var _preventEditorHiding = /*#__PURE__*/new WeakMap();
137
- var _tempEditorDimensions = /*#__PURE__*/new WeakMap();
138
- var _cellBelowCursor = /*#__PURE__*/new WeakMap();
139
- var _commentValueBeforeSave = /*#__PURE__*/new WeakMap();
140
117
  class Comments extends _base.BasePlugin {
141
- constructor() {
142
- super(...arguments);
143
- /**
144
- * Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
145
- *
146
- * @type {object}
147
- */
148
- _defineProperty(this, "range", {});
149
- /**
150
- * Instance of {@link EventManager}.
151
- *
152
- * @protected
153
- * @type {EventManager}
154
- */
155
- _defineProperty(this, "eventManager", null);
118
+ static get PLUGIN_KEY() {
119
+ return PLUGIN_KEY;
120
+ }
121
+ static get PLUGIN_PRIORITY() {
122
+ return PLUGIN_PRIORITY;
123
+ }
124
+ constructor(hotInstance) {
125
+ super(hotInstance);
156
126
  /**
157
127
  * Instance of {@link CommentEditor}.
158
128
  *
159
129
  * @private
160
130
  * @type {CommentEditor}
161
131
  */
162
- _classPrivateFieldInitSpec(this, _editor, {
163
- writable: true,
164
- value: null
165
- });
132
+ this.editor = null;
166
133
  /**
167
134
  * Instance of {@link DisplaySwitch}.
168
135
  *
169
136
  * @private
170
137
  * @type {DisplaySwitch}
171
138
  */
172
- _classPrivateFieldInitSpec(this, _displaySwitch, {
173
- writable: true,
174
- value: null
175
- });
139
+ this.displaySwitch = null;
176
140
  /**
177
- * Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
178
- *
179
- * @private
180
- * @type {boolean}
181
- */
182
- _classPrivateFieldInitSpec(this, _preventEditorAutoSwitch, {
183
- writable: true,
184
- value: false
185
- });
186
- /**
187
- * Prevents hiding editor when the table viewport is scrolled and that scroll is triggered by the
188
- * keyboard shortcut that insert or edits the comment.
141
+ * Instance of {@link EventManager}.
189
142
  *
190
143
  * @private
191
- * @type {boolean}
144
+ * @type {EventManager}
192
145
  */
193
- _classPrivateFieldInitSpec(this, _preventEditorHiding, {
194
- writable: true,
195
- value: false
196
- });
146
+ this.eventManager = null;
197
147
  /**
198
- * The property for holding editor dimensions for further processing.
148
+ * Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
199
149
  *
200
- * @private
201
150
  * @type {object}
202
151
  */
203
- _classPrivateFieldInitSpec(this, _tempEditorDimensions, {
204
- writable: true,
205
- value: {}
206
- });
152
+ this.range = {};
207
153
  /**
208
- * The flag that allows processing mousedown event correctly when comments editor is triggered.
154
+ * Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
209
155
  *
210
156
  * @private
211
157
  * @type {boolean}
212
158
  */
213
- _classPrivateFieldInitSpec(this, _cellBelowCursor, {
214
- writable: true,
215
- value: null
216
- });
217
- /**
218
- * Holds the comment value before it's actually saved to the cell meta.
219
- *
220
- * @private
221
- * @type {string}
222
- */
223
- _classPrivateFieldInitSpec(this, _commentValueBeforeSave, {
224
- writable: true,
225
- value: ''
159
+ this.preventEditorAutoSwitch = false;
160
+ privatePool.set(this, {
161
+ tempEditorDimensions: {},
162
+ cellBelowCursor: null
226
163
  });
227
164
  }
228
- static get PLUGIN_KEY() {
229
- return PLUGIN_KEY;
230
- }
231
- static get PLUGIN_PRIORITY() {
232
- return PLUGIN_PRIORITY;
233
- }
165
+
234
166
  /**
235
167
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
236
168
  * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
@@ -248,23 +180,22 @@ class Comments extends _base.BasePlugin {
248
180
  if (this.enabled) {
249
181
  return;
250
182
  }
251
- if (!_classPrivateFieldGet(this, _editor)) {
252
- _classPrivateFieldSet(this, _editor, new _commentEditor.default(this.hot.rootDocument, this.hot.isRtl()));
183
+ if (!this.editor) {
184
+ this.editor = new _commentEditor.default(this.hot.rootDocument, this.hot.isRtl());
253
185
  }
254
186
  if (!this.eventManager) {
255
187
  this.eventManager = new _eventManager.default(this);
256
188
  }
257
- if (!_classPrivateFieldGet(this, _displaySwitch)) {
258
- _classPrivateFieldSet(this, _displaySwitch, new _displaySwitch2.default(this.getDisplayDelaySetting()));
189
+ if (!this.displaySwitch) {
190
+ this.displaySwitch = new _displaySwitch.default(this.getDisplayDelaySetting());
259
191
  }
260
192
  this.addHook('afterContextMenuDefaultOptions', options => this.addToContextMenu(options));
261
193
  this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) => this.onAfterRenderer(TD, cellProperties));
262
- this.addHook('afterScroll', () => this.onAfterScroll());
194
+ this.addHook('afterScrollHorizontally', () => this.hide());
195
+ this.addHook('afterScrollVertically', () => this.hide());
263
196
  this.addHook('afterBeginEditing', () => this.hide());
264
- this.addHook('afterDocumentKeyDown', event => this.onAfterDocumentKeyDown(event));
265
- _classPrivateFieldGet(this, _displaySwitch).addLocalHook('hide', () => this.hide());
266
- _classPrivateFieldGet(this, _displaySwitch).addLocalHook('show', (row, col) => this.showAtCell(row, col));
267
- this.registerShortcuts();
197
+ this.displaySwitch.addLocalHook('hide', () => this.hide());
198
+ this.displaySwitch.addLocalHook('show', (row, col) => this.showAtCell(row, col));
268
199
  this.registerListeners();
269
200
  super.enablePlugin();
270
201
  }
@@ -276,85 +207,19 @@ class Comments extends _base.BasePlugin {
276
207
  * - [`comments`](@/api/options.md#comments)
277
208
  */
278
209
  updatePlugin() {
279
- _classPrivateFieldGet(this, _displaySwitch).updateDelay(this.getDisplayDelaySetting());
210
+ this.disablePlugin();
211
+ this.enablePlugin();
280
212
  super.updatePlugin();
213
+ this.displaySwitch.updateDelay(this.getDisplayDelaySetting());
281
214
  }
282
215
 
283
216
  /**
284
217
  * Disables the plugin functionality for this Handsontable instance.
285
218
  */
286
219
  disablePlugin() {
287
- this.unregisterShortcuts();
288
220
  super.disablePlugin();
289
221
  }
290
222
 
291
- /**
292
- * Register shortcuts responsible for toggling context menu.
293
- *
294
- * @private
295
- */
296
- registerShortcuts() {
297
- const manager = this.hot.getShortcutManager();
298
- const gridContext = manager.getContext('grid');
299
- const pluginContext = manager.addContext(SHORTCUTS_CONTEXT_NAME);
300
- gridContext.addShortcut({
301
- keys: [['Control', 'Alt', 'M']],
302
- callback: () => {
303
- const range = this.hot.getSelectedRangeLast();
304
- _classPrivateFieldSet(this, _preventEditorHiding, true);
305
- this.hot.scrollToFocusedCell(() => {
306
- this.setRange(range);
307
- this.show();
308
- this.focusEditor();
309
- manager.setActiveContextName(SHORTCUTS_CONTEXT_NAME);
310
- this.hot._registerTimeout(() => {
311
- _classPrivateFieldSet(this, _preventEditorHiding, false);
312
- });
313
- });
314
- },
315
- stopPropagation: true,
316
- runOnlyIf: () => {
317
- var _this$hot$getSelected;
318
- return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(this, _editor).isVisible();
319
- },
320
- group: SHORTCUTS_GROUP
321
- });
322
- pluginContext.addShortcut({
323
- keys: [['Escape']],
324
- callback: () => {
325
- _classPrivateFieldGet(this, _editor).setValue(_classPrivateFieldGet(this, _commentValueBeforeSave));
326
- this.hide();
327
- manager.setActiveContextName('grid');
328
- },
329
- runOnlyIf: () => {
330
- var _this$hot$getSelected2;
331
- return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(this, _editor).isVisible();
332
- },
333
- group: SHORTCUTS_GROUP
334
- });
335
- pluginContext.addShortcut({
336
- keys: [['Control/Meta', 'Enter']],
337
- callback: () => {
338
- this.hide();
339
- manager.setActiveContextName('grid');
340
- },
341
- runOnlyIf: () => {
342
- var _this$hot$getSelected3;
343
- return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(this, _editor).isVisible();
344
- },
345
- group: SHORTCUTS_GROUP
346
- });
347
- }
348
-
349
- /**
350
- * Unregister shortcuts responsible for toggling context menu.
351
- *
352
- * @private
353
- */
354
- unregisterShortcuts() {
355
- this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
356
- }
357
-
358
223
  /**
359
224
  * Registers all necessary DOM listeners.
360
225
  *
@@ -364,14 +229,12 @@ class Comments extends _base.BasePlugin {
364
229
  const {
365
230
  rootDocument
366
231
  } = this.hot;
367
- const editorElement = this.getEditorInputElement();
368
232
  this.eventManager.addEventListener(rootDocument, 'mouseover', event => this.onMouseOver(event));
369
233
  this.eventManager.addEventListener(rootDocument, 'mousedown', event => this.onMouseDown(event));
370
234
  this.eventManager.addEventListener(rootDocument, 'mouseup', () => this.onMouseUp());
371
- this.eventManager.addEventListener(editorElement, 'focus', () => this.onEditorFocus());
372
- this.eventManager.addEventListener(editorElement, 'blur', () => this.onEditorBlur());
373
- this.eventManager.addEventListener(editorElement, 'mousedown', event => this.onEditorMouseDown(event));
374
- this.eventManager.addEventListener(editorElement, 'mouseup', event => this.onEditorMouseUp(event));
235
+ this.eventManager.addEventListener(this.editor.getInputElement(), 'blur', () => this.onEditorBlur());
236
+ this.eventManager.addEventListener(this.editor.getInputElement(), 'mousedown', event => this.onEditorMouseDown(event));
237
+ this.eventManager.addEventListener(this.editor.getInputElement(), 'mouseup', event => this.onEditorMouseUp(event));
375
238
  }
376
239
 
377
240
  /**
@@ -410,7 +273,7 @@ class Comments extends _base.BasePlugin {
410
273
  * @returns {boolean}
411
274
  */
412
275
  targetIsCommentTextArea(event) {
413
- return this.getEditorInputElement() === event.target;
276
+ return this.editor.getInputElement() === event.target;
414
277
  }
415
278
 
416
279
  /**
@@ -422,7 +285,7 @@ class Comments extends _base.BasePlugin {
422
285
  if (!this.range.from) {
423
286
  throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
424
287
  }
425
- const editorValue = _classPrivateFieldGet(this, _editor).getValue();
288
+ const editorValue = this.editor.getValue();
426
289
  let comment = '';
427
290
  if (value !== null && value !== void 0) {
428
291
  comment = value;
@@ -511,7 +374,6 @@ class Comments extends _base.BasePlugin {
511
374
  * @returns {boolean} Returns `true` if comment editor was shown.
512
375
  */
513
376
  show() {
514
- var _ref;
515
377
  if (!this.range.from) {
516
378
  throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
517
379
  }
@@ -525,9 +387,8 @@ class Comments extends _base.BasePlugin {
525
387
  return false;
526
388
  }
527
389
  const meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);
528
- _classPrivateFieldGet(this, _displaySwitch).cancelHiding();
529
- _classPrivateFieldGet(this, _editor).setValue((_ref = meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null) !== null && _ref !== void 0 ? _ref : '');
530
- _classPrivateFieldGet(this, _editor).show();
390
+ this.editor.setValue(meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null || '');
391
+ this.editor.show();
531
392
  this.refreshEditor(true);
532
393
  return true;
533
394
  }
@@ -550,7 +411,7 @@ class Comments extends _base.BasePlugin {
550
411
  * Hides the comment editor.
551
412
  */
552
413
  hide() {
553
- _classPrivateFieldGet(this, _editor).hide();
414
+ this.editor.hide();
554
415
  }
555
416
 
556
417
  /**
@@ -561,7 +422,7 @@ class Comments extends _base.BasePlugin {
561
422
  refreshEditor() {
562
423
  var _renderableRow, _renderableColumn;
563
424
  let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
564
- if (!force && (!this.range.from || !_classPrivateFieldGet(this, _editor).isVisible())) {
425
+ if (!force && (!this.range.from || !this.editor.isVisible())) {
565
426
  return;
566
427
  }
567
428
  const {
@@ -579,7 +440,7 @@ class Comments extends _base.BasePlugin {
579
440
 
580
441
  // Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its
581
442
  // previous position
582
- _classPrivateFieldGet(this, _editor).setPosition(0, 0);
443
+ this.editor.setPosition(0, 0);
583
444
  if (renderableRow === null) {
584
445
  renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));
585
446
  }
@@ -607,9 +468,9 @@ class Comments extends _base.BasePlugin {
607
468
  }, true);
608
469
  const commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);
609
470
  if (commentStyle) {
610
- _classPrivateFieldGet(this, _editor).setSize(commentStyle.width, commentStyle.height);
471
+ this.editor.setSize(commentStyle.width, commentStyle.height);
611
472
  } else {
612
- _classPrivateFieldGet(this, _editor).resetSize();
473
+ this.editor.resetSize();
613
474
  }
614
475
  const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
615
476
  const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? (0, _element.outerHeight)(TD) : 0;
@@ -622,7 +483,7 @@ class Comments extends _base.BasePlugin {
622
483
  const {
623
484
  width: editorWidth,
624
485
  height: editorHeight
625
- } = _classPrivateFieldGet(this, _editor).getSize();
486
+ } = this.editor.getSize();
626
487
  const {
627
488
  innerWidth,
628
489
  innerHeight
@@ -643,15 +504,28 @@ class Comments extends _base.BasePlugin {
643
504
  if (top + editorHeight > innerHeight) {
644
505
  y -= editorHeight - cellHeight + 1;
645
506
  }
646
- _classPrivateFieldGet(this, _editor).setPosition(x, y);
647
- _classPrivateFieldGet(this, _editor).setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
507
+ this.editor.setPosition(x, y);
508
+ this.editor.setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
648
509
  }
649
510
 
650
511
  /**
651
- * Focuses the comments editor element.
512
+ * Checks if there is a comment for selected range.
513
+ *
514
+ * @private
515
+ * @returns {boolean}
652
516
  */
653
- focusEditor() {
654
- _classPrivateFieldGet(this, _editor).focus();
517
+ checkSelectionCommentsConsistency() {
518
+ const selected = this.hot.getSelectedRangeLast();
519
+ if (!selected) {
520
+ return false;
521
+ }
522
+ let hasComment = false;
523
+ const cell = selected.getTopStartCorner(); // IN EXCEL THERE IS COMMENT ONLY FOR TOP LEFT CELL IN SELECTION
524
+
525
+ if (this.getCommentMeta(cell.row, cell.col, META_COMMENT_VALUE)) {
526
+ hasComment = true;
527
+ }
528
+ return hasComment;
655
529
  }
656
530
 
657
531
  /**
@@ -699,7 +573,7 @@ class Comments extends _base.BasePlugin {
699
573
  if (!this.hot.view || !this.hot.view._wt) {
700
574
  return;
701
575
  }
702
- if (!_classPrivateFieldGet(this, _preventEditorAutoSwitch) && !this.targetIsCommentTextArea(event)) {
576
+ if (!this.preventEditorAutoSwitch && !this.targetIsCommentTextArea(event)) {
703
577
  const eventCell = (0, _element.closest)(event.target, 'TD', 'TBODY');
704
578
  let coordinates = null;
705
579
  if (eventCell) {
@@ -718,18 +592,19 @@ class Comments extends _base.BasePlugin {
718
592
  * @param {MouseEvent} event The `mouseover` event.
719
593
  */
720
594
  onMouseOver(event) {
595
+ const priv = privatePool.get(this);
721
596
  const {
722
597
  rootDocument
723
598
  } = this.hot;
724
- if (_classPrivateFieldGet(this, _preventEditorAutoSwitch) || _classPrivateFieldGet(this, _editor).isFocused() || (0, _element.hasClass)(event.target, 'wtBorder') || _classPrivateFieldGet(this, _cellBelowCursor) === event.target || !_classPrivateFieldGet(this, _editor)) {
599
+ if (this.preventEditorAutoSwitch || this.editor.isFocused() || (0, _element.hasClass)(event.target, 'wtBorder') || priv.cellBelowCursor === event.target || !this.editor) {
725
600
  return;
726
601
  }
727
- _classPrivateFieldSet(this, _cellBelowCursor, rootDocument.elementFromPoint(event.clientX, event.clientY));
602
+ priv.cellBelowCursor = rootDocument.elementFromPoint(event.clientX, event.clientY);
728
603
  if (this.targetIsCellWithComment(event)) {
729
604
  const range = this.hot._createCellRange(this.hot.getCoords(event.target));
730
- _classPrivateFieldGet(this, _displaySwitch).show(range);
605
+ this.displaySwitch.show(range);
731
606
  } else if ((0, _element.isChildOf)(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
732
- _classPrivateFieldGet(this, _displaySwitch).hide();
607
+ this.displaySwitch.hide();
733
608
  }
734
609
  }
735
610
 
@@ -739,7 +614,7 @@ class Comments extends _base.BasePlugin {
739
614
  * @private
740
615
  */
741
616
  onMouseUp() {
742
- _classPrivateFieldSet(this, _preventEditorAutoSwitch, false);
617
+ this.preventEditorAutoSwitch = false;
743
618
  }
744
619
 
745
620
  /**
@@ -756,29 +631,14 @@ class Comments extends _base.BasePlugin {
756
631
  }
757
632
 
758
633
  /**
759
- * Hook observer the "blur" event from the comments editor element. The hook clears the
760
- * editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
634
+ * `blur` event callback for the comment editor.
761
635
  *
762
636
  * @private
763
637
  */
764
638
  onEditorBlur() {
765
- _classPrivateFieldSet(this, _commentValueBeforeSave, '');
766
- this.hot.getShortcutManager().setActiveContextName('grid');
767
639
  this.setComment();
768
640
  }
769
641
 
770
- /**
771
- * Hook observer the "focus" event from the comments editor element. The hook takes the control of
772
- * the keyboard shortcuts by switching the context to plugins one.
773
- *
774
- * @private
775
- */
776
- onEditorFocus() {
777
- _classPrivateFieldSet(this, _commentValueBeforeSave, this.getComment());
778
- this.hot.listen();
779
- this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);
780
- }
781
-
782
642
  /**
783
643
  * `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
784
644
  *
@@ -786,10 +646,11 @@ class Comments extends _base.BasePlugin {
786
646
  * @param {MouseEvent} event The `mousedown` event.
787
647
  */
788
648
  onEditorMouseDown(event) {
789
- _classPrivateFieldSet(this, _tempEditorDimensions, {
649
+ const priv = privatePool.get(this);
650
+ priv.tempEditorDimensions = {
790
651
  width: (0, _element.outerWidth)(event.target),
791
652
  height: (0, _element.outerHeight)(event.target)
792
- });
653
+ };
793
654
  }
794
655
 
795
656
  /**
@@ -799,9 +660,10 @@ class Comments extends _base.BasePlugin {
799
660
  * @param {MouseEvent} event The `mouseup` event.
800
661
  */
801
662
  onEditorMouseUp(event) {
663
+ const priv = privatePool.get(this);
802
664
  const currentWidth = (0, _element.outerWidth)(event.target);
803
665
  const currentHeight = (0, _element.outerHeight)(event.target);
804
- if (currentWidth !== _classPrivateFieldGet(this, _tempEditorDimensions).width + 1 || currentHeight !== _classPrivateFieldGet(this, _tempEditorDimensions).height + 2) {
666
+ if (currentWidth !== priv.tempEditorDimensions.width + 1 || currentHeight !== priv.tempEditorDimensions.height + 2) {
805
667
  this.updateCommentMeta(this.range.from.row, this.range.from.col, {
806
668
  [META_STYLE]: {
807
669
  width: currentWidth,
@@ -812,36 +674,121 @@ class Comments extends _base.BasePlugin {
812
674
  }
813
675
 
814
676
  /**
815
- * Observes the pressed keys and if there is already opened the comment editor prevents open
816
- * the table editor into the fast edit mode.
677
+ * Context Menu's "Add comment" callback. Results in showing the comment editor.
817
678
  *
818
- * @param {Event} event The keydown event.
679
+ * @private
819
680
  */
820
- onAfterDocumentKeyDown(event) {
821
- if (_classPrivateFieldGet(this, _editor).isVisible()) {
822
- (0, _event.stopImmediatePropagation)(event);
823
- }
681
+ onContextMenuAddComment() {
682
+ const coords = this.hot.getSelectedRangeLast();
683
+ this.preventEditorAutoSwitch = true;
684
+ this.displaySwitch.cancelHiding();
685
+ this.setRange({
686
+ from: coords.highlight
687
+ });
688
+ this.show();
689
+ this.hot.deselectCell();
690
+ this.editor.focus();
824
691
  }
825
692
 
826
693
  /**
827
- * Observes the changes in the scroll position if triggered it hides the comment editor.
694
+ * Context Menu's "remove comment" callback.
695
+ *
696
+ * @private
828
697
  */
829
- onAfterScroll() {
830
- if (!_classPrivateFieldGet(this, _preventEditorHiding)) {
831
- this.hide();
832
- }
698
+ onContextMenuRemoveComment() {
699
+ const coords = this.hot.getSelectedRangeLast();
700
+ this.preventEditorAutoSwitch = true;
701
+ coords.forAll((row, column) => {
702
+ if (row >= 0 && column >= 0) {
703
+ this.removeCommentAtCell(row, column, false);
704
+ }
705
+ });
706
+ this.hot.render();
833
707
  }
834
708
 
835
709
  /**
836
- * Add Comments plugin options to the Context Menu.
710
+ * Context Menu's "make comment read-only" callback.
837
711
  *
838
712
  * @private
839
- * @param {object} options The menu options.
840
713
  */
841
- addToContextMenu(options) {
842
- options.items.push({
843
- name: _predefinedItems.SEPARATOR
844
- }, (0, _addEditComment.default)(this), (0, _removeComment.default)(this), (0, _readOnlyComment.default)(this));
714
+ onContextMenuMakeReadOnly() {
715
+ const coords = this.hot.getSelectedRangeLast();
716
+ this.preventEditorAutoSwitch = true;
717
+ coords.forAll((row, column) => {
718
+ if (row >= 0 && column >= 0) {
719
+ const currentState = !!this.getCommentMeta(row, column, META_READONLY);
720
+ this.updateCommentMeta(row, column, {
721
+ [META_READONLY]: !currentState
722
+ });
723
+ }
724
+ });
725
+ }
726
+
727
+ /**
728
+ * Add Comments plugin options to the Context Menu.
729
+ *
730
+ * @private
731
+ * @param {object} defaultOptions The menu options.
732
+ */
733
+ addToContextMenu(defaultOptions) {
734
+ const isThereAnyCellRendered = () => {
735
+ return this.hot.rowIndexMapper.getRenderableIndexesLength() > 0 && this.hot.columnIndexMapper.getRenderableIndexesLength() > 0;
736
+ };
737
+ defaultOptions.items.push({
738
+ name: '---------'
739
+ }, {
740
+ key: 'commentsAddEdit',
741
+ name: () => {
742
+ if (this.checkSelectionCommentsConsistency()) {
743
+ return this.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_EDIT_COMMENT);
744
+ }
745
+ return this.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ADD_COMMENT);
746
+ },
747
+ callback: () => this.onContextMenuAddComment(),
748
+ disabled: () => {
749
+ if (!isThereAnyCellRendered()) {
750
+ return true;
751
+ }
752
+ return !(this.hot.getSelectedLast() && !this.hot.selection.isSelectedByCorner());
753
+ }
754
+ }, {
755
+ key: 'commentsRemove',
756
+ name() {
757
+ return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COMMENT);
758
+ },
759
+ callback: () => this.onContextMenuRemoveComment(),
760
+ disabled: () => {
761
+ if (!isThereAnyCellRendered()) {
762
+ return true;
763
+ }
764
+ return !(this.hot.getSelectedLast() && !this.hot.selection.isSelectedByCorner());
765
+ }
766
+ }, {
767
+ key: 'commentsReadOnly',
768
+ name() {
769
+ let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT);
770
+ const hasProperty = (0, _utils.checkSelectionConsistency)(this.getSelectedRangeLast(), (row, col) => {
771
+ let readOnlyProperty = this.getCellMeta(row, col)[META_COMMENT];
772
+ if (readOnlyProperty) {
773
+ readOnlyProperty = readOnlyProperty[META_READONLY];
774
+ }
775
+ if (readOnlyProperty) {
776
+ return true;
777
+ }
778
+ });
779
+ if (hasProperty) {
780
+ label = (0, _utils.markLabelAsSelected)(label);
781
+ }
782
+ return label;
783
+ },
784
+ callback: () => this.onContextMenuMakeReadOnly(),
785
+ disabled: () => {
786
+ if (!isThereAnyCellRendered()) {
787
+ return true;
788
+ }
789
+ return !(this.hot.getSelectedLast() && !this.hot.selection.isSelectedByCorner()) || !this.checkSelectionCommentsConsistency();
790
+ }
791
+ });
845
792
  }
846
793
 
847
794
  /**
@@ -857,25 +804,15 @@ class Comments extends _base.BasePlugin {
857
804
  }
858
805
  }
859
806
 
860
- /**
861
- * Gets the editors input element.
862
- *
863
- * @private
864
- * @returns {HTMLTextAreaElement}
865
- */
866
- getEditorInputElement() {
867
- return _classPrivateFieldGet(this, _editor).getInputElement();
868
- }
869
-
870
807
  /**
871
808
  * Destroys the plugin instance.
872
809
  */
873
810
  destroy() {
874
- if (_classPrivateFieldGet(this, _editor)) {
875
- _classPrivateFieldGet(this, _editor).destroy();
811
+ if (this.editor) {
812
+ this.editor.destroy();
876
813
  }
877
- if (_classPrivateFieldGet(this, _displaySwitch)) {
878
- _classPrivateFieldGet(this, _displaySwitch).destroy();
814
+ if (this.displaySwitch) {
815
+ this.displaySwitch.destroy();
879
816
  }
880
817
  super.destroy();
881
818
  }