MCPcopy
hub / github.com/wavetermdev/waveterm / TermViewModel

Class TermViewModel

frontend/app/view/term/term-model.ts:46–1371  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44import { TermWrap, WebGLSupported } from "./termwrap";
45
46export class TermViewModel implements ViewModel {
47 viewType: string;
48 nodeModel: BlockNodeModel;
49 tabModel: TabModel;
50 connected: boolean;
51 termRef: React.RefObject<TermWrap> = { current: null };
52 blockAtom: jotai.Atom<Block>;
53 termMode: jotai.Atom<string>;
54 blockId: string;
55 viewIcon: jotai.Atom<IconButtonDecl>;
56 viewName: jotai.Atom<string>;
57 viewText: jotai.Atom<HeaderElem[]>;
58 blockBg: jotai.Atom<MetaType>;
59 manageConnection: jotai.Atom<boolean>;
60 filterOutNowsh?: jotai.Atom<boolean>;
61 connStatus: jotai.Atom<ConnStatus>;
62 useTermHeader: jotai.Atom<boolean>;
63 termWshClient: TermWshClient;
64 vdomBlockId: jotai.Atom<string>;
65 vdomToolbarBlockId: jotai.Atom<string>;
66 vdomToolbarTarget: jotai.PrimitiveAtom<VDomTargetToolbar>;
67 fontSizeAtom: jotai.Atom<number>;
68 termThemeNameAtom: jotai.Atom<string>;
69 termTransparencyAtom: jotai.Atom<number>;
70 termBPMAtom: jotai.Atom<boolean>;
71 noPadding: jotai.PrimitiveAtom<boolean>;
72 endIconButtons: jotai.Atom<IconButtonDecl[]>;
73 shellProcFullStatus: jotai.PrimitiveAtom<BlockControllerRuntimeStatus>;
74 shellProcStatus: jotai.Atom<string>;
75 shellProcStatusUnsubFn: () => void;
76 blockJobStatusAtom: jotai.PrimitiveAtom<BlockJobStatusData>;
77 blockJobStatusVersionTs: number;
78 blockJobStatusUnsubFn: () => void;
79 termBPMUnsubFn: () => void;
80 termCursorUnsubFn: () => void;
81 termCursorBlinkUnsubFn: () => void;
82 isCmdController: jotai.Atom<boolean>;
83 isRestarting: jotai.PrimitiveAtom<boolean>;
84 termDurableStatus: jotai.Atom<BlockJobStatusData | null>;
85 termConfigedDurable: jotai.Atom<null | boolean>;
86 searchAtoms?: SearchAtoms;
87
88 constructor({ blockId, nodeModel, tabModel }: ViewModelInitType) {
89 this.viewType = "term";
90 this.blockId = blockId;
91 this.tabModel = tabModel;
92 this.termWshClient = new TermWshClient(blockId, this);
93 DefaultRouter.registerRoute(makeFeBlockRouteId(blockId), this.termWshClient);
94 this.nodeModel = nodeModel;
95 this.blockAtom = WOS.getWaveObjectAtom<Block>(`block:${blockId}`);
96 this.vdomBlockId = jotai.atom((get) => {
97 const blockData = get(this.blockAtom);
98 return blockData?.meta?.["term:vdomblockid"];
99 });
100 this.vdomToolbarBlockId = jotai.atom((get) => {
101 const blockData = get(this.blockAtom);
102 return blockData?.meta?.["term:vdomtoolbarblockid"];
103 });

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected