import { HttpClient } from "@angular/common/http"; import { IServiceOptions, IServiceMethods, IServiceDataLoader } from "./interfaces/utils.interface"; import { ResponseData, RequestSetting } from "./helpers/response"; import { ModelState, DeletionMode, CrudAction, DataType, PushMode, EntityState, SaveMode } from "./helpers/enums"; import { Injector, EventEmitter } from "@angular/core"; import { CrudService } from "./components/crud/crud.service"; import { BlockerManager } from "./helpers/modal-option"; import { ResponseSetting } from "./helpers/response"; import { Filter } from "./helpers/filtrable"; import { ServerMethods } from "./helpers/server-methods"; import { MessageService } from "primeng/api"; import { Observable } from "rxjs/internal/Observable"; import { Subscription } from "rxjs/internal/Subscription"; import { ConfigService } from "./services/config.service"; import { ComponentManager } from "./component-manager"; export declare class BaseObject { } export declare class DataService { readonly GET: string; readonly POST: string; readonly PUT: string; readonly DELETE: string; readonly PATCH: string; onError: EventEmitter; onRequest: EventEmitter; onResponse: EventEmitter; injector: Injector; http: HttpClient; constructor(); httpGet(url: string, params?: any, callback?: Function): Observable; httpPost(url: string, body?: any, callback?: any | Function): Observable; httpPut(url: string, body?: any, callback?: any | Function): Observable; httpPatch(url: string, body?: any, callback?: any | Function): Observable; httpDelete(url: string, body?: any, callback?: any | Function): Observable; httpVerb(verb: string, url: string, body?: any, callback?: any | Function): Observable; } export declare class ServiceBase extends DataService { resourceUrl?: string; private _waiting; private _subscriptions; protected canMakeRequestToServer: boolean; busy: boolean; configService: ConfigService; toastr: MessageService; crudService: CrudService; blocker: BlockerManager; waiting: boolean; readonly urlResource: string; readonly url: string; constructor(resourceUrl?: string); getMethod(controllerMethod: string, params?: any, callback?: Function): Observable; postMethod(controllerMethod: string, body?: any, callback?: any | Function): Observable; putMethod(controllerMethod: string, body?: any, callback?: any | Function): Observable; patchMethod(controllerMethod: string, body?: any, callback?: any | Function): Observable; deleteMethod(controllerMethod: string, body?: any, callback?: any | Function): Observable; Error(error: string): void; Request(): void; Response(method: string): void; hasSubscriptions(): boolean; subscribe(): void; unsubscribe(): void; validateSubscriptions(): void; } export declare class ServiceManager extends ServiceBase implements IServiceDataLoader { private _state; private _defaultModelValue; private _prior; private _settingCanBeLoaded; private _saveMode; readonly MODEL_STATE: typeof ModelState; readonly CRUD_ACTION: typeof CrudAction; loadEmitter: EventEmitter<{}>; addEmitter: EventEmitter<{}>; addedEmitter: EventEmitter<{}>; editEmitter: EventEmitter<{}>; editedEmitter: EventEmitter<{}>; deleteEmitter: EventEmitter<{}>; deletedEmitter: EventEmitter<{}>; stateChangeEmitter: EventEmitter<{}>; cancelEmitter: EventEmitter<{}>; requeryCompleteEmitter: EventEmitter<{}>; model: T; current: T; cacheData: any; identityPropertyName: string; resourceName: string; changeTracker: SingleChangeTracker; componentManager: ComponentManager; data: T[]; rowsPerPage: number[]; saveAndNew: boolean; /** *Especifica el lugar desde donde es invocado el ServiceManager y se ejecuta en el siguiente orden: manager -> list: al hacer un refresh en el explorador desde el ListManager manager -> form: al hacer un refresh en el explorador desde el FormManager * * @type {('manager' | 'list' | 'form')} * @memberof ServiceManager */ callerComponent: CallerComponent; saveAndKeep: boolean; requeryOnEdit: boolean; loadingOnAdd: boolean; loadingOnEdit: boolean; loadingOnDelete: boolean; loadingOnRequery: boolean; loadingOnGet: boolean; skipLoadingOnGetOnce: boolean; identityPropertyType: DataType; deletionMode: DeletionMode; pushMode: PushMode; requestSetting: RequestSetting; responseSetting: ResponseSetting; serverMethods: ServerMethods; routingUrl: string; Filter: Filter; setOptions(options: IServiceOptions): void; identityValue: number | string; readonly state: ModelState; constructor(resourceUrl: string | typeof BaseObject, cls?: typeof BaseObject); getDefaultModel(): T; getSubscription(requestSetting: RequestSetting, callback?: Function): Observable; deleteSubscription(callback?: Function): Observable; addSubscription(callback?: Function): Observable; editSubscription(callback?: Function): Observable; getSettingSubscription(requestSetting?: RequestSetting, callback?: Function): Observable; requerySubscription(identity: any, callback?: Function): Observable; setModalFilter(): void; load(requestSetting?: RequestSetting): void; add(model?: T): void; edit(model?: T): void; delete(model: T): void; erase(model: T): void; localPost(model?: ResponseData | T): void; post(): void; cancel(): void; refresh(skipLoadingOnGetOnce?: boolean): void; setCurrent(currentModel: T, callback?: Function): void; updateCurrent(currentModel: T): void; stateChange(state: ModelState, curState?: ModelState): void; protected _push(current: T): void; trackByFn(index: number, model: T): any; } export declare class ServiceSubscriber { private _suscriptions; private _dataService; private _methodsHost; private _callback; constructor(serviceManager: ServiceManager, methodsHost?: IServiceMethods); callBack(callback: Function): void; private _callbackArgs; addSubscription(subscription: Subscription): void; subscribe(): void; unsubscribe(): void; } export declare class SingleModelEntry { private _oldMark; private _changeTracker; Model: any; constructor(model: any, changeTracker?: SingleChangeTracker); state: EntityState; attach(mode?: SaveMode): void; saveChanges(mode?: SaveMode): void; reset(): void; canBeHardDeleted(): boolean; markAsModified(): void; markAsDeleted(): void; markAsAdded(): void; hasChanges(): boolean; touchable(): boolean; readonly identityValue: number; } export declare class SingleChangeTracker { identityPropertyName: string; constructor(identityPropertyName: string); entry(model: any): SingleModelEntry; } export declare class CallerComponent { host: "manager" | "list" | "form"; state: "initializing" | "destroying"; resetState(): void; }