UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

777 lines (761 loc) • 21.7 kB
/** * DevExtreme (ui/form.d.ts) * Version: 19.2.6 * Build date: Thu Jan 30 2020 * * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import '../jquery_augmentation'; import { dxElement } from '../core/element'; import { template } from '../core/templates/template'; import dxButton, { dxButtonOptions } from './button'; import Editor from './editor/editor'; import { dxTabPanelOptions } from './tab_panel'; import { AsyncRule, CompareRule, CustomRule, EmailRule, NumericRule, PatternRule, RangeRule, RequiredRule, StringLengthRule } from './validation_engine'; import { dxValidationGroupResult } from './validation_group'; import Widget, { WidgetOptions } from './widget/ui.widget'; /** Warning! This type is used for internal purposes. Do not import it directly. */ export interface dxFormOptions extends WidgetOptions<dxForm> { /** * @docid dxFormOptions.alignItemLabels * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ alignItemLabels?: boolean; /** * @docid dxFormOptions.alignItemLabelsInAllGroups * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ alignItemLabelsInAllGroups?: boolean; /** * @docid dxFormOptions.colCount * @type number|Enums.Mode * @default 1 * @prevFileNamespace DevExpress.ui * @public */ colCount?: number | 'auto'; /** * @docid dxFormOptions.colCountByScreen * @extends ColCountResponsibleType * @inherits ColCountResponsible * @default undefined * @prevFileNamespace DevExpress.ui * @public */ colCountByScreen?: any; /** * @docid dxFormOptions.customizeItem * @type function * @type_function_param1 item:dxFormSimpleItem|dxFormGroupItem|dxFormTabbedItem|dxFormEmptyItem|dxFormButtonItem * @prevFileNamespace DevExpress.ui * @public */ customizeItem?: ((item: dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem) => any); /** * @docid dxFormOptions.formData * @type object * @default {} * @fires dxFormOptions.onFieldDataChanged * @prevFileNamespace DevExpress.ui * @public */ formData?: any; /** * @docid dxFormOptions.items * @type Array<dxFormSimpleItem,dxFormGroupItem,dxFormTabbedItem,dxFormEmptyItem,dxFormButtonItem> * @default undefined * @prevFileNamespace DevExpress.ui * @public */ items?: Array<dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem>; /** * @docid dxFormOptions.labelLocation * @type Enums.FormLabelLocation * @default "left" * @default "top" [for](Material) * @prevFileNamespace DevExpress.ui * @public */ labelLocation?: 'left' | 'right' | 'top'; /** * @docid dxFormOptions.minColWidth * @type number * @default 200 * @prevFileNamespace DevExpress.ui * @public */ minColWidth?: number; /** * @docid dxFormOptions.onEditorEnterKey * @extends Action * @type function(e) * @type_function_param1 e:object * @type_function_param1_field4 dataField:string * @action * @prevFileNamespace DevExpress.ui * @public */ onEditorEnterKey?: ((e: { component?: dxForm, element?: dxElement, model?: any, dataField?: string }) => any); /** * @docid dxFormOptions.onFieldDataChanged * @extends Action * @type function(e) * @type_function_param1 e:object * @type_function_param1_field4 dataField:string * @type_function_param1_field5 value:object * @action * @prevFileNamespace DevExpress.ui * @public */ onFieldDataChanged?: ((e: { component?: dxForm, element?: dxElement, model?: any, dataField?: string, value?: any }) => any); /** * @docid dxFormOptions.optionalMark * @type string * @default "optional" * @prevFileNamespace DevExpress.ui * @public */ optionalMark?: string; /** * @docid dxFormOptions.readOnly * @type boolean * @default false * @prevFileNamespace DevExpress.ui * @public */ readOnly?: boolean; /** * @docid dxFormOptions.requiredMark * @type string * @default "*" * @prevFileNamespace DevExpress.ui * @public */ requiredMark?: string; /** * @docid dxFormOptions.requiredMessage * @type string * @default "{0} is required" * @prevFileNamespace DevExpress.ui * @public */ requiredMessage?: string; /** * @docid dxFormOptions.screenByWidth * @type function * @default null * @prevFileNamespace DevExpress.ui * @public */ screenByWidth?: Function; /** * @docid dxFormOptions.scrollingEnabled * @type boolean * @default false * @prevFileNamespace DevExpress.ui * @public */ scrollingEnabled?: boolean; /** * @docid dxFormOptions.showColonAfterLabel * @type boolean * @default true * @default false [for](Material) * @prevFileNamespace DevExpress.ui * @public */ showColonAfterLabel?: boolean; /** * @docid dxFormOptions.showOptionalMark * @type boolean * @default false * @prevFileNamespace DevExpress.ui * @public */ showOptionalMark?: boolean; /** * @docid dxFormOptions.showRequiredMark * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ showRequiredMark?: boolean; /** * @docid dxFormOptions.showValidationSummary * @type boolean * @default false * @prevFileNamespace DevExpress.ui * @public */ showValidationSummary?: boolean; /** * @docid dxFormOptions.validationGroup * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ validationGroup?: string; } /** The Form widget 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 default class dxForm extends Widget { constructor(element: Element, options?: dxFormOptions) constructor(element: JQuery, options?: dxFormOptions) /** * @docid dxFormMethods.getButton * @publicName getButton(name) * @param1 name:string * @return dxButton | undefined * @prevFileNamespace DevExpress.ui * @public */ getButton(name: string): dxButton | undefined; /** * @docid dxFormMethods.getEditor * @publicName getEditor(dataField) * @param1 dataField:string * @return Editor | undefined * @prevFileNamespace DevExpress.ui * @public */ getEditor(dataField: string): Editor | undefined; /** * @docid dxFormMethods.itemOption * @publicName itemOption(id) * @param1 id:string * @return any * @prevFileNamespace DevExpress.ui * @public */ itemOption(id: string): any; /** * @docid dxFormMethods.itemOption * @publicName itemOption(id, option, value) * @param1 id:string * @param2 option:string * @param3 value:any * @prevFileNamespace DevExpress.ui * @public */ itemOption(id: string, option: string, value: any): void; /** * @docid dxFormMethods.itemOption * @publicName itemOption(id, options) * @param1 id:string * @param2 options:object * @prevFileNamespace DevExpress.ui * @public */ itemOption(id: string, options: any): void; /** * @docid dxFormMethods.resetValues * @publicName resetValues() * @prevFileNamespace DevExpress.ui * @public */ resetValues(): void; /** * @docid dxFormMethods.updateData * @publicName updateData(data) * @param1 data:object * @prevFileNamespace DevExpress.ui * @public */ updateData(data: any): void; /** * @docid dxFormMethods.updateData * @publicName updateData(dataField, value) * @param1 dataField:string * @param2 value:object * @prevFileNamespace DevExpress.ui * @public */ updateData(dataField: string, value: any): void; /** * @docid dxFormMethods.updateDimensions * @publicName updateDimensions() * @return Promise<void> * @prevFileNamespace DevExpress.ui * @public */ updateDimensions(): Promise<void> & JQueryPromise<void>; /** * @docid dxFormMethods.validate * @publicName validate() * @return dxValidationGroupResult * @prevFileNamespace DevExpress.ui * @public */ validate(): dxValidationGroupResult; } /** Warning! This type is used for internal purposes. Do not import it directly. */ export interface dxFormButtonItem { /** * @docid dxFormButtonItem.alignment * @type Enums.HorizontalAlignment * @default "right" * @deprecated dxFormButtonItem.horizontalAlignment * @prevFileNamespace DevExpress.ui * @public */ alignment?: 'center' | 'left' | 'right'; /** * @docid dxFormButtonItem.buttonOptions * @type dxButtonOptions * @default undefined * @prevFileNamespace DevExpress.ui * @public */ buttonOptions?: dxButtonOptions; /** * @docid dxFormButtonItem.colSpan * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ colSpan?: number; /** * @docid dxFormButtonItem.cssClass * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ cssClass?: string; /** * @docid dxFormButtonItem.horizontalAlignment * @type Enums.HorizontalAlignment * @default "right" * @prevFileNamespace DevExpress.ui * @public */ horizontalAlignment?: 'center' | 'left' | 'right'; /** * @docid dxFormButtonItem.itemType * @type Enums.FormItemType * @default "simple" * @prevFileNamespace DevExpress.ui * @public */ itemType?: 'empty' | 'group' | 'simple' | 'tabbed' | 'button'; /** * @docid dxFormButtonItem.name * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ name?: string; /** * @docid dxFormButtonItem.verticalAlignment * @type Enums.VerticalAlignment * @default "top" * @prevFileNamespace DevExpress.ui * @public */ verticalAlignment?: 'bottom' | 'center' | 'top'; /** * @docid dxFormButtonItem.visible * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ visible?: boolean; /** * @docid dxFormButtonItem.visibleIndex * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ visibleIndex?: number; } /** Warning! This type is used for internal purposes. Do not import it directly. */ export interface dxFormEmptyItem { /** * @docid dxFormEmptyItem.colSpan * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ colSpan?: number; /** * @docid dxFormEmptyItem.cssClass * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ cssClass?: string; /** * @docid dxFormEmptyItem.itemType * @type Enums.FormItemType * @default "simple" * @prevFileNamespace DevExpress.ui * @public */ itemType?: 'empty' | 'group' | 'simple' | 'tabbed' | 'button'; /** * @docid dxFormEmptyItem.name * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ name?: string; /** * @docid dxFormEmptyItem.visible * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ visible?: boolean; /** * @docid dxFormEmptyItem.visibleIndex * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ visibleIndex?: number; } /** Warning! This type is used for internal purposes. Do not import it directly. */ export interface dxFormGroupItem { /** * @docid dxFormGroupItem.alignItemLabels * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ alignItemLabels?: boolean; /** * @docid dxFormGroupItem.caption * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ caption?: string; /** * @docid dxFormGroupItem.colCount * @type number * @default 1 * @prevFileNamespace DevExpress.ui * @public */ colCount?: number; /** * @docid dxFormGroupItem.colCountByScreen * @extends ColCountResponsibleType * @inherits ColCountResponsible * @default undefined * @prevFileNamespace DevExpress.ui * @public */ colCountByScreen?: any; /** * @docid dxFormGroupItem.colSpan * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ colSpan?: number; /** * @docid dxFormGroupItem.cssClass * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ cssClass?: string; /** * @docid dxFormGroupItem.itemType * @type Enums.FormItemType * @default "simple" * @prevFileNamespace DevExpress.ui * @public */ itemType?: 'empty' | 'group' | 'simple' | 'tabbed' | 'button'; /** * @docid dxFormGroupItem.items * @type Array<dxFormSimpleItem,dxFormGroupItem,dxFormTabbedItem,dxFormEmptyItem,dxFormButtonItem> * @default undefined * @prevFileNamespace DevExpress.ui * @public */ items?: Array<dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem>; /** * @docid dxFormGroupItem.name * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ name?: string; /** * @docid dxFormGroupItem.template * @type template|function * @type_function_param1 data:object * @type_function_param1_field1 component:dxForm * @type_function_param1_field2 formData:object * @type_function_param2 itemElement:dxElement * @type_function_return string|Node|jQuery * @prevFileNamespace DevExpress.ui * @public */ template?: template | ((data: { component?: dxForm, formData?: any }, itemElement: dxElement) => string | Element | JQuery); /** * @docid dxFormGroupItem.visible * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ visible?: boolean; /** * @docid dxFormGroupItem.visibleIndex * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ visibleIndex?: number; } /** Warning! This type is used for internal purposes. Do not import it directly. */ export interface dxFormSimpleItem { /** * @docid dxFormSimpleItem.colSpan * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ colSpan?: number; /** * @docid dxFormSimpleItem.cssClass * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ cssClass?: string; /** * @docid dxFormSimpleItem.dataField * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ dataField?: string; /** * @docid dxFormSimpleItem.editorOptions * @type object * @default undefined * @prevFileNamespace DevExpress.ui * @public */ editorOptions?: any; /** * @docid dxFormSimpleItem.editorType * @type Enums.FormItemEditorType * @prevFileNamespace DevExpress.ui * @public */ editorType?: 'dxAutocomplete' | 'dxCalendar' | 'dxCheckBox' | 'dxColorBox' | 'dxDateBox' | 'dxDropDownBox' | 'dxHtmlEditor' | 'dxLookup' | 'dxNumberBox' | 'dxRadioGroup' | 'dxRangeSlider' | 'dxSelectBox' | 'dxSlider' | 'dxSwitch' | 'dxTagBox' | 'dxTextArea' | 'dxTextBox'; /** * @docid dxFormSimpleItem.helpText * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ helpText?: string; /** * @docid dxFormSimpleItem.isRequired * @type boolean * @default undefined * @prevFileNamespace DevExpress.ui * @public */ isRequired?: boolean; /** * @docid dxFormSimpleItem.itemType * @type Enums.FormItemType * @default "simple" * @prevFileNamespace DevExpress.ui * @public */ itemType?: 'empty' | 'group' | 'simple' | 'tabbed' | 'button'; /** * @docid dxFormSimpleItem.label * @type object * @default undefined * @prevFileNamespace DevExpress.ui * @public */ label?: { alignment?: 'center' | 'left' | 'right', location?: 'left' | 'right' | 'top', showColon?: boolean, text?: string, visible?: boolean }; /** * @docid dxFormSimpleItem.name * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ name?: string; /** * @docid dxFormSimpleItem.template * @type template|function * @type_function_param1 data:object * @type_function_param1_field1 component:dxForm * @type_function_param1_field2 dataField:string * @type_function_param1_field3 editorOptions:object * @type_function_param1_field4 editorType:string * @type_function_param1_field5 name:string * @type_function_param2 itemElement:dxElement * @type_function_return string|Node|jQuery * @prevFileNamespace DevExpress.ui * @public */ template?: template | ((data: { component?: dxForm, dataField?: string, editorOptions?: any, editorType?: string, name?: string }, itemElement: dxElement) => string | Element | JQuery); /** * @docid dxFormSimpleItem.validationRules * @type Array<RequiredRule,NumericRule,RangeRule,StringLengthRule,CustomRule,CompareRule,PatternRule,EmailRule,AsyncRule> * @default undefined * @prevFileNamespace DevExpress.ui * @public */ validationRules?: Array<RequiredRule | NumericRule | RangeRule | StringLengthRule | CustomRule | CompareRule | PatternRule | EmailRule | AsyncRule>; /** * @docid dxFormSimpleItem.visible * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ visible?: boolean; /** * @docid dxFormSimpleItem.visibleIndex * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ visibleIndex?: number; } /** Warning! This type is used for internal purposes. Do not import it directly. */ export interface dxFormTabbedItem { /** * @docid dxFormTabbedItem.colSpan * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ colSpan?: number; /** * @docid dxFormTabbedItem.cssClass * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ cssClass?: string; /** * @docid dxFormTabbedItem.itemType * @type Enums.FormItemType * @default "simple" * @prevFileNamespace DevExpress.ui * @public */ itemType?: 'empty' | 'group' | 'simple' | 'tabbed' | 'button'; /** * @docid dxFormTabbedItem.name * @type string * @default undefined * @prevFileNamespace DevExpress.ui * @public */ name?: string; /** * @docid dxFormTabbedItem.tabPanelOptions * @type dxTabPanelOptions * @default undefined * @prevFileNamespace DevExpress.ui * @public */ tabPanelOptions?: dxTabPanelOptions; /** * @docid dxFormTabbedItem.tabs * @type Array<Object> * @default undefined * @prevFileNamespace DevExpress.ui * @public */ tabs?: Array<{ alignItemLabels?: boolean, badge?: string, colCount?: number, colCountByScreen?: any, disabled?: boolean, icon?: string, items?: Array<dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem>, tabTemplate?: template | ((tabData: any, tabIndex: number, tabElement: dxElement) => any), template?: template | ((tabData: any, tabIndex: number, tabElement: dxElement) => any), title?: string }>; /** * @docid dxFormTabbedItem.visible * @type boolean * @default true * @prevFileNamespace DevExpress.ui * @public */ visible?: boolean; /** * @docid dxFormTabbedItem.visibleIndex * @type number * @default undefined * @prevFileNamespace DevExpress.ui * @public */ visibleIndex?: number; } declare global { interface JQuery { dxForm(): JQuery; dxForm(options: "instance"): dxForm; dxForm(options: string): any; dxForm(options: string, ...params: any[]): any; dxForm(options: dxFormOptions): JQuery; } } /** Warning! This type is used for internal purposes. Do not import it directly. */ export type Options = dxFormOptions; /** @deprecated use Options instead */ /** Warning! This type is used for internal purposes. Do not import it directly. */ export type IOptions = dxFormOptions;