@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
128 lines (107 loc) • 8.89 kB
TypeScript
/**
* 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;