/** * A convenience module for importing [Input](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/Input/) classes * when developing with [TypeScript](https://developers.arcgis.com/javascript/latest/get-started/#typescript). * For example, rather than importing form element inputs one at a time like this: * * ```js * import BarcodeScannerInput from "@arcgis/core/form/elements/inputs/BarcodeScannerInput.js"; * import ComboBoxInput from "@arcgis/core/form/elements/inputs/ComboBoxInput.js"; * import DatePickerInput from "@arcgis/core/form/elements/inputs/DatePickerInput.js"; * import DateTimeOffsetPickerInput from "@arcgis/core/form/elements/inputs/DateTimeOffsetPickerInput.js"; * import DateTimePickerInput from "@arcgis/core/form/elements/inputs/DateTimePickerInput.js"; * import RadioButtonsInput from "@arcgis/core/form/elements/inputs/RadioButtonsInput.js"; * import SwitchInput from "@arcgis/core/form/elements/inputs/SwitchInput.js"; * import TextAreaInput from "@arcgis/core/form/elements/inputs/TextAreaInput.js"; * import TextBoxInput from "@arcgis/core/form/elements/inputs/TextBoxInput.js"; * import TimePickerInput from "@arcgis/core/form/elements/inputs/TimePickerInput.js"; * ``` * * You can use this module to import them on a single line: * * ```js * import { BarcodeScannerInput, ComboBoxInput, DatePickerInput, DateTimeOffsetPickerInput, DateTimePickerInput, RadioButtonsInput, SwitchInput, TextAreaInput, TextBoxInput, TimePickerInput } from "@arcgis/core/form/elements/inputs.js"; * ``` * * This module also allows you to implement [type guards](https://basarat.gitbook.io/typescript/type-system/typeguard) * on the form element inputs, making your code smarter. * * ```js * import { Input } from "@arcgis/core/form/elements/inputs.js"; * * function logFormElementInput(input: Input): void { * if (input.type === "text-area") { * console.log("Form element input type is TextAreaInput"); * } * else { * // The compiler knows the content element must be an input type such as `text-area` | `text-box` | `barcode-scanner` | `radio-buttons` | `combo-box`, etc. * console.log("The value is not a valid form element input.") * } * } * ``` * * @since 4.16 * @see [FormTemplate](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/) * @see [FieldElement](https://developers.arcgis.com/javascript/latest/references/core/form/elements/FieldElement/) * @see [BarcodeScannerInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/BarcodeScannerInput/) * @see [ComboBoxInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/ComboBoxInput/) * @see [DatePickerInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/DatePickerInput/) * @see [DateTimeOffsetPickerInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/DateTimeOffsetPickerInput/) * @see [DateTimePickerInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/DateTimePickerInput/) * @see [RadioButtonsInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/RadioButtonsInput/) * @see [SwitchInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/SwitchInput/) * @see [TextAreaInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/TextAreaInput/) * @see [TextBoxInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/TextBoxInput/) * @see [TimePickerInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/TimePickerInput/) */ import type BarcodeScannerInputClass from "./inputs/BarcodeScannerInput.js"; import type ComboBoxInputClass from "./inputs/ComboBoxInput.js"; import type DatePickerInputClass from "./inputs/DatePickerInput.js"; import type DateTimeOffsetPickerInputClass from "./inputs/DateTimeOffsetPickerInput.js"; import type DateTimePickerInputClass from "./inputs/DateTimePickerInput.js"; import type RadioButtonsInputClass from "./inputs/RadioButtonsInput.js"; import type SwitchInputClass from "./inputs/SwitchInput.js"; import type TextAreaInputClass from "./inputs/TextAreaInput.js"; import type TextBoxInputClass from "./inputs/TextBoxInput.js"; import type TimePickerInputClass from "./inputs/TimePickerInput.js"; /** Form element input types. */ export type Input = BarcodeScannerInputClass | ComboBoxInputClass | DatePickerInputClass | DateTimeOffsetPickerInputClass | DateTimePickerInputClass | RadioButtonsInputClass | SwitchInputClass | TextAreaInputClass | TextBoxInputClass | TimePickerInputClass; /** The `BarcodeScannerInput` class defines the desired user interface is a barcode or QR code scanner. If this type is used in an ArcGIS Maps SDK for JavaScript web application, it will default to the [TextBoxInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/TextBoxInput/) type as the API does not support bar code scanning as an input type. */ export const BarcodeScannerInput: typeof BarcodeScannerInputClass; /** The `BarcodeScannerInput` class defines the desired user interface is a barcode or QR code scanner. If this type is used in an ArcGIS Maps SDK for JavaScript web application, it will default to the [TextBoxInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/TextBoxInput/) type as the API does not support bar code scanning as an input type. */ export type BarcodeScannerInput = BarcodeScannerInputClass; /** The `ComboBoxInput` class defines the desired user interface for a combo box group. */ export const ComboBoxInput: typeof ComboBoxInputClass; /** The `ComboBoxInput` class defines the desired user interface for a combo box group. */ export type ComboBoxInput = ComboBoxInputClass; /** The `DatePickerInput` class defines the desired user interface for working with date-only types. */ export const DatePickerInput: typeof DatePickerInputClass; /** The `DatePickerInput` class defines the desired user interface for working with date-only types. */ export type DatePickerInput = DatePickerInputClass; /** The `DateTimeOffsetPickerInput` class defines the desired user interface for editing date and time fields in a form that also requires the option to include an offset from Coordinated Universal Time (UTC). */ export const DateTimeOffsetPickerInput: typeof DateTimeOffsetPickerInputClass; /** The `DateTimeOffsetPickerInput` class defines the desired user interface for editing date and time fields in a form that also requires the option to include an offset from Coordinated Universal Time (UTC). */ export type DateTimeOffsetPickerInput = DateTimeOffsetPickerInputClass; /** The `DateTimePickerInput` class defines the desired user interface for editing date (including time) fields in a form. */ export const DateTimePickerInput: typeof DateTimePickerInputClass; /** The `DateTimePickerInput` class defines the desired user interface for editing date (including time) fields in a form. */ export type DateTimePickerInput = DateTimePickerInputClass; /** The `RadioButtonsInput` class defines the desired user interface for a radio button group. */ export const RadioButtonsInput: typeof RadioButtonsInputClass; /** The `RadioButtonsInput` class defines the desired user interface for a radio button group. */ export type RadioButtonsInput = RadioButtonsInputClass; /** The `SwitchInput` class defines the desired user interface for a binary switch or toggle. This should be used when selecting between two options in a form. */ export const SwitchInput: typeof SwitchInputClass; /** The `SwitchInput` class defines the desired user interface for a binary switch or toggle. This should be used when selecting between two options in a form. */ export type SwitchInput = SwitchInputClass; /** `TextAreaInput` defines the desired user interface is a multi-line text area. */ export const TextAreaInput: typeof TextAreaInputClass; /** `TextAreaInput` defines the desired user interface is a multi-line text area. */ export type TextAreaInput = TextAreaInputClass; /** `TextBoxInput` defines the desired user interface is a single-line text box. */ export const TextBoxInput: typeof TextBoxInputClass; /** `TextBoxInput` defines the desired user interface is a single-line text box. */ export type TextBoxInput = TextBoxInputClass; /** The `TimePickerInput` class defines the desired user interface for working with time-only types. */ export const TimePickerInput: typeof TimePickerInputClass; /** The `TimePickerInput` class defines the desired user interface for working with time-only types. */ export type TimePickerInput = TimePickerInputClass;