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.
- 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 +10 -12
- package/3rdparty/walkontable/src/event.mjs +10 -12
- 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 +2 -13
- package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
- 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/renderer/cells.js +0 -10
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
- package/3rdparty/walkontable/src/renderer/rows.js +0 -13
- package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
- package/3rdparty/walkontable/src/renderer/table.js +0 -9
- package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
- package/3rdparty/walkontable/src/scroll.js +0 -2
- package/3rdparty/walkontable/src/scroll.mjs +0 -2
- package/3rdparty/walkontable/src/selection.js +295 -0
- package/3rdparty/walkontable/src/selection.mjs +290 -0
- package/3rdparty/walkontable/src/settings.js +4 -13
- package/3rdparty/walkontable/src/settings.mjs +4 -13
- 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 -19
- package/3rdparty/walkontable/src/table.mjs +79 -20
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/dateType/dateType.d.ts +3 -3
- package/cellTypes/dateType/dateType.js +2 -2
- package/cellTypes/dateType/dateType.mjs +2 -2
- package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
- package/cellTypes/handsontableType/handsontableType.js +2 -2
- package/cellTypes/handsontableType/handsontableType.mjs +2 -2
- package/cellTypes/index.d.ts +0 -3
- package/cellTypes/index.js +0 -4
- package/cellTypes/index.mjs +1 -3
- package/core.d.ts +4 -9
- package/core.js +327 -285
- package/core.mjs +327 -285
- package/dataMap/metaManager/metaSchema.js +0 -65
- package/dataMap/metaManager/metaSchema.mjs +0 -65
- package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
- package/dataMap/replaceData.js +0 -5
- package/dataMap/replaceData.mjs +0 -5
- package/dist/handsontable.css +15 -51
- package/dist/handsontable.full.css +15 -51
- package/dist/handsontable.full.js +8668 -14188
- package/dist/handsontable.full.min.css +7 -7
- package/dist/handsontable.full.min.js +136 -136
- package/dist/handsontable.js +22829 -28349
- package/dist/handsontable.min.css +6 -6
- package/dist/handsontable.min.js +24 -24
- package/dist/languages/all.js +2 -6
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/en-US.js +1 -3
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/pl-PL.js +1 -3
- package/dist/languages/pl-PL.min.js +1 -1
- package/editorManager.js +87 -15
- package/editorManager.mjs +87 -16
- package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
- package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
- package/editors/dateEditor/dateEditor.js +7 -26
- package/editors/dateEditor/dateEditor.mjs +8 -27
- package/editors/handsontableEditor/handsontableEditor.js +1 -9
- package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
- package/editors/textEditor/textEditor.js +27 -19
- package/editors/textEditor/textEditor.mjs +30 -22
- package/helpers/dom/element.js +9 -188
- package/helpers/dom/element.mjs +9 -182
- 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/i18n/constants.js +1 -7
- package/i18n/constants.mjs +1 -4
- package/i18n/languages/en-US.js +1 -3
- package/i18n/languages/en-US.mjs +1 -3
- package/i18n/languages/pl-PL.js +1 -3
- package/i18n/languages/pl-PL.mjs +1 -3
- package/languages/all.js +2 -6
- package/languages/en-US.js +1 -3
- package/languages/en-US.mjs +1 -3
- package/languages/index.js +2 -6
- package/languages/pl-PL.js +1 -3
- package/languages/pl-PL.mjs +1 -3
- package/package.json +99 -116
- package/pluginHooks.d.ts +1 -12
- package/pluginHooks.js +1 -152
- package/pluginHooks.mjs +1 -152
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
- package/plugins/columnSorting/columnSorting.js +0 -43
- package/plugins/columnSorting/columnSorting.mjs +3 -44
- 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 -252
- package/plugins/comments/comments.mjs +190 -251
- package/plugins/contextMenu/commandExecutor.js +3 -2
- package/plugins/contextMenu/commandExecutor.mjs +3 -2
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +36 -75
- package/plugins/contextMenu/contextMenu.mjs +35 -74
- package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
- package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
- package/plugins/contextMenu/itemsFactory.js +3 -2
- package/plugins/contextMenu/itemsFactory.mjs +4 -3
- package/plugins/contextMenu/{menu/menu.js → menu.js} +421 -145
- package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +422 -146
- 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/{predefinedItems/index.js → predefinedItems.js} +14 -14
- package/plugins/contextMenu/predefinedItems.mjs +68 -0
- package/plugins/contextMenu/utils.js +151 -35
- package/plugins/contextMenu/utils.mjs +144 -35
- 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 +78 -127
- package/plugins/copyPaste/copyPaste.mjs +79 -128
- package/plugins/copyPaste/focusableElement.js +186 -0
- package/plugins/copyPaste/focusableElement.mjs +180 -0
- 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 +40 -127
- package/plugins/dropdownMenu/dropdownMenu.mjs +39 -126
- package/plugins/filters/component/_base.js +8 -23
- package/plugins/filters/component/_base.mjs +8 -23
- package/plugins/filters/component/actionBar.js +27 -29
- package/plugins/filters/component/actionBar.mjs +23 -26
- package/plugins/filters/component/condition.js +59 -46
- package/plugins/filters/component/condition.mjs +52 -40
- package/plugins/filters/component/operators.js +22 -21
- package/plugins/filters/component/operators.mjs +18 -18
- package/plugins/filters/component/value.js +26 -35
- package/plugins/filters/component/value.mjs +22 -32
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/filters.js +62 -106
- package/plugins/filters/filters.mjs +55 -99
- package/plugins/filters/ui/_base.js +13 -35
- package/plugins/filters/ui/_base.mjs +13 -35
- package/plugins/filters/ui/input.js +32 -43
- package/plugins/filters/ui/input.mjs +30 -42
- package/plugins/filters/ui/link.js +12 -44
- package/plugins/filters/ui/link.mjs +11 -44
- package/plugins/filters/ui/multipleSelect.js +129 -234
- package/plugins/filters/ui/multipleSelect.mjs +127 -232
- package/plugins/filters/ui/radioInput.js +18 -42
- package/plugins/filters/ui/radioInput.mjs +17 -42
- package/plugins/filters/ui/select.js +75 -144
- package/plugins/filters/ui/select.mjs +72 -142
- package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
- package/plugins/hiddenRows/hiddenRows.mjs +1 -1
- package/plugins/manualColumnMove/manualColumnMove.js +1 -3
- package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
- 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 +10 -240
- package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
- package/plugins/nestedHeaders/stateManager/index.js +3 -102
- package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
- package/plugins/nestedRows/nestedRows.js +0 -41
- package/plugins/nestedRows/nestedRows.mjs +0 -41
- package/plugins/nestedRows/ui/headers.js +0 -11
- package/plugins/nestedRows/ui/headers.mjs +1 -12
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
- package/renderers/baseRenderer/baseRenderer.js +0 -17
- package/renderers/baseRenderer/baseRenderer.mjs +1 -18
- package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
- package/renderers/index.d.ts +0 -9
- 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 -7
- package/selection/mouseEventHandler.mjs +1 -7
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +152 -321
- package/selection/selection.mjs +151 -318
- 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 -4
- package/shortcuts/context.js +4 -23
- package/shortcuts/context.mjs +5 -23
- package/shortcuts/manager.js +7 -25
- package/shortcuts/manager.mjs +7 -26
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +5 -19
- package/shortcuts/utils.mjs +4 -18
- package/tableView.js +13 -111
- package/tableView.mjs +14 -112
- 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 -274
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
- 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/cellTypes/selectType/index.d.ts +0 -1
- package/cellTypes/selectType/index.js +0 -6
- package/cellTypes/selectType/index.mjs +0 -1
- package/cellTypes/selectType/selectType.d.ts +0 -14
- package/cellTypes/selectType/selectType.js +0 -13
- package/cellTypes/selectType/selectType.mjs +0 -8
- package/core/focusCatcher/focusDetector.js +0 -63
- package/core/focusCatcher/focusDetector.mjs +0 -59
- 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/focusManager.d.ts +0 -12
- package/focusManager.js +0 -265
- package/focusManager.mjs +0 -261
- package/helpers/a11y.js +0 -79
- package/helpers/a11y.mjs +0 -38
- 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/plugins/contextMenu/menu/defaultShortcutsList.js +0 -88
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +0 -84
- package/plugins/contextMenu/menu/index.js +0 -9
- package/plugins/contextMenu/menu/index.mjs +0 -1
- package/plugins/contextMenu/menu/menuItemRenderer.js +0 -58
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +0 -54
- package/plugins/contextMenu/menu/navigator.js +0 -27
- package/plugins/contextMenu/menu/navigator.mjs +0 -23
- package/plugins/contextMenu/menu/positioner.js +0 -213
- package/plugins/contextMenu/menu/positioner.mjs +0 -209
- package/plugins/contextMenu/menu/shortcuts.js +0 -114
- package/plugins/contextMenu/menu/shortcuts.mjs +0 -110
- package/plugins/contextMenu/menu/utils.js +0 -177
- package/plugins/contextMenu/menu/utils.mjs +0 -163
- package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
- package/plugins/filters/menu/focusController.js +0 -123
- package/plugins/filters/menu/focusController.mjs +0 -119
- package/plugins/filters/menu/focusNavigator.js +0 -30
- package/plugins/filters/menu/focusNavigator.mjs +0 -26
- package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
- package/renderers/dateRenderer/dateRenderer.js +0 -29
- package/renderers/dateRenderer/dateRenderer.mjs +0 -24
- package/renderers/dateRenderer/index.d.ts +0 -1
- package/renderers/dateRenderer/index.js +0 -6
- package/renderers/dateRenderer/index.mjs +0 -1
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
- package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
- package/renderers/handsontableRenderer/index.d.ts +0 -1
- package/renderers/handsontableRenderer/index.js +0 -6
- package/renderers/handsontableRenderer/index.mjs +0 -1
- package/renderers/selectRenderer/index.d.ts +0 -1
- package/renderers/selectRenderer/index.js +0 -6
- package/renderers/selectRenderer/index.mjs +0 -1
- package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
- package/renderers/selectRenderer/selectRenderer.js +0 -27
- package/renderers/selectRenderer/selectRenderer.mjs +0 -22
- 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 -25
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
- 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 -25
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
- 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 -33
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
- 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 -33
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
- package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
- package/shortcutContexts/commands/selectAll.js +0 -12
- package/shortcutContexts/commands/selectAll.mjs +0 -8
- 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
- package/utils/paginator.js +0 -151
- 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
|
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;
|
@@ -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
|
-
|
529
|
-
|
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
|
-
|
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 || !
|
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
|
-
|
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
|
-
|
471
|
+
this.editor.setSize(commentStyle.width, commentStyle.height);
|
611
472
|
} else {
|
612
|
-
|
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
|
-
} =
|
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
|
-
|
647
|
-
|
507
|
+
this.editor.setPosition(x, y);
|
508
|
+
this.editor.setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
|
648
509
|
}
|
649
510
|
|
650
511
|
/**
|
651
|
-
*
|
512
|
+
* Checks if there is a comment for selected range.
|
513
|
+
*
|
514
|
+
* @private
|
515
|
+
* @returns {boolean}
|
652
516
|
*/
|
653
|
-
|
654
|
-
|
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 (!
|
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 (
|
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
|
-
|
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
|
-
|
605
|
+
this.displaySwitch.show(range);
|
731
606
|
} else if ((0, _element.isChildOf)(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
|
732
|
-
|
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
|
-
|
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
|
-
*
|
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
|
-
|
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 !==
|
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
|
-
*
|
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
|
-
* @
|
679
|
+
* @private
|
819
680
|
*/
|
820
|
-
|
821
|
-
|
822
|
-
|
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
|
-
*
|
694
|
+
* Context Menu's "remove comment" callback.
|
695
|
+
*
|
696
|
+
* @private
|
828
697
|
*/
|
829
|
-
|
830
|
-
|
831
|
-
|
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
|
-
*
|
710
|
+
* Context Menu's "make comment read-only" callback.
|
837
711
|
*
|
838
712
|
* @private
|
839
|
-
* @param {object} options The menu options.
|
840
713
|
*/
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
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 (
|
875
|
-
|
811
|
+
if (this.editor) {
|
812
|
+
this.editor.destroy();
|
876
813
|
}
|
877
|
-
if (
|
878
|
-
|
814
|
+
if (this.displaySwitch) {
|
815
|
+
this.displaySwitch.destroy();
|
879
816
|
}
|
880
817
|
super.destroy();
|
881
818
|
}
|