@difizen/mana-core
Version:
66 lines • 3.39 kB
TypeScript
import type { MaybePromise, Event, Newable, Disposable } from '@difizen/mana-common';
import { DisposableCollection } from '@difizen/mana-common';
import { Emitter } from '@difizen/mana-common';
import type { Contribution } from '@difizen/mana-syringe';
import { DebugService } from '../common/debug';
import type { ManaContext } from '../module';
import type { ViewPreference, View } from './view-protocol';
import type { SlotView } from './view-protocol';
import { ViewFactory, ViewPreferenceContribution } from './view-protocol';
export interface ViewCreateOptions {
factoryId: string;
options?: any;
}
export interface ViewEvent {
readonly view: View;
readonly factoryId: string;
}
/**
* 管理视图
* 为视图保存创建条件
*/
export declare class ViewManager implements Disposable {
root?: View;
protected factoryMap?: Map<string, ViewFactory> | undefined;
protected factories: string[];
protected preferenceMap?: Map<string, ViewPreference> | undefined;
protected preferences: string[];
protected readonly viewContextMap: Map<View, ManaContext>;
protected readonly viewFactoryMap: Map<View, string>;
protected readonly views: Map<string, View>;
protected readonly viewPromises: Map<string, MaybePromise<View>>;
protected readonly pendingViewPromises: Map<string, MaybePromise<View>>;
protected readonly onWillCreateViewEmitter: Emitter<ViewEvent>;
readonly onWillCreateView: Event<ViewEvent>;
protected readonly onDidCreateViewEmitter: Emitter<ViewEvent>;
readonly onDidCreateView: Event<ViewEvent>;
readonly toDispose: DisposableCollection;
protected readonly factoryProvider: Contribution.Provider<ViewFactory>;
protected readonly debugService: DebugService;
protected readonly preferenceProvider: Contribution.Provider<ViewPreferenceContribution>;
disposed?: boolean | undefined;
constructor(factoryProvider: Contribution.Provider<ViewFactory>, debugService: DebugService, preferenceProvider: Contribution.Provider<ViewPreferenceContribution>);
dispose(): void;
getFactoryMap(): Map<string, ViewFactory>;
toFactoryId(view: Newable<View> | string): string;
getPreferenceMap(): Map<string, ViewPreference>;
toKey(options: ViewCreateOptions): string;
fromKey(key: string): ViewCreateOptions;
getView<T extends View>(factoryOrView: string | Newable<View>, options?: any): MaybePromise<T> | undefined;
getViewByKey(key: string): MaybePromise<View> | undefined;
getViews<T extends View>(factoryId: string): Promise<T[]>;
protected doGetView<T extends View>(key: string): MaybePromise<T> | undefined;
getFactory(view: Newable<View> | Newable<SlotView>): ViewFactory | undefined;
getPrefer(factoryId: string): ViewPreference | undefined;
getFactoryIdByView(view: View): string | undefined;
getViewOption(view: View): any;
setViewContext(view: View, context: ManaContext): void;
getViewContext(view: View): ManaContext;
removeViewContext(view: View): void;
getViewKey(view: View): string | undefined;
protected mergeViewOption(options?: Record<any, any>, preference?: ViewPreference): {
[x: string]: any;
} | undefined;
getOrCreateView<T extends View, U extends Record<any, any> = any>(factoryOrView: string | Newable<T>, options?: U): Promise<T>;
}
//# sourceMappingURL=view-manager.d.ts.map