handsontable 0.0.0-next-9059914-20231025 → 0.0.0-next-cecf979-20231026
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/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +50 -11
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +38 -7
- package/3rdparty/walkontable/src/cell/range.mjs +38 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- 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 +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +12 -10
- package/3rdparty/walkontable/src/event.mjs +12 -10
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +13 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
- package/3rdparty/walkontable/src/overlay/top.js +2 -6
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
- package/3rdparty/walkontable/src/renderer/cells.js +10 -0
- package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +10 -0
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -0
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -0
- package/3rdparty/walkontable/src/renderer/rows.js +13 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
- package/3rdparty/walkontable/src/renderer/table.js +9 -0
- package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
- package/3rdparty/walkontable/src/scroll.js +2 -0
- package/3rdparty/walkontable/src/scroll.mjs +2 -0
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +62 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +26 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +274 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
- package/3rdparty/walkontable/src/selection/scanner.js +270 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
- package/3rdparty/walkontable/src/selection/selection.js +101 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
- package/3rdparty/walkontable/src/settings.js +13 -4
- package/3rdparty/walkontable/src/settings.mjs +13 -4
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +19 -78
- package/3rdparty/walkontable/src/table.mjs +20 -79
- 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 +3 -0
- package/cellTypes/index.js +4 -0
- package/cellTypes/index.mjs +3 -1
- package/cellTypes/selectType/index.d.ts +1 -0
- package/cellTypes/selectType/index.js +6 -0
- package/cellTypes/selectType/index.mjs +1 -0
- package/cellTypes/selectType/selectType.d.ts +14 -0
- package/cellTypes/selectType/selectType.js +13 -0
- package/cellTypes/selectType/selectType.mjs +8 -0
- package/core/focusCatcher/focusDetector.js +63 -0
- package/core/focusCatcher/focusDetector.mjs +59 -0
- package/core/focusCatcher/index.js +142 -0
- package/core/focusCatcher/index.mjs +138 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +9 -4
- package/core.js +285 -327
- package/core.mjs +285 -327
- package/dataMap/metaManager/metaSchema.js +65 -0
- package/dataMap/metaManager/metaSchema.mjs +65 -0
- package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
- package/dataMap/replaceData.js +5 -0
- package/dataMap/replaceData.mjs +5 -0
- package/dist/handsontable.css +51 -15
- package/dist/handsontable.full.css +51 -15
- package/dist/handsontable.full.js +13360 -7840
- package/dist/handsontable.full.min.css +7 -7
- package/dist/handsontable.full.min.js +136 -136
- package/dist/handsontable.js +20955 -15435
- package/dist/handsontable.min.css +6 -6
- package/dist/handsontable.min.js +24 -24
- package/dist/languages/all.js +6 -2
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/en-US.js +3 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/pl-PL.js +3 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/editorManager.js +15 -87
- package/editorManager.mjs +16 -87
- package/editors/autocompleteEditor/autocompleteEditor.js +53 -2
- package/editors/autocompleteEditor/autocompleteEditor.mjs +54 -3
- package/editors/dateEditor/dateEditor.js +26 -7
- package/editors/dateEditor/dateEditor.mjs +27 -8
- package/editors/handsontableEditor/handsontableEditor.js +9 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +10 -2
- package/editors/textEditor/textEditor.js +19 -27
- package/editors/textEditor/textEditor.mjs +22 -30
- package/focusManager.d.ts +12 -0
- package/focusManager.js +265 -0
- package/focusManager.mjs +261 -0
- package/helpers/a11y.js +79 -0
- package/helpers/a11y.mjs +38 -0
- package/helpers/dom/element.js +188 -9
- package/helpers/dom/element.mjs +182 -9
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/i18n/constants.js +7 -1
- package/i18n/constants.mjs +4 -1
- package/i18n/languages/en-US.js +3 -1
- package/i18n/languages/en-US.mjs +3 -1
- package/i18n/languages/pl-PL.js +3 -1
- package/i18n/languages/pl-PL.mjs +3 -1
- package/languages/all.js +6 -2
- package/languages/en-US.js +3 -1
- package/languages/en-US.mjs +3 -1
- package/languages/index.js +6 -2
- package/languages/pl-PL.js +3 -1
- package/languages/pl-PL.mjs +3 -1
- package/package.json +21 -1
- package/pluginHooks.d.ts +12 -1
- package/pluginHooks.js +152 -1
- package/pluginHooks.mjs +152 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +74 -4
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +75 -5
- package/plugins/columnSorting/columnSorting.js +43 -0
- package/plugins/columnSorting/columnSorting.mjs +44 -3
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +252 -189
- package/plugins/comments/comments.mjs +251 -190
- package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
- package/plugins/comments/contextMenuItem/removeComment.js +38 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/commandExecutor.js +2 -3
- package/plugins/contextMenu/commandExecutor.mjs +2 -3
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +75 -36
- package/plugins/contextMenu/contextMenu.mjs +74 -35
- package/plugins/contextMenu/itemsFactory.js +2 -3
- package/plugins/contextMenu/itemsFactory.mjs +3 -4
- package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
- package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
- package/plugins/contextMenu/menu/index.js +9 -0
- package/plugins/contextMenu/menu/index.mjs +1 -0
- package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
- package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
- package/plugins/contextMenu/menu/menuItemRenderer.js +58 -0
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +54 -0
- package/plugins/contextMenu/menu/navigator.js +27 -0
- package/plugins/contextMenu/menu/navigator.mjs +23 -0
- package/plugins/contextMenu/menu/positioner.js +213 -0
- package/plugins/contextMenu/menu/positioner.mjs +209 -0
- package/plugins/contextMenu/menu/shortcuts.js +114 -0
- package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
- package/plugins/contextMenu/menu/utils.js +177 -0
- package/plugins/contextMenu/menu/utils.mjs +163 -0
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/{predefinedItems.js → predefinedItems/index.js} +14 -14
- package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +35 -151
- package/plugins/contextMenu/utils.mjs +35 -144
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +127 -78
- package/plugins/copyPaste/copyPaste.mjs +128 -79
- package/plugins/customBorders/customBorders.js +23 -20
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +127 -40
- package/plugins/dropdownMenu/dropdownMenu.mjs +126 -39
- package/plugins/filters/component/_base.js +23 -8
- package/plugins/filters/component/_base.mjs +23 -8
- package/plugins/filters/component/actionBar.js +29 -27
- package/plugins/filters/component/actionBar.mjs +26 -23
- package/plugins/filters/component/condition.js +46 -59
- package/plugins/filters/component/condition.mjs +40 -52
- package/plugins/filters/component/operators.js +21 -22
- package/plugins/filters/component/operators.mjs +18 -18
- package/plugins/filters/component/value.js +35 -26
- package/plugins/filters/component/value.mjs +32 -22
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/filters.js +106 -62
- package/plugins/filters/filters.mjs +99 -55
- package/plugins/filters/menu/focusController.js +123 -0
- package/plugins/filters/menu/focusController.mjs +119 -0
- package/plugins/filters/menu/focusNavigator.js +30 -0
- package/plugins/filters/menu/focusNavigator.mjs +26 -0
- package/plugins/filters/ui/_base.js +35 -13
- package/plugins/filters/ui/_base.mjs +35 -13
- package/plugins/filters/ui/input.js +43 -32
- package/plugins/filters/ui/input.mjs +42 -30
- package/plugins/filters/ui/link.js +44 -12
- package/plugins/filters/ui/link.mjs +44 -11
- package/plugins/filters/ui/multipleSelect.js +234 -129
- package/plugins/filters/ui/multipleSelect.mjs +232 -127
- package/plugins/filters/ui/radioInput.js +42 -18
- package/plugins/filters/ui/radioInput.mjs +42 -17
- package/plugins/filters/ui/select.js +144 -75
- package/plugins/filters/ui/select.mjs +142 -72
- package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
- package/plugins/hiddenRows/hiddenRows.mjs +1 -1
- package/plugins/manualColumnMove/manualColumnMove.js +3 -1
- package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
- package/plugins/mergeCells/mergeCells.js +5 -16
- package/plugins/mergeCells/mergeCells.mjs +5 -16
- package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
- package/plugins/nestedHeaders/nestedHeaders.js +240 -10
- package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
- package/plugins/nestedHeaders/stateManager/index.js +102 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
- package/plugins/nestedRows/nestedRows.js +41 -0
- package/plugins/nestedRows/nestedRows.mjs +41 -0
- package/plugins/nestedRows/ui/headers.js +11 -0
- package/plugins/nestedRows/ui/headers.mjs +12 -1
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
- package/renderers/baseRenderer/baseRenderer.js +17 -0
- package/renderers/baseRenderer/baseRenderer.mjs +18 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
- package/renderers/dateRenderer/dateRenderer.js +29 -0
- package/renderers/dateRenderer/dateRenderer.mjs +24 -0
- package/renderers/dateRenderer/index.d.ts +1 -0
- package/renderers/dateRenderer/index.js +6 -0
- package/renderers/dateRenderer/index.mjs +1 -0
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
- package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
- package/renderers/handsontableRenderer/index.d.ts +1 -0
- package/renderers/handsontableRenderer/index.js +6 -0
- package/renderers/handsontableRenderer/index.mjs +1 -0
- package/renderers/index.d.ts +9 -0
- package/renderers/selectRenderer/index.d.ts +1 -0
- package/renderers/selectRenderer/index.js +6 -0
- package/renderers/selectRenderer/index.mjs +1 -0
- package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
- package/renderers/selectRenderer/selectRenderer.js +27 -0
- package/renderers/selectRenderer/selectRenderer.mjs +22 -0
- package/selection/highlight/highlight.js +256 -71
- package/selection/highlight/highlight.mjs +250 -71
- package/selection/highlight/types/activeHeader.js +10 -8
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +6 -18
- package/selection/highlight/types/area.mjs +6 -18
- package/selection/highlight/types/areaLayered.js +31 -0
- package/selection/highlight/types/areaLayered.mjs +26 -0
- package/selection/highlight/types/column.js +27 -0
- package/selection/highlight/types/column.mjs +22 -0
- package/selection/highlight/types/customSelection.js +7 -9
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -7
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -7
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +9 -18
- package/selection/highlight/types/header.mjs +9 -18
- package/selection/highlight/types/row.js +27 -0
- package/selection/highlight/types/row.mjs +22 -0
- package/selection/highlight/visualSelection.js +31 -27
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +7 -1
- package/selection/mouseEventHandler.mjs +7 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +321 -152
- package/selection/selection.mjs +318 -151
- package/selection/transformation.js +232 -90
- package/selection/transformation.mjs +232 -90
- package/selection/utils.js +15 -21
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +4 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +27 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +11 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
- package/shortcutContexts/commands/selectAll.js +12 -0
- package/shortcutContexts/commands/selectAll.mjs +8 -0
- package/shortcutContexts/constants.js +13 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +163 -0
- package/shortcutContexts/grid.mjs +159 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/context.d.ts +1 -0
- package/shortcuts/context.js +23 -4
- package/shortcuts/context.mjs +23 -5
- package/shortcuts/manager.js +25 -7
- package/shortcuts/manager.mjs +26 -7
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +111 -13
- package/tableView.mjs +112 -14
- package/utils/paginator.js +151 -0
- package/utils/paginator.mjs +147 -0
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/plugins/contextMenu/predefinedItems.mjs +0 -68
- package/plugins/copyPaste/focusableElement.js +0 -186
- package/plugins/copyPaste/focusableElement.mjs +0 -180
- package/selection/highlight/constants.js +0 -15
- package/selection/highlight/constants.mjs +0 -6
- package/selection/highlight/types/index.js +0 -35
- package/selection/highlight/types/index.mjs +0 -31
@@ -1,68 +1,7 @@
|
|
1
|
-
import "
|
2
|
-
import { arrayEach, arrayMap } from "../../helpers/array.mjs";
|
3
|
-
import { hasClass } from "../../helpers/dom/element.mjs";
|
4
|
-
import { KEY as SEPARATOR } from "./predefinedItems/separator.mjs";
|
5
|
-
/**
|
6
|
-
* @param {CellRange[]} selRanges An array of the cell ranges.
|
7
|
-
* @returns {object[]}
|
8
|
-
*/
|
9
|
-
export function normalizeSelection(selRanges) {
|
10
|
-
return arrayMap(selRanges, range => ({
|
11
|
-
start: range.getTopStartCorner(),
|
12
|
-
end: range.getBottomEndCorner()
|
13
|
-
}));
|
14
|
-
}
|
15
|
-
|
16
|
-
/**
|
17
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
18
|
-
* @returns {boolean}
|
19
|
-
*/
|
20
|
-
export function isSeparator(cell) {
|
21
|
-
return hasClass(cell, 'htSeparator');
|
22
|
-
}
|
23
|
-
|
24
|
-
/**
|
25
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
26
|
-
* @returns {boolean}
|
27
|
-
*/
|
28
|
-
export function hasSubMenu(cell) {
|
29
|
-
return hasClass(cell, 'htSubmenu');
|
30
|
-
}
|
31
|
-
|
32
|
-
/**
|
33
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
34
|
-
* @returns {boolean}
|
35
|
-
*/
|
36
|
-
export function isDisabled(cell) {
|
37
|
-
return hasClass(cell, 'htDisabled');
|
38
|
-
}
|
39
|
-
|
40
|
-
/**
|
41
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
42
|
-
* @returns {boolean}
|
43
|
-
*/
|
44
|
-
export function isSelectionDisabled(cell) {
|
45
|
-
return hasClass(cell, 'htSelectionDisabled');
|
46
|
-
}
|
47
|
-
|
48
|
-
/**
|
49
|
-
* @param {Core} hot The Handsontable instance.
|
50
|
-
* @returns {Array[]|null}
|
51
|
-
*/
|
52
|
-
export function getValidSelection(hot) {
|
53
|
-
const selected = hot.getSelected();
|
54
|
-
if (!selected) {
|
55
|
-
return null;
|
56
|
-
}
|
57
|
-
if (selected[0] < 0) {
|
58
|
-
return null;
|
59
|
-
}
|
60
|
-
return selected;
|
61
|
-
}
|
62
|
-
|
1
|
+
import { arrayEach } from "../../helpers/array.mjs";
|
63
2
|
/**
|
64
3
|
* @param {string} className The full element class name to process.
|
65
|
-
* @param {string} alignment The
|
4
|
+
* @param {string} alignment The alignment class name to compare with.
|
66
5
|
* @returns {string}
|
67
6
|
*/
|
68
7
|
export function prepareVerticalAlignClass(className, alignment) {
|
@@ -75,7 +14,7 @@ export function prepareVerticalAlignClass(className, alignment) {
|
|
75
14
|
|
76
15
|
/**
|
77
16
|
* @param {string} className The full element class name to process.
|
78
|
-
* @param {string} alignment The
|
17
|
+
* @param {string} alignment The alignment class name to compare with.
|
79
18
|
* @returns {string}
|
80
19
|
*/
|
81
20
|
export function prepareHorizontalAlignClass(className, alignment) {
|
@@ -146,6 +85,15 @@ function applyAlignClassName(row, col, type, alignment, cellDescriptor, property
|
|
146
85
|
propertySetter(row, col, 'className', className);
|
147
86
|
}
|
148
87
|
|
88
|
+
/**
|
89
|
+
* @param {string} label The label text.
|
90
|
+
* @returns {string}
|
91
|
+
*/
|
92
|
+
export function markLabelAsSelected(label) {
|
93
|
+
// workaround for https://github.com/handsontable/handsontable/issues/1946
|
94
|
+
return `<span class="selected">${String.fromCharCode(10003)}</span>${label}`;
|
95
|
+
}
|
96
|
+
|
149
97
|
/**
|
150
98
|
* @param {CellRange[]} ranges An array of the cell ranges.
|
151
99
|
* @param {Function} comparator The comparator function.
|
@@ -169,85 +117,28 @@ export function checkSelectionConsistency(ranges, comparator) {
|
|
169
117
|
}
|
170
118
|
|
171
119
|
/**
|
172
|
-
*
|
173
|
-
*
|
174
|
-
*/
|
175
|
-
export function markLabelAsSelected(label) {
|
176
|
-
// workaround for https://github.com/handsontable/handsontable/issues/1946
|
177
|
-
return `<span class="selected">${String.fromCharCode(10003)}</span>${label}`;
|
178
|
-
}
|
179
|
-
|
180
|
-
/**
|
181
|
-
* @param {object} item The object which describes the context menu item properties.
|
182
|
-
* @param {Core} instance The Handsontable instance.
|
183
|
-
* @returns {boolean}
|
184
|
-
*/
|
185
|
-
export function isItemHidden(item, instance) {
|
186
|
-
return !item.hidden || !(typeof item.hidden === 'function' && item.hidden.call(instance));
|
187
|
-
}
|
188
|
-
|
189
|
-
/**
|
190
|
-
* @param {object[]} items The context menu items collection.
|
191
|
-
* @param {string} separator The string which identifies the context menu separator item.
|
192
|
-
* @returns {object[]}
|
193
|
-
*/
|
194
|
-
function shiftSeparators(items, separator) {
|
195
|
-
const result = items.slice(0);
|
196
|
-
for (let i = 0; i < result.length;) {
|
197
|
-
if (result[i].name === separator) {
|
198
|
-
result.shift();
|
199
|
-
} else {
|
200
|
-
break;
|
201
|
-
}
|
202
|
-
}
|
203
|
-
return result;
|
204
|
-
}
|
205
|
-
|
206
|
-
/**
|
207
|
-
* @param {object[]} items The context menu items collection.
|
208
|
-
* @param {string} separator The string which identifies the context menu separator item.
|
209
|
-
* @returns {object[]}
|
210
|
-
*/
|
211
|
-
function popSeparators(items, separator) {
|
212
|
-
let result = items.slice(0);
|
213
|
-
result.reverse();
|
214
|
-
result = shiftSeparators(result, separator);
|
215
|
-
result.reverse();
|
216
|
-
return result;
|
217
|
-
}
|
218
|
-
|
219
|
-
/**
|
220
|
-
* Removes duplicated menu separators from the context menu items collection.
|
120
|
+
* Returns document offset based on the passed element. If the document objects between element and the
|
121
|
+
* base document are not the same the offset as top and left properties will be returned.
|
221
122
|
*
|
222
|
-
* @param {
|
223
|
-
* @
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
}
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
* @param {string} separator The string which identifies the context menu separator item.
|
244
|
-
* @returns {object[]}
|
245
|
-
*/
|
246
|
-
export function filterSeparators(items) {
|
247
|
-
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SEPARATOR;
|
248
|
-
let result = items.slice(0);
|
249
|
-
result = shiftSeparators(result, separator);
|
250
|
-
result = popSeparators(result, separator);
|
251
|
-
result = removeDuplicatedSeparators(result);
|
252
|
-
return result;
|
123
|
+
* @param {Element} elementToCheck The element to compare with Document object.
|
124
|
+
* @param {Document} baseDocument The base Document object.
|
125
|
+
* @returns {{ top: number, left: number }}
|
126
|
+
*/
|
127
|
+
export function getDocumentOffsetByElement(elementToCheck, baseDocument) {
|
128
|
+
const offset = {
|
129
|
+
top: 0,
|
130
|
+
left: 0
|
131
|
+
};
|
132
|
+
if (baseDocument !== elementToCheck.ownerDocument) {
|
133
|
+
const {
|
134
|
+
frameElement
|
135
|
+
} = baseDocument.defaultView;
|
136
|
+
const {
|
137
|
+
top,
|
138
|
+
left
|
139
|
+
} = frameElement.getBoundingClientRect();
|
140
|
+
offset.top = top;
|
141
|
+
offset.left = left;
|
142
|
+
}
|
143
|
+
return offset;
|
253
144
|
}
|
@@ -20,6 +20,13 @@ function copyItem(copyPastePlugin) {
|
|
20
20
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
21
21
|
return true;
|
22
22
|
}
|
23
|
+
const range = this.getSelectedRangeLast();
|
24
|
+
if (!range) {
|
25
|
+
return true;
|
26
|
+
}
|
27
|
+
if (range.isSingleHeader()) {
|
28
|
+
return true;
|
29
|
+
}
|
23
30
|
const selected = this.getSelected();
|
24
31
|
|
25
32
|
// Disable for no selection or for non-contiguous selection.
|
@@ -16,6 +16,13 @@ export default function copyItem(copyPastePlugin) {
|
|
16
16
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
17
17
|
return true;
|
18
18
|
}
|
19
|
+
const range = this.getSelectedRangeLast();
|
20
|
+
if (!range) {
|
21
|
+
return true;
|
22
|
+
}
|
23
|
+
if (range.isSingleHeader()) {
|
24
|
+
return true;
|
25
|
+
}
|
19
26
|
const selected = this.getSelected();
|
20
27
|
|
21
28
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyColumnHeadersOnlyItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
+
var _number = require("../../../helpers/number");
|
6
7
|
/**
|
7
8
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
8
9
|
* @returns {object}
|
@@ -12,7 +13,7 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
12
13
|
key: 'copy_column_headers_only',
|
13
14
|
name() {
|
14
15
|
const selectedRange = this.getSelectedRangeLast();
|
15
|
-
const nounForm = selectedRange ?
|
16
|
+
const nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
|
16
17
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
|
17
18
|
},
|
18
19
|
callback() {
|
@@ -22,6 +23,13 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
22
23
|
if (!this.hasColHeaders()) {
|
23
24
|
return true;
|
24
25
|
}
|
26
|
+
const range = this.getSelectedRangeLast();
|
27
|
+
if (!range) {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
if (range.isSingleHeader()) {
|
31
|
+
return true;
|
32
|
+
}
|
25
33
|
const selected = this.getSelected();
|
26
34
|
|
27
35
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY } from "../../../i18n/constants.mjs";
|
2
|
+
import { clamp } from "../../../helpers/number.mjs";
|
2
3
|
/**
|
3
4
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
4
5
|
* @returns {object}
|
@@ -8,7 +9,7 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
8
9
|
key: 'copy_column_headers_only',
|
9
10
|
name() {
|
10
11
|
const selectedRange = this.getSelectedRangeLast();
|
11
|
-
const nounForm = selectedRange ?
|
12
|
+
const nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
|
12
13
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
|
13
14
|
},
|
14
15
|
callback() {
|
@@ -18,6 +19,13 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
18
19
|
if (!this.hasColHeaders()) {
|
19
20
|
return true;
|
20
21
|
}
|
22
|
+
const range = this.getSelectedRangeLast();
|
23
|
+
if (!range) {
|
24
|
+
return true;
|
25
|
+
}
|
26
|
+
if (range.isSingleHeader()) {
|
27
|
+
return true;
|
28
|
+
}
|
21
29
|
const selected = this.getSelected();
|
22
30
|
|
23
31
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyWithColumnGroupHeadersItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
+
var _number = require("../../../helpers/number");
|
6
7
|
/**
|
7
8
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
8
9
|
* @returns {object}
|
@@ -12,7 +13,7 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
12
13
|
key: 'copy_with_column_group_headers',
|
13
14
|
name() {
|
14
15
|
const selectedRange = this.getSelectedRangeLast();
|
15
|
-
const nounForm = selectedRange ?
|
16
|
+
const nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
|
16
17
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
|
17
18
|
},
|
18
19
|
callback() {
|
@@ -22,6 +23,13 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
22
23
|
if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
|
23
24
|
return true;
|
24
25
|
}
|
26
|
+
const range = this.getSelectedRangeLast();
|
27
|
+
if (!range) {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
if (range.isSingleHeader()) {
|
31
|
+
return true;
|
32
|
+
}
|
25
33
|
const selected = this.getSelected();
|
26
34
|
|
27
35
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS } from "../../../i18n/constants.mjs";
|
2
|
+
import { clamp } from "../../../helpers/number.mjs";
|
2
3
|
/**
|
3
4
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
4
5
|
* @returns {object}
|
@@ -8,7 +9,7 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
8
9
|
key: 'copy_with_column_group_headers',
|
9
10
|
name() {
|
10
11
|
const selectedRange = this.getSelectedRangeLast();
|
11
|
-
const nounForm = selectedRange ?
|
12
|
+
const nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
|
12
13
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
|
13
14
|
},
|
14
15
|
callback() {
|
@@ -18,6 +19,13 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
18
19
|
if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
|
19
20
|
return true;
|
20
21
|
}
|
22
|
+
const range = this.getSelectedRangeLast();
|
23
|
+
if (!range) {
|
24
|
+
return true;
|
25
|
+
}
|
26
|
+
if (range.isSingleHeader()) {
|
27
|
+
return true;
|
28
|
+
}
|
21
29
|
const selected = this.getSelected();
|
22
30
|
|
23
31
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyWithColumnHeadersItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
+
var _number = require("../../../helpers/number");
|
6
7
|
/**
|
7
8
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
8
9
|
* @returns {object}
|
@@ -12,7 +13,7 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
12
13
|
key: 'copy_with_column_headers',
|
13
14
|
name() {
|
14
15
|
const selectedRange = this.getSelectedRangeLast();
|
15
|
-
const nounForm = selectedRange ?
|
16
|
+
const nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
|
16
17
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, nounForm);
|
17
18
|
},
|
18
19
|
callback() {
|
@@ -22,6 +23,13 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
22
23
|
if (!this.hasColHeaders()) {
|
23
24
|
return true;
|
24
25
|
}
|
26
|
+
const range = this.getSelectedRangeLast();
|
27
|
+
if (!range) {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
if (range.isSingleHeader()) {
|
31
|
+
return true;
|
32
|
+
}
|
25
33
|
const selected = this.getSelected();
|
26
34
|
|
27
35
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS } from "../../../i18n/constants.mjs";
|
2
|
+
import { clamp } from "../../../helpers/number.mjs";
|
2
3
|
/**
|
3
4
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
4
5
|
* @returns {object}
|
@@ -8,7 +9,7 @@ export default function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
8
9
|
key: 'copy_with_column_headers',
|
9
10
|
name() {
|
10
11
|
const selectedRange = this.getSelectedRangeLast();
|
11
|
-
const nounForm = selectedRange ?
|
12
|
+
const nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
|
12
13
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, nounForm);
|
13
14
|
},
|
14
15
|
callback() {
|
@@ -18,6 +19,13 @@ export default function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
18
19
|
if (!this.hasColHeaders()) {
|
19
20
|
return true;
|
20
21
|
}
|
22
|
+
const range = this.getSelectedRangeLast();
|
23
|
+
if (!range) {
|
24
|
+
return true;
|
25
|
+
}
|
26
|
+
if (range.isSingleHeader()) {
|
27
|
+
return true;
|
28
|
+
}
|
21
29
|
const selected = this.getSelected();
|
22
30
|
|
23
31
|
// Disable for no selection or for non-contiguous selection.
|
@@ -22,6 +22,13 @@ function cutItem(copyPastePlugin) {
|
|
22
22
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
23
23
|
return true;
|
24
24
|
}
|
25
|
+
const range = this.getSelectedRangeLast();
|
26
|
+
if (!range) {
|
27
|
+
return true;
|
28
|
+
}
|
29
|
+
if (range.isSingleHeader()) {
|
30
|
+
return true;
|
31
|
+
}
|
25
32
|
const selected = this.getSelected();
|
26
33
|
|
27
34
|
// Disable for no selection or for non-contiquous selection.
|
@@ -16,6 +16,13 @@ export default function cutItem(copyPastePlugin) {
|
|
16
16
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
17
17
|
return true;
|
18
18
|
}
|
19
|
+
const range = this.getSelectedRangeLast();
|
20
|
+
if (!range) {
|
21
|
+
return true;
|
22
|
+
}
|
23
|
+
if (range.isSingleHeader()) {
|
24
|
+
return true;
|
25
|
+
}
|
19
26
|
const selected = this.getSelected();
|
20
27
|
|
21
28
|
// Disable for no selection or for non-contiquous selection.
|