mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-31 18:18:02 +01:00
164afeeb66
This adds a new NodeModel, which can be passed from the TileLayout to contained blocks. It contains all the layout data that the block should care about, including focus status, whether a drag operation is underway, whether the node is magnified, etc. This also adds a focus stack for the layout, which will let the focus switch to the last-focused node when the currently-focused one is closed. This also addresses a regression in the resize handles that caused them to be offset from the cursor when dragged. --------- Co-authored-by: sawka <mike.sawka@gmail.com>
69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
// Copyright 2024, Command Line Inc.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
import { TileLayout } from "./lib/TileLayout";
|
|
import { LayoutModel } from "./lib/layoutModel";
|
|
import {
|
|
deleteLayoutModelForTab,
|
|
getLayoutModelForActiveTab,
|
|
getLayoutModelForTab,
|
|
getLayoutModelForTabById,
|
|
useLayoutModel,
|
|
} from "./lib/layoutModelHooks";
|
|
import { newLayoutNode } from "./lib/layoutNode";
|
|
import type {
|
|
ContentRenderer,
|
|
LayoutNode,
|
|
LayoutTreeAction,
|
|
LayoutTreeClearPendingAction,
|
|
LayoutTreeCommitPendingAction,
|
|
LayoutTreeComputeMoveNodeAction,
|
|
LayoutTreeDeleteNodeAction,
|
|
LayoutTreeFocusNodeAction,
|
|
LayoutTreeInsertNodeAction,
|
|
LayoutTreeInsertNodeAtIndexAction,
|
|
LayoutTreeMagnifyNodeToggleAction,
|
|
LayoutTreeMoveNodeAction,
|
|
LayoutTreeResizeNodeAction,
|
|
LayoutTreeSetPendingAction,
|
|
LayoutTreeStateSetter,
|
|
LayoutTreeSwapNodeAction,
|
|
NodeModel,
|
|
PreviewRenderer,
|
|
} from "./lib/types";
|
|
import { DropDirection, LayoutTreeActionType, NavigateDirection } from "./lib/types";
|
|
|
|
export {
|
|
deleteLayoutModelForTab,
|
|
DropDirection,
|
|
getLayoutModelForActiveTab,
|
|
getLayoutModelForTab,
|
|
getLayoutModelForTabById,
|
|
LayoutModel,
|
|
LayoutTreeActionType,
|
|
NavigateDirection,
|
|
newLayoutNode,
|
|
TileLayout,
|
|
useLayoutModel,
|
|
};
|
|
export type {
|
|
ContentRenderer,
|
|
LayoutNode,
|
|
LayoutTreeAction,
|
|
LayoutTreeClearPendingAction,
|
|
LayoutTreeCommitPendingAction,
|
|
LayoutTreeComputeMoveNodeAction,
|
|
LayoutTreeDeleteNodeAction,
|
|
LayoutTreeFocusNodeAction,
|
|
LayoutTreeInsertNodeAction,
|
|
LayoutTreeInsertNodeAtIndexAction,
|
|
LayoutTreeMagnifyNodeToggleAction,
|
|
LayoutTreeMoveNodeAction,
|
|
LayoutTreeResizeNodeAction,
|
|
LayoutTreeSetPendingAction,
|
|
LayoutTreeStateSetter,
|
|
LayoutTreeSwapNodeAction,
|
|
NodeModel,
|
|
PreviewRenderer,
|
|
};
|