import { EventEmitter, Injector } from "@angular/core"; import { Http } from "@angular/http"; import { Observable } from 'rxjs/Rx'; import { IActionInfo, IDataStructure, IEntityDataService, IComposableFilter, IEmptyConstruct } from "./../interfaces/index"; import { IFieldFilter, ChangesCommit, DataChanged, EntityWithTotalCount } from "./../interfaces/index"; import { ErrorInCommand, DataStructureWithClaims } from "./../models/index"; import { Message } from 'primeng/primeng'; /** * Local storage service * @class * @classdesc Data access layer. */ export declare class LocalStorageService implements IEntityDataService { private injector; private _http; /** Data container */ data: Array; /** An EventEmitter to listen to change events from server*/ dataObserver: EventEmitter; /** An EventEmitter to listen to error events from server*/ errorObserver: EventEmitter; /** The changed stream for request action */ changesStream: Observable; /** Them dummy instances of entity*/ protected _dummyEntityInstances: Array; /** The entity counter */ protected entCounter: number; private _loadedServerStorage; browseFieldRemover(key: string, value: any): any; /** * Find instances of DataStructure in dummy data * @param DataStructure * @returns DataStructureWithClaims */ private getDummyWithClaims(DataStructure); /** * Find instances of DataStructure in dummy data * @param DataStructure Type of data * @returns Promise */ private getDummyWithClaim(DataStructure); /** * create Entity Instance * @param DataStructure Type of data * @param entity Data entity * @returns DataStructure */ private createEntityInstance(DataStructure, entity); /** * get JSON data of Storage * @returns JSON.stringify */ private getWholeStorageAsJSON(); /** * Find instances of DataStructure * @param DataStructure Type of data * @returns instances of DataStructure */ getDummy(DataStructure: IEmptyConstruct): IDataStructure; /** * Check permission action of User * @param DataStructure Type of data * @param permissionRight Permission right * @returns Promise TRUE: Has permission; FALSE: None */ userHasPermission(DataStructure: IEmptyConstruct, permissionRight: string): Promise; /** * register new Changes Stream * @param newStream Observable */ registerNewChangesStream(newStream: Observable): void; /** * Get Module Name * @param DataStructure Type of data * @returns ModuleName() */ getModuleName(DataStructure: IEmptyConstruct): string; /** * Get Entity Name * @param DataStructure Type of data * @returns EntityName(); */ getEntityName(DataStructure: IEmptyConstruct): string; /** * Get Entity NameID * @param DataStructure Type of data * @returns ModuleName() + '_' + EntityName(); */ getEntityNameID(DataStructure: IEmptyConstruct): string; /** * To JSON format * @param entity IDataStructure * @returns JSON data */ entityToJSON(entity: IDataStructure): string; /** * get Entity from instances dummy * @param DataStructure Type of data * @param entity Data entity * @returns IDataStructure */ fromRawEntity(DataStructure: IEmptyConstruct, entity: IDataStructure): IDataStructure; /** * Represents a LocalStorage service. * @constructor * @param injector Injector * @param _http Http */ constructor(injector: Injector, _http: Http); /** * Find data by Filter condition array * @param DataStructure Type of data * @param filters Filter condition array * @returns Array */ getCurrentLibrary(DataStructure: IEmptyConstruct, filters?: IFieldFilter[]): Array; /** * Find all entity (any type) by ID * @param ID ID of Entity */ fetchEntityWithID(ID: string): void; /** * Find entity by ID * @param DataStructure Type of data * @param ID ID of Entity * @param serverReload * @returns Promise */ fetchEntity(DataStructure: IEmptyConstruct, id: string, serverReload?: boolean): Promise; /** * Reload data (push entity result to data variable) * @param DataStructure Type of data * @param loadDataID ID of data * @returns load data ID */ reloadData(DataStructure: IEmptyConstruct, loadDataID?: string): string; /** * Create entity * @param DataStructure Type of data * @param entity Data entity * @param emitID emit event ID */ createEntity(DataStructure: IEmptyConstruct, entity: IDataStructure, emitID?: string): void; /** * Update entity * @param DataStructure Type of data * @param entity Data entity * @param emitID emit event ID */ updateEntity(DataStructure: IEmptyConstruct, entity: IDataStructure, emitID?: string): void; /** * Delete entity * @param DataStructure Type of data * @param entity Data entity */ deleteEntity(DataStructure: IEmptyConstruct, entity: IDataStructure): void; /** * Load data * @param DataStructure Type of data * @param filters Filter condition array * @param predefinedFilters * @param sort Sort column * @param top Litmit row * @param skip Number row per page * @returns Promise */ loadData(DataStructure: IEmptyConstruct, filters: IFieldFilter[], predefinedFilters?: IComposableFilter[], sort?: string, top?: number, skip?: number): Promise; /** * Get Find Entity * @param DataStructure Type of data * @param filters Filter condition array * @param predefinedFilters * @param sort Sort column * @param top Litmit row * @param skip Number row per page */ findEntity(DataStructure: IEmptyConstruct, route: string, filters?: IFieldFilter[], top?: number, skip?: number): Promise; /** * Execute On entity * @param DataStructure IEmptyConstruct * @param actionName Action method name * @param entity Data entity * @param successMessage Success message * @param emitID Emit event ID */ executeOnEntityList(DataStructure: IEmptyConstruct, actionName: string, entity: IDataStructure[], successMessage: Message, emitID?: string): void; /** * Execute On entity * @param DataStructure IEmptyConstruct * @param actionName Action method name * @param entity Data entity * @param successMessage Success message * @param emitID Emit event ID */ executeOnEntity(DataStructure: IEmptyConstruct, actionName: string, entity: IDataStructure, successMessage: Message, emitID?: string): void; /** * Get Single Entity * @param DataStructure * @param ID The identifier. */ getSingleByID(DataStructure: IEmptyConstruct, ID: string): Promise; /** * Get Single Entity * @param DataStructure * @param route * @param filters */ getSingle(DataStructure: IEmptyConstruct, route: string, filters?: IFieldFilter[]): Promise; /** * invoke action * @param ActionInfo * @param data * @returns Promise */ invokeAction(ActionInfo: IActionInfo, data: any): Promise; private sortJS(property); getCurrentPrincipal(): Promise; }