2.1.9-alpha.4 • Published 2 years ago

@humany/widget-forms v2.1.9-alpha.4

Weekly downloads
79
License
SEE LICENSE IN LI...
Repository
-
Last release
2 years ago

@humany/widget-forms

This package contains utilities for creating form definitions for Humany widgets, used in different parts in the widget framework. The utilities are meant to be used together with other APIs, such as the Conversation Platform API, and it does not have capabilities to render a UI completely on its own.

FormBuilder

The FormBuilder provides a convenient way to create and modify Form objects. Create an instance by using the create() factory as shown below.

import { FormBuilder } from '@humany/widget-forms';

const builder = FormBuilder.create();

createComponent(info: ComponentInfo, createChildren?: ComponentFactory);

Creates a new component based on the provided ComponentInfo object and appends it to the current Form.

builder.createComponent({
    component: 'Text',
    type: 'string',
    name: 'model',
});

ComponentInfo

Describes a component in a form.

NameTypeRequiredDescription
namestringYesThe name of the component.
typestringYesThe underlying type of the component. Can be 'string', 'number', 'boolean', 'array', or 'object' for components with children.
componentstringYesThe UI component used to render the component. Can be any of the built-in UI components.
titlestringNoThe display name of the component.
evaluatebooleanNoIndicates whether changes to the component value should be evaluated. Default: false.
valuestring, number, booleanNoThe initial value of the component.
requiredbooleanNoWhether the component should be displayed as being required. Default: false.
itemsArray<OptionItem>NoOptions for type 'array' when multiple fixed options are available.

OptionItem

One of a series of fixed options available for list och multi-select components. Name | Type | Required | Description -----|------|----------|------------ label|string|Yes|The text label to be displayed for the item. value|string|Yes|The value associated to the item.

ComponentFactory = (builder: FormBuilder) => void

A factory method for creating nested components such as fieldset.

Built-in UI components

NameSupported value typesDescription
AgreementbooleanCheckbox with associated link.
CheckboxListstring[]List of checboxes.
DropDownListstring[]List of select options.
EmailstringInput with e-mail constraint.
GenericDivN/AEmpty div used as placeholder when styling.
NumbernumberInput with number constraint.
PasswordstringPassword input.
RadioButtonListstring[]List of radio buttons.
TextstringInput text.
TextareastringInput textarea.

Creating simple components

The following example shows construction of a form with two components, one for country and one for city.

const form = builder
    .createComponent({
        component: 'Text',
        type: 'string',
        name: 'country',
        value: 'SE',
    })
    .createComponent({
        component: 'Text',
        type: 'string',
        name: 'city',
        value: 'Stockholm',
    })
    .get();

Creating nested components

The following example shows construction of a form with nested components. The first component is a fieldset holding two child components; first and and last name. The second argument to the fieldset component is a ComponentFactory function that exposes a FormBuilder instance used to create the nested child components.

const form = builder
    .createComponent(
        {
            component: 'Fieldset',
            type: 'object',
            name: 'name',
        },
        (builder: FormBuilder) => {
            builder
                .createComponent({
                    component: 'Text',
                    type: 'string',
                    name: 'first-name',
                    value: 'John',
                })
                .createComponent({
                    component: 'Text',
                    type: 'string',
                    name: 'last-name',
                    value: 'Doe',
                });
        }
    )
    .get();
2.1.9-alpha.4

2 years ago

1.1.11

2 years ago

2.1.9-alpha.0

2 years ago

2.1.9-alpha.1

2 years ago

2.1.9-alpha.2

2 years ago

2.1.9-alpha.3

2 years ago

2.1.8

2 years ago

2.1.7

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.10

2 years ago

2.1.6

2 years ago

2.1.5

2 years ago

2.1.4

2 years ago

2.1.3

3 years ago

1.1.7

3 years ago

2.1.2

3 years ago

2.1.1

3 years ago

1.1.6

3 years ago

2.1.0

3 years ago

2.0.11

3 years ago

2.0.10

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

1.1.5

3 years ago

2.0.7

3 years ago

1.1.4

3 years ago

2.0.6

3 years ago

1.1.3

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

1.1.2

3 years ago

2.0.3

4 years ago

1.1.1

4 years ago

2.0.2

4 years ago

2.0.2-alpha.7

4 years ago

2.0.2-alpha.6

4 years ago

2.0.2-alpha.5

4 years ago

2.0.2-alpha.4

4 years ago

2.0.2-alpha.3

4 years ago

2.0.2-alpha.2

4 years ago

2.0.2-alpha.0

4 years ago

2.0.2-alpha.1

4 years ago

1.1.1-beta.0

4 years ago

1.1.0

4 years ago

1.1.0-beta.3

4 years ago

1.1.0-beta.2

4 years ago

1.1.0-beta.1

4 years ago

1.0.29

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

2.0.0-beta.32

4 years ago

1.0.28

4 years ago

2.0.0-beta.31

4 years ago

2.0.0-beta.30

4 years ago

2.0.0-beta.29

4 years ago

2.0.0-beta.28

4 years ago

2.0.0-beta.27

4 years ago

2.0.0-beta.26

4 years ago

2.0.0-beta.25

4 years ago

2.0.0-beta.24

4 years ago

2.0.0-beta.23

4 years ago

2.0.0-beta.22

4 years ago

2.0.0-beta.21

4 years ago

2.0.0-beta.20

4 years ago

2.0.0-beta.19

4 years ago

2.0.0-beta.18

4 years ago

2.0.0-beta.17

4 years ago

1.0.27

4 years ago

2.0.0-beta.15

4 years ago

2.0.0-beta.16

4 years ago

1.0.26

4 years ago

2.0.0-beta.14

4 years ago

2.0.0-beta.13

4 years ago

2.0.0-beta.12

4 years ago

2.0.0-beta.11

4 years ago

2.0.0-beta.10

4 years ago

2.0.0-beta.9

4 years ago

2.0.0-beta.8

4 years ago

2.0.0-beta.7

4 years ago

2.0.0-beta.6

4 years ago

2.0.0-beta.5

4 years ago

2.0.0-beta.4

4 years ago

2.0.0-beta.3

4 years ago

2.0.0-beta.2

4 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

1.0.0-beta.25

5 years ago

1.0.0-beta.24

6 years ago

1.0.0-beta.23

6 years ago

1.0.0-beta.22

6 years ago

1.0.0-beta.21

6 years ago

1.0.0-beta.20

6 years ago

1.0.0-beta.19

6 years ago

1.0.0-beta.18

6 years ago

1.0.0-beta.17

6 years ago

1.0.0-beta.14

6 years ago

1.0.0-beta.13

6 years ago

1.0.0-beta.7

6 years ago