UNPKG

@synerty/vortexjs

Version:

Custom observable data serialisation and routing based on Angular 2+

74 lines (73 loc) 2.87 kB
import { BehaviorSubject, Observable } from "rxjs"; import { TupleSelector } from "../TupleSelector"; import { NgOnDestroyEventI } from "../../util/NgLifeCycleEvents"; import { FormGroup } from "@angular/forms"; import { TupleDataLoaderTupleABC } from "./TupleDataLoaderTupleABC"; export declare class TupleDataNotValidError extends Error { constructor(message?: string); } export declare class TupleDataLoaderDelegate<TupleType extends TupleDataLoaderTupleABC> { private lifeCycleEvents; private userUuid$; readonly ANIMATION_WAIT_TIME_MS = 400; /** Loading indicators **/ readonly loading$: BehaviorSubject<boolean>; readonly storing$: BehaviorSubject<boolean>; readonly deleting$: BehaviorSubject<boolean>; readonly ready$: BehaviorSubject<boolean>; readonly data$: BehaviorSubject<TupleType>; readonly selector$: BehaviorSubject<TupleSelector>; readonly uuid: string; readonly dataLocked$: BehaviorSubject<boolean>; readonly lockExpires$: BehaviorSubject<Date>; /** * Returns an observable of boolean indicating if data has been deleted. * * @return {Observable<boolean>} An observable that emits * a boolean value indicating if data has been deleted. */ get dataDeleted$(): Observable<void>; private _dataDeletedSubject; private readonly formGroupDirty$; readonly dataDirtyOrWeHaveLock$: BehaviorSubject<boolean>; private _dataLoader; readonly formGroup$: BehaviorSubject<FormGroup<any>>; private registeredName; constructor(lifeCycleEvents: NgOnDestroyEventI, userUuid$: BehaviorSubject<string>); private synchroniseFormGroupToDataTuple; private animationDelay; private resetFormGroupDirty; private setFormGroupDirty; private get formGroupDirty(); private resetDataDirtyOrWeHaveLock; private setDataDirtyOrWeHaveLock; get dataLocked(): boolean; get dataDirtyOrWeHaveLock(): boolean; get selector(): TupleSelector | null; private get formGroup(); private set ready(value); private set storing(value); private set loading(value); private set deleting(value); get data(): TupleType; set data(value: TupleType); private setDataLoader; private processDataUpdate; private processLockStatus; /** * Validates the form and throws an error if it is * incomplete or contains errors. * * @throws {TupleDataNotValidError} If the form is incomplete * or contains errors. * * @return {void} */ validateForm(): void; create(withAnimationDelay?: boolean): Promise<void>; store(withAnimationDelay?: boolean): Promise<void>; load(withAnimationDelay?: boolean): Promise<void>; revert(withAnimationDelay?: boolean): Promise<void>; delete(withAnimationDelay?: boolean): Promise<void>; private lockForEditing; }