packages/shell/src/model/editor-view.ts (29 lines of code) (raw):
import { editorViewSymbol, pluginContextSymbol } from '../symbols';
import { IPublicModelPluginContext } from '@alilc/lowcode-types';
import { IViewContext } from '@alilc/lowcode-workspace';
export class EditorView {
[editorViewSymbol]: IViewContext;
[pluginContextSymbol]: IPublicModelPluginContext;
constructor(editorView: IViewContext) {
this[editorViewSymbol] = editorView;
this[pluginContextSymbol] = this[editorViewSymbol].innerPlugins._getLowCodePluginContext({
pluginName: editorView.editorWindow + editorView.viewName,
});
}
toProxy() {
return new Proxy(this, {
get(target, prop, receiver) {
if ((target[pluginContextSymbol] as any)[prop as string]) {
return Reflect.get(target[pluginContextSymbol], prop, receiver);
}
return Reflect.get(target, prop, receiver);
},
});
}
get viewName() {
return this[editorViewSymbol].viewName;
}
get viewType() {
return this[editorViewSymbol].viewType;
}
}