handsontable 0.0.0-next-010265d-20231005 → 0.0.0-next-9379dd1-20231020
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 -11
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +38 -7
- package/3rdparty/walkontable/src/cell/range.mjs +38 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- 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 +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +12 -10
- package/3rdparty/walkontable/src/event.mjs +12 -10
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +13 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
- package/3rdparty/walkontable/src/overlay/top.js +2 -6
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
- package/3rdparty/walkontable/src/renderer/cells.js +10 -0
- package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +10 -0
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -0
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -0
- package/3rdparty/walkontable/src/renderer/rows.js +13 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
- package/3rdparty/walkontable/src/renderer/table.js +9 -0
- package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
- package/3rdparty/walkontable/src/scroll.js +2 -0
- package/3rdparty/walkontable/src/scroll.mjs +2 -0
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +62 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +26 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +274 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
- package/3rdparty/walkontable/src/selection/scanner.js +270 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
- package/3rdparty/walkontable/src/selection/selection.js +101 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
- package/3rdparty/walkontable/src/settings.js +13 -4
- package/3rdparty/walkontable/src/settings.mjs +13 -4
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +19 -78
- package/3rdparty/walkontable/src/table.mjs +20 -79
- 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 +3 -0
- package/cellTypes/index.js +4 -0
- package/cellTypes/index.mjs +3 -1
- package/cellTypes/selectType/index.d.ts +1 -0
- package/cellTypes/selectType/index.js +6 -0
- package/cellTypes/selectType/index.mjs +1 -0
- package/cellTypes/selectType/selectType.d.ts +14 -0
- package/cellTypes/selectType/selectType.js +13 -0
- package/cellTypes/selectType/selectType.mjs +8 -0
- package/core/focusCatcher/focusDetector.js +63 -0
- package/core/focusCatcher/focusDetector.mjs +59 -0
- package/core/focusCatcher/index.js +142 -0
- package/core/focusCatcher/index.mjs +138 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +9 -4
- package/core.js +285 -327
- package/core.mjs +285 -327
- package/dataMap/metaManager/metaSchema.js +65 -0
- package/dataMap/metaManager/metaSchema.mjs +65 -0
- package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
- package/dataMap/replaceData.js +5 -0
- package/dataMap/replaceData.mjs +5 -0
- package/dist/handsontable.css +40 -5
- package/dist/handsontable.full.css +40 -5
- package/dist/handsontable.full.js +11744 -6945
- package/dist/handsontable.full.min.css +4 -4
- package/dist/handsontable.full.min.js +141 -141
- package/dist/handsontable.js +14036 -9237
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +21 -21
- package/dist/languages/all.js +6 -2
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/en-US.js +3 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/pl-PL.js +3 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/editorManager.js +15 -87
- package/editorManager.mjs +16 -87
- package/editors/autocompleteEditor/autocompleteEditor.js +53 -2
- package/editors/autocompleteEditor/autocompleteEditor.mjs +54 -3
- package/editors/dateEditor/dateEditor.js +26 -7
- package/editors/dateEditor/dateEditor.mjs +27 -8
- package/editors/handsontableEditor/handsontableEditor.js +9 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +10 -2
- package/editors/textEditor/textEditor.js +19 -27
- package/editors/textEditor/textEditor.mjs +22 -30
- package/focusManager.d.ts +12 -0
- package/focusManager.js +265 -0
- package/focusManager.mjs +261 -0
- package/helpers/a11y.js +79 -0
- package/helpers/a11y.mjs +38 -0
- package/helpers/dom/element.js +188 -9
- package/helpers/dom/element.mjs +182 -9
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/i18n/constants.js +7 -1
- package/i18n/constants.mjs +4 -1
- package/i18n/languages/en-US.js +3 -1
- package/i18n/languages/en-US.mjs +3 -1
- package/i18n/languages/pl-PL.js +3 -1
- package/i18n/languages/pl-PL.mjs +3 -1
- package/languages/all.js +6 -2
- package/languages/en-US.js +3 -1
- package/languages/en-US.mjs +3 -1
- package/languages/index.js +6 -2
- package/languages/pl-PL.js +3 -1
- package/languages/pl-PL.mjs +3 -1
- package/package.json +21 -1
- package/pluginHooks.d.ts +12 -1
- package/pluginHooks.js +152 -1
- package/pluginHooks.mjs +152 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +74 -4
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +75 -5
- package/plugins/columnSorting/columnSorting.js +43 -0
- package/plugins/columnSorting/columnSorting.mjs +44 -3
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +252 -189
- package/plugins/comments/comments.mjs +251 -190
- package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
- package/plugins/comments/contextMenuItem/removeComment.js +38 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/commandExecutor.js +2 -3
- package/plugins/contextMenu/commandExecutor.mjs +2 -3
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +75 -36
- package/plugins/contextMenu/contextMenu.mjs +74 -35
- package/plugins/contextMenu/itemsFactory.js +2 -3
- package/plugins/contextMenu/itemsFactory.mjs +3 -4
- package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
- package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
- package/plugins/contextMenu/menu/index.js +9 -0
- package/plugins/contextMenu/menu/index.mjs +1 -0
- package/plugins/contextMenu/{menu.js → menu/menu.js} +96 -308
- package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +97 -309
- package/plugins/contextMenu/menu/navigator.js +152 -0
- package/plugins/contextMenu/menu/navigator.mjs +148 -0
- package/plugins/contextMenu/menu/positioner.js +213 -0
- package/plugins/contextMenu/menu/positioner.mjs +209 -0
- package/plugins/contextMenu/menu/utils.js +177 -0
- package/plugins/contextMenu/menu/utils.mjs +163 -0
- 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.js → predefinedItems/index.js} +14 -14
- package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +35 -151
- package/plugins/contextMenu/utils.mjs +35 -144
- 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 +127 -78
- package/plugins/copyPaste/copyPaste.mjs +128 -79
- package/plugins/customBorders/customBorders.js +23 -20
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +97 -38
- package/plugins/dropdownMenu/dropdownMenu.mjs +96 -37
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/filters.js +31 -14
- package/plugins/filters/filters.mjs +31 -14
- 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 +3 -1
- package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
- package/plugins/mergeCells/mergeCells.js +5 -16
- package/plugins/mergeCells/mergeCells.mjs +5 -16
- package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
- package/plugins/nestedHeaders/nestedHeaders.js +240 -10
- package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
- package/plugins/nestedHeaders/stateManager/index.js +102 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
- package/plugins/nestedRows/nestedRows.js +41 -0
- package/plugins/nestedRows/nestedRows.mjs +41 -0
- package/plugins/nestedRows/ui/headers.js +11 -0
- package/plugins/nestedRows/ui/headers.mjs +12 -1
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
- package/renderers/baseRenderer/baseRenderer.js +17 -0
- package/renderers/baseRenderer/baseRenderer.mjs +18 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
- package/renderers/dateRenderer/dateRenderer.js +29 -0
- package/renderers/dateRenderer/dateRenderer.mjs +24 -0
- package/renderers/dateRenderer/index.d.ts +1 -0
- package/renderers/dateRenderer/index.js +6 -0
- package/renderers/dateRenderer/index.mjs +1 -0
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
- package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
- package/renderers/handsontableRenderer/index.d.ts +1 -0
- package/renderers/handsontableRenderer/index.js +6 -0
- package/renderers/handsontableRenderer/index.mjs +1 -0
- package/renderers/index.d.ts +9 -0
- package/renderers/selectRenderer/index.d.ts +1 -0
- package/renderers/selectRenderer/index.js +6 -0
- package/renderers/selectRenderer/index.mjs +1 -0
- package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
- package/renderers/selectRenderer/selectRenderer.js +27 -0
- package/renderers/selectRenderer/selectRenderer.mjs +22 -0
- package/selection/highlight/highlight.js +256 -71
- package/selection/highlight/highlight.mjs +250 -71
- package/selection/highlight/types/activeHeader.js +10 -8
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +6 -18
- package/selection/highlight/types/area.mjs +6 -18
- package/selection/highlight/types/areaLayered.js +31 -0
- package/selection/highlight/types/areaLayered.mjs +26 -0
- package/selection/highlight/types/column.js +27 -0
- package/selection/highlight/types/column.mjs +22 -0
- package/selection/highlight/types/customSelection.js +7 -9
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -7
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -7
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +9 -18
- package/selection/highlight/types/header.mjs +9 -18
- package/selection/highlight/types/row.js +27 -0
- package/selection/highlight/types/row.mjs +22 -0
- package/selection/highlight/visualSelection.js +31 -27
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +7 -1
- package/selection/mouseEventHandler.mjs +7 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +321 -152
- package/selection/selection.mjs +318 -151
- package/selection/transformation.js +232 -90
- package/selection/transformation.mjs +232 -90
- package/selection/utils.js +15 -21
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +4 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +27 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +11 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
- package/shortcutContexts/commands/selectAll.js +12 -0
- package/shortcutContexts/commands/selectAll.mjs +8 -0
- package/shortcutContexts/constants.js +13 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +163 -0
- package/shortcutContexts/grid.mjs +159 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/context.js +20 -2
- package/shortcuts/context.mjs +20 -3
- package/shortcuts/manager.js +25 -7
- package/shortcuts/manager.mjs +26 -7
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +111 -13
- package/tableView.mjs +112 -14
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/plugins/contextMenu/predefinedItems.mjs +0 -68
- package/plugins/copyPaste/focusableElement.js +0 -186
- package/plugins/copyPaste/focusableElement.mjs +0 -180
- package/selection/highlight/constants.js +0 -15
- package/selection/highlight/constants.mjs +0 -6
- package/selection/highlight/types/index.js +0 -35
- package/selection/highlight/types/index.mjs +0 -31
@@ -4,7 +4,12 @@ export default class CellCoords {
|
|
4
4
|
row: number;
|
5
5
|
col: number;
|
6
6
|
|
7
|
-
isValid(
|
7
|
+
isValid(tableParams: {
|
8
|
+
countRows?: number;
|
9
|
+
countCols?: number;
|
10
|
+
countRowHeaders?: number;
|
11
|
+
countColHeaders?: number;
|
12
|
+
}): boolean;
|
8
13
|
isEqual(cellCoords: CellCoords): boolean;
|
9
14
|
isSouthEastOf(testedCoords: any): boolean;
|
10
15
|
isNorthWestOf(testedCoords: any): boolean;
|
@@ -62,26 +62,45 @@ class CellCoords {
|
|
62
62
|
|
63
63
|
/**
|
64
64
|
* Checks if the coordinates in your `CellCoords` instance are valid
|
65
|
-
* in the context of
|
65
|
+
* in the context of given table parameters.
|
66
66
|
*
|
67
67
|
* The `row` index:
|
68
|
-
* -
|
69
|
-
* -
|
68
|
+
* - Must be an integer.
|
69
|
+
* - Must be higher than the number of column headers in the table.
|
70
|
+
* - Must be lower than the total number of rows in the table.
|
70
71
|
*
|
71
72
|
* The `col` index:
|
72
|
-
* -
|
73
|
-
* -
|
73
|
+
* - Must be an integer.
|
74
|
+
* - Must be higher than the number of row headers in the table.
|
75
|
+
* - Must be lower than the total number of columns in the table.
|
74
76
|
*
|
75
|
-
* @param {
|
77
|
+
* @param {object} [tableParams] An object with a defined table size.
|
78
|
+
* @param {number} [tableParams.countRows=0] The total number of rows.
|
79
|
+
* @param {number} [tableParams.countCols=0] The total number of columns.
|
80
|
+
* @param {number} [tableParams.countRowHeaders=0] A number of row headers.
|
81
|
+
* @param {number} [tableParams.countColHeaders=0] A number of column headers.
|
76
82
|
* @returns {boolean} `true`: The coordinates are valid.
|
77
83
|
*/
|
78
|
-
isValid(
|
79
|
-
|
80
|
-
|
84
|
+
isValid(tableParams) {
|
85
|
+
const {
|
86
|
+
countRows,
|
87
|
+
countCols,
|
88
|
+
countRowHeaders,
|
89
|
+
countColHeaders
|
90
|
+
} = {
|
91
|
+
countRows: 0,
|
92
|
+
countCols: 0,
|
93
|
+
countRowHeaders: 0,
|
94
|
+
countColHeaders: 0,
|
95
|
+
...tableParams
|
96
|
+
};
|
97
|
+
if (!Number.isInteger(this.row) || !Number.isInteger(this.col)) {
|
98
|
+
return false;
|
99
|
+
}
|
100
|
+
if (this.row < -countColHeaders || this.col < -countRowHeaders) {
|
81
101
|
return false;
|
82
102
|
}
|
83
|
-
|
84
|
-
if (this.row >= wot.getSetting('totalRows') || this.col >= wot.getSetting('totalColumns')) {
|
103
|
+
if (this.row >= countRows || this.col >= countCols) {
|
85
104
|
return false;
|
86
105
|
}
|
87
106
|
return true;
|
@@ -101,6 +120,26 @@ class CellCoords {
|
|
101
120
|
return this.row === cellCoords.row && this.col === cellCoords.col;
|
102
121
|
}
|
103
122
|
|
123
|
+
/**
|
124
|
+
* Checks if the coordinates point to the headers range. If one of the axis (row or col) point to
|
125
|
+
* the header (negative value) then method returns `true`.
|
126
|
+
*
|
127
|
+
* @returns {boolean}
|
128
|
+
*/
|
129
|
+
isHeader() {
|
130
|
+
return !this.isCell();
|
131
|
+
}
|
132
|
+
|
133
|
+
/**
|
134
|
+
* Checks if the coordinates point to the cells range. If all axis (row and col) point to
|
135
|
+
* the cell (positive value) then method returns `true`.
|
136
|
+
*
|
137
|
+
* @returns {boolean}
|
138
|
+
*/
|
139
|
+
isCell() {
|
140
|
+
return this.row >= 0 && this.col >= 0;
|
141
|
+
}
|
142
|
+
|
104
143
|
/**
|
105
144
|
* Checks if another set of coordinates (`testedCoords`)
|
106
145
|
* is south-east of the coordinates in your `CellCoords` instance.
|
@@ -59,26 +59,45 @@ class CellCoords {
|
|
59
59
|
|
60
60
|
/**
|
61
61
|
* Checks if the coordinates in your `CellCoords` instance are valid
|
62
|
-
* in the context of
|
62
|
+
* in the context of given table parameters.
|
63
63
|
*
|
64
64
|
* The `row` index:
|
65
|
-
* -
|
66
|
-
* -
|
65
|
+
* - Must be an integer.
|
66
|
+
* - Must be higher than the number of column headers in the table.
|
67
|
+
* - Must be lower than the total number of rows in the table.
|
67
68
|
*
|
68
69
|
* The `col` index:
|
69
|
-
* -
|
70
|
-
* -
|
70
|
+
* - Must be an integer.
|
71
|
+
* - Must be higher than the number of row headers in the table.
|
72
|
+
* - Must be lower than the total number of columns in the table.
|
71
73
|
*
|
72
|
-
* @param {
|
74
|
+
* @param {object} [tableParams] An object with a defined table size.
|
75
|
+
* @param {number} [tableParams.countRows=0] The total number of rows.
|
76
|
+
* @param {number} [tableParams.countCols=0] The total number of columns.
|
77
|
+
* @param {number} [tableParams.countRowHeaders=0] A number of row headers.
|
78
|
+
* @param {number} [tableParams.countColHeaders=0] A number of column headers.
|
73
79
|
* @returns {boolean} `true`: The coordinates are valid.
|
74
80
|
*/
|
75
|
-
isValid(
|
76
|
-
|
77
|
-
|
81
|
+
isValid(tableParams) {
|
82
|
+
const {
|
83
|
+
countRows,
|
84
|
+
countCols,
|
85
|
+
countRowHeaders,
|
86
|
+
countColHeaders
|
87
|
+
} = {
|
88
|
+
countRows: 0,
|
89
|
+
countCols: 0,
|
90
|
+
countRowHeaders: 0,
|
91
|
+
countColHeaders: 0,
|
92
|
+
...tableParams
|
93
|
+
};
|
94
|
+
if (!Number.isInteger(this.row) || !Number.isInteger(this.col)) {
|
95
|
+
return false;
|
96
|
+
}
|
97
|
+
if (this.row < -countColHeaders || this.col < -countRowHeaders) {
|
78
98
|
return false;
|
79
99
|
}
|
80
|
-
|
81
|
-
if (this.row >= wot.getSetting('totalRows') || this.col >= wot.getSetting('totalColumns')) {
|
100
|
+
if (this.row >= countRows || this.col >= countCols) {
|
82
101
|
return false;
|
83
102
|
}
|
84
103
|
return true;
|
@@ -98,6 +117,26 @@ class CellCoords {
|
|
98
117
|
return this.row === cellCoords.row && this.col === cellCoords.col;
|
99
118
|
}
|
100
119
|
|
120
|
+
/**
|
121
|
+
* Checks if the coordinates point to the headers range. If one of the axis (row or col) point to
|
122
|
+
* the header (negative value) then method returns `true`.
|
123
|
+
*
|
124
|
+
* @returns {boolean}
|
125
|
+
*/
|
126
|
+
isHeader() {
|
127
|
+
return !this.isCell();
|
128
|
+
}
|
129
|
+
|
130
|
+
/**
|
131
|
+
* Checks if the coordinates point to the cells range. If all axis (row and col) point to
|
132
|
+
* the cell (positive value) then method returns `true`.
|
133
|
+
*
|
134
|
+
* @returns {boolean}
|
135
|
+
*/
|
136
|
+
isCell() {
|
137
|
+
return this.row >= 0 && this.col >= 0;
|
138
|
+
}
|
139
|
+
|
101
140
|
/**
|
102
141
|
* Checks if another set of coordinates (`testedCoords`)
|
103
142
|
* is south-east of the coordinates in your `CellCoords` instance.
|
@@ -12,8 +12,15 @@ export default class CellRange {
|
|
12
12
|
setHighlight(coords: CellCoords): CellRange;
|
13
13
|
setFrom(coords: CellCoords): CellRange;
|
14
14
|
setTo(coords: CellCoords): CellRange;
|
15
|
-
isValid(
|
16
|
-
|
15
|
+
isValid(tableParams: {
|
16
|
+
countRows?: number;
|
17
|
+
countCols?: number;
|
18
|
+
countRowHeaders?: number;
|
19
|
+
countColHeaders?: number;
|
20
|
+
}): boolean;
|
21
|
+
isSingleCell(): boolean;
|
22
|
+
isSingleHeader(): boolean;
|
23
|
+
containsHeaders(): boolean;
|
17
24
|
getOuterHeight(): number;
|
18
25
|
getOuterWidth(): number;
|
19
26
|
getHeight(): number;
|
@@ -71,7 +71,7 @@ class CellRange {
|
|
71
71
|
writable: true,
|
72
72
|
value: false
|
73
73
|
});
|
74
|
-
this.highlight = highlight.clone()
|
74
|
+
this.highlight = highlight.clone();
|
75
75
|
this.from = from.clone();
|
76
76
|
this.to = to.clone();
|
77
77
|
_classPrivateFieldSet(this, _isRtl, isRtl);
|
@@ -84,7 +84,7 @@ class CellRange {
|
|
84
84
|
* @returns {CellRange}
|
85
85
|
*/
|
86
86
|
setHighlight(coords) {
|
87
|
-
this.highlight = coords.clone()
|
87
|
+
this.highlight = coords.clone();
|
88
88
|
return this;
|
89
89
|
}
|
90
90
|
|
@@ -112,26 +112,57 @@ class CellRange {
|
|
112
112
|
|
113
113
|
/**
|
114
114
|
* Checks if the coordinates in your `CellRange` instance are valid
|
115
|
-
* in the context of
|
115
|
+
* in the context of given table parameters.
|
116
116
|
*
|
117
117
|
* See the [`isValid()`](@/api/cellCoords.md#isvalid) method of the [`CellCoords`](@/api/cellCoords.md) class.
|
118
118
|
*
|
119
|
-
* @param {
|
119
|
+
* @param {object} tableParams An object with a defined table size.
|
120
|
+
* @param {number} tableParams.countRows The total number of rows.
|
121
|
+
* @param {number} tableParams.countCols The total number of columns.
|
122
|
+
* @param {number} tableParams.countRowHeaders A number of row headers.
|
123
|
+
* @param {number} tableParams.countColHeaders A number of column headers.
|
120
124
|
* @returns {boolean}
|
121
125
|
*/
|
122
|
-
isValid(
|
123
|
-
return this.from.isValid(
|
126
|
+
isValid(tableParams) {
|
127
|
+
return this.from.isValid(tableParams) && this.to.isValid(tableParams);
|
124
128
|
}
|
125
129
|
|
126
130
|
/**
|
127
|
-
* Checks if your range is just a single cell.
|
131
|
+
* Checks if your range is just a single cell or header.
|
128
132
|
*
|
129
133
|
* @returns {boolean}
|
130
134
|
*/
|
131
135
|
isSingle() {
|
136
|
+
return this.isSingleCell() || this.isSingleHeader();
|
137
|
+
}
|
138
|
+
|
139
|
+
/**
|
140
|
+
* Checks if your range is just a single cell.
|
141
|
+
*
|
142
|
+
* @returns {boolean}
|
143
|
+
*/
|
144
|
+
isSingleCell() {
|
132
145
|
return this.from.row >= 0 && this.from.row === this.to.row && this.from.col >= 0 && this.from.col === this.to.col;
|
133
146
|
}
|
134
147
|
|
148
|
+
/**
|
149
|
+
* Checks if your range is just a single header.
|
150
|
+
*
|
151
|
+
* @returns {boolean}
|
152
|
+
*/
|
153
|
+
isSingleHeader() {
|
154
|
+
return (this.from.row < 0 || this.from.col < 0) && this.from.row === this.to.row && this.from.col === this.to.col;
|
155
|
+
}
|
156
|
+
|
157
|
+
/**
|
158
|
+
* Checks if your range overlaps headers range (negative coordinates).
|
159
|
+
*
|
160
|
+
* @returns {boolean}
|
161
|
+
*/
|
162
|
+
containsHeaders() {
|
163
|
+
return this.from.isHeader() || this.to.isHeader();
|
164
|
+
}
|
165
|
+
|
135
166
|
/**
|
136
167
|
* Returns the height of your range (as a number of rows, including row headers).
|
137
168
|
*
|
@@ -67,7 +67,7 @@ class CellRange {
|
|
67
67
|
writable: true,
|
68
68
|
value: false
|
69
69
|
});
|
70
|
-
this.highlight = highlight.clone()
|
70
|
+
this.highlight = highlight.clone();
|
71
71
|
this.from = from.clone();
|
72
72
|
this.to = to.clone();
|
73
73
|
_classPrivateFieldSet(this, _isRtl, isRtl);
|
@@ -80,7 +80,7 @@ class CellRange {
|
|
80
80
|
* @returns {CellRange}
|
81
81
|
*/
|
82
82
|
setHighlight(coords) {
|
83
|
-
this.highlight = coords.clone()
|
83
|
+
this.highlight = coords.clone();
|
84
84
|
return this;
|
85
85
|
}
|
86
86
|
|
@@ -108,26 +108,57 @@ class CellRange {
|
|
108
108
|
|
109
109
|
/**
|
110
110
|
* Checks if the coordinates in your `CellRange` instance are valid
|
111
|
-
* in the context of
|
111
|
+
* in the context of given table parameters.
|
112
112
|
*
|
113
113
|
* See the [`isValid()`](@/api/cellCoords.md#isvalid) method of the [`CellCoords`](@/api/cellCoords.md) class.
|
114
114
|
*
|
115
|
-
* @param {
|
115
|
+
* @param {object} tableParams An object with a defined table size.
|
116
|
+
* @param {number} tableParams.countRows The total number of rows.
|
117
|
+
* @param {number} tableParams.countCols The total number of columns.
|
118
|
+
* @param {number} tableParams.countRowHeaders A number of row headers.
|
119
|
+
* @param {number} tableParams.countColHeaders A number of column headers.
|
116
120
|
* @returns {boolean}
|
117
121
|
*/
|
118
|
-
isValid(
|
119
|
-
return this.from.isValid(
|
122
|
+
isValid(tableParams) {
|
123
|
+
return this.from.isValid(tableParams) && this.to.isValid(tableParams);
|
120
124
|
}
|
121
125
|
|
122
126
|
/**
|
123
|
-
* Checks if your range is just a single cell.
|
127
|
+
* Checks if your range is just a single cell or header.
|
124
128
|
*
|
125
129
|
* @returns {boolean}
|
126
130
|
*/
|
127
131
|
isSingle() {
|
132
|
+
return this.isSingleCell() || this.isSingleHeader();
|
133
|
+
}
|
134
|
+
|
135
|
+
/**
|
136
|
+
* Checks if your range is just a single cell.
|
137
|
+
*
|
138
|
+
* @returns {boolean}
|
139
|
+
*/
|
140
|
+
isSingleCell() {
|
128
141
|
return this.from.row >= 0 && this.from.row === this.to.row && this.from.col >= 0 && this.from.col === this.to.col;
|
129
142
|
}
|
130
143
|
|
144
|
+
/**
|
145
|
+
* Checks if your range is just a single header.
|
146
|
+
*
|
147
|
+
* @returns {boolean}
|
148
|
+
*/
|
149
|
+
isSingleHeader() {
|
150
|
+
return (this.from.row < 0 || this.from.col < 0) && this.from.row === this.to.row && this.from.col === this.to.col;
|
151
|
+
}
|
152
|
+
|
153
|
+
/**
|
154
|
+
* Checks if your range overlaps headers range (negative coordinates).
|
155
|
+
*
|
156
|
+
* @returns {boolean}
|
157
|
+
*/
|
158
|
+
containsHeaders() {
|
159
|
+
return this.from.isHeader() || this.to.isHeader();
|
160
|
+
}
|
161
|
+
|
131
162
|
/**
|
132
163
|
* Returns the height of your range (as a number of rows, including row headers).
|
133
164
|
*
|
@@ -31,7 +31,7 @@ class CoreAbstract {
|
|
31
31
|
_defineProperty(this, "wtScroll", void 0);
|
32
32
|
_defineProperty(this, "wtViewport", void 0);
|
33
33
|
_defineProperty(this, "wtOverlays", void 0);
|
34
|
-
_defineProperty(this, "
|
34
|
+
_defineProperty(this, "selectionManager", void 0);
|
35
35
|
_defineProperty(this, "wtEvent", void 0);
|
36
36
|
/**
|
37
37
|
* The walkontable instance id.
|
@@ -309,8 +309,8 @@ class CoreAbstract {
|
|
309
309
|
return wot.wtOverlays; // TODO refactoring: move outside dao, use IOC
|
310
310
|
},
|
311
311
|
|
312
|
-
get
|
313
|
-
return wot.
|
312
|
+
get selectionManager() {
|
313
|
+
return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
|
314
314
|
},
|
315
315
|
|
316
316
|
get drawn() {
|
@@ -359,6 +359,12 @@ class CoreAbstract {
|
|
359
359
|
},
|
360
360
|
get countRowsVisible() {
|
361
361
|
return wot.wtViewport.rowsVisibleCalculator.count;
|
362
|
+
},
|
363
|
+
get columnHeaders() {
|
364
|
+
return wot.wtSettings.getSetting('columnHeaders');
|
365
|
+
},
|
366
|
+
get rowHeaders() {
|
367
|
+
return wot.wtSettings.getSetting('rowHeaders');
|
362
368
|
}
|
363
369
|
};
|
364
370
|
}
|
@@ -27,7 +27,7 @@ export default class CoreAbstract {
|
|
27
27
|
_defineProperty(this, "wtScroll", void 0);
|
28
28
|
_defineProperty(this, "wtViewport", void 0);
|
29
29
|
_defineProperty(this, "wtOverlays", void 0);
|
30
|
-
_defineProperty(this, "
|
30
|
+
_defineProperty(this, "selectionManager", void 0);
|
31
31
|
_defineProperty(this, "wtEvent", void 0);
|
32
32
|
/**
|
33
33
|
* The walkontable instance id.
|
@@ -305,8 +305,8 @@ export default class CoreAbstract {
|
|
305
305
|
return wot.wtOverlays; // TODO refactoring: move outside dao, use IOC
|
306
306
|
},
|
307
307
|
|
308
|
-
get
|
309
|
-
return wot.
|
308
|
+
get selectionManager() {
|
309
|
+
return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
|
310
310
|
},
|
311
311
|
|
312
312
|
get drawn() {
|
@@ -355,6 +355,12 @@ export default class CoreAbstract {
|
|
355
355
|
},
|
356
356
|
get countRowsVisible() {
|
357
357
|
return wot.wtViewport.rowsVisibleCalculator.count;
|
358
|
+
},
|
359
|
+
get columnHeaders() {
|
360
|
+
return wot.wtSettings.getSetting('columnHeaders');
|
361
|
+
},
|
362
|
+
get rowHeaders() {
|
363
|
+
return wot.wtSettings.getSetting('rowHeaders');
|
358
364
|
}
|
359
365
|
};
|
360
366
|
}
|
@@ -26,8 +26,8 @@ class Clone extends _base.default {
|
|
26
26
|
this.cloneOverlay = clone.overlay;
|
27
27
|
this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
28
28
|
this.wtViewport = clone.viewport;
|
29
|
-
this.
|
30
|
-
this.wtEvent = new _event.default(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.
|
29
|
+
this.selectionManager = clone.selectionManager;
|
30
|
+
this.wtEvent = new _event.default(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager, clone.event);
|
31
31
|
this.findOriginalHeaders();
|
32
32
|
}
|
33
33
|
}
|
@@ -22,8 +22,8 @@ export default class Clone extends CoreAbstract {
|
|
22
22
|
this.cloneOverlay = clone.overlay;
|
23
23
|
this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
24
24
|
this.wtViewport = clone.viewport;
|
25
|
-
this.
|
26
|
-
this.wtEvent = new Event(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.
|
25
|
+
this.selectionManager = clone.selectionManager;
|
26
|
+
this.wtEvent = new Event(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager, clone.event);
|
27
27
|
this.findOriginalHeaders();
|
28
28
|
}
|
29
29
|
}
|
@@ -8,6 +8,7 @@ var _settings = _interopRequireDefault(require("../settings"));
|
|
8
8
|
var _master = _interopRequireDefault(require("../table/master"));
|
9
9
|
var _viewport = _interopRequireDefault(require("../viewport"));
|
10
10
|
var _base = _interopRequireDefault(require("./_base"));
|
11
|
+
var _manager = require("../selection/manager");
|
11
12
|
var _object = require("../../../../helpers/object");
|
12
13
|
var _element = require("../../../../helpers/dom/element");
|
13
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -25,8 +26,8 @@ class Walkontable extends _base.default {
|
|
25
26
|
|
26
27
|
this.wtTable = new _master.default(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
27
28
|
this.wtViewport = new _viewport.default(this.getViewportDao(), this.domBindings, this.wtSettings, this.eventManager, this.wtTable);
|
28
|
-
this.
|
29
|
-
this.wtEvent = new _event.default(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.
|
29
|
+
this.selectionManager = new _manager.SelectionManager(this.wtSettings.getSetting('selections'));
|
30
|
+
this.wtEvent = new _event.default(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager);
|
30
31
|
this.wtOverlays = new _overlays.default(
|
31
32
|
// TODO create DAO and remove reference to the Walkontable instance.
|
32
33
|
this, facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable);
|
@@ -5,6 +5,7 @@ import Settings from "../settings.mjs";
|
|
5
5
|
import MasterTable from "../table/master.mjs";
|
6
6
|
import Viewport from "../viewport.mjs";
|
7
7
|
import CoreAbstract from "./_base.mjs";
|
8
|
+
import { SelectionManager } from "../selection/manager.mjs";
|
8
9
|
import { objectEach } from "../../../../helpers/object.mjs";
|
9
10
|
import { addClass, removeClass } from "../../../../helpers/dom/element.mjs";
|
10
11
|
/**
|
@@ -21,8 +22,8 @@ export default class Walkontable extends CoreAbstract {
|
|
21
22
|
|
22
23
|
this.wtTable = new MasterTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
23
24
|
this.wtViewport = new Viewport(this.getViewportDao(), this.domBindings, this.wtSettings, this.eventManager, this.wtTable);
|
24
|
-
this.
|
25
|
-
this.wtEvent = new Event(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.
|
25
|
+
this.selectionManager = new SelectionManager(this.wtSettings.getSetting('selections'));
|
26
|
+
this.wtEvent = new Event(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager);
|
26
27
|
this.wtOverlays = new Overlays(
|
27
28
|
// TODO create DAO and remove reference to the Walkontable instance.
|
28
29
|
this, facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable);
|
@@ -18,15 +18,15 @@ class Event {
|
|
18
18
|
* @param {Settings} wtSettings The walkontable settings.
|
19
19
|
* @param {EventManager} eventManager The walkontable event manager.
|
20
20
|
* @param {Table} wtTable The table.
|
21
|
-
* @param {
|
21
|
+
* @param {SelectionManager} selectionManager Selections.
|
22
22
|
* @param {Event} [parent=null] The main Event instance.
|
23
23
|
*/
|
24
|
-
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable,
|
24
|
+
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
|
25
25
|
let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
26
26
|
this.wtSettings = wtSettings;
|
27
27
|
this.domBindings = domBindings;
|
28
28
|
this.wtTable = wtTable;
|
29
|
-
this.
|
29
|
+
this.selectionManager = selectionManager;
|
30
30
|
this.parent = parent;
|
31
31
|
|
32
32
|
/**
|
@@ -41,7 +41,8 @@ class Event {
|
|
41
41
|
* Should be use only for passing face called external origin methods, like registered event listeners.
|
42
42
|
* It provides backward compatibility by getting instance facade.
|
43
43
|
*
|
44
|
-
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
44
|
+
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
45
|
+
* dependency).
|
45
46
|
* @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
|
46
47
|
*
|
47
48
|
* @type {FacadeGetter}
|
@@ -134,11 +135,11 @@ class Event {
|
|
134
135
|
cell.coords = this.wtTable.getCoords(TD);
|
135
136
|
cell.TD = TD;
|
136
137
|
} else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'current')) {
|
137
|
-
cell.coords = this.
|
138
|
+
cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
|
138
139
|
cell.TD = this.wtTable.getCell(cell.coords);
|
139
140
|
} else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'area')) {
|
140
|
-
if (this.
|
141
|
-
cell.coords = this.
|
141
|
+
if (this.selectionManager.getAreaSelection().cellRange) {
|
142
|
+
cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
|
142
143
|
cell.TD = this.wtTable.getCell(cell.coords);
|
143
144
|
}
|
144
145
|
}
|
@@ -157,8 +158,9 @@ class Event {
|
|
157
158
|
const getParentNode = (0, _function.partial)(_element.getParent, event.target);
|
158
159
|
const realTarget = event.target;
|
159
160
|
|
160
|
-
// ignore focusable
|
161
|
-
|
161
|
+
// ignore non-TD focusable elements from mouse down processing
|
162
|
+
// (https://github.com/handsontable/handsontable/issues/3555)
|
163
|
+
if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
|
162
164
|
return;
|
163
165
|
}
|
164
166
|
const cell = this.parentCell(realTarget);
|
@@ -276,7 +278,7 @@ class Event {
|
|
276
278
|
*/
|
277
279
|
onTouchStart(event) {
|
278
280
|
const priv = privatePool.get(this);
|
279
|
-
priv.selectedCellBeforeTouchEnd = this.
|
281
|
+
priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
|
280
282
|
this.touchApplied = true;
|
281
283
|
this.onMouseDown(event);
|
282
284
|
}
|
@@ -15,15 +15,15 @@ class Event {
|
|
15
15
|
* @param {Settings} wtSettings The walkontable settings.
|
16
16
|
* @param {EventManager} eventManager The walkontable event manager.
|
17
17
|
* @param {Table} wtTable The table.
|
18
|
-
* @param {
|
18
|
+
* @param {SelectionManager} selectionManager Selections.
|
19
19
|
* @param {Event} [parent=null] The main Event instance.
|
20
20
|
*/
|
21
|
-
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable,
|
21
|
+
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
|
22
22
|
let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
23
23
|
this.wtSettings = wtSettings;
|
24
24
|
this.domBindings = domBindings;
|
25
25
|
this.wtTable = wtTable;
|
26
|
-
this.
|
26
|
+
this.selectionManager = selectionManager;
|
27
27
|
this.parent = parent;
|
28
28
|
|
29
29
|
/**
|
@@ -38,7 +38,8 @@ class Event {
|
|
38
38
|
* Should be use only for passing face called external origin methods, like registered event listeners.
|
39
39
|
* It provides backward compatibility by getting instance facade.
|
40
40
|
*
|
41
|
-
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
41
|
+
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
42
|
+
* dependency).
|
42
43
|
* @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
|
43
44
|
*
|
44
45
|
* @type {FacadeGetter}
|
@@ -131,11 +132,11 @@ class Event {
|
|
131
132
|
cell.coords = this.wtTable.getCoords(TD);
|
132
133
|
cell.TD = TD;
|
133
134
|
} else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'current')) {
|
134
|
-
cell.coords = this.
|
135
|
+
cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
|
135
136
|
cell.TD = this.wtTable.getCell(cell.coords);
|
136
137
|
} else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'area')) {
|
137
|
-
if (this.
|
138
|
-
cell.coords = this.
|
138
|
+
if (this.selectionManager.getAreaSelection().cellRange) {
|
139
|
+
cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
|
139
140
|
cell.TD = this.wtTable.getCell(cell.coords);
|
140
141
|
}
|
141
142
|
}
|
@@ -154,8 +155,9 @@ class Event {
|
|
154
155
|
const getParentNode = partial(getParent, event.target);
|
155
156
|
const realTarget = event.target;
|
156
157
|
|
157
|
-
// ignore focusable
|
158
|
-
|
158
|
+
// ignore non-TD focusable elements from mouse down processing
|
159
|
+
// (https://github.com/handsontable/handsontable/issues/3555)
|
160
|
+
if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
|
159
161
|
return;
|
160
162
|
}
|
161
163
|
const cell = this.parentCell(realTarget);
|
@@ -273,7 +275,7 @@ class Event {
|
|
273
275
|
*/
|
274
276
|
onTouchStart(event) {
|
275
277
|
const priv = privatePool.get(this);
|
276
|
-
priv.selectedCellBeforeTouchEnd = this.
|
278
|
+
priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
|
277
279
|
this.touchApplied = true;
|
278
280
|
this.onMouseDown(event);
|
279
281
|
}
|
@@ -50,8 +50,8 @@ class WalkontableFacade {
|
|
50
50
|
return this._wot.cloneOverlay; // todo create facade
|
51
51
|
}
|
52
52
|
|
53
|
-
get
|
54
|
-
return this._wot.
|
53
|
+
get selectionManager() {
|
54
|
+
return this._wot.selectionManager; // todo create facade
|
55
55
|
}
|
56
56
|
|
57
57
|
get wtViewport() {
|
@@ -46,8 +46,8 @@ export default class WalkontableFacade {
|
|
46
46
|
return this._wot.cloneOverlay; // todo create facade
|
47
47
|
}
|
48
48
|
|
49
|
-
get
|
50
|
-
return this._wot.
|
49
|
+
get selectionManager() {
|
50
|
+
return this._wot.selectionManager; // todo create facade
|
51
51
|
}
|
52
52
|
|
53
53
|
get wtViewport() {
|