import { DeletionMode, DataType, PushMode, EntityState, ModelState } from "../helpers/enums"; import { NgForm } from "@angular/forms"; import { ServiceManager } from "../service-manager"; import { EventEmitter } from "@angular/core"; import { RequestSetting } from "../helpers/response"; import { ServerMethods } from "../helpers/server-methods"; export interface IFormManager { form: NgForm; service: ServiceManager; formTitle: string; } export interface IListManager { edit(model: T): any; delete(model: T): any; refresh(): any; showPagination: boolean; showToolbar: boolean; listTitle: string; } export interface ICacheDataProvider { disableInitialization?: boolean; providers: any[]; } export interface IServiceOptions { saveAndNew?: boolean; loadingOnRequery?: boolean; requeryOnEdit?: boolean; loadingOnAdd?: boolean; loadingOnEdit?: boolean; loadingOnDelete?: boolean; saveAndKeep?: boolean; identityPropertyName?: string; deletionMode?: DeletionMode; identityPropertyType?: DataType; pushMode?: PushMode; enableFilter?: boolean; loadCRUD?: boolean; cacheDataProvider?: ICacheDataProvider; serverMethods?: IServerMethods; loadingOnGet?: boolean; defaultModifiedRowState?: EntityState; skipRequeryOnce?: boolean; } export interface IManagerOptions { modalContent?: any; askBeforeDelete?: boolean; scrollTopOnInit?: boolean; showSearchBar?: boolean; dataInitializationDelay?: boolean; loadDataOnInit?: boolean; disableRoutingAndModal?: boolean; skipLocationChange?: boolean; } export interface IFormTemplate { title?: string; icon?: string; showOkButton?: boolean; okButtonLabel?: string; okButtonIcon?: string; okButtonColor?: string; okAndNew?: boolean; showOkAndNew?: boolean; okAndNewLabel?: string; showCancelButton?: boolean; cancelButtonLabel?: string; cancelButtonIcon?: string; cancelButtonColor?: string; showHeader?: boolean; showCloseButton?: boolean; adding?: boolean; refreshCacheDataIfNotOwner?: boolean; keyboard?: boolean; okKeyCode?: number; cancelKeyCode?: number; } export interface IPaginate { pgRowsPerPage?: Array; pgMaxSize?: number; pgBoundaryLinks?: boolean; pgPreviousText?: string; pgNextText?: string; pgFirstText?: string; pgLastText?: string; pgShowTotalRows?: boolean; } export interface IServiceMethods { onLoad(args?: any): any; onModal(args: any): any; onAdd(args?: any): any; onAdded(args?: any): any; onEdit(args?: any): any; onEdited(args?: any): any; onDelete(args: any): any; onDeleted(args: any): any; onStateChange(state?: any): any; onSettingRefreshed(args?: any): any; onCancel(args: any): any; } export interface ISearchHost { showSearchBar: boolean; serviceManager?: ServiceManager; onInitialize: EventEmitter; onDestroy: EventEmitter; } export interface IServerMethods { ADD?: string; GET?: string; DELETE?: string; EDIT?: string; GET_SETTING?: string; REQUERY?: string; } export interface IServiceDataLoader { loadEmitter: EventEmitter; data: Array; current: T; identityPropertyName: string; serverMethods: ServerMethods; requestSetting: RequestSetting; rowsPerPage: Array; state: ModelState; loadingOnGet: boolean; load(requestSetting?: RequestSetting): any; refresh(): any; }