UNPKG

@difizen/mana-core

Version:

66 lines 3.39 kB
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