mobx-view-model
Version:
MobX ViewModel power for ReactJS
48 lines • 2.96 kB
TypeScript
import { ViewModelsConfig } from '../config/index.js';
import { VMLazyComponent, VMComponent } from '../hoc/index.js';
import { Class, Maybe } from '../utils/types.js';
import { ViewModelStore } from './view-model.store.js';
import { ViewModelCreateConfig, ViewModelGenerateIdConfig, ViewModelLookup, ViewModelStoreConfig } from './view-model.store.types.js';
import { AnyViewModel, AnyViewModelSimple } from './view-model.types.js';
export declare class ViewModelStoreBase<VMBase extends AnyViewModel = AnyViewModel> implements ViewModelStore<VMBase> {
protected config?: ViewModelStoreConfig | undefined;
protected viewModels: Map<string, VMBase | AnyViewModelSimple>;
protected linkedComponentVMClasses: Map<VMComponent<VMBase, any>, Class<VMBase>>;
protected viewModelIdsByClasses: Map<Class<VMBase> | Class<AnyViewModelSimple>, string[]>;
protected instanceAttachedCount: Map<string, number>;
/**
* It is temp heap which is needed to get access to view model instance before all initializations happens
*/
protected viewModelsTempHeap: Map<string, VMBase>;
/**
* Views waiting for mount
*/
protected mountingViews: Set<string>;
/**
* Views waiting for unmount
*/
protected unmountingViews: Set<string>;
protected vmConfig: ViewModelsConfig;
constructor(config?: ViewModelStoreConfig | undefined);
get mountedViewsCount(): number;
processCreateConfig<VM extends VMBase>(config: ViewModelCreateConfig<VM>): void;
createViewModel<VM extends VMBase>(config: ViewModelCreateConfig<VM>): VM;
generateViewModelId<VM extends VMBase>(config: ViewModelGenerateIdConfig<VM>): string;
linkComponents(VM: Class<VMBase>, ...components: Maybe<VMComponent<VMBase, any> | VMLazyComponent<VMBase, any>>[]): void;
unlinkComponents(...components: Maybe<VMComponent<VMBase, any> | VMLazyComponent<VMBase, any>>[]): void;
getIds<T extends VMBase | AnyViewModelSimple>(vmLookup: Maybe<ViewModelLookup<T>>): string[];
getId<T extends VMBase | AnyViewModelSimple>(vmLookup: Maybe<ViewModelLookup<T>>): string | null;
has<T extends VMBase | AnyViewModelSimple>(vmLookup: Maybe<ViewModelLookup<T>>): boolean;
get<T extends VMBase | AnyViewModelSimple>(vmLookup: Maybe<ViewModelLookup<T>>): T | null;
getAll<T extends VMBase | AnyViewModelSimple>(vmLookup: Maybe<ViewModelLookup<T>>): T[];
mount(model: VMBase | AnyViewModelSimple): Promise<void>;
unmount(model: VMBase | AnyViewModelSimple): Promise<void>;
protected attachVMConstructor(model: VMBase | AnyViewModelSimple): void;
protected dettachVMConstructor(model: VMBase | AnyViewModelSimple): void;
markToBeAttached(model: VMBase | AnyViewModelSimple): void;
attach(model: VMBase | AnyViewModelSimple): Promise<void>;
detach(id: string): Promise<void>;
isAbleToRenderView(id: Maybe<string>): boolean;
clean(): void;
}
//# sourceMappingURL=view-model.store.base.d.ts.map