@digigov/form 0.13.2 → 1.0.0-6b93ebf2
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.
- package/Field/FieldBase.js +2 -2
- package/Field/FieldBaseContainer.js +8 -8
- package/Field/FieldConditional.js +2 -2
- package/Field/utils.js +6 -6
- package/FieldArray/__stories__/Default.js +2 -2
- package/FieldArray/__stories__/WithExactLength.js +2 -2
- package/FieldArray/index.js +3 -3
- package/FieldObject/index.d.ts +1 -1
- package/FieldObject/index.js +5 -5
- package/Fieldset/FieldsetWithContext.js +4 -4
- package/Fieldset/index.d.ts +1 -1
- package/Fieldset/index.js +2 -2
- package/Fieldset/types.d.ts +2 -2
- package/FormBuilder/FormBuilder.js +5 -5
- package/FormBuilder/FormBuilder.mdx +32 -45
- package/FormBuilder/__stories__/Default.js +2 -2
- package/MultiplicityField/MultiplicityField.mdx +277 -267
- package/MultiplicityField/__stories__/Default.js +2 -2
- package/MultiplicityField/__stories__/PreviewDisplay.js +8 -8
- package/MultiplicityField/__stories__/WithExactLength.js +2 -2
- package/MultiplicityField/__stories__/WithMaxLength.js +2 -2
- package/MultiplicityField/__stories__/WithMinAndMaxLength.js +2 -2
- package/MultiplicityField/__stories__/WithMinLength.js +2 -2
- package/MultiplicityField/add-objects.js +6 -6
- package/MultiplicityField/index.d.ts +2 -2
- package/MultiplicityField/index.js +7 -7
- package/Questions/Questions.js +2 -2
- package/Questions/Step/ReviewStep.js +8 -8
- package/Questions/Step/Step.js +2 -2
- package/Questions/Step/StepArrayReview.js +10 -10
- package/Questions/Step/StepDescription.js +2 -2
- package/Questions/Step/StepForm.d.ts +1 -1
- package/Questions/Step/StepForm.js +6 -6
- package/Questions/Step/StepTitle.js +5 -3
- package/Questions/Step/getAddMoreFields.d.ts +1 -1
- package/Questions/__snapshots__/index.spec.tsx.snap +9 -9
- package/Questions/__stories__/Default.js +6 -6
- package/Questions/index.mdx +41 -44
- package/Questions/index.spec.js +2 -2
- package/create-simple-form.mdx +258 -237
- package/es/Field/FieldBase.js +1 -1
- package/es/Field/FieldBaseContainer.js +6 -6
- package/es/Field/FieldConditional.js +1 -1
- package/es/Field/utils.js +5 -5
- package/es/FieldArray/__stories__/Default.js +1 -1
- package/es/FieldArray/__stories__/WithExactLength.js +1 -1
- package/es/FieldArray/index.js +2 -2
- package/es/FieldObject/index.js +3 -3
- package/es/Fieldset/FieldsetWithContext.js +2 -2
- package/es/Fieldset/index.js +1 -1
- package/es/FormBuilder/FormBuilder.js +3 -3
- package/es/FormBuilder/FormBuilder.mdx +32 -45
- package/es/FormBuilder/__stories__/Default.js +1 -1
- package/es/MultiplicityField/MultiplicityField.mdx +277 -267
- package/es/MultiplicityField/__stories__/Default.js +1 -1
- package/es/MultiplicityField/__stories__/PreviewDisplay.js +7 -7
- package/es/MultiplicityField/__stories__/WithExactLength.js +1 -1
- package/es/MultiplicityField/__stories__/WithMaxLength.js +1 -1
- package/es/MultiplicityField/__stories__/WithMinAndMaxLength.js +1 -1
- package/es/MultiplicityField/__stories__/WithMinLength.js +1 -1
- package/es/MultiplicityField/add-objects.js +3 -3
- package/es/MultiplicityField/index.js +5 -5
- package/es/Questions/Questions.js +1 -1
- package/es/Questions/Step/ReviewStep.js +5 -5
- package/es/Questions/Step/Step.js +1 -1
- package/es/Questions/Step/StepArrayReview.js +7 -7
- package/es/Questions/Step/StepDescription.js +1 -1
- package/es/Questions/Step/StepForm.js +5 -5
- package/es/Questions/Step/StepTitle.js +5 -4
- package/es/Questions/__snapshots__/index.spec.tsx.snap +9 -9
- package/es/Questions/__stories__/Default.js +4 -4
- package/es/Questions/index.mdx +41 -44
- package/es/Questions/index.spec.js +1 -1
- package/es/create-simple-form.mdx +258 -237
- package/es/index.mdx +13 -6
- package/es/inputs/AutoComplete/__stories__/Default.js +3 -3
- package/es/inputs/AutoComplete/index.js +1 -1
- package/es/inputs/Checkboxes/__stories__/Conditional.js +1 -1
- package/es/inputs/Checkboxes/__stories__/Default.js +1 -1
- package/es/inputs/Checkboxes/__stories__/WithDivider.js +2 -2
- package/es/inputs/Checkboxes/index.js +3 -3
- package/es/inputs/DateInput/__stories__/Default.js +1 -1
- package/es/inputs/DateInput/index.js +1 -1
- package/es/inputs/FileInput/__stories__/Default.js +1 -1
- package/es/inputs/FileInput/index.js +5 -5
- package/es/inputs/Input/__stories__/AFM.js +1 -1
- package/es/inputs/Input/__stories__/Boolean.js +1 -1
- package/es/inputs/Input/__stories__/Default.js +1 -1
- package/es/inputs/Input/__stories__/IBAN.js +1 -1
- package/es/inputs/Input/__stories__/Integer.js +1 -1
- package/es/inputs/Input/__stories__/MobilePhone.js +1 -1
- package/es/inputs/Input/__stories__/PhoneNumber.js +1 -1
- package/es/inputs/Input/__stories__/PostalCode.js +1 -1
- package/es/inputs/Input/__stories__/TextWithCharacterLimit.js +1 -1
- package/es/inputs/Input/index.js +1 -1
- package/es/inputs/Label/__stories__/Default.js +1 -1
- package/es/inputs/Label/index.js +3 -3
- package/es/inputs/OtpInput/__stories__/Default.js +1 -1
- package/es/inputs/OtpInput/index.js +1 -1
- package/es/inputs/Radio/__stories__/Conditional.js +1 -1
- package/es/inputs/Radio/__stories__/Default.js +1 -1
- package/es/inputs/Radio/__stories__/WithDivider.js +2 -2
- package/es/inputs/Radio/index.js +4 -4
- package/es/inputs/Select/__stories__/Default.js +1 -1
- package/es/installation.mdx +12 -16
- package/es/utils.js +1 -1
- package/es/validators/index.js +2 -2
- package/esm/Field/FieldBase.js +1 -1
- package/esm/Field/FieldBaseContainer.js +6 -6
- package/esm/Field/FieldConditional.js +1 -1
- package/esm/Field/utils.js +5 -5
- package/esm/FieldArray/__stories__/Default.js +1 -1
- package/esm/FieldArray/__stories__/WithExactLength.js +1 -1
- package/esm/FieldArray/index.js +2 -2
- package/esm/FieldObject/index.js +3 -3
- package/esm/Fieldset/FieldsetWithContext.js +2 -2
- package/esm/Fieldset/index.js +1 -1
- package/esm/FormBuilder/FormBuilder.js +3 -3
- package/esm/FormBuilder/FormBuilder.mdx +32 -45
- package/esm/FormBuilder/__stories__/Default.js +1 -1
- package/esm/MultiplicityField/MultiplicityField.mdx +277 -267
- package/esm/MultiplicityField/__stories__/Default.js +1 -1
- package/esm/MultiplicityField/__stories__/PreviewDisplay.js +7 -7
- package/esm/MultiplicityField/__stories__/WithExactLength.js +1 -1
- package/esm/MultiplicityField/__stories__/WithMaxLength.js +1 -1
- package/esm/MultiplicityField/__stories__/WithMinAndMaxLength.js +1 -1
- package/esm/MultiplicityField/__stories__/WithMinLength.js +1 -1
- package/esm/MultiplicityField/add-objects.js +3 -3
- package/esm/MultiplicityField/index.js +5 -5
- package/esm/Questions/Questions.js +1 -1
- package/esm/Questions/Step/ReviewStep.js +5 -5
- package/esm/Questions/Step/Step.js +1 -1
- package/esm/Questions/Step/StepArrayReview.js +7 -7
- package/esm/Questions/Step/StepDescription.js +1 -1
- package/esm/Questions/Step/StepForm.js +5 -5
- package/esm/Questions/Step/StepTitle.js +5 -4
- package/esm/Questions/__snapshots__/index.spec.tsx.snap +9 -9
- package/esm/Questions/__stories__/Default.js +4 -4
- package/esm/Questions/index.mdx +41 -44
- package/esm/Questions/index.spec.js +1 -1
- package/esm/create-simple-form.mdx +258 -237
- package/esm/index.js +1 -1
- package/esm/index.mdx +13 -6
- package/esm/inputs/AutoComplete/__stories__/Default.js +3 -3
- package/esm/inputs/AutoComplete/index.js +1 -1
- package/esm/inputs/Checkboxes/__stories__/Conditional.js +1 -1
- package/esm/inputs/Checkboxes/__stories__/Default.js +1 -1
- package/esm/inputs/Checkboxes/__stories__/WithDivider.js +2 -2
- package/esm/inputs/Checkboxes/index.js +3 -3
- package/esm/inputs/DateInput/__stories__/Default.js +1 -1
- package/esm/inputs/DateInput/index.js +1 -1
- package/esm/inputs/FileInput/__stories__/Default.js +1 -1
- package/esm/inputs/FileInput/index.js +5 -5
- package/esm/inputs/Input/__stories__/AFM.js +1 -1
- package/esm/inputs/Input/__stories__/Boolean.js +1 -1
- package/esm/inputs/Input/__stories__/Default.js +1 -1
- package/esm/inputs/Input/__stories__/IBAN.js +1 -1
- package/esm/inputs/Input/__stories__/Integer.js +1 -1
- package/esm/inputs/Input/__stories__/MobilePhone.js +1 -1
- package/esm/inputs/Input/__stories__/PhoneNumber.js +1 -1
- package/esm/inputs/Input/__stories__/PostalCode.js +1 -1
- package/esm/inputs/Input/__stories__/TextWithCharacterLimit.js +1 -1
- package/esm/inputs/Input/index.js +1 -1
- package/esm/inputs/Label/__stories__/Default.js +1 -1
- package/esm/inputs/Label/index.js +3 -3
- package/esm/inputs/OtpInput/__stories__/Default.js +1 -1
- package/esm/inputs/OtpInput/index.js +1 -1
- package/esm/inputs/Radio/__stories__/Conditional.js +1 -1
- package/esm/inputs/Radio/__stories__/Default.js +1 -1
- package/esm/inputs/Radio/__stories__/WithDivider.js +2 -2
- package/esm/inputs/Radio/index.js +4 -4
- package/esm/inputs/Select/__stories__/Default.js +1 -1
- package/esm/installation.mdx +12 -16
- package/esm/utils.js +1 -1
- package/esm/validators/index.js +2 -2
- package/index.mdx +13 -6
- package/inputs/AutoComplete/__stories__/Default.js +4 -4
- package/inputs/AutoComplete/index.d.ts +2 -2
- package/inputs/AutoComplete/index.js +2 -2
- package/inputs/Checkboxes/__stories__/Conditional.js +2 -2
- package/inputs/Checkboxes/__stories__/Default.js +2 -2
- package/inputs/Checkboxes/__stories__/WithDivider.js +3 -3
- package/inputs/Checkboxes/index.d.ts +1 -1
- package/inputs/Checkboxes/index.js +4 -4
- package/inputs/DateInput/__stories__/Default.js +2 -2
- package/inputs/DateInput/index.js +2 -2
- package/inputs/FileInput/__stories__/Default.js +2 -2
- package/inputs/FileInput/index.js +5 -5
- package/inputs/Input/__stories__/AFM.js +2 -2
- package/inputs/Input/__stories__/Boolean.js +2 -2
- package/inputs/Input/__stories__/Default.js +2 -2
- package/inputs/Input/__stories__/IBAN.js +2 -2
- package/inputs/Input/__stories__/Integer.js +2 -2
- package/inputs/Input/__stories__/MobilePhone.js +2 -2
- package/inputs/Input/__stories__/PhoneNumber.js +2 -2
- package/inputs/Input/__stories__/PostalCode.js +2 -2
- package/inputs/Input/__stories__/TextWithCharacterLimit.js +2 -2
- package/inputs/Input/index.js +1 -1
- package/inputs/Label/__stories__/Default.js +2 -2
- package/inputs/Label/index.js +4 -4
- package/inputs/OtpInput/__stories__/Default.js +2 -2
- package/inputs/OtpInput/index.js +1 -1
- package/inputs/Radio/__stories__/Conditional.js +2 -2
- package/inputs/Radio/__stories__/Default.js +2 -2
- package/inputs/Radio/__stories__/WithDivider.js +3 -3
- package/inputs/Radio/index.d.ts +1 -1
- package/inputs/Radio/index.js +7 -7
- package/inputs/Select/__stories__/Default.js +2 -2
- package/inputs/Select/index.d.ts +1 -1
- package/installation.mdx +12 -16
- package/package.json +5 -5
- package/src/Field/FieldBase.tsx +1 -1
- package/src/Field/FieldBaseContainer.tsx +7 -7
- package/src/Field/FieldConditional.tsx +1 -1
- package/src/Field/index.tsx +1 -1
- package/src/Field/utils.ts +7 -7
- package/src/FieldArray/FieldArray.stories.js +1 -1
- package/src/FieldArray/__stories__/Default.tsx +1 -1
- package/src/FieldArray/__stories__/WithExactLength.tsx +1 -1
- package/src/FieldArray/index.tsx +3 -3
- package/src/FieldObject/index.tsx +6 -6
- package/src/Fieldset/FieldsetWithContext.tsx +3 -3
- package/src/Fieldset/index.tsx +5 -5
- package/src/Fieldset/types.tsx +3 -3
- package/src/FormBuilder/FormBuilder.mdx +32 -45
- package/src/FormBuilder/FormBuilder.stories.js +1 -1
- package/src/FormBuilder/FormBuilder.tsx +4 -4
- package/src/FormBuilder/__stories__/Default.tsx +1 -1
- package/src/MultiplicityField/MultiplicityField.mdx +277 -267
- package/src/MultiplicityField/MultiplicityField.stories.js +1 -1
- package/src/MultiplicityField/__stories__/Default.tsx +1 -1
- package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +14 -14
- package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
- package/src/MultiplicityField/add-objects.tsx +3 -3
- package/src/MultiplicityField/index.tsx +9 -9
- package/src/Questions/Questions.stories.js +1 -1
- package/src/Questions/Questions.tsx +2 -2
- package/src/Questions/Step/ReviewStep.tsx +6 -6
- package/src/Questions/Step/Step.tsx +1 -1
- package/src/Questions/Step/StepArrayReview.tsx +11 -11
- package/src/Questions/Step/StepDescription.tsx +1 -1
- package/src/Questions/Step/StepForm.tsx +6 -6
- package/src/Questions/Step/StepTitle.tsx +16 -12
- package/src/Questions/Step/getAddMoreFields.tsx +1 -1
- package/src/Questions/__snapshots__/index.spec.tsx.snap +9 -9
- package/src/Questions/__stories__/Default.tsx +4 -4
- package/src/Questions/index.mdx +41 -44
- package/src/Questions/index.spec.tsx +1 -1
- package/src/create-simple-form.mdx +258 -237
- package/src/index.mdx +13 -6
- package/src/inputs/AutoComplete/__stories__/Default.tsx +3 -3
- package/src/inputs/AutoComplete/index.tsx +4 -4
- package/src/inputs/Checkboxes/Checkboxes.stories.js +1 -1
- package/src/inputs/Checkboxes/__stories__/Conditional.tsx +2 -2
- package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
- package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +2 -2
- package/src/inputs/Checkboxes/index.tsx +4 -4
- package/src/inputs/DateInput/DateInput.stories.js +1 -1
- package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
- package/src/inputs/DateInput/index.tsx +2 -2
- package/src/inputs/FileInput/FileInput.stories.js +1 -1
- package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
- package/src/inputs/FileInput/index.tsx +5 -5
- package/src/inputs/Input/__stories__/AFM.tsx +1 -1
- package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
- package/src/inputs/Input/__stories__/Default.tsx +1 -1
- package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
- package/src/inputs/Input/__stories__/Integer.tsx +1 -1
- package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
- package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
- package/src/inputs/Input/__stories__/TextWithCharacterLimit.tsx +1 -1
- package/src/inputs/Input/index.tsx +3 -3
- package/src/inputs/Label/Label.stories.js +1 -1
- package/src/inputs/Label/__stories__/Default.tsx +1 -1
- package/src/inputs/Label/index.tsx +4 -4
- package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
- package/src/inputs/OtpInput/index.tsx +7 -3
- package/src/inputs/Radio/Radio.stories.js +1 -2
- package/src/inputs/Radio/__stories__/Conditional.tsx +3 -3
- package/src/inputs/Radio/__stories__/Default.tsx +1 -1
- package/src/inputs/Radio/__stories__/WithDivider.tsx +2 -2
- package/src/inputs/Radio/index.tsx +6 -6
- package/src/inputs/Select/Select.stories.js +1 -1
- package/src/inputs/Select/__stories__/Default.tsx +1 -1
- package/src/inputs/Select/index.tsx +2 -2
- package/src/installation.mdx +12 -16
- package/src/types.tsx +4 -2
- package/src/utils.ts +1 -1
- package/src/validators/index.ts +10 -10
- package/src/validators/utils/file.ts +1 -1
- package/src/validators/utils/phone.ts +1 -1
- package/src/validators/utils/postal_code.ts +1 -1
- package/types.d.ts +4 -2
- package/validators/index.d.ts +3 -3
- package/validators/index.js +4 -4
- package/validators/utils/file.d.ts +1 -1
- package/validators/utils/phone.d.ts +1 -1
- package/validators/utils/postal_code.d.ts +1 -1
package/src/index.mdx
CHANGED
|
@@ -4,12 +4,19 @@ title: Digigov Form
|
|
|
4
4
|
sidebar_label: Introduction to Digigov Form
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
import LeadText from
|
|
7
|
+
import LeadText from '@site/src/components/LeadText';
|
|
8
8
|
|
|
9
|
-
<LeadText>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
<LeadText>
|
|
10
|
+
Digigov Form is an off-the-shelf solution for managing web forms using
|
|
11
|
+
Reactjs. It supports flexible and multi-step forms and easy-to-use validation.
|
|
12
|
+
This page will guide you through everything you need to create accessible and
|
|
13
|
+
dynamic forms that can handle all sorts of user inputs.
|
|
14
|
+
</LeadText>
|
|
15
|
+
|
|
16
|
+
<img
|
|
17
|
+
src="/img/form.svg"
|
|
18
|
+
style={{ margin: '3rem 0', maxWidth: '450px', width: '60%' }}
|
|
19
|
+
/>
|
|
13
20
|
|
|
14
21
|
## Before we start
|
|
15
22
|
|
|
@@ -22,7 +29,7 @@ Finally, we also offer an easy way to spread your forms across multiple pages or
|
|
|
22
29
|
steps and still be able to gather data in a single serialized object that you
|
|
23
30
|
will be able to save via an JSON API.
|
|
24
31
|
|
|
25
|
-
## Overview
|
|
32
|
+
## Overview
|
|
26
33
|
|
|
27
34
|
The `@digigov/form` NPM package contains React components and validators. The
|
|
28
35
|
library uses basic, semantically correct HTML5 input fields.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
|
-
import FormBuilder from '@digigov/form/FormBuilder';
|
|
3
2
|
import { Field } from '@digigov/form/Field';
|
|
3
|
+
import FormBuilder from '@digigov/form/FormBuilder';
|
|
4
4
|
import { FieldSpec } from '@digigov/form/types';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
5
|
+
import { results } from '@digigov/ui/form/AutoComplete/utils';
|
|
6
|
+
import Button from '@digigov/ui/form/Button';
|
|
7
7
|
const fields: FieldSpec[] = [
|
|
8
8
|
{
|
|
9
9
|
key: 'autocomplete',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
|
-
import UIAutoComplete, {
|
|
3
|
-
AutoCompleteProps as UIAutoCompleteProps,
|
|
4
|
-
} from '@digigov/ui/admin/AutoComplete';
|
|
5
|
-
import { FieldOptionProps } from '@digigov/form/inputs/Label';
|
|
6
2
|
import { ControlledFieldProps } from '@digigov/form/Field/types';
|
|
3
|
+
import { FieldOptionProps } from '@digigov/form/inputs/Label';
|
|
7
4
|
import { Hint } from '@digigov/react-core';
|
|
5
|
+
import UIAutoComplete, {
|
|
6
|
+
AutoCompleteProps as UIAutoCompleteProps,
|
|
7
|
+
} from '@digigov/ui/form/AutoComplete';
|
|
8
8
|
|
|
9
9
|
export interface AutoCompleteExtra
|
|
10
10
|
extends Omit<
|
|
@@ -2,7 +2,7 @@ import Checkboxes from '@digigov/form/inputs/Checkboxes';
|
|
|
2
2
|
export default {
|
|
3
3
|
title: 'Digigov Form/inputs/Checkboxes',
|
|
4
4
|
component: Checkboxes,
|
|
5
|
-
displayName: 'Checkboxes'
|
|
5
|
+
displayName: 'Checkboxes',
|
|
6
6
|
};
|
|
7
7
|
export * from '@digigov/form/inputs/Checkboxes/__stories__/Default';
|
|
8
8
|
export * from '@digigov/form/inputs/Checkboxes/__stories__/WithDivider';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import FormBuilder, { Field, FieldSpec } from '@digigov/form';
|
|
3
|
-
import { Button } from '@digigov/ui/
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
4
|
|
|
5
5
|
const fields: FieldSpec[] = [
|
|
6
6
|
{
|
|
@@ -60,7 +60,7 @@ const fields: FieldSpec[] = [
|
|
|
60
60
|
{
|
|
61
61
|
key: 'auth_form',
|
|
62
62
|
type: 'choice:multiple',
|
|
63
|
-
required:true,
|
|
63
|
+
required: true,
|
|
64
64
|
label: {
|
|
65
65
|
primary: 'Επιλέξτε μέθοδο πιστοποίησης',
|
|
66
66
|
secondary:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import FormBuilder, { Field } from '@digigov/form';
|
|
3
|
-
import { Button } from '@digigov/ui/
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
4
|
|
|
5
5
|
export const WithDivider = () => (
|
|
6
6
|
<FormBuilder
|
|
@@ -27,7 +27,7 @@ export const WithDivider = () => (
|
|
|
27
27
|
{
|
|
28
28
|
label: { primary: 'Αισθάνομαι κούραση' },
|
|
29
29
|
value: 'fatigue',
|
|
30
|
-
|
|
30
|
+
dividerText: 'ή',
|
|
31
31
|
},
|
|
32
32
|
],
|
|
33
33
|
}}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Field } from '@digigov/form';
|
|
3
3
|
import { ControlledFieldProps } from '@digigov/form/Field/types';
|
|
4
|
-
import {
|
|
4
|
+
import { FieldOptionProps } from '@digigov/form/inputs/Label';
|
|
5
|
+
import { CheckboxConditional } from '@digigov/react-core';
|
|
5
6
|
import CoreCheckboxes from '@digigov/react-core/Checkbox';
|
|
6
7
|
import CheckboxItem from '@digigov/react-core/CheckboxItem';
|
|
7
8
|
import Hint from '@digigov/react-core/Hint';
|
|
8
|
-
import {
|
|
9
|
-
import { CheckboxConditional } from '@digigov/react-core';
|
|
9
|
+
import { useTranslation } from '@digigov/ui/i18n';
|
|
10
10
|
|
|
11
11
|
export interface CheckboxesProps
|
|
12
12
|
extends Omit<ControlledFieldProps, 'extra' | 'value'> {
|
|
@@ -2,6 +2,6 @@ import DateInput from '@digigov/form/inputs/DateInput';
|
|
|
2
2
|
export default {
|
|
3
3
|
title: 'Digigov Form/inputs/DateInput',
|
|
4
4
|
component: DateInput,
|
|
5
|
-
displayName: 'DateInput'
|
|
5
|
+
displayName: 'DateInput',
|
|
6
6
|
};
|
|
7
7
|
export * from '@digigov/form/inputs/DateInput/__stories__/Default';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { useMemo, useState } from 'react';
|
|
2
|
-
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
3
2
|
import dayjs from 'dayjs';
|
|
4
3
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
5
|
-
import {
|
|
4
|
+
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
6
5
|
import DateInputContainer from '@digigov/react-core/DateInputContainer';
|
|
7
6
|
import CoreDateInputItem from '@digigov/react-core/DateInputItem';
|
|
7
|
+
import { useTranslation } from '@digigov/ui/i18n';
|
|
8
8
|
dayjs.extend(customParseFormat);
|
|
9
9
|
|
|
10
10
|
export interface DateInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
@@ -2,6 +2,6 @@ import FileInput from '@digigov/form/inputs/FileInput';
|
|
|
2
2
|
export default {
|
|
3
3
|
title: 'Digigov Form/inputs/FileInput',
|
|
4
4
|
component: FileInput,
|
|
5
|
-
displayName: 'FileInput'
|
|
5
|
+
displayName: 'FileInput',
|
|
6
6
|
};
|
|
7
7
|
export * from '@digigov/form/inputs/FileInput/__stories__/Default';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
3
|
-
import { useTranslation } from '@digigov/ui/app/i18n';
|
|
4
|
-
import Paragraph from '@digigov/ui/typography/Paragraph';
|
|
5
|
-
import CoreHint from '@digigov/react-core/Hint';
|
|
6
|
-
import Button from '@digigov/ui/core/Button';
|
|
7
|
-
import FileUploadContainer from '@digigov/react-core/FileUploadContainer';
|
|
8
3
|
import FileUpload from '@digigov/react-core/FileUpload';
|
|
4
|
+
import FileUploadContainer from '@digigov/react-core/FileUploadContainer';
|
|
5
|
+
import CoreHint from '@digigov/react-core/Hint';
|
|
6
|
+
import Button from '@digigov/ui/form/Button';
|
|
7
|
+
import { useTranslation } from '@digigov/ui/i18n';
|
|
8
|
+
import Paragraph from '@digigov/ui/typography/Paragraph';
|
|
9
9
|
export interface FileInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
10
10
|
extra?: {
|
|
11
11
|
className?: string;
|
|
@@ -4,7 +4,7 @@ import TextArea from '@digigov/react-core/TextArea';
|
|
|
4
4
|
import { Hint } from '@digigov/react-core';
|
|
5
5
|
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
6
6
|
import { useWatch } from 'react-hook-form';
|
|
7
|
-
import { useTranslation } from '@digigov/ui/
|
|
7
|
+
import { useTranslation } from '@digigov/ui/i18n';
|
|
8
8
|
|
|
9
9
|
const TYPES_MAP = {
|
|
10
10
|
string: 'text',
|
|
@@ -58,8 +58,8 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
|
|
|
58
58
|
{limit?.max && (
|
|
59
59
|
<Hint>
|
|
60
60
|
{currentValue === undefined ||
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
(currentValue?.length >= 0 &&
|
|
62
|
+
currentValue?.length <= limit?.max) ? (
|
|
63
63
|
<span>
|
|
64
64
|
{t('form.info.text.you_have')}{' '}
|
|
65
65
|
<b>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import LabelTitle from '@digigov/react-core/LabelTitle';
|
|
3
|
-
import Hint from '@digigov/react-core/Hint';
|
|
4
|
-
import { useTranslation } from '@digigov/ui/app/i18n';
|
|
5
2
|
import { FieldLabelProps } from '@digigov/form/types';
|
|
3
|
+
import Hint from '@digigov/react-core/Hint';
|
|
4
|
+
import LabelTitle from '@digigov/react-core/LabelTitle';
|
|
5
|
+
import { useTranslation } from '@digigov/ui/i18n';
|
|
6
6
|
|
|
7
7
|
export interface FieldOptionProps {
|
|
8
8
|
label?: FieldLabelProps;
|
|
@@ -31,7 +31,7 @@ export const Label: React.FC<LabelProps> = ({ className, label, value }) => {
|
|
|
31
31
|
}
|
|
32
32
|
return (
|
|
33
33
|
<>
|
|
34
|
-
<LabelTitle className={className} size="
|
|
34
|
+
<LabelTitle className={className} size="sm">
|
|
35
35
|
{(label && label.primary && t(label.primary)) || value}
|
|
36
36
|
</LabelTitle>
|
|
37
37
|
{label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import FormBuilder, { Field, Fieldset } from '@digigov/form';
|
|
3
|
-
import { Button } from '@digigov/ui/core';
|
|
4
3
|
import { FieldSpec } from '@digigov/form/types';
|
|
4
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
5
5
|
const FIELDS: FieldSpec[] = [
|
|
6
6
|
{
|
|
7
7
|
key: 'otp',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useCallback } from 'react';
|
|
2
2
|
import SingleCharacterInputContainer, {
|
|
3
3
|
SingleCharacterInputItem,
|
|
4
|
-
} from '@digigov/ui/
|
|
4
|
+
} from '@digigov/ui/form/SingleCharacterInputContainer';
|
|
5
5
|
|
|
6
6
|
export const RE_DIGIT = new RegExp(/^\d+$/);
|
|
7
7
|
export const REMOVE_SPACES = new RegExp(/\s+/g);
|
|
@@ -83,7 +83,7 @@ function useOtp(onChange, maxLength) {
|
|
|
83
83
|
const handleOtpChange = useCallback(
|
|
84
84
|
(e: React.ChangeEvent<HTMLInputElement>, idx: number) => {
|
|
85
85
|
const target = e.target;
|
|
86
|
-
|
|
86
|
+
const targetValue = target.value;
|
|
87
87
|
const isTargetValueDigit = RE_DIGIT.test(targetValue);
|
|
88
88
|
// We want to pass the empty string when the value is deleted
|
|
89
89
|
// emptry string replaces the deleted value
|
|
@@ -139,7 +139,11 @@ export const OtpInput = function OtpInput({ name, maxLength = 6, ...props }) {
|
|
|
139
139
|
disabled={props.disabled}
|
|
140
140
|
aria-required={props['aria-required']}
|
|
141
141
|
onChange={(e) => otp.handleOtpChange(e, idx)}
|
|
142
|
-
onInput={(e) => {
|
|
142
|
+
onInput={(e) => {
|
|
143
|
+
if (e.target.value === digit) {
|
|
144
|
+
otp.handleOtpChange(e, idx);
|
|
145
|
+
}
|
|
146
|
+
}}
|
|
143
147
|
onKeyDown={(e) => otp.handleKeyDown(e, idx)}
|
|
144
148
|
onFocus={otp.handleFocus}
|
|
145
149
|
onPaste={otp.handlePaste}
|
|
@@ -2,9 +2,8 @@ import Radio from '@digigov/form/inputs/Radio';
|
|
|
2
2
|
export default {
|
|
3
3
|
title: 'Digigov Form/inputs/Radio',
|
|
4
4
|
component: Radio,
|
|
5
|
-
displayName: 'Radio'
|
|
5
|
+
displayName: 'Radio',
|
|
6
6
|
};
|
|
7
7
|
export * from '@digigov/form/inputs/Radio/__stories__/Default';
|
|
8
8
|
export * from '@digigov/form/inputs/Radio/__stories__/WithDivider';
|
|
9
9
|
export * from '@digigov/form/inputs/Radio/__stories__/Conditional';
|
|
10
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import FormBuilder, { Field, FieldSpec } from '@digigov/form';
|
|
3
|
-
import { Button } from '@digigov/ui/
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
4
|
|
|
5
5
|
const fields: FieldSpec[] = [
|
|
6
6
|
{
|
|
@@ -57,7 +57,7 @@ const fields: FieldSpec[] = [
|
|
|
57
57
|
{
|
|
58
58
|
key: 'auth_form',
|
|
59
59
|
type: 'choice:single',
|
|
60
|
-
required:true,
|
|
60
|
+
required: true,
|
|
61
61
|
label: {
|
|
62
62
|
primary: 'Επιλέξτε μέθοδο πιστοποίησης',
|
|
63
63
|
secondary:
|
|
@@ -94,4 +94,4 @@ export const Conditional = () => (
|
|
|
94
94
|
<Field key="auth_form" name="auth_form" />
|
|
95
95
|
<Button type="submit">Συνέχεια</Button>
|
|
96
96
|
</FormBuilder>
|
|
97
|
-
);
|
|
97
|
+
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import FormBuilder, { Field } from '@digigov/form';
|
|
3
|
-
import { Button } from '@digigov/ui/
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
4
|
|
|
5
5
|
export const WithDivider = () => (
|
|
6
6
|
<FormBuilder
|
|
@@ -31,7 +31,7 @@ export const WithDivider = () => (
|
|
|
31
31
|
{
|
|
32
32
|
label: { primary: 'Ηνωμένες Πολιτείες της Αμερικής' },
|
|
33
33
|
value: 'usa',
|
|
34
|
-
|
|
34
|
+
dividerText: 'ή',
|
|
35
35
|
},
|
|
36
36
|
],
|
|
37
37
|
}}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import RadioContainer from '@digigov/react-core/RadioContainer';
|
|
3
|
-
import RadioItem from '@digigov/react-core/RadioItem';
|
|
4
|
-
import { useTranslation } from '@digigov/ui/app/i18n';
|
|
5
|
-
import { FieldOptionProps } from '@digigov/form/inputs/Label';
|
|
6
|
-
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
7
2
|
import { useWatch } from 'react-hook-form';
|
|
8
|
-
import Hint from '@digigov/react-core/Hint';
|
|
9
3
|
import { Field } from '@digigov/form';
|
|
4
|
+
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
5
|
+
import { FieldOptionProps } from '@digigov/form/inputs/Label';
|
|
10
6
|
import { RadioConditional } from '@digigov/react-core';
|
|
7
|
+
import Hint from '@digigov/react-core/Hint';
|
|
8
|
+
import RadioContainer from '@digigov/react-core/RadioContainer';
|
|
9
|
+
import RadioItem from '@digigov/react-core/RadioItem';
|
|
10
|
+
import { useTranslation } from '@digigov/ui/i18n';
|
|
11
11
|
|
|
12
12
|
export interface RadioButtonsGroupProps
|
|
13
13
|
extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
3
|
+
import { FieldOptionProps } from '@digigov/form/inputs/Label';
|
|
2
4
|
import SelectContainer from '@digigov/react-core/SelectContainer';
|
|
3
5
|
import SelectOption from '@digigov/react-core/SelectOption';
|
|
4
|
-
import { FieldOptionProps } from '@digigov/form/inputs/Label';
|
|
5
|
-
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
6
6
|
|
|
7
7
|
export interface SelectProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
8
8
|
extra: {
|
package/src/installation.mdx
CHANGED
|
@@ -7,39 +7,35 @@ sidebar_label: Installation
|
|
|
7
7
|
import Tabs from '@theme/Tabs';
|
|
8
8
|
import TabItem from '@theme/TabItem';
|
|
9
9
|
import CodeBlock from '@theme/CodeBlock';
|
|
10
|
-
import LeadText from
|
|
10
|
+
import LeadText from '@site/src/components/LeadText';
|
|
11
11
|
|
|
12
12
|
<LeadText>
|
|
13
|
-
This page will help you install Digigov Form depending on the framework that
|
|
14
|
-
use and the application architecture.
|
|
13
|
+
This page will help you install Digigov Form depending on the framework that
|
|
14
|
+
you use and the application architecture.
|
|
15
15
|
</LeadText>
|
|
16
16
|
|
|
17
17
|
We assume that your stack uses some of the following tools.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
- React v16 or later
|
|
20
|
+
- Nextjs or create-react-app to run your code
|
|
21
|
+
- Digigov CSS, as a CSS import or as Tailwind plugin
|
|
22
22
|
|
|
23
23
|
## Using create-digigov-app
|
|
24
24
|
|
|
25
25
|
We highly recommend using `create-digigov-app`. Our scaffolder was created to save development teams time and effort. This way
|
|
26
26
|
everything you need is already configured.
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
If you choose to use our scaffolder tool, make sure you follow this
|
|
29
29
|
[guide](/docs/building-apps) first, if you haven't already done so.
|
|
30
30
|
|
|
31
31
|
Then you just install the `@digigov/form` package from NPM.
|
|
32
32
|
|
|
33
33
|
<Tabs>
|
|
34
34
|
<TabItem value="npm" label="NPM" default>
|
|
35
|
-
<CodeBlock>
|
|
36
|
-
npm install @digigov/form --save
|
|
37
|
-
</CodeBlock>
|
|
35
|
+
<CodeBlock>npm install @digigov/form --save</CodeBlock>
|
|
38
36
|
</TabItem>
|
|
39
37
|
<TabItem value="yarn" label="Yarn">
|
|
40
|
-
<CodeBlock>
|
|
41
|
-
yarn add @digigov/form
|
|
42
|
-
</CodeBlock>
|
|
38
|
+
<CodeBlock>yarn add @digigov/form</CodeBlock>
|
|
43
39
|
</TabItem>
|
|
44
40
|
</Tabs>
|
|
45
41
|
|
|
@@ -48,9 +44,9 @@ Then you just install the `@digigov/form` package from NPM.
|
|
|
48
44
|
This method is not recommended and you should proceed at your own risk. For
|
|
49
45
|
Digigov Form to work properly, it is essential to do some configuration.
|
|
50
46
|
|
|
51
|
-
|
|
47
|
+
- A working React application, ideally [Nextjs](https://nextjs.org/) or [Create
|
|
52
48
|
React App](https://create-react-app.dev/)
|
|
53
|
-
|
|
49
|
+
- You should already have [installed and configured Digigov
|
|
54
50
|
CSS](https://guide.services.gov.gr/docs/installation)
|
|
55
51
|
|
|
56
52
|
If you meet these prerequisites, now it is time to install the dependencies.
|
|
@@ -69,4 +65,4 @@ and install `@digigov/form` and it's dependencies.
|
|
|
69
65
|
yarn add @digigov/form @digigov/ui @digigov/react-core
|
|
70
66
|
</CodeBlock>
|
|
71
67
|
</TabItem>
|
|
72
|
-
</Tabs>
|
|
68
|
+
</Tabs>
|
package/src/types.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UseFormReturn, UseFormProps } from 'react-hook-form';
|
|
2
|
-
import { GridProps } from '@digigov/ui/layouts/Grid';
|
|
3
|
-
import { ValidatorSchema } from '@digigov/form/validators/types';
|
|
4
2
|
import { FieldComponentRegistry } from '@digigov/form/Field/types';
|
|
3
|
+
import { ValidatorSchema } from '@digigov/form/validators/types';
|
|
4
|
+
import { GridProps } from '@digigov/ui/layouts/Grid';
|
|
5
5
|
|
|
6
6
|
export type FieldError = {
|
|
7
7
|
message: string;
|
|
@@ -59,6 +59,8 @@ export interface FieldSpec {
|
|
|
59
59
|
>;
|
|
60
60
|
validators?: ValidatorSchema[];
|
|
61
61
|
wrapper?: 'label' | 'fieldset';
|
|
62
|
+
characterWidth?: number;
|
|
63
|
+
width?: string;
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
export interface FieldsetSpec {
|
package/src/utils.ts
CHANGED
package/src/validators/index.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import * as yup from 'yup';
|
|
2
|
-
import { FieldSpec } from '@digigov/form/types';
|
|
3
|
-
import { ValidatorSchema } from '@digigov/form/validators/types';
|
|
4
1
|
import { MutableRefObject, useMemo } from 'react';
|
|
5
2
|
import dayjs from 'dayjs';
|
|
6
3
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
4
|
+
import * as yup from 'yup';
|
|
5
|
+
import { AnyObjectSchema, StringSchema } from 'yup';
|
|
6
|
+
import { RequiredArraySchema } from 'yup/lib/array';
|
|
7
|
+
import Lazy from 'yup/lib/Lazy';
|
|
8
|
+
import { MixedSchema } from 'yup/lib/mixed';
|
|
9
|
+
import { TypeOfShape, AssertsShape } from 'yup/lib/object';
|
|
10
|
+
import { AnyObject } from 'yup/lib/types';
|
|
11
|
+
import { FieldSpec } from '@digigov/form/types';
|
|
12
|
+
import { ValidatorSchema } from '@digigov/form/validators/types';
|
|
7
13
|
import {
|
|
8
14
|
getYupObjectShape,
|
|
9
15
|
AFM_VALIDATOR,
|
|
@@ -16,14 +22,8 @@ import {
|
|
|
16
22
|
POSTALCODE_VALIDATOR,
|
|
17
23
|
UUID4_VALIDATOR,
|
|
18
24
|
} from '@digigov/form/validators/utils';
|
|
19
|
-
import { MixedSchema } from 'yup/lib/mixed';
|
|
20
|
-
import { RequiredArraySchema } from 'yup/lib/array';
|
|
21
|
-
import { AnyObject } from 'yup/lib/types';
|
|
22
|
-
import Lazy from 'yup/lib/Lazy';
|
|
23
|
-
import { TypeOfShape, AssertsShape } from 'yup/lib/object';
|
|
24
|
-
import { AnyObjectSchema, StringSchema } from 'yup';
|
|
25
|
-
import { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';
|
|
26
25
|
import { INT_VALIDATOR } from '@digigov/form/validators/utils/int';
|
|
26
|
+
import { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';
|
|
27
27
|
dayjs.extend(customParseFormat);
|
|
28
28
|
|
|
29
29
|
const VALID_DATE_FORMATS = ['DD/MM/YYYY'];
|