UNPKG

@difizen/mana-core

Version:

57 lines 2.66 kB
import type { Newable } from '@difizen/mana-common'; import { Emitter } from '@difizen/mana-common'; import { Deferred } from '@difizen/mana-common'; import { Disposable } from '@difizen/mana-common'; import type { Contribution } from '@difizen/mana-syringe'; import { DebugService } from '../common/debug'; import { ViewManager } from './view-manager'; import type { View } from './view-protocol'; import type { SlotPreference, ViewOpenOption } from './view-protocol'; import { SlotPreferenceContribution, SlotView } from './view-protocol'; interface ViewAddArgs { view?: View; slot: string; option?: ViewOpenOption; } interface SlotSetArgs { view?: View; slot: string; } export declare class SlotViewManager { protected preferences: Map<string, SlotPreference>; protected componentPreferences: Map<string, SlotPreference>; protected slotRenderingDeferred: Map<string, Deferred<void>>; protected onViewAddedEmitter: Emitter<ViewAddArgs>; protected onSlotChangedEmitter: Emitter<SlotSetArgs>; get onViewAdded(): import("@difizen/mana-common").Event<ViewAddArgs>; get onSlotChanged(): import("@difizen/mana-common").Event<SlotSetArgs>; /** * slot -> slotview */ slotViewMap: Map<string, View>; /** * view -> child slotview */ slotChildrenMap: Map<View, string[]>; protected readonly preferenceProvider: Contribution.Provider<SlotPreferenceContribution>; protected readonly debugService: DebugService; protected readonly viewManager: ViewManager; constructor(preferenceProvider: Contribution.Provider<SlotPreferenceContribution>, debugService: DebugService, viewManager: ViewManager); protected setPreferencesFromContribution(): void; protected getPreferences(): Map<string, SlotPreference>; setSlotPreference(slot: string, preference: SlotPreference): void; setComponentSlotPreference(slot: string, preference: SlotPreference): void; protected waitSlotRendering(slot: string): Promise<void>; slotRendering(slot: string): void; getOrCreateSlotView(slot: string, defaultSlotView?: Newable<View>): Promise<SlotView | View>; getSlotView(slot: string): View | undefined; setSlotView(slot: string, view: View): Disposable; addView(view: View, slot: string, option?: ViewOpenOption): Promise<void>; removeView(view: View, slot: string): Promise<void>; hasSlot(slot: string): boolean; getSlotChildren(view: View): string[] | undefined; addSlotToView(slot: string, slotView: SlotView): void; removeSlotFromView(slot: string, slotView: SlotView): void; } export {}; //# sourceMappingURL=slot-view-manager.d.ts.map