@synerty/vortexjs
Version:
Custom observable data serialisation and routing based on Angular 2+
74 lines (73 loc) • 2.87 kB
TypeScript
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;
}