@dhis2/ui-forms 8.1.10 → 8.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/build/cjs/CheckboxFieldFF/CheckboxFieldFF.js +24 -21
  2. package/build/cjs/CheckboxFieldFF/CheckboxFieldFF.stories.js +3 -27
  3. package/build/cjs/FieldGroupFF/FieldGroupFF.js +7 -6
  4. package/build/cjs/FieldGroupFF/FieldGroupFF.stories.js +3 -13
  5. package/build/cjs/FileInputFieldFF/FileInputFieldFF.js +17 -18
  6. package/build/cjs/FileInputFieldFF/FileInputFieldFF.stories.e2e.js +12 -8
  7. package/build/cjs/FileInputFieldFF/FileInputFieldFF.stories.js +3 -27
  8. package/build/cjs/InputFieldFF/InputFieldFF.js +27 -24
  9. package/build/cjs/InputFieldFF/InputFieldFF.stories.js +3 -27
  10. package/build/cjs/MultiSelectFieldFF/MultiSelectFieldFF.js +15 -14
  11. package/build/cjs/MultiSelectFieldFF/MultiSelectFieldFF.stories.e2e.js +13 -10
  12. package/build/cjs/MultiSelectFieldFF/MultiSelectFieldFF.stories.js +3 -29
  13. package/build/cjs/RadioFieldFF/RadioFieldFF.js +24 -21
  14. package/build/cjs/RadioFieldFF/RadioFieldFF.stories.js +3 -27
  15. package/build/cjs/SingleSelectFieldFF/SingleSelectFieldFF.js +15 -14
  16. package/build/cjs/SingleSelectFieldFF/SingleSelectFieldFF.stories.e2e.js +13 -10
  17. package/build/cjs/SingleSelectFieldFF/SingleSelectFieldFF.stories.js +3 -29
  18. package/build/cjs/SwitchFieldFF/SwitchFieldFF.js +24 -21
  19. package/build/cjs/SwitchFieldFF/SwitchFieldFF.stories.js +3 -27
  20. package/build/cjs/TextAreaFieldFF/TextAreaFieldFF.js +26 -23
  21. package/build/cjs/TextAreaFieldFF/TextAreaFieldFF.stories.js +3 -27
  22. package/build/cjs/formDecorator.js +6 -5
  23. package/build/cjs/index.js +12 -11
  24. package/build/cjs/locales/en/translations.json +0 -1
  25. package/build/cjs/shared/helpers/createChangeHandler.js +19 -16
  26. package/build/cjs/shared/helpers/createSelectChangeHandler.js +10 -6
  27. package/build/cjs/shared/propTypes.js +1 -1
  28. package/build/cjs/transformers/arrayWithIdObjects.js +6 -3
  29. package/build/cjs/validators/__tests__/createPattern.test.js +1 -1
  30. package/build/cjs/validators/composeValidators.js +10 -2
  31. package/build/cjs/validators/helpers/index.js +1 -1
  32. package/build/cjs/validators/number.js +1 -1
  33. package/build/cjs/validators/string.js +1 -1
  34. package/build/cjs/validators/test-helpers/index.js +2 -2
  35. package/build/cjs/validators/url.js +1 -1
  36. package/build/es/CheckboxFieldFF/CheckboxFieldFF.js +24 -21
  37. package/build/es/CheckboxFieldFF/CheckboxFieldFF.stories.js +2 -26
  38. package/build/es/FieldGroupFF/FieldGroupFF.js +7 -6
  39. package/build/es/FieldGroupFF/FieldGroupFF.stories.js +2 -12
  40. package/build/es/FileInputFieldFF/FileInputFieldFF.js +17 -18
  41. package/build/es/FileInputFieldFF/FileInputFieldFF.stories.e2e.js +12 -8
  42. package/build/es/FileInputFieldFF/FileInputFieldFF.stories.js +2 -26
  43. package/build/es/InputFieldFF/InputFieldFF.js +27 -24
  44. package/build/es/InputFieldFF/InputFieldFF.stories.js +2 -26
  45. package/build/es/MultiSelectFieldFF/MultiSelectFieldFF.js +15 -14
  46. package/build/es/MultiSelectFieldFF/MultiSelectFieldFF.stories.e2e.js +13 -10
  47. package/build/es/MultiSelectFieldFF/MultiSelectFieldFF.stories.js +2 -28
  48. package/build/es/RadioFieldFF/RadioFieldFF.js +24 -21
  49. package/build/es/RadioFieldFF/RadioFieldFF.stories.js +2 -26
  50. package/build/es/SingleSelectFieldFF/SingleSelectFieldFF.js +15 -14
  51. package/build/es/SingleSelectFieldFF/SingleSelectFieldFF.stories.e2e.js +13 -10
  52. package/build/es/SingleSelectFieldFF/SingleSelectFieldFF.stories.js +2 -28
  53. package/build/es/SwitchFieldFF/SwitchFieldFF.js +24 -21
  54. package/build/es/SwitchFieldFF/SwitchFieldFF.stories.js +2 -26
  55. package/build/es/TextAreaFieldFF/TextAreaFieldFF.js +26 -23
  56. package/build/es/TextAreaFieldFF/TextAreaFieldFF.stories.js +2 -26
  57. package/build/es/formDecorator.js +6 -5
  58. package/build/es/locales/en/translations.json +0 -1
  59. package/build/es/shared/helpers/createChangeHandler.js +19 -16
  60. package/build/es/shared/helpers/createSelectChangeHandler.js +10 -6
  61. package/build/es/transformers/arrayWithIdObjects.js +6 -3
  62. package/build/es/validators/__tests__/createPattern.test.js +1 -1
  63. package/build/es/validators/composeValidators.js +10 -2
  64. package/build/es/validators/test-helpers/index.js +1 -1
  65. package/package.json +10 -10
@@ -5,27 +5,30 @@ import PropTypes from 'prop-types';
5
5
  import React from 'react';
6
6
  import { createToggleChangeHandler, createFocusHandler, createBlurHandler, hasError, isValid, getValidationText } from '../shared/helpers.js';
7
7
  import { metaPropType, inputPropType } from '../shared/propTypes.js';
8
- export const CheckboxFieldFF = ({
9
- error,
10
- input,
11
- meta,
12
- showValidStatus,
13
- valid,
14
- validationText,
15
- onBlur,
16
- onFocus,
17
- ...rest
18
- }) => /*#__PURE__*/React.createElement(CheckboxField, _extends({}, rest, {
19
- name: input.name,
20
- checked: input.checked,
21
- value: input.value,
22
- error: hasError(meta, error),
23
- valid: isValid(meta, valid, showValidStatus),
24
- validationText: getValidationText(meta, validationText, error),
25
- onFocus: createFocusHandler(input, onFocus),
26
- onChange: createToggleChangeHandler(input),
27
- onBlur: createBlurHandler(input, onBlur)
28
- }));
8
+ export const CheckboxFieldFF = _ref => {
9
+ let {
10
+ error,
11
+ input,
12
+ meta,
13
+ showValidStatus,
14
+ valid,
15
+ validationText,
16
+ onBlur,
17
+ onFocus,
18
+ ...rest
19
+ } = _ref;
20
+ return /*#__PURE__*/React.createElement(CheckboxField, _extends({}, rest, {
21
+ name: input.name,
22
+ checked: input.checked,
23
+ value: input.value,
24
+ error: hasError(meta, error),
25
+ valid: isValid(meta, valid, showValidStatus),
26
+ validationText: getValidationText(meta, validationText, error),
27
+ onFocus: createFocusHandler(input, onFocus),
28
+ onChange: createToggleChangeHandler(input),
29
+ onBlur: createBlurHandler(input, onBlur)
30
+ }));
31
+ };
29
32
  CheckboxFieldFF.propTypes = {
30
33
  /** Provided by Final Form `Field` */
31
34
  input: inputPropType.isRequired,
@@ -4,33 +4,9 @@ import { formDecorator } from '../formDecorator.js';
4
4
  import { inputArgType, metaArgType } from '../shared/propTypes.js';
5
5
  import { hasValue } from '../validators/index.js';
6
6
  import { CheckboxFieldFF } from './CheckboxFieldFF.js';
7
- const description = `
8
- The \`CheckboxFieldFF\` is a wrapper around a \`CheckboxField\` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.
9
-
10
- #### Final Form
11
-
12
- See how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).
13
-
14
- Inside a Final Form \`<Form>\` component, these 'FF' UI components are intended to be used in the \`component\` prop of the [Final Form \`<Field>\` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. \`<Field component={CheckboxFieldFF} />\`. See the code samples below for examples.
15
-
16
- #### Props
17
-
18
- The props shown in the table below are generally provided to the \`CheckboxFieldFF\` wrapper by the Final Form \`Field\`.
19
-
20
- Note that any props beyond the API of the \`Field\` component will be spread to the \`CheckboxFieldFF\`, which passes any extra props to the underlying \`CheckboxField\` using \`{...rest}\`.
21
-
22
- Therefore, to add any props to the \`CheckboxFieldFF\` or \`CheckboxField\`, add those props to the parent Final Form \`Field\` component.
23
-
24
- Also see \`Checkbox\` and \`CheckboxField\` for notes about props and implementation.
25
-
26
- \`\`\`js
27
- import { CheckboxFieldFF } from '@dhis2/ui'
28
- \`\`\`
29
-
30
- Press **Submit** to see the form values logged to the console.
31
- `;
7
+ const description = "\nThe `CheckboxFieldFF` is a wrapper around a `CheckboxField` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.\n\n#### Final Form\n\nSee how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).\n\nInside a Final Form `<Form>` component, these 'FF' UI components are intended to be used in the `component` prop of the [Final Form `<Field>` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. `<Field component={CheckboxFieldFF} />`. See the code samples below for examples.\n\n#### Props\n\nThe props shown in the table below are generally provided to the `CheckboxFieldFF` wrapper by the Final Form `Field`.\n\nNote that any props beyond the API of the `Field` component will be spread to the `CheckboxFieldFF`, which passes any extra props to the underlying `CheckboxField` using `{...rest}`.\n\nTherefore, to add any props to the `CheckboxFieldFF` or `CheckboxField`, add those props to the parent Final Form `Field` component.\n\nAlso see `Checkbox` and `CheckboxField` for notes about props and implementation.\n\n```js\nimport { CheckboxFieldFF } from '@dhis2/ui'\n```\n\nPress **Submit** to see the form values logged to the console.\n";
32
8
  export default {
33
- title: 'Forms/Checkbox/Checkbox Field (Final Form)',
9
+ title: 'Checkbox Field (Final Form)',
34
10
  component: CheckboxFieldFF,
35
11
  decorators: [formDecorator],
36
12
  parameters: {
@@ -2,12 +2,13 @@ import { FieldGroup } from '@dhis2-ui/field';
2
2
  import PropTypes from 'prop-types';
3
3
  import React from 'react';
4
4
  import { useField } from 'react-final-form';
5
- export const FieldGroupFF = ({
6
- name,
7
- label,
8
- children,
9
- required
10
- }) => {
5
+ export const FieldGroupFF = _ref => {
6
+ let {
7
+ name,
8
+ label,
9
+ children,
10
+ required
11
+ } = _ref;
11
12
  const {
12
13
  meta: {
13
14
  error,
@@ -4,19 +4,9 @@ import { CheckboxFieldFF } from '../CheckboxFieldFF/CheckboxFieldFF.js';
4
4
  import { formDecorator } from '../formDecorator.js';
5
5
  import { hasValue } from '../validators/index.js';
6
6
  import { FieldGroupFF } from './FieldGroupFF.js';
7
- const description = `
8
- This component is intended for use with [Final Form](https://final-form.org/docs/react-final-form/getting-started), the preferred library for form validation and utilities in DHIS 2 apps.
9
-
10
- \`FieldGroupFF\` groups related fields (using the Final Form \`<Field>\`), like checkboxes, and adds a label and name.
11
-
12
- \`\`\`js
13
- import { FieldGroupFF } from '@dhis2/ui'
14
- \`\`\`
15
-
16
- Press **Submit** to see the form values logged to the console.
17
- `;
7
+ const description = "\nThis component is intended for use with [Final Form](https://final-form.org/docs/react-final-form/getting-started), the preferred library for form validation and utilities in DHIS 2 apps.\n\n`FieldGroupFF` groups related fields (using the Final Form `<Field>`), like checkboxes, and adds a label and name.\n\n```js\nimport { FieldGroupFF } from '@dhis2/ui'\n```\n\nPress **Submit** to see the form values logged to the console.\n";
18
8
  export default {
19
- title: 'Forms/Field Group/Field Group (Final Form)',
9
+ title: 'Field Group (Final Form)',
20
10
  component: FieldGroupFF,
21
11
  decorators: [formDecorator],
22
12
  parameters: {
@@ -23,9 +23,10 @@ const dedupeAndConcat = (currentFiles, newFileList) => {
23
23
  }).files;
24
24
  };
25
25
 
26
- const createChangeHandler = (input, multifile) => ({
27
- files
28
- }) => {
26
+ const createChangeHandler = (input, multifile) => _ref => {
27
+ let {
28
+ files
29
+ } = _ref;
29
30
  // A JavaScript FileList instance is read-only, so we cannot add files to it
30
31
  // FileList also doesn't have a .map method so by destructuring the FileList
31
32
  // instance into an array we can add, remove and map
@@ -40,18 +41,19 @@ const createRemoveHandler = (input, fileToDelete) => () => {
40
41
  input.onChange(value);
41
42
  };
42
43
 
43
- export const FileInputFieldFF = ({
44
- buttonLabel,
45
- disabled,
46
- error,
47
- input,
48
- meta,
49
- multifile,
50
- showValidStatus,
51
- valid,
52
- validationText,
53
- ...rest
54
- }) => {
44
+ export const FileInputFieldFF = _ref2 => {
45
+ let {
46
+ buttonLabel,
47
+ disabled,
48
+ error,
49
+ input,
50
+ meta,
51
+ multifile,
52
+ showValidStatus,
53
+ valid,
54
+ validationText,
55
+ ...rest
56
+ } = _ref2;
55
57
  const files = input.value || [];
56
58
  return /*#__PURE__*/React.createElement(FileInputField, _extends({}, rest, {
57
59
  onChange: createChangeHandler(input, multifile),
@@ -69,9 +71,6 @@ export const FileInputFieldFF = ({
69
71
  removeText: i18n.t('Remove')
70
72
  })));
71
73
  };
72
- FileInputFieldFF.defaultProps = {
73
- placeholder: i18n.t('No file(s) selected yet')
74
- };
75
74
  FileInputFieldFF.propTypes = {
76
75
  /** `input` props provided by Final Form `Field` */
77
76
  input: inputPropType.isRequired,
@@ -13,9 +13,10 @@ import { TextAreaFieldFF } from '../TextAreaFieldFF/TextAreaFieldFF.js';
13
13
  import { composeValidators, email, hasValue } from '../validators/index.js';
14
14
  import { FileInputFieldFF } from './FileInputFieldFF.js';
15
15
 
16
- const StandardForm = ({
17
- values
18
- }) => {
16
+ const StandardForm = _ref => {
17
+ let {
18
+ values
19
+ } = _ref;
19
20
  return /*#__PURE__*/React.createElement("div", {
20
21
  style: {
21
22
  maxWidth: 830
@@ -197,7 +198,7 @@ const StandardForm = ({
197
198
  const [file] = files;
198
199
 
199
200
  if (file.type !== 'text/plain') {
200
- return `The file you provided is not a txt file, received "${file.type}"`;
201
+ return "The file you provided is not a txt file, received \"".concat(file.type, "\"");
201
202
  }
202
203
  },
203
204
  component: FileInputFieldFF
@@ -217,7 +218,7 @@ const StandardForm = ({
217
218
  }
218
219
 
219
220
  if (file.type !== 'application/jpg') {
220
- return `One of the files is not a jpg, received "${file.type}"`;
221
+ return "One of the files is not a jpg, received \"".concat(file.type, "\"");
221
222
  }
222
223
  }, undefined);
223
224
  },
@@ -237,6 +238,9 @@ storiesOf('Testing:FileInput', module).addDecorator(formDecorator).addParameters
237
238
  options: {
238
239
  showPanel: false
239
240
  }
240
- }).add('Standard form', (_, {
241
- formRenderProps
242
- }) => /*#__PURE__*/React.createElement(StandardForm, formRenderProps));
241
+ }).add('Standard form', (_, _ref2) => {
242
+ let {
243
+ formRenderProps
244
+ } = _ref2;
245
+ return /*#__PURE__*/React.createElement(StandardForm, formRenderProps);
246
+ });
@@ -4,34 +4,10 @@ import { formDecorator } from '../formDecorator.js';
4
4
  import { inputArgType, metaArgType } from '../shared/propTypes.js';
5
5
  import { hasValue } from '../validators/index.js';
6
6
  import { FileInputFieldFF } from './FileInputFieldFF.js';
7
- const description = `
8
- The \`FileInputFieldFF\` is a wrapper around a \`FileInputField\` that enables it to work with Final Form, the preferred library in DHIS 2 apps for form validation and utilities.
9
-
10
- #### Final Form
11
-
12
- See how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).
13
-
14
- Inside a Final Form \`<Form>\` component, these 'FF' UI components are intended to be used in the \`component\` prop of the [Final Form \`<Field>\` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. \`<Field component={FileInputFieldFF} />\`. See the code samples below for examples.
15
-
16
- #### Props
17
-
18
- The props shown in the table below are generally provided to the \`FileInputFieldFF\` wrapper by the Final Form \`Field\`.
19
-
20
- Note that any props beyond the API of the \`Field\` component will be spread to the \`FileInputFieldFF\`, which passes any extra props to the underlying \`FileInputField\` using \`{...rest}\`.
21
-
22
- Therefore, to add any props to the \`FileInputFieldFF\` or \`FileInputField\`, add those props to the parent Final Form \`Field\` component.
23
-
24
- Also see \`FileInput\` and \`FileInputField\` for notes about props and implementation.
25
-
26
- \`\`\`js
27
- import { FileInputFieldFF } from '@dhis2/ui'
28
- \`\`\`
29
-
30
- Press **Submit** to see the form values logged to the console.
31
- `;
7
+ const description = "\nThe `FileInputFieldFF` is a wrapper around a `FileInputField` that enables it to work with Final Form, the preferred library in DHIS 2 apps for form validation and utilities.\n\n#### Final Form\n\nSee how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).\n\nInside a Final Form `<Form>` component, these 'FF' UI components are intended to be used in the `component` prop of the [Final Form `<Field>` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. `<Field component={FileInputFieldFF} />`. See the code samples below for examples.\n\n#### Props\n\nThe props shown in the table below are generally provided to the `FileInputFieldFF` wrapper by the Final Form `Field`.\n\nNote that any props beyond the API of the `Field` component will be spread to the `FileInputFieldFF`, which passes any extra props to the underlying `FileInputField` using `{...rest}`.\n\nTherefore, to add any props to the `FileInputFieldFF` or `FileInputField`, add those props to the parent Final Form `Field` component.\n\nAlso see `FileInput` and `FileInputField` for notes about props and implementation.\n\n```js\nimport { FileInputFieldFF } from '@dhis2/ui'\n```\n\nPress **Submit** to see the form values logged to the console.\n";
32
8
  const files = [new File([], 'file1.txt'), new File([], 'file2.txt')];
33
9
  export default {
34
- title: 'Forms/File Input/File Input Field (Final Form)',
10
+ title: 'File Input Field (Final Form)',
35
11
  component: FileInputFieldFF,
36
12
  decorators: [formDecorator],
37
13
  parameters: {
@@ -5,30 +5,33 @@ import PropTypes from 'prop-types';
5
5
  import React from 'react';
6
6
  import { createChangeHandler, createFocusHandler, createBlurHandler, hasError, isLoading, isValid, getValidationText } from '../shared/helpers.js';
7
7
  import { metaPropType, inputPropType } from '../shared/propTypes.js';
8
- export const InputFieldFF = ({
9
- input,
10
- meta,
11
- error,
12
- showValidStatus,
13
- valid,
14
- validationText,
15
- onBlur,
16
- onFocus,
17
- loading,
18
- showLoadingStatus,
19
- ...rest
20
- }) => /*#__PURE__*/React.createElement(InputField, _extends({}, rest, {
21
- name: input.name,
22
- type: input.type,
23
- error: hasError(meta, error),
24
- valid: isValid(meta, valid, showValidStatus),
25
- loading: isLoading(meta, loading, showLoadingStatus),
26
- validationText: getValidationText(meta, validationText, error),
27
- onFocus: createFocusHandler(input, onFocus),
28
- onChange: createChangeHandler(input),
29
- onBlur: createBlurHandler(input, onBlur),
30
- value: input.value
31
- }));
8
+ export const InputFieldFF = _ref => {
9
+ let {
10
+ input,
11
+ meta,
12
+ error,
13
+ showValidStatus,
14
+ valid,
15
+ validationText,
16
+ onBlur,
17
+ onFocus,
18
+ loading,
19
+ showLoadingStatus,
20
+ ...rest
21
+ } = _ref;
22
+ return /*#__PURE__*/React.createElement(InputField, _extends({}, rest, {
23
+ name: input.name,
24
+ type: input.type,
25
+ error: hasError(meta, error),
26
+ valid: isValid(meta, valid, showValidStatus),
27
+ loading: isLoading(meta, loading, showLoadingStatus),
28
+ validationText: getValidationText(meta, validationText, error),
29
+ onFocus: createFocusHandler(input, onFocus),
30
+ onChange: createChangeHandler(input),
31
+ onBlur: createBlurHandler(input, onBlur),
32
+ value: input.value
33
+ }));
34
+ };
32
35
  InputFieldFF.propTypes = {
33
36
  /** `input` props received from Final Form `Field` */
34
37
  input: inputPropType.isRequired,
@@ -4,33 +4,9 @@ import { formDecorator } from '../formDecorator.js';
4
4
  import { inputArgType, metaArgType } from '../shared/propTypes.js';
5
5
  import { hasValue } from '../validators/index.js';
6
6
  import { InputFieldFF } from './InputFieldFF.js';
7
- const description = `
8
- The \`InputFieldFF\` is a wrapper around a \`InputField\` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.
9
-
10
- #### Final Form
11
-
12
- See how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).
13
-
14
- Inside a Final Form \`<Form>\` component, these 'FF' UI components are intended to be used in the \`component\` prop of the [Final Form \`<Field>\` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. \`<Field component={InputFieldFF} />\`. See the code samples below for examples.
15
-
16
- #### Props
17
-
18
- The props shown in the table below are generally provided to the \`InputFieldFF\` wrapper by the Final Form \`Field\`.
19
-
20
- Note that any props beyond the API of the \`Field\` component will be spread to the \`InputFieldFF\`, which passes any extra props to the underlying \`InputField\` using \`{...rest}\`.
21
-
22
- Therefore, to add any props to the \`InputFieldFF\` or \`InputField\`, add those props to the parent Final Form \`Field\` component.
23
-
24
- Also see \`InputField\` for notes about props and implementation.
25
-
26
- \`\`\`js
27
- import { InputFieldFF } from '@dhis2/ui'
28
- \`\`\`
29
-
30
- Press **Submit** to see the form values logged to the console.
31
- `;
7
+ const description = "\nThe `InputFieldFF` is a wrapper around a `InputField` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.\n\n#### Final Form\n\nSee how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).\n\nInside a Final Form `<Form>` component, these 'FF' UI components are intended to be used in the `component` prop of the [Final Form `<Field>` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. `<Field component={InputFieldFF} />`. See the code samples below for examples.\n\n#### Props\n\nThe props shown in the table below are generally provided to the `InputFieldFF` wrapper by the Final Form `Field`.\n\nNote that any props beyond the API of the `Field` component will be spread to the `InputFieldFF`, which passes any extra props to the underlying `InputField` using `{...rest}`.\n\nTherefore, to add any props to the `InputFieldFF` or `InputField`, add those props to the parent Final Form `Field` component.\n\nAlso see `InputField` for notes about props and implementation.\n\n```js\nimport { InputFieldFF } from '@dhis2/ui'\n```\n\nPress **Submit** to see the form values logged to the console.\n";
32
8
  export default {
33
- title: 'Forms/Input/Input Field (Final Form)',
9
+ title: 'Input Field (Final Form)',
34
10
  component: InputFieldFF,
35
11
  decorators: [formDecorator],
36
12
  parameters: {
@@ -5,20 +5,21 @@ import PropTypes from 'prop-types';
5
5
  import React from 'react';
6
6
  import { createSelectChangeHandler, createFocusHandler, createBlurHandler, hasError, isLoading, isValid, getValidationText } from '../shared/helpers.js';
7
7
  import { inputPropType, metaPropType } from '../shared/propTypes.js';
8
- export const MultiSelectFieldFF = ({
9
- error,
10
- input,
11
- loading,
12
- meta,
13
- onBlur,
14
- onFocus,
15
- options = [],
16
- showLoadingStatus,
17
- showValidStatus,
18
- valid,
19
- validationText,
20
- ...rest
21
- }) => {
8
+ export const MultiSelectFieldFF = _ref => {
9
+ let {
10
+ error,
11
+ input,
12
+ loading,
13
+ meta,
14
+ onBlur,
15
+ onFocus,
16
+ options = [],
17
+ showLoadingStatus,
18
+ showValidStatus,
19
+ valid,
20
+ validationText,
21
+ ...rest
22
+ } = _ref;
22
23
  return /*#__PURE__*/React.createElement(MultiSelectField, _extends({}, rest, {
23
24
  name: input.name,
24
25
  error: hasError(meta, error),
@@ -15,13 +15,16 @@ storiesOf('Testing:MultiSelectFieldFF', module).addDecorator(formDecorator).addP
15
15
  options: {
16
16
  showPanel: false
17
17
  }
18
- }).add('Required', (_, {
19
- cypressProps
20
- }) => /*#__PURE__*/React.createElement(Field, {
21
- required: true,
22
- name: "multiSelect",
23
- label: "Multi select",
24
- component: MultiSelectFieldFF,
25
- validate: hasValue,
26
- options: cypressProps.options || defaultOptions
27
- }));
18
+ }).add('Required', (_, _ref) => {
19
+ let {
20
+ cypressProps
21
+ } = _ref;
22
+ return /*#__PURE__*/React.createElement(Field, {
23
+ required: true,
24
+ name: "multiSelect",
25
+ label: "Multi select",
26
+ component: MultiSelectFieldFF,
27
+ validate: hasValue,
28
+ options: cypressProps.options || defaultOptions
29
+ });
30
+ });
@@ -3,33 +3,7 @@ import { Field } from 'react-final-form';
3
3
  import { formDecorator } from '../formDecorator.js';
4
4
  import { inputArgType, metaArgType } from '../shared/propTypes.js';
5
5
  import { MultiSelectFieldFF } from './MultiSelectFieldFF.js';
6
- const description = `
7
- The \`MultiSelectFieldFF\` is a wrapper around a \`MultiSelectField\` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.
8
-
9
- #### Final Form
10
-
11
- See how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).
12
-
13
- Inside a Final Form \`<Form>\` component, these 'FF' UI components are intended to be used in the \`component\` prop of the [Final Form \`<Field>\` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. \`<Field component={MultiSelectFieldFF} />\`. See the code samples below for examples.
14
-
15
- #### Props
16
-
17
- The props shown in the table below are generally provided to the \`MultiSelectFieldFF\` wrapper by the Final Form \`Field\`.
18
-
19
- Note that any props beyond the API of the \`Field\` component will be spread to the \`MultiSelectFieldFF\`, which passes any extra props to the underlying \`MultiSelectField\` using \`{...rest}\`.
20
-
21
- Therefore, to add any props to the \`MultiSelectFieldFF\` or \`MultiSelectField\`, add those props to the parent Final Form \`Field\` component.
22
-
23
- Also see \`MultiSelect\` and \`MultiSelectField\` for notes about props and implementation.
24
-
25
- \`\`\`js
26
- import { MultiSelectFieldFF } from '@dhis2/ui'
27
- \`\`\`
28
-
29
- Press **Submit** to see the form values logged to the console.
30
-
31
- _**Note:** Dropdowns may not appear correctly on this page. See the affected demos in the 'Canvas' tab for propper dropdown placement._
32
- `;
6
+ const description = "\nThe `MultiSelectFieldFF` is a wrapper around a `MultiSelectField` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.\n\n#### Final Form\n\nSee how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).\n\nInside a Final Form `<Form>` component, these 'FF' UI components are intended to be used in the `component` prop of the [Final Form `<Field>` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. `<Field component={MultiSelectFieldFF} />`. See the code samples below for examples.\n\n#### Props\n\nThe props shown in the table below are generally provided to the `MultiSelectFieldFF` wrapper by the Final Form `Field`.\n\nNote that any props beyond the API of the `Field` component will be spread to the `MultiSelectFieldFF`, which passes any extra props to the underlying `MultiSelectField` using `{...rest}`.\n\nTherefore, to add any props to the `MultiSelectFieldFF` or `MultiSelectField`, add those props to the parent Final Form `Field` component.\n\nAlso see `MultiSelect` and `MultiSelectField` for notes about props and implementation.\n\n```js\nimport { MultiSelectFieldFF } from '@dhis2/ui'\n```\n\nPress **Submit** to see the form values logged to the console.\n\n_**Note:** Dropdowns may not appear correctly on this page. See the affected demos in the 'Canvas' tab for propper dropdown placement._\n";
33
7
  const options = [{
34
8
  value: '1',
35
9
  label: 'one'
@@ -63,7 +37,7 @@ const options = [{
63
37
  }];
64
38
  const initialValue = ['3', '4', '9', '10'];
65
39
  export default {
66
- title: 'Forms/Multi Select/Multi Select Field (Final Form)',
40
+ title: 'Multi Select Field (Final Form)',
67
41
  component: MultiSelectFieldFF,
68
42
  decorators: [formDecorator],
69
43
  parameters: {
@@ -5,27 +5,30 @@ import PropTypes from 'prop-types';
5
5
  import React from 'react';
6
6
  import { createToggleChangeHandler, createFocusHandler, createBlurHandler, hasError, isValid, getValidationText } from '../shared/helpers.js';
7
7
  import { metaPropType, inputPropType } from '../shared/propTypes.js';
8
- export const RadioFieldFF = ({
9
- error,
10
- input,
11
- meta,
12
- showValidStatus,
13
- valid,
14
- validationText,
15
- onBlur,
16
- onFocus,
17
- ...rest
18
- }) => /*#__PURE__*/React.createElement(Radio, _extends({}, rest, {
19
- name: input.name,
20
- checked: input.checked,
21
- value: input.value,
22
- error: hasError(meta, error),
23
- valid: isValid(meta, valid, showValidStatus),
24
- validationText: getValidationText(meta, validationText, error),
25
- onFocus: createFocusHandler(input, onFocus),
26
- onChange: createToggleChangeHandler(input),
27
- onBlur: createBlurHandler(input, onBlur)
28
- }));
8
+ export const RadioFieldFF = _ref => {
9
+ let {
10
+ error,
11
+ input,
12
+ meta,
13
+ showValidStatus,
14
+ valid,
15
+ validationText,
16
+ onBlur,
17
+ onFocus,
18
+ ...rest
19
+ } = _ref;
20
+ return /*#__PURE__*/React.createElement(Radio, _extends({}, rest, {
21
+ name: input.name,
22
+ checked: input.checked,
23
+ value: input.value,
24
+ error: hasError(meta, error),
25
+ valid: isValid(meta, valid, showValidStatus),
26
+ validationText: getValidationText(meta, validationText, error),
27
+ onFocus: createFocusHandler(input, onFocus),
28
+ onChange: createToggleChangeHandler(input),
29
+ onBlur: createBlurHandler(input, onBlur)
30
+ }));
31
+ };
29
32
  RadioFieldFF.propTypes = {
30
33
  /** `input` props received from Final Form `Field` */
31
34
  input: inputPropType.isRequired,
@@ -4,33 +4,9 @@ import { Field } from 'react-final-form';
4
4
  import { formDecorator } from '../formDecorator.js';
5
5
  import { inputArgType, metaArgType } from '../shared/propTypes.js';
6
6
  import { RadioFieldFF } from './RadioFieldFF.js';
7
- const description = `
8
- The \`RadioFieldFF\` is a wrapper around a \`Radio\` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.
9
-
10
- #### Final Form
11
-
12
- See how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).
13
-
14
- Inside a Final Form \`<Form>\` component, these 'FF' UI components are intended to be used in the \`component\` prop of the [Final Form \`<Field>\` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. \`<Field component={RadioFieldFF} />\`. See the code samples below for examples.
15
-
16
- #### Props
17
-
18
- The props shown in the table below are generally provided to the \`RadioFieldFF\` wrapper by the Final Form \`Field\`.
19
-
20
- Note that any props beyond the API of the \`Field\` component will be spread to the \`RadioFieldFF\`, which passes any extra props to the underlying \`Radio\` using \`{...rest}\`.
21
-
22
- Therefore, to add any props to the \`RadioFieldFF\` or \`Radio\`, add those props to the parent Final Form \`Field\` component.
23
-
24
- Also see \`Radio\` for notes about props and implementation.
25
-
26
- \`\`\`js
27
- import { RadioFieldFF } from '@dhis2/ui'
28
- \`\`\`
29
-
30
- Press **Submit** to see the form values logged to the console.
31
- `;
7
+ const description = "\nThe `RadioFieldFF` is a wrapper around a `Radio` that enables it to work with Final Form, the preferred library for form validation and utilities in DHIS 2 apps.\n\n#### Final Form\n\nSee how to use Final Form at [Final Form - Getting Started](https://final-form.org/docs/react-final-form/getting-started).\n\nInside a Final Form `<Form>` component, these 'FF' UI components are intended to be used in the `component` prop of the [Final Form `<Field>` components](https://final-form.org/docs/react-final-form/api/Field) where they will receive some props from the Field, e.g. `<Field component={RadioFieldFF} />`. See the code samples below for examples.\n\n#### Props\n\nThe props shown in the table below are generally provided to the `RadioFieldFF` wrapper by the Final Form `Field`.\n\nNote that any props beyond the API of the `Field` component will be spread to the `RadioFieldFF`, which passes any extra props to the underlying `Radio` using `{...rest}`.\n\nTherefore, to add any props to the `RadioFieldFF` or `Radio`, add those props to the parent Final Form `Field` component.\n\nAlso see `Radio` for notes about props and implementation.\n\n```js\nimport { RadioFieldFF } from '@dhis2/ui'\n```\n\nPress **Submit** to see the form values logged to the console.\n";
32
8
  export default {
33
- title: 'Forms/Radio/Radio Field (Final Form)',
9
+ title: 'Radio Field (Final Form)',
34
10
  component: RadioFieldFF,
35
11
  decorators: [formDecorator],
36
12
  parameters: {
@@ -5,20 +5,21 @@ import PropTypes from 'prop-types';
5
5
  import React from 'react';
6
6
  import { createSelectChangeHandler, createFocusHandler, createBlurHandler, hasError, isLoading, isValid, getValidationText } from '../shared/helpers.js';
7
7
  import { inputPropType, metaPropType } from '../shared/propTypes.js';
8
- export const SingleSelectFieldFF = ({
9
- error,
10
- input,
11
- loading,
12
- meta,
13
- onBlur,
14
- onFocus,
15
- options,
16
- showLoadingStatus,
17
- showValidStatus,
18
- valid,
19
- validationText,
20
- ...rest
21
- }) => {
8
+ export const SingleSelectFieldFF = _ref => {
9
+ let {
10
+ error,
11
+ input,
12
+ loading,
13
+ meta,
14
+ onBlur,
15
+ onFocus,
16
+ options,
17
+ showLoadingStatus,
18
+ showValidStatus,
19
+ valid,
20
+ validationText,
21
+ ...rest
22
+ } = _ref;
22
23
  return /*#__PURE__*/React.createElement(SingleSelectField, _extends({}, rest, {
23
24
  name: input.name,
24
25
  error: hasError(meta, error),
@@ -12,13 +12,16 @@ storiesOf('Testing:SingleSelectFieldFF', module).addDecorator(formDecorator).add
12
12
  options: {
13
13
  showPanel: false
14
14
  }
15
- }).add('Required', (_, {
16
- cypressProps
17
- }) => /*#__PURE__*/React.createElement(Field, {
18
- required: true,
19
- name: "singleSelect",
20
- label: "Single select",
21
- component: SingleSelectFieldFF,
22
- validate: hasValue,
23
- options: cypressProps.options || defaultOptions
24
- }));
15
+ }).add('Required', (_, _ref) => {
16
+ let {
17
+ cypressProps
18
+ } = _ref;
19
+ return /*#__PURE__*/React.createElement(Field, {
20
+ required: true,
21
+ name: "singleSelect",
22
+ label: "Single select",
23
+ component: SingleSelectFieldFF,
24
+ validate: hasValue,
25
+ options: cypressProps.options || defaultOptions
26
+ });
27
+ });