Input Options
EcoFlowJs provides a number of input options that can be used to configure the output or take data from the users.
A input option is basically a object that represents type of input and its specification.
Input Options Properties
| Parameter | Type (Default) | Description | 
|---|---|---|
| name | string | The name of the input. | 
| label | string | The label for the input. | 
| type | ModuleSpecsInputsTypes ("String") | The type of the input. | 
| [hint] | string | The hint for the input type. | 
| [required] | boolean | Indicates if the input is required. | 
| [codeLanguage] | string ("javascript") | The programming language for the input. For more information documentation of react-monaco-editor here | 
| [methods] | API_METHODS[] | ((value?: {[key: string]: any;}) => API_METHODS[] | Promise<API_METHODS[]>) | The methods for the input. | 
| [radioValues] | string | string[] | ((value?: { [key: string]: any; }) => string | string[] | Promise<string | string[]>) | The values for radio buttons. | 
| [pickerOptions] | string[] | ModuleSpecsInputsTypeOptions[] | ((value?: { [key: string]: any; }) => string[] | ModuleSpecsInputsTypeOptions[] | Promise<string[] | ModuleSpecsInputsTypeOptions[]>) | The options for a picker field. | 
| [listBoxSorting] | boolean | Indicates if the list box should be sorted. | 
| [defaultValue] | string | number | boolean | Date | string[] | {start: number, end: number} | ((value?: { [key: string]: any;}) => string | number | boolean | Date | string[] | {start: number, end: number}) | The default value for the input field. | 
Fetching values
The values can be retrieved in the controller using the EcoContext.
For more information check the controller documentation here
Examples
Route
{
    name: "apiEndpoint",
    label: "API End point",
    type: "Route",
}
API End point
/
Methods
{
    name: "apiMethod",
    label: "Method",
    type: "Methods",
    methods: ["GET", "POST", "PUT", "PATCH", "DELETE"],
}
note
The methods parameter must present for the Method type.
Method
Code
{
    name: "code",
    label: "Code",
    type: "Code",
    codeLanguage: "json"
}
Code
Toggle
{
    name: "toggle",
    label: "Toggle",
    type: "Toggle",
}
Toggle
Date
{
    name: "date",
    label: "Date",
    type: "Date",
}
Date
Time
{
    name: "time",
    label: "Time",
    type: "Time",
}
Date
DateTime
{
    name: "datetime",
    label: "DateTime",
    type: "DateTime",
}
Date
Number
{
    name: "number",
    label: "Number",
    type: "Number",
}
Number
String
{
    name: "text",
    label: "String",
    type: "String",
}
String
HiddenString
{
    name: "password",
    label: "Hidden String",
    type: "HiddenString",
}
Hidden String
CheckPicker
{
    name: "check-picker",
    label: "Check Picker",
    type: "CheckPicker",
    pickerOptions: ["hello", "world", "yes", "No"],
}
Check Picker
SelectPicker
{
    name: "select-picker",
    label: "Select Picker",
    type: "SelectPicker",
    pickerOptions: ["hello", "world", "yes", "No"],
}
note
The pickerOptions parameter must present for the SelectPicker type else will be considered as an empty array.
Select Picker
Checkbox
{
    name: "checkbox",
    label: "Checkbox",
    type: "Checkbox",
}
Checkbox
Radio
{
    name: "radio",
    label: "Radio",
    type: "Radio",
    radioValues: ["hello", "world", "yes", "No"],
}
note
The radioValues parameter must present for the Radio type else will be considered as an empty array.
Radio
Range
{
    name: "range",
    label: "Range",
    type: "Range",
}
Range
to
ListBox
{
    name: "listbox",
    label: "ListBox",
    type: "ListBox",
}
ListBox
TypeScript Properties
ModuleSpecsInputsTypes
type ModuleSpecsInputsTypes =
  | "Route" // Default value for Request Node Types
  | "DB_Selector" // Default value for DB Selectors
  | "Methods" // Request Node API Methods
  | "Code" // Code Editor Input Type
  | "Toggle" // Toggle Input Type
  | "Date" // Date Input Type
  | "Time" // Time Input Type
  | "DateTime" // Date Time Input Type
  | "Number" // Number Input Type
  | "String" // Text Input Type (DEFAULT VALUE)
  | "HiddenString" // Password Input Type
  | "CheckPicker" // List Picker Input Type
  | "SelectPicker" // Select Picker Input Type
  | "Checkbox" // Checkbox Input Type
  | "Radio" // Radio Input Type
  | "Range" // Range or Slider Input Type
  | "ListBox"; // List Box Input Type
API_METHODS
/**
 * Defines a type for API methods that can be used in HTTP requests.
 * Possible values are "GET", "POST", "PUT", "DELETE", and "PATCH".
 */
type API_METHODS = "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
ModuleSpecsInputsTypeOptions
interface ModuleSpecsInputsTypeOptions {
  /**
   * The label of the Select picker type.
   */
  label: string;
  /**
   * The value of the input type.
   */
  value: string;
}