@eclipse-scout/core
Version:
Eclipse Scout runtime
221 lines • 10.6 kB
TypeScript
import { Action, DropType, FormField, FormFieldLabelPosition, FormFieldStatusPosition, FormFieldStyle, FormFieldSuppressStatus, FormFieldTooltipAnchor, FormFieldValidationResultProvider, GridData, Menu, ObjectOrChildModel, ObjectOrModel, ObjectOrType, StatusMenuMapping, StatusOrModel, TooltipSupportOptions, WidgetModel } from '../../index';
export interface FormFieldModel extends WidgetModel {
/**
* Specifies whether it should be possible to drop elements onto the field.
*
* Currently, only {@link DropType.FILE_TRANSFER} is supported.
*
* By default, dropping is disabled.
*/
dropType?: DropType;
/**
* Specifies the maximum size in bytes a file can have if it is being dropped.
*
* It only has an effect if {@link dropType} is set to {@link DropType.FILE_TRANSFER}.
*
* Default is {@link dragAndDrop.DEFAULT_DROP_MAXIMUM_SIZE}
*/
dropMaximumSize?: number;
/**
* If set, the value will be considered invalid and the status displayed in the status area of the field.
*
* {@link FormField.getValidationResult} also considers this property when the field is validated, e.g. by a {@link Form}.
*/
errorStatus?: StatusOrModel;
/**
* Defines the style of the field.
*
* - {@link FormFieldStyle.CLASSIC}: The field typically has a border surrounding the whole field.
* - {@link FormFieldStyle.ALTERNATIVE}: The field typically only has a bottom border.
*
* Default is {@link FormFieldStyle.ALTERNATIVE}, set by {@link FormField.DEFAULT_FIELD_STYLE}.
*/
fieldStyle?: FormFieldStyle;
/**
* Defines the dimensions of the grid cell containing the field.
*
* It has only an effect if the parent container uses a {@link LogicalGridLayout}, which is for example the case if the field is placed inside a {@link GroupBox}.
*
* The {@link logicalGrid} uses these hints to calculate the effective {@link FormField.gridData}, most importantly {@link GridData.x} and {@link GridData.y}.
*
* @see {@link LogicalGridLayout} on how the layout works
* @see {@link GridDataModel} for the configuration possibilities.
*/
gridDataHints?: ObjectOrModel<GridData>;
/**
* Configures the keystrokes that should be registered in the current {@link keyStrokeContext}.
*
* Use the {@link ActionModel.keyStroke} to assign the keys that need to be pressed.
*
* @see KeyStrokeContext
*/
keyStrokes?: ObjectOrChildModel<Action>[];
/**
* The label of the field.
*/
label?: string;
/**
* Defines whether the label should be visible.
*
* If set to false, the space, where the label would be, will be used by the actual field.
*/
labelVisible?: boolean;
/**
* Defines the position of the label.
*
* By default, the label is positioned on the left side.
*/
labelPosition?: FormFieldLabelPosition;
/**
* Defines the width of the label in pixel. If the value is <= 0 the property has no effect.
*
* Default is 0
*/
labelWidthInPixel?: number;
/**
* Defines whether the label should be as width as preferred by the UI.
*/
labelUseUiWidth?: boolean;
/**
* Defines whether HTML code in the {@link label} property should be interpreted. If set to false, the HTML will be encoded.
*
* Default is false.
*/
labelHtmlEnabled?: boolean;
/**
* Defines whether the user has to fill out this field.
*
* If set to true, an indicator is shown so the user knows he cannot leave it empty.
* {@link FormField.getValidationResult} also considers this property together with {@link FormField.empty} when the field is validated, e.g. by a {@link Form}.
*
* Default is false.
*
* @see FormField._computeEmpty
*/
mandatory?: boolean;
/**
* Defines which menus should be visible inside the tooltip if an {@link errorStatus} is active.
*/
statusMenuMappings?: ObjectOrChildModel<StatusMenuMapping>[];
/**
* Defines the menus for the form field.
*
* Depending on the concrete field, the menus will be available through a context menu in the status area on the right of the field
* (e.g. for {@link StringField}) or in a {@link MenuBar} (e.g. for {@link GroupBox}.
*/
menus?: ObjectOrChildModel<Menu>[];
/**
* Defines whether the {@link FocusManager} is allowed to consider this field when computing the first focusable field in a container, e.g. in a {@link Form}.
*
* Default is false.
*/
preventInitialFocus?: boolean;
/**
* Defines the position of the status area, that displays {@link errorStatus}, {@link menus} and {@link tooltipText}.
*
* By default the status area is on the right side of the field.
*/
statusPosition?: FormFieldStatusPosition;
/**
* Specifies whether the status area should always be visible.
*
* If set to true, a small space on the right of the field will be reserved for the status.
* The space is always visible, even if there is no {@link errorStatus}, {@link menus} and {@link tooltipText}.
* This makes sure, that fields in the same grid column are nicely aligned.
*
* If the alignment on the right side is not required or wastes too much space on small containers, it can be removed by setting this property to false.
* However, the status area appears as soon as a {@link errorStatus}, {@link menus} or {@link tooltipText} needs to be displayed. So it will only be invisible if it would be empty.
*
* Default is true.
*/
statusVisible?: boolean;
/**
* Allows to suppress the display of the {@link errorStatus}.
*/
suppressStatus?: FormFieldSuppressStatus;
/**
* The text to be used in the {@link Tooltip} that is either displayed in the status area or when hovering over the field, depending on {@link tooltipAnchor}.
*/
tooltipText?: string;
/**
* Defines where and how the tooltip configured by {@link tooltipText} should appear.
*
* By default, the tooltip is shown when the user clicks on the info icon in the status area.
*/
tooltipAnchor?: FormFieldTooltipAnchor;
/**
* Can be used to provide custom options when creating an on-field-tooltip ({@link tooltipAnchor is set to {@link FormField.TooltipAnchor.ON_FIELD}}.
* If not specified, the default options created by {@link FormField._createOnFieldTooltipOptions} are used.
*/
onFieldTooltipOptionsCreator?: (this: FormField) => TooltipSupportOptions;
/**
* Sets the font of the field using the HTML style attribute.
*
* *Note*: this property should be avoided in general in favor of {@link cssClass}, because the style attribute will always override the rules defined by the stylesheet.
*/
font?: string;
/**
* Sets the foreground color of the field using the HTML style attribute.
*
* It can either be a hex based color value (without #), a color name or a color function, see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value.
*
* *Note*: this property should be avoided in general in favor of {@link cssClass}, because the style attribute will always override the rules defined by the stylesheet.
* This means, if a color is specified by this property, the field will always have that color even if it is disabled, hovered, selected etc.
*/
foregroundColor?: string;
/**
* Sets the background color of the field using the HTML style attribute.
*
* It can either be a hex based color value (without #), a color name or a color function, see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value.
*
* *Note*: this property should be avoided in general in favor of {@link cssClass}, because the style attribute will always override the rules defined by the stylesheet.
* This means, if a color is specified by this property, the field will always have that color even if it is disabled, hovered, selected etc.
*/
backgroundColor?: string;
/**
* Sets the font of the label using the HTML style attribute.
*
* *Note*: this property should be avoided in general in favor of {@link cssClass}, because the style attribute will always override the rules defined by the stylesheet.
*/
labelFont?: string;
/**
* Sets the foreground color of the label using the HTML style attribute.
*
* It can either be a hex based color value (without #), a color name or a color function, see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value.
*
* *Note*: this property should be avoided in general in favor of {@link cssClass}, because the style attribute will always override the rules defined by the stylesheet.
* This means, if a color is specified by this property, the field will always have that color even if it is disabled, hovered, selected etc.
*/
labelForegroundColor?: string;
/**
* Sets the background color of the label using the HTML style attribute.
*
* It can either be a hex based color value (without #), a color name or a color function, see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value.
*
* *Note*: this property should be avoided in general in favor of {@link cssClass}, because the style attribute will always override the rules defined by the stylesheet.
* This means, if a color is specified by this property, the field will always have that color even if it is disabled, hovered, selected etc.
*/
labelBackgroundColor?: string;
/**
* Configures whether save needed should be computed.
*
* If set to false, {@link FormField.saveNeeded} will always return false for this field, even if a child field would return true.
* However, if the field was {@link FormField.touched}, {@link FormField.saveNeeded} will be true.
*
* Default is true.
*/
checkSaveNeeded?: boolean;
/**
* Specifies whether the form lifecycle ignores child fields when visiting this field.
*
* The default is false.
*/
lifecycleBoundary?: boolean;
/**
* Provides the validation result containing information about the validity of a form field.
*
* @see FormField.getValidationResult
*/
validationResultProvider?: ObjectOrType<FormFieldValidationResultProvider>;
}
//# sourceMappingURL=FormFieldModel.d.ts.map