@justeat/f-form-field
v6.6.1
Published
Fozzie Form Field - Fozzie Form Field Component
Downloads
99
Maintainers
Keywords
Readme
f-form-field
Fozzie Form Field Component.
Usage
Installation
Install the module using npm or Yarn:
yarn add @justeat/f-form-field
npm install @justeat/f-form-field
Vue Applications
You can import it in your Vue SFC like this (please note that styles have to be imported separately):
import FormField from '@justeat/f-form-field';
import '@justeat/f-form-field/dist/f-form-field.css';
export default {
components: {
FormField
}
}
If you are using Webpack, you can import the component dynamically to separate the f-form-field
bundle from the main bundle.client.js
:
import '@justeat/f-form-field/dist/f-form-field.css';
export default {
components: {
// …
FormField: () => import(/* webpackChunkName: "form-field" */ '@justeat/f-form-field')
}
}
Configuration
Props
There may be props that allow you to customise its functionality.
The props that can be defined are as follows (if any):
| Prop | Type | Default | Description |
| ----- | ----- | ------- | ----------- |
| assistiveText
| String
| ''
| Text to assist the user that will display underneath the input field. |
| dropdownOptions
| Array
| null
| The options to be displayed in the dropdown. Each option can contain the following properties: text
(required) - The text to be displayed.value
(required) - The underlying value for the option.disabled
(optional) - Can be used to prevent an option from being selected.selected
(optional) - This will be ignored by v-model
(see Vue docs on Form Input Bindings), but it may be used together with disabled
to create a placeholder. |
| fieldSize
| String
| medium
| The size of the form field. Options: small
, medium
, large
|
| hasError
| Boolean
| false
| When true
border colour changes to red. |
| inputType
| String
| text
| The type of input needed. Options: text
, email
, password
, radio
, checkbox
, dropdown
, number
, tel
, textarea
|
| isGrouped
| Boolean
| false
| When true
will remove margin between all grouped form fields. |
| labelDescription
| String
| ''
| Extra text that will display underneath the label text. |
| labelDetails
| String
| ''
| Details for the label that will display on the right of label text. |
| labelText
| String
| ''
| The text that will be displayed in the form field label. |
| locale
| String
| ''
| Sets locale for I18n. |
| maxNumber
| Number
or undefined
| undefined
| Sets the value of the max
property when inputType
is number
|
| minNumber
| Number
or undefined
| undefined
| Sets the value of the min
property when inputType
is number
|
| prefix
| String
| ''
| Prefix will display on the left of the input field. |
| shouldShowLabelText
| Boolean
| true
| Hides the label if set to false
|
| suffix
| String
| ''
| Suffix will display on the right of the input field. |
| value
| String
or Number
| ''
| The value of the form field. |
| isVisuallyRequired
| Boolean
| true
| Adds a visual indicator (e.g., an asterisk) to the form field label when the field also has the attribute required=required
. When false, a field can still be required but there will be no visual indicator. |
| required
| Boolean
| n/a
This is an optional attribute, not a prop. | This attribute will be passed to the native field elements (e.g., input
, select
, textarea
) and should be passed to fields that are required for the form to be valid. Fields are now not required by default. |
Slots
Available slots that can be used.
| Slot Name | Type | Description |
| ----- | ----- | ----------- |
| icon-leading
| Icon | Will display an icon inside the input field on the left hand side. |
| icon-trailing
| Icon | Will display an icon inside the input field on the right hand side. |
Events
The events that can be subscribed to are as follows (if any):
| Event | Description |
| ----- | ----------- |
| input
| Fired when a user changes the value of the form field, args contain details of the change and its context. |
Development
Start by cloning the repository and installing the required dependencies:
$ git clone [email protected]:justeat/fozzie-components.git
$ cd fozzie-components
$ yarn
Change directory to the f-form-field
package:
$ cd packages/components/molecules/f-form-field
Testing
Unit, Integration and Contract
To test all components, run from root directory.
To test only f-form-field
, run from the ./fozzie-components/packages/f-form-field
directory.
yarn test
Component Tests
# Run Component tests for all components
# Note: Ensure Storybook is not running when running the following commands
cd ./fozzie-components
yarn storybook:build
yarn storybook:serve-static
yarn test-component:chrome
OR
# Run Component tests for f-form-field
# Note: Ensure Storybook is not running when running the following commands
cd ./fozzie-components/packages/f-form-field
yarn test-component:chrome