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( '@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 git@github.com: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
cd ./fozzie-components
yarn storybook:build
yarn storybook:serve-static
yarn test-component:chrome
OR
cd ./fozzie-components/packages/f-form-field
yarn test-component:chrome
Documentation to be completed once module is in stable state.