@justeat/f-form-field

Fozzie Form Field - Fozzie Form Field Component

Usage no npm install needed!

<script type="module">
  import justeatFFormField from 'https://cdn.skypack.dev/@justeat/f-form-field';
</script>

README

f-form-field

Fozzie Bear

Fozzie Form Field Component.


npm version CircleCI Coverage Status Known Vulnerabilities


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.

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

# 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

Documentation to be completed once module is in stable state.