import { FormGroup } from "@angular/forms"; import { INgxPrimengForm, INgxPrimengFormResult } from "ngx-primeng-form"; import { INgxGridColumn, INgxGridFilter, INgxGridResult } from "ngx-primeng-grid"; import { INgxFilter, INgxResult } from "../../core/_interfaces/iresult"; import { IBreadcrumb } from "../../ngx-wrapper-shared/models/breadcrumb"; import { INgxCrudAction } from "./_crud-manage"; export interface INgxCrudLayout { api: INgxCrudLayoutApiConfig; setting: INgxCrudLayoutSettingConfig; columns: INgxGridColumn[]; form: INgxCrudLayoutFormConfig; } export interface INgxCrudLayoutApiConfig { search: string; manage: string; delete: string; changeStatus: string; command?: (path: string) => string; } export declare enum NgxCrudLayoutSetting_ManageConfig_Mode { modal = "modal", custom = "custom" } export interface INgxCrudLayoutSettingManageActionConfig { key: string; label: string; icon: string; styleClass: string; mode: NgxCrudLayoutSetting_ManageConfig_Mode; modalConfig: { title: string; width: string; }; } export interface INgxCrudLayoutSettingConfig { pageTitle: string; actionConfig: { enable?: boolean; actions: INgxCrudLayoutSettingManageActionConfig[]; onAction?: (action: INgxCrudLayoutSettingManageActionConfig) => void; }; gridConfig: { pk?: string; layoutId?: string; enableSearch?: boolean; sortField?: string; sortOrder?: number; perPage?: number; action?: { filter?: INgxFilter; loadResult?: (callback: (result: INgxGridResult) => void) => void; onFilterChanged?: (filter: INgxGridFilter) => void; customAction: { invoke?: (actionName: string, data: any) => void; invoked?: (actionName: string, data: any) => void; }; }; breadcrumbs?: IBreadcrumb[]; }; } export interface INgxCrudLayoutFormConfig { controls: INgxPrimengForm[]; controlResult?: INgxPrimengFormResult; action: { onPatchValue?: (formGroup: FormGroup, formItems: INgxPrimengForm[], data: any) => void; onPrepareValue?: (formGroup: FormGroup, formItems: INgxPrimengForm[], data: any) => void; onExecute?: (formValue: any, action: INgxCrudAction, data: any, callback: (result: INgxResult) => void) => void; }; actions: INgxCrudAction[]; }