handsontable 0.0.0-next-9379dd1-20231020 → 0.0.0-next-9059914-20231025
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
- package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
- package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
- package/3rdparty/walkontable/src/cell/coords.js +11 -50
- package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
- package/3rdparty/walkontable/src/cell/range.js +7 -38
- package/3rdparty/walkontable/src/cell/range.mjs +7 -38
- package/3rdparty/walkontable/src/core/_base.js +3 -9
- package/3rdparty/walkontable/src/core/_base.mjs +3 -9
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +2 -3
- package/3rdparty/walkontable/src/core/core.mjs +2 -3
- package/3rdparty/walkontable/src/event.js +10 -12
- package/3rdparty/walkontable/src/event.mjs +10 -12
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +2 -10
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +2 -13
- package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
- package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
- package/3rdparty/walkontable/src/overlay/top.js +6 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/cells.js +0 -10
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
- package/3rdparty/walkontable/src/renderer/rows.js +0 -13
- package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
- package/3rdparty/walkontable/src/renderer/table.js +0 -9
- package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
- package/3rdparty/walkontable/src/scroll.js +0 -2
- package/3rdparty/walkontable/src/scroll.mjs +0 -2
- package/3rdparty/walkontable/src/selection.js +295 -0
- package/3rdparty/walkontable/src/selection.mjs +290 -0
- package/3rdparty/walkontable/src/settings.js +4 -13
- package/3rdparty/walkontable/src/settings.mjs +4 -13
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
- package/3rdparty/walkontable/src/table.js +78 -19
- package/3rdparty/walkontable/src/table.mjs +79 -20
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/dateType/dateType.d.ts +3 -3
- package/cellTypes/dateType/dateType.js +2 -2
- package/cellTypes/dateType/dateType.mjs +2 -2
- package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
- package/cellTypes/handsontableType/handsontableType.js +2 -2
- package/cellTypes/handsontableType/handsontableType.mjs +2 -2
- package/cellTypes/index.d.ts +0 -3
- package/cellTypes/index.js +0 -4
- package/cellTypes/index.mjs +1 -3
- package/core.d.ts +4 -9
- package/core.js +327 -285
- package/core.mjs +327 -285
- package/dataMap/metaManager/metaSchema.js +0 -65
- package/dataMap/metaManager/metaSchema.mjs +0 -65
- package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
- package/dataMap/replaceData.js +0 -5
- package/dataMap/replaceData.mjs +0 -5
- package/dist/handsontable.css +5 -40
- package/dist/handsontable.full.css +5 -40
- package/dist/handsontable.full.js +8038 -12837
- package/dist/handsontable.full.min.css +4 -4
- package/dist/handsontable.full.min.js +141 -141
- package/dist/handsontable.js +11488 -16287
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +21 -21
- package/dist/languages/all.js +2 -6
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/en-US.js +1 -3
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/pl-PL.js +1 -3
- package/dist/languages/pl-PL.min.js +1 -1
- package/editorManager.js +87 -15
- package/editorManager.mjs +87 -16
- package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
- package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
- package/editors/dateEditor/dateEditor.js +7 -26
- package/editors/dateEditor/dateEditor.mjs +8 -27
- package/editors/handsontableEditor/handsontableEditor.js +1 -9
- package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
- package/editors/textEditor/textEditor.js +27 -19
- package/editors/textEditor/textEditor.mjs +30 -22
- package/helpers/dom/element.js +9 -188
- package/helpers/dom/element.mjs +9 -182
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +0 -1
- package/helpers/number.js +0 -18
- package/helpers/number.mjs +0 -17
- package/i18n/constants.js +1 -7
- package/i18n/constants.mjs +1 -4
- package/i18n/languages/en-US.js +1 -3
- package/i18n/languages/en-US.mjs +1 -3
- package/i18n/languages/pl-PL.js +1 -3
- package/i18n/languages/pl-PL.mjs +1 -3
- package/languages/all.js +2 -6
- package/languages/en-US.js +1 -3
- package/languages/en-US.mjs +1 -3
- package/languages/index.js +2 -6
- package/languages/pl-PL.js +1 -3
- package/languages/pl-PL.mjs +1 -3
- package/package.json +99 -116
- package/pluginHooks.d.ts +1 -12
- package/pluginHooks.js +1 -152
- package/pluginHooks.mjs +1 -152
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
- package/plugins/columnSorting/columnSorting.js +0 -43
- package/plugins/columnSorting/columnSorting.mjs +3 -44
- package/plugins/columnSorting/index.js +1 -3
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +0 -1
- package/plugins/comments/commentEditor.mjs +0 -1
- package/plugins/comments/comments.js +189 -252
- package/plugins/comments/comments.mjs +190 -251
- package/plugins/contextMenu/commandExecutor.js +3 -2
- package/plugins/contextMenu/commandExecutor.mjs +3 -2
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +36 -75
- package/plugins/contextMenu/contextMenu.mjs +35 -74
- package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
- package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
- package/plugins/contextMenu/itemsFactory.js +3 -2
- package/plugins/contextMenu/itemsFactory.mjs +4 -3
- package/plugins/contextMenu/{menu/menu.js → menu.js} +308 -96
- package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +309 -97
- package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
- package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
- package/plugins/contextMenu/{predefinedItems/index.js → predefinedItems.js} +14 -14
- package/plugins/contextMenu/predefinedItems.mjs +68 -0
- package/plugins/contextMenu/utils.js +151 -35
- package/plugins/contextMenu/utils.mjs +144 -35
- package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
- package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
- package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
- package/plugins/copyPaste/copyPaste.js +78 -127
- package/plugins/copyPaste/copyPaste.mjs +79 -128
- package/plugins/copyPaste/focusableElement.js +186 -0
- package/plugins/copyPaste/focusableElement.mjs +180 -0
- package/plugins/customBorders/customBorders.js +20 -23
- package/plugins/customBorders/customBorders.mjs +21 -24
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +38 -97
- package/plugins/dropdownMenu/dropdownMenu.mjs +37 -96
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/filters.js +14 -31
- package/plugins/filters/filters.mjs +14 -31
- package/plugins/filters/ui/select.js +3 -3
- package/plugins/filters/ui/select.mjs +2 -2
- package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
- package/plugins/hiddenRows/hiddenRows.mjs +1 -1
- package/plugins/manualColumnMove/manualColumnMove.js +1 -3
- package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
- package/plugins/mergeCells/mergeCells.js +16 -5
- package/plugins/mergeCells/mergeCells.mjs +16 -5
- package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
- package/plugins/nestedHeaders/nestedHeaders.js +10 -240
- package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
- package/plugins/nestedHeaders/stateManager/index.js +3 -102
- package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
- package/plugins/nestedRows/nestedRows.js +0 -41
- package/plugins/nestedRows/nestedRows.mjs +0 -41
- package/plugins/nestedRows/ui/headers.js +0 -11
- package/plugins/nestedRows/ui/headers.mjs +1 -12
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
- package/renderers/baseRenderer/baseRenderer.js +0 -17
- package/renderers/baseRenderer/baseRenderer.mjs +1 -18
- package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
- package/renderers/index.d.ts +0 -9
- package/selection/highlight/constants.js +15 -0
- package/selection/highlight/constants.mjs +6 -0
- package/selection/highlight/highlight.js +71 -256
- package/selection/highlight/highlight.mjs +71 -250
- package/selection/highlight/types/activeHeader.js +8 -10
- package/selection/highlight/types/activeHeader.mjs +8 -10
- package/selection/highlight/types/area.js +18 -6
- package/selection/highlight/types/area.mjs +18 -6
- package/selection/highlight/types/{focus.js → cell.js} +7 -5
- package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
- package/selection/highlight/types/customSelection.js +9 -7
- package/selection/highlight/types/customSelection.mjs +9 -7
- package/selection/highlight/types/fill.js +7 -5
- package/selection/highlight/types/fill.mjs +7 -5
- package/selection/highlight/types/header.js +18 -9
- package/selection/highlight/types/header.mjs +18 -9
- package/selection/highlight/types/index.js +35 -0
- package/selection/highlight/types/index.mjs +31 -0
- package/selection/highlight/visualSelection.js +27 -31
- package/selection/highlight/visualSelection.mjs +27 -31
- package/selection/index.js +7 -4
- package/selection/index.mjs +3 -2
- package/selection/mouseEventHandler.js +1 -7
- package/selection/mouseEventHandler.mjs +1 -7
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +152 -321
- package/selection/selection.mjs +151 -318
- package/selection/transformation.js +90 -232
- package/selection/transformation.mjs +90 -232
- package/selection/utils.js +21 -15
- package/selection/utils.mjs +21 -16
- package/settings.d.ts +0 -4
- package/shortcuts/context.js +2 -20
- package/shortcuts/context.mjs +3 -20
- package/shortcuts/manager.js +7 -25
- package/shortcuts/manager.mjs +7 -26
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +5 -19
- package/shortcuts/utils.mjs +4 -18
- package/tableView.js +13 -111
- package/tableView.mjs +14 -112
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/selection/constants.js +0 -62
- package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
- package/3rdparty/walkontable/src/selection/index.js +0 -26
- package/3rdparty/walkontable/src/selection/index.mjs +0 -5
- package/3rdparty/walkontable/src/selection/manager.js +0 -274
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
- package/3rdparty/walkontable/src/selection/scanner.js +0 -270
- package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
- package/3rdparty/walkontable/src/selection/selection.js +0 -101
- package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
- package/cellTypes/selectType/index.d.ts +0 -1
- package/cellTypes/selectType/index.js +0 -6
- package/cellTypes/selectType/index.mjs +0 -1
- package/cellTypes/selectType/selectType.d.ts +0 -14
- package/cellTypes/selectType/selectType.js +0 -13
- package/cellTypes/selectType/selectType.mjs +0 -8
- package/core/focusCatcher/focusDetector.js +0 -63
- package/core/focusCatcher/focusDetector.mjs +0 -59
- package/core/focusCatcher/index.js +0 -142
- package/core/focusCatcher/index.mjs +0 -138
- package/core/index.js +0 -9
- package/core/index.mjs +0 -1
- package/focusManager.d.ts +0 -12
- package/focusManager.js +0 -265
- package/focusManager.mjs +0 -261
- package/helpers/a11y.js +0 -79
- package/helpers/a11y.mjs +0 -38
- package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
- package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
- package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
- package/plugins/comments/contextMenuItem/removeComment.js +0 -38
- package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
- package/plugins/contextMenu/menu/index.js +0 -9
- package/plugins/contextMenu/menu/index.mjs +0 -1
- package/plugins/contextMenu/menu/navigator.js +0 -152
- package/plugins/contextMenu/menu/navigator.mjs +0 -148
- package/plugins/contextMenu/menu/positioner.js +0 -213
- package/plugins/contextMenu/menu/positioner.mjs +0 -209
- package/plugins/contextMenu/menu/utils.js +0 -177
- package/plugins/contextMenu/menu/utils.mjs +0 -163
- package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
- package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
- package/renderers/dateRenderer/dateRenderer.js +0 -29
- package/renderers/dateRenderer/dateRenderer.mjs +0 -24
- package/renderers/dateRenderer/index.d.ts +0 -1
- package/renderers/dateRenderer/index.js +0 -6
- package/renderers/dateRenderer/index.mjs +0 -1
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
- package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
- package/renderers/handsontableRenderer/index.d.ts +0 -1
- package/renderers/handsontableRenderer/index.js +0 -6
- package/renderers/handsontableRenderer/index.mjs +0 -1
- package/renderers/selectRenderer/index.d.ts +0 -1
- package/renderers/selectRenderer/index.js +0 -6
- package/renderers/selectRenderer/index.mjs +0 -1
- package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
- package/renderers/selectRenderer/selectRenderer.js +0 -27
- package/renderers/selectRenderer/selectRenderer.mjs +0 -22
- package/selection/highlight/types/areaLayered.js +0 -31
- package/selection/highlight/types/areaLayered.mjs +0 -26
- package/selection/highlight/types/column.js +0 -27
- package/selection/highlight/types/column.mjs +0 -22
- package/selection/highlight/types/row.js +0 -27
- package/selection/highlight/types/row.mjs +0 -22
- package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
- package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
- package/shortcutContexts/commands/editor/fastOpen.js +0 -16
- package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
- package/shortcutContexts/commands/editor/index.js +0 -16
- package/shortcutContexts/commands/editor/index.mjs +0 -12
- package/shortcutContexts/commands/editor/open.js +0 -27
- package/shortcutContexts/commands/editor/open.mjs +0 -23
- package/shortcutContexts/commands/emptySelectedCells.js +0 -11
- package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
- package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
- package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
- package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
- package/shortcutContexts/commands/index.js +0 -35
- package/shortcutContexts/commands/index.mjs +0 -31
- package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
- package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
- package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
- package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
- package/shortcutContexts/commands/selectAll.js +0 -12
- package/shortcutContexts/commands/selectAll.mjs +0 -8
- package/shortcutContexts/constants.js +0 -13
- package/shortcutContexts/constants.mjs +0 -8
- package/shortcutContexts/editor.js +0 -25
- package/shortcutContexts/editor.mjs +0 -21
- package/shortcutContexts/grid.js +0 -163
- package/shortcutContexts/grid.mjs +0 -159
- package/shortcutContexts/index.js +0 -24
- package/shortcutContexts/index.mjs +0 -11
@@ -11,9 +11,9 @@ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classEx
|
|
11
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
12
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
13
13
|
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
14
|
-
import { isNumeric
|
15
|
-
import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
|
14
|
+
import { isNumeric } from "../../helpers/number.mjs";
|
16
15
|
import { isLeftClick, isRightClick } from "../../helpers/dom/event.mjs";
|
16
|
+
import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
|
17
17
|
import { warn } from "../../helpers/console.mjs";
|
18
18
|
import { ACTIVE_HEADER_TYPE, HEADER_TYPE } from "../../selection/index.mjs";
|
19
19
|
import { BasePlugin } from "../base/index.mjs";
|
@@ -69,14 +69,13 @@ export const PLUGIN_PRIORITY = 280;
|
|
69
69
|
*/
|
70
70
|
var _stateManager = /*#__PURE__*/new WeakMap();
|
71
71
|
var _hidingIndexMapObserver = /*#__PURE__*/new WeakMap();
|
72
|
-
var _focusInitialCoords = /*#__PURE__*/new WeakMap();
|
73
|
-
var _isColumnsSelectionInProgress = /*#__PURE__*/new WeakMap();
|
74
72
|
export class NestedHeaders extends BasePlugin {
|
75
73
|
constructor() {
|
76
74
|
super(...arguments);
|
77
75
|
/**
|
78
76
|
* The state manager for the nested headers.
|
79
77
|
*
|
78
|
+
* @private
|
80
79
|
* @type {StateManager}
|
81
80
|
*/
|
82
81
|
_classPrivateFieldInitSpec(this, _stateManager, {
|
@@ -87,30 +86,13 @@ export class NestedHeaders extends BasePlugin {
|
|
87
86
|
* The instance of the ChangesObservable class that allows track the changes that happens in the
|
88
87
|
* column indexes.
|
89
88
|
*
|
89
|
+
* @private
|
90
90
|
* @type {ChangesObservable}
|
91
91
|
*/
|
92
92
|
_classPrivateFieldInitSpec(this, _hidingIndexMapObserver, {
|
93
93
|
writable: true,
|
94
94
|
value: null
|
95
95
|
});
|
96
|
-
/**
|
97
|
-
* Holds the coords that points to the place where the column selection starts.
|
98
|
-
*
|
99
|
-
* @type {number|null}
|
100
|
-
*/
|
101
|
-
_classPrivateFieldInitSpec(this, _focusInitialCoords, {
|
102
|
-
writable: true,
|
103
|
-
value: null
|
104
|
-
});
|
105
|
-
/**
|
106
|
-
* Determines if there is performed the column selection.
|
107
|
-
*
|
108
|
-
* @type {boolean}
|
109
|
-
*/
|
110
|
-
_classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, {
|
111
|
-
writable: true,
|
112
|
-
value: false
|
113
|
-
});
|
114
96
|
/**
|
115
97
|
* Custom helper for getting widths of the nested headers.
|
116
98
|
*
|
@@ -170,19 +152,6 @@ export class NestedHeaders extends BasePlugin {
|
|
170
152
|
this.addHook('beforeOnCellMouseOver', function () {
|
171
153
|
return _this.onBeforeOnCellMouseOver(...arguments);
|
172
154
|
});
|
173
|
-
this.addHook('beforeOnCellMouseUp', function () {
|
174
|
-
return _this.onBeforeOnCellMouseUp(...arguments);
|
175
|
-
});
|
176
|
-
this.addHook('beforeSelectionHighlightSet', function () {
|
177
|
-
return _this.onBeforeSelectionHighlightSet(...arguments);
|
178
|
-
});
|
179
|
-
this.addHook('modifyTransformStart', function () {
|
180
|
-
return _this.onModifyTransformStart(...arguments);
|
181
|
-
});
|
182
|
-
this.addHook('afterSelection', () => this.updateFocusHighlightPosition());
|
183
|
-
this.addHook('beforeViewportScrollHorizontally', function () {
|
184
|
-
return _this.onBeforeViewportScrollHorizontally(...arguments);
|
185
|
-
});
|
186
155
|
this.addHook('afterGetColumnHeaderRenderers', array => this.onAfterGetColumnHeaderRenderers(array));
|
187
156
|
this.addHook('modifyColWidth', function () {
|
188
157
|
return _this.onModifyColWidth(...arguments);
|
@@ -196,17 +165,9 @@ export class NestedHeaders extends BasePlugin {
|
|
196
165
|
this.addHook('beforeCopy', function () {
|
197
166
|
return _this.onBeforeCopy(...arguments);
|
198
167
|
});
|
199
|
-
this.addHook('beforeSelectColumns', function () {
|
200
|
-
return _this.onBeforeSelectColumns(...arguments);
|
201
|
-
});
|
202
168
|
this.addHook('afterViewportColumnCalculatorOverride', function () {
|
203
169
|
return _this.onAfterViewportColumnCalculatorOverride(...arguments);
|
204
170
|
});
|
205
|
-
this.addHook('modifyFocusedElement', function () {
|
206
|
-
return _this.onModifyFocusedElement(...arguments);
|
207
|
-
});
|
208
|
-
this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => this.updateFocusHighlightPosition());
|
209
|
-
this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => this.updateFocusHighlightPosition());
|
210
171
|
super.enablePlugin();
|
211
172
|
this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
|
212
173
|
}
|
@@ -422,67 +383,6 @@ export class NestedHeaders extends BasePlugin {
|
|
422
383
|
return this.hot.getColHeader(visualColumnIndex, headerLevel);
|
423
384
|
}
|
424
385
|
|
425
|
-
/**
|
426
|
-
* Updates the selection focus highlight position to point to the nested header root element (TH)
|
427
|
-
* even when the logical coordinates point in-between the header.
|
428
|
-
*
|
429
|
-
* @private
|
430
|
-
*/
|
431
|
-
updateFocusHighlightPosition() {
|
432
|
-
var _this$hot;
|
433
|
-
const selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
|
434
|
-
if (!selection) {
|
435
|
-
return;
|
436
|
-
}
|
437
|
-
const {
|
438
|
-
highlight
|
439
|
-
} = selection;
|
440
|
-
const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
|
441
|
-
if (isNestedHeadersRange) {
|
442
|
-
const columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
|
443
|
-
const focusHighlight = this.hot.selection.highlight.getFocus();
|
444
|
-
|
445
|
-
// Correct the highlight/focus selection to highlight the correct TH element
|
446
|
-
focusHighlight.visualCellRange.highlight.col = columnIndex;
|
447
|
-
focusHighlight.visualCellRange.from.col = columnIndex;
|
448
|
-
focusHighlight.visualCellRange.to.col = columnIndex;
|
449
|
-
focusHighlight.commit();
|
450
|
-
}
|
451
|
-
}
|
452
|
-
|
453
|
-
/**
|
454
|
-
* Allows to control to which column index the viewport will be scrolled. To ensure that the viewport
|
455
|
-
* is scrolled to the correct column for the nested header the most left and the most right visual column
|
456
|
-
* indexes are used.
|
457
|
-
*
|
458
|
-
* @private
|
459
|
-
* @param {number} visualColumn A visual column index to which the viewport will be scrolled.
|
460
|
-
* @returns {number}
|
461
|
-
*/
|
462
|
-
onBeforeViewportScrollHorizontally(visualColumn) {
|
463
|
-
const selection = this.hot.getSelectedRangeLast();
|
464
|
-
if (!selection) {
|
465
|
-
return visualColumn;
|
466
|
-
}
|
467
|
-
const {
|
468
|
-
highlight
|
469
|
-
} = selection;
|
470
|
-
const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
|
471
|
-
if (!isNestedHeadersRange) {
|
472
|
-
return visualColumn;
|
473
|
-
}
|
474
|
-
const firstColumn = this.hot.view.getFirstFullyVisibleColumn();
|
475
|
-
const lastColumn = this.hot.view.getLastFullyVisibleColumn();
|
476
|
-
const mostLeftColumnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
|
477
|
-
const mostRightColumnIndex = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(highlight.row, highlight.col);
|
478
|
-
|
479
|
-
// do not scroll the viewport when the header is wider than the viewport
|
480
|
-
if (mostLeftColumnIndex < firstColumn && mostRightColumnIndex > lastColumn) {
|
481
|
-
return visualColumn;
|
482
|
-
}
|
483
|
-
return mostLeftColumnIndex < firstColumn ? mostLeftColumnIndex : mostRightColumnIndex;
|
484
|
-
}
|
485
|
-
|
486
386
|
/**
|
487
387
|
* Allows to control which header DOM element will be used to highlight.
|
488
388
|
*
|
@@ -498,6 +398,7 @@ export class NestedHeaders extends BasePlugin {
|
|
498
398
|
return visualColumn;
|
499
399
|
}
|
500
400
|
const {
|
401
|
+
classNames,
|
501
402
|
columnCursor,
|
502
403
|
selectionType,
|
503
404
|
selectionWidth
|
@@ -512,8 +413,8 @@ export class NestedHeaders extends BasePlugin {
|
|
512
413
|
}
|
513
414
|
} else if (selectionType === ACTIVE_HEADER_TYPE) {
|
514
415
|
if (colspan > selectionWidth - columnCursor || !isRoot) {
|
515
|
-
//
|
516
|
-
|
416
|
+
// Reset the class names array so the generated TH element won't be modified.
|
417
|
+
classNames.length = 0;
|
517
418
|
}
|
518
419
|
}
|
519
420
|
return visualColumn;
|
@@ -601,8 +502,6 @@ export class NestedHeaders extends BasePlugin {
|
|
601
502
|
if (!headerNodeData) {
|
602
503
|
return;
|
603
504
|
}
|
604
|
-
_classPrivateFieldSet(this, _focusInitialCoords, coords.clone());
|
605
|
-
_classPrivateFieldSet(this, _isColumnsSelectionInProgress, true);
|
606
505
|
const {
|
607
506
|
selection
|
608
507
|
} = this.hot;
|
@@ -668,129 +567,14 @@ export class NestedHeaders extends BasePlugin {
|
|
668
567
|
controller.column = true;
|
669
568
|
controller.cell = true;
|
670
569
|
const columnsToSelect = [];
|
671
|
-
const headerLevel = clamp(coords.row, -Infinity, -1);
|
672
570
|
if (coords.col < from.col) {
|
673
|
-
columnsToSelect.push(bottomEndCoords.col, columnIndex
|
571
|
+
columnsToSelect.push(bottomEndCoords.col, columnIndex);
|
674
572
|
} else if (coords.col > from.col) {
|
675
|
-
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1
|
573
|
+
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
|
676
574
|
} else {
|
677
|
-
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1
|
678
|
-
}
|
679
|
-
this.hot.selection.selectColumns(...columnsToSelect);
|
680
|
-
}
|
681
|
-
|
682
|
-
/**
|
683
|
-
* Switches internal flag about selection progress to `false`.
|
684
|
-
*
|
685
|
-
* @private
|
686
|
-
*/
|
687
|
-
onBeforeOnCellMouseUp() {
|
688
|
-
_classPrivateFieldSet(this, _isColumnsSelectionInProgress, false);
|
689
|
-
}
|
690
|
-
|
691
|
-
/**
|
692
|
-
* The hook checks and ensures that the focus position that depends on the selected columns
|
693
|
-
* range is always positioned within the range.
|
694
|
-
*
|
695
|
-
* @private
|
696
|
-
*/
|
697
|
-
onBeforeSelectionHighlightSet() {
|
698
|
-
const {
|
699
|
-
navigableHeaders
|
700
|
-
} = this.hot.getSettings();
|
701
|
-
if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(this, _isColumnsSelectionInProgress) || !navigableHeaders) {
|
702
|
-
return;
|
703
|
-
}
|
704
|
-
const selectedRange = this.hot.getSelectedRangeLast();
|
705
|
-
const columnStart = selectedRange.getTopStartCorner().col;
|
706
|
-
const columnEnd = selectedRange.getBottomEndCorner().col;
|
707
|
-
const {
|
708
|
-
columnIndex,
|
709
|
-
origColspan
|
710
|
-
} = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(_classPrivateFieldGet(this, _focusInitialCoords).row, _classPrivateFieldGet(this, _focusInitialCoords).col);
|
711
|
-
selectedRange.setHighlight(_classPrivateFieldGet(this, _focusInitialCoords));
|
712
|
-
if (origColspan > selectedRange.getWidth() || columnIndex < columnStart || columnIndex + origColspan - 1 > columnEnd) {
|
713
|
-
const headerLevel = _classPrivateFieldGet(this, _stateManager).findTopMostEntireHeaderLevel(clamp(columnStart, columnIndex, columnIndex + origColspan - 1), clamp(columnEnd, columnIndex, columnIndex + origColspan - 1));
|
714
|
-
selectedRange.highlight.row = headerLevel;
|
715
|
-
selectedRange.highlight.col = selectedRange.from.col;
|
716
|
-
}
|
717
|
-
}
|
718
|
-
|
719
|
-
/**
|
720
|
-
* `modifyTransformStart` hook is called every time the keyboard navigation is used.
|
721
|
-
*
|
722
|
-
* @private
|
723
|
-
* @param {object} delta The transformation delta.
|
724
|
-
*/
|
725
|
-
onModifyTransformStart(delta) {
|
726
|
-
const {
|
727
|
-
highlight
|
728
|
-
} = this.hot.getSelectedRangeLast();
|
729
|
-
const nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
|
730
|
-
const isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
|
731
|
-
if (!isNestedHeadersRange) {
|
732
|
-
return;
|
733
|
-
}
|
734
|
-
const visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
|
735
|
-
const visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
|
736
|
-
if (delta.col < 0) {
|
737
|
-
const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
|
738
|
-
const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
|
739
|
-
if (notHiddenColumnIndex === null) {
|
740
|
-
// There are no visible columns anymore, so move the selection out of the table edge. This will
|
741
|
-
// be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
|
742
|
-
delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
|
743
|
-
} else {
|
744
|
-
delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
|
745
|
-
}
|
746
|
-
} else if (delta.col > 0) {
|
747
|
-
const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
|
748
|
-
const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);
|
749
|
-
if (notHiddenColumnIndex === null) {
|
750
|
-
// There are no visible columns anymore, so move the selection out of the table edge. This will
|
751
|
-
// be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
|
752
|
-
delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
|
753
|
-
} else {
|
754
|
-
delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, notHiddenColumnIndex) - 1, 1);
|
755
|
-
}
|
756
|
-
}
|
757
|
-
}
|
758
|
-
|
759
|
-
/**
|
760
|
-
* The hook observes the column selection from the Selection API and modifies the column range to
|
761
|
-
* ensure that the whole nested column will be covered.
|
762
|
-
*
|
763
|
-
* @private
|
764
|
-
* @param {CellCoords} from The coords object where the selection starts.
|
765
|
-
* @param {CellCoords} to The coords object where the selection ends.
|
766
|
-
*/
|
767
|
-
onBeforeSelectColumns(from, to) {
|
768
|
-
const headerLevel = from.row;
|
769
|
-
const startNodeData = this._getHeaderTreeNodeDataByCoords({
|
770
|
-
row: headerLevel,
|
771
|
-
col: from.col
|
772
|
-
});
|
773
|
-
const endNodeData = this._getHeaderTreeNodeDataByCoords({
|
774
|
-
row: headerLevel,
|
775
|
-
col: to.col
|
776
|
-
});
|
777
|
-
if (to.col < from.col) {
|
778
|
-
// Column selection from right to left
|
779
|
-
if (startNodeData) {
|
780
|
-
from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
|
781
|
-
}
|
782
|
-
if (endNodeData) {
|
783
|
-
to.col = endNodeData.columnIndex;
|
784
|
-
}
|
785
|
-
} else if (to.col >= from.col) {
|
786
|
-
// Column selection from left to right or a single column selection
|
787
|
-
if (startNodeData) {
|
788
|
-
from.col = startNodeData.columnIndex;
|
789
|
-
}
|
790
|
-
if (endNodeData) {
|
791
|
-
to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
|
792
|
-
}
|
575
|
+
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
|
793
576
|
}
|
577
|
+
this.hot.selectColumns(...columnsToSelect);
|
794
578
|
}
|
795
579
|
|
796
580
|
/**
|
@@ -875,20 +659,6 @@ export class NestedHeaders extends BasePlugin {
|
|
875
659
|
return label;
|
876
660
|
}
|
877
661
|
|
878
|
-
/**
|
879
|
-
* `modifyFocusedElement` hook callback.
|
880
|
-
*
|
881
|
-
* @private
|
882
|
-
* @param {number} row Row index.
|
883
|
-
* @param {number} column Column index.
|
884
|
-
* @returns {HTMLTableCellElement} The `TH` element to be focused.
|
885
|
-
*/
|
886
|
-
onModifyFocusedElement(row, column) {
|
887
|
-
if (row < 0) {
|
888
|
-
return this.hot.getCell(row, _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(row, column), true);
|
889
|
-
}
|
890
|
-
}
|
891
|
-
|
892
662
|
/**
|
893
663
|
* Updates the plugin state after HoT initialization.
|
894
664
|
*
|
@@ -8,7 +8,6 @@ var _sourceSettings2 = _interopRequireDefault(require("./sourceSettings"));
|
|
8
8
|
var _headersTree2 = _interopRequireDefault(require("./headersTree"));
|
9
9
|
var _nodeModifiers = require("./nodeModifiers");
|
10
10
|
var _matrixGenerator = require("./matrixGenerator");
|
11
|
-
var _tree = require("../../../utils/dataStructures/tree");
|
12
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
12
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
14
13
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
@@ -318,23 +317,6 @@ class StateManager {
|
|
318
317
|
* @returns {object|null}
|
319
318
|
*/
|
320
319
|
getHeaderTreeNodeData(headerLevel, columnIndex) {
|
321
|
-
const node = this.getHeaderTreeNode(headerLevel, columnIndex);
|
322
|
-
if (!node) {
|
323
|
-
return null;
|
324
|
-
}
|
325
|
-
return {
|
326
|
-
...node.data
|
327
|
-
};
|
328
|
-
}
|
329
|
-
|
330
|
-
/**
|
331
|
-
* Gets tree node that is connected to the column header.
|
332
|
-
*
|
333
|
-
* @param {number} headerLevel Header level (there is support for negative and positive values).
|
334
|
-
* @param {number} columnIndex A visual column index.
|
335
|
-
* @returns {TreeNode|null}
|
336
|
-
*/
|
337
|
-
getHeaderTreeNode(headerLevel, columnIndex) {
|
338
320
|
if (headerLevel < 0) {
|
339
321
|
headerLevel = this.rowCoordsToLevel(headerLevel);
|
340
322
|
}
|
@@ -345,53 +327,9 @@ class StateManager {
|
|
345
327
|
if (!node) {
|
346
328
|
return null;
|
347
329
|
}
|
348
|
-
return
|
349
|
-
|
350
|
-
|
351
|
-
/**
|
352
|
-
* Finds the most top header level of the column header that is rendered entirely within
|
353
|
-
* the passed visual columns range. If multiple columns headers are found within the range the
|
354
|
-
* most top header level value will be returned.
|
355
|
-
*
|
356
|
-
* @param {number} columnIndexFrom A visual column index.
|
357
|
-
* @param {number} [columnIndexTo] A visual column index.
|
358
|
-
* @returns {number} Returns a header level in format -1 to -N.
|
359
|
-
*/
|
360
|
-
findTopMostEntireHeaderLevel(columnIndexFrom) {
|
361
|
-
var _headerLevel;
|
362
|
-
let columnIndexTo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : columnIndexFrom;
|
363
|
-
const columnsWidth = columnIndexTo - columnIndexFrom + 1;
|
364
|
-
let atLeastOneRootFound = false;
|
365
|
-
let headerLevel = null;
|
366
|
-
for (let columnIndex = columnIndexFrom; columnIndex <= columnIndexTo; columnIndex++) {
|
367
|
-
const rootNode = _classPrivateFieldGet(this, _headersTree).getRootByColumn(columnIndex);
|
368
|
-
if (!rootNode) {
|
369
|
-
break;
|
370
|
-
}
|
371
|
-
atLeastOneRootFound = true;
|
372
|
-
|
373
|
-
// eslint-disable-next-line
|
374
|
-
rootNode.walkDown(node => {
|
375
|
-
const {
|
376
|
-
columnIndex: nodeColumnIndex,
|
377
|
-
headerLevel: nodeHeaderLevel,
|
378
|
-
origColspan,
|
379
|
-
isHidden
|
380
|
-
} = node.data;
|
381
|
-
if (isHidden) {
|
382
|
-
return;
|
383
|
-
}
|
384
|
-
|
385
|
-
// if the header fits entirely within the columns range get and save the node header level
|
386
|
-
if (origColspan <= columnsWidth && nodeColumnIndex >= columnIndexFrom && nodeColumnIndex + origColspan - 1 <= columnIndexTo && (headerLevel === null || nodeHeaderLevel < headerLevel)) {
|
387
|
-
headerLevel = nodeHeaderLevel;
|
388
|
-
}
|
389
|
-
}, _tree.TRAVERSAL_DF_PRE);
|
390
|
-
}
|
391
|
-
if (atLeastOneRootFound && headerLevel === null) {
|
392
|
-
return -1;
|
393
|
-
}
|
394
|
-
return this.levelToRowCoords((_headerLevel = headerLevel) !== null && _headerLevel !== void 0 ? _headerLevel : 0);
|
330
|
+
return {
|
331
|
+
...node.data
|
332
|
+
};
|
395
333
|
}
|
396
334
|
|
397
335
|
/**
|
@@ -429,43 +367,6 @@ class StateManager {
|
|
429
367
|
return stepBackColumn;
|
430
368
|
}
|
431
369
|
|
432
|
-
/**
|
433
|
-
* The method is helpful in cases where the column index targets in-between currently
|
434
|
-
* collapsed column. In that case, the method returns the right-most column index
|
435
|
-
* where the nested header ends.
|
436
|
-
*
|
437
|
-
* @param {number} headerLevel Header level (there is support for negative and positive values).
|
438
|
-
* @param {number} columnIndex A visual column index.
|
439
|
-
* @returns {number}
|
440
|
-
*/
|
441
|
-
findRightMostColumnIndex(headerLevel, columnIndex) {
|
442
|
-
var _this$getHeaderSettin3;
|
443
|
-
const {
|
444
|
-
isRoot,
|
445
|
-
origColspan
|
446
|
-
} = (_this$getHeaderSettin3 = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin3 !== void 0 ? _this$getHeaderSettin3 : {
|
447
|
-
isRoot: true,
|
448
|
-
origColspan: 1
|
449
|
-
};
|
450
|
-
if (isRoot) {
|
451
|
-
return columnIndex + origColspan - 1;
|
452
|
-
}
|
453
|
-
let stepForthColumn = columnIndex + 1;
|
454
|
-
while (stepForthColumn < this.getColumnsCount()) {
|
455
|
-
var _this$getHeaderSettin4;
|
456
|
-
const {
|
457
|
-
isRoot: isRootNode
|
458
|
-
} = (_this$getHeaderSettin4 = this.getHeaderSettings(headerLevel, stepForthColumn)) !== null && _this$getHeaderSettin4 !== void 0 ? _this$getHeaderSettin4 : {
|
459
|
-
isRoot: true
|
460
|
-
};
|
461
|
-
if (isRootNode) {
|
462
|
-
break;
|
463
|
-
}
|
464
|
-
stepForthColumn += 1;
|
465
|
-
}
|
466
|
-
return stepForthColumn - 1;
|
467
|
-
}
|
468
|
-
|
469
370
|
/**
|
470
371
|
* Gets a total number of headers levels.
|
471
372
|
*
|
@@ -12,7 +12,6 @@ import SourceSettings from "./sourceSettings.mjs";
|
|
12
12
|
import HeadersTree from "./headersTree.mjs";
|
13
13
|
import { triggerNodeModification } from "./nodeModifiers/index.mjs";
|
14
14
|
import { generateMatrix } from "./matrixGenerator.mjs";
|
15
|
-
import { TRAVERSAL_DF_PRE } from "../../../utils/dataStructures/tree.mjs";
|
16
15
|
/**
|
17
16
|
* The state manager is a source of truth for nested headers configuration.
|
18
17
|
* The state generation process is divided into three stages.
|
@@ -314,23 +313,6 @@ export default class StateManager {
|
|
314
313
|
* @returns {object|null}
|
315
314
|
*/
|
316
315
|
getHeaderTreeNodeData(headerLevel, columnIndex) {
|
317
|
-
const node = this.getHeaderTreeNode(headerLevel, columnIndex);
|
318
|
-
if (!node) {
|
319
|
-
return null;
|
320
|
-
}
|
321
|
-
return {
|
322
|
-
...node.data
|
323
|
-
};
|
324
|
-
}
|
325
|
-
|
326
|
-
/**
|
327
|
-
* Gets tree node that is connected to the column header.
|
328
|
-
*
|
329
|
-
* @param {number} headerLevel Header level (there is support for negative and positive values).
|
330
|
-
* @param {number} columnIndex A visual column index.
|
331
|
-
* @returns {TreeNode|null}
|
332
|
-
*/
|
333
|
-
getHeaderTreeNode(headerLevel, columnIndex) {
|
334
316
|
if (headerLevel < 0) {
|
335
317
|
headerLevel = this.rowCoordsToLevel(headerLevel);
|
336
318
|
}
|
@@ -341,53 +323,9 @@ export default class StateManager {
|
|
341
323
|
if (!node) {
|
342
324
|
return null;
|
343
325
|
}
|
344
|
-
return
|
345
|
-
|
346
|
-
|
347
|
-
/**
|
348
|
-
* Finds the most top header level of the column header that is rendered entirely within
|
349
|
-
* the passed visual columns range. If multiple columns headers are found within the range the
|
350
|
-
* most top header level value will be returned.
|
351
|
-
*
|
352
|
-
* @param {number} columnIndexFrom A visual column index.
|
353
|
-
* @param {number} [columnIndexTo] A visual column index.
|
354
|
-
* @returns {number} Returns a header level in format -1 to -N.
|
355
|
-
*/
|
356
|
-
findTopMostEntireHeaderLevel(columnIndexFrom) {
|
357
|
-
var _headerLevel;
|
358
|
-
let columnIndexTo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : columnIndexFrom;
|
359
|
-
const columnsWidth = columnIndexTo - columnIndexFrom + 1;
|
360
|
-
let atLeastOneRootFound = false;
|
361
|
-
let headerLevel = null;
|
362
|
-
for (let columnIndex = columnIndexFrom; columnIndex <= columnIndexTo; columnIndex++) {
|
363
|
-
const rootNode = _classPrivateFieldGet(this, _headersTree).getRootByColumn(columnIndex);
|
364
|
-
if (!rootNode) {
|
365
|
-
break;
|
366
|
-
}
|
367
|
-
atLeastOneRootFound = true;
|
368
|
-
|
369
|
-
// eslint-disable-next-line
|
370
|
-
rootNode.walkDown(node => {
|
371
|
-
const {
|
372
|
-
columnIndex: nodeColumnIndex,
|
373
|
-
headerLevel: nodeHeaderLevel,
|
374
|
-
origColspan,
|
375
|
-
isHidden
|
376
|
-
} = node.data;
|
377
|
-
if (isHidden) {
|
378
|
-
return;
|
379
|
-
}
|
380
|
-
|
381
|
-
// if the header fits entirely within the columns range get and save the node header level
|
382
|
-
if (origColspan <= columnsWidth && nodeColumnIndex >= columnIndexFrom && nodeColumnIndex + origColspan - 1 <= columnIndexTo && (headerLevel === null || nodeHeaderLevel < headerLevel)) {
|
383
|
-
headerLevel = nodeHeaderLevel;
|
384
|
-
}
|
385
|
-
}, TRAVERSAL_DF_PRE);
|
386
|
-
}
|
387
|
-
if (atLeastOneRootFound && headerLevel === null) {
|
388
|
-
return -1;
|
389
|
-
}
|
390
|
-
return this.levelToRowCoords((_headerLevel = headerLevel) !== null && _headerLevel !== void 0 ? _headerLevel : 0);
|
326
|
+
return {
|
327
|
+
...node.data
|
328
|
+
};
|
391
329
|
}
|
392
330
|
|
393
331
|
/**
|
@@ -425,43 +363,6 @@ export default class StateManager {
|
|
425
363
|
return stepBackColumn;
|
426
364
|
}
|
427
365
|
|
428
|
-
/**
|
429
|
-
* The method is helpful in cases where the column index targets in-between currently
|
430
|
-
* collapsed column. In that case, the method returns the right-most column index
|
431
|
-
* where the nested header ends.
|
432
|
-
*
|
433
|
-
* @param {number} headerLevel Header level (there is support for negative and positive values).
|
434
|
-
* @param {number} columnIndex A visual column index.
|
435
|
-
* @returns {number}
|
436
|
-
*/
|
437
|
-
findRightMostColumnIndex(headerLevel, columnIndex) {
|
438
|
-
var _this$getHeaderSettin3;
|
439
|
-
const {
|
440
|
-
isRoot,
|
441
|
-
origColspan
|
442
|
-
} = (_this$getHeaderSettin3 = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin3 !== void 0 ? _this$getHeaderSettin3 : {
|
443
|
-
isRoot: true,
|
444
|
-
origColspan: 1
|
445
|
-
};
|
446
|
-
if (isRoot) {
|
447
|
-
return columnIndex + origColspan - 1;
|
448
|
-
}
|
449
|
-
let stepForthColumn = columnIndex + 1;
|
450
|
-
while (stepForthColumn < this.getColumnsCount()) {
|
451
|
-
var _this$getHeaderSettin4;
|
452
|
-
const {
|
453
|
-
isRoot: isRootNode
|
454
|
-
} = (_this$getHeaderSettin4 = this.getHeaderSettings(headerLevel, stepForthColumn)) !== null && _this$getHeaderSettin4 !== void 0 ? _this$getHeaderSettin4 : {
|
455
|
-
isRoot: true
|
456
|
-
};
|
457
|
-
if (isRootNode) {
|
458
|
-
break;
|
459
|
-
}
|
460
|
-
stepForthColumn += 1;
|
461
|
-
}
|
462
|
-
return stepForthColumn - 1;
|
463
|
-
}
|
464
|
-
|
465
366
|
/**
|
466
367
|
* Gets a total number of headers levels.
|
467
368
|
*
|
@@ -16,7 +16,6 @@ const PLUGIN_KEY = 'nestedRows';
|
|
16
16
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
17
17
|
const PLUGIN_PRIORITY = 300;
|
18
18
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
19
|
-
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
20
19
|
const privatePool = new WeakMap();
|
21
20
|
|
22
21
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -151,7 +150,6 @@ class NestedRows extends _base.BasePlugin {
|
|
151
150
|
});
|
152
151
|
this.addHook('beforeLoadData', data => this.onBeforeLoadData(data));
|
153
152
|
this.addHook('beforeUpdateData', data => this.onBeforeLoadData(data));
|
154
|
-
this.registerShortcuts();
|
155
153
|
super.enablePlugin();
|
156
154
|
}
|
157
155
|
|
@@ -160,7 +158,6 @@ class NestedRows extends _base.BasePlugin {
|
|
160
158
|
*/
|
161
159
|
disablePlugin() {
|
162
160
|
this.hot.rowIndexMapper.unregisterMap('nestedRows');
|
163
|
-
this.unregisterShortcuts();
|
164
161
|
super.disablePlugin();
|
165
162
|
}
|
166
163
|
|
@@ -182,44 +179,6 @@ class NestedRows extends _base.BasePlugin {
|
|
182
179
|
super.updatePlugin();
|
183
180
|
}
|
184
181
|
|
185
|
-
/**
|
186
|
-
* Register shortcuts responsible for toggling collapsible columns.
|
187
|
-
*
|
188
|
-
* @private
|
189
|
-
*/
|
190
|
-
registerShortcuts() {
|
191
|
-
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
192
|
-
keys: [['Enter']],
|
193
|
-
callback: () => {
|
194
|
-
const {
|
195
|
-
highlight
|
196
|
-
} = this.hot.getSelectedRangeLast();
|
197
|
-
if (highlight.col === -1 && highlight.row >= 0) {
|
198
|
-
const row = this.collapsingUI.translateTrimmedRow(highlight.row);
|
199
|
-
if (this.collapsingUI.areChildrenCollapsed(row)) {
|
200
|
-
this.collapsingUI.expandChildren(row);
|
201
|
-
} else {
|
202
|
-
this.collapsingUI.collapseChildren(row);
|
203
|
-
}
|
204
|
-
}
|
205
|
-
},
|
206
|
-
runOnlyIf: () => {
|
207
|
-
var _this$hot$getSelected;
|
208
|
-
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
209
|
-
},
|
210
|
-
group: SHORTCUTS_GROUP
|
211
|
-
});
|
212
|
-
}
|
213
|
-
|
214
|
-
/**
|
215
|
-
* Unregister shortcuts responsible for toggling collapsible columns.
|
216
|
-
*
|
217
|
-
* @private
|
218
|
-
*/
|
219
|
-
unregisterShortcuts() {
|
220
|
-
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
221
|
-
}
|
222
|
-
|
223
182
|
/**
|
224
183
|
* `beforeRowMove` hook callback.
|
225
184
|
*
|