import { EventEmitter } from '@angular/core'; import { BaseObject } from '../helpers/baseobject'; import { ServiceBase } from '../services/base.service'; import { IServiceManagerBase } from '../interfaces/servicemanager.interface'; import { CallerComponent } from '../helpers/caller.component'; import { IdentityValue } from '../helpers/identityvalue'; import { CacheDataContainer } from '../helpers/cachecontainer'; import { ServerMethod } from '../helpers/servermethod'; import { IServiceOptions } from '../interfaces/serviceoptions.interface'; import { IFilter } from '../helpers/filtrable'; import { Router } from '@angular/router'; import { CrudAction, DataType, DeletionMode, ModelState, NavigationMode, PushMode } from '../helpers/enums'; import { ServiceRelationship } from '../services/relationship.service'; import { RequestSetting, ResponseData, ResponseSetting } from '../helpers/response'; import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject'; export declare class ServiceManagerBase extends ServiceBase implements Partial> { modelType?: typeof BaseObject | undefined; pageResultType?: typeof BaseObject | undefined; private _state; private _defaultModelValue; private _settingCanBeLoaded; readonly MODEL_STATE: typeof ModelState; readonly CRUD_ACTION: typeof CrudAction; private readonly _instanceId; private _requestWrapperProvider; cacheData: CacheDataContainer; identityPropertyName: keyof TModel | undefined; resourceName: string | undefined; router: Router; relationships: ServiceRelationship>; loadEmitter: EventEmitter; emitters: { add: EventEmitter; added: EventEmitter; edit: EventEmitter; edited: EventEmitter; delete: EventEmitter; deleted: EventEmitter; stateChange: EventEmitter; cancel: EventEmitter; requeryCompleted: EventEmitter | null>; }; data: Partial[]; rowsPerPage: number[]; saveAndNew: boolean; hasComponentManager: boolean; activeNavigation: NavigationMode; routingUrl: string; crudMode: 'server' | 'local'; dataKeyModel: string; /** *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; skipValidationModelOnce: boolean; identityPropertyType: DataType; deletionMode: DeletionMode; pushMode: PushMode; requestSetting: RequestSetting; responseSetting: ResponseSetting; serverMethods: ServerMethod; showSelection: boolean; currentSubject: BehaviorSubject | null>; modelSubject: BehaviorSubject | null>; deleteRequestClass: 'Identity' | 'Model'; filter: IFilter; constructor(resourceUrl: string | typeof BaseObject, modelType?: typeof BaseObject | undefined, pageResultType?: typeof BaseObject | undefined); set identityValue(value: number | string); get identityValue(): number | string; set current(value: Partial | null); get current(): Partial | null; set model(value: Partial | null); get model(): Partial | null; set skipValidationModel(value: boolean); get state(): ModelState; get instanceId(): string; get isAdding(): boolean; get isEditing(): boolean; /** *Crea el objeto que se enviara al servidor. Dependiendo del estado de servicio *validara si la peticion incluye informacion adicional. *Se ejecuta siempre cuando el estado del servicio es add, edit, delete. * * @type {RequestExtra} * @memberof ServiceManagerBase */ protected requestWrapperStrategy: (model: any, wrapper: any) => any; /** *Esta funcion facilitara el trabajo con el serviceManager sin la necesidad de suscribir en una clase hija. se ejecuta despues de recibir la respuesta del servidor. * * @protected * @param {ModelState} state * @param {ResponseData} response * @memberof ServiceManagerBase */ protected afterResponse(state: ModelState, response?: Partial>): void; protected updateSettings(responseSetting: Partial): void; protected updateModel(responseModel?: Partial> | Partial): void; setOptions(options: Partial>): void; get newModelInstance(): Partial; getDefaultModel(externalModel?: Partial): Partial; getSubscription(requestSetting: Partial, callback?: (response: Partial>>) => void): void; deleteSubscription(callback?: (response: Partial>) => void): void; addSubscription(callback?: (response: Partial>) => void): void; editSubscription(callback?: (response: Partial>) => void): void; getSettingSubscription(requestSetting?: Partial, callback?: (response: Partial>) => void): void; requerySubscription(identity: IdentityValue, callback?: (response: Partial>) => void): void; setModalFilter(): void; set setDataSource(data: Partial[] | undefined); load(requestSetting?: Partial): void; isModelAttached(model: Partial): boolean; add(model?: Partial): void; edit(model: Partial, afterSetCurrent?: Function): void; delete(model: Partial): void; erase(model: Partial | null): void; localPost(modelOrResponse?: Partial> | Partial | null): void; post(): void; cancel(): void; refresh(): void; setCurrent(currentModel: Partial, callback?: Function): void; updateCurrent(currentModel: Partial | null): void; stateChange(state: ModelState, curState?: ModelState): void; afterPush(): void; push(current: Partial | null): Partial | null; trackByFn(model: Partial): any; updatePageSize(size: number): void; loadSettings(requestSettings?: Partial): void; } /** * * * @export * @class ServiceManager * @extends {ServiceManagerBase} * @template TModel */ export declare class ServiceManager extends ServiceManagerBase { modelType?: typeof BaseObject | undefined; constructor(resourceUrl: string | typeof BaseObject, modelType?: typeof BaseObject | undefined); }