handsontable 0.0.0-next-08765b9-20230714 → 0.0.0-next-f8ea07b-20230714
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.
- package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
- package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
- package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
- package/3rdparty/walkontable/src/cell/coords.js +11 -50
- package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
- package/3rdparty/walkontable/src/cell/range.js +7 -38
- package/3rdparty/walkontable/src/cell/range.mjs +7 -38
- package/3rdparty/walkontable/src/core/_base.js +3 -9
- package/3rdparty/walkontable/src/core/_base.mjs +3 -9
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +2 -3
- package/3rdparty/walkontable/src/core/core.mjs +2 -3
- package/3rdparty/walkontable/src/event.js +7 -7
- package/3rdparty/walkontable/src/event.mjs +7 -7
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +2 -10
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
- package/3rdparty/walkontable/src/overlay/top.js +6 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
- package/3rdparty/walkontable/src/selection.js +295 -0
- package/3rdparty/walkontable/src/selection.mjs +290 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
- package/3rdparty/walkontable/src/table.js +78 -6
- package/3rdparty/walkontable/src/table.mjs +79 -7
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.d.ts +3 -6
- package/core.js +290 -173
- package/core.mjs +290 -173
- package/dataMap/metaManager/metaSchema.js +0 -41
- package/dataMap/metaManager/metaSchema.mjs +0 -41
- package/dist/handsontable.css +3 -19
- package/dist/handsontable.full.css +3 -19
- package/dist/handsontable.full.js +5369 -8671
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +8117 -11419
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +19 -19
- package/editorManager.js +75 -11
- package/editorManager.mjs +74 -11
- package/editors/textEditor/textEditor.js +11 -3
- package/editors/textEditor/textEditor.mjs +12 -4
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +0 -1
- package/helpers/number.js +0 -18
- package/helpers/number.mjs +0 -17
- package/package.json +1 -1
- package/pluginHooks.d.ts +1 -7
- package/pluginHooks.js +1 -106
- package/pluginHooks.mjs +1 -106
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -58
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -58
- package/plugins/columnSorting/columnSorting.js +0 -38
- package/plugins/columnSorting/columnSorting.mjs +2 -38
- package/plugins/columnSorting/index.js +1 -3
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +0 -1
- package/plugins/comments/commentEditor.mjs +0 -1
- package/plugins/comments/comments.js +189 -251
- package/plugins/comments/comments.mjs +190 -250
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +30 -72
- package/plugins/contextMenu/contextMenu.mjs +31 -73
- package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
- package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
- package/plugins/contextMenu/utils.js +16 -28
- package/plugins/contextMenu/utils.mjs +15 -27
- package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
- package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
- package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
- package/plugins/copyPaste/copyPaste.js +2 -6
- package/plugins/copyPaste/copyPaste.mjs +2 -6
- package/plugins/customBorders/customBorders.js +20 -23
- package/plugins/customBorders/customBorders.mjs +21 -24
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +32 -89
- package/plugins/dropdownMenu/dropdownMenu.mjs +32 -89
- package/plugins/filters/filters.js +14 -31
- package/plugins/filters/filters.mjs +13 -30
- package/plugins/mergeCells/mergeCells.js +16 -5
- package/plugins/mergeCells/mergeCells.mjs +16 -5
- package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
- package/plugins/nestedHeaders/nestedHeaders.js +8 -121
- package/plugins/nestedHeaders/nestedHeaders.mjs +8 -121
- package/plugins/nestedHeaders/stateManager/index.js +0 -37
- package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
- package/plugins/nestedRows/nestedRows.js +0 -41
- package/plugins/nestedRows/nestedRows.mjs +0 -41
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/constants.js +15 -0
- package/selection/highlight/constants.mjs +6 -0
- package/selection/highlight/highlight.js +71 -256
- package/selection/highlight/highlight.mjs +71 -250
- package/selection/highlight/types/activeHeader.js +8 -10
- package/selection/highlight/types/activeHeader.mjs +8 -10
- package/selection/highlight/types/area.js +18 -6
- package/selection/highlight/types/area.mjs +18 -6
- package/selection/highlight/types/{focus.js → cell.js} +7 -5
- package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
- package/selection/highlight/types/customSelection.js +9 -7
- package/selection/highlight/types/customSelection.mjs +9 -7
- package/selection/highlight/types/fill.js +7 -5
- package/selection/highlight/types/fill.mjs +7 -5
- package/selection/highlight/types/header.js +18 -9
- package/selection/highlight/types/header.mjs +18 -9
- package/selection/highlight/types/index.js +35 -0
- package/selection/highlight/types/index.mjs +31 -0
- package/selection/highlight/visualSelection.js +27 -31
- package/selection/highlight/visualSelection.mjs +27 -31
- package/selection/index.js +7 -4
- package/selection/index.mjs +3 -2
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +154 -290
- package/selection/selection.mjs +153 -287
- package/selection/transformation.js +90 -232
- package/selection/transformation.mjs +90 -232
- package/selection/utils.js +21 -15
- package/selection/utils.mjs +21 -16
- package/settings.d.ts +0 -2
- package/shortcuts/manager.js +0 -2
- package/shortcuts/manager.mjs +0 -2
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +5 -19
- package/shortcuts/utils.mjs +4 -18
- package/tableView.js +13 -67
- package/tableView.mjs +13 -67
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/selection/constants.js +0 -62
- package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
- package/3rdparty/walkontable/src/selection/index.js +0 -26
- package/3rdparty/walkontable/src/selection/index.mjs +0 -5
- package/3rdparty/walkontable/src/selection/manager.js +0 -259
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -254
- package/3rdparty/walkontable/src/selection/scanner.js +0 -270
- package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
- package/3rdparty/walkontable/src/selection/selection.js +0 -101
- package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
- package/core/focusCatcher/focusDetector.js +0 -58
- package/core/focusCatcher/focusDetector.mjs +0 -54
- package/core/focusCatcher/index.js +0 -142
- package/core/focusCatcher/index.mjs +0 -138
- package/core/index.js +0 -9
- package/core/index.mjs +0 -1
- package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
- package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
- package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
- package/plugins/comments/contextMenuItem/removeComment.js +0 -38
- package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
- package/selection/highlight/types/areaLayered.js +0 -31
- package/selection/highlight/types/areaLayered.mjs +0 -26
- package/selection/highlight/types/column.js +0 -27
- package/selection/highlight/types/column.mjs +0 -22
- package/selection/highlight/types/row.js +0 -27
- package/selection/highlight/types/row.mjs +0 -22
- package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
- package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
- package/shortcutContexts/commands/editor/fastOpen.js +0 -16
- package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
- package/shortcutContexts/commands/editor/index.js +0 -16
- package/shortcutContexts/commands/editor/index.mjs +0 -12
- package/shortcutContexts/commands/editor/open.js +0 -27
- package/shortcutContexts/commands/editor/open.mjs +0 -23
- package/shortcutContexts/commands/emptySelectedCells.js +0 -11
- package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
- package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -17
- package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
- package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -17
- package/shortcutContexts/commands/index.js +0 -35
- package/shortcutContexts/commands/index.mjs +0 -31
- package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -31
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -27
- package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
- package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -31
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -27
- package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
- package/shortcutContexts/commands/scrollToFocusedCell.js +0 -36
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -32
- package/shortcutContexts/commands/selectAll.js +0 -10
- package/shortcutContexts/commands/selectAll.mjs +0 -6
- package/shortcutContexts/constants.js +0 -13
- package/shortcutContexts/constants.mjs +0 -8
- package/shortcutContexts/editor.js +0 -25
- package/shortcutContexts/editor.mjs +0 -21
- package/shortcutContexts/grid.js +0 -163
- package/shortcutContexts/grid.mjs +0 -159
- package/shortcutContexts/index.js +0 -24
- package/shortcutContexts/index.mjs +0 -11
@@ -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
|
13
|
-
var
|
14
|
-
var
|
15
|
-
var
|
16
|
-
var
|
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
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
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
|
-
|
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
|
-
|
173
|
-
writable: true,
|
174
|
-
value: null
|
175
|
-
});
|
139
|
+
this.displaySwitch = null;
|
176
140
|
/**
|
177
|
-
*
|
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 {
|
144
|
+
* @type {EventManager}
|
192
145
|
*/
|
193
|
-
|
194
|
-
writable: true,
|
195
|
-
value: false
|
196
|
-
});
|
146
|
+
this.eventManager = null;
|
197
147
|
/**
|
198
|
-
*
|
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
|
-
|
204
|
-
writable: true,
|
205
|
-
value: {}
|
206
|
-
});
|
152
|
+
this.range = {};
|
207
153
|
/**
|
208
|
-
*
|
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
|
-
|
214
|
-
|
215
|
-
|
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
|
-
|
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 (!
|
252
|
-
|
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 (!
|
258
|
-
|
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('
|
194
|
+
this.addHook('afterScrollHorizontally', () => this.hide());
|
195
|
+
this.addHook('afterScrollVertically', () => this.hide());
|
263
196
|
this.addHook('afterBeginEditing', () => this.hide());
|
264
|
-
this.
|
265
|
-
|
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
|
-
|
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(
|
372
|
-
this.eventManager.addEventListener(
|
373
|
-
this.eventManager.addEventListener(
|
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.
|
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 =
|
288
|
+
const editorValue = this.editor.getValue();
|
426
289
|
let comment = '';
|
427
290
|
if (value !== null && value !== void 0) {
|
428
291
|
comment = value;
|
@@ -524,9 +387,8 @@ class Comments extends _base.BasePlugin {
|
|
524
387
|
return false;
|
525
388
|
}
|
526
389
|
const meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);
|
527
|
-
|
528
|
-
|
529
|
-
_classPrivateFieldGet(this, _editor).show();
|
390
|
+
this.editor.setValue(meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null || '');
|
391
|
+
this.editor.show();
|
530
392
|
this.refreshEditor(true);
|
531
393
|
return true;
|
532
394
|
}
|
@@ -549,7 +411,7 @@ class Comments extends _base.BasePlugin {
|
|
549
411
|
* Hides the comment editor.
|
550
412
|
*/
|
551
413
|
hide() {
|
552
|
-
|
414
|
+
this.editor.hide();
|
553
415
|
}
|
554
416
|
|
555
417
|
/**
|
@@ -560,7 +422,7 @@ class Comments extends _base.BasePlugin {
|
|
560
422
|
refreshEditor() {
|
561
423
|
var _renderableRow, _renderableColumn;
|
562
424
|
let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
563
|
-
if (!force && (!this.range.from || !
|
425
|
+
if (!force && (!this.range.from || !this.editor.isVisible())) {
|
564
426
|
return;
|
565
427
|
}
|
566
428
|
const {
|
@@ -578,7 +440,7 @@ class Comments extends _base.BasePlugin {
|
|
578
440
|
|
579
441
|
// Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its
|
580
442
|
// previous position
|
581
|
-
|
443
|
+
this.editor.setPosition(0, 0);
|
582
444
|
if (renderableRow === null) {
|
583
445
|
renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));
|
584
446
|
}
|
@@ -606,9 +468,9 @@ class Comments extends _base.BasePlugin {
|
|
606
468
|
}, true);
|
607
469
|
const commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);
|
608
470
|
if (commentStyle) {
|
609
|
-
|
471
|
+
this.editor.setSize(commentStyle.width, commentStyle.height);
|
610
472
|
} else {
|
611
|
-
|
473
|
+
this.editor.resetSize();
|
612
474
|
}
|
613
475
|
const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
|
614
476
|
const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? (0, _element.outerHeight)(TD) : 0;
|
@@ -621,7 +483,7 @@ class Comments extends _base.BasePlugin {
|
|
621
483
|
const {
|
622
484
|
width: editorWidth,
|
623
485
|
height: editorHeight
|
624
|
-
} =
|
486
|
+
} = this.editor.getSize();
|
625
487
|
const {
|
626
488
|
innerWidth,
|
627
489
|
innerHeight
|
@@ -642,15 +504,28 @@ class Comments extends _base.BasePlugin {
|
|
642
504
|
if (top + editorHeight > innerHeight) {
|
643
505
|
y -= editorHeight - cellHeight + 1;
|
644
506
|
}
|
645
|
-
|
646
|
-
|
507
|
+
this.editor.setPosition(x, y);
|
508
|
+
this.editor.setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
|
647
509
|
}
|
648
510
|
|
649
511
|
/**
|
650
|
-
*
|
512
|
+
* Checks if there is a comment for selected range.
|
513
|
+
*
|
514
|
+
* @private
|
515
|
+
* @returns {boolean}
|
651
516
|
*/
|
652
|
-
|
653
|
-
|
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;
|
654
529
|
}
|
655
530
|
|
656
531
|
/**
|
@@ -698,7 +573,7 @@ class Comments extends _base.BasePlugin {
|
|
698
573
|
if (!this.hot.view || !this.hot.view._wt) {
|
699
574
|
return;
|
700
575
|
}
|
701
|
-
if (!
|
576
|
+
if (!this.preventEditorAutoSwitch && !this.targetIsCommentTextArea(event)) {
|
702
577
|
const eventCell = (0, _element.closest)(event.target, 'TD', 'TBODY');
|
703
578
|
let coordinates = null;
|
704
579
|
if (eventCell) {
|
@@ -717,18 +592,19 @@ class Comments extends _base.BasePlugin {
|
|
717
592
|
* @param {MouseEvent} event The `mouseover` event.
|
718
593
|
*/
|
719
594
|
onMouseOver(event) {
|
595
|
+
const priv = privatePool.get(this);
|
720
596
|
const {
|
721
597
|
rootDocument
|
722
598
|
} = this.hot;
|
723
|
-
if (
|
599
|
+
if (this.preventEditorAutoSwitch || this.editor.isFocused() || (0, _element.hasClass)(event.target, 'wtBorder') || priv.cellBelowCursor === event.target || !this.editor) {
|
724
600
|
return;
|
725
601
|
}
|
726
|
-
|
602
|
+
priv.cellBelowCursor = rootDocument.elementFromPoint(event.clientX, event.clientY);
|
727
603
|
if (this.targetIsCellWithComment(event)) {
|
728
604
|
const range = this.hot._createCellRange(this.hot.getCoords(event.target));
|
729
|
-
|
605
|
+
this.displaySwitch.show(range);
|
730
606
|
} else if ((0, _element.isChildOf)(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
|
731
|
-
|
607
|
+
this.displaySwitch.hide();
|
732
608
|
}
|
733
609
|
}
|
734
610
|
|
@@ -738,7 +614,7 @@ class Comments extends _base.BasePlugin {
|
|
738
614
|
* @private
|
739
615
|
*/
|
740
616
|
onMouseUp() {
|
741
|
-
|
617
|
+
this.preventEditorAutoSwitch = false;
|
742
618
|
}
|
743
619
|
|
744
620
|
/**
|
@@ -755,29 +631,14 @@ class Comments extends _base.BasePlugin {
|
|
755
631
|
}
|
756
632
|
|
757
633
|
/**
|
758
|
-
*
|
759
|
-
* editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
|
634
|
+
* `blur` event callback for the comment editor.
|
760
635
|
*
|
761
636
|
* @private
|
762
637
|
*/
|
763
638
|
onEditorBlur() {
|
764
|
-
_classPrivateFieldSet(this, _commentValueBeforeSave, '');
|
765
|
-
this.hot.getShortcutManager().setActiveContextName('grid');
|
766
639
|
this.setComment();
|
767
640
|
}
|
768
641
|
|
769
|
-
/**
|
770
|
-
* Hook observer the "focus" event from the comments editor element. The hook takes the control of
|
771
|
-
* the keyboard shortcuts by switching the context to plugins one.
|
772
|
-
*
|
773
|
-
* @private
|
774
|
-
*/
|
775
|
-
onEditorFocus() {
|
776
|
-
_classPrivateFieldSet(this, _commentValueBeforeSave, this.getComment());
|
777
|
-
this.hot.listen();
|
778
|
-
this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);
|
779
|
-
}
|
780
|
-
|
781
642
|
/**
|
782
643
|
* `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
|
783
644
|
*
|
@@ -785,10 +646,11 @@ class Comments extends _base.BasePlugin {
|
|
785
646
|
* @param {MouseEvent} event The `mousedown` event.
|
786
647
|
*/
|
787
648
|
onEditorMouseDown(event) {
|
788
|
-
|
649
|
+
const priv = privatePool.get(this);
|
650
|
+
priv.tempEditorDimensions = {
|
789
651
|
width: (0, _element.outerWidth)(event.target),
|
790
652
|
height: (0, _element.outerHeight)(event.target)
|
791
|
-
}
|
653
|
+
};
|
792
654
|
}
|
793
655
|
|
794
656
|
/**
|
@@ -798,9 +660,10 @@ class Comments extends _base.BasePlugin {
|
|
798
660
|
* @param {MouseEvent} event The `mouseup` event.
|
799
661
|
*/
|
800
662
|
onEditorMouseUp(event) {
|
663
|
+
const priv = privatePool.get(this);
|
801
664
|
const currentWidth = (0, _element.outerWidth)(event.target);
|
802
665
|
const currentHeight = (0, _element.outerHeight)(event.target);
|
803
|
-
if (currentWidth !==
|
666
|
+
if (currentWidth !== priv.tempEditorDimensions.width + 1 || currentHeight !== priv.tempEditorDimensions.height + 2) {
|
804
667
|
this.updateCommentMeta(this.range.from.row, this.range.from.col, {
|
805
668
|
[META_STYLE]: {
|
806
669
|
width: currentWidth,
|
@@ -811,36 +674,121 @@ class Comments extends _base.BasePlugin {
|
|
811
674
|
}
|
812
675
|
|
813
676
|
/**
|
814
|
-
*
|
815
|
-
* the table editor into the fast edit mode.
|
677
|
+
* Context Menu's "Add comment" callback. Results in showing the comment editor.
|
816
678
|
*
|
817
|
-
* @
|
679
|
+
* @private
|
818
680
|
*/
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
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();
|
823
691
|
}
|
824
692
|
|
825
693
|
/**
|
826
|
-
*
|
694
|
+
* Context Menu's "remove comment" callback.
|
695
|
+
*
|
696
|
+
* @private
|
827
697
|
*/
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
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();
|
832
707
|
}
|
833
708
|
|
834
709
|
/**
|
835
|
-
*
|
710
|
+
* Context Menu's "make comment read-only" callback.
|
836
711
|
*
|
837
712
|
* @private
|
838
|
-
* @param {object} options The menu options.
|
839
713
|
*/
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
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
|
+
});
|
844
792
|
}
|
845
793
|
|
846
794
|
/**
|
@@ -856,25 +804,15 @@ class Comments extends _base.BasePlugin {
|
|
856
804
|
}
|
857
805
|
}
|
858
806
|
|
859
|
-
/**
|
860
|
-
* Gets the editors input element.
|
861
|
-
*
|
862
|
-
* @private
|
863
|
-
* @returns {HTMLTextAreaElement}
|
864
|
-
*/
|
865
|
-
getEditorInputElement() {
|
866
|
-
return _classPrivateFieldGet(this, _editor).getInputElement();
|
867
|
-
}
|
868
|
-
|
869
807
|
/**
|
870
808
|
* Destroys the plugin instance.
|
871
809
|
*/
|
872
810
|
destroy() {
|
873
|
-
if (
|
874
|
-
|
811
|
+
if (this.editor) {
|
812
|
+
this.editor.destroy();
|
875
813
|
}
|
876
|
-
if (
|
877
|
-
|
814
|
+
if (this.displaySwitch) {
|
815
|
+
this.displaySwitch.destroy();
|
878
816
|
}
|
879
817
|
super.destroy();
|
880
818
|
}
|