handsontable 0.0.0-next-a1e4b4f-20230628 → 0.0.0-next-e697250-20230707
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +50 -28
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -28
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +69 -36
- package/3rdparty/walkontable/src/cell/range.mjs +68 -35
- package/3rdparty/walkontable/src/event.js +3 -5
- package/3rdparty/walkontable/src/event.mjs +3 -5
- package/3rdparty/walkontable/src/overlay/_base.js +6 -7
- package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/top.js +6 -7
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
- package/3rdparty/walkontable/src/overlays.js +55 -64
- package/3rdparty/walkontable/src/overlays.mjs +55 -64
- package/3rdparty/walkontable/src/renderer/table.js +0 -2
- package/3rdparty/walkontable/src/renderer/table.mjs +0 -2
- package/3rdparty/walkontable/src/scroll.js +20 -23
- package/3rdparty/walkontable/src/scroll.mjs +20 -23
- package/3rdparty/walkontable/src/selection/border/border.js +1 -0
- package/3rdparty/walkontable/src/selection/border/border.mjs +1 -0
- package/3rdparty/walkontable/src/selection/manager.js +40 -45
- package/3rdparty/walkontable/src/selection/manager.mjs +33 -38
- package/3rdparty/walkontable/src/selection/scanner.js +5 -4
- package/3rdparty/walkontable/src/selection/scanner.mjs +1 -0
- package/3rdparty/walkontable/src/settings.js +13 -15
- package/3rdparty/walkontable/src/settings.mjs +13 -15
- package/3rdparty/walkontable/src/table.js +23 -26
- package/3rdparty/walkontable/src/table.mjs +23 -26
- package/CHANGELOG.md +56 -0
- package/base.js +2 -4
- package/base.mjs +2 -2
- package/common.d.ts +1 -1
- package/core.d.ts +7 -9
- package/core.js +241 -439
- package/core.mjs +245 -443
- package/dataMap/dataMap.js +1 -0
- package/dataMap/dataMap.mjs +1 -0
- package/dataMap/dataSource.js +5 -5
- package/dataMap/dataSource.mjs +5 -5
- package/dataMap/metaManager/lazyFactoryMap.js +1 -0
- package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
- package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
- package/dataMap/metaManager/metaSchema.js +33 -24
- package/dataMap/metaManager/metaSchema.mjs +33 -24
- package/dist/handsontable.css +25 -3
- package/dist/handsontable.full.css +25 -3
- package/dist/handsontable.full.js +14539 -11358
- package/dist/handsontable.full.min.css +5 -5
- package/dist/handsontable.full.min.js +137 -125
- package/dist/handsontable.js +31414 -28455
- package/dist/handsontable.min.css +5 -5
- package/dist/handsontable.min.js +11 -3
- package/dist/languages/all.js +133 -0
- package/dist/languages/ar-AR.js +7 -0
- package/dist/languages/cs-CZ.js +7 -0
- package/dist/languages/de-CH.js +7 -0
- package/dist/languages/de-DE.js +7 -0
- package/dist/languages/en-US.js +7 -0
- package/dist/languages/es-MX.js +7 -0
- package/dist/languages/fr-FR.js +7 -0
- package/dist/languages/it-IT.js +7 -0
- package/dist/languages/ja-JP.js +7 -0
- package/dist/languages/ko-KR.js +7 -0
- package/dist/languages/lv-LV.js +7 -0
- package/dist/languages/nb-NO.js +7 -0
- package/dist/languages/nl-NL.js +7 -0
- package/dist/languages/pl-PL.js +7 -0
- package/dist/languages/pt-BR.js +7 -0
- package/dist/languages/ru-RU.js +7 -0
- package/dist/languages/sr-SP.js +7 -0
- package/dist/languages/zh-CN.js +7 -0
- package/dist/languages/zh-TW.js +7 -0
- package/editorManager.js +19 -89
- package/editorManager.mjs +24 -93
- package/editors/baseEditor/baseEditor.js +1 -0
- package/editors/baseEditor/baseEditor.mjs +1 -0
- package/editors/textEditor/textEditor.js +14 -20
- package/editors/textEditor/textEditor.mjs +16 -22
- package/helpers/dom/element.js +0 -11
- package/helpers/dom/element.mjs +0 -10
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/i18n/languages/ar-AR.js +7 -1
- package/i18n/languages/cs-CZ.js +7 -1
- package/i18n/languages/de-CH.js +7 -1
- package/i18n/languages/de-DE.js +7 -1
- package/i18n/languages/en-US.js +7 -1
- package/i18n/languages/es-MX.js +7 -1
- package/i18n/languages/fr-FR.js +7 -1
- package/i18n/languages/it-IT.js +7 -1
- package/i18n/languages/ja-JP.js +7 -1
- package/i18n/languages/ko-KR.js +7 -1
- package/i18n/languages/lv-LV.js +7 -1
- package/i18n/languages/nb-NO.js +7 -1
- package/i18n/languages/nl-NL.js +7 -1
- package/i18n/languages/pl-PL.js +7 -1
- package/i18n/languages/pt-BR.js +7 -1
- package/i18n/languages/ru-RU.js +7 -1
- package/i18n/languages/sr-SP.js +7 -1
- package/i18n/languages/zh-CN.js +7 -1
- package/i18n/languages/zh-TW.js +7 -1
- package/languages/all.js +133 -0
- package/languages/ar-AR.js +7 -0
- package/languages/cs-CZ.js +7 -0
- package/languages/de-CH.js +7 -0
- package/languages/de-DE.js +7 -0
- package/languages/en-US.js +7 -0
- package/languages/es-MX.js +7 -0
- package/languages/fr-FR.js +7 -0
- package/languages/index.js +133 -0
- package/languages/it-IT.js +7 -0
- package/languages/ja-JP.js +7 -0
- package/languages/ko-KR.js +7 -0
- package/languages/lv-LV.js +7 -0
- package/languages/nb-NO.js +7 -0
- package/languages/nl-NL.js +7 -0
- package/languages/pl-PL.js +7 -0
- package/languages/pt-BR.js +7 -0
- package/languages/ru-RU.js +7 -0
- package/languages/sr-SP.js +7 -0
- package/languages/zh-CN.js +7 -0
- package/languages/zh-TW.js +7 -0
- package/package.json +3 -2
- package/pluginHooks.d.ts +8 -2
- package/pluginHooks.js +116 -18
- package/pluginHooks.mjs +115 -15
- package/plugins/autoColumnSize/autoColumnSize.js +1 -0
- package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
- package/plugins/autoRowSize/autoRowSize.js +3 -2
- package/plugins/autoRowSize/autoRowSize.mjs +3 -2
- package/plugins/autofill/autofill.js +2 -2
- package/plugins/autofill/autofill.mjs +3 -3
- package/plugins/autofill/utils.js +1 -39
- package/plugins/autofill/utils.mjs +0 -37
- package/plugins/base/base.js +1 -0
- package/plugins/base/base.mjs +1 -0
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +82 -24
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +82 -24
- package/plugins/columnSorting/columnSorting.js +51 -8
- package/plugins/columnSorting/columnSorting.mjs +50 -9
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/index.js +4 -2
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/columnSorting/rootComparator.js +1 -0
- package/plugins/columnSorting/rootComparator.mjs +1 -0
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +289 -224
- package/plugins/comments/comments.mjs +297 -234
- package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
- package/plugins/comments/contextMenuItem/removeComment.js +48 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +81 -29
- package/plugins/contextMenu/contextMenu.mjs +82 -30
- 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 +8 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +6 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +8 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +6 -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 +25 -16
- package/plugins/contextMenu/utils.mjs +24 -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 +100 -14
- package/plugins/copyPaste/copyPaste.mjs +100 -14
- package/plugins/copyPaste/copyableRanges.js +25 -31
- package/plugins/copyPaste/copyableRanges.mjs +18 -24
- package/plugins/copyPaste/focusableElement.js +219 -0
- package/plugins/copyPaste/focusableElement.mjs +213 -0
- package/plugins/customBorders/customBorders.d.ts +2 -0
- package/plugins/customBorders/customBorders.js +19 -50
- package/plugins/customBorders/customBorders.mjs +19 -50
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +94 -30
- package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
- package/plugins/exportFile/dataProvider.js +1 -0
- package/plugins/exportFile/dataProvider.mjs +1 -0
- package/plugins/filters/component/value.js +1 -0
- package/plugins/filters/component/value.mjs +1 -0
- package/plugins/filters/condition/beginsWith.js +1 -0
- package/plugins/filters/condition/beginsWith.mjs +1 -0
- package/plugins/filters/condition/between.js +1 -0
- package/plugins/filters/condition/between.mjs +1 -0
- package/plugins/filters/condition/byValue.js +1 -0
- package/plugins/filters/condition/byValue.mjs +1 -0
- package/plugins/filters/condition/contains.js +1 -0
- package/plugins/filters/condition/contains.mjs +1 -0
- package/plugins/filters/condition/date/after.js +1 -0
- package/plugins/filters/condition/date/after.mjs +1 -0
- package/plugins/filters/condition/date/before.js +1 -0
- package/plugins/filters/condition/date/before.mjs +1 -0
- package/plugins/filters/condition/endsWith.js +1 -0
- package/plugins/filters/condition/endsWith.mjs +1 -0
- package/plugins/filters/condition/equal.js +1 -0
- package/plugins/filters/condition/equal.mjs +1 -0
- package/plugins/filters/condition/greaterThan.js +1 -0
- package/plugins/filters/condition/greaterThan.mjs +1 -0
- package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
- package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
- package/plugins/filters/condition/lessThan.js +1 -0
- package/plugins/filters/condition/lessThan.mjs +1 -0
- package/plugins/filters/condition/lessThanOrEqual.js +1 -0
- package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
- package/plugins/filters/conditionCollection.js +1 -0
- package/plugins/filters/conditionCollection.mjs +1 -0
- package/plugins/filters/filters.js +68 -42
- package/plugins/filters/filters.mjs +67 -41
- package/plugins/filters/ui/multipleSelect.js +1 -0
- package/plugins/filters/ui/multipleSelect.mjs +1 -0
- package/plugins/formulas/formulas.js +191 -168
- package/plugins/formulas/formulas.mjs +191 -168
- package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
- package/plugins/formulas/indexSyncer/index.js +225 -0
- package/plugins/formulas/indexSyncer/index.mjs +219 -0
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
- package/plugins/manualColumnResize/manualColumnResize.js +36 -5
- package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
- package/plugins/manualRowMove/manualRowMove.js +31 -12
- package/plugins/manualRowMove/manualRowMove.mjs +32 -13
- package/plugins/manualRowResize/manualRowResize.js +40 -9
- package/plugins/manualRowResize/manualRowResize.mjs +40 -9
- package/plugins/mergeCells/calculations/autofill.js +1 -0
- package/plugins/mergeCells/calculations/autofill.mjs +1 -0
- package/plugins/mergeCells/cellsCollection.js +1 -0
- package/plugins/mergeCells/cellsCollection.mjs +1 -0
- package/plugins/mergeCells/mergeCells.js +6 -2
- package/plugins/mergeCells/mergeCells.mjs +6 -2
- package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
- package/plugins/multiColumnSorting/rootComparator.js +1 -0
- package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
- package/plugins/nestedHeaders/nestedHeaders.js +129 -6
- package/plugins/nestedHeaders/nestedHeaders.mjs +129 -6
- package/plugins/nestedHeaders/stateManager/headersTree.js +24 -26
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -23
- package/plugins/nestedHeaders/stateManager/index.js +40 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
- package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
- package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
- package/plugins/nestedRows/data/dataManager.js +1 -0
- package/plugins/nestedRows/data/dataManager.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +53 -7
- package/plugins/nestedRows/nestedRows.mjs +53 -7
- package/plugins/nestedRows/ui/collapsing.js +1 -0
- package/plugins/nestedRows/ui/collapsing.mjs +1 -0
- package/plugins/nestedRows/utils/rowMoveController.js +1 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
- package/plugins/persistentState/storage.js +1 -0
- package/plugins/persistentState/storage.mjs +1 -0
- package/plugins/registry.js +4 -1
- package/plugins/registry.mjs +1 -0
- package/plugins/undoRedo/undoRedo.js +1 -1
- package/plugins/undoRedo/undoRedo.mjs +1 -1
- package/renderers/baseRenderer/baseRenderer.js +0 -3
- package/renderers/baseRenderer/baseRenderer.mjs +0 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +120 -98
- package/selection/highlight/highlight.mjs +118 -96
- package/selection/highlight/visualSelection.js +30 -17
- package/selection/highlight/visualSelection.mjs +30 -17
- 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 +246 -153
- package/selection/selection.mjs +247 -154
- package/selection/transformation.js +233 -96
- package/selection/transformation.mjs +230 -93
- package/selection/utils.js +12 -35
- package/selection/utils.mjs +13 -35
- package/settings.d.ts +2 -1
- package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +29 -0
- package/shortcutContexts/commands/editor/open.mjs +24 -0
- package/shortcutContexts/commands/emptySelectedCells.js +12 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -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 +10 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/index.js +53 -0
- package/shortcutContexts/commands/index.mjs +49 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +19 -0
- package/shortcutContexts/constants.mjs +12 -0
- package/shortcutContexts/editor.js +29 -0
- package/shortcutContexts/editor.mjs +25 -0
- package/shortcutContexts/grid.js +252 -0
- package/shortcutContexts/grid.mjs +248 -0
- package/shortcutContexts/index.js +29 -0
- package/shortcutContexts/index.mjs +15 -0
- package/shortcuts/context.js +1 -0
- package/shortcuts/context.mjs +1 -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 +21 -5
- package/shortcuts/utils.mjs +20 -4
- package/tableView.js +112 -82
- package/tableView.mjs +112 -82
- package/translations/changesObservable/observable.js +41 -46
- package/translations/changesObservable/observable.mjs +36 -41
- package/translations/changesObservable/observer.js +1 -1
- package/translations/indexMapper.d.ts +0 -2
- package/translations/indexMapper.js +38 -64
- package/translations/indexMapper.mjs +39 -64
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/indexesSequence.js +1 -0
- package/translations/maps/utils/indexesSequence.mjs +1 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/tree.js +16 -18
- package/utils/dataStructures/tree.mjs +16 -18
- package/utils/dataStructures/uniqueMap.js +1 -0
- package/utils/dataStructures/uniqueMap.mjs +1 -0
- package/utils/dataStructures/uniqueSet.js +1 -0
- package/utils/dataStructures/uniqueSet.mjs +1 -0
- package/utils/ghostTable.js +1 -0
- package/utils/ghostTable.mjs +1 -0
- package/utils/parseTable.js +5 -1
- package/utils/parseTable.mjs +5 -1
- package/utils/staticRegister.js +1 -0
- package/utils/staticRegister.mjs +1 -0
- package/focusManager.d.ts +0 -12
- package/focusManager.js +0 -275
- package/focusManager.mjs +0 -270
package/selection/selection.mjs
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2
2
|
var _templateObject;
|
3
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
5
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
6
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
7
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
8
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
9
3
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
10
4
|
import "core-js/modules/es.array.iterator.js";
|
11
5
|
import "core-js/modules/es.object.to-string.js";
|
@@ -26,21 +20,22 @@ import "core-js/modules/es.symbol.description.js";
|
|
26
20
|
import "core-js/modules/es.array.slice.js";
|
27
21
|
import "core-js/modules/es.object.freeze.js";
|
28
22
|
import "core-js/modules/es.symbol.iterator.js";
|
29
|
-
import "core-js/modules/es.function.name.js";
|
30
|
-
import "core-js/modules/es.regexp.exec.js";
|
31
23
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
32
24
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
33
25
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
26
|
+
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; }
|
34
27
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
35
28
|
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); }
|
29
|
+
import { CellCoords, CellRange } from "./../3rdparty/walkontable/src/index.mjs";
|
36
30
|
import Highlight, { AREA_TYPE, HEADER_TYPE, FOCUS_TYPE } from "./highlight/highlight.mjs";
|
37
31
|
import SelectionRange from "./range.mjs";
|
38
32
|
import { createObjectPropListener, mixin } from "./../helpers/object.mjs";
|
39
33
|
import { isUndefined } from "./../helpers/mixed.mjs";
|
34
|
+
import { clamp } from "./../helpers/number.mjs";
|
40
35
|
import { arrayEach } from "./../helpers/array.mjs";
|
41
36
|
import localHooks from "./../mixins/localHooks.mjs";
|
42
37
|
import Transformation from "./transformation.mjs";
|
43
|
-
import { detectSelectionType,
|
38
|
+
import { detectSelectionType, normalizeSelectionFactory, SELECTION_TYPE_EMPTY, SELECTION_TYPE_UNRECOGNIZED } from "./utils.mjs";
|
44
39
|
import { toSingleLine } from "./../helpers/templateLiteralTag.mjs";
|
45
40
|
/**
|
46
41
|
* @class Selection
|
@@ -55,57 +50,62 @@ var Selection = /*#__PURE__*/function () {
|
|
55
50
|
*
|
56
51
|
* @type {GridSettings}
|
57
52
|
*/
|
58
|
-
this
|
53
|
+
_defineProperty(this, "settings", void 0);
|
59
54
|
/**
|
60
55
|
* An additional object with dynamically defined properties which describes table state.
|
61
56
|
*
|
62
57
|
* @type {object}
|
63
58
|
*/
|
64
|
-
this
|
59
|
+
_defineProperty(this, "tableProps", void 0);
|
65
60
|
/**
|
66
61
|
* The flag which determines if the selection is in progress.
|
67
62
|
*
|
68
63
|
* @type {boolean}
|
69
64
|
*/
|
70
|
-
this
|
65
|
+
_defineProperty(this, "inProgress", false);
|
71
66
|
/**
|
72
|
-
*
|
67
|
+
* Selection data layer (handle visual coordinates).
|
73
68
|
*
|
74
|
-
* @type {
|
69
|
+
* @type {SelectionRange}
|
75
70
|
*/
|
76
|
-
this
|
71
|
+
_defineProperty(this, "selectedRange", new SelectionRange(function (highlight, from, to) {
|
72
|
+
return _this.tableProps.createCellRange(highlight, from, to);
|
73
|
+
}));
|
77
74
|
/**
|
78
|
-
*
|
79
|
-
* the corner header.
|
75
|
+
* Visualization layer.
|
80
76
|
*
|
81
|
-
* @type {
|
77
|
+
* @type {Highlight}
|
82
78
|
*/
|
83
|
-
this
|
79
|
+
_defineProperty(this, "highlight", void 0);
|
84
80
|
/**
|
85
|
-
* The
|
86
|
-
* the corner header.
|
81
|
+
* The module for modifying coordinates.
|
87
82
|
*
|
88
|
-
* @type {
|
83
|
+
* @type {Transformation}
|
89
84
|
*/
|
90
|
-
this
|
85
|
+
_defineProperty(this, "transformation", void 0);
|
91
86
|
/**
|
92
|
-
*
|
87
|
+
* The collection of the selection layer levels where the whole row was selected using the row header or
|
88
|
+
* the corner header.
|
93
89
|
*
|
94
|
-
* @type {
|
90
|
+
* @type {Set<number>}
|
95
91
|
*/
|
96
|
-
this
|
97
|
-
return _this.tableProps.createCellRange(highlight, from, to);
|
98
|
-
});
|
92
|
+
_defineProperty(this, "selectedByRowHeader", new Set());
|
99
93
|
/**
|
100
|
-
*
|
94
|
+
* The collection of the selection layer levels where the whole column was selected using the column header or
|
95
|
+
* the corner header.
|
101
96
|
*
|
102
|
-
* @type {
|
97
|
+
* @type {Set<number>}
|
103
98
|
*/
|
99
|
+
_defineProperty(this, "selectedByColumnHeader", new Set());
|
100
|
+
this.settings = settings;
|
101
|
+
this.tableProps = tableProps;
|
104
102
|
this.highlight = new Highlight({
|
105
103
|
headerClassName: settings.currentHeaderClassName,
|
106
104
|
activeHeaderClassName: settings.activeHeaderClassName,
|
107
105
|
rowClassName: settings.currentRowClassName,
|
108
106
|
columnClassName: settings.currentColClassName,
|
107
|
+
rowIndexMapper: this.tableProps.rowIndexMapper,
|
108
|
+
columnIndexMapper: this.tableProps.columnIndexMapper,
|
109
109
|
disabledCellSelection: function disabledCellSelection(row, column) {
|
110
110
|
return _this.tableProps.isDisabledCellSelection(row, column);
|
111
111
|
},
|
@@ -126,25 +126,16 @@ var Selection = /*#__PURE__*/function () {
|
|
126
126
|
},
|
127
127
|
createCellRange: function createCellRange(highlight, from, to) {
|
128
128
|
return _this.tableProps.createCellRange(highlight, from, to);
|
129
|
-
},
|
130
|
-
rowIndexMapper: function rowIndexMapper() {
|
131
|
-
return _this.tableProps.rowIndexMapper();
|
132
|
-
},
|
133
|
-
columnIndexMapper: function columnIndexMapper() {
|
134
|
-
return _this.tableProps.columnIndexMapper();
|
135
129
|
}
|
136
130
|
});
|
137
|
-
/**
|
138
|
-
* The module for modifying coordinates.
|
139
|
-
*
|
140
|
-
* @type {Transformation}
|
141
|
-
*/
|
142
131
|
this.transformation = new Transformation(this.selectedRange, {
|
143
|
-
|
144
|
-
|
132
|
+
rowIndexMapper: this.tableProps.rowIndexMapper,
|
133
|
+
columnIndexMapper: this.tableProps.columnIndexMapper,
|
134
|
+
countRenderableRows: function countRenderableRows() {
|
135
|
+
return _this.tableProps.countRenderableRows();
|
145
136
|
},
|
146
|
-
|
147
|
-
return _this.tableProps.
|
137
|
+
countRenderableColumns: function countRenderableColumns() {
|
138
|
+
return _this.tableProps.countRenderableColumns();
|
148
139
|
},
|
149
140
|
countRowHeaders: function countRowHeaders() {
|
150
141
|
return _this.tableProps.countRowHeaders();
|
@@ -161,6 +152,9 @@ var Selection = /*#__PURE__*/function () {
|
|
161
152
|
createCellCoords: function createCellCoords(row, column) {
|
162
153
|
return _this.tableProps.createCellCoords(row, column);
|
163
154
|
},
|
155
|
+
navigableHeaders: function navigableHeaders() {
|
156
|
+
return settings.navigableHeaders;
|
157
|
+
},
|
164
158
|
fixedRowsBottom: function fixedRowsBottom() {
|
165
159
|
return settings.fixedRowsBottom;
|
166
160
|
},
|
@@ -227,7 +221,7 @@ var Selection = /*#__PURE__*/function () {
|
|
227
221
|
}
|
228
222
|
|
229
223
|
/**
|
230
|
-
* Indicate that selection process began. It sets
|
224
|
+
* Indicate that selection process began. It sets internally `.inProgress` property to `true`.
|
231
225
|
*/
|
232
226
|
}, {
|
233
227
|
key: "begin",
|
@@ -236,7 +230,7 @@ var Selection = /*#__PURE__*/function () {
|
|
236
230
|
}
|
237
231
|
|
238
232
|
/**
|
239
|
-
* Indicate that selection process finished. It sets
|
233
|
+
* Indicate that selection process finished. It sets internally `.inProgress` property to `false`.
|
240
234
|
*/
|
241
235
|
}, {
|
242
236
|
key: "finish",
|
@@ -265,35 +259,27 @@ var Selection = /*#__PURE__*/function () {
|
|
265
259
|
* the default trigger will be used.
|
266
260
|
* @param {boolean} [fragment=false] If `true`, the selection will be treated as a partial selection where the
|
267
261
|
* `setRangeEnd` method won't be called on every `setRangeStart` call.
|
262
|
+
* @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
|
268
263
|
*/
|
269
264
|
}, {
|
270
265
|
key: "setRangeStart",
|
271
266
|
value: function setRangeStart(coords, multipleSelection) {
|
272
267
|
var fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
268
|
+
var highlightCoords = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : coords;
|
273
269
|
var isMultipleMode = this.settings.selectionMode === 'multiple';
|
274
270
|
var isMultipleSelection = isUndefined(multipleSelection) ? this.tableProps.getShortcutManager().isCtrlPressed() : multipleSelection;
|
275
|
-
var isRowNegative = coords.row < 0;
|
276
|
-
var isColumnNegative = coords.col < 0;
|
277
|
-
var selectedByCorner = isRowNegative && isColumnNegative;
|
278
271
|
// We are creating copy. We would like to modify just the start of the selection by below hook. Then original coords
|
279
272
|
// should be handled by next methods.
|
280
273
|
var coordsClone = coords.clone();
|
281
|
-
this.selectedByCorner = selectedByCorner;
|
282
274
|
this.runLocalHooks("beforeSetRangeStart".concat(fragment ? 'Only' : ''), coordsClone);
|
283
275
|
if (!isMultipleMode || isMultipleMode && !isMultipleSelection && isUndefined(multipleSelection)) {
|
284
276
|
this.selectedRange.clear();
|
285
277
|
}
|
286
|
-
this.selectedRange.add(coordsClone);
|
278
|
+
this.selectedRange.add(coordsClone).current().setHighlight(highlightCoords.clone());
|
287
279
|
if (this.getLayerLevel() === 0) {
|
288
280
|
this.selectedByRowHeader.clear();
|
289
281
|
this.selectedByColumnHeader.clear();
|
290
282
|
}
|
291
|
-
if (!selectedByCorner && isColumnNegative) {
|
292
|
-
this.selectedByRowHeader.add(this.getLayerLevel());
|
293
|
-
}
|
294
|
-
if (!selectedByCorner && isRowNegative) {
|
295
|
-
this.selectedByColumnHeader.add(this.getLayerLevel());
|
296
|
-
}
|
297
283
|
if (!fragment) {
|
298
284
|
this.setRangeEnd(coords);
|
299
285
|
}
|
@@ -306,11 +292,13 @@ var Selection = /*#__PURE__*/function () {
|
|
306
292
|
* @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
|
307
293
|
* only when 'selectionMode' is set as 'multiple'. If the argument is not defined
|
308
294
|
* the default trigger will be used.
|
295
|
+
* @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
|
309
296
|
*/
|
310
297
|
}, {
|
311
298
|
key: "setRangeStartOnly",
|
312
299
|
value: function setRangeStartOnly(coords, multipleSelection) {
|
313
|
-
|
300
|
+
var highlightCoords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : coords;
|
301
|
+
this.setRangeStart(coords, multipleSelection, true, highlightCoords);
|
314
302
|
}
|
315
303
|
|
316
304
|
/**
|
@@ -324,21 +312,39 @@ var Selection = /*#__PURE__*/function () {
|
|
324
312
|
if (this.selectedRange.isEmpty()) {
|
325
313
|
return;
|
326
314
|
}
|
327
|
-
|
328
|
-
// We are creating copy. We would like to modify just the end of the selection by below hook. Then original coords
|
329
|
-
// should be handled by next methods.
|
330
315
|
var coordsClone = coords.clone();
|
316
|
+
var countRows = this.tableProps.countRows();
|
317
|
+
var countCols = this.tableProps.countCols();
|
318
|
+
var isSingle = this.selectedRange.current().clone().setTo(coords).isSingleHeader();
|
319
|
+
|
320
|
+
// Ignore processing the end range when the header selection starts overlapping the corner and
|
321
|
+
// the selection is not a single header highlight.
|
322
|
+
if ((countRows > 0 || countCols > 0) && (countRows === 0 && coordsClone.col < 0 && !isSingle || countCols === 0 && coordsClone.row < 0 && !isSingle)) {
|
323
|
+
return;
|
324
|
+
}
|
331
325
|
this.runLocalHooks('beforeSetRangeEnd', coordsClone);
|
332
326
|
this.begin();
|
333
327
|
var cellRange = this.selectedRange.current();
|
334
|
-
if (this.settings.
|
335
|
-
cellRange.
|
328
|
+
if (!this.settings.navigableHeaders) {
|
329
|
+
cellRange.highlight.normalize();
|
330
|
+
}
|
331
|
+
if (this.settings.selectionMode === 'single') {
|
332
|
+
cellRange.setFrom(cellRange.highlight);
|
333
|
+
cellRange.setTo(cellRange.highlight);
|
334
|
+
} else {
|
335
|
+
cellRange.setTo(coordsClone);
|
336
336
|
}
|
337
337
|
|
338
|
-
//
|
339
|
-
|
338
|
+
// Prevent creating "area" selection that overlaps headers.
|
339
|
+
if (countRows > 0 && countCols > 0) {
|
340
|
+
if (!this.settings.navigableHeaders || this.settings.navigableHeaders && !cellRange.isSingleHeader()) {
|
341
|
+
cellRange.to.normalize();
|
342
|
+
}
|
343
|
+
}
|
344
|
+
var focusHighlight = this.highlight.getFocus();
|
345
|
+
focusHighlight.clear();
|
340
346
|
if (this.highlight.isEnabledFor(FOCUS_TYPE, cellRange.highlight)) {
|
341
|
-
|
347
|
+
focusHighlight.add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
|
342
348
|
}
|
343
349
|
var layerLevel = this.getLayerLevel();
|
344
350
|
|
@@ -363,6 +369,9 @@ var Selection = /*#__PURE__*/function () {
|
|
363
369
|
arrayEach(this.highlight.getActiveColumnHeaders(), function (highlight) {
|
364
370
|
return void highlight.clear();
|
365
371
|
});
|
372
|
+
arrayEach(this.highlight.getActiveCornerHeaders(), function (highlight) {
|
373
|
+
return void highlight.clear();
|
374
|
+
});
|
366
375
|
arrayEach(this.highlight.getRowHighlights(), function (highlight) {
|
367
376
|
return void highlight.clear();
|
368
377
|
});
|
@@ -377,6 +386,7 @@ var Selection = /*#__PURE__*/function () {
|
|
377
386
|
var columnHeaderHighlight = this.highlight.createColumnHeader();
|
378
387
|
var activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
|
379
388
|
var activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
|
389
|
+
var activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
|
380
390
|
var rowHighlight = this.highlight.createRowHighlight();
|
381
391
|
var columnHighlight = this.highlight.createColumnHighlight();
|
382
392
|
areaHighlight.clear();
|
@@ -385,6 +395,7 @@ var Selection = /*#__PURE__*/function () {
|
|
385
395
|
columnHeaderHighlight.clear();
|
386
396
|
activeRowHeaderHighlight.clear();
|
387
397
|
activeColumnHeaderHighlight.clear();
|
398
|
+
activeCornerHeaderHighlight.clear();
|
388
399
|
rowHighlight.clear();
|
389
400
|
columnHighlight.clear();
|
390
401
|
if (this.highlight.isEnabledFor(AREA_TYPE, cellRange.highlight) && (this.isMultiple() || layerLevel >= 1)) {
|
@@ -406,36 +417,33 @@ var Selection = /*#__PURE__*/function () {
|
|
406
417
|
}
|
407
418
|
}
|
408
419
|
if (this.highlight.isEnabledFor(HEADER_TYPE, cellRange.highlight)) {
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
if (this.isEntireRowSelected()) {
|
425
|
-
var isRowSelected = this.tableProps.countCols() === cellRange.getWidth();
|
426
|
-
|
427
|
-
// Make sure that the whole row is selected (in case where selectionMode is set to 'single')
|
428
|
-
if (isRowSelected) {
|
429
|
-
activeRowHeaderHighlight.add(this.tableProps.createCellCoords(cellRange.from.row, Math.min(-this.tableProps.countRowHeaders(), -1))).add(this.tableProps.createCellCoords(cellRange.to.row, -1)).commit();
|
420
|
+
if (!cellRange.isSingleHeader()) {
|
421
|
+
var rowCoordsFrom = this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), -1);
|
422
|
+
var rowCoordsTo = this.tableProps.createCellCoords(cellRange.to.row, -1);
|
423
|
+
var columnCoordsFrom = this.tableProps.createCellCoords(-1, Math.max(cellRange.from.col, 0));
|
424
|
+
var columnCoordsTo = this.tableProps.createCellCoords(-1, cellRange.to.col);
|
425
|
+
if (this.settings.selectionMode === 'single') {
|
426
|
+
rowHeaderHighlight.add(rowCoordsFrom).commit();
|
427
|
+
columnHeaderHighlight.add(columnCoordsFrom).commit();
|
428
|
+
rowHighlight.add(rowCoordsFrom).commit();
|
429
|
+
columnHighlight.add(columnCoordsFrom).commit();
|
430
|
+
} else {
|
431
|
+
rowHeaderHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
|
432
|
+
columnHeaderHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
|
433
|
+
rowHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
|
434
|
+
columnHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
|
430
435
|
}
|
431
436
|
}
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
437
|
+
var highlightRowHeaders = this.isEntireRowSelected() && (countCols > 0 && countCols === cellRange.getWidth() || countCols === 0 && (this.isSelectedByRowHeader() || this.isSelectedByCorner()));
|
438
|
+
var highlightColumnHeaders = this.isEntireColumnSelected() && (countRows > 0 && countRows === cellRange.getHeight() || countRows === 0 && (this.isSelectedByColumnHeader() || this.isSelectedByCorner()));
|
439
|
+
if (highlightRowHeaders) {
|
440
|
+
activeRowHeaderHighlight.add(this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), Math.min(-this.tableProps.countRowHeaders(), -1))).add(this.tableProps.createCellCoords(Math.max(cellRange.to.row, 0), -1)).commit();
|
441
|
+
}
|
442
|
+
if (highlightColumnHeaders) {
|
443
|
+
activeColumnHeaderHighlight.add(this.tableProps.createCellCoords(Math.min(-this.tableProps.countColHeaders(), -1), Math.max(cellRange.from.col, 0))).add(this.tableProps.createCellCoords(-1, Math.max(cellRange.to.col, 0))).commit();
|
444
|
+
}
|
445
|
+
if (highlightRowHeaders && highlightColumnHeaders) {
|
446
|
+
activeCornerHeaderHighlight.add(this.tableProps.createCellCoords(-this.tableProps.countColHeaders(), -this.tableProps.countRowHeaders())).add(this.tableProps.createCellCoords(-1, -1)).commit();
|
439
447
|
}
|
440
448
|
}
|
441
449
|
this.runLocalHooks('afterSetRangeEnd', coords);
|
@@ -460,14 +468,14 @@ var Selection = /*#__PURE__*/function () {
|
|
460
468
|
*
|
461
469
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
462
470
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
463
|
-
* @param {boolean} [
|
464
|
-
*
|
471
|
+
* @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary.
|
472
|
+
* Otherwise, row/column will be created according to `minSpareRows/minSpareCols` settings of Handsontable.
|
465
473
|
*/
|
466
474
|
}, {
|
467
475
|
key: "transformStart",
|
468
476
|
value: function transformStart(rowDelta, colDelta) {
|
469
|
-
var
|
470
|
-
this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta,
|
477
|
+
var createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
478
|
+
this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta, createMissingRecords));
|
471
479
|
}
|
472
480
|
|
473
481
|
/**
|
@@ -516,7 +524,7 @@ var Selection = /*#__PURE__*/function () {
|
|
516
524
|
key: "isSelectedByRowHeader",
|
517
525
|
value: function isSelectedByRowHeader() {
|
518
526
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
519
|
-
return !this.isSelectedByCorner(layerLevel) && this.
|
527
|
+
return !this.isSelectedByCorner(layerLevel) && (layerLevel === -1 ? this.selectedByRowHeader.size > 0 : this.selectedByRowHeader.has(layerLevel));
|
520
528
|
}
|
521
529
|
|
522
530
|
/**
|
@@ -529,8 +537,22 @@ var Selection = /*#__PURE__*/function () {
|
|
529
537
|
}, {
|
530
538
|
key: "isEntireRowSelected",
|
531
539
|
value: function isEntireRowSelected() {
|
540
|
+
var _this2 = this;
|
532
541
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
533
|
-
|
542
|
+
var tester = function tester(range) {
|
543
|
+
var _range$getOuterTopSta = range.getOuterTopStartCorner(),
|
544
|
+
col = _range$getOuterTopSta.col;
|
545
|
+
var rowHeaders = _this2.tableProps.countRowHeaders();
|
546
|
+
var countCols = _this2.tableProps.countCols();
|
547
|
+
return (rowHeaders > 0 && col < 0 || rowHeaders === 0) && range.getWidth() === countCols;
|
548
|
+
};
|
549
|
+
if (layerLevel === -1) {
|
550
|
+
return Array.from(this.selectedRange).some(function (range) {
|
551
|
+
return tester(range);
|
552
|
+
});
|
553
|
+
}
|
554
|
+
var range = this.selectedRange.peekByIndex(layerLevel);
|
555
|
+
return range ? tester(range) : false;
|
534
556
|
}
|
535
557
|
|
536
558
|
/**
|
@@ -545,7 +567,7 @@ var Selection = /*#__PURE__*/function () {
|
|
545
567
|
key: "isSelectedByColumnHeader",
|
546
568
|
value: function isSelectedByColumnHeader() {
|
547
569
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
548
|
-
return !this.isSelectedByCorner() && this.
|
570
|
+
return !this.isSelectedByCorner() && (layerLevel === -1 ? this.selectedByColumnHeader.size > 0 : this.selectedByColumnHeader.has(layerLevel));
|
549
571
|
}
|
550
572
|
|
551
573
|
/**
|
@@ -558,8 +580,22 @@ var Selection = /*#__PURE__*/function () {
|
|
558
580
|
}, {
|
559
581
|
key: "isEntireColumnSelected",
|
560
582
|
value: function isEntireColumnSelected() {
|
583
|
+
var _this3 = this;
|
561
584
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
562
|
-
|
585
|
+
var tester = function tester(range) {
|
586
|
+
var _range$getOuterTopSta2 = range.getOuterTopStartCorner(),
|
587
|
+
row = _range$getOuterTopSta2.row;
|
588
|
+
var colHeaders = _this3.tableProps.countColHeaders();
|
589
|
+
var countRows = _this3.tableProps.countRows();
|
590
|
+
return (colHeaders > 0 && row < 0 || colHeaders === 0) && range.getHeight() === countRows;
|
591
|
+
};
|
592
|
+
if (layerLevel === -1) {
|
593
|
+
return Array.from(this.selectedRange).some(function (range) {
|
594
|
+
return tester(range);
|
595
|
+
});
|
596
|
+
}
|
597
|
+
var range = this.selectedRange.peekByIndex(layerLevel);
|
598
|
+
return range ? tester(range) : false;
|
563
599
|
}
|
564
600
|
|
565
601
|
/**
|
@@ -581,7 +617,7 @@ var Selection = /*#__PURE__*/function () {
|
|
581
617
|
}, {
|
582
618
|
key: "isSelectedByCorner",
|
583
619
|
value: function isSelectedByCorner() {
|
584
|
-
return this.
|
620
|
+
return this.selectedByColumnHeader.has(this.getLayerLevel()) && this.selectedByRowHeader.has(this.getLayerLevel());
|
585
621
|
}
|
586
622
|
|
587
623
|
/**
|
@@ -650,33 +686,49 @@ var Selection = /*#__PURE__*/function () {
|
|
650
686
|
}
|
651
687
|
|
652
688
|
/**
|
653
|
-
*
|
689
|
+
* Selects all cells and headers.
|
654
690
|
*
|
655
|
-
* @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,
|
656
|
-
* otherwise.
|
657
|
-
* @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column
|
658
|
-
* otherwise.
|
691
|
+
* @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,
|
692
|
+
* `false` otherwise.
|
693
|
+
* @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column
|
694
|
+
* headers, `false` otherwise.
|
695
|
+
* @param {{row: number, col: number}} [focusPosition] The argument allows changing the cell/header
|
696
|
+
* focus position. The value takes an object with a `row` and `col` properties from -N to N, where
|
697
|
+
* negative values point to the headers and positive values point to the cell range.
|
659
698
|
*/
|
660
699
|
}, {
|
661
700
|
key: "selectAll",
|
662
701
|
value: function selectAll() {
|
663
702
|
var includeRowHeaders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
664
703
|
var includeColumnHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
704
|
+
var focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
705
|
+
row: this.tableProps.countColHeaders() > 0 ? -this.tableProps.countColHeaders() : 0,
|
706
|
+
col: this.tableProps.countRowHeaders() > 0 ? -this.tableProps.countRowHeaders() : 0
|
707
|
+
};
|
665
708
|
var nrOfRows = this.tableProps.countRows();
|
666
709
|
var nrOfColumns = this.tableProps.countCols();
|
710
|
+
var countRowHeaders = this.tableProps.countRowHeaders();
|
711
|
+
var countColHeaders = this.tableProps.countColHeaders();
|
712
|
+
var rowFrom = includeRowHeaders ? -countColHeaders : 0;
|
713
|
+
var columnFrom = includeColumnHeaders ? -countRowHeaders : 0;
|
667
714
|
|
668
715
|
// We can't select cells when there is no data.
|
669
|
-
if (
|
716
|
+
if (rowFrom === 0 && columnFrom === 0 && (nrOfRows === 0 || nrOfColumns === 0)) {
|
670
717
|
return;
|
671
718
|
}
|
672
|
-
var
|
673
|
-
var
|
719
|
+
var highlightRow = Number.isInteger(focusPosition.row) ? focusPosition.row : 0;
|
720
|
+
var highlightColumn = Number.isInteger(focusPosition.col) ? focusPosition.col : 0;
|
674
721
|
var startCoords = this.tableProps.createCellCoords(rowFrom, columnFrom);
|
722
|
+
var highlight = this.tableProps.createCellCoords(clamp(highlightRow, rowFrom, nrOfRows - 1), clamp(highlightColumn, columnFrom, nrOfColumns - 1));
|
675
723
|
var endCoords = this.tableProps.createCellCoords(nrOfRows - 1, nrOfColumns - 1);
|
676
724
|
this.clear();
|
677
|
-
this.setRangeStartOnly(startCoords);
|
678
|
-
|
679
|
-
|
725
|
+
this.setRangeStartOnly(startCoords, void 0, highlight);
|
726
|
+
if (columnFrom < 0) {
|
727
|
+
this.selectedByRowHeader.add(this.getLayerLevel());
|
728
|
+
}
|
729
|
+
if (rowFrom < 0) {
|
730
|
+
this.selectedByColumnHeader.add(this.getLayerLevel());
|
731
|
+
}
|
680
732
|
this.setRangeEnd(endCoords);
|
681
733
|
this.finish();
|
682
734
|
}
|
@@ -693,7 +745,7 @@ var Selection = /*#__PURE__*/function () {
|
|
693
745
|
}, {
|
694
746
|
key: "selectCells",
|
695
747
|
value: function selectCells(selectionRanges) {
|
696
|
-
var
|
748
|
+
var _this4 = this;
|
697
749
|
var selectionType = detectSelectionType(selectionRanges);
|
698
750
|
if (selectionType === SELECTION_TYPE_EMPTY) {
|
699
751
|
return false;
|
@@ -702,36 +754,33 @@ var Selection = /*#__PURE__*/function () {
|
|
702
754
|
}
|
703
755
|
var selectionSchemaNormalizer = normalizeSelectionFactory(selectionType, {
|
704
756
|
propToCol: function propToCol(prop) {
|
705
|
-
return
|
757
|
+
return _this4.tableProps.propToCol(prop);
|
706
758
|
},
|
707
759
|
keepDirection: true
|
708
760
|
});
|
709
|
-
var
|
710
|
-
var
|
761
|
+
var navigableHeaders = this.settings.navigableHeaders;
|
762
|
+
var tableParams = {
|
763
|
+
countRows: this.tableProps.countRows(),
|
764
|
+
countCols: this.tableProps.countCols(),
|
765
|
+
countRowHeaders: navigableHeaders ? this.tableProps.countRowHeaders() : 0,
|
766
|
+
countColHeaders: navigableHeaders ? this.tableProps.countColHeaders() : 0
|
767
|
+
};
|
711
768
|
|
712
769
|
// Check if every layer of the coordinates are valid.
|
713
770
|
var isValid = !selectionRanges.some(function (selection) {
|
714
|
-
var
|
715
|
-
|
716
|
-
|
717
|
-
columnStart = _selectionSchemaNorma2[1],
|
718
|
-
rowEnd = _selectionSchemaNorma2[2],
|
719
|
-
columnEnd = _selectionSchemaNorma2[3];
|
720
|
-
var _isValid = isValidCoord(rowStart, nrOfRows) && isValidCoord(columnStart, nrOfColumns) && isValidCoord(rowEnd, nrOfRows) && isValidCoord(columnEnd, nrOfColumns);
|
721
|
-
return !_isValid;
|
771
|
+
var cellRange = selectionSchemaNormalizer(selection);
|
772
|
+
var rangeValidity = cellRange.isValid(tableParams);
|
773
|
+
return !(rangeValidity && !cellRange.containsHeaders() || rangeValidity && cellRange.containsHeaders() && cellRange.isSingleHeader());
|
722
774
|
});
|
723
775
|
if (isValid) {
|
724
776
|
this.clear();
|
725
777
|
arrayEach(selectionRanges, function (selection) {
|
726
|
-
var
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
_this2.setRangeStartOnly(_this2.tableProps.createCellCoords(rowStart, columnStart), false);
|
733
|
-
_this2.setRangeEnd(_this2.tableProps.createCellCoords(rowEnd, columnEnd));
|
734
|
-
_this2.finish();
|
778
|
+
var _selectionSchemaNorma = selectionSchemaNormalizer(selection),
|
779
|
+
from = _selectionSchemaNorma.from,
|
780
|
+
to = _selectionSchemaNorma.to;
|
781
|
+
_this4.setRangeStartOnly(from.clone(), false);
|
782
|
+
_this4.setRangeEnd(to.clone());
|
783
|
+
_this4.finish();
|
735
784
|
});
|
736
785
|
}
|
737
786
|
return isValid;
|
@@ -743,24 +792,45 @@ var Selection = /*#__PURE__*/function () {
|
|
743
792
|
*
|
744
793
|
* @param {number|string} startColumn Visual column index or column property from which the selection starts.
|
745
794
|
* @param {number|string} [endColumn] Visual column index or column property from to the selection finishes.
|
746
|
-
* @param {number} [
|
747
|
-
*
|
748
|
-
*
|
795
|
+
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus position.
|
796
|
+
* The value can take visual row index from -N to N, where negative values
|
797
|
+
* point to the headers and positive values point to the cell range.
|
749
798
|
* @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
|
750
799
|
*/
|
751
800
|
}, {
|
752
801
|
key: "selectColumns",
|
753
802
|
value: function selectColumns(startColumn) {
|
754
803
|
var endColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startColumn;
|
755
|
-
var
|
804
|
+
var focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
756
805
|
var start = typeof startColumn === 'string' ? this.tableProps.propToCol(startColumn) : startColumn;
|
757
806
|
var end = typeof endColumn === 'string' ? this.tableProps.propToCol(endColumn) : endColumn;
|
758
|
-
var
|
759
|
-
var
|
760
|
-
var
|
807
|
+
var countRows = this.tableProps.countRows();
|
808
|
+
var countCols = this.tableProps.countCols();
|
809
|
+
var countColHeaders = this.tableProps.countColHeaders();
|
810
|
+
var columnHeaderLastIndex = countColHeaders === 0 ? 0 : -countColHeaders;
|
811
|
+
var fromCoords = new CellCoords(columnHeaderLastIndex, start);
|
812
|
+
var toCoords = new CellCoords(countRows - 1, end);
|
813
|
+
var isValid = new CellRange(fromCoords, fromCoords, toCoords).isValid({
|
814
|
+
countRows: countRows,
|
815
|
+
countCols: countCols,
|
816
|
+
countRowHeaders: 0,
|
817
|
+
countColHeaders: countColHeaders
|
818
|
+
});
|
761
819
|
if (isValid) {
|
762
|
-
|
763
|
-
|
820
|
+
var fromRow = countColHeaders === 0 ? 0 : clamp(focusPosition, columnHeaderLastIndex, -1);
|
821
|
+
var toRow = countRows - 1;
|
822
|
+
var from = this.tableProps.createCellCoords(fromRow, start);
|
823
|
+
var to = this.tableProps.createCellCoords(toRow, end);
|
824
|
+
var highlight = this.tableProps.createCellCoords(clamp(focusPosition, columnHeaderLastIndex, countRows - 1), start);
|
825
|
+
this.runLocalHooks('beforeSelectColumns', from, to, highlight);
|
826
|
+
|
827
|
+
// disallow modifying row axis for that hooks
|
828
|
+
from.row = fromRow;
|
829
|
+
to.row = toRow;
|
830
|
+
this.setRangeStartOnly(from, void 0, highlight);
|
831
|
+
this.selectedByColumnHeader.add(this.getLayerLevel());
|
832
|
+
this.setRangeEnd(to);
|
833
|
+
this.runLocalHooks('afterSelectColumns', from, to, highlight);
|
764
834
|
this.finish();
|
765
835
|
}
|
766
836
|
return isValid;
|
@@ -771,22 +841,43 @@ var Selection = /*#__PURE__*/function () {
|
|
771
841
|
*
|
772
842
|
* @param {number} startRow Visual row index from which the selection starts.
|
773
843
|
* @param {number} [endRow] Visual row index from to the selection finishes.
|
774
|
-
* @param {number} [
|
775
|
-
*
|
776
|
-
*
|
844
|
+
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus position.
|
845
|
+
* The value can take visual column index from -N to N, where negative values
|
846
|
+
* point to the headers and positive values point to the cell range.
|
777
847
|
* @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
|
778
848
|
*/
|
779
849
|
}, {
|
780
850
|
key: "selectRows",
|
781
851
|
value: function selectRows(startRow) {
|
782
852
|
var endRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startRow;
|
783
|
-
var
|
784
|
-
var
|
785
|
-
var
|
786
|
-
var
|
853
|
+
var focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
854
|
+
var countRows = this.tableProps.countRows();
|
855
|
+
var countCols = this.tableProps.countCols();
|
856
|
+
var countRowHeaders = this.tableProps.countRowHeaders();
|
857
|
+
var rowHeaderLastIndex = countRowHeaders === 0 ? 0 : -countRowHeaders;
|
858
|
+
var fromCoords = new CellCoords(startRow, rowHeaderLastIndex);
|
859
|
+
var toCoords = new CellCoords(endRow, countCols - 1);
|
860
|
+
var isValid = new CellRange(fromCoords, fromCoords, toCoords).isValid({
|
861
|
+
countRows: countRows,
|
862
|
+
countCols: countCols,
|
863
|
+
countRowHeaders: countRowHeaders,
|
864
|
+
countColHeaders: 0
|
865
|
+
});
|
787
866
|
if (isValid) {
|
788
|
-
|
789
|
-
|
867
|
+
var fromColumn = countRowHeaders === 0 ? 0 : clamp(focusPosition, rowHeaderLastIndex, -1);
|
868
|
+
var toColumn = countCols - 1;
|
869
|
+
var from = this.tableProps.createCellCoords(startRow, fromColumn);
|
870
|
+
var to = this.tableProps.createCellCoords(endRow, toColumn);
|
871
|
+
var highlight = this.tableProps.createCellCoords(startRow, clamp(focusPosition, rowHeaderLastIndex, countCols - 1));
|
872
|
+
this.runLocalHooks('beforeSelectRows', from, to, highlight);
|
873
|
+
|
874
|
+
// disallow modifying column axis for that hooks
|
875
|
+
from.col = fromColumn;
|
876
|
+
to.col = toColumn;
|
877
|
+
this.setRangeStartOnly(from, void 0, highlight);
|
878
|
+
this.selectedByRowHeader.add(this.getLayerLevel());
|
879
|
+
this.setRangeEnd(to);
|
880
|
+
this.runLocalHooks('afterSelectRows', from, to, highlight);
|
790
881
|
this.finish();
|
791
882
|
}
|
792
883
|
return isValid;
|
@@ -818,6 +909,7 @@ var Selection = /*#__PURE__*/function () {
|
|
818
909
|
var columnHeaderHighlight = this.highlight.createColumnHeader();
|
819
910
|
var activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
|
820
911
|
var activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
|
912
|
+
var activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
|
821
913
|
var rowHighlight = this.highlight.createRowHighlight();
|
822
914
|
var columnHighlight = this.highlight.createColumnHighlight();
|
823
915
|
areaHighlight.commit();
|
@@ -826,6 +918,7 @@ var Selection = /*#__PURE__*/function () {
|
|
826
918
|
columnHeaderHighlight.commit();
|
827
919
|
activeRowHeaderHighlight.commit();
|
828
920
|
activeColumnHeaderHighlight.commit();
|
921
|
+
activeCornerHeaderHighlight.commit();
|
829
922
|
rowHighlight.commit();
|
830
923
|
columnHighlight.commit();
|
831
924
|
}
|