ngx-diagrams
Version:
> Light Weight, Modular, Typed Diagram Engine for Angular
34 lines (33 loc) • 1.62 kB
TypeScript
import { BehaviorSubject, MonoTypeOperatorFunction, Observable, OperatorFunction } from 'rxjs';
import { BaseEntity } from '../base.entity';
import { ID } from '../utils';
import { EntityMap, Entries, HashMap } from '../utils/types';
export declare class ValueState<T> {
protected readonly stream$: BehaviorSubject<T>;
readonly value$: Observable<T>;
constructor(value?: T, operator?: OperatorFunction<any, any>);
get value(): T;
set(value: T): ValueState<T>;
emit(): void;
select(): Observable<T>;
select(project: (value: T) => T): Observable<T>;
select<R>(project: (value: T) => R): Observable<R>;
}
export declare function createValueState<T>(value: T, operator?: OperatorFunction<any, any>): ValueState<T>;
export declare class EntityState<T extends BaseEntity> extends ValueState<EntityMap<T>> {
protected stream$: BehaviorSubject<EntityMap<T>>;
value$: Observable<EntityMap<T>>;
constructor(value?: EntityMap<T>, entityPipe?: MonoTypeOperatorFunction<EntityMap<T>>);
destroy(): void;
clear(destroy?: boolean): this;
get(id: ID): T;
has(id: ID): boolean;
add(entity: T): EntityState<T>;
addMany(entities: T[]): EntityState<T>;
remove(id: ID, destroy?: boolean): EntityState<T>;
array(): T[];
array$(): Observable<T[]>;
forEach(cb: (value: T, key: string, map: EntityMap<T>) => void): void;
map<R = any>(cb: (value: T, index: number, array: T[]) => R): R[];
}
export declare function createEntityState<T extends BaseEntity>(value: HashMap<T> | Entries<T>, entityPipe: MonoTypeOperatorFunction<Map<ID, T>>): EntityState<T>;