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
@@ -11,12 +11,23 @@ var _element = require("../../helpers/dom/element");
|
|
11
11
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
12
12
|
var _event = require("../../helpers/dom/event");
|
13
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
15
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
16
|
+
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; }
|
17
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
18
|
+
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); }
|
19
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
20
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
21
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
22
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
23
|
+
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; } }
|
14
24
|
const PLUGIN_KEY = 'collapsibleColumns';
|
15
25
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
16
26
|
const PLUGIN_PRIORITY = 290;
|
17
27
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
18
28
|
const SETTING_KEYS = ['nestedHeaders'];
|
19
29
|
const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
|
30
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
20
31
|
const actionDictionary = new Map([['collapse', {
|
21
32
|
hideColumn: true,
|
22
33
|
beforeHook: 'beforeColumnCollapse',
|
@@ -98,7 +109,42 @@ const actionDictionary = new Map([['collapse', {
|
|
98
109
|
* ```
|
99
110
|
* :::
|
100
111
|
*/
|
112
|
+
var _collapsedColumnsMap = /*#__PURE__*/new WeakMap();
|
101
113
|
class CollapsibleColumns extends _base.BasePlugin {
|
114
|
+
constructor() {
|
115
|
+
super(...arguments);
|
116
|
+
/**
|
117
|
+
* Cached reference to the NestedHeaders plugin.
|
118
|
+
*
|
119
|
+
* @private
|
120
|
+
* @type {NestedHeaders}
|
121
|
+
*/
|
122
|
+
_defineProperty(this, "nestedHeadersPlugin", null);
|
123
|
+
/**
|
124
|
+
* Event manager instance reference.
|
125
|
+
*
|
126
|
+
* @private
|
127
|
+
* @type {EventManager}
|
128
|
+
*/
|
129
|
+
_defineProperty(this, "eventManager", new _eventManager.default(this));
|
130
|
+
/**
|
131
|
+
* The NestedHeaders plugin StateManager instance.
|
132
|
+
*
|
133
|
+
* @private
|
134
|
+
* @type {StateManager}
|
135
|
+
*/
|
136
|
+
_defineProperty(this, "headerStateManager", null);
|
137
|
+
/**
|
138
|
+
* Map of collapsed columns by the plugin.
|
139
|
+
*
|
140
|
+
* @private
|
141
|
+
* @type {HidingMap|null}
|
142
|
+
*/
|
143
|
+
_classPrivateFieldInitSpec(this, _collapsedColumnsMap, {
|
144
|
+
writable: true,
|
145
|
+
value: null
|
146
|
+
});
|
147
|
+
}
|
102
148
|
static get PLUGIN_KEY() {
|
103
149
|
return PLUGIN_KEY;
|
104
150
|
}
|
@@ -111,36 +157,6 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
111
157
|
static get SETTING_KEYS() {
|
112
158
|
return [PLUGIN_KEY, ...SETTING_KEYS];
|
113
159
|
}
|
114
|
-
|
115
|
-
/**
|
116
|
-
* Cached reference to the NestedHeaders plugin.
|
117
|
-
*
|
118
|
-
* @private
|
119
|
-
* @type {NestedHeaders}
|
120
|
-
*/
|
121
|
-
nestedHeadersPlugin = null;
|
122
|
-
/**
|
123
|
-
* Event manager instance reference.
|
124
|
-
*
|
125
|
-
* @private
|
126
|
-
* @type {EventManager}
|
127
|
-
*/
|
128
|
-
eventManager = new _eventManager.default(this);
|
129
|
-
/**
|
130
|
-
* The NestedHeaders plugin StateManager instance.
|
131
|
-
*
|
132
|
-
* @private
|
133
|
-
* @type {StateManager}
|
134
|
-
*/
|
135
|
-
headerStateManager = null;
|
136
|
-
/**
|
137
|
-
* Map of collapsed columns by the plugin.
|
138
|
-
*
|
139
|
-
* @private
|
140
|
-
* @type {HidingMap|null}
|
141
|
-
*/
|
142
|
-
#collapsedColumnsMap = null;
|
143
|
-
|
144
160
|
/**
|
145
161
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
146
162
|
* hook and if it returns `true` then the {@link CollapsibleColumns#enablePlugin} method is called.
|
@@ -165,7 +181,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
165
181
|
if (!nestedHeaders) {
|
166
182
|
(0, _console.warn)('You need to configure the Nested Headers plugin in order to use collapsible headers.');
|
167
183
|
}
|
168
|
-
this
|
184
|
+
_classPrivateFieldSet(this, _collapsedColumnsMap, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));
|
169
185
|
this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');
|
170
186
|
this.headerStateManager = this.nestedHeadersPlugin.getStateManager();
|
171
187
|
this.addHook('init', () => this.onInit());
|
@@ -176,6 +192,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
176
192
|
return _this.onAfterGetColHeader(...arguments);
|
177
193
|
});
|
178
194
|
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
|
195
|
+
this.registerShortcuts();
|
179
196
|
super.enablePlugin();
|
180
197
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
181
198
|
this.updatePlugin();
|
@@ -221,12 +238,64 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
221
238
|
*/
|
222
239
|
disablePlugin() {
|
223
240
|
this.hot.columnIndexMapper.unregisterMap(this.pluginName);
|
224
|
-
this
|
241
|
+
_classPrivateFieldSet(this, _collapsedColumnsMap, null);
|
225
242
|
this.nestedHeadersPlugin = null;
|
243
|
+
this.unregisterShortcuts();
|
226
244
|
this.clearButtons();
|
227
245
|
super.disablePlugin();
|
228
246
|
}
|
229
247
|
|
248
|
+
/**
|
249
|
+
* Register shortcuts responsible for toggling collapsible columns.
|
250
|
+
*
|
251
|
+
* @private
|
252
|
+
*/
|
253
|
+
registerShortcuts() {
|
254
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
255
|
+
keys: [['Enter']],
|
256
|
+
callback: () => {
|
257
|
+
var _this$headerStateMana;
|
258
|
+
const {
|
259
|
+
row,
|
260
|
+
col
|
261
|
+
} = this.hot.getSelectedRangeLast().highlight;
|
262
|
+
const {
|
263
|
+
collapsible,
|
264
|
+
isCollapsed,
|
265
|
+
columnIndex
|
266
|
+
} = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
|
267
|
+
if (!collapsible) {
|
268
|
+
return;
|
269
|
+
}
|
270
|
+
if (isCollapsed) {
|
271
|
+
this.expandSection({
|
272
|
+
row,
|
273
|
+
col: columnIndex
|
274
|
+
});
|
275
|
+
} else {
|
276
|
+
this.collapseSection({
|
277
|
+
row,
|
278
|
+
col: columnIndex
|
279
|
+
});
|
280
|
+
}
|
281
|
+
},
|
282
|
+
runOnlyIf: () => {
|
283
|
+
var _this$hot$getSelected;
|
284
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
285
|
+
},
|
286
|
+
group: SHORTCUTS_GROUP
|
287
|
+
});
|
288
|
+
}
|
289
|
+
|
290
|
+
/**
|
291
|
+
* Unregister shortcuts responsible for toggling collapsible columns.
|
292
|
+
*
|
293
|
+
* @private
|
294
|
+
*/
|
295
|
+
unregisterShortcuts() {
|
296
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
297
|
+
}
|
298
|
+
|
230
299
|
/**
|
231
300
|
* Clears the expand/collapse buttons.
|
232
301
|
*
|
@@ -347,7 +416,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
347
416
|
});
|
348
417
|
let isActionPossible = filteredCoords.length > 0;
|
349
418
|
(0, _array.arrayEach)(filteredCoords, _ref2 => {
|
350
|
-
var _this$
|
419
|
+
var _this$headerStateMana2;
|
351
420
|
let {
|
352
421
|
row,
|
353
422
|
col: column
|
@@ -355,7 +424,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
355
424
|
const {
|
356
425
|
collapsible,
|
357
426
|
isCollapsed
|
358
|
-
} = (_this$
|
427
|
+
} = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
|
359
428
|
if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
|
360
429
|
isActionPossible = false;
|
361
430
|
return false;
|
@@ -398,7 +467,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
398
467
|
}
|
399
468
|
this.hot.batchExecution(() => {
|
400
469
|
(0, _array.arrayEach)(affectedColumnsIndexes, visualColumn => {
|
401
|
-
this
|
470
|
+
_classPrivateFieldGet(this, _collapsedColumnsMap).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
|
402
471
|
});
|
403
472
|
}, true);
|
404
473
|
const isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
|
@@ -414,7 +483,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
414
483
|
* @returns {number[]}
|
415
484
|
*/
|
416
485
|
getCollapsedColumns() {
|
417
|
-
return this
|
486
|
+
return _classPrivateFieldGet(this, _collapsedColumnsMap).getHiddenIndexes();
|
418
487
|
}
|
419
488
|
|
420
489
|
/**
|
@@ -427,12 +496,12 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
427
496
|
* values counting from 0 to N).
|
428
497
|
*/
|
429
498
|
onAfterGetColHeader(column, TH, headerLevel) {
|
430
|
-
var _this$
|
499
|
+
var _this$headerStateMana3;
|
431
500
|
const {
|
432
501
|
collapsible,
|
433
502
|
origColspan,
|
434
503
|
isCollapsed
|
435
|
-
} = (_this$
|
504
|
+
} = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
|
436
505
|
const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
|
437
506
|
let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
|
438
507
|
if (isNodeCollapsible) {
|
@@ -450,7 +519,8 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
450
519
|
(0, _element.fastInnerText)(collapsibleElement, '-');
|
451
520
|
}
|
452
521
|
} else {
|
453
|
-
|
522
|
+
var _collapsibleElement;
|
523
|
+
(_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 ? void 0 : _collapsibleElement.remove();
|
454
524
|
}
|
455
525
|
}
|
456
526
|
|
@@ -502,7 +572,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
502
572
|
* Destroys the plugin instance.
|
503
573
|
*/
|
504
574
|
destroy() {
|
505
|
-
this
|
575
|
+
_classPrivateFieldSet(this, _collapsedColumnsMap, null);
|
506
576
|
super.destroy();
|
507
577
|
}
|
508
578
|
}
|
@@ -1,5 +1,15 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.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 _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; }
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
7
|
+
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); }
|
8
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
9
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
10
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
11
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
12
|
+
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; } }
|
3
13
|
import { BasePlugin } from "../base/index.mjs";
|
4
14
|
import { arrayEach, arrayFilter, arrayUnique } from "../../helpers/array.mjs";
|
5
15
|
import { rangeEach } from "../../helpers/number.mjs";
|
@@ -11,6 +21,7 @@ export const PLUGIN_KEY = 'collapsibleColumns';
|
|
11
21
|
export const PLUGIN_PRIORITY = 290;
|
12
22
|
const SETTING_KEYS = ['nestedHeaders'];
|
13
23
|
const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
|
24
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
14
25
|
const actionDictionary = new Map([['collapse', {
|
15
26
|
hideColumn: true,
|
16
27
|
beforeHook: 'beforeColumnCollapse',
|
@@ -92,7 +103,42 @@ const actionDictionary = new Map([['collapse', {
|
|
92
103
|
* ```
|
93
104
|
* :::
|
94
105
|
*/
|
106
|
+
var _collapsedColumnsMap = /*#__PURE__*/new WeakMap();
|
95
107
|
export class CollapsibleColumns extends BasePlugin {
|
108
|
+
constructor() {
|
109
|
+
super(...arguments);
|
110
|
+
/**
|
111
|
+
* Cached reference to the NestedHeaders plugin.
|
112
|
+
*
|
113
|
+
* @private
|
114
|
+
* @type {NestedHeaders}
|
115
|
+
*/
|
116
|
+
_defineProperty(this, "nestedHeadersPlugin", null);
|
117
|
+
/**
|
118
|
+
* Event manager instance reference.
|
119
|
+
*
|
120
|
+
* @private
|
121
|
+
* @type {EventManager}
|
122
|
+
*/
|
123
|
+
_defineProperty(this, "eventManager", new EventManager(this));
|
124
|
+
/**
|
125
|
+
* The NestedHeaders plugin StateManager instance.
|
126
|
+
*
|
127
|
+
* @private
|
128
|
+
* @type {StateManager}
|
129
|
+
*/
|
130
|
+
_defineProperty(this, "headerStateManager", null);
|
131
|
+
/**
|
132
|
+
* Map of collapsed columns by the plugin.
|
133
|
+
*
|
134
|
+
* @private
|
135
|
+
* @type {HidingMap|null}
|
136
|
+
*/
|
137
|
+
_classPrivateFieldInitSpec(this, _collapsedColumnsMap, {
|
138
|
+
writable: true,
|
139
|
+
value: null
|
140
|
+
});
|
141
|
+
}
|
96
142
|
static get PLUGIN_KEY() {
|
97
143
|
return PLUGIN_KEY;
|
98
144
|
}
|
@@ -105,36 +151,6 @@ export class CollapsibleColumns extends BasePlugin {
|
|
105
151
|
static get SETTING_KEYS() {
|
106
152
|
return [PLUGIN_KEY, ...SETTING_KEYS];
|
107
153
|
}
|
108
|
-
|
109
|
-
/**
|
110
|
-
* Cached reference to the NestedHeaders plugin.
|
111
|
-
*
|
112
|
-
* @private
|
113
|
-
* @type {NestedHeaders}
|
114
|
-
*/
|
115
|
-
nestedHeadersPlugin = null;
|
116
|
-
/**
|
117
|
-
* Event manager instance reference.
|
118
|
-
*
|
119
|
-
* @private
|
120
|
-
* @type {EventManager}
|
121
|
-
*/
|
122
|
-
eventManager = new EventManager(this);
|
123
|
-
/**
|
124
|
-
* The NestedHeaders plugin StateManager instance.
|
125
|
-
*
|
126
|
-
* @private
|
127
|
-
* @type {StateManager}
|
128
|
-
*/
|
129
|
-
headerStateManager = null;
|
130
|
-
/**
|
131
|
-
* Map of collapsed columns by the plugin.
|
132
|
-
*
|
133
|
-
* @private
|
134
|
-
* @type {HidingMap|null}
|
135
|
-
*/
|
136
|
-
#collapsedColumnsMap = null;
|
137
|
-
|
138
154
|
/**
|
139
155
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
140
156
|
* hook and if it returns `true` then the {@link CollapsibleColumns#enablePlugin} method is called.
|
@@ -159,7 +175,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
159
175
|
if (!nestedHeaders) {
|
160
176
|
warn('You need to configure the Nested Headers plugin in order to use collapsible headers.');
|
161
177
|
}
|
162
|
-
this
|
178
|
+
_classPrivateFieldSet(this, _collapsedColumnsMap, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));
|
163
179
|
this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');
|
164
180
|
this.headerStateManager = this.nestedHeadersPlugin.getStateManager();
|
165
181
|
this.addHook('init', () => this.onInit());
|
@@ -170,6 +186,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
170
186
|
return _this.onAfterGetColHeader(...arguments);
|
171
187
|
});
|
172
188
|
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
|
189
|
+
this.registerShortcuts();
|
173
190
|
super.enablePlugin();
|
174
191
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
175
192
|
this.updatePlugin();
|
@@ -215,12 +232,64 @@ export class CollapsibleColumns extends BasePlugin {
|
|
215
232
|
*/
|
216
233
|
disablePlugin() {
|
217
234
|
this.hot.columnIndexMapper.unregisterMap(this.pluginName);
|
218
|
-
this
|
235
|
+
_classPrivateFieldSet(this, _collapsedColumnsMap, null);
|
219
236
|
this.nestedHeadersPlugin = null;
|
237
|
+
this.unregisterShortcuts();
|
220
238
|
this.clearButtons();
|
221
239
|
super.disablePlugin();
|
222
240
|
}
|
223
241
|
|
242
|
+
/**
|
243
|
+
* Register shortcuts responsible for toggling collapsible columns.
|
244
|
+
*
|
245
|
+
* @private
|
246
|
+
*/
|
247
|
+
registerShortcuts() {
|
248
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
249
|
+
keys: [['Enter']],
|
250
|
+
callback: () => {
|
251
|
+
var _this$headerStateMana;
|
252
|
+
const {
|
253
|
+
row,
|
254
|
+
col
|
255
|
+
} = this.hot.getSelectedRangeLast().highlight;
|
256
|
+
const {
|
257
|
+
collapsible,
|
258
|
+
isCollapsed,
|
259
|
+
columnIndex
|
260
|
+
} = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
|
261
|
+
if (!collapsible) {
|
262
|
+
return;
|
263
|
+
}
|
264
|
+
if (isCollapsed) {
|
265
|
+
this.expandSection({
|
266
|
+
row,
|
267
|
+
col: columnIndex
|
268
|
+
});
|
269
|
+
} else {
|
270
|
+
this.collapseSection({
|
271
|
+
row,
|
272
|
+
col: columnIndex
|
273
|
+
});
|
274
|
+
}
|
275
|
+
},
|
276
|
+
runOnlyIf: () => {
|
277
|
+
var _this$hot$getSelected;
|
278
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
279
|
+
},
|
280
|
+
group: SHORTCUTS_GROUP
|
281
|
+
});
|
282
|
+
}
|
283
|
+
|
284
|
+
/**
|
285
|
+
* Unregister shortcuts responsible for toggling collapsible columns.
|
286
|
+
*
|
287
|
+
* @private
|
288
|
+
*/
|
289
|
+
unregisterShortcuts() {
|
290
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
291
|
+
}
|
292
|
+
|
224
293
|
/**
|
225
294
|
* Clears the expand/collapse buttons.
|
226
295
|
*
|
@@ -341,7 +410,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
341
410
|
});
|
342
411
|
let isActionPossible = filteredCoords.length > 0;
|
343
412
|
arrayEach(filteredCoords, _ref2 => {
|
344
|
-
var _this$
|
413
|
+
var _this$headerStateMana2;
|
345
414
|
let {
|
346
415
|
row,
|
347
416
|
col: column
|
@@ -349,7 +418,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
349
418
|
const {
|
350
419
|
collapsible,
|
351
420
|
isCollapsed
|
352
|
-
} = (_this$
|
421
|
+
} = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
|
353
422
|
if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
|
354
423
|
isActionPossible = false;
|
355
424
|
return false;
|
@@ -392,7 +461,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
392
461
|
}
|
393
462
|
this.hot.batchExecution(() => {
|
394
463
|
arrayEach(affectedColumnsIndexes, visualColumn => {
|
395
|
-
this
|
464
|
+
_classPrivateFieldGet(this, _collapsedColumnsMap).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
|
396
465
|
});
|
397
466
|
}, true);
|
398
467
|
const isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
|
@@ -408,7 +477,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
408
477
|
* @returns {number[]}
|
409
478
|
*/
|
410
479
|
getCollapsedColumns() {
|
411
|
-
return this
|
480
|
+
return _classPrivateFieldGet(this, _collapsedColumnsMap).getHiddenIndexes();
|
412
481
|
}
|
413
482
|
|
414
483
|
/**
|
@@ -421,12 +490,12 @@ export class CollapsibleColumns extends BasePlugin {
|
|
421
490
|
* values counting from 0 to N).
|
422
491
|
*/
|
423
492
|
onAfterGetColHeader(column, TH, headerLevel) {
|
424
|
-
var _this$
|
493
|
+
var _this$headerStateMana3;
|
425
494
|
const {
|
426
495
|
collapsible,
|
427
496
|
origColspan,
|
428
497
|
isCollapsed
|
429
|
-
} = (_this$
|
498
|
+
} = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
|
430
499
|
const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
|
431
500
|
let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
|
432
501
|
if (isNodeCollapsible) {
|
@@ -444,7 +513,8 @@ export class CollapsibleColumns extends BasePlugin {
|
|
444
513
|
fastInnerText(collapsibleElement, '-');
|
445
514
|
}
|
446
515
|
} else {
|
447
|
-
|
516
|
+
var _collapsibleElement;
|
517
|
+
(_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 ? void 0 : _collapsibleElement.remove();
|
448
518
|
}
|
449
519
|
}
|
450
520
|
|
@@ -496,7 +566,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
496
566
|
* Destroys the plugin instance.
|
497
567
|
*/
|
498
568
|
destroy() {
|
499
|
-
this
|
569
|
+
_classPrivateFieldSet(this, _collapsedColumnsMap, null);
|
500
570
|
super.destroy();
|
501
571
|
}
|
502
572
|
}
|
@@ -21,7 +21,10 @@ exports.PLUGIN_KEY = PLUGIN_KEY;
|
|
21
21
|
const PLUGIN_PRIORITY = 50;
|
22
22
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
23
23
|
const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
24
|
+
exports.APPEND_COLUMN_CONFIG_STRATEGY = APPEND_COLUMN_CONFIG_STRATEGY;
|
24
25
|
const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
26
|
+
exports.REPLACE_COLUMN_CONFIG_STRATEGY = REPLACE_COLUMN_CONFIG_STRATEGY;
|
27
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
25
28
|
(0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
|
26
29
|
_pluginHooks.default.getSingleton().register('beforeColumnSort');
|
27
30
|
_pluginHooks.default.getSingleton().register('afterColumnSort');
|
@@ -156,6 +159,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
156
159
|
if (this.hot.view) {
|
157
160
|
this.loadOrSortBySettings();
|
158
161
|
}
|
162
|
+
this.registerShortcuts();
|
159
163
|
super.enablePlugin();
|
160
164
|
}
|
161
165
|
|
@@ -186,9 +190,43 @@ class ColumnSorting extends _base.BasePlugin {
|
|
186
190
|
this.columnStatesManager.destroy();
|
187
191
|
this.columnMetaCache = null;
|
188
192
|
this.columnStatesManager = null;
|
193
|
+
this.unregisterShortcuts();
|
189
194
|
super.disablePlugin();
|
190
195
|
}
|
191
196
|
|
197
|
+
/**
|
198
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
199
|
+
*
|
200
|
+
* @private
|
201
|
+
*/
|
202
|
+
registerShortcuts() {
|
203
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
204
|
+
keys: [['Enter']],
|
205
|
+
callback: () => {
|
206
|
+
const {
|
207
|
+
highlight
|
208
|
+
} = this.hot.getSelectedRangeLast();
|
209
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
210
|
+
this.sort(this.getColumnNextConfig(highlight.col));
|
211
|
+
}
|
212
|
+
},
|
213
|
+
runOnlyIf: () => {
|
214
|
+
var _this$hot$getSelected;
|
215
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
216
|
+
},
|
217
|
+
group: SHORTCUTS_GROUP
|
218
|
+
});
|
219
|
+
}
|
220
|
+
|
221
|
+
/**
|
222
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
223
|
+
*
|
224
|
+
* @private
|
225
|
+
*/
|
226
|
+
unregisterShortcuts() {
|
227
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
228
|
+
}
|
229
|
+
|
192
230
|
// DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
|
193
231
|
/**
|
194
232
|
* Sorts the table by chosen columns and orders.
|
@@ -717,9 +755,10 @@ class ColumnSorting extends _base.BasePlugin {
|
|
717
755
|
* Destroys the plugin instance.
|
718
756
|
*/
|
719
757
|
destroy() {
|
758
|
+
var _this$columnStatesMan;
|
720
759
|
// TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045
|
721
760
|
// eslint-disable-next-line no-unused-expressions
|
722
|
-
this.columnStatesManager
|
761
|
+
(_this$columnStatesMan = this.columnStatesManager) === null || _this$columnStatesMan === void 0 ? void 0 : _this$columnStatesMan.destroy();
|
723
762
|
super.destroy();
|
724
763
|
}
|
725
764
|
}
|
@@ -14,8 +14,9 @@ import { rootComparator } from "./rootComparator.mjs";
|
|
14
14
|
import { registerRootComparator, sort } from "./sortService/index.mjs";
|
15
15
|
export const PLUGIN_KEY = 'columnSorting';
|
16
16
|
export const PLUGIN_PRIORITY = 50;
|
17
|
-
const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
18
|
-
const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
17
|
+
export const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
18
|
+
export const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
19
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
19
20
|
registerRootComparator(PLUGIN_KEY, rootComparator);
|
20
21
|
Hooks.getSingleton().register('beforeColumnSort');
|
21
22
|
Hooks.getSingleton().register('afterColumnSort');
|
@@ -150,6 +151,7 @@ export class ColumnSorting extends BasePlugin {
|
|
150
151
|
if (this.hot.view) {
|
151
152
|
this.loadOrSortBySettings();
|
152
153
|
}
|
154
|
+
this.registerShortcuts();
|
153
155
|
super.enablePlugin();
|
154
156
|
}
|
155
157
|
|
@@ -180,9 +182,43 @@ export class ColumnSorting extends BasePlugin {
|
|
180
182
|
this.columnStatesManager.destroy();
|
181
183
|
this.columnMetaCache = null;
|
182
184
|
this.columnStatesManager = null;
|
185
|
+
this.unregisterShortcuts();
|
183
186
|
super.disablePlugin();
|
184
187
|
}
|
185
188
|
|
189
|
+
/**
|
190
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
191
|
+
*
|
192
|
+
* @private
|
193
|
+
*/
|
194
|
+
registerShortcuts() {
|
195
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
196
|
+
keys: [['Enter']],
|
197
|
+
callback: () => {
|
198
|
+
const {
|
199
|
+
highlight
|
200
|
+
} = this.hot.getSelectedRangeLast();
|
201
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
202
|
+
this.sort(this.getColumnNextConfig(highlight.col));
|
203
|
+
}
|
204
|
+
},
|
205
|
+
runOnlyIf: () => {
|
206
|
+
var _this$hot$getSelected;
|
207
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
208
|
+
},
|
209
|
+
group: SHORTCUTS_GROUP
|
210
|
+
});
|
211
|
+
}
|
212
|
+
|
213
|
+
/**
|
214
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
215
|
+
*
|
216
|
+
* @private
|
217
|
+
*/
|
218
|
+
unregisterShortcuts() {
|
219
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
220
|
+
}
|
221
|
+
|
186
222
|
// DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
|
187
223
|
/**
|
188
224
|
* Sorts the table by chosen columns and orders.
|
@@ -711,9 +747,10 @@ export class ColumnSorting extends BasePlugin {
|
|
711
747
|
* Destroys the plugin instance.
|
712
748
|
*/
|
713
749
|
destroy() {
|
750
|
+
var _this$columnStatesMan;
|
714
751
|
// TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045
|
715
752
|
// eslint-disable-next-line no-unused-expressions
|
716
|
-
this.columnStatesManager
|
753
|
+
(_this$columnStatesMan = this.columnStatesManager) === null || _this$columnStatesMan === void 0 ? void 0 : _this$columnStatesMan.destroy();
|
717
754
|
super.destroy();
|
718
755
|
}
|
719
756
|
}
|
@@ -102,7 +102,8 @@ class ColumnStatesManager {
|
|
102
102
|
* @returns {string|undefined} Sort order (`asc` for ascending, `desc` for descending and undefined for not sorted).
|
103
103
|
*/
|
104
104
|
getSortOrderOfColumn(searchedColumn) {
|
105
|
-
|
105
|
+
var _this$sortingStates$g;
|
106
|
+
return (_this$sortingStates$g = this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(searchedColumn))) === null || _this$sortingStates$g === void 0 ? void 0 : _this$sortingStates$g.sortOrder;
|
106
107
|
}
|
107
108
|
|
108
109
|
/**
|
@@ -99,7 +99,8 @@ export class ColumnStatesManager {
|
|
99
99
|
* @returns {string|undefined} Sort order (`asc` for ascending, `desc` for descending and undefined for not sorted).
|
100
100
|
*/
|
101
101
|
getSortOrderOfColumn(searchedColumn) {
|
102
|
-
|
102
|
+
var _this$sortingStates$g;
|
103
|
+
return (_this$sortingStates$g = this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(searchedColumn))) === null || _this$sortingStates$g === void 0 ? void 0 : _this$sortingStates$g.sortOrder;
|
103
104
|
}
|
104
105
|
|
105
106
|
/**
|
@@ -4,4 +4,6 @@ exports.__esModule = true;
|
|
4
4
|
var _columnSorting = require("./columnSorting");
|
5
5
|
exports.PLUGIN_KEY = _columnSorting.PLUGIN_KEY;
|
6
6
|
exports.PLUGIN_PRIORITY = _columnSorting.PLUGIN_PRIORITY;
|
7
|
-
exports.ColumnSorting = _columnSorting.ColumnSorting;
|
7
|
+
exports.ColumnSorting = _columnSorting.ColumnSorting;
|
8
|
+
exports.APPEND_COLUMN_CONFIG_STRATEGY = _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY;
|
9
|
+
exports.REPLACE_COLUMN_CONFIG_STRATEGY = _columnSorting.REPLACE_COLUMN_CONFIG_STRATEGY;
|