@polygrid/core 1.0.525 → 1.0.526
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/engine/core/grid.d.ts.map +1 -1
- package/dist/engine/core/grid.js +1 -0
- package/dist/engine/core/grid.js.map +1 -1
- package/dist/engine/core/methods/consume-options.d.ts.map +1 -1
- package/dist/engine/core/methods/consume-options.js +1 -2
- package/dist/engine/core/methods/consume-options.js.map +1 -1
- package/dist/engine/core/methods/normalize-view-rows.d.ts.map +1 -1
- package/dist/engine/core/methods/normalize-view-rows.js +1 -0
- package/dist/engine/core/methods/normalize-view-rows.js.map +1 -1
- package/dist/engine/services/grouping/methods/data/flatten-groups.d.ts.map +1 -1
- package/dist/engine/services/grouping/methods/data/flatten-groups.js +4 -0
- package/dist/engine/services/grouping/methods/data/flatten-groups.js.map +1 -1
- package/dist/engine/services/grouping/methods/ui/remove-grouped-column.d.ts.map +1 -1
- package/dist/engine/services/grouping/methods/ui/remove-grouped-column.js +1 -0
- package/dist/engine/services/grouping/methods/ui/remove-grouped-column.js.map +1 -1
- package/dist/engine/services/layout/methods/compute-row-positions.d.ts.map +1 -1
- package/dist/engine/services/layout/methods/compute-row-positions.js +2 -14
- package/dist/engine/services/layout/methods/compute-row-positions.js.map +1 -1
- package/dist/engine/services/navigation/index.d.ts +41 -0
- package/dist/engine/services/navigation/index.d.ts.map +1 -0
- package/dist/engine/services/navigation/index.js +40 -0
- package/dist/engine/services/navigation/index.js.map +1 -0
- package/dist/engine/services/navigation/methods/find-row-by-vertical-offset.d.ts +3 -0
- package/dist/engine/services/navigation/methods/find-row-by-vertical-offset.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/find-row-by-vertical-offset.js +18 -0
- package/dist/engine/services/navigation/methods/find-row-by-vertical-offset.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-end.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-end.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-end.js +25 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-end.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-home.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-home.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-home.js +25 -0
- package/dist/engine/services/navigation/methods/handle-ctrl-home.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-end-key.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-end-key.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-end-key.js +50 -0
- package/dist/engine/services/navigation/methods/handle-end-key.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-home-key.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-home-key.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-home-key.js +50 -0
- package/dist/engine/services/navigation/methods/handle-home-key.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-keydown.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-keydown.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-keydown.js +102 -0
- package/dist/engine/services/navigation/methods/handle-keydown.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-page-down.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-page-down.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-page-down.js +56 -0
- package/dist/engine/services/navigation/methods/handle-page-down.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-page-up.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-page-up.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-page-up.js +56 -0
- package/dist/engine/services/navigation/methods/handle-page-up.js.map +1 -0
- package/dist/engine/services/navigation/methods/handle-tab-key.d.ts +3 -0
- package/dist/engine/services/navigation/methods/handle-tab-key.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/handle-tab-key.js +55 -0
- package/dist/engine/services/navigation/methods/handle-tab-key.js.map +1 -0
- package/dist/engine/services/navigation/methods/jump-to-edge.d.ts +6 -0
- package/dist/engine/services/navigation/methods/jump-to-edge.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/jump-to-edge.js +13 -0
- package/dist/engine/services/navigation/methods/jump-to-edge.js.map +1 -0
- package/dist/engine/services/navigation/methods/max-col-id.d.ts +3 -0
- package/dist/engine/services/navigation/methods/max-col-id.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/max-col-id.js +9 -0
- package/dist/engine/services/navigation/methods/max-col-id.js.map +1 -0
- package/dist/engine/services/navigation/methods/max-row-id.d.ts +3 -0
- package/dist/engine/services/navigation/methods/max-row-id.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/max-row-id.js +8 -0
- package/dist/engine/services/navigation/methods/max-row-id.js.map +1 -0
- package/dist/engine/services/navigation/methods/min-col-id.d.ts +3 -0
- package/dist/engine/services/navigation/methods/min-col-id.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/min-col-id.js +9 -0
- package/dist/engine/services/navigation/methods/min-col-id.js.map +1 -0
- package/dist/engine/services/navigation/methods/min-row-id.d.ts +3 -0
- package/dist/engine/services/navigation/methods/min-row-id.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/min-row-id.js +8 -0
- package/dist/engine/services/navigation/methods/min-row-id.js.map +1 -0
- package/dist/engine/services/navigation/methods/move-focus.d.ts +3 -0
- package/dist/engine/services/navigation/methods/move-focus.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/move-focus.js +62 -0
- package/dist/engine/services/navigation/methods/move-focus.js.map +1 -0
- package/dist/engine/services/navigation/methods/next-col-id.d.ts +3 -0
- package/dist/engine/services/navigation/methods/next-col-id.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/next-col-id.js +11 -0
- package/dist/engine/services/navigation/methods/next-col-id.js.map +1 -0
- package/dist/engine/services/navigation/methods/next-row-id.d.ts +3 -0
- package/dist/engine/services/navigation/methods/next-row-id.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/next-row-id.js +9 -0
- package/dist/engine/services/navigation/methods/next-row-id.js.map +1 -0
- package/dist/engine/services/navigation/methods/scroll-cell-into-view.d.ts +3 -0
- package/dist/engine/services/navigation/methods/scroll-cell-into-view.d.ts.map +1 -0
- package/dist/engine/services/navigation/methods/scroll-cell-into-view.js +28 -0
- package/dist/engine/services/navigation/methods/scroll-cell-into-view.js.map +1 -0
- package/dist/engine/services/navigation/navigation.d.ts +16 -0
- package/dist/engine/services/navigation/navigation.d.ts.map +1 -0
- package/dist/engine/services/navigation/navigation.js +13 -0
- package/dist/engine/services/navigation/navigation.js.map +1 -0
- package/dist/engine/services/renderer/parts/body/body.d.ts.map +1 -1
- package/dist/engine/services/renderer/parts/body/body.js +7 -1
- package/dist/engine/services/renderer/parts/body/body.js.map +1 -1
- package/dist/engine/services/renderer/parts/header/header-cells.d.ts.map +1 -1
- package/dist/engine/services/renderer/parts/header/header-cells.js +0 -1
- package/dist/engine/services/renderer/parts/header/header-cells.js.map +1 -1
- package/dist/engine/services/row/classes/row-instance.d.ts +1 -0
- package/dist/engine/services/row/classes/row-instance.d.ts.map +1 -1
- package/dist/engine/services/row/classes/row-instance.js +2 -2
- package/dist/engine/services/row/classes/row-instance.js.map +1 -1
- package/dist/engine/services/row/classes/row-pool.d.ts.map +1 -1
- package/dist/engine/services/row/classes/row-pool.js +2 -0
- package/dist/engine/services/row/classes/row-pool.js.map +1 -1
- package/dist/engine/services/row/types/view-row.d.ts +3 -0
- package/dist/engine/services/row/types/view-row.d.ts.map +1 -1
- package/dist/engine/services/selection/index.d.ts +33 -25
- package/dist/engine/services/selection/index.d.ts.map +1 -1
- package/dist/engine/services/selection/index.js +33 -25
- package/dist/engine/services/selection/index.js.map +1 -1
- package/dist/engine/services/selection/interfaces/selection-settings.d.ts +21 -4
- package/dist/engine/services/selection/interfaces/selection-settings.d.ts.map +1 -1
- package/dist/engine/services/selection/methods/activate-mode.js +2 -2
- package/dist/engine/services/selection/methods/activate-mode.js.map +1 -1
- package/dist/engine/services/selection/methods/cell/cell-click.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/cell-click.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/cell-click.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-end.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-end.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-end.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-move.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-move.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-move.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-start.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/cell-drag-start.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{cell-drag-start.js → cell/cell-drag-start.js} +1 -1
- package/dist/engine/services/selection/methods/cell/cell-drag-start.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/cell-shift-click.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/cell-shift-click.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{cell-shift-click.js → cell/cell-shift-click.js} +1 -1
- package/dist/engine/services/selection/methods/cell/cell-shift-click.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/clear-cell-selection.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/clear-cell-selection.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/clear-cell-selection.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/clear-selection-by-keyboard.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/clear-selection-by-keyboard.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/clear-selection-by-keyboard.js +17 -0
- package/dist/engine/services/selection/methods/cell/clear-selection-by-keyboard.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/end-drag.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/end-drag.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/end-drag.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/get-cell-under-mouse.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/get-cell-under-mouse.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/get-cell-under-mouse.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/on-mouse-down.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/on-mouse-down.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{on-mouse-down.js → cell/on-mouse-down.js} +2 -4
- package/dist/engine/services/selection/methods/cell/on-mouse-down.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/on-mouse-move.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/on-mouse-move.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{on-mouse-move.js → cell/on-mouse-move.js} +1 -1
- package/dist/engine/services/selection/methods/cell/on-mouse-move.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/on-window-mouse-up.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/on-window-mouse-up.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/on-window-mouse-up.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-all-by-keyboard.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/select-all-by-keyboard.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-all-by-keyboard.js +30 -0
- package/dist/engine/services/selection/methods/cell/select-all-by-keyboard.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-cell.d.ts +5 -0
- package/dist/engine/services/selection/methods/cell/select-cell.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{select-cell.js → cell/select-cell.js} +1 -1
- package/dist/engine/services/selection/methods/cell/select-cell.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-column-by-keyboard.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/select-column-by-keyboard.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-column-by-keyboard.js +28 -0
- package/dist/engine/services/selection/methods/cell/select-column-by-keyboard.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-row-by-keyboard.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/select-row-by-keyboard.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-row-by-keyboard.js +28 -0
- package/dist/engine/services/selection/methods/cell/select-row-by-keyboard.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/select-single-cell.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/select-single-cell.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{select-single-cell.js → cell/select-single-cell.js} +1 -1
- package/dist/engine/services/selection/methods/cell/select-single-cell.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/start-drag.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/start-drag.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/start-drag.js.map +1 -0
- package/dist/engine/services/selection/methods/{update-auto-scroll.d.ts → cell/update-auto-scroll.d.ts} +1 -1
- package/dist/engine/services/selection/methods/cell/update-auto-scroll.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/update-auto-scroll.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/update-drag.d.ts +4 -0
- package/dist/engine/services/selection/methods/cell/update-drag.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/cell/update-drag.js.map +1 -0
- package/dist/engine/services/selection/methods/cell/update-selection-overlay.d.ts +3 -0
- package/dist/engine/services/selection/methods/cell/update-selection-overlay.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{update-selection-overlay.js → cell/update-selection-overlay.js} +12 -9
- package/dist/engine/services/selection/methods/cell/update-selection-overlay.js.map +1 -0
- package/dist/engine/services/selection/methods/clear-selection.js +2 -2
- package/dist/engine/services/selection/methods/clear-selection.js.map +1 -1
- package/dist/engine/services/selection/methods/has-checkbox-column.d.ts.map +1 -1
- package/dist/engine/services/selection/methods/has-checkbox-column.js +1 -2
- package/dist/engine/services/selection/methods/has-checkbox-column.js.map +1 -1
- package/dist/engine/services/selection/methods/normalize-selectable.js +2 -6
- package/dist/engine/services/selection/methods/normalize-selectable.js.map +1 -1
- package/dist/engine/services/selection/methods/row/clear-row-selection.d.ts +3 -0
- package/dist/engine/services/selection/methods/row/clear-row-selection.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/row/clear-row-selection.js.map +1 -0
- package/dist/engine/services/selection/methods/row/header-checkbox-click.d.ts +3 -0
- package/dist/engine/services/selection/methods/row/header-checkbox-click.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{header-checkbox-click.js → row/header-checkbox-click.js} +1 -1
- package/dist/engine/services/selection/methods/row/header-checkbox-click.js.map +1 -0
- package/dist/engine/services/selection/methods/row/render-checkbox-cell.d.ts +4 -0
- package/dist/engine/services/selection/methods/row/render-checkbox-cell.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{render-checkbox-cell.js → row/render-checkbox-cell.js} +2 -2
- package/dist/engine/services/selection/methods/row/render-checkbox-cell.js.map +1 -0
- package/dist/engine/services/selection/methods/{row-checkbox-click.d.ts → row/row-checkbox-click.d.ts} +1 -1
- package/dist/engine/services/selection/methods/row/row-checkbox-click.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{row-checkbox-click.js → row/row-checkbox-click.js} +1 -1
- package/dist/engine/services/selection/methods/row/row-checkbox-click.js.map +1 -0
- package/dist/engine/services/selection/methods/row/row-shift-click.d.ts +4 -0
- package/dist/engine/services/selection/methods/row/row-shift-click.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{row-shift-click.js → row/row-shift-click.js} +1 -1
- package/dist/engine/services/selection/methods/row/row-shift-click.js.map +1 -0
- package/dist/engine/services/selection/methods/row/select-all-rows.d.ts +3 -0
- package/dist/engine/services/selection/methods/row/select-all-rows.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/row/select-all-rows.js.map +1 -0
- package/dist/engine/services/selection/methods/row/select-row.d.ts +5 -0
- package/dist/engine/services/selection/methods/row/select-row.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/{select-row.js → row/select-row.js} +1 -1
- package/dist/engine/services/selection/methods/row/select-row.js.map +1 -0
- package/dist/engine/services/selection/methods/row/toggle-row-selection.d.ts +4 -0
- package/dist/engine/services/selection/methods/row/toggle-row-selection.d.ts.map +1 -0
- package/dist/engine/services/selection/methods/row/toggle-row-selection.js.map +1 -0
- package/dist/engine/services/selection/methods/set-selectable.js +1 -1
- package/dist/engine/services/selection/methods/set-selectable.js.map +1 -1
- package/dist/engine/services/services.d.ts +2 -0
- package/dist/engine/services/services.d.ts.map +1 -1
- package/dist/engine/services/services.js +2 -0
- package/dist/engine/services/services.js.map +1 -1
- package/dist/engine/store/interfaces/view-state.d.ts +1 -1
- package/dist/polygrid.css +4 -0
- package/package.json +1 -1
- package/dist/engine/services/selection/methods/cell-click.d.ts +0 -4
- package/dist/engine/services/selection/methods/cell-click.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/cell-click.js.map +0 -1
- package/dist/engine/services/selection/methods/cell-drag-end.d.ts +0 -3
- package/dist/engine/services/selection/methods/cell-drag-end.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/cell-drag-end.js.map +0 -1
- package/dist/engine/services/selection/methods/cell-drag-move.d.ts +0 -4
- package/dist/engine/services/selection/methods/cell-drag-move.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/cell-drag-move.js.map +0 -1
- package/dist/engine/services/selection/methods/cell-drag-start.d.ts +0 -4
- package/dist/engine/services/selection/methods/cell-drag-start.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/cell-drag-start.js.map +0 -1
- package/dist/engine/services/selection/methods/cell-shift-click.d.ts +0 -4
- package/dist/engine/services/selection/methods/cell-shift-click.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/cell-shift-click.js.map +0 -1
- package/dist/engine/services/selection/methods/clear-cell-selection.d.ts +0 -3
- package/dist/engine/services/selection/methods/clear-cell-selection.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/clear-cell-selection.js.map +0 -1
- package/dist/engine/services/selection/methods/clear-row-selection.d.ts +0 -3
- package/dist/engine/services/selection/methods/clear-row-selection.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/clear-row-selection.js.map +0 -1
- package/dist/engine/services/selection/methods/end-drag.d.ts +0 -3
- package/dist/engine/services/selection/methods/end-drag.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/end-drag.js.map +0 -1
- package/dist/engine/services/selection/methods/get-cell-under-mouse.d.ts +0 -4
- package/dist/engine/services/selection/methods/get-cell-under-mouse.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/get-cell-under-mouse.js.map +0 -1
- package/dist/engine/services/selection/methods/header-checkbox-click.d.ts +0 -3
- package/dist/engine/services/selection/methods/header-checkbox-click.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/header-checkbox-click.js.map +0 -1
- package/dist/engine/services/selection/methods/on-mouse-down.d.ts +0 -3
- package/dist/engine/services/selection/methods/on-mouse-down.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/on-mouse-down.js.map +0 -1
- package/dist/engine/services/selection/methods/on-mouse-move.d.ts +0 -3
- package/dist/engine/services/selection/methods/on-mouse-move.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/on-mouse-move.js.map +0 -1
- package/dist/engine/services/selection/methods/on-window-mouse-up.d.ts +0 -3
- package/dist/engine/services/selection/methods/on-window-mouse-up.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/on-window-mouse-up.js.map +0 -1
- package/dist/engine/services/selection/methods/render-checkbox-cell.d.ts +0 -4
- package/dist/engine/services/selection/methods/render-checkbox-cell.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/render-checkbox-cell.js.map +0 -1
- package/dist/engine/services/selection/methods/row-checkbox-click.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/row-checkbox-click.js.map +0 -1
- package/dist/engine/services/selection/methods/row-shift-click.d.ts +0 -4
- package/dist/engine/services/selection/methods/row-shift-click.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/row-shift-click.js.map +0 -1
- package/dist/engine/services/selection/methods/select-all-rows.d.ts +0 -3
- package/dist/engine/services/selection/methods/select-all-rows.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/select-all-rows.js.map +0 -1
- package/dist/engine/services/selection/methods/select-cell.d.ts +0 -5
- package/dist/engine/services/selection/methods/select-cell.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/select-cell.js.map +0 -1
- package/dist/engine/services/selection/methods/select-row.d.ts +0 -5
- package/dist/engine/services/selection/methods/select-row.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/select-row.js.map +0 -1
- package/dist/engine/services/selection/methods/select-single-cell.d.ts +0 -4
- package/dist/engine/services/selection/methods/select-single-cell.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/select-single-cell.js.map +0 -1
- package/dist/engine/services/selection/methods/start-drag.d.ts +0 -4
- package/dist/engine/services/selection/methods/start-drag.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/start-drag.js.map +0 -1
- package/dist/engine/services/selection/methods/toggle-row-selection.d.ts +0 -4
- package/dist/engine/services/selection/methods/toggle-row-selection.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/toggle-row-selection.js.map +0 -1
- package/dist/engine/services/selection/methods/update-auto-scroll.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/update-auto-scroll.js.map +0 -1
- package/dist/engine/services/selection/methods/update-drag.d.ts +0 -4
- package/dist/engine/services/selection/methods/update-drag.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/update-drag.js.map +0 -1
- package/dist/engine/services/selection/methods/update-selection-overlay.d.ts +0 -3
- package/dist/engine/services/selection/methods/update-selection-overlay.d.ts.map +0 -1
- package/dist/engine/services/selection/methods/update-selection-overlay.js.map +0 -1
- /package/dist/engine/services/selection/methods/{cell-click.js → cell/cell-click.js} +0 -0
- /package/dist/engine/services/selection/methods/{cell-drag-end.js → cell/cell-drag-end.js} +0 -0
- /package/dist/engine/services/selection/methods/{cell-drag-move.js → cell/cell-drag-move.js} +0 -0
- /package/dist/engine/services/selection/methods/{clear-cell-selection.js → cell/clear-cell-selection.js} +0 -0
- /package/dist/engine/services/selection/methods/{end-drag.js → cell/end-drag.js} +0 -0
- /package/dist/engine/services/selection/methods/{get-cell-under-mouse.js → cell/get-cell-under-mouse.js} +0 -0
- /package/dist/engine/services/selection/methods/{on-window-mouse-up.js → cell/on-window-mouse-up.js} +0 -0
- /package/dist/engine/services/selection/methods/{start-drag.js → cell/start-drag.js} +0 -0
- /package/dist/engine/services/selection/methods/{update-auto-scroll.js → cell/update-auto-scroll.js} +0 -0
- /package/dist/engine/services/selection/methods/{update-drag.js → cell/update-drag.js} +0 -0
- /package/dist/engine/services/selection/methods/{clear-row-selection.js → row/clear-row-selection.js} +0 -0
- /package/dist/engine/services/selection/methods/{select-all-rows.js → row/select-all-rows.js} +0 -0
- /package/dist/engine/services/selection/methods/{toggle-row-selection.js → row/toggle-row-selection.js} +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { moveFocus } from "./move-focus";
|
|
2
|
+
export function handleKeyDown(e, grid) {
|
|
3
|
+
const state = grid._store.getState();
|
|
4
|
+
const settings = state.view.selectable;
|
|
5
|
+
// Keyboard selection disabled → do nothing
|
|
6
|
+
if (typeof settings === "object" && !settings.keyboard)
|
|
7
|
+
return;
|
|
8
|
+
const sel = state.view.selectionState.cell;
|
|
9
|
+
if (!sel.focusedCell)
|
|
10
|
+
return;
|
|
11
|
+
const isShift = e.shiftKey;
|
|
12
|
+
const isCtrl = e.ctrlKey || e.metaKey;
|
|
13
|
+
switch (e.key) {
|
|
14
|
+
case "ArrowUp":
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
moveFocus(grid, 0, -1, isShift, isCtrl);
|
|
17
|
+
break;
|
|
18
|
+
case "ArrowDown":
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
moveFocus(grid, 0, 1, isShift, isCtrl);
|
|
21
|
+
break;
|
|
22
|
+
case "ArrowLeft":
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
moveFocus(grid, -1, 0, isShift, isCtrl);
|
|
25
|
+
break;
|
|
26
|
+
case "ArrowRight":
|
|
27
|
+
e.preventDefault();
|
|
28
|
+
moveFocus(grid, 1, 0, isShift, isCtrl);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
// SHIFT + SPACE → select entire row
|
|
32
|
+
if (e.shiftKey && e.code === "Space") {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
grid._services.selection.selectRowByKeyboard(grid);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// CTRL + SPACE → select entire column
|
|
38
|
+
if (e.ctrlKey && e.code === "Space") {
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
grid._services.selection.selectColumnByKeyboard(grid);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// CTRL + A → select all
|
|
44
|
+
if (e.ctrlKey && e.key.toLowerCase() === "a") {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
grid._services.selection.selectAllByKeyboard(grid);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// CTRL + HOME → jump to first cell
|
|
50
|
+
if (e.ctrlKey && e.code === "Home") {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
grid._services.navigation.handleCtrlHome(grid);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
// CTRL + END → jump to last cell
|
|
56
|
+
if (e.ctrlKey && e.code === "End") {
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
grid._services.navigation.handleCtrlEnd(grid);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// HOME (with or without Shift)
|
|
62
|
+
if (e.key === "Home") {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
grid._services.navigation.handleHomeKey(grid, e.shiftKey);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// END (with or without Shift)
|
|
68
|
+
if (e.key === "End") {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
grid._services.navigation.handleEndKey(grid, e.shiftKey);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// PAGE DOWN
|
|
74
|
+
if (e.key === "PageDown") {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
grid._services.navigation.handlePageDown(grid, e.shiftKey);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// PAGE UP
|
|
80
|
+
if (e.key === "PageUp") {
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
grid._services.navigation.handlePageUp(grid, e.shiftKey);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// TAB → move right (wrap rows)
|
|
86
|
+
// SHIFT + TAB → move left (wrap rows)
|
|
87
|
+
if (e.key === "Tab") {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
grid._services.navigation.handleTabKey(grid, e.shiftKey);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// ESC → clear selection (if enabled)
|
|
93
|
+
if (e.key === "Escape") {
|
|
94
|
+
const settings = grid._store.getState().view.selectable;
|
|
95
|
+
if (typeof settings === "object" && settings.clearSelectionOnEscape) {
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
grid._services.selection.clearSelectionByKeyboard(grid);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=handle-keydown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-keydown.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/handle-keydown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-page-down.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/handle-page-down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQ9C,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,QAqD5D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { findRowByVerticalOffset } from "./find-row-by-vertical-offset";
|
|
2
|
+
import { maxColId } from "./max-col-id";
|
|
3
|
+
import { maxRowId } from "./max-row-id";
|
|
4
|
+
import { minColId } from "./min-col-id";
|
|
5
|
+
import { minRowId } from "./min-row-id";
|
|
6
|
+
import { scrollCellIntoView } from "./scroll-cell-into-view";
|
|
7
|
+
export function handlePageDown(grid, shift) {
|
|
8
|
+
const state = grid._store.getState();
|
|
9
|
+
const sel = state.view.selectionState.cell;
|
|
10
|
+
const { focusedCell, anchorCell } = sel;
|
|
11
|
+
if (!focusedCell)
|
|
12
|
+
return;
|
|
13
|
+
const { rowId, colId } = focusedCell;
|
|
14
|
+
const viewport = grid._gridDom.bodyViewport;
|
|
15
|
+
const rowPos = state.view.rowPositions[rowId];
|
|
16
|
+
if (!rowPos)
|
|
17
|
+
return;
|
|
18
|
+
// Compute target vertical offset
|
|
19
|
+
const targetTop = rowPos.top + viewport.clientHeight;
|
|
20
|
+
// Find the row closest to that offset
|
|
21
|
+
const newRowId = findRowByVerticalOffset(grid, targetTop);
|
|
22
|
+
if (!shift) {
|
|
23
|
+
// Simple move
|
|
24
|
+
grid._store.update((draft) => {
|
|
25
|
+
const cellSel = draft.view.selectionState.cell;
|
|
26
|
+
cellSel.anchorCell = { rowId: newRowId, colId };
|
|
27
|
+
cellSel.currentCell = { rowId: newRowId, colId };
|
|
28
|
+
cellSel.focusedCell = { rowId: newRowId, colId };
|
|
29
|
+
cellSel.range = {
|
|
30
|
+
start: { rowId: newRowId, colId },
|
|
31
|
+
end: { rowId: newRowId, colId },
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Expand selection downward
|
|
37
|
+
const anchor = anchorCell;
|
|
38
|
+
grid._store.update((draft) => {
|
|
39
|
+
const cellSel = draft.view.selectionState.cell;
|
|
40
|
+
cellSel.currentCell = { rowId: newRowId, colId };
|
|
41
|
+
cellSel.focusedCell = { rowId: newRowId, colId };
|
|
42
|
+
cellSel.range = {
|
|
43
|
+
start: {
|
|
44
|
+
rowId: minRowId(grid, anchor.rowId, newRowId),
|
|
45
|
+
colId: minColId(grid, anchor.colId, colId),
|
|
46
|
+
},
|
|
47
|
+
end: {
|
|
48
|
+
rowId: maxRowId(grid, anchor.rowId, newRowId),
|
|
49
|
+
colId: maxColId(grid, anchor.colId, colId),
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
scrollCellIntoView(grid, newRowId, colId);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=handle-page-down.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-page-down.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/handle-page-down.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-page-up.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/handle-page-up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQ9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,QAqD1D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { findRowByVerticalOffset } from "./find-row-by-vertical-offset";
|
|
2
|
+
import { maxColId } from "./max-col-id";
|
|
3
|
+
import { maxRowId } from "./max-row-id";
|
|
4
|
+
import { minColId } from "./min-col-id";
|
|
5
|
+
import { minRowId } from "./min-row-id";
|
|
6
|
+
import { scrollCellIntoView } from "./scroll-cell-into-view";
|
|
7
|
+
export function handlePageUp(grid, shift) {
|
|
8
|
+
const state = grid._store.getState();
|
|
9
|
+
const sel = state.view.selectionState.cell;
|
|
10
|
+
const { focusedCell, anchorCell } = sel;
|
|
11
|
+
if (!focusedCell)
|
|
12
|
+
return;
|
|
13
|
+
const { rowId, colId } = focusedCell;
|
|
14
|
+
const viewport = grid._gridDom.bodyViewport;
|
|
15
|
+
const rowPos = state.view.rowPositions[rowId];
|
|
16
|
+
if (!rowPos)
|
|
17
|
+
return;
|
|
18
|
+
// Compute target vertical offset
|
|
19
|
+
const targetTop = rowPos.top - viewport.clientHeight;
|
|
20
|
+
// Find the row closest to that offset
|
|
21
|
+
const newRowId = findRowByVerticalOffset(grid, targetTop);
|
|
22
|
+
if (!shift) {
|
|
23
|
+
// Simple move
|
|
24
|
+
grid._store.update((draft) => {
|
|
25
|
+
const cellSel = draft.view.selectionState.cell;
|
|
26
|
+
cellSel.anchorCell = { rowId: newRowId, colId };
|
|
27
|
+
cellSel.currentCell = { rowId: newRowId, colId };
|
|
28
|
+
cellSel.focusedCell = { rowId: newRowId, colId };
|
|
29
|
+
cellSel.range = {
|
|
30
|
+
start: { rowId: newRowId, colId },
|
|
31
|
+
end: { rowId: newRowId, colId },
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Expand selection upward
|
|
37
|
+
const anchor = anchorCell;
|
|
38
|
+
grid._store.update((draft) => {
|
|
39
|
+
const cellSel = draft.view.selectionState.cell;
|
|
40
|
+
cellSel.currentCell = { rowId: newRowId, colId };
|
|
41
|
+
cellSel.focusedCell = { rowId: newRowId, colId };
|
|
42
|
+
cellSel.range = {
|
|
43
|
+
start: {
|
|
44
|
+
rowId: minRowId(grid, anchor.rowId, newRowId),
|
|
45
|
+
colId: minColId(grid, anchor.colId, colId),
|
|
46
|
+
},
|
|
47
|
+
end: {
|
|
48
|
+
rowId: maxRowId(grid, anchor.rowId, newRowId),
|
|
49
|
+
colId: maxColId(grid, anchor.colId, colId),
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
scrollCellIntoView(grid, newRowId, colId);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=handle-page-up.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-page-up.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/handle-page-up.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-tab-key.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/handle-tab-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,QA0D1D"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { scrollCellIntoView } from "./scroll-cell-into-view";
|
|
2
|
+
export function handleTabKey(grid, shift) {
|
|
3
|
+
const state = grid._store.getState();
|
|
4
|
+
const sel = state.view.selectionState.cell;
|
|
5
|
+
const { focusedCell } = sel;
|
|
6
|
+
if (!focusedCell)
|
|
7
|
+
return;
|
|
8
|
+
const rows = state.view.viewRows;
|
|
9
|
+
const cols = state.view.internalColumns.filter((c) => c.visible);
|
|
10
|
+
const rowIndex = rows.findIndex((r) => r.rowId === focusedCell.rowId);
|
|
11
|
+
const colIndex = cols.findIndex((c) => c.id === focusedCell.colId);
|
|
12
|
+
let newRowIndex = rowIndex;
|
|
13
|
+
let newColIndex = colIndex;
|
|
14
|
+
if (!shift) {
|
|
15
|
+
// TAB → move right
|
|
16
|
+
if (colIndex < cols.length - 1) {
|
|
17
|
+
newColIndex++;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// wrap to next row
|
|
21
|
+
if (rowIndex < rows.length - 1) {
|
|
22
|
+
newRowIndex++;
|
|
23
|
+
newColIndex = 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// SHIFT+TAB → move left
|
|
29
|
+
if (colIndex > 0) {
|
|
30
|
+
newColIndex--;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// wrap to previous row
|
|
34
|
+
if (rowIndex > 0) {
|
|
35
|
+
newRowIndex--;
|
|
36
|
+
newColIndex = cols.length - 1;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const newRowId = rows[newRowIndex].rowId;
|
|
41
|
+
const newColId = cols[newColIndex].id;
|
|
42
|
+
// Update selection (no range expansion)
|
|
43
|
+
grid._store.update((draft) => {
|
|
44
|
+
const cellSel = draft.view.selectionState.cell;
|
|
45
|
+
cellSel.anchorCell = { rowId: newRowId, colId: newColId };
|
|
46
|
+
cellSel.currentCell = { rowId: newRowId, colId: newColId };
|
|
47
|
+
cellSel.focusedCell = { rowId: newRowId, colId: newColId };
|
|
48
|
+
cellSel.range = {
|
|
49
|
+
start: { rowId: newRowId, colId: newColId },
|
|
50
|
+
end: { rowId: newRowId, colId: newColId },
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
scrollCellIntoView(grid, newRowId, newColId);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=handle-tab-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-tab-key.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/handle-tab-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,KAAc;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAC3C,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAE5B,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,QAAS,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnE,IAAI,WAAW,GAAG,QAAQ,CAAC;IAC3B,IAAI,WAAW,GAAG,QAAQ,CAAC;IAE3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,mBAAmB;QACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,WAAW,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,WAAW,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAE,CAAC,KAAK,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAE,CAAC,EAAE,CAAC;IAEvC,wCAAwC;IACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAE/C,OAAO,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC1D,OAAO,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC3D,OAAO,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAE3D,OAAO,CAAC,KAAK,GAAG;YACd,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC3C,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jump-to-edge.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/jump-to-edge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM;;;EAeX"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function jumpToEdge(grid, rowId, colId, dx, dy) {
|
|
2
|
+
const state = grid._store.getState();
|
|
3
|
+
const rows = state.view.viewRows;
|
|
4
|
+
const cols = state.view.internalColumns.filter((c) => c.visible);
|
|
5
|
+
if (dy !== 0) {
|
|
6
|
+
rowId = dy > 0 ? rows[rows.length - 1].rowId : rows[0].rowId;
|
|
7
|
+
}
|
|
8
|
+
if (dx !== 0) {
|
|
9
|
+
colId = dx > 0 ? cols[cols.length - 1].id : cols[0].id;
|
|
10
|
+
}
|
|
11
|
+
return { rowId, colId };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=jump-to-edge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jump-to-edge.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/jump-to-edge.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CACxB,IAAc,EACd,KAAa,EACb,KAAa,EACb,EAAU,EACV,EAAU;IAEV,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,QAAS,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;IACjE,CAAC;IAED,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"max-col-id.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/max-col-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function maxColId(grid, a, b) {
|
|
2
|
+
const cols = grid._store
|
|
3
|
+
.getState()
|
|
4
|
+
.view.internalColumns.filter((c) => c.visible);
|
|
5
|
+
return cols.findIndex((c) => c.id === a) >= cols.findIndex((c) => c.id === b)
|
|
6
|
+
? a
|
|
7
|
+
: b;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=max-col-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"max-col-id.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/max-col-id.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,CAAS,EAAE,CAAS;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;SACrB,QAAQ,EAAE;SACV,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"max-row-id.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/max-row-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"max-row-id.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/max-row-id.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,CAAS,EAAE,CAAS;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-col-id.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/min-col-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function minColId(grid, a, b) {
|
|
2
|
+
const cols = grid._store
|
|
3
|
+
.getState()
|
|
4
|
+
.view.internalColumns.filter((c) => c.visible);
|
|
5
|
+
return cols.findIndex((c) => c.id === a) <= cols.findIndex((c) => c.id === b)
|
|
6
|
+
? a
|
|
7
|
+
: b;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=min-col-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-col-id.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/min-col-id.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,CAAS,EAAE,CAAS;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;SACrB,QAAQ,EAAE;SACV,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-row-id.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/min-row-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-row-id.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/min-row-id.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,CAAS,EAAE,CAAS;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-focus.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/move-focus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAU9C,wBAAgB,SAAS,CACvB,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,QAyDd"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jumpToEdge } from "./jump-to-edge";
|
|
2
|
+
import { maxColId } from "./max-col-id";
|
|
3
|
+
import { maxRowId } from "./max-row-id";
|
|
4
|
+
import { minColId } from "./min-col-id";
|
|
5
|
+
import { minRowId } from "./min-row-id";
|
|
6
|
+
import { nextColId } from "./next-col-id";
|
|
7
|
+
import { nextRowId } from "./next-row-id";
|
|
8
|
+
import { scrollCellIntoView } from "./scroll-cell-into-view";
|
|
9
|
+
export function moveFocus(grid, dx, dy, shift, ctrl) {
|
|
10
|
+
const state = grid._store.getState();
|
|
11
|
+
const settings = state.view.selectable;
|
|
12
|
+
if (typeof settings === "object" && settings.mode === "row")
|
|
13
|
+
return;
|
|
14
|
+
const sel = state.view.selectionState.cell;
|
|
15
|
+
const { focusedCell } = sel;
|
|
16
|
+
if (!focusedCell)
|
|
17
|
+
return;
|
|
18
|
+
let { rowId, colId } = focusedCell;
|
|
19
|
+
// 1. Compute next cell
|
|
20
|
+
if (ctrl) {
|
|
21
|
+
// Jump to edge (Excel-style)
|
|
22
|
+
({ rowId, colId } = jumpToEdge(grid, rowId, colId, dx, dy));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// Move one cell
|
|
26
|
+
rowId = nextRowId(grid, rowId, dy);
|
|
27
|
+
colId = nextColId(grid, colId, dx);
|
|
28
|
+
}
|
|
29
|
+
// 2. Update selection state
|
|
30
|
+
grid._store.update((draft) => {
|
|
31
|
+
const cellSel = draft.view.selectionState.cell;
|
|
32
|
+
if (!shift) {
|
|
33
|
+
// Simple move → collapse range
|
|
34
|
+
cellSel.focusedCell = { rowId, colId };
|
|
35
|
+
cellSel.anchorCell = { rowId, colId };
|
|
36
|
+
cellSel.currentCell = { rowId, colId };
|
|
37
|
+
cellSel.range = {
|
|
38
|
+
start: { rowId, colId },
|
|
39
|
+
end: { rowId, colId },
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Shift pressed → expand range
|
|
44
|
+
cellSel.currentCell = { rowId, colId };
|
|
45
|
+
const anchor = cellSel.anchorCell;
|
|
46
|
+
cellSel.range = {
|
|
47
|
+
start: {
|
|
48
|
+
rowId: minRowId(grid, anchor.rowId, rowId),
|
|
49
|
+
colId: minColId(grid, anchor.colId, colId),
|
|
50
|
+
},
|
|
51
|
+
end: {
|
|
52
|
+
rowId: maxRowId(grid, anchor.rowId, rowId),
|
|
53
|
+
colId: maxColId(grid, anchor.colId, colId),
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
cellSel.focusedCell = { rowId, colId };
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
// 3. Ensure cell is visible (scroll into view)
|
|
60
|
+
scrollCellIntoView(grid, rowId, colId);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=move-focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-focus.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/move-focus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,UAAU,SAAS,CACvB,IAAc,EACd,EAAU,EACV,EAAU,EACV,KAAc,EACd,IAAa;IAEb,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;IAEvC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO;IAEpE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAC3C,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAE5B,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAEnC,uBAAuB;IACvB,IAAI,IAAI,EAAE,CAAC;QACT,6BAA6B;QAC7B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,gBAAgB;QAChB,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,+BAA+B;YAC/B,OAAO,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACvC,OAAO,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACtC,OAAO,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,GAAG;gBACd,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBACvB,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;aACtB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,OAAO,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAW,CAAC;YACnC,OAAO,CAAC,KAAK,GAAG;gBACd,KAAK,EAAE;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;oBAC1C,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;iBAC3C;gBACD,GAAG,EAAE;oBACH,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;oBAC1C,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;iBAC3C;aACF,CAAC;YACF,OAAO,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-col-id.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/next-col-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAW3E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function nextColId(grid, colId, dx) {
|
|
2
|
+
const cols = grid._store
|
|
3
|
+
.getState()
|
|
4
|
+
.view.internalColumns.filter((c) => c.visible); // if needed
|
|
5
|
+
const index = cols.findIndex((c) => c.id === colId);
|
|
6
|
+
if (index === -1)
|
|
7
|
+
return colId;
|
|
8
|
+
const nextIndex = Math.min(cols.length - 1, Math.max(0, index + dx));
|
|
9
|
+
return cols[nextIndex].id;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=next-col-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-col-id.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/next-col-id.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,KAAa,EAAE,EAAU;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;SACrB,QAAQ,EAAE;SACV,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;IAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IAErE,OAAO,IAAI,CAAC,SAAS,CAAE,CAAC,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-row-id.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/next-row-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ3E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function nextRowId(grid, rowId, dy) {
|
|
2
|
+
const rows = grid._store.getState().view.viewRows;
|
|
3
|
+
const index = rows.findIndex((r) => r.rowId === rowId);
|
|
4
|
+
if (index === -1)
|
|
5
|
+
return rowId;
|
|
6
|
+
const nextIndex = Math.min(rows.length - 1, Math.max(0, index + dy));
|
|
7
|
+
return rows[nextIndex].rowId;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=next-row-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-row-id.js","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/next-row-id.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,KAAa,EAAE,EAAU;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACvD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IAErE,OAAO,IAAI,CAAC,SAAS,CAAE,CAAC,KAAK,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-cell-into-view.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/navigation/methods/scroll-cell-into-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,QAgCd"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function scrollCellIntoView(grid, rowId, colId) {
|
|
2
|
+
const dom = grid._gridDom;
|
|
3
|
+
const rowPos = grid._store.getState().view.rowPositions[rowId];
|
|
4
|
+
const colPos = grid._store.getState().view.colPositions[colId];
|
|
5
|
+
if (!rowPos || !colPos)
|
|
6
|
+
return;
|
|
7
|
+
const vInner = dom.vScrollInner;
|
|
8
|
+
const hInner = dom.hScrollInner;
|
|
9
|
+
// Vertical
|
|
10
|
+
if (rowPos.top < vInner.scrollTop) {
|
|
11
|
+
vInner.scrollTop = rowPos.top;
|
|
12
|
+
}
|
|
13
|
+
else if (rowPos.top + rowPos.height >
|
|
14
|
+
vInner.scrollTop + dom.bodyViewport.clientHeight) {
|
|
15
|
+
vInner.scrollTop =
|
|
16
|
+
rowPos.top + rowPos.height - dom.bodyViewport.clientHeight;
|
|
17
|
+
}
|
|
18
|
+
// Horizontal
|
|
19
|
+
if (colPos.left < hInner.scrollLeft) {
|
|
20
|
+
hInner.scrollLeft = colPos.left;
|
|
21
|
+
}
|
|
22
|
+
else if (colPos.left + colPos.width >
|
|
23
|
+
hInner.scrollLeft + dom.bodyViewport.clientWidth) {
|
|
24
|
+
hInner.scrollLeft =
|
|
25
|
+
colPos.left + colPos.width - dom.bodyViewport.clientWidth;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=scroll-cell-into-view.js.map
|