import dayjs from 'dayjs'; import { ComponentType } from '@angular/cdk/portal'; import { InjectionToken } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { DateFilterFn } from '@angular/material/datepicker'; import { IAddress } from '../_shared/model/address'; import { UnitType } from '../common/uom/uom'; import { IMapPickerConfig } from '../controls/map/model'; import { ISelectApiLoader, ISelectDataLoader } from '../controls/select/model'; import { AddressEditFormItemComponent } from './templates/address/address.component'; import { ChipsEditFormItemComponent } from './templates/chips/chips.component'; import { DataLookupFormItemComponent } from './templates/data-lookup/data-lookup.component'; import { DateEditFormItemComponent } from './templates/date/date.component'; import { FileEditFormItemComponent } from './templates/file/file.component'; import { NumberEditFormItemComponent } from './templates/number/number.component'; import { PasswordEditFormItemComponent } from './templates/password/password.component'; import { StaticLookupEditFormItemComponent } from './templates/static-lookup/static-lookup.component'; import { EditFormTemplateBaseComponent } from './templates/template.base.component'; import { TextEditFormItemComponent } from './templates/text/text.component'; import { ToggleEditFormItemComponent } from './templates/toggle/toggle.component'; import { UomEditFormItemComponent } from './templates/uom/uom.component'; export declare const EDIT_FORM_ITEM_DATA: InjectionToken>; export declare class EditItemTemplateData> { item: T; formGroup: FormGroup; entity?: any; } export declare class VisibilityCondition { key: string; value: any; } export declare class EditFormItemsGroup { id: string; display: string; } export declare abstract class EditFormItem { path: string; title: string; defaultValue?: any; required?: boolean; pattern?: string; disableEdit?: boolean; forceDisableEdit?: boolean; flex?: string; visibleIf?: VisibilityCondition; hidden?: boolean; groupId?: string; valueChanges?: (value: any, form: FormGroup) => void; map?: (value: any) => any; abstract template: ComponentType>; constructor(init?: Partial>); parseToEntityValue(controlValue?: any): T | undefined; parseToEditFormValue(entityValue?: any): any; protected doParseToEntityValue(controlValue: any): T; protected doParseToEditFormValue(entityValue: any): any; } export declare class TextEditFormItem extends EditFormItem { template: typeof TextEditFormItemComponent; autoCapitalise?: boolean; constructor(init?: Partial); protected doParseToEntityValue(controlValue: any): string; } export declare class NumberEditFormItem extends EditFormItem { template: typeof NumberEditFormItemComponent; protected doParseToEntityValue(controlValue: any): number; } export declare class PasswordEditFormItem extends EditFormItem { template: typeof PasswordEditFormItemComponent; constructor(init?: Partial); hint?: string; } export declare class ChipsEditFormItem extends EditFormItem { template: typeof ChipsEditFormItemComponent; } export declare class AddressEditFormItem extends EditFormItem { template: typeof AddressEditFormItemComponent; mapPickerConfig?: IMapPickerConfig; constructor(init?: Partial); } export declare class ToggleEditFormItem extends EditFormItem { template: typeof ToggleEditFormItemComponent; } export declare class DateEditFormItem extends EditFormItem { template: typeof DateEditFormItemComponent; dateFilter?: DateFilterFn; constructor(init?: Partial); protected doParseToEntityValue(controlValue: any): number; protected doParseToEditFormValue(entityValue: any): any; } export declare class StaticLookupEditFormItem extends EditFormItem { template: typeof StaticLookupEditFormItemComponent; displayField: string; valueField?: string; bindToEnum?: any; refs?: any[]; constructor(init?: Partial); protected doParseToEntityValue(controlValue: any): any; } export declare class DataLookupEditFormItem extends EditFormItem { template: typeof DataLookupFormItemComponent; apiLoader?: ISelectApiLoader; dataLoader?: ISelectDataLoader; displayPaths: string[]; readonlyPaths: string[]; parentEditItem?: string; parentEditItemValuePath?: string; filterByParentPath?: string; enableSearch?: boolean; constructor(init?: Partial); } export declare class FileEditFormItem extends EditFormItem { template: typeof FileEditFormItemComponent; accept: string; constructor(init?: Partial); } export declare class UomEditFormItem extends EditFormItem { template: typeof UomEditFormItemComponent; unit: UnitType; constructor(init?: Partial); } export declare class EditFormCustomCommand { id: string; title: string; needConfirm?: boolean; } export declare class EditFormConfig { editForm: EditFormItem[]; entity?: any; title?: string; saveAndNew?: boolean; customCommands?: EditFormCustomCommand[]; groups?: EditFormItemsGroup[]; } export declare class EditFormResult { updatedItem?: T; continue?: boolean; command?: EditFormCustomCommand; }