devextreme-react
Version:
DevExtreme React UI and Visualization Components
1,004 lines (1,002 loc) • 42.9 kB
TypeScript
/*!
* devextreme-react
* Version: 24.2.6
* Build date: Mon Mar 17 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-react
*/
import * as React from "react";
import { Ref, ReactElement } from "react";
import dxForm, { Properties } from "devextreme/ui/form";
import { IHtmlOptions, NestedComponentMeta } from "./core/component";
import type { ContentReadyEvent, DisposingEvent, EditorEnterKeyEvent, InitializedEvent, FormItemType, dxFormButtonItem, dxFormEmptyItem, dxFormGroupItem, dxFormSimpleItem, dxFormTabbedItem, FormItemComponent, LabelLocation } from "devextreme/ui/form";
import type { ContentReadyEvent as ButtonContentReadyEvent, DisposingEvent as ButtonDisposingEvent, InitializedEvent as ButtonInitializedEvent, dxButtonOptions, ClickEvent, OptionChangedEvent } from "devextreme/ui/button";
import type { ContentReadyEvent as TabPanelContentReadyEvent, DisposingEvent as TabPanelDisposingEvent, InitializedEvent as TabPanelInitializedEvent, OptionChangedEvent as TabPanelOptionChangedEvent, dxTabPanelOptions, dxTabPanelItem, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, SelectionChangedEvent, SelectionChangingEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from "devextreme/ui/tab_panel";
import type { ValidationRuleType, HorizontalAlignment, VerticalAlignment, ButtonStyle, template, ButtonType, ComparisonOperator, TabsIconPosition, TabsStyle, Position } from "devextreme/common";
import type { CollectionWidgetItem } from "devextreme/ui/collection/ui.collection_widget.base";
import type { DataSourceOptions } from "devextreme/data/data_source";
import type { Store } from "devextreme/data/store";
import type DataSource from "devextreme/data/data_source";
import type * as CommonTypes from "devextreme/common";
type ReplaceFieldTypes<TSource, TReplacement> = {
[P in keyof TSource]: P extends keyof TReplacement ? TReplacement[P] : TSource[P];
};
type IFormOptionsNarrowedEvents = {
onContentReady?: ((e: ContentReadyEvent) => void);
onDisposing?: ((e: DisposingEvent) => void);
onEditorEnterKey?: ((e: EditorEnterKeyEvent) => void);
onInitialized?: ((e: InitializedEvent) => void);
};
type IFormOptions = React.PropsWithChildren<ReplaceFieldTypes<Properties, IFormOptionsNarrowedEvents> & IHtmlOptions & {
defaultFormData?: any;
onFormDataChange?: (value: any) => void;
}>;
interface FormRef {
instance: () => dxForm;
}
declare const Form: (props: React.PropsWithChildren<IFormOptions> & {
ref?: Ref<FormRef>;
}) => ReactElement | null;
type IAsyncRuleProps = React.PropsWithChildren<{
ignoreEmptyValue?: boolean;
message?: string;
reevaluate?: boolean;
type?: ValidationRuleType;
validationCallback?: ((options: {
column: Record<string, any>;
data: Record<string, any>;
formItem: Record<string, any>;
rule: Record<string, any>;
validator: Record<string, any>;
value: string | number;
}) => any);
}>;
declare const AsyncRule: ((props: IAsyncRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
ignoreEmptyValue?: boolean | undefined;
message?: string | undefined;
reevaluate?: boolean | undefined;
type?: ValidationRuleType | undefined;
validationCallback?: ((options: {
column: Record<string, any>;
data: Record<string, any>;
formItem: Record<string, any>;
rule: Record<string, any>;
validator: Record<string, any>;
value: string | number;
}) => any) | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IButtonItemProps = React.PropsWithChildren<{
buttonOptions?: dxButtonOptions | undefined;
colSpan?: number | undefined;
cssClass?: string | undefined;
horizontalAlignment?: HorizontalAlignment;
itemType?: FormItemType;
name?: string | undefined;
verticalAlignment?: VerticalAlignment;
visible?: boolean;
visibleIndex?: number | undefined;
}>;
declare const ButtonItem: ((props: IButtonItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{
buttonOptions?: dxButtonOptions | undefined;
colSpan?: number | undefined;
cssClass?: string | undefined;
horizontalAlignment?: HorizontalAlignment | undefined;
itemType?: FormItemType | undefined;
name?: string | undefined;
verticalAlignment?: VerticalAlignment | undefined;
visible?: boolean | undefined;
visibleIndex?: number | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IButtonOptionsProps = React.PropsWithChildren<{
accessKey?: string | undefined;
activeStateEnabled?: boolean;
bindingOptions?: Record<string, any>;
disabled?: boolean;
elementAttr?: Record<string, any>;
focusStateEnabled?: boolean;
height?: (() => number | string) | number | string | undefined;
hint?: string | undefined;
hoverStateEnabled?: boolean;
icon?: string;
onClick?: ((e: ClickEvent) => void);
onContentReady?: ((e: ButtonContentReadyEvent) => void);
onDisposing?: ((e: ButtonDisposingEvent) => void);
onInitialized?: ((e: ButtonInitializedEvent) => void);
onOptionChanged?: ((e: OptionChangedEvent) => void);
rtlEnabled?: boolean;
stylingMode?: ButtonStyle;
tabIndex?: number;
template?: ((buttonData: {
icon: string;
text: string;
}, contentElement: any) => string | any) | template;
text?: string;
type?: ButtonType | string;
useSubmitBehavior?: boolean;
validationGroup?: string | undefined;
visible?: boolean;
width?: (() => number | string) | number | string | undefined;
render?: (...params: any) => React.ReactNode;
component?: React.ComponentType<any>;
}>;
declare const ButtonOptions: ((props: IButtonOptionsProps) => React.FunctionComponentElement<React.PropsWithChildren<{
accessKey?: string | undefined;
activeStateEnabled?: boolean | undefined;
bindingOptions?: Record<string, any> | undefined;
disabled?: boolean | undefined;
elementAttr?: Record<string, any> | undefined;
focusStateEnabled?: boolean | undefined;
height?: (() => number | string) | number | string | undefined;
hint?: string | undefined;
hoverStateEnabled?: boolean | undefined;
icon?: string | undefined;
onClick?: ((e: ClickEvent) => void) | undefined;
onContentReady?: ((e: ButtonContentReadyEvent) => void) | undefined;
onDisposing?: ((e: ButtonDisposingEvent) => void) | undefined;
onInitialized?: ((e: ButtonInitializedEvent) => void) | undefined;
onOptionChanged?: ((e: OptionChangedEvent) => void) | undefined;
rtlEnabled?: boolean | undefined;
stylingMode?: ButtonStyle | undefined;
tabIndex?: number | undefined;
template?: template | ((buttonData: {
icon: string;
text: string;
}, contentElement: any) => string | any) | undefined;
text?: string | undefined;
type?: string | undefined;
useSubmitBehavior?: boolean | undefined;
validationGroup?: string | undefined;
visible?: boolean | undefined;
width?: (() => number | string) | number | string | undefined;
render?: ((...params: any) => React.ReactNode) | undefined;
component?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IColCountByScreenProps = React.PropsWithChildren<{
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
}>;
declare const ColCountByScreen: ((props: IColCountByScreenProps) => React.FunctionComponentElement<React.PropsWithChildren<{
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ICompareRuleProps = React.PropsWithChildren<{
comparisonTarget?: (() => any);
comparisonType?: ComparisonOperator;
ignoreEmptyValue?: boolean;
message?: string;
type?: ValidationRuleType;
}>;
declare const CompareRule: ((props: ICompareRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
comparisonTarget?: (() => any) | undefined;
comparisonType?: ComparisonOperator | undefined;
ignoreEmptyValue?: boolean | undefined;
message?: string | undefined;
type?: ValidationRuleType | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ICustomRuleProps = React.PropsWithChildren<{
ignoreEmptyValue?: boolean;
message?: string;
reevaluate?: boolean;
type?: ValidationRuleType;
validationCallback?: ((options: {
column: Record<string, any>;
data: Record<string, any>;
formItem: Record<string, any>;
rule: Record<string, any>;
validator: Record<string, any>;
value: string | number;
}) => boolean);
}>;
declare const CustomRule: ((props: ICustomRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
ignoreEmptyValue?: boolean | undefined;
message?: string | undefined;
reevaluate?: boolean | undefined;
type?: ValidationRuleType | undefined;
validationCallback?: ((options: {
column: Record<string, any>;
data: Record<string, any>;
formItem: Record<string, any>;
rule: Record<string, any>;
validator: Record<string, any>;
value: string | number;
}) => boolean) | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IEmailRuleProps = React.PropsWithChildren<{
ignoreEmptyValue?: boolean;
message?: string;
type?: ValidationRuleType;
}>;
declare const EmailRule: ((props: IEmailRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
ignoreEmptyValue?: boolean | undefined;
message?: string | undefined;
type?: ValidationRuleType | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IEmptyItemProps = React.PropsWithChildren<{
colSpan?: number | undefined;
cssClass?: string | undefined;
itemType?: FormItemType;
name?: string | undefined;
visible?: boolean;
visibleIndex?: number | undefined;
}>;
declare const EmptyItem: ((props: IEmptyItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{
colSpan?: number | undefined;
cssClass?: string | undefined;
itemType?: FormItemType | undefined;
name?: string | undefined;
visible?: boolean | undefined;
visibleIndex?: number | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IGroupItemProps = React.PropsWithChildren<{
alignItemLabels?: boolean;
caption?: string | undefined;
captionTemplate?: ((data: {
caption: string;
component: dxForm;
name: string;
}, itemElement: any) => string | any) | template;
colCount?: number;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
};
colSpan?: number | undefined;
cssClass?: string | undefined;
items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>;
itemType?: FormItemType;
name?: string | undefined;
template?: ((data: {
component: dxForm;
formData: Record<string, any>;
}, itemElement: any) => string | any) | template;
visible?: boolean;
visibleIndex?: number | undefined;
captionRender?: (...params: any) => React.ReactNode;
captionComponent?: React.ComponentType<any>;
render?: (...params: any) => React.ReactNode;
component?: React.ComponentType<any>;
}>;
declare const GroupItem: ((props: IGroupItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{
alignItemLabels?: boolean | undefined;
caption?: string | undefined;
captionTemplate?: template | ((data: {
caption: string;
component: dxForm;
name: string;
}, itemElement: any) => string | any) | undefined;
colCount?: number | undefined;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
} | undefined;
colSpan?: number | undefined;
cssClass?: string | undefined;
items?: (dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem)[] | undefined;
itemType?: FormItemType | undefined;
name?: string | undefined;
template?: template | ((data: {
component: dxForm;
formData: Record<string, any>;
}, itemElement: any) => string | any) | undefined;
visible?: boolean | undefined;
visibleIndex?: number | undefined;
captionRender?: ((...params: any) => React.ReactNode) | undefined;
captionComponent?: React.ComponentType<any> | undefined;
render?: ((...params: any) => React.ReactNode) | undefined;
component?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IItemProps = React.PropsWithChildren<{
badge?: string;
disabled?: boolean;
html?: string;
icon?: string;
tabTemplate?: (() => string | any) | template;
template?: ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | template;
text?: string;
title?: string;
visible?: boolean;
colSpan?: number | undefined;
cssClass?: string | undefined;
dataField?: string | undefined;
editorOptions?: any | undefined;
editorType?: FormItemComponent;
helpText?: string | undefined;
isRequired?: boolean | undefined;
itemType?: FormItemType;
label?: Record<string, any> | {
alignment?: HorizontalAlignment;
location?: LabelLocation;
showColon?: boolean;
template?: ((itemData: {
component: dxForm;
dataField: string;
editorOptions: any;
editorType: string;
name: string;
text: string;
}, itemElement: any) => string | any) | template;
text?: string | undefined;
visible?: boolean;
};
name?: string | undefined;
validationRules?: Array<CommonTypes.ValidationRule>;
visibleIndex?: number | undefined;
alignItemLabels?: boolean;
caption?: string | undefined;
captionTemplate?: ((data: {
caption: string;
component: dxForm;
name: string;
}, itemElement: any) => string | any) | template;
colCount?: number;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
};
items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>;
tabPanelOptions?: dxTabPanelOptions | undefined;
tabs?: Array<Record<string, any>> | {
alignItemLabels?: boolean;
badge?: string | undefined;
colCount?: number;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
};
disabled?: boolean;
icon?: string | undefined;
items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>;
tabTemplate?: ((tabData: any, tabIndex: number, tabElement: any) => any) | template | undefined;
template?: ((tabData: any, tabIndex: number, tabElement: any) => any) | template | undefined;
title?: string | undefined;
}[];
buttonOptions?: dxButtonOptions | undefined;
horizontalAlignment?: HorizontalAlignment;
verticalAlignment?: VerticalAlignment;
tabRender?: (...params: any) => React.ReactNode;
tabComponent?: React.ComponentType<any>;
render?: (...params: any) => React.ReactNode;
component?: React.ComponentType<any>;
captionRender?: (...params: any) => React.ReactNode;
captionComponent?: React.ComponentType<any>;
}>;
declare const Item: ((props: IItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{
badge?: string | undefined;
disabled?: boolean | undefined;
html?: string | undefined;
icon?: string | undefined;
tabTemplate?: template | (() => string | any) | undefined;
template?: template | ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | undefined;
text?: string | undefined;
title?: string | undefined;
visible?: boolean | undefined;
colSpan?: number | undefined;
cssClass?: string | undefined;
dataField?: string | undefined;
editorOptions?: any | undefined;
editorType?: FormItemComponent | undefined;
helpText?: string | undefined;
isRequired?: boolean | undefined;
itemType?: FormItemType | undefined;
label?: Record<string, any> | {
alignment?: HorizontalAlignment | undefined;
location?: LabelLocation | undefined;
showColon?: boolean | undefined;
template?: template | ((itemData: {
component: dxForm;
dataField: string;
editorOptions: any;
editorType: string;
name: string;
text: string;
}, itemElement: any) => string | any) | undefined;
text?: string | undefined;
visible?: boolean | undefined;
} | undefined;
name?: string | undefined;
validationRules?: CommonTypes.ValidationRule[] | undefined;
visibleIndex?: number | undefined;
alignItemLabels?: boolean | undefined;
caption?: string | undefined;
captionTemplate?: template | ((data: {
caption: string;
component: dxForm;
name: string;
}, itemElement: any) => string | any) | undefined;
colCount?: number | undefined;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
} | undefined;
items?: (dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem)[] | undefined;
tabPanelOptions?: dxTabPanelOptions | undefined;
tabs?: Record<string, any>[] | {
alignItemLabels?: boolean | undefined;
badge?: string | undefined;
colCount?: number | undefined;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
} | undefined;
disabled?: boolean | undefined;
icon?: string | undefined;
items?: (dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem)[] | undefined;
tabTemplate?: template | ((tabData: any, tabIndex: number, tabElement: any) => any) | undefined;
template?: template | ((tabData: any, tabIndex: number, tabElement: any) => any) | undefined;
title?: string | undefined;
}[] | undefined;
buttonOptions?: dxButtonOptions | undefined;
horizontalAlignment?: HorizontalAlignment | undefined;
verticalAlignment?: VerticalAlignment | undefined;
tabRender?: ((...params: any) => React.ReactNode) | undefined;
tabComponent?: React.ComponentType<any> | undefined;
render?: ((...params: any) => React.ReactNode) | undefined;
component?: React.ComponentType<any> | undefined;
captionRender?: ((...params: any) => React.ReactNode) | undefined;
captionComponent?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ILabelProps = React.PropsWithChildren<{
alignment?: HorizontalAlignment;
location?: LabelLocation;
showColon?: boolean;
template?: ((itemData: {
component: dxForm;
dataField: string;
editorOptions: any;
editorType: string;
name: string;
text: string;
}, itemElement: any) => string | any) | template;
text?: string | undefined;
visible?: boolean;
render?: (...params: any) => React.ReactNode;
component?: React.ComponentType<any>;
}>;
declare const Label: ((props: ILabelProps) => React.FunctionComponentElement<React.PropsWithChildren<{
alignment?: HorizontalAlignment | undefined;
location?: LabelLocation | undefined;
showColon?: boolean | undefined;
template?: template | ((itemData: {
component: dxForm;
dataField: string;
editorOptions: any;
editorType: string;
name: string;
text: string;
}, itemElement: any) => string | any) | undefined;
text?: string | undefined;
visible?: boolean | undefined;
render?: ((...params: any) => React.ReactNode) | undefined;
component?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type INumericRuleProps = React.PropsWithChildren<{
ignoreEmptyValue?: boolean;
message?: string;
type?: ValidationRuleType;
}>;
declare const NumericRule: ((props: INumericRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
ignoreEmptyValue?: boolean | undefined;
message?: string | undefined;
type?: ValidationRuleType | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IPatternRuleProps = React.PropsWithChildren<{
ignoreEmptyValue?: boolean;
message?: string;
pattern?: RegExp | string;
type?: ValidationRuleType;
}>;
declare const PatternRule: ((props: IPatternRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
ignoreEmptyValue?: boolean | undefined;
message?: string | undefined;
pattern?: string | RegExp | undefined;
type?: ValidationRuleType | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IRangeRuleProps = React.PropsWithChildren<{
ignoreEmptyValue?: boolean;
max?: Date | number | string;
message?: string;
min?: Date | number | string;
reevaluate?: boolean;
type?: ValidationRuleType;
}>;
declare const RangeRule: ((props: IRangeRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
ignoreEmptyValue?: boolean | undefined;
max?: string | number | Date | undefined;
message?: string | undefined;
min?: string | number | Date | undefined;
reevaluate?: boolean | undefined;
type?: ValidationRuleType | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IRequiredRuleProps = React.PropsWithChildren<{
message?: string;
trim?: boolean;
type?: ValidationRuleType;
}>;
declare const RequiredRule: ((props: IRequiredRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
message?: string | undefined;
trim?: boolean | undefined;
type?: ValidationRuleType | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ISimpleItemProps = React.PropsWithChildren<{
colSpan?: number | undefined;
cssClass?: string | undefined;
dataField?: string | undefined;
editorOptions?: any | undefined;
editorType?: FormItemComponent;
helpText?: string | undefined;
isRequired?: boolean | undefined;
itemType?: FormItemType;
label?: Record<string, any> | {
alignment?: HorizontalAlignment;
location?: LabelLocation;
showColon?: boolean;
template?: ((itemData: {
component: dxForm;
dataField: string;
editorOptions: any;
editorType: string;
name: string;
text: string;
}, itemElement: any) => string | any) | template;
text?: string | undefined;
visible?: boolean;
};
name?: string | undefined;
template?: ((data: {
component: dxForm;
dataField: string;
editorOptions: Record<string, any>;
editorType: string;
name: string;
}, itemElement: any) => string | any) | template;
validationRules?: Array<CommonTypes.ValidationRule>;
visible?: boolean;
visibleIndex?: number | undefined;
render?: (...params: any) => React.ReactNode;
component?: React.ComponentType<any>;
}>;
declare const SimpleItem: ((props: ISimpleItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{
colSpan?: number | undefined;
cssClass?: string | undefined;
dataField?: string | undefined;
editorOptions?: any | undefined;
editorType?: FormItemComponent | undefined;
helpText?: string | undefined;
isRequired?: boolean | undefined;
itemType?: FormItemType | undefined;
label?: Record<string, any> | {
alignment?: HorizontalAlignment | undefined;
location?: LabelLocation | undefined;
showColon?: boolean | undefined;
template?: template | ((itemData: {
component: dxForm;
dataField: string;
editorOptions: any;
editorType: string;
name: string;
text: string;
}, itemElement: any) => string | any) | undefined;
text?: string | undefined;
visible?: boolean | undefined;
} | undefined;
name?: string | undefined;
template?: template | ((data: {
component: dxForm;
dataField: string;
editorOptions: Record<string, any>;
editorType: string;
name: string;
}, itemElement: any) => string | any) | undefined;
validationRules?: CommonTypes.ValidationRule[] | undefined;
visible?: boolean | undefined;
visibleIndex?: number | undefined;
render?: ((...params: any) => React.ReactNode) | undefined;
component?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IStringLengthRuleProps = React.PropsWithChildren<{
ignoreEmptyValue?: boolean;
max?: number;
message?: string;
min?: number;
trim?: boolean;
type?: ValidationRuleType;
}>;
declare const StringLengthRule: ((props: IStringLengthRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
ignoreEmptyValue?: boolean | undefined;
max?: number | undefined;
message?: string | undefined;
min?: number | undefined;
trim?: boolean | undefined;
type?: ValidationRuleType | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ITabProps = React.PropsWithChildren<{
alignItemLabels?: boolean;
badge?: string | undefined;
colCount?: number;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
};
disabled?: boolean;
icon?: string | undefined;
items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>;
tabTemplate?: ((tabData: any, tabIndex: number, tabElement: any) => any) | template | undefined;
template?: ((tabData: any, tabIndex: number, tabElement: any) => any) | template | undefined;
title?: string | undefined;
tabRender?: (...params: any) => React.ReactNode;
tabComponent?: React.ComponentType<any>;
render?: (...params: any) => React.ReactNode;
component?: React.ComponentType<any>;
}>;
declare const Tab: ((props: ITabProps) => React.FunctionComponentElement<React.PropsWithChildren<{
alignItemLabels?: boolean | undefined;
badge?: string | undefined;
colCount?: number | undefined;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
} | undefined;
disabled?: boolean | undefined;
icon?: string | undefined;
items?: (dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem)[] | undefined;
tabTemplate?: template | ((tabData: any, tabIndex: number, tabElement: any) => any) | undefined;
template?: template | ((tabData: any, tabIndex: number, tabElement: any) => any) | undefined;
title?: string | undefined;
tabRender?: ((...params: any) => React.ReactNode) | undefined;
tabComponent?: React.ComponentType<any> | undefined;
render?: ((...params: any) => React.ReactNode) | undefined;
component?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ITabbedItemProps = React.PropsWithChildren<{
colSpan?: number | undefined;
cssClass?: string | undefined;
itemType?: FormItemType;
name?: string | undefined;
tabPanelOptions?: dxTabPanelOptions | undefined;
tabs?: Array<Record<string, any>> | {
alignItemLabels?: boolean;
badge?: string | undefined;
colCount?: number;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
};
disabled?: boolean;
icon?: string | undefined;
items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>;
tabTemplate?: ((tabData: any, tabIndex: number, tabElement: any) => any) | template | undefined;
template?: ((tabData: any, tabIndex: number, tabElement: any) => any) | template | undefined;
title?: string | undefined;
}[];
visible?: boolean;
visibleIndex?: number | undefined;
}>;
declare const TabbedItem: ((props: ITabbedItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{
colSpan?: number | undefined;
cssClass?: string | undefined;
itemType?: FormItemType | undefined;
name?: string | undefined;
tabPanelOptions?: dxTabPanelOptions | undefined;
tabs?: Record<string, any>[] | {
alignItemLabels?: boolean | undefined;
badge?: string | undefined;
colCount?: number | undefined;
colCountByScreen?: Record<string, any> | {
lg?: number | undefined;
md?: number | undefined;
sm?: number | undefined;
xs?: number | undefined;
} | undefined;
disabled?: boolean | undefined;
icon?: string | undefined;
items?: (dxFormSimpleItem | dxFormGroupItem | dxFormTabbedItem | dxFormEmptyItem | dxFormButtonItem)[] | undefined;
tabTemplate?: template | ((tabData: any, tabIndex: number, tabElement: any) => any) | undefined;
template?: template | ((tabData: any, tabIndex: number, tabElement: any) => any) | undefined;
title?: string | undefined;
}[] | undefined;
visible?: boolean | undefined;
visibleIndex?: number | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ITabPanelOptionsProps = React.PropsWithChildren<{
accessKey?: string | undefined;
activeStateEnabled?: boolean;
animationEnabled?: boolean;
bindingOptions?: Record<string, any>;
dataSource?: Array<any | dxTabPanelItem | string> | DataSource | DataSourceOptions | null | Store | string;
deferRendering?: boolean;
disabled?: boolean;
elementAttr?: Record<string, any>;
focusStateEnabled?: boolean;
height?: (() => number | string) | number | string | undefined;
hint?: string | undefined;
hoverStateEnabled?: boolean;
iconPosition?: TabsIconPosition;
itemHoldTimeout?: number;
items?: Array<any | dxTabPanelItem | string>;
itemTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template;
itemTitleTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template;
loop?: boolean;
noDataText?: string;
onContentReady?: ((e: TabPanelContentReadyEvent) => void);
onDisposing?: ((e: TabPanelDisposingEvent) => void);
onInitialized?: ((e: TabPanelInitializedEvent) => void);
onItemClick?: ((e: ItemClickEvent) => void);
onItemContextMenu?: ((e: ItemContextMenuEvent) => void);
onItemHold?: ((e: ItemHoldEvent) => void);
onItemRendered?: ((e: ItemRenderedEvent) => void);
onOptionChanged?: ((e: TabPanelOptionChangedEvent) => void);
onSelectionChanged?: ((e: SelectionChangedEvent) => void);
onSelectionChanging?: ((e: SelectionChangingEvent) => void);
onTitleClick?: ((e: TitleClickEvent) => void);
onTitleHold?: ((e: TitleHoldEvent) => void);
onTitleRendered?: ((e: TitleRenderedEvent) => void);
repaintChangesOnly?: boolean;
rtlEnabled?: boolean;
scrollByContent?: boolean;
scrollingEnabled?: boolean;
selectedIndex?: number;
selectedItem?: any;
showNavButtons?: boolean;
stylingMode?: TabsStyle;
swipeEnabled?: boolean;
tabIndex?: number;
tabsPosition?: Position;
visible?: boolean;
width?: (() => number | string) | number | string | undefined;
defaultItems?: Array<any | dxTabPanelItem | string>;
onItemsChange?: (value: Array<any | dxTabPanelItem | string>) => void;
defaultSelectedIndex?: number;
onSelectedIndexChange?: (value: number) => void;
defaultSelectedItem?: any;
onSelectedItemChange?: (value: any) => void;
itemRender?: (...params: any) => React.ReactNode;
itemComponent?: React.ComponentType<any>;
itemTitleRender?: (...params: any) => React.ReactNode;
itemTitleComponent?: React.ComponentType<any>;
}>;
declare const TabPanelOptions: ((props: ITabPanelOptionsProps) => React.FunctionComponentElement<React.PropsWithChildren<{
accessKey?: string | undefined;
activeStateEnabled?: boolean | undefined;
animationEnabled?: boolean | undefined;
bindingOptions?: Record<string, any> | undefined;
dataSource?: string | any[] | DataSource<any, any> | DataSourceOptions<any, any, any, any> | Store<any, any> | null | undefined;
deferRendering?: boolean | undefined;
disabled?: boolean | undefined;
elementAttr?: Record<string, any> | undefined;
focusStateEnabled?: boolean | undefined;
height?: (() => number | string) | number | string | undefined;
hint?: string | undefined;
hoverStateEnabled?: boolean | undefined;
iconPosition?: TabsIconPosition | undefined;
itemHoldTimeout?: number | undefined;
items?: any[] | undefined;
itemTemplate?: template | ((itemData: any, itemIndex: number, itemElement: any) => string | any) | undefined;
itemTitleTemplate?: template | ((itemData: any, itemIndex: number, itemElement: any) => string | any) | undefined;
loop?: boolean | undefined;
noDataText?: string | undefined;
onContentReady?: ((e: TabPanelContentReadyEvent) => void) | undefined;
onDisposing?: ((e: TabPanelDisposingEvent) => void) | undefined;
onInitialized?: ((e: TabPanelInitializedEvent) => void) | undefined;
onItemClick?: ((e: ItemClickEvent) => void) | undefined;
onItemContextMenu?: ((e: ItemContextMenuEvent) => void) | undefined;
onItemHold?: ((e: ItemHoldEvent) => void) | undefined;
onItemRendered?: ((e: ItemRenderedEvent) => void) | undefined;
onOptionChanged?: ((e: TabPanelOptionChangedEvent) => void) | undefined;
onSelectionChanged?: ((e: SelectionChangedEvent) => void) | undefined;
onSelectionChanging?: ((e: SelectionChangingEvent) => void) | undefined;
onTitleClick?: ((e: TitleClickEvent) => void) | undefined;
onTitleHold?: ((e: TitleHoldEvent) => void) | undefined;
onTitleRendered?: ((e: TitleRenderedEvent) => void) | undefined;
repaintChangesOnly?: boolean | undefined;
rtlEnabled?: boolean | undefined;
scrollByContent?: boolean | undefined;
scrollingEnabled?: boolean | undefined;
selectedIndex?: number | undefined;
selectedItem?: any;
showNavButtons?: boolean | undefined;
stylingMode?: TabsStyle | undefined;
swipeEnabled?: boolean | undefined;
tabIndex?: number | undefined;
tabsPosition?: Position | undefined;
visible?: boolean | undefined;
width?: (() => number | string) | number | string | undefined;
defaultItems?: any[] | undefined;
onItemsChange?: ((value: Array<any | dxTabPanelItem | string>) => void) | undefined;
defaultSelectedIndex?: number | undefined;
onSelectedIndexChange?: ((value: number) => void) | undefined;
defaultSelectedItem?: any;
onSelectedItemChange?: ((value: any) => void) | undefined;
itemRender?: ((...params: any) => React.ReactNode) | undefined;
itemComponent?: React.ComponentType<any> | undefined;
itemTitleRender?: ((...params: any) => React.ReactNode) | undefined;
itemTitleComponent?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type ITabPanelOptionsItemProps = React.PropsWithChildren<{
badge?: string;
disabled?: boolean;
html?: string;
icon?: string;
tabTemplate?: (() => string | any) | template;
template?: ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | template;
text?: string;
title?: string;
visible?: boolean;
tabRender?: (...params: any) => React.ReactNode;
tabComponent?: React.ComponentType<any>;
render?: (...params: any) => React.ReactNode;
component?: React.ComponentType<any>;
}>;
declare const TabPanelOptionsItem: ((props: ITabPanelOptionsItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{
badge?: string | undefined;
disabled?: boolean | undefined;
html?: string | undefined;
icon?: string | undefined;
tabTemplate?: template | (() => string | any) | undefined;
template?: template | ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | undefined;
text?: string | undefined;
title?: string | undefined;
visible?: boolean | undefined;
tabRender?: ((...params: any) => React.ReactNode) | undefined;
tabComponent?: React.ComponentType<any> | undefined;
render?: ((...params: any) => React.ReactNode) | undefined;
component?: React.ComponentType<any> | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
type IValidationRuleProps = React.PropsWithChildren<{
message?: string;
trim?: boolean;
type?: ValidationRuleType;
ignoreEmptyValue?: boolean;
max?: Date | number | string;
min?: Date | number | string;
reevaluate?: boolean;
validationCallback?: ((options: {
column: Record<string, any>;
data: Record<string, any>;
formItem: Record<string, any>;
rule: Record<string, any>;
validator: Record<string, any>;
value: string | number;
}) => boolean);
comparisonTarget?: (() => any);
comparisonType?: ComparisonOperator;
pattern?: RegExp | string;
}>;
declare const ValidationRule: ((props: IValidationRuleProps) => React.FunctionComponentElement<React.PropsWithChildren<{
message?: string | undefined;
trim?: boolean | undefined;
type?: ValidationRuleType | undefined;
ignoreEmptyValue?: boolean | undefined;
max?: string | number | Date | undefined;
min?: string | number | Date | undefined;
reevaluate?: boolean | undefined;
validationCallback?: ((options: {
column: Record<string, any>;
data: Record<string, any>;
formItem: Record<string, any>;
rule: Record<string, any>;
validator: Record<string, any>;
value: string | number;
}) => boolean) | undefined;
comparisonTarget?: (() => any) | undefined;
comparisonType?: ComparisonOperator | undefined;
pattern?: string | RegExp | undefined;
} & {
children?: React.ReactNode;
} & {
elementDescriptor: import("./core/configuration/react/element").IElementDescriptor;
}>>) & NestedComponentMeta;
export default Form;
export { Form, IFormOptions, FormRef, AsyncRule, IAsyncRuleProps, ButtonItem, IButtonItemProps, ButtonOptions, IButtonOptionsProps, ColCountByScreen, IColCountByScreenProps, CompareRule, ICompareRuleProps, CustomRule, ICustomRuleProps, EmailRule, IEmailRuleProps, EmptyItem, IEmptyItemProps, GroupItem, IGroupItemProps, Item, IItemProps, Label, ILabelProps, NumericRule, INumericRuleProps, PatternRule, IPatternRuleProps, RangeRule, IRangeRuleProps, RequiredRule, IRequiredRuleProps, SimpleItem, ISimpleItemProps, StringLengthRule, IStringLengthRuleProps, Tab, ITabProps, TabbedItem, ITabbedItemProps, TabPanelOptions, ITabPanelOptionsProps, TabPanelOptionsItem, ITabPanelOptionsItemProps, ValidationRule, IValidationRuleProps };
import type * as FormTypes from 'devextreme/ui/form_types';
export { FormTypes };