import { FormlyFieldConfig } from '@ngx-formly/core'; import { PropertyConfiguration, PropertyConfigurationBuilder } from './property-configuration'; import { DropdownPropertyConfiguration } from './dropdown-property-configuration'; import { DatePropertyConfiguration } from './date-property-configuration'; import { FormGroup } from '@angular/forms'; import { NumberPropertyConfiguration } from './number-property-configuration'; import { LongStringPropertyConfiguration, StringPropertyConfiguration } from './string-property-configuration'; import { FileUploadPropertyConfiguration } from './file-upload-property-configuration'; import { DetailFormConfiguration, DetailFormConfigurationBuilder } from './detail-form-configuration'; import { DropdownWithEchoFieldsPropertyConfiguration } from './dropdown-with-echo-fields-property-configuration'; import { AutocompletePropertyConfiguration } from './autocomplete-property-configuration'; import { FieldGroupConfiguration, FieldGroupConfigurationBuilder } from './fieldgroup-configuration'; import { ExtensionFormConfiguration, ExtensionFormConfigurationBuilder } from './extension-form-configuration'; import { DateTimePropertyConfiguration } from './date-time-property-configuration'; export declare enum FormState { New = "New", Edit = "Edit", ReadOnly = "ReadOnly" } export type FormlyKeyValue = { [K in keyof TModel]: TModel[K] extends ControlType | null | undefined ? K & string : never; }[keyof TModel]; export interface FloydFormlyConfigurationParams { readonly form: FormGroup; fields: FormlyFieldConfig[]; } declare global { export interface FloydFormlyConfiguration { form: FormGroup; if(ifFn: () => boolean, config: (c: FloydFormlyConfiguration) => FloydFormlyConfiguration): FloydFormlyConfiguration; shortString(fieldName: FormlyKeyValue, label: string, config?: (c: StringPropertyConfiguration) => StringPropertyConfiguration): FloydFormlyConfiguration; longString(fieldName: FormlyKeyValue, label: string, config?: (c: LongStringPropertyConfiguration) => LongStringPropertyConfiguration): FloydFormlyConfiguration; date(fieldName: FormlyKeyValue, label: string, config?: (c: DatePropertyConfiguration) => DatePropertyConfiguration): FloydFormlyConfiguration; dateTime(fieldName: FormlyKeyValue, label: string, config?: (c: DateTimePropertyConfiguration) => DateTimePropertyConfiguration): FloydFormlyConfiguration; boolSelectButton(fieldName: FormlyKeyValue, trueLabel: string, falseLabel: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; boolSwitch(fieldName: FormlyKeyValue, label: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; dropDown(fieldName: FormlyKeyValue, label: string, config?: (c: DropdownPropertyConfiguration) => DropdownPropertyConfiguration): FloydFormlyConfiguration; dropDownWithEchoFields(fieldName: FormlyKeyValue, label: string, config?: (c: DropdownWithEchoFieldsPropertyConfiguration) => DropdownWithEchoFieldsPropertyConfiguration): FloydFormlyConfiguration; multiSelectDropdown(fieldName: FormlyKeyValue, label: string, config?: (c: DropdownPropertyConfiguration) => DropdownPropertyConfiguration): FloydFormlyConfiguration; autoComplete(fieldName: FormlyKeyValue, label: string, config?: (c: AutocompletePropertyConfiguration) => AutocompletePropertyConfiguration): FloydFormlyConfiguration; multiSelectAutoComplete(fieldName: FormlyKeyValue, label: string, config?: (c: AutocompletePropertyConfiguration) => AutocompletePropertyConfiguration): FloydFormlyConfiguration; integer(fieldName: FormlyKeyValue, label: string, config?: (c: NumberPropertyConfiguration) => NumberPropertyConfiguration): FloydFormlyConfiguration; money(fieldName: FormlyKeyValue, label: string, config?: (c: NumberPropertyConfiguration) => NumberPropertyConfiguration): FloydFormlyConfiguration; decimal(fieldName: FormlyKeyValue, label: string, config?: (c: NumberPropertyConfiguration) => NumberPropertyConfiguration): FloydFormlyConfiguration; fileUpload(fieldId: string, label: string, config?: (c: FileUploadPropertyConfiguration) => FileUploadPropertyConfiguration): FloydFormlyConfiguration; removeField(fieldOrId: keyof T | string): FloydFormlyConfiguration; modifyField>(fieldOrId: keyof T | string, config: (c: C) => C): FloydFormlyConfiguration; modifyFieldGroup(id: string, config: (c: FieldGroupConfiguration) => FieldGroupConfiguration): FloydFormlyConfiguration; addField(fieldName: keyof T, label: string, formlyTemplate: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; disabledFieldsOnEdit(...fields: (keyof T)[]): FloydFormlyConfiguration; disabledFieldsOnNew(...fields: (keyof T)[]): FloydFormlyConfiguration; formState(formState: FormState): FloydFormlyConfiguration; fieldGroup(config: (c: FieldGroupConfiguration) => FieldGroupConfiguration): FloydFormlyConfiguration; template(template: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; extensionForm(fieldName: FormlyKeyValue, config: (c: ExtensionFormConfiguration) => ExtensionFormConfiguration): FloydFormlyConfiguration; modifyExtensionForm(fieldName: FormlyKeyValue, config: (c: ExtensionFormConfiguration) => ExtensionFormConfiguration): FloydFormlyConfiguration; detailForm(fieldName: FormlyKeyValue, config: (c: DetailFormConfiguration) => DetailFormConfiguration): FloydFormlyConfiguration; modifyDetailForm(fieldName: FormlyKeyValue, config: (c: DetailFormConfiguration) => DetailFormConfiguration): FloydFormlyConfiguration; } } export interface IChangesOnFn { fieldName: keyof T; changesOnFn: () => void; } export interface RootConfiguration { flatFields: PropertyConfigurationBuilder[]; formState: FormState; disabledFieldsOnEdit?: string[]; disabledFieldsOnNew?: string[]; } export declare class FloydFormlyConfigurationBuilder implements Partial> { readonly form: FormGroup; readonly rootConfiguration: RootConfiguration; protected readonly configuration: FloydFormlyConfigurationParams; protected fieldGroupBuilders: FieldGroupConfigurationBuilder[]; protected detailFormBuilders: DetailFormConfigurationBuilder[]; protected extensionFormBuilders: ExtensionFormConfigurationBuilder[]; constructor(form?: FormGroup, rootConfiguration?: RootConfiguration); protected _changesOnFn: IChangesOnFn[]; set changesOnFn(val: IChangesOnFn); private _properties; get properties(): PropertyConfigurationBuilder[]; asInterface(): FloydFormlyConfiguration; if(ifFn: () => boolean, config: (c: FloydFormlyConfiguration) => FloydFormlyConfiguration): FloydFormlyConfiguration; extensionForm(fieldName: FormlyKeyValue, config: (c: ExtensionFormConfiguration) => ExtensionFormConfiguration): FloydFormlyConfiguration; modifyExtensionForm(fieldName: FormlyKeyValue, config: (c: ExtensionFormConfiguration) => ExtensionFormConfiguration): FloydFormlyConfiguration; fieldGroup(config: (c: FieldGroupConfiguration) => FieldGroupConfiguration): FloydFormlyConfiguration; modifyFieldGroup(id: string, config: (c: FieldGroupConfiguration) => FieldGroupConfiguration): FloydFormlyConfiguration; detailForm(fieldName: FormlyKeyValue, config: (c: DetailFormConfiguration) => DetailFormConfiguration): FloydFormlyConfiguration; modifyDetailForm(fieldName: FormlyKeyValue, config: (c: DetailFormConfiguration) => DetailFormConfiguration): FloydFormlyConfiguration; disabledFieldsOnEdit(...fields: (keyof T)[]): FloydFormlyConfiguration; disabledFieldsOnNew(...fields: (keyof T)[]): FloydFormlyConfiguration; formState(formState: FormState): FloydFormlyConfiguration; getConfiguration(): FloydFormlyConfigurationParams; removeField(fieldOrId: keyof T | string): FloydFormlyConfiguration; modifyField>(fieldOrId: keyof T | string, config: (c: C) => C): FloydFormlyConfiguration; template(template: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; addField(fieldName: keyof T, label: string, formlyTemplate: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; date(fieldName: FormlyKeyValue, label: string, config?: (c: DatePropertyConfiguration) => DatePropertyConfiguration): FloydFormlyConfiguration; dateTime(fieldName: FormlyKeyValue, label: string, config?: (c: DateTimePropertyConfiguration) => DateTimePropertyConfiguration): FloydFormlyConfiguration; boolSelectButton(fieldName: FormlyKeyValue, trueLabel: string, falseLabel: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; boolSwitch(fieldName: FormlyKeyValue, label: string, config?: (c: PropertyConfiguration) => PropertyConfiguration): FloydFormlyConfiguration; dropDown(fieldName: FormlyKeyValue, label: string, config?: (c: DropdownPropertyConfiguration) => DropdownPropertyConfiguration): FloydFormlyConfiguration; multiSelectDropdown(fieldName: FormlyKeyValue, label: string, config?: (c: DropdownPropertyConfiguration) => DropdownPropertyConfiguration): FloydFormlyConfiguration; dropDownWithEchoFields(fieldName: FormlyKeyValue, label: string, config?: (c: DropdownWithEchoFieldsPropertyConfiguration) => DropdownWithEchoFieldsPropertyConfiguration): FloydFormlyConfiguration; fileUpload(fieldId: string, label: string, config?: (c: FileUploadPropertyConfiguration) => FileUploadPropertyConfiguration): FloydFormlyConfiguration; autoComplete(fieldName: FormlyKeyValue, label: string, config?: (c: AutocompletePropertyConfiguration) => AutocompletePropertyConfiguration): FloydFormlyConfiguration; multiSelectAutoComplete(fieldName: FormlyKeyValue, label: string, config?: (c: AutocompletePropertyConfiguration) => AutocompletePropertyConfiguration): FloydFormlyConfiguration; shortString(fieldName: FormlyKeyValue, label: string, config?: (c: StringPropertyConfiguration) => StringPropertyConfiguration): FloydFormlyConfiguration; longString(fieldName: FormlyKeyValue, label: string, config?: (c: LongStringPropertyConfiguration) => LongStringPropertyConfiguration): FloydFormlyConfiguration; integer(fieldName: FormlyKeyValue, label: string, config?: (c: NumberPropertyConfiguration) => NumberPropertyConfiguration): FloydFormlyConfiguration; money(fieldName: FormlyKeyValue, label: string, config?: (c: NumberPropertyConfiguration) => NumberPropertyConfiguration): FloydFormlyConfiguration; decimal(fieldName: FormlyKeyValue, label: string, config?: (c: NumberPropertyConfiguration) => NumberPropertyConfiguration): FloydFormlyConfiguration; protected add, B extends PropertyConfigurationBuilder>(configBuilder: B, label?: string, config?: (c: C) => C): FloydFormlyConfiguration; protected addProperty(configBuilder: PropertyConfigurationBuilder): void; protected createChildBuilder(form: FormGroup, rootConfiguration: RootConfiguration): FloydFormlyConfiguration; private calculateDisabled; }