@digigov/form 2.0.0-b15d5d44 → 2.0.0-b19b7fe2
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/index.js +22 -30
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +2 -3
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/types.d.ts +0 -2
- package/FieldArray/index.js +0 -1
- package/FieldArray/index.js.map +2 -2
- package/FormBuilder/FormBuilder.stories.d.ts +0 -2
- package/FormBuilder/index.js +3 -79
- package/FormBuilder/index.js.map +2 -2
- package/MultiplicityField/index.js +0 -1
- package/MultiplicityField/index.js.map +2 -2
- package/cjs/Field/FieldBase/index.js +21 -29
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +2 -3
- package/cjs/Field/FieldBaseContainer.js.map +2 -2
- package/cjs/Field/types.js.map +1 -1
- package/cjs/FieldArray/index.js +0 -1
- package/cjs/FieldArray/index.js.map +2 -2
- package/cjs/FormBuilder/index.js +3 -79
- package/cjs/FormBuilder/index.js.map +2 -2
- package/cjs/MultiplicityField/index.js +0 -1
- package/cjs/MultiplicityField/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +0 -1
- package/cjs/inputs/Input/index.js.map +2 -2
- package/cjs/lazy/index.js +0 -2
- package/cjs/lazy.js.map +2 -2
- package/cjs/registry/index.js +4 -6
- package/cjs/registry.js.map +2 -2
- package/cjs/validators/index.js +12 -18
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/int/index.js +1 -1
- package/cjs/validators/utils/int.js.map +2 -2
- package/cjs/validators/utils/number/index.js +1 -1
- package/cjs/validators/utils/number.js.map +2 -2
- package/index.js +1 -1
- package/inputs/Input/Input.stories.d.ts +0 -1
- package/inputs/Input/index.js +0 -1
- package/inputs/Input/index.js.map +2 -2
- package/lazy/index.js +0 -2
- package/package.json +4 -4
- package/registry/index.js +4 -6
- package/src/Field/FieldBase.tsx +22 -33
- package/src/Field/FieldBaseContainer.tsx +2 -3
- package/src/Field/types.tsx +0 -2
- package/src/FieldArray/index.test.tsx +14 -13
- package/src/FieldArray/index.tsx +0 -1
- package/src/FormBuilder/FormBuilder.stories.js +0 -2
- package/src/FormBuilder/index.test.tsx +1 -9
- package/src/FormBuilder/index.tsx +5 -88
- package/src/FormBuilder/scenarios.test.tsx +4 -111
- package/src/MultiplicityField/index.test.tsx +26 -25
- package/src/MultiplicityField/index.tsx +0 -1
- package/src/Questions/__snapshots__/index.spec.tsx.snap +1 -2
- package/src/Questions/index.spec.tsx +0 -8
- package/src/Questions/index.test.tsx +11 -10
- package/src/inputs/AutoCompleteInput/index.test.tsx +14 -13
- package/src/inputs/Checkboxes/index.test.tsx +17 -16
- package/src/inputs/DateInput/index.test.tsx +11 -10
- package/src/inputs/FileInput/index.test.tsx +11 -10
- package/src/inputs/ImageInput/index.test.tsx +20 -19
- package/src/inputs/Input/Input.stories.js +0 -1
- package/src/inputs/Input/__stories__/TextWithLimit.tsx +0 -1
- package/src/inputs/Input/index.test.tsx +38 -41
- package/src/inputs/Input/index.tsx +0 -1
- package/src/inputs/Label/index.test.tsx +11 -10
- package/src/inputs/OtpInput/index.test.tsx +11 -10
- package/src/inputs/Radio/index.test.tsx +17 -16
- package/src/inputs/Select/index.test.tsx +11 -10
- package/src/lazy.js +0 -2
- package/src/registry.js +4 -6
- package/src/validators/index.ts +13 -38
- package/src/validators/utils/int.ts +1 -1
- package/src/validators/utils/number.ts +1 -1
- package/validators/index.js +12 -18
- package/validators/index.js.map +2 -2
- package/validators/utils/int/index.js +1 -1
- package/validators/utils/int.js.map +2 -2
- package/validators/utils/number/index.js +1 -1
- package/validators/utils/number.js.map +2 -2
- package/Field/ErrorGroup/index.js +0 -48
- package/Field/ErrorGroup/package.json +0 -6
- package/Field/ErrorGroup.d.ts +0 -15
- package/Field/ErrorGroup.js.map +0 -7
- package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +0 -3
- package/FormBuilder/__stories__/ErrorGrouping.d.ts +0 -3
- package/FormBuilder/interaction.test.d.ts +0 -1
- package/cjs/Field/ErrorGroup/index.js +0 -82
- package/cjs/Field/ErrorGroup.js.map +0 -7
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +0 -3
- package/src/Field/ErrorGroup.tsx +0 -84
- package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +0 -63
- package/src/FormBuilder/__stories__/ErrorGrouping.tsx +0 -43
- package/src/FormBuilder/interaction.test.tsx +0 -32
- package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +0 -26
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
-
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
4
3
|
import { AFM } from '@digigov/form/inputs/Input/__stories__/AFM';
|
|
5
4
|
import { Boolean } from '@digigov/form/inputs/Input/__stories__/Boolean';
|
|
6
5
|
import { IBAN } from '@digigov/form/inputs/Input/__stories__/IBAN';
|
|
@@ -10,51 +9,49 @@ import { MobilePhone } from '@digigov/form/inputs/Input/__stories__/MobilePhone'
|
|
|
10
9
|
import { PhoneNumber } from '@digigov/form/inputs/Input/__stories__/PhoneNumber';
|
|
11
10
|
import { PostalCode } from '@digigov/form/inputs/Input/__stories__/PostalCode';
|
|
12
11
|
import { String } from '@digigov/form/inputs/Input/__stories__/String';
|
|
13
|
-
import { StringWithTrimValidation } from '@digigov/form/inputs/Input/__stories__/StringWithTrimValidation';
|
|
14
12
|
import { TextWithLimit } from '@digigov/form/inputs/Input/__stories__/TextWithLimit';
|
|
13
|
+
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
15
14
|
|
|
16
15
|
test('renders the All Input variants', async ({ mount, page }) => {
|
|
17
16
|
await mount(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
</
|
|
50
|
-
|
|
51
|
-
<TextWithLimit />
|
|
52
|
-
</TestVariant>
|
|
53
|
-
</div>
|
|
54
|
-
)
|
|
17
|
+
<div>
|
|
18
|
+
<TestVariant title="AFM">
|
|
19
|
+
<AFM />
|
|
20
|
+
</TestVariant>
|
|
21
|
+
<TestVariant title="Boolean">
|
|
22
|
+
<Boolean />
|
|
23
|
+
</TestVariant>
|
|
24
|
+
<TestVariant title="IBAN">
|
|
25
|
+
<IBAN />
|
|
26
|
+
</TestVariant>
|
|
27
|
+
<TestVariant title="Integer">
|
|
28
|
+
<Integer />
|
|
29
|
+
</TestVariant>
|
|
30
|
+
<TestVariant title="LandlineNumber">
|
|
31
|
+
<LandlineNumber />
|
|
32
|
+
</TestVariant>
|
|
33
|
+
<TestVariant title="MobilePhone">
|
|
34
|
+
<MobilePhone />
|
|
35
|
+
</TestVariant>
|
|
36
|
+
<TestVariant title="PhoneNumber">
|
|
37
|
+
<PhoneNumber />
|
|
38
|
+
</TestVariant>
|
|
39
|
+
<TestVariant title="PostalCode">
|
|
40
|
+
<PostalCode />
|
|
41
|
+
</TestVariant>
|
|
42
|
+
<TestVariant title="String">
|
|
43
|
+
<String />
|
|
44
|
+
</TestVariant>
|
|
45
|
+
<TestVariant title="TextWithLimit">
|
|
46
|
+
<TextWithLimit />
|
|
47
|
+
</TestVariant>
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
55
50
|
await page.evaluate(() => document.fonts.ready);
|
|
56
51
|
|
|
57
|
-
const screenshot = await page.screenshot({
|
|
52
|
+
const screenshot = await page.screenshot({
|
|
53
|
+
fullPage: true,
|
|
54
|
+
animations: 'disabled',
|
|
55
|
+
});
|
|
58
56
|
expect(screenshot).toMatchSnapshot();
|
|
59
57
|
});
|
|
60
|
-
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
-
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
4
3
|
import { Default } from '@digigov/form/inputs/Label/__stories__/Default';
|
|
4
|
+
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
5
5
|
|
|
6
6
|
test('renders the All Label variants', async ({ mount, page }) => {
|
|
7
7
|
await mount(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</
|
|
13
|
-
|
|
14
|
-
)
|
|
8
|
+
<div>
|
|
9
|
+
<TestVariant title="Default">
|
|
10
|
+
<Default />
|
|
11
|
+
</TestVariant>
|
|
12
|
+
</div>
|
|
13
|
+
);
|
|
15
14
|
await page.evaluate(() => document.fonts.ready);
|
|
16
15
|
|
|
17
|
-
const screenshot = await page.screenshot({
|
|
16
|
+
const screenshot = await page.screenshot({
|
|
17
|
+
fullPage: true,
|
|
18
|
+
animations: 'disabled',
|
|
19
|
+
});
|
|
18
20
|
expect(screenshot).toMatchSnapshot();
|
|
19
21
|
});
|
|
20
|
-
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
-
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
4
3
|
import { Default } from '@digigov/form/inputs/OtpInput/__stories__/Default';
|
|
4
|
+
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
5
5
|
|
|
6
6
|
test('renders the All OtpInput variants', async ({ mount, page }) => {
|
|
7
7
|
await mount(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</
|
|
13
|
-
|
|
14
|
-
)
|
|
8
|
+
<div>
|
|
9
|
+
<TestVariant title="Default">
|
|
10
|
+
<Default />
|
|
11
|
+
</TestVariant>
|
|
12
|
+
</div>
|
|
13
|
+
);
|
|
15
14
|
await page.evaluate(() => document.fonts.ready);
|
|
16
15
|
|
|
17
|
-
const screenshot = await page.screenshot({
|
|
16
|
+
const screenshot = await page.screenshot({
|
|
17
|
+
fullPage: true,
|
|
18
|
+
animations: 'disabled',
|
|
19
|
+
});
|
|
18
20
|
expect(screenshot).toMatchSnapshot();
|
|
19
21
|
});
|
|
20
|
-
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
-
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
4
3
|
import { Conditional } from '@digigov/form/inputs/Radio/__stories__/Conditional';
|
|
5
4
|
import { Default } from '@digigov/form/inputs/Radio/__stories__/Default';
|
|
6
5
|
import { WithDivider } from '@digigov/form/inputs/Radio/__stories__/WithDivider';
|
|
6
|
+
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
7
7
|
|
|
8
8
|
test('renders the All Radio variants', async ({ mount, page }) => {
|
|
9
9
|
await mount(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
</
|
|
21
|
-
|
|
22
|
-
)
|
|
10
|
+
<div>
|
|
11
|
+
<TestVariant title="Conditional">
|
|
12
|
+
<Conditional />
|
|
13
|
+
</TestVariant>
|
|
14
|
+
<TestVariant title="Default">
|
|
15
|
+
<Default />
|
|
16
|
+
</TestVariant>
|
|
17
|
+
<TestVariant title="WithDivider">
|
|
18
|
+
<WithDivider />
|
|
19
|
+
</TestVariant>
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
23
22
|
await page.evaluate(() => document.fonts.ready);
|
|
24
23
|
|
|
25
|
-
const screenshot = await page.screenshot({
|
|
24
|
+
const screenshot = await page.screenshot({
|
|
25
|
+
fullPage: true,
|
|
26
|
+
animations: 'disabled',
|
|
27
|
+
});
|
|
26
28
|
expect(screenshot).toMatchSnapshot();
|
|
27
29
|
});
|
|
28
|
-
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
-
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
4
3
|
import { Default } from '@digigov/form/inputs/Select/__stories__/Default';
|
|
4
|
+
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
5
5
|
|
|
6
6
|
test('renders the All Select variants', async ({ mount, page }) => {
|
|
7
7
|
await mount(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</
|
|
13
|
-
|
|
14
|
-
)
|
|
8
|
+
<div>
|
|
9
|
+
<TestVariant title="Default">
|
|
10
|
+
<Default />
|
|
11
|
+
</TestVariant>
|
|
12
|
+
</div>
|
|
13
|
+
);
|
|
15
14
|
await page.evaluate(() => document.fonts.ready);
|
|
16
15
|
|
|
17
|
-
const screenshot = await page.screenshot({
|
|
16
|
+
const screenshot = await page.screenshot({
|
|
17
|
+
fullPage: true,
|
|
18
|
+
animations: 'disabled',
|
|
19
|
+
});
|
|
18
20
|
expect(screenshot).toMatchSnapshot();
|
|
19
21
|
});
|
|
20
|
-
|
package/src/lazy.js
CHANGED
|
@@ -4,8 +4,6 @@ export default {
|
|
|
4
4
|
'Field': lazy(() => import('@digigov/form/Field').then((module) => ({ default: module['Field'] }))),
|
|
5
5
|
'Fieldset': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['Fieldset'] }))),
|
|
6
6
|
'Label': lazy(() => import('@digigov/form/inputs/Label').then((module) => ({ default: module['Label'] }))),
|
|
7
|
-
'ErrorGroupContext': lazy(() => import('@digigov/form/Field/ErrorGroup').then((module) => ({ default: module['ErrorGroupContext'] }))),
|
|
8
|
-
'ErrorGroup': lazy(() => import('@digigov/form/Field/ErrorGroup').then((module) => ({ default: module['ErrorGroup'] }))),
|
|
9
7
|
'FieldBase': lazy(() => import('@digigov/form/Field/FieldBase').then((module) => ({ default: module['FieldBase'] }))),
|
|
10
8
|
'FieldBaseContainer': lazy(() => import('@digigov/form/Field/FieldBaseContainer').then((module) => ({ default: module['FieldBaseContainer'] }))),
|
|
11
9
|
'FieldConditional': lazy(() => import('@digigov/form/Field/FieldConditional').then((module) => ({ default: module['FieldConditional'] }))),
|
package/src/registry.js
CHANGED
|
@@ -4,7 +4,6 @@ import * as _digigov_form from "@digigov/form";
|
|
|
4
4
|
import * as _digigov_form_internal from "@digigov/form/internal";
|
|
5
5
|
import * as _digigov_form_types from "@digigov/form/types";
|
|
6
6
|
import * as _digigov_form_utils from "@digigov/form/utils";
|
|
7
|
-
import * as _digigov_form_Field_ErrorGroup from "@digigov/form/Field/ErrorGroup";
|
|
8
7
|
import * as _digigov_form_Field_FieldBase from "@digigov/form/Field/FieldBase";
|
|
9
8
|
import * as _digigov_form_Field_FieldBaseContainer from "@digigov/form/Field/FieldBaseContainer";
|
|
10
9
|
import * as _digigov_form_Field_FieldConditional from "@digigov/form/Field/FieldConditional";
|
|
@@ -46,11 +45,11 @@ import * as _digigov_form_Questions_Step_getAddMoreFields from "@digigov/form/Qu
|
|
|
46
45
|
import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
|
|
47
46
|
import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
|
|
48
47
|
import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
|
|
49
|
-
import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
|
|
50
48
|
import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
|
|
49
|
+
import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
|
|
51
50
|
import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
|
|
52
|
-
import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
|
|
53
51
|
import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
|
|
52
|
+
import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
|
|
54
53
|
import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
|
|
55
54
|
import * as _digigov_form_inputs_Input_inputsInputScenarios from "@digigov/form/inputs/Input/inputsInputScenarios";
|
|
56
55
|
import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
|
|
@@ -95,7 +94,6 @@ export default {
|
|
|
95
94
|
'@digigov/form/internal': lazyImport(_digigov_form_internal),
|
|
96
95
|
'@digigov/form/types': lazyImport(_digigov_form_types),
|
|
97
96
|
'@digigov/form/utils': lazyImport(_digigov_form_utils),
|
|
98
|
-
'@digigov/form/Field/ErrorGroup': lazyImport(_digigov_form_Field_ErrorGroup),
|
|
99
97
|
'@digigov/form/Field/FieldBase': lazyImport(_digigov_form_Field_FieldBase),
|
|
100
98
|
'@digigov/form/Field/FieldBaseContainer': lazyImport(_digigov_form_Field_FieldBaseContainer),
|
|
101
99
|
'@digigov/form/Field/FieldConditional': lazyImport(_digigov_form_Field_FieldConditional),
|
|
@@ -137,11 +135,11 @@ export default {
|
|
|
137
135
|
'@digigov/form/Questions/Step': lazyImport(_digigov_form_Questions_Step),
|
|
138
136
|
'@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
|
|
139
137
|
'@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
|
|
140
|
-
'@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
|
|
141
138
|
'@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
|
|
139
|
+
'@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
|
|
142
140
|
'@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
|
|
143
|
-
'@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
|
|
144
141
|
'@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
|
|
142
|
+
'@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
|
|
145
143
|
'@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
|
|
146
144
|
'@digigov/form/inputs/Input/inputsInputScenarios': lazyImport(_digigov_form_inputs_Input_inputsInputScenarios),
|
|
147
145
|
'@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
|
package/src/validators/index.ts
CHANGED
|
@@ -44,13 +44,7 @@ export const getYUPTypeMap = (): Record<string, any> => {
|
|
|
44
44
|
.nullable()
|
|
45
45
|
.test(FILE_MAX_SIZE_VALIDATOR(field));
|
|
46
46
|
},
|
|
47
|
-
string: (field): yup.StringSchema =>
|
|
48
|
-
if (field.trim) {
|
|
49
|
-
return yup.string().trim();
|
|
50
|
-
} else {
|
|
51
|
-
return yup.string();
|
|
52
|
-
}
|
|
53
|
-
},
|
|
47
|
+
string: (field): yup.StringSchema => yup.string().trim().required(field),
|
|
54
48
|
boolean: (): yup.BooleanSchema<
|
|
55
49
|
boolean | null | undefined,
|
|
56
50
|
AnyObject,
|
|
@@ -117,39 +111,26 @@ export const getYUPTypeMap = (): Record<string, any> => {
|
|
|
117
111
|
number: (): MixedSchema =>
|
|
118
112
|
yup
|
|
119
113
|
.mixed()
|
|
120
|
-
.transform((_, val) => (val !== '' ? Number(val) :
|
|
114
|
+
.transform((_, val) => (val !== '' ? Number(val) : null))
|
|
121
115
|
.test(NUMBER_VALIDATOR()),
|
|
122
116
|
int: (): MixedSchema =>
|
|
123
117
|
yup
|
|
124
118
|
.mixed()
|
|
125
|
-
.transform((_, val) => (val !== '' ? Number(val) :
|
|
119
|
+
.transform((_, val) => (val !== '' ? Number(val) : null))
|
|
126
120
|
.test(NUMBER_VALIDATOR())
|
|
127
121
|
.test(INT_VALIDATOR()),
|
|
128
|
-
email: (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
: yup.string().email('form.error.email'),
|
|
132
|
-
afm: (field): yup.StringSchema =>
|
|
133
|
-
field.trim
|
|
134
|
-
? yup.string().trim().test(AFM_VALIDATOR)
|
|
135
|
-
: yup.string().test(AFM_VALIDATOR),
|
|
136
|
-
uuid4: (field): yup.StringSchema =>
|
|
137
|
-
field.trim
|
|
138
|
-
? yup.string().trim().test(UUID4_VALIDATOR)
|
|
139
|
-
: yup.string().test(UUID4_VALIDATOR),
|
|
122
|
+
email: (): yup.StringSchema => yup.string().email('form.error.email'),
|
|
123
|
+
afm: (): yup.StringSchema => yup.string().trim().test(AFM_VALIDATOR),
|
|
124
|
+
uuid4: (): yup.StringSchema => yup.string().trim().test(UUID4_VALIDATOR),
|
|
140
125
|
iban: (field): yup.StringSchema =>
|
|
141
|
-
|
|
142
|
-
? yup.string().trim().test(IBAN_VALIDATOR(field))
|
|
143
|
-
: yup.string().trim().test(IBAN_VALIDATOR(field)),
|
|
126
|
+
yup.string().trim().test(IBAN_VALIDATOR(field)),
|
|
144
127
|
otp: (field): yup.StringSchema =>
|
|
145
128
|
yup.string().trim().test(OTP_VALIDATOR(field)),
|
|
146
129
|
text: (field): yup.StringSchema => {
|
|
147
130
|
if (field?.extra?.limit?.max || !!field?.extra?.limit?.min) {
|
|
148
|
-
return field
|
|
149
|
-
? yup.string().trim().test(TEXT_LIMIT_VALIDATOR(field))
|
|
150
|
-
: yup.string().test(TEXT_LIMIT_VALIDATOR(field));
|
|
131
|
+
return yup.string().test(TEXT_LIMIT_VALIDATOR(field));
|
|
151
132
|
} else {
|
|
152
|
-
return
|
|
133
|
+
return yup.string();
|
|
153
134
|
}
|
|
154
135
|
},
|
|
155
136
|
image: (field): MixedSchema => {
|
|
@@ -166,17 +147,11 @@ export const getYUPTypeMap = (): Record<string, any> => {
|
|
|
166
147
|
.test(IMAGE_DIMENSION_VALIDATOR(field));
|
|
167
148
|
},
|
|
168
149
|
postal_code: (field): yup.StringSchema =>
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
mobile_phone: (field): yup.StringSchema =>
|
|
173
|
-
field.trim
|
|
174
|
-
? yup.string().trim().test(MOBILE_PHONE_VALIDATOR)
|
|
175
|
-
: yup.string().test(MOBILE_PHONE_VALIDATOR),
|
|
150
|
+
yup.string().trim().test(POSTALCODE_VALIDATOR(field)),
|
|
151
|
+
mobile_phone: (): yup.StringSchema =>
|
|
152
|
+
yup.string().trim().test(MOBILE_PHONE_VALIDATOR),
|
|
176
153
|
phone_number: (field): yup.StringSchema =>
|
|
177
|
-
|
|
178
|
-
? yup.string().trim().test(PHONE_NUMBER_VALIDATOR(field))
|
|
179
|
-
: yup.string().test(PHONE_NUMBER_VALIDATOR(field)),
|
|
154
|
+
yup.string().trim().test(PHONE_NUMBER_VALIDATOR(field)),
|
|
180
155
|
'choice:multiple': (): yup.ArraySchema<
|
|
181
156
|
yup.StringSchema<string | undefined, AnyObject, string | undefined>,
|
|
182
157
|
AnyObject,
|
|
@@ -13,7 +13,7 @@ export const INT_VALIDATOR = (): ValidatorSchema => {
|
|
|
13
13
|
name: 'int-validator',
|
|
14
14
|
message: 'form.error.positive_integer_number',
|
|
15
15
|
test: (value: number): boolean => {
|
|
16
|
-
if (value ===
|
|
16
|
+
if (value === null) {
|
|
17
17
|
return true;
|
|
18
18
|
}
|
|
19
19
|
return validateIntNumber(value);
|
|
@@ -9,7 +9,7 @@ export const NUMBER_VALIDATOR = (): ValidatorSchema => {
|
|
|
9
9
|
name: 'number-validator',
|
|
10
10
|
message: 'form.error.number',
|
|
11
11
|
test: (value: number): boolean => {
|
|
12
|
-
if (value ===
|
|
12
|
+
if (value === null) {
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
15
|
return validateNumber(value);
|
package/validators/index.js
CHANGED
|
@@ -31,13 +31,7 @@ const getYUPTypeMap = () => {
|
|
|
31
31
|
return value;
|
|
32
32
|
}).nullable().test(FILE_MAX_SIZE_VALIDATOR(field));
|
|
33
33
|
},
|
|
34
|
-
string: (field) =>
|
|
35
|
-
if (field.trim) {
|
|
36
|
-
return yup.string().trim();
|
|
37
|
-
} else {
|
|
38
|
-
return yup.string();
|
|
39
|
-
}
|
|
40
|
-
},
|
|
34
|
+
string: (field) => yup.string().trim().required(field),
|
|
41
35
|
boolean: () => {
|
|
42
36
|
return yup.boolean().nullable().transform((value) => {
|
|
43
37
|
if (value === "" || typeof value === "string") return null;
|
|
@@ -80,18 +74,18 @@ const getYUPTypeMap = () => {
|
|
|
80
74
|
return yup.array().of(yup.string());
|
|
81
75
|
}
|
|
82
76
|
},
|
|
83
|
-
number: () => yup.mixed().transform((_, val) => val !== "" ? Number(val) :
|
|
84
|
-
int: () => yup.mixed().transform((_, val) => val !== "" ? Number(val) :
|
|
85
|
-
email: (
|
|
86
|
-
afm: (
|
|
87
|
-
uuid4: (
|
|
88
|
-
iban: (field) =>
|
|
77
|
+
number: () => yup.mixed().transform((_, val) => val !== "" ? Number(val) : null).test(NUMBER_VALIDATOR()),
|
|
78
|
+
int: () => yup.mixed().transform((_, val) => val !== "" ? Number(val) : null).test(NUMBER_VALIDATOR()).test(INT_VALIDATOR()),
|
|
79
|
+
email: () => yup.string().email("form.error.email"),
|
|
80
|
+
afm: () => yup.string().trim().test(AFM_VALIDATOR),
|
|
81
|
+
uuid4: () => yup.string().trim().test(UUID4_VALIDATOR),
|
|
82
|
+
iban: (field) => yup.string().trim().test(IBAN_VALIDATOR(field)),
|
|
89
83
|
otp: (field) => yup.string().trim().test(OTP_VALIDATOR(field)),
|
|
90
84
|
text: (field) => {
|
|
91
85
|
if (field?.extra?.limit?.max || !!field?.extra?.limit?.min) {
|
|
92
|
-
return
|
|
86
|
+
return yup.string().test(TEXT_LIMIT_VALIDATOR(field));
|
|
93
87
|
} else {
|
|
94
|
-
return
|
|
88
|
+
return yup.string();
|
|
95
89
|
}
|
|
96
90
|
},
|
|
97
91
|
image: (field) => {
|
|
@@ -102,9 +96,9 @@ const getYUPTypeMap = () => {
|
|
|
102
96
|
return value;
|
|
103
97
|
}).nullable().test(FILE_MAX_SIZE_VALIDATOR(field)).test(IMAGE_DIMENSION_VALIDATOR(field));
|
|
104
98
|
},
|
|
105
|
-
postal_code: (field) =>
|
|
106
|
-
mobile_phone: (
|
|
107
|
-
phone_number: (field) =>
|
|
99
|
+
postal_code: (field) => yup.string().trim().test(POSTALCODE_VALIDATOR(field)),
|
|
100
|
+
mobile_phone: () => yup.string().trim().test(MOBILE_PHONE_VALIDATOR),
|
|
101
|
+
phone_number: (field) => yup.string().trim().test(PHONE_NUMBER_VALIDATOR(field)),
|
|
108
102
|
"choice:multiple": () => yup.array().of(yup.string()).nullable(),
|
|
109
103
|
"choice:single": () => yup.string().nullable(),
|
|
110
104
|
date: (field) => {
|
package/validators/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { MutableRefObject, useMemo } from 'react';\nimport * as yup from 'yup';\nimport { AnyObjectSchema, StringSchema } from 'yup';\nimport { RequiredArraySchema } from 'yup/lib/array';\nimport Lazy from 'yup/lib/Lazy';\nimport { MixedSchema } from 'yup/lib/mixed';\nimport { TypeOfShape, AssertsShape } from 'yup/lib/object';\nimport { AnyObject } from 'yup/lib/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nimport {\n getYupObjectShape,\n AFM_VALIDATOR,\n FILE_MAX_SIZE_VALIDATOR,\n IBAN_VALIDATOR,\n OTP_VALIDATOR,\n MOBILE_PHONE_VALIDATOR,\n PHONE_NUMBER_VALIDATOR,\n TEXT_LIMIT_VALIDATOR,\n POSTALCODE_VALIDATOR,\n UUID4_VALIDATOR,\n IMAGE_DIMENSION_VALIDATOR,\n DATE_VALIDATOR,\n LATER_THAN_VALIDATOR,\n EARLIER_THAN_VALIDATOR,\n DATETIME_VALIDATOR,\n LATER_THAN_DATETIME_VALIDATOR,\n EARLIER_THAN_DATETIME_VALIDATOR,\n} from '@digigov/form/validators/utils';\nimport { INT_VALIDATOR } from '@digigov/form/validators/utils/int';\nimport { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';\n\nexport const getYUPTypeMap = (): Record<string, any> => {\n const yupTypeMap = {\n file: (field): MixedSchema => {\n return yup\n .mixed()\n .transform((value) => {\n if (!value.length) {\n return null;\n }\n return value;\n })\n .nullable()\n .test(FILE_MAX_SIZE_VALIDATOR(field));\n },\n string: (field): yup.StringSchema =>
|
|
5
|
-
"mappings": "AAAA,SAA2B,eAAe;AAC1C,YAAY,SAAS;AASrB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AAE1B,MAAM,gBAAgB,MAA2B;AACtD,QAAM,aAAa;AAAA,IACjB,MAAM,CAAC,UAAuB;AAC5B,aAAO,IACJ,MAAM,EACN,UAAU,CAAC,UAAU;AACpB,YAAI,CAAC,MAAM,QAAQ;AACjB,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT,CAAC,EACA,SAAS,EACT,KAAK,wBAAwB,KAAK,CAAC;AAAA,IACxC;AAAA,IACA,QAAQ,CAAC,UAA4B
|
|
4
|
+
"sourcesContent": ["import { MutableRefObject, useMemo } from 'react';\nimport * as yup from 'yup';\nimport { AnyObjectSchema, StringSchema } from 'yup';\nimport { RequiredArraySchema } from 'yup/lib/array';\nimport Lazy from 'yup/lib/Lazy';\nimport { MixedSchema } from 'yup/lib/mixed';\nimport { TypeOfShape, AssertsShape } from 'yup/lib/object';\nimport { AnyObject } from 'yup/lib/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nimport {\n getYupObjectShape,\n AFM_VALIDATOR,\n FILE_MAX_SIZE_VALIDATOR,\n IBAN_VALIDATOR,\n OTP_VALIDATOR,\n MOBILE_PHONE_VALIDATOR,\n PHONE_NUMBER_VALIDATOR,\n TEXT_LIMIT_VALIDATOR,\n POSTALCODE_VALIDATOR,\n UUID4_VALIDATOR,\n IMAGE_DIMENSION_VALIDATOR,\n DATE_VALIDATOR,\n LATER_THAN_VALIDATOR,\n EARLIER_THAN_VALIDATOR,\n DATETIME_VALIDATOR,\n LATER_THAN_DATETIME_VALIDATOR,\n EARLIER_THAN_DATETIME_VALIDATOR,\n} from '@digigov/form/validators/utils';\nimport { INT_VALIDATOR } from '@digigov/form/validators/utils/int';\nimport { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';\n\nexport const getYUPTypeMap = (): Record<string, any> => {\n const yupTypeMap = {\n file: (field): MixedSchema => {\n return yup\n .mixed()\n .transform((value) => {\n if (!value.length) {\n return null;\n }\n return value;\n })\n .nullable()\n .test(FILE_MAX_SIZE_VALIDATOR(field));\n },\n string: (field): yup.StringSchema => yup.string().trim().required(field),\n boolean: (): yup.BooleanSchema<\n boolean | null | undefined,\n AnyObject,\n boolean | null | undefined\n > => {\n return yup\n .boolean()\n .nullable()\n .transform((value) => {\n if (value === '' || typeof value === 'string') return null;\n if (typeof value === 'boolean') return value;\n if (value === 0 || value === 1) return Boolean(value);\n return value;\n });\n },\n object: (\n field\n ):\n | yup.ObjectSchema<any, AnyObject, TypeOfShape<any>, AssertsShape<any>>\n | Lazy<any, unknown> => {\n return getYupObjectShape(field.extra.fields, yupTypeMap);\n },\n array: (\n field\n ):\n | yup.ArraySchema<any, AnyObject, any[] | undefined>\n | RequiredArraySchema<any, AnyObject, any[] | undefined> => {\n if (typeof field.extra.of === 'object') {\n // else if the field is an object then it is a scalar type\n // eg. number, string etc.\n let arrayValidator = yup\n .array()\n .of(yupTypeMap[field.extra.of.type](field.extra.of))\n .required(field.required);\n if (field.extra.length)\n arrayValidator = arrayValidator.length(field.extra.length, {\n key: 'form.error.array.length',\n context: {\n length: field.extra.length,\n },\n });\n if (field.extra.min)\n arrayValidator = arrayValidator.min(field.extra.min, {\n key: 'form.error.array.min',\n context: {\n min: field.extra.min,\n },\n });\n if (field.extra.max)\n arrayValidator = arrayValidator.max(field.extra.max, {\n key: 'form.error.array.max',\n context: {\n max: field.extra.max,\n },\n });\n return arrayValidator;\n } else if (typeof field.extra.of === 'string') {\n return yup.array().of(yupTypeMap[field.extra.of]());\n } else {\n // in any other case it will be string\n return yup.array().of(yup.string());\n }\n },\n number: (): MixedSchema =>\n yup\n .mixed()\n .transform((_, val) => (val !== '' ? Number(val) : null))\n .test(NUMBER_VALIDATOR()),\n int: (): MixedSchema =>\n yup\n .mixed()\n .transform((_, val) => (val !== '' ? Number(val) : null))\n .test(NUMBER_VALIDATOR())\n .test(INT_VALIDATOR()),\n email: (): yup.StringSchema => yup.string().email('form.error.email'),\n afm: (): yup.StringSchema => yup.string().trim().test(AFM_VALIDATOR),\n uuid4: (): yup.StringSchema => yup.string().trim().test(UUID4_VALIDATOR),\n iban: (field): yup.StringSchema =>\n yup.string().trim().test(IBAN_VALIDATOR(field)),\n otp: (field): yup.StringSchema =>\n yup.string().trim().test(OTP_VALIDATOR(field)),\n text: (field): yup.StringSchema => {\n if (field?.extra?.limit?.max || !!field?.extra?.limit?.min) {\n return yup.string().test(TEXT_LIMIT_VALIDATOR(field));\n } else {\n return yup.string();\n }\n },\n image: (field): MixedSchema => {\n return yup\n .mixed()\n .transform((value) => {\n if (!value.length || value.length === 0) {\n return null;\n }\n return value;\n })\n .nullable()\n .test(FILE_MAX_SIZE_VALIDATOR(field))\n .test(IMAGE_DIMENSION_VALIDATOR(field));\n },\n postal_code: (field): yup.StringSchema =>\n yup.string().trim().test(POSTALCODE_VALIDATOR(field)),\n mobile_phone: (): yup.StringSchema =>\n yup.string().trim().test(MOBILE_PHONE_VALIDATOR),\n phone_number: (field): yup.StringSchema =>\n yup.string().trim().test(PHONE_NUMBER_VALIDATOR(field)),\n 'choice:multiple': (): yup.ArraySchema<\n yup.StringSchema<string | undefined, AnyObject, string | undefined>,\n AnyObject,\n (string | undefined)[] | null | undefined,\n (string | undefined)[] | null | undefined\n > => yup.array().of(yup.string()).nullable(),\n 'choice:single': (): StringSchema<\n string | null | undefined,\n AnyObject,\n string | null | undefined\n > => yup.string().nullable(),\n date: (\n field\n ): yup.StringSchema<\n string | null | undefined,\n AnyObject,\n string | null | undefined\n > => {\n let schema = yup.string().nullable();\n if (field?.extra?.min) {\n schema = schema.test(LATER_THAN_VALIDATOR(field));\n }\n if (field?.extra?.max) {\n schema = schema.test(EARLIER_THAN_VALIDATOR(field));\n } else {\n schema = schema.test(DATE_VALIDATOR);\n }\n return schema;\n },\n datetime: (field): yup.StringSchema => {\n if (field?.extra?.min) {\n return yup.string().test(LATER_THAN_DATETIME_VALIDATOR(field));\n }\n if (field?.extra?.max) {\n return yup.string().test(EARLIER_THAN_DATETIME_VALIDATOR(field));\n }\n return yup.string().test(DATETIME_VALIDATOR);\n },\n };\n return yupTypeMap;\n};\n\nexport interface MutableRefObjectProps {}\n// Create a yup validation schema from given fields input\nexport function useValidationSchema(\n fields: FieldSpec[] | MutableRefObject<MutableRefObjectProps>,\n validatorRegistry?: Record<string, ValidatorSchema[]>\n): Lazy<any, unknown> | AnyObjectSchema | void {\n return useMemo(() => {\n const yupTypeMap = getYUPTypeMap();\n return getYupObjectShape(fields, yupTypeMap, validatorRegistry);\n }, []);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/validators/utils/int.ts"],
|
|
4
|
-
"sourcesContent": ["import { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateIntNumber(number: number): boolean {\n if (number === undefined) {\n return false;\n } else {\n return Number.isInteger(number) && Number(number) > 0;\n }\n}\n\nexport const INT_VALIDATOR = (): ValidatorSchema => {\n return {\n name: 'int-validator',\n message: 'form.error.positive_integer_number',\n test: (value: number): boolean => {\n if (value ===
|
|
5
|
-
"mappings": "AAEO,SAAS,kBAAkB,QAAyB;AACzD,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,OAAO,UAAU,MAAM,KAAK,OAAO,MAAM,IAAI;AAAA,EACtD;AACF;AAEO,MAAM,gBAAgB,MAAuB;AAClD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,
|
|
4
|
+
"sourcesContent": ["import { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateIntNumber(number: number): boolean {\n if (number === undefined) {\n return false;\n } else {\n return Number.isInteger(number) && Number(number) > 0;\n }\n}\n\nexport const INT_VALIDATOR = (): ValidatorSchema => {\n return {\n name: 'int-validator',\n message: 'form.error.positive_integer_number',\n test: (value: number): boolean => {\n if (value === null) {\n return true;\n }\n return validateIntNumber(value);\n },\n };\n};\n"],
|
|
5
|
+
"mappings": "AAEO,SAAS,kBAAkB,QAAyB;AACzD,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,OAAO,UAAU,MAAM,KAAK,OAAO,MAAM,IAAI;AAAA,EACtD;AACF;AAEO,MAAM,gBAAgB,MAAuB;AAClD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,MACT;AACA,aAAO,kBAAkB,KAAK;AAAA,IAChC;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/validators/utils/number.ts"],
|
|
4
|
-
"sourcesContent": ["import { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateNumber(number: number): boolean {\n return !Number.isNaN(number);\n}\n\nexport const NUMBER_VALIDATOR = (): ValidatorSchema => {\n return {\n name: 'number-validator',\n message: 'form.error.number',\n test: (value: number): boolean => {\n if (value ===
|
|
5
|
-
"mappings": "AAEO,SAAS,eAAe,QAAyB;AACtD,SAAO,CAAC,OAAO,MAAM,MAAM;AAC7B;AAEO,MAAM,mBAAmB,MAAuB;AACrD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,
|
|
4
|
+
"sourcesContent": ["import { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateNumber(number: number): boolean {\n return !Number.isNaN(number);\n}\n\nexport const NUMBER_VALIDATOR = (): ValidatorSchema => {\n return {\n name: 'number-validator',\n message: 'form.error.number',\n test: (value: number): boolean => {\n if (value === null) {\n return true;\n }\n return validateNumber(value);\n },\n };\n};\n"],
|
|
5
|
+
"mappings": "AAEO,SAAS,eAAe,QAAyB;AACtD,SAAO,CAAC,OAAO,MAAM,MAAM;AAC7B;AAEO,MAAM,mBAAmB,MAAuB;AACrD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,MACT;AACA,aAAO,eAAe,KAAK;AAAA,IAC7B;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import React, { createContext, useEffect, useState } from "react";
|
|
2
|
-
import { List, ListItem } from "@digigov/ui/content/List";
|
|
3
|
-
import { ErrorSummary } from "@digigov/ui/feedback/ErrorSummary";
|
|
4
|
-
import { useTranslation } from "@digigov/ui/i18n";
|
|
5
|
-
import { Link } from "@digigov/ui/navigation/Link";
|
|
6
|
-
import { Heading } from "@digigov/ui/typography/Heading";
|
|
7
|
-
import { Base } from "@digigov/ui/utils/Base";
|
|
8
|
-
const ErrorGroupContext = createContext(
|
|
9
|
-
null
|
|
10
|
-
);
|
|
11
|
-
const ErrorGroup = ({
|
|
12
|
-
children,
|
|
13
|
-
screenSize,
|
|
14
|
-
fieldOrder
|
|
15
|
-
}) => {
|
|
16
|
-
const [errors, setErrors] = useState({});
|
|
17
|
-
const { t } = useTranslation();
|
|
18
|
-
const setError = (name, label, error) => {
|
|
19
|
-
if (errors[name] !== error && errors[name]?.message !== error?.message) {
|
|
20
|
-
if (!error?.message) {
|
|
21
|
-
const updatedErrors = { ...errors };
|
|
22
|
-
delete updatedErrors[name];
|
|
23
|
-
setErrors(updatedErrors);
|
|
24
|
-
} else {
|
|
25
|
-
setErrors({
|
|
26
|
-
...errors,
|
|
27
|
-
[name]: {
|
|
28
|
-
...error,
|
|
29
|
-
label: label.primary
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
useEffect(() => {
|
|
36
|
-
setErrors({});
|
|
37
|
-
}, [screenSize]);
|
|
38
|
-
return /* @__PURE__ */ React.createElement(ErrorGroupContext.Provider, { value: { setError } }, Object.keys(errors).length !== 0 && /* @__PURE__ */ React.createElement(ErrorSummary, { variant: "error-group" }, /* @__PURE__ */ React.createElement(Heading, { size: "sm" }, "\u03A4\u03B1 \u03C0\u03B1\u03C1\u03B1\u03BA\u03AC\u03C4\u03C9 \u03C0\u03B5\u03B4\u03AF\u03B1 \u03C4\u03B7\u03C2 \u03C6\u03CC\u03C1\u03BC\u03B1\u03C2 \u03B5\u03B9\u03BD\u03B1\u03B9 \u03BB\u03AC\u03B8\u03BF\u03C2.", " "), /* @__PURE__ */ React.createElement(List, { listStyle: "bullet" }, (fieldOrder || Object.keys(errors).reverse()).filter((fieldName) => errors[fieldName]).map((fieldName, index) => {
|
|
39
|
-
return /* @__PURE__ */ React.createElement(ListItem, { key: index, id: `${fieldName}-error` }, /* @__PURE__ */ React.createElement(Base, { as: "b" }, t(errors[fieldName]?.label), ":"), " ", /* @__PURE__ */ React.createElement(Link, { href: `#${fieldName}` }, t(errors[fieldName]?.message)));
|
|
40
|
-
}))), children);
|
|
41
|
-
};
|
|
42
|
-
var ErrorGroup_default = ErrorGroup;
|
|
43
|
-
export {
|
|
44
|
-
ErrorGroup,
|
|
45
|
-
ErrorGroupContext,
|
|
46
|
-
ErrorGroup_default as default
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=ErrorGroup.js.map
|