handsontable 0.0.0-next-b66c79f-20230713 → 0.0.0-next-08765b9-20230714
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +87 -33
- package/3rdparty/walkontable/src/cell/coords.mjs +87 -33
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +92 -46
- package/3rdparty/walkontable/src/cell/range.mjs +92 -46
- package/3rdparty/walkontable/src/core/_base.js +41 -33
- package/3rdparty/walkontable/src/core/_base.mjs +41 -33
- package/3rdparty/walkontable/src/core/clone.js +8 -5
- package/3rdparty/walkontable/src/core/clone.mjs +8 -5
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +9 -8
- package/3rdparty/walkontable/src/event.mjs +9 -8
- 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 +11 -9
- package/3rdparty/walkontable/src/overlay/_base.mjs +11 -9
- package/3rdparty/walkontable/src/overlay/bottom.js +10 -8
- package/3rdparty/walkontable/src/overlay/bottom.mjs +10 -8
- 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 +12 -14
- package/3rdparty/walkontable/src/overlay/top.mjs +12 -14
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +16 -13
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +16 -13
- package/3rdparty/walkontable/src/overlays.js +75 -80
- package/3rdparty/walkontable/src/overlays.mjs +75 -80
- package/3rdparty/walkontable/src/scroll.js +27 -24
- package/3rdparty/walkontable/src/scroll.mjs +27 -24
- 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 +259 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +254 -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 +18 -17
- package/3rdparty/walkontable/src/settings.mjs +18 -17
- 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 +48 -115
- package/3rdparty/walkontable/src/table.mjs +49 -116
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/focusCatcher/focusDetector.js +58 -0
- package/core/focusCatcher/focusDetector.mjs +54 -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 +6 -3
- package/core.js +181 -298
- package/core.mjs +181 -298
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -1
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
- package/dataMap/metaManager/metaSchema.js +41 -0
- package/dataMap/metaManager/metaSchema.mjs +41 -0
- package/dataMap/metaManager/mods/dynamicCellMeta.js +3 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +3 -2
- package/dataMap/metaManager/utils.js +4 -2
- package/dataMap/metaManager/utils.mjs +4 -2
- package/dist/handsontable.css +19 -3
- package/dist/handsontable.full.css +19 -3
- package/dist/handsontable.full.js +10739 -7037
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +24884 -21182
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +19 -19
- package/editorManager.js +11 -75
- package/editorManager.mjs +11 -74
- package/editors/autocompleteEditor/autocompleteEditor.js +70 -67
- package/editors/autocompleteEditor/autocompleteEditor.mjs +70 -67
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +2 -1
- package/editors/dateEditor/dateEditor.mjs +2 -1
- package/editors/textEditor/textEditor.js +3 -11
- package/editors/textEditor/textEditor.mjs +4 -12
- 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/helpers/object.js +1 -0
- package/helpers/object.mjs +1 -0
- package/index.js +5 -5
- package/index.mjs +5 -5
- package/package.json +1 -1
- package/pluginHooks.d.ts +7 -1
- package/pluginHooks.js +106 -1
- package/pluginHooks.mjs +106 -1
- package/plugins/autoColumnSize/autoColumnSize.js +4 -1
- package/plugins/autoColumnSize/autoColumnSize.mjs +4 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +110 -40
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +110 -40
- package/plugins/columnSorting/columnSorting.js +40 -1
- package/plugins/columnSorting/columnSorting.mjs +40 -3
- package/plugins/columnSorting/columnStatesManager.js +2 -1
- package/plugins/columnSorting/columnStatesManager.mjs +2 -1
- 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 +253 -191
- package/plugins/comments/comments.mjs +252 -192
- 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/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +72 -30
- package/plugins/contextMenu/contextMenu.mjs +73 -31
- 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/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 +28 -16
- package/plugins/contextMenu/utils.mjs +27 -15
- 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 +12 -6
- package/plugins/copyPaste/copyPaste.mjs +12 -6
- package/plugins/customBorders/customBorders.js +36 -29
- package/plugins/customBorders/customBorders.mjs +37 -30
- package/plugins/customBorders/utils.js +3 -3
- package/plugins/customBorders/utils.mjs +3 -3
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +89 -32
- package/plugins/dropdownMenu/dropdownMenu.mjs +89 -32
- package/plugins/filters/conditionCollection.js +6 -5
- package/plugins/filters/conditionCollection.mjs +6 -5
- package/plugins/filters/filters.js +44 -21
- package/plugins/filters/filters.mjs +43 -20
- package/plugins/formulas/engine/register.js +3 -3
- package/plugins/formulas/engine/register.mjs +3 -3
- package/plugins/formulas/engine/settings.js +6 -3
- package/plugins/formulas/engine/settings.mjs +6 -3
- package/plugins/formulas/formulas.js +151 -143
- package/plugins/formulas/formulas.mjs +151 -143
- package/plugins/formulas/indexSyncer/axisSyncer.js +115 -79
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +115 -79
- package/plugins/formulas/indexSyncer/index.js +100 -64
- package/plugins/formulas/indexSyncer/index.mjs +100 -64
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
- package/plugins/hiddenColumns/hiddenColumns.js +51 -34
- package/plugins/hiddenColumns/hiddenColumns.mjs +51 -34
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
- package/plugins/hiddenRows/hiddenRows.js +50 -33
- package/plugins/hiddenRows/hiddenRows.mjs +50 -33
- package/plugins/manualRowResize/manualRowResize.js +2 -1
- package/plugins/manualRowResize/manualRowResize.mjs +2 -1
- package/plugins/mergeCells/mergeCells.js +6 -17
- package/plugins/mergeCells/mergeCells.mjs +6 -17
- package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
- package/plugins/nestedHeaders/nestedHeaders.js +209 -75
- package/plugins/nestedHeaders/nestedHeaders.mjs +208 -74
- package/plugins/nestedHeaders/stateManager/headersTree.js +58 -38
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +58 -38
- package/plugins/nestedHeaders/stateManager/index.js +107 -49
- package/plugins/nestedHeaders/stateManager/index.mjs +105 -47
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +1 -1
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +1 -1
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +57 -37
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +57 -37
- package/plugins/nestedHeaders/utils/ghostTable.js +39 -35
- package/plugins/nestedHeaders/utils/ghostTable.mjs +39 -35
- package/plugins/nestedRows/data/dataManager.js +4 -2
- package/plugins/nestedRows/data/dataManager.mjs +4 -2
- package/plugins/nestedRows/nestedRows.js +41 -0
- package/plugins/nestedRows/nestedRows.mjs +41 -0
- package/plugins/persistentState/storage.js +1 -0
- package/plugins/persistentState/storage.mjs +1 -0
- package/plugins/undoRedo/undoRedo.js +2 -1
- package/plugins/undoRedo/undoRedo.mjs +2 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- 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 +41 -33
- package/selection/highlight/visualSelection.mjs +41 -33
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +290 -154
- package/selection/selection.mjs +287 -153
- 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 +2 -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 +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +17 -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 +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +17 -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 +31 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +27 -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 +31 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +27 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +36 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +32 -0
- package/shortcutContexts/commands/selectAll.js +10 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -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/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +163 -91
- package/tableView.mjs +163 -91
- package/translations/changesObservable/observable.js +82 -54
- package/translations/changesObservable/observable.mjs +82 -54
- package/translations/changesObservable/observer.js +24 -11
- package/translations/changesObservable/observer.mjs +24 -11
- package/translations/maps/linkedPhysicalIndexToValueMap.js +14 -8
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +14 -8
- package/utils/dataStructures/tree.js +21 -18
- package/utils/dataStructures/tree.mjs +21 -18
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- 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
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
6
|
+
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
7
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
|
+
/**
|
9
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a columns and
|
10
|
+
* column headers.
|
11
|
+
* This type of selection can occur multiple times.
|
12
|
+
*
|
13
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
14
|
+
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
15
|
+
* @returns {Selection}
|
16
|
+
*/
|
17
|
+
function createHighlight(_ref) {
|
18
|
+
let {
|
19
|
+
columnClassName,
|
20
|
+
...restOptions
|
21
|
+
} = _ref;
|
22
|
+
return new _visualSelection.default({
|
23
|
+
className: columnClassName,
|
24
|
+
...restOptions,
|
25
|
+
selectionType: _src.HIGHLIGHT_COLUMN_TYPE
|
26
|
+
});
|
27
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { HIGHLIGHT_COLUMN_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
|
+
import VisualSelection from "../visualSelection.mjs";
|
3
|
+
/**
|
4
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a columns and
|
5
|
+
* column headers.
|
6
|
+
* This type of selection can occur multiple times.
|
7
|
+
*
|
8
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
9
|
+
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
10
|
+
* @returns {Selection}
|
11
|
+
*/
|
12
|
+
export function createHighlight(_ref) {
|
13
|
+
let {
|
14
|
+
columnClassName,
|
15
|
+
...restOptions
|
16
|
+
} = _ref;
|
17
|
+
return new VisualSelection({
|
18
|
+
className: columnClassName,
|
19
|
+
...restOptions,
|
20
|
+
selectionType: HIGHLIGHT_COLUMN_TYPE
|
21
|
+
});
|
22
|
+
}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
8
|
-
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
9
|
-
* can present on the table only one at the time.
|
9
|
+
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
10
|
+
* This type of selection can present on the table only one at the time.
|
10
11
|
*
|
11
12
|
* @param {object} highlightParams A configuration object to create a highlight.
|
12
13
|
* @param {object} highlightParams.border Border configuration.
|
@@ -19,12 +20,9 @@ function createHighlight(_ref) {
|
|
19
20
|
visualCellRange,
|
20
21
|
...restOptions
|
21
22
|
} = _ref;
|
22
|
-
|
23
|
+
return new _visualSelection.default({
|
23
24
|
...border,
|
24
25
|
...restOptions,
|
25
|
-
selectionType:
|
26
|
+
selectionType: _src.HIGHLIGHT_CUSTOM_SELECTION_TYPE
|
26
27
|
}, visualCellRange);
|
27
|
-
|
28
|
-
}
|
29
|
-
var _default = createHighlight;
|
30
|
-
exports.default = _default;
|
28
|
+
}
|
@@ -1,25 +1,23 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_CUSTOM_SELECTION_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
|
-
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
5
|
-
* can present on the table only one at the time.
|
4
|
+
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
5
|
+
* This type of selection can present on the table only one at the time.
|
6
6
|
*
|
7
7
|
* @param {object} highlightParams A configuration object to create a highlight.
|
8
8
|
* @param {object} highlightParams.border Border configuration.
|
9
9
|
* @param {object} highlightParams.visualCellRange Function to translate visual to renderable coords.
|
10
10
|
* @returns {Selection}
|
11
11
|
*/
|
12
|
-
function createHighlight(_ref) {
|
12
|
+
export function createHighlight(_ref) {
|
13
13
|
let {
|
14
14
|
border,
|
15
15
|
visualCellRange,
|
16
16
|
...restOptions
|
17
17
|
} = _ref;
|
18
|
-
|
18
|
+
return new VisualSelection({
|
19
19
|
...border,
|
20
20
|
...restOptions,
|
21
|
-
selectionType:
|
21
|
+
selectionType: HIGHLIGHT_CUSTOM_SELECTION_TYPE
|
22
22
|
}, visualCellRange);
|
23
|
-
|
24
|
-
}
|
25
|
-
export default createHighlight;
|
23
|
+
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
@@ -15,16 +16,13 @@ function createHighlight(_ref) {
|
|
15
16
|
let {
|
16
17
|
...restOptions
|
17
18
|
} = _ref;
|
18
|
-
|
19
|
+
return new _visualSelection.default({
|
19
20
|
className: 'fill',
|
20
21
|
border: {
|
21
22
|
width: 1,
|
22
23
|
color: '#ff0000'
|
23
24
|
},
|
24
25
|
...restOptions,
|
25
|
-
selectionType:
|
26
|
+
selectionType: _src.HIGHLIGHT_FILL_TYPE
|
26
27
|
});
|
27
|
-
|
28
|
-
}
|
29
|
-
var _default = createHighlight;
|
30
|
-
exports.default = _default;
|
28
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_FILL_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
4
|
* Creates the new instance of Selection, responsible for highlighting cells which are covered by fill handle
|
@@ -7,19 +7,17 @@ import VisualSelection from "../visualSelection.mjs";
|
|
7
7
|
* @param {object} highlightParams A configuration object to create a highlight.
|
8
8
|
* @returns {Selection}
|
9
9
|
*/
|
10
|
-
function createHighlight(_ref) {
|
10
|
+
export function createHighlight(_ref) {
|
11
11
|
let {
|
12
12
|
...restOptions
|
13
13
|
} = _ref;
|
14
|
-
|
14
|
+
return new VisualSelection({
|
15
15
|
className: 'fill',
|
16
16
|
border: {
|
17
17
|
width: 1,
|
18
18
|
color: '#ff0000'
|
19
19
|
},
|
20
20
|
...restOptions,
|
21
|
-
selectionType:
|
21
|
+
selectionType: HIGHLIGHT_FILL_TYPE
|
22
22
|
});
|
23
|
-
|
24
|
-
}
|
25
|
-
export default createHighlight;
|
23
|
+
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
@@ -17,7 +18,7 @@ function createHighlight(_ref) {
|
|
17
18
|
cellCornerVisible,
|
18
19
|
...restOptions
|
19
20
|
} = _ref;
|
20
|
-
|
21
|
+
return new _visualSelection.default({
|
21
22
|
className: 'current',
|
22
23
|
border: {
|
23
24
|
width: 2,
|
@@ -25,9 +26,6 @@ function createHighlight(_ref) {
|
|
25
26
|
cornerVisible: cellCornerVisible
|
26
27
|
},
|
27
28
|
...restOptions,
|
28
|
-
selectionType:
|
29
|
+
selectionType: _src.HIGHLIGHT_FOCUS_TYPE
|
29
30
|
});
|
30
|
-
|
31
|
-
}
|
32
|
-
var _default = createHighlight;
|
33
|
-
exports.default = _default;
|
31
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_FOCUS_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
4
|
* Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection
|
@@ -8,12 +8,12 @@ import VisualSelection from "../visualSelection.mjs";
|
|
8
8
|
* @param {Function} highlightParams.cellCornerVisible Function to determine if cell's corner should be visible.
|
9
9
|
* @returns {Selection}
|
10
10
|
*/
|
11
|
-
function createHighlight(_ref) {
|
11
|
+
export function createHighlight(_ref) {
|
12
12
|
let {
|
13
13
|
cellCornerVisible,
|
14
14
|
...restOptions
|
15
15
|
} = _ref;
|
16
|
-
|
16
|
+
return new VisualSelection({
|
17
17
|
className: 'current',
|
18
18
|
border: {
|
19
19
|
width: 2,
|
@@ -21,8 +21,6 @@ function createHighlight(_ref) {
|
|
21
21
|
cornerVisible: cellCornerVisible
|
22
22
|
},
|
23
23
|
...restOptions,
|
24
|
-
selectionType:
|
24
|
+
selectionType: HIGHLIGHT_FOCUS_TYPE
|
25
25
|
});
|
26
|
-
|
27
|
-
}
|
28
|
-
export default createHighlight;
|
26
|
+
}
|
@@ -1,36 +1,27 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
8
|
-
* Creates the new instance of Selection, responsible for highlighting
|
9
|
-
*
|
9
|
+
* Creates the new instance of Selection, responsible for highlighting column or row headers when
|
10
|
+
* any cell is selected.
|
11
|
+
* This type of selection can occur multiple times.
|
10
12
|
*
|
11
13
|
* @param {object} highlightParams A configuration object to create a highlight.
|
12
14
|
* @param {string} highlightParams.headerClassName Highlighted headers' class name.
|
13
|
-
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
14
|
-
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
15
15
|
* @returns {Selection}
|
16
16
|
*/
|
17
17
|
function createHighlight(_ref) {
|
18
18
|
let {
|
19
19
|
headerClassName,
|
20
|
-
rowClassName,
|
21
|
-
columnClassName,
|
22
20
|
...restOptions
|
23
21
|
} = _ref;
|
24
|
-
|
25
|
-
className:
|
26
|
-
highlightHeaderClassName: headerClassName,
|
27
|
-
highlightRowClassName: rowClassName,
|
28
|
-
highlightColumnClassName: columnClassName,
|
22
|
+
return new _visualSelection.default({
|
23
|
+
className: headerClassName,
|
29
24
|
...restOptions,
|
30
|
-
|
31
|
-
selectionType: _constants.HEADER_TYPE
|
25
|
+
selectionType: _src.HIGHLIGHT_HEADER_TYPE
|
32
26
|
});
|
33
|
-
|
34
|
-
}
|
35
|
-
var _default = createHighlight;
|
36
|
-
exports.default = _default;
|
27
|
+
}
|
@@ -1,31 +1,22 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_HEADER_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
|
-
* Creates the new instance of Selection, responsible for highlighting
|
5
|
-
*
|
4
|
+
* Creates the new instance of Selection, responsible for highlighting column or row headers when
|
5
|
+
* any cell is selected.
|
6
|
+
* This type of selection can occur multiple times.
|
6
7
|
*
|
7
8
|
* @param {object} highlightParams A configuration object to create a highlight.
|
8
9
|
* @param {string} highlightParams.headerClassName Highlighted headers' class name.
|
9
|
-
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
10
|
-
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
11
10
|
* @returns {Selection}
|
12
11
|
*/
|
13
|
-
function createHighlight(_ref) {
|
12
|
+
export function createHighlight(_ref) {
|
14
13
|
let {
|
15
14
|
headerClassName,
|
16
|
-
rowClassName,
|
17
|
-
columnClassName,
|
18
15
|
...restOptions
|
19
16
|
} = _ref;
|
20
|
-
|
21
|
-
className:
|
22
|
-
highlightHeaderClassName: headerClassName,
|
23
|
-
highlightRowClassName: rowClassName,
|
24
|
-
highlightColumnClassName: columnClassName,
|
17
|
+
return new VisualSelection({
|
18
|
+
className: headerClassName,
|
25
19
|
...restOptions,
|
26
|
-
|
27
|
-
selectionType: HEADER_TYPE
|
20
|
+
selectionType: HIGHLIGHT_HEADER_TYPE
|
28
21
|
});
|
29
|
-
|
30
|
-
}
|
31
|
-
export default createHighlight;
|
22
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
6
|
+
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
7
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
|
+
/**
|
9
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a rows and
|
10
|
+
* row headers.
|
11
|
+
* This type of selection can occur multiple times.
|
12
|
+
*
|
13
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
14
|
+
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
15
|
+
* @returns {Selection}
|
16
|
+
*/
|
17
|
+
function createHighlight(_ref) {
|
18
|
+
let {
|
19
|
+
rowClassName,
|
20
|
+
...restOptions
|
21
|
+
} = _ref;
|
22
|
+
return new _visualSelection.default({
|
23
|
+
className: rowClassName,
|
24
|
+
...restOptions,
|
25
|
+
selectionType: _src.HIGHLIGHT_ROW_TYPE
|
26
|
+
});
|
27
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { HIGHLIGHT_ROW_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
|
+
import VisualSelection from "../visualSelection.mjs";
|
3
|
+
/**
|
4
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a rows and
|
5
|
+
* row headers.
|
6
|
+
* This type of selection can occur multiple times.
|
7
|
+
*
|
8
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
9
|
+
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
10
|
+
* @returns {Selection}
|
11
|
+
*/
|
12
|
+
export function createHighlight(_ref) {
|
13
|
+
let {
|
14
|
+
rowClassName,
|
15
|
+
...restOptions
|
16
|
+
} = _ref;
|
17
|
+
return new VisualSelection({
|
18
|
+
className: rowClassName,
|
19
|
+
...restOptions,
|
20
|
+
selectionType: HIGHLIGHT_ROW_TYPE
|
21
|
+
});
|
22
|
+
}
|
@@ -1,16 +1,20 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
4
5
|
var _src = require("./../../3rdparty/walkontable/src");
|
6
|
+
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; }
|
7
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
8
|
+
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); }
|
5
9
|
class VisualSelection extends _src.Selection {
|
6
|
-
/**
|
7
|
-
* Range of selection visually. Visual representation may have representation in a rendered selection.
|
8
|
-
*
|
9
|
-
* @type {null|CellRange}
|
10
|
-
*/
|
11
|
-
visualCellRange = null;
|
12
10
|
constructor(settings, visualCellRange) {
|
13
11
|
super(settings, null);
|
12
|
+
/**
|
13
|
+
* Range of selection visually. Visual representation may have representation in a rendered selection.
|
14
|
+
*
|
15
|
+
* @type {null|CellRange}
|
16
|
+
*/
|
17
|
+
_defineProperty(this, "visualCellRange", null);
|
14
18
|
this.visualCellRange = visualCellRange || null;
|
15
19
|
this.commit();
|
16
20
|
}
|
@@ -58,10 +62,6 @@ class VisualSelection extends _src.Selection {
|
|
58
62
|
return null;
|
59
63
|
}
|
60
64
|
if (visibleFromCoords.row > visibleToCoords.row || visibleFromCoords.col > visibleToCoords.col) {
|
61
|
-
const isHeaderTypeSelection = this.settings.type === 'header' || this.settings.type === 'active-header';
|
62
|
-
if (!isHeaderTypeSelection) {
|
63
|
-
return null;
|
64
|
-
}
|
65
65
|
visibleFromCoords = from;
|
66
66
|
visibleToCoords = to;
|
67
67
|
}
|
@@ -81,13 +81,13 @@ class VisualSelection extends _src.Selection {
|
|
81
81
|
*/
|
82
82
|
getNearestNotHiddenCoords(coords, rowSearchDirection) {
|
83
83
|
let columnSearchDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rowSearchDirection;
|
84
|
-
const nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper
|
84
|
+
const nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper, coords.row, rowSearchDirection);
|
85
85
|
|
86
86
|
// There are no more visual rows in the range.
|
87
87
|
if (nextVisibleRow === null) {
|
88
88
|
return null;
|
89
89
|
}
|
90
|
-
const nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper
|
90
|
+
const nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper, coords.col, columnSearchDirection);
|
91
91
|
|
92
92
|
// There are no more visual columns in the range.
|
93
93
|
if (nextVisibleColumn === null) {
|
@@ -110,12 +110,7 @@ class VisualSelection extends _src.Selection {
|
|
110
110
|
if (visualIndex < 0) {
|
111
111
|
return visualIndex;
|
112
112
|
}
|
113
|
-
|
114
|
-
const isHeaderSelectionType = this.settings.type === 'header' || this.settings.type === 'active-header';
|
115
|
-
if (isHeaderSelectionType && nearestVisualIndex === null) {
|
116
|
-
return -1;
|
117
|
-
}
|
118
|
-
return nearestVisualIndex;
|
113
|
+
return indexMapper.getNearestNotHiddenIndex(visualIndex, searchDirection);
|
119
114
|
}
|
120
115
|
|
121
116
|
/**
|
@@ -152,24 +147,38 @@ class VisualSelection extends _src.Selection {
|
|
152
147
|
* @returns {VisualSelection}
|
153
148
|
*/
|
154
149
|
syncWith(broaderCellRange) {
|
150
|
+
const coordsFrom = broaderCellRange.from.clone().normalize();
|
155
151
|
const rowDirection = broaderCellRange.getVerticalDirection() === 'N-S' ? 1 : -1;
|
156
152
|
const columnDirection = broaderCellRange.getHorizontalDirection() === 'W-E' ? 1 : -1;
|
157
|
-
const
|
158
|
-
|
159
|
-
|
153
|
+
const renderableHighlight = this.settings.visualToRenderableCoords(this.visualCellRange.highlight);
|
154
|
+
let cellCoordsVisual = null;
|
155
|
+
if (renderableHighlight === null || renderableHighlight.col === null || renderableHighlight.row === null) {
|
156
|
+
cellCoordsVisual = this.getNearestNotHiddenCoords(coordsFrom, rowDirection, columnDirection);
|
157
|
+
}
|
158
|
+
if (cellCoordsVisual !== null && broaderCellRange.overlaps(cellCoordsVisual)) {
|
159
|
+
const currentHighlight = broaderCellRange.highlight.clone();
|
160
|
+
if (currentHighlight.row >= 0) {
|
161
|
+
currentHighlight.row = cellCoordsVisual.row;
|
162
|
+
}
|
163
|
+
if (currentHighlight.col >= 0) {
|
164
|
+
currentHighlight.col = cellCoordsVisual.col;
|
165
|
+
}
|
166
|
+
|
167
|
+
// We can't show selection visually now, but we found first visible range in the broader cell range.
|
160
168
|
if (this.cellRange === null) {
|
161
|
-
const
|
162
|
-
this.cellRange = this.settings.createCellRange(
|
169
|
+
const cellCoordsRenderable = this.settings.visualToRenderableCoords(currentHighlight);
|
170
|
+
this.cellRange = this.settings.createCellRange(cellCoordsRenderable);
|
163
171
|
}
|
164
172
|
|
165
173
|
// We set new highlight as it might change (for example, when showing/hiding some cells from the broader selection range)
|
166
174
|
// TODO: It is also handled by the `MergeCells` plugin while adjusting already modified coordinates. Should it?
|
167
|
-
broaderCellRange.setHighlight(
|
168
|
-
return this;
|
175
|
+
broaderCellRange.setHighlight(currentHighlight);
|
169
176
|
}
|
170
177
|
|
171
|
-
//
|
172
|
-
|
178
|
+
// Sync the highlight coords from the visual selection layer with logical coords.
|
179
|
+
if (this.settings.selectionType === 'focus' && renderableHighlight !== null && cellCoordsVisual === null) {
|
180
|
+
broaderCellRange.setHighlight(this.visualCellRange.highlight);
|
181
|
+
}
|
173
182
|
return this;
|
174
183
|
}
|
175
184
|
|
@@ -186,11 +195,7 @@ class VisualSelection extends _src.Selection {
|
|
186
195
|
from,
|
187
196
|
to
|
188
197
|
} = this.cellRange;
|
189
|
-
|
190
|
-
const isColumnUndefined = from.col === null || to.col === null;
|
191
|
-
const topLeftCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.min(from.row, to.row), isColumnUndefined ? null : Math.min(from.col, to.col));
|
192
|
-
const bottomRightCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.max(from.row, to.row), isColumnUndefined ? null : Math.max(from.col, to.col));
|
193
|
-
return [topLeftCorner.row, topLeftCorner.col, bottomRightCorner.row, bottomRightCorner.col];
|
198
|
+
return [Math.min(from.row, to.row), Math.min(from.col, to.col), Math.max(from.row, to.row), Math.max(from.col, to.col)];
|
194
199
|
}
|
195
200
|
|
196
201
|
/**
|
@@ -213,11 +218,14 @@ class VisualSelection extends _src.Selection {
|
|
213
218
|
* points to the beginning of the selection.
|
214
219
|
* @param {CellCoords} visualToCoords The CellCoords object which contains coordinates that
|
215
220
|
* points to the end of the selection.
|
216
|
-
* @returns {CellRange}
|
221
|
+
* @returns {CellRange|null}
|
217
222
|
*/
|
218
223
|
createRenderableCellRange(visualFromCoords, visualToCoords) {
|
219
224
|
const renderableFromCoords = this.settings.visualToRenderableCoords(visualFromCoords);
|
220
225
|
const renderableToCoords = this.settings.visualToRenderableCoords(visualToCoords);
|
226
|
+
if (renderableFromCoords.row === null || renderableFromCoords.col === null || renderableToCoords.row === null || renderableToCoords.col === null) {
|
227
|
+
return null;
|
228
|
+
}
|
221
229
|
return this.settings.createCellRange(renderableFromCoords, renderableFromCoords, renderableToCoords);
|
222
230
|
}
|
223
231
|
}
|