UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

534 lines (412 loc) 24.9 kB
/*! * devextreme-angular * Version: 25.1.4 * Build date: Tue Aug 05 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/devextreme-angular */ import { TransferState, ElementRef, NgZone, OnDestroy, EventEmitter, OnChanges, DoCheck, SimpleChanges, QueryList } from '@angular/core'; import { Mode } from 'devextreme/common'; import { dxFormSimpleItem, dxFormGroupItem, dxFormTabbedItem, dxFormEmptyItem, dxFormButtonItem, LabelLocation, FormLabelMode, ContentReadyEvent, DisposingEvent, EditorEnterKeyEvent, FieldDataChangedEvent, InitializedEvent, OptionChangedEvent } from 'devextreme/ui/form'; import DxForm from 'devextreme/ui/form'; import { DxComponent, DxTemplateHost, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core'; import { DxiItemComponent } from 'devextreme-angular/ui/nested'; import { DxiFormButtonItemComponent } from 'devextreme-angular/ui/form/nested'; import { DxiFormEmptyItemComponent } from 'devextreme-angular/ui/form/nested'; import { DxiFormGroupItemComponent } from 'devextreme-angular/ui/form/nested'; import { DxiFormItemComponent } from 'devextreme-angular/ui/form/nested'; import { DxiFormSimpleItemComponent } from 'devextreme-angular/ui/form/nested'; import { DxiFormTabbedItemComponent } from 'devextreme-angular/ui/form/nested'; import type * as DxFormTypes from "devextreme/ui/form_types"; import * as i0 from "@angular/core"; import * as i1 from "devextreme-angular/ui/nested"; import * as i2 from "devextreme-angular/ui/form/nested"; import * as i3 from "devextreme-angular/core"; /** * The Form UI component represents fields of a data object as a collection of label-editor pairs. These pairs can be arranged in several groups, tabs and columns. */ export declare class DxFormComponent extends DxComponent implements OnDestroy, OnChanges, DoCheck { private _watcherHelper; private _idh; instance: DxForm; /** * Specifies the shortcut key that sets focus on the UI component. */ get accessKey(): string | undefined; set accessKey(value: string | undefined); /** * Specifies whether the UI component changes its visual state as a result of user interaction. */ get activeStateEnabled(): boolean; set activeStateEnabled(value: boolean); /** * Specifies whether all item labels are aligned. Applies only to labels outside their editors (see labelMode). */ get alignItemLabels(): boolean; set alignItemLabels(value: boolean); /** * Specifies whether item labels in all groups are aligned. Applies only to labels outside their editors (see labelMode). */ get alignItemLabelsInAllGroups(): boolean; set alignItemLabelsInAllGroups(value: boolean); /** * The count of columns in the form layout. */ get colCount(): Mode | number; set colCount(value: Mode | number); /** * Specifies dependency between the screen factor and the count of columns in the form layout. */ get colCountByScreen(): { lg?: number | undefined; md?: number | undefined; sm?: number | undefined; xs?: number | undefined; }; set colCountByScreen(value: { lg?: number | undefined; md?: number | undefined; sm?: number | undefined; xs?: number | undefined; }); /** * Specifies a function that customizes a form item after it has been created. */ get customizeItem(): ((item: dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem) => void); set customizeItem(value: ((item: dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem) => void)); /** * Specifies whether the UI component responds to user interaction. */ get disabled(): boolean; set disabled(value: boolean); /** * Specifies the global attributes to be attached to the UI component&apos;s container element. */ get elementAttr(): Record<string, any>; set elementAttr(value: Record<string, any>); /** * Specifies whether the UI component can be focused using keyboard navigation. */ get focusStateEnabled(): boolean; set focusStateEnabled(value: boolean); /** * Provides the Form&apos;s data. Gets updated every time form fields change. */ get formData(): any; set formData(value: any); /** * Specifies the UI component&apos;s height. */ get height(): number | string | undefined; set height(value: number | string | undefined); /** * Specifies text for a hint that appears when a user pauses on the UI component. */ get hint(): string | undefined; set hint(value: string | undefined); /** * Specifies whether the UI component changes its state when a user pauses on it. */ get hoverStateEnabled(): boolean; set hoverStateEnabled(value: boolean); /** * Specifies whether current editor values differ from initial values. */ get isDirty(): boolean; set isDirty(value: boolean); /** * Holds an array of form items. */ get items(): Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>; set items(value: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>); /** * Specifies the location of a label against the editor. Applies only to labels outside their editors (see labelMode). */ get labelLocation(): LabelLocation; set labelLocation(value: LabelLocation); /** * Specifies a display mode for item labels. */ get labelMode(): FormLabelMode; set labelMode(value: FormLabelMode); /** * The minimum column width used for calculating column count in the form layout. Applies only if colCount property is &apos;auto&apos;. */ get minColWidth(): number; set minColWidth(value: number); /** * The text displayed for optional fields. Applies only if showOptionalMark is true. */ get optionalMark(): string; set optionalMark(value: string); /** * Specifies whether all editors on the form are read-only. Applies only to non-templated items. */ get readOnly(): boolean; set readOnly(value: boolean); /** * The text displayed for required fields. */ get requiredMark(): string; set requiredMark(value: string); /** * Specifies the message that is shown for end-users if a required field value is not specified. */ get requiredMessage(): string; set requiredMessage(value: string); /** * Switches the UI component to a right-to-left representation. */ get rtlEnabled(): boolean; set rtlEnabled(value: boolean); /** * Specifies a function that categorizes screens by their width. */ get screenByWidth(): Function; set screenByWidth(value: Function); /** * A Boolean value specifying whether to enable or disable form scrolling. */ get scrollingEnabled(): boolean; set scrollingEnabled(value: boolean); /** * Specifies whether a colon is displayed at the end of form labels. Applies only to labels outside their editors (see labelMode). */ get showColonAfterLabel(): boolean; set showColonAfterLabel(value: boolean); /** * Specifies whether or not the optional mark is displayed for optional fields. */ get showOptionalMark(): boolean; set showOptionalMark(value: boolean); /** * Specifies whether or not the required mark is displayed for required fields. */ get showRequiredMark(): boolean; set showRequiredMark(value: boolean); /** * Specifies whether or not the total validation summary is displayed on the form. */ get showValidationSummary(): boolean; set showValidationSummary(value: boolean); /** * Specifies the number of the element when the Tab key is used for navigating. */ get tabIndex(): number; set tabIndex(value: number); /** * Gives a name to the internal validation group. */ get validationGroup(): string | undefined; set validationGroup(value: string | undefined); /** * Specifies whether the UI component is visible. */ get visible(): boolean; set visible(value: boolean); /** * Specifies the UI component&apos;s width. */ get width(): number | string | undefined; set width(value: number | string | undefined); /** * A function that is executed when the UI component is rendered and each time the component is repainted. */ onContentReady: EventEmitter<ContentReadyEvent>; /** * A function that is executed before the UI component is disposed of. */ onDisposing: EventEmitter<DisposingEvent>; /** * A function that is executed when the Enter key has been pressed while an editor is focused. */ onEditorEnterKey: EventEmitter<EditorEnterKeyEvent>; /** * A function that is executed when the value of a formData object field is changed. */ onFieldDataChanged: EventEmitter<FieldDataChangedEvent>; /** * A function used in JavaScript frameworks to save the UI component instance. */ onInitialized: EventEmitter<InitializedEvent>; /** * A function that is executed after a UI component property is changed. */ onOptionChanged: EventEmitter<OptionChangedEvent>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ accessKeyChange: EventEmitter<string | undefined>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ activeStateEnabledChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ alignItemLabelsChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ alignItemLabelsInAllGroupsChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ colCountChange: EventEmitter<Mode | number>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ colCountByScreenChange: EventEmitter<{ lg?: number | undefined; md?: number | undefined; sm?: number | undefined; xs?: number | undefined; }>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ customizeItemChange: EventEmitter<((item: dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem) => void)>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ disabledChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ elementAttrChange: EventEmitter<Record<string, any>>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ focusStateEnabledChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ formDataChange: EventEmitter<any>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ heightChange: EventEmitter<number | string | undefined>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ hintChange: EventEmitter<string | undefined>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ hoverStateEnabledChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ isDirtyChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ itemsChange: EventEmitter<Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ labelLocationChange: EventEmitter<LabelLocation>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ labelModeChange: EventEmitter<FormLabelMode>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ minColWidthChange: EventEmitter<number>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ optionalMarkChange: EventEmitter<string>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ readOnlyChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ requiredMarkChange: EventEmitter<string>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ requiredMessageChange: EventEmitter<string>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ rtlEnabledChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ screenByWidthChange: EventEmitter<Function>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ scrollingEnabledChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showColonAfterLabelChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showOptionalMarkChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showRequiredMarkChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showValidationSummaryChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ tabIndexChange: EventEmitter<number>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ validationGroupChange: EventEmitter<string | undefined>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ visibleChange: EventEmitter<boolean>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ widthChange: EventEmitter<number | string | undefined>; get buttonItemsChildren(): QueryList<DxiFormButtonItemComponent>; set buttonItemsChildren(value: QueryList<DxiFormButtonItemComponent>); get emptyItemsChildren(): QueryList<DxiFormEmptyItemComponent>; set emptyItemsChildren(value: QueryList<DxiFormEmptyItemComponent>); get groupItemsChildren(): QueryList<DxiFormGroupItemComponent>; set groupItemsChildren(value: QueryList<DxiFormGroupItemComponent>); get itemsChildren(): QueryList<DxiFormItemComponent>; set itemsChildren(value: QueryList<DxiFormItemComponent>); get simpleItemsChildren(): QueryList<DxiFormSimpleItemComponent>; set simpleItemsChildren(value: QueryList<DxiFormSimpleItemComponent>); get tabbedItemsChildren(): QueryList<DxiFormTabbedItemComponent>; set tabbedItemsChildren(value: QueryList<DxiFormTabbedItemComponent>); get itemsLegacyChildren(): QueryList<DxiItemComponent>; set itemsLegacyChildren(value: QueryList<DxiItemComponent>); constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, _watcherHelper: WatcherHelper, _idh: IterableDifferHelper, optionHost: NestedOptionHost, transferState: TransferState, platformId: any); protected _createInstance(element: any, options: any): DxForm; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; setupChanges(prop: string, changes: SimpleChanges): void; ngDoCheck(): void; _setOption(name: string, value: any): void; static ɵfac: i0.ɵɵFactoryDeclaration<DxFormComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<DxFormComponent, "dx-form", never, { "accessKey": { "alias": "accessKey"; "required": false; }; "activeStateEnabled": { "alias": "activeStateEnabled"; "required": false; }; "alignItemLabels": { "alias": "alignItemLabels"; "required": false; }; "alignItemLabelsInAllGroups": { "alias": "alignItemLabelsInAllGroups"; "required": false; }; "colCount": { "alias": "colCount"; "required": false; }; "colCountByScreen": { "alias": "colCountByScreen"; "required": false; }; "customizeItem": { "alias": "customizeItem"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "elementAttr": { "alias": "elementAttr"; "required": false; }; "focusStateEnabled": { "alias": "focusStateEnabled"; "required": false; }; "formData": { "alias": "formData"; "required": false; }; "height": { "alias": "height"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "hoverStateEnabled": { "alias": "hoverStateEnabled"; "required": false; }; "isDirty": { "alias": "isDirty"; "required": false; }; "items": { "alias": "items"; "required": false; }; "labelLocation": { "alias": "labelLocation"; "required": false; }; "labelMode": { "alias": "labelMode"; "required": false; }; "minColWidth": { "alias": "minColWidth"; "required": false; }; "optionalMark": { "alias": "optionalMark"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "requiredMark": { "alias": "requiredMark"; "required": false; }; "requiredMessage": { "alias": "requiredMessage"; "required": false; }; "rtlEnabled": { "alias": "rtlEnabled"; "required": false; }; "screenByWidth": { "alias": "screenByWidth"; "required": false; }; "scrollingEnabled": { "alias": "scrollingEnabled"; "required": false; }; "showColonAfterLabel": { "alias": "showColonAfterLabel"; "required": false; }; "showOptionalMark": { "alias": "showOptionalMark"; "required": false; }; "showRequiredMark": { "alias": "showRequiredMark"; "required": false; }; "showValidationSummary": { "alias": "showValidationSummary"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "validationGroup": { "alias": "validationGroup"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "onContentReady": "onContentReady"; "onDisposing": "onDisposing"; "onEditorEnterKey": "onEditorEnterKey"; "onFieldDataChanged": "onFieldDataChanged"; "onInitialized": "onInitialized"; "onOptionChanged": "onOptionChanged"; "accessKeyChange": "accessKeyChange"; "activeStateEnabledChange": "activeStateEnabledChange"; "alignItemLabelsChange": "alignItemLabelsChange"; "alignItemLabelsInAllGroupsChange": "alignItemLabelsInAllGroupsChange"; "colCountChange": "colCountChange"; "colCountByScreenChange": "colCountByScreenChange"; "customizeItemChange": "customizeItemChange"; "disabledChange": "disabledChange"; "elementAttrChange": "elementAttrChange"; "focusStateEnabledChange": "focusStateEnabledChange"; "formDataChange": "formDataChange"; "heightChange": "heightChange"; "hintChange": "hintChange"; "hoverStateEnabledChange": "hoverStateEnabledChange"; "isDirtyChange": "isDirtyChange"; "itemsChange": "itemsChange"; "labelLocationChange": "labelLocationChange"; "labelModeChange": "labelModeChange"; "minColWidthChange": "minColWidthChange"; "optionalMarkChange": "optionalMarkChange"; "readOnlyChange": "readOnlyChange"; "requiredMarkChange": "requiredMarkChange"; "requiredMessageChange": "requiredMessageChange"; "rtlEnabledChange": "rtlEnabledChange"; "screenByWidthChange": "screenByWidthChange"; "scrollingEnabledChange": "scrollingEnabledChange"; "showColonAfterLabelChange": "showColonAfterLabelChange"; "showOptionalMarkChange": "showOptionalMarkChange"; "showRequiredMarkChange": "showRequiredMarkChange"; "showValidationSummaryChange": "showValidationSummaryChange"; "tabIndexChange": "tabIndexChange"; "validationGroupChange": "validationGroupChange"; "visibleChange": "visibleChange"; "widthChange": "widthChange"; }, ["buttonItemsChildren", "emptyItemsChildren", "groupItemsChildren", "itemsChildren", "simpleItemsChildren", "tabbedItemsChildren", "itemsLegacyChildren"], never, true, never>; } export declare class DxFormModule { static ɵfac: i0.ɵɵFactoryDeclaration<DxFormModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<DxFormModule, never, [typeof DxFormComponent, typeof i1.DxoColCountByScreenModule, typeof i1.DxiItemModule, typeof i1.DxoLabelModule, typeof i1.DxiValidationRuleModule, typeof i1.DxoTabPanelOptionsModule, typeof i1.DxiTabModule, typeof i1.DxoButtonOptionsModule, typeof i2.DxiFormAsyncRuleModule, typeof i2.DxiFormButtonItemModule, typeof i2.DxoFormButtonOptionsModule, typeof i2.DxoFormColCountByScreenModule, typeof i2.DxiFormCompareRuleModule, typeof i2.DxiFormCustomRuleModule, typeof i2.DxiFormEmailRuleModule, typeof i2.DxiFormEmptyItemModule, typeof i2.DxiFormGroupItemModule, typeof i2.DxiFormItemModule, typeof i2.DxoFormLabelModule, typeof i2.DxiFormNumericRuleModule, typeof i2.DxiFormPatternRuleModule, typeof i2.DxiFormRangeRuleModule, typeof i2.DxiFormRequiredRuleModule, typeof i2.DxiFormSimpleItemModule, typeof i2.DxiFormStringLengthRuleModule, typeof i2.DxiFormTabModule, typeof i2.DxiFormTabbedItemModule, typeof i2.DxoFormTabPanelOptionsModule, typeof i2.DxiFormTabPanelOptionsItemModule, typeof i2.DxiFormValidationRuleModule, typeof i3.DxIntegrationModule, typeof i3.DxTemplateModule], [typeof DxFormComponent, typeof i1.DxoColCountByScreenModule, typeof i1.DxiItemModule, typeof i1.DxoLabelModule, typeof i1.DxiValidationRuleModule, typeof i1.DxoTabPanelOptionsModule, typeof i1.DxiTabModule, typeof i1.DxoButtonOptionsModule, typeof i2.DxiFormAsyncRuleModule, typeof i2.DxiFormButtonItemModule, typeof i2.DxoFormButtonOptionsModule, typeof i2.DxoFormColCountByScreenModule, typeof i2.DxiFormCompareRuleModule, typeof i2.DxiFormCustomRuleModule, typeof i2.DxiFormEmailRuleModule, typeof i2.DxiFormEmptyItemModule, typeof i2.DxiFormGroupItemModule, typeof i2.DxiFormItemModule, typeof i2.DxoFormLabelModule, typeof i2.DxiFormNumericRuleModule, typeof i2.DxiFormPatternRuleModule, typeof i2.DxiFormRangeRuleModule, typeof i2.DxiFormRequiredRuleModule, typeof i2.DxiFormSimpleItemModule, typeof i2.DxiFormStringLengthRuleModule, typeof i2.DxiFormTabModule, typeof i2.DxiFormTabbedItemModule, typeof i2.DxoFormTabPanelOptionsModule, typeof i2.DxiFormTabPanelOptionsItemModule, typeof i2.DxiFormValidationRuleModule, typeof i3.DxTemplateModule]>; static ɵinj: i0.ɵɵInjectorDeclaration<DxFormModule>; } export * from 'devextreme-angular/ui/form/nested'; export { DxFormTypes };