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
@@ -1,4 +1,12 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
+
import "core-js/modules/es.error.cause.js";
|
3
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
6
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
7
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
8
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
9
|
+
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; } }
|
2
10
|
import { BasePlugin } from "../base/index.mjs";
|
3
11
|
import { addClass } from "../../helpers/dom/element.mjs";
|
4
12
|
import { rangeEach } from "../../helpers/number.mjs";
|
@@ -123,29 +131,38 @@ export const PLUGIN_PRIORITY = 320;
|
|
123
131
|
* ```
|
124
132
|
* :::
|
125
133
|
*/
|
134
|
+
var _settings = /*#__PURE__*/new WeakMap();
|
135
|
+
var _hiddenRowsMap = /*#__PURE__*/new WeakMap();
|
126
136
|
export class HiddenRows extends BasePlugin {
|
137
|
+
constructor() {
|
138
|
+
super(...arguments);
|
139
|
+
/**
|
140
|
+
* Cached settings from Handsontable settings.
|
141
|
+
*
|
142
|
+
* @private
|
143
|
+
* @type {object}
|
144
|
+
*/
|
145
|
+
_classPrivateFieldInitSpec(this, _settings, {
|
146
|
+
writable: true,
|
147
|
+
value: {}
|
148
|
+
});
|
149
|
+
/**
|
150
|
+
* Map of hidden rows by the plugin.
|
151
|
+
*
|
152
|
+
* @private
|
153
|
+
* @type {HidingMap|null}
|
154
|
+
*/
|
155
|
+
_classPrivateFieldInitSpec(this, _hiddenRowsMap, {
|
156
|
+
writable: true,
|
157
|
+
value: null
|
158
|
+
});
|
159
|
+
}
|
127
160
|
static get PLUGIN_KEY() {
|
128
161
|
return PLUGIN_KEY;
|
129
162
|
}
|
130
163
|
static get PLUGIN_PRIORITY() {
|
131
164
|
return PLUGIN_PRIORITY;
|
132
165
|
}
|
133
|
-
|
134
|
-
/**
|
135
|
-
* Cached settings from Handsontable settings.
|
136
|
-
*
|
137
|
-
* @private
|
138
|
-
* @type {object}
|
139
|
-
*/
|
140
|
-
#settings = {};
|
141
|
-
/**
|
142
|
-
* Map of hidden rows by the plugin.
|
143
|
-
*
|
144
|
-
* @private
|
145
|
-
* @type {HidingMap|null}
|
146
|
-
*/
|
147
|
-
#hiddenRowsMap = null;
|
148
|
-
|
149
166
|
/**
|
150
167
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
151
168
|
* hook and if it returns `true` then the {@link HiddenRows#enablePlugin} method is called.
|
@@ -166,14 +183,14 @@ export class HiddenRows extends BasePlugin {
|
|
166
183
|
}
|
167
184
|
const pluginSettings = this.hot.getSettings()[PLUGIN_KEY];
|
168
185
|
if (isObject(pluginSettings)) {
|
169
|
-
this
|
186
|
+
_classPrivateFieldSet(this, _settings, pluginSettings);
|
170
187
|
if (isUndefined(pluginSettings.copyPasteEnabled)) {
|
171
188
|
pluginSettings.copyPasteEnabled = true;
|
172
189
|
}
|
173
190
|
}
|
174
|
-
this
|
175
|
-
this
|
176
|
-
this.hot.rowIndexMapper.registerMap(this.pluginName, this
|
191
|
+
_classPrivateFieldSet(this, _hiddenRowsMap, new HidingMap());
|
192
|
+
_classPrivateFieldGet(this, _hiddenRowsMap).addLocalHook('init', () => this.onMapInit());
|
193
|
+
this.hot.rowIndexMapper.registerMap(this.pluginName, _classPrivateFieldGet(this, _hiddenRowsMap));
|
177
194
|
this.addHook('afterContextMenuDefaultOptions', function () {
|
178
195
|
return _this.onAfterContextMenuDefaultOptions(...arguments);
|
179
196
|
});
|
@@ -203,7 +220,7 @@ export class HiddenRows extends BasePlugin {
|
|
203
220
|
*/
|
204
221
|
disablePlugin() {
|
205
222
|
this.hot.rowIndexMapper.unregisterMap(this.pluginName);
|
206
|
-
this
|
223
|
+
_classPrivateFieldSet(this, _settings, {});
|
207
224
|
super.disablePlugin();
|
208
225
|
this.resetCellsMeta();
|
209
226
|
}
|
@@ -217,7 +234,7 @@ export class HiddenRows extends BasePlugin {
|
|
217
234
|
const currentHideConfig = this.getHiddenRows();
|
218
235
|
const isValidConfig = this.isValidConfig(rows);
|
219
236
|
let destinationHideConfig = currentHideConfig;
|
220
|
-
const hidingMapValues = this
|
237
|
+
const hidingMapValues = _classPrivateFieldGet(this, _hiddenRowsMap).getValues().slice();
|
221
238
|
const isAnyRowShowed = rows.length > 0;
|
222
239
|
if (isValidConfig && isAnyRowShowed) {
|
223
240
|
const physicalRows = rows.map(visualRow => this.hot.toPhysicalRow(visualRow));
|
@@ -240,7 +257,7 @@ export class HiddenRows extends BasePlugin {
|
|
240
257
|
return;
|
241
258
|
}
|
242
259
|
if (isValidConfig && isAnyRowShowed) {
|
243
|
-
this
|
260
|
+
_classPrivateFieldGet(this, _hiddenRowsMap).setValues(hidingMapValues);
|
244
261
|
}
|
245
262
|
this.hot.runHooks('afterUnhideRows', currentHideConfig, destinationHideConfig, isValidConfig && isAnyRowShowed, isValidConfig && destinationHideConfig.length < currentHideConfig.length);
|
246
263
|
}
|
@@ -276,7 +293,7 @@ export class HiddenRows extends BasePlugin {
|
|
276
293
|
if (isConfigValid) {
|
277
294
|
this.hot.batchExecution(() => {
|
278
295
|
arrayEach(rows, visualRow => {
|
279
|
-
this
|
296
|
+
_classPrivateFieldGet(this, _hiddenRowsMap).setValueAtIndex(this.hot.toPhysicalRow(visualRow), true);
|
280
297
|
});
|
281
298
|
}, true);
|
282
299
|
}
|
@@ -301,7 +318,7 @@ export class HiddenRows extends BasePlugin {
|
|
301
318
|
* @returns {number[]}
|
302
319
|
*/
|
303
320
|
getHiddenRows() {
|
304
|
-
return arrayMap(this
|
321
|
+
return arrayMap(_classPrivateFieldGet(this, _hiddenRowsMap).getHiddenIndexes(), physicalRowIndex => {
|
305
322
|
return this.hot.toVisualRow(physicalRowIndex);
|
306
323
|
});
|
307
324
|
}
|
@@ -313,7 +330,7 @@ export class HiddenRows extends BasePlugin {
|
|
313
330
|
* @returns {boolean}
|
314
331
|
*/
|
315
332
|
isHidden(row) {
|
316
|
-
return this
|
333
|
+
return _classPrivateFieldGet(this, _hiddenRowsMap).getValueAtIndex(this.hot.toPhysicalRow(row)) || false;
|
317
334
|
}
|
318
335
|
|
319
336
|
/**
|
@@ -369,7 +386,7 @@ export class HiddenRows extends BasePlugin {
|
|
369
386
|
* @param {object} cellProperties Object containing the cell properties.
|
370
387
|
*/
|
371
388
|
onAfterGetCellMeta(row, column, cellProperties) {
|
372
|
-
if (this
|
389
|
+
if (_classPrivateFieldGet(this, _settings).copyPasteEnabled === false && this.isHidden(row)) {
|
373
390
|
// Cell property handled by the `Autofill` and the `CopyPaste` plugins.
|
374
391
|
cellProperties.skipRowOnPaste = true;
|
375
392
|
}
|
@@ -399,7 +416,7 @@ export class HiddenRows extends BasePlugin {
|
|
399
416
|
*/
|
400
417
|
onModifyCopyableRange(ranges) {
|
401
418
|
// Ranges shouldn't be modified when `copyPasteEnabled` option is set to `true` (by default).
|
402
|
-
if (this
|
419
|
+
if (_classPrivateFieldGet(this, _settings).copyPasteEnabled) {
|
403
420
|
return ranges;
|
404
421
|
}
|
405
422
|
const newRanges = [];
|
@@ -442,7 +459,7 @@ export class HiddenRows extends BasePlugin {
|
|
442
459
|
* @param {HTMLElement} TH Header's TH element.
|
443
460
|
*/
|
444
461
|
onAfterGetRowHeader(row, TH) {
|
445
|
-
if (!this
|
462
|
+
if (!_classPrivateFieldGet(this, _settings).indicators || row < 0) {
|
446
463
|
return;
|
447
464
|
}
|
448
465
|
const classList = [];
|
@@ -473,8 +490,8 @@ export class HiddenRows extends BasePlugin {
|
|
473
490
|
* @private
|
474
491
|
*/
|
475
492
|
onMapInit() {
|
476
|
-
if (Array.isArray(this
|
477
|
-
this.hideRows(this
|
493
|
+
if (Array.isArray(_classPrivateFieldGet(this, _settings).rows)) {
|
494
|
+
this.hideRows(_classPrivateFieldGet(this, _settings).rows);
|
478
495
|
}
|
479
496
|
}
|
480
497
|
|
@@ -482,8 +499,8 @@ export class HiddenRows extends BasePlugin {
|
|
482
499
|
* Destroys the plugin instance.
|
483
500
|
*/
|
484
501
|
destroy() {
|
485
|
-
this
|
486
|
-
this
|
502
|
+
_classPrivateFieldSet(this, _settings, null);
|
503
|
+
_classPrivateFieldSet(this, _hiddenRowsMap, null);
|
487
504
|
super.destroy();
|
488
505
|
}
|
489
506
|
}
|
@@ -292,8 +292,9 @@ class ManualRowResize extends _base.BasePlugin {
|
|
292
292
|
* @returns {boolean}
|
293
293
|
*/
|
294
294
|
checkIfRowHeader(element) {
|
295
|
+
var _element$parentNode;
|
295
296
|
const thElement = (0, _element.closest)(element, ['TH'], this.hot.rootElement);
|
296
|
-
return thElement && element.parentNode
|
297
|
+
return thElement && ((_element$parentNode = element.parentNode) === null || _element$parentNode === void 0 || (_element$parentNode = _element$parentNode.parentNode) === null || _element$parentNode === void 0 ? void 0 : _element$parentNode.tagName) === 'TBODY';
|
297
298
|
}
|
298
299
|
|
299
300
|
/**
|
@@ -284,8 +284,9 @@ export class ManualRowResize extends BasePlugin {
|
|
284
284
|
* @returns {boolean}
|
285
285
|
*/
|
286
286
|
checkIfRowHeader(element) {
|
287
|
+
var _element$parentNode;
|
287
288
|
const thElement = closest(element, ['TH'], this.hot.rootElement);
|
288
|
-
return thElement && element.parentNode
|
289
|
+
return thElement && ((_element$parentNode = element.parentNode) === null || _element$parentNode === void 0 || (_element$parentNode = _element$parentNode.parentNode) === null || _element$parentNode === void 0 ? void 0 : _element$parentNode.tagName) === 'TBODY';
|
289
290
|
}
|
290
291
|
|
291
292
|
/**
|
@@ -188,9 +188,6 @@ class MergeCells extends _base.BasePlugin {
|
|
188
188
|
this.addHook('afterDrawSelection', function () {
|
189
189
|
return _this.onAfterDrawSelection(...arguments);
|
190
190
|
});
|
191
|
-
this.addHook('beforeRemoveCellClassNames', function () {
|
192
|
-
return _this.onBeforeRemoveCellClassNames(...arguments);
|
193
|
-
});
|
194
191
|
this.addHook('beforeUndoStackChange', (action, source) => {
|
195
192
|
if (source === 'MergeCells') {
|
196
193
|
return false;
|
@@ -252,7 +249,7 @@ class MergeCells extends _base.BasePlugin {
|
|
252
249
|
rowIndexesToRefresh = [...new Set(rowIndexesToRefresh)];
|
253
250
|
rowIndexesToRefresh.forEach(rowIndex => {
|
254
251
|
const renderableRowIndex = this.hot.rowIndexMapper.getRenderableFromVisualIndex(rowIndex);
|
255
|
-
this.hot.view._wt.wtOverlays.getOverlays(true).map(overlay => overlay
|
252
|
+
this.hot.view._wt.wtOverlays.getOverlays(true).map(overlay => (overlay === null || overlay === void 0 ? void 0 : overlay.name) === 'master' ? overlay : overlay.clone.wtTable).forEach(wtTableRef => {
|
256
253
|
const rowToRefresh = wtTableRef.getRow(renderableRowIndex);
|
257
254
|
if (rowToRefresh) {
|
258
255
|
// Modify the TR's `background` property to later modify it asynchronously.
|
@@ -574,8 +571,11 @@ class MergeCells extends _base.BasePlugin {
|
|
574
571
|
gridContext.addShortcut({
|
575
572
|
keys: [['Control', 'm']],
|
576
573
|
callback: () => {
|
577
|
-
this.
|
578
|
-
|
574
|
+
const range = this.hot.getSelectedRangeLast();
|
575
|
+
if (range && !range.isSingleHeader()) {
|
576
|
+
this.toggleMerge(range);
|
577
|
+
this.hot.render();
|
578
|
+
}
|
579
579
|
},
|
580
580
|
runOnlyIf: event => !event.altKey,
|
581
581
|
// right ALT in some systems triggers ALT+CTRL
|
@@ -1198,16 +1198,5 @@ class MergeCells extends _base.BasePlugin {
|
|
1198
1198
|
}
|
1199
1199
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1200
1200
|
}
|
1201
|
-
|
1202
|
-
/**
|
1203
|
-
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1204
|
-
*
|
1205
|
-
* @private
|
1206
|
-
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1207
|
-
* all the cells in the table.
|
1208
|
-
*/
|
1209
|
-
onBeforeRemoveCellClassNames() {
|
1210
|
-
return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
|
1211
|
-
}
|
1212
1201
|
}
|
1213
1202
|
exports.MergeCells = MergeCells;
|
@@ -182,9 +182,6 @@ export class MergeCells extends BasePlugin {
|
|
182
182
|
this.addHook('afterDrawSelection', function () {
|
183
183
|
return _this.onAfterDrawSelection(...arguments);
|
184
184
|
});
|
185
|
-
this.addHook('beforeRemoveCellClassNames', function () {
|
186
|
-
return _this.onBeforeRemoveCellClassNames(...arguments);
|
187
|
-
});
|
188
185
|
this.addHook('beforeUndoStackChange', (action, source) => {
|
189
186
|
if (source === 'MergeCells') {
|
190
187
|
return false;
|
@@ -246,7 +243,7 @@ export class MergeCells extends BasePlugin {
|
|
246
243
|
rowIndexesToRefresh = [...new Set(rowIndexesToRefresh)];
|
247
244
|
rowIndexesToRefresh.forEach(rowIndex => {
|
248
245
|
const renderableRowIndex = this.hot.rowIndexMapper.getRenderableFromVisualIndex(rowIndex);
|
249
|
-
this.hot.view._wt.wtOverlays.getOverlays(true).map(overlay => overlay
|
246
|
+
this.hot.view._wt.wtOverlays.getOverlays(true).map(overlay => (overlay === null || overlay === void 0 ? void 0 : overlay.name) === 'master' ? overlay : overlay.clone.wtTable).forEach(wtTableRef => {
|
250
247
|
const rowToRefresh = wtTableRef.getRow(renderableRowIndex);
|
251
248
|
if (rowToRefresh) {
|
252
249
|
// Modify the TR's `background` property to later modify it asynchronously.
|
@@ -568,8 +565,11 @@ export class MergeCells extends BasePlugin {
|
|
568
565
|
gridContext.addShortcut({
|
569
566
|
keys: [['Control', 'm']],
|
570
567
|
callback: () => {
|
571
|
-
this.
|
572
|
-
|
568
|
+
const range = this.hot.getSelectedRangeLast();
|
569
|
+
if (range && !range.isSingleHeader()) {
|
570
|
+
this.toggleMerge(range);
|
571
|
+
this.hot.render();
|
572
|
+
}
|
573
573
|
},
|
574
574
|
runOnlyIf: event => !event.altKey,
|
575
575
|
// right ALT in some systems triggers ALT+CTRL
|
@@ -1192,15 +1192,4 @@ export class MergeCells extends BasePlugin {
|
|
1192
1192
|
}
|
1193
1193
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1194
1194
|
}
|
1195
|
-
|
1196
|
-
/**
|
1197
|
-
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1198
|
-
*
|
1199
|
-
* @private
|
1200
|
-
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1201
|
-
* all the cells in the table.
|
1202
|
-
*/
|
1203
|
-
onBeforeRemoveCellClassNames() {
|
1204
|
-
return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
|
1205
|
-
}
|
1206
1195
|
}
|
@@ -12,8 +12,8 @@ const PLUGIN_KEY = 'multiColumnSorting';
|
|
12
12
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
13
13
|
const PLUGIN_PRIORITY = 170;
|
14
14
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
15
|
-
const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
16
15
|
const CONFLICTED_PLUGIN_KEY = 'columnSorting';
|
16
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
17
17
|
(0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
|
18
18
|
|
19
19
|
/**
|
@@ -113,6 +113,41 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
|
|
113
113
|
super.disablePlugin();
|
114
114
|
}
|
115
115
|
|
116
|
+
/**
|
117
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
118
|
+
*
|
119
|
+
* @private
|
120
|
+
*/
|
121
|
+
registerShortcuts() {
|
122
|
+
super.registerShortcuts();
|
123
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
124
|
+
keys: [['Control/Meta', 'Enter']],
|
125
|
+
callback: () => {
|
126
|
+
const {
|
127
|
+
highlight
|
128
|
+
} = this.hot.getSelectedRangeLast();
|
129
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
130
|
+
this.sort(this.getNextSortConfig(highlight.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
|
131
|
+
}
|
132
|
+
},
|
133
|
+
runOnlyIf: () => {
|
134
|
+
var _this$hot$getSelected;
|
135
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
136
|
+
},
|
137
|
+
group: SHORTCUTS_GROUP
|
138
|
+
});
|
139
|
+
}
|
140
|
+
|
141
|
+
/**
|
142
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
143
|
+
*
|
144
|
+
* @private
|
145
|
+
*/
|
146
|
+
unregisterShortcuts() {
|
147
|
+
super.unregisterShortcuts();
|
148
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
149
|
+
}
|
150
|
+
|
116
151
|
/**
|
117
152
|
* Sorts the table by chosen columns and orders.
|
118
153
|
*
|
@@ -262,7 +297,7 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
|
|
262
297
|
if (this.hot.getShortcutManager().isCtrlPressed()) {
|
263
298
|
this.hot.deselectCell();
|
264
299
|
this.hot.selectColumns(coords.col);
|
265
|
-
this.sort(this.getNextSortConfig(coords.col, APPEND_COLUMN_CONFIG_STRATEGY));
|
300
|
+
this.sort(this.getNextSortConfig(coords.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
|
266
301
|
} else {
|
267
302
|
this.sort(this.getColumnNextConfig(coords.col));
|
268
303
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ColumnSorting } from "../columnSorting/index.mjs";
|
1
|
+
import { APPEND_COLUMN_CONFIG_STRATEGY, ColumnSorting } from "../columnSorting/index.mjs";
|
2
2
|
import { registerRootComparator } from "../columnSorting/sortService/index.mjs";
|
3
3
|
import { wasHeaderClickedProperly } from "../columnSorting/utils.mjs";
|
4
4
|
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
@@ -7,8 +7,8 @@ import { warnAboutPluginsConflict } from "./utils.mjs";
|
|
7
7
|
import { getClassesToAdd, getClassesToRemove } from "./domHelpers.mjs";
|
8
8
|
export const PLUGIN_KEY = 'multiColumnSorting';
|
9
9
|
export const PLUGIN_PRIORITY = 170;
|
10
|
-
const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
11
10
|
const CONFLICTED_PLUGIN_KEY = 'columnSorting';
|
11
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
12
12
|
registerRootComparator(PLUGIN_KEY, rootComparator);
|
13
13
|
|
14
14
|
/**
|
@@ -108,6 +108,41 @@ export class MultiColumnSorting extends ColumnSorting {
|
|
108
108
|
super.disablePlugin();
|
109
109
|
}
|
110
110
|
|
111
|
+
/**
|
112
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
113
|
+
*
|
114
|
+
* @private
|
115
|
+
*/
|
116
|
+
registerShortcuts() {
|
117
|
+
super.registerShortcuts();
|
118
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
119
|
+
keys: [['Control/Meta', 'Enter']],
|
120
|
+
callback: () => {
|
121
|
+
const {
|
122
|
+
highlight
|
123
|
+
} = this.hot.getSelectedRangeLast();
|
124
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
125
|
+
this.sort(this.getNextSortConfig(highlight.col, APPEND_COLUMN_CONFIG_STRATEGY));
|
126
|
+
}
|
127
|
+
},
|
128
|
+
runOnlyIf: () => {
|
129
|
+
var _this$hot$getSelected;
|
130
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
131
|
+
},
|
132
|
+
group: SHORTCUTS_GROUP
|
133
|
+
});
|
134
|
+
}
|
135
|
+
|
136
|
+
/**
|
137
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
138
|
+
*
|
139
|
+
* @private
|
140
|
+
*/
|
141
|
+
unregisterShortcuts() {
|
142
|
+
super.unregisterShortcuts();
|
143
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
144
|
+
}
|
145
|
+
|
111
146
|
/**
|
112
147
|
* Sorts the table by chosen columns and orders.
|
113
148
|
*
|