import { LabelPosition } from "components/constants"; import { FILL_WIDGET_MIN_WIDTH } from "constants/minWidthConstants"; import { ResponsiveBehavior } from "utils/autoLayout/constants"; import { DynamicHeight } from "utils/WidgetFeatures"; import { CONFIG as BaseConfig } from "widgets/BaseInputWidget"; import type { BaseInputWidgetProps } from "widgets/BaseInputWidget/widget"; import IconSVG from "./icon.svg"; import Widget from "./widget"; export const CONFIG = { features: { dynamicHeight: { sectionIndex: 3, defaultValue: DynamicHeight.FIXED, active: true, }, }, type: Widget.getWidgetType(), name: "Input", iconSVG: IconSVG, needsMeta: true, searchTags: ["form", "text input", "number", "textarea"], defaults: { ...BaseConfig.defaults, rows: 7, labelPosition: LabelPosition.Top, inputType: "TEXT", widgetName: "Input", version: 2, showStepArrows: false, responsiveBehavior: ResponsiveBehavior.Fill, minWidth: FILL_WIDGET_MIN_WIDTH, }, properties: { derived: Widget.getDerivedPropertiesMap(), default: Widget.getDefaultPropertiesMap(), meta: Widget.getMetaPropertiesMap(), config: Widget.getPropertyPaneConfig(), contentConfig: Widget.getPropertyPaneContentConfig(), styleConfig: Widget.getPropertyPaneStyleConfig(), stylesheetConfig: Widget.getStylesheetConfig(), autocompleteDefinitions: Widget.getAutocompleteDefinitions(), setterConfig: Widget.getSetterConfig(), }, autoLayout: { disabledPropsDefaults: { labelPosition: LabelPosition.Top, labelTextSize: "0.875rem", }, autoDimension: (props: BaseInputWidgetProps) => ({ height: props.inputType !== "MULTI_LINE_TEXT", }), defaults: { rows: 6.6, }, widgetSize: [ { viewportMinWidth: 0, configuration: () => { return { minWidth: "120px", }; }, }, ], disableResizeHandles: (props: BaseInputWidgetProps) => ({ vertical: props.inputType !== "MULTI_LINE_TEXT", }), }, }; export default Widget;