@digigov/form 0.8.1 → 0.8.2
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/CHANGELOG.md +10 -1
- package/Field/FieldBase.js +1 -3
- package/Field/FieldConditional.js +4 -0
- package/Field/index.js +3 -1
- package/Field/utils.js +2 -0
- package/FieldObject/index.js +4 -0
- package/Form.stories.js +25 -0
- package/MultiplicityField/add-objects.js +2 -0
- package/__stories__/IntField.js +60 -0
- package/es/Field/FieldBase.js +1 -3
- package/es/Field/FieldConditional.js +4 -0
- package/es/Field/index.js +3 -1
- package/es/Field/utils.js +2 -0
- package/es/FieldObject/index.js +4 -0
- package/es/Form.stories.js +4 -0
- package/es/MultiplicityField/add-objects.js +2 -0
- package/es/__stories__/IntField.js +40 -0
- package/es/inputs/FileInput/FileInput.stories.js +6 -0
- package/es/inputs/FileInput/__stories__/Default.js +23 -0
- package/es/inputs/FileInput/index.js +31 -27
- package/es/inputs/Input/index.js +1 -1
- package/es/validators/index.js +6 -2
- package/es/validators/utils/int.js +20 -0
- package/es/validators/utils/number.js +16 -0
- package/esm/Field/FieldBase.js +1 -3
- package/esm/Field/FieldConditional.js +4 -0
- package/esm/Field/index.js +3 -1
- package/esm/Field/utils.js +2 -0
- package/esm/FieldObject/index.js +4 -0
- package/esm/Form.stories.js +4 -0
- package/esm/MultiplicityField/add-objects.js +2 -0
- package/esm/__stories__/IntField.js +40 -0
- package/esm/index.js +1 -1
- package/esm/inputs/FileInput/FileInput.stories.js +6 -0
- package/esm/inputs/FileInput/__stories__/Default.js +23 -0
- package/esm/inputs/FileInput/index.js +31 -27
- package/esm/inputs/Input/index.js +1 -1
- package/esm/validators/index.js +6 -2
- package/esm/validators/utils/int.js +20 -0
- package/esm/validators/utils/number.js +16 -0
- package/inputs/FileInput/FileInput.stories.js +30 -0
- package/inputs/FileInput/__stories__/Default.js +43 -0
- package/inputs/FileInput/index.js +34 -27
- package/inputs/Input/index.js +1 -1
- package/libs/form/src/Field/types.d.ts +3 -0
- package/libs/form/src/FieldObject/index.d.ts +2 -0
- package/libs/form/src/Form.stories.d.ts +5 -0
- package/libs/form/src/__stories__/IntField.d.ts +1 -0
- package/libs/form/src/inputs/FileInput/FileInput.stories.d.ts +7 -0
- package/libs/form/src/inputs/FileInput/__stories__/Default.d.ts +2 -0
- package/libs/form/src/inputs/FileInput/index.d.ts +0 -1
- package/libs/form/src/validators/utils/int.d.ts +3 -0
- package/libs/form/src/validators/utils/number.d.ts +3 -0
- package/libs/ui/src/core/Accordion/index.d.ts +3 -3
- package/libs/ui/src/core/Blockquote/index.d.ts +1 -1
- package/libs/ui/src/core/Button/BackButton.d.ts +1 -1
- package/libs/ui/src/core/Button/ButtonLink.d.ts +1 -1
- package/libs/ui/src/core/Button/index.d.ts +1 -1
- package/libs/ui/src/core/Divider/index.d.ts +1 -1
- package/libs/ui/src/locales/el.d.ts +1 -1
- package/libs/ui/src/typography/Caption/index.d.ts +1 -1
- package/libs-ui/react-core/src/Accordion/index.d.ts +1 -1
- package/libs-ui/react-core/src/AccordionControls/index.d.ts +1 -1
- package/libs-ui/react-core/src/AccordionSection/index.d.ts +1 -1
- package/libs-ui/react-core/src/AccordionSectionContent/index.d.ts +1 -1
- package/libs-ui/react-core/src/AccordionSectionHeader/index.d.ts +1 -1
- package/libs-ui/react-core/src/AccordionSectionSummary/index.d.ts +1 -1
- package/libs-ui/react-core/src/AccordionSectionSummaryHeading/index.d.ts +1 -1
- package/libs-ui/react-core/src/Aside/index.d.ts +1 -1
- package/libs-ui/react-core/src/BackLink/index.d.ts +1 -1
- package/libs-ui/react-core/src/Blockquote/index.d.ts +1 -1
- package/libs-ui/react-core/src/Bottom/index.d.ts +1 -1
- package/libs-ui/react-core/src/Breadcrumbs/index.d.ts +1 -1
- package/libs-ui/react-core/src/BreadcrumbsList/index.d.ts +1 -1
- package/libs-ui/react-core/src/BreadcrumbsListItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/Button/index.d.ts +1 -1
- package/libs-ui/react-core/src/ButtonGroup/index.d.ts +1 -1
- package/libs-ui/react-core/src/ButtonLink/index.d.ts +1 -1
- package/libs-ui/react-core/src/CallToAction/index.d.ts +1 -1
- package/libs-ui/react-core/src/Card/index.d.ts +1 -1
- package/libs-ui/react-core/src/CardAction/index.d.ts +1 -1
- package/libs-ui/react-core/src/CardHeading/index.d.ts +1 -1
- package/libs-ui/react-core/src/CardText/index.d.ts +1 -1
- package/libs-ui/react-core/src/Checkbox/index.d.ts +1 -1
- package/libs-ui/react-core/src/CheckboxConditional/index.d.ts +1 -1
- package/libs-ui/react-core/src/CheckboxItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/Confirmation/index.d.ts +1 -1
- package/libs-ui/react-core/src/ConfirmationBody/index.d.ts +1 -1
- package/libs-ui/react-core/src/ConfirmationTitle/index.d.ts +1 -1
- package/libs-ui/react-core/src/Container/index.d.ts +1 -1
- package/libs-ui/react-core/src/Copyright/index.d.ts +1 -1
- package/libs-ui/react-core/src/DateInput/index.d.ts +1 -1
- package/libs-ui/react-core/src/DateInputItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/Details/index.d.ts +1 -1
- package/libs-ui/react-core/src/DetailsContent/index.d.ts +1 -1
- package/libs-ui/react-core/src/DetailsSummary/index.d.ts +1 -1
- package/libs-ui/react-core/src/ErrorMessage/index.d.ts +1 -1
- package/libs-ui/react-core/src/ErrorSummary/index.d.ts +1 -1
- package/libs-ui/react-core/src/Field/index.d.ts +1 -1
- package/libs-ui/react-core/src/Fieldset/index.d.ts +1 -1
- package/libs-ui/react-core/src/FieldsetLegend/index.d.ts +1 -1
- package/libs-ui/react-core/src/FileUpload/index.d.ts +9 -1
- package/libs-ui/react-core/src/Footer/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterContainer/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterContent/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterContentLogos/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterHeading/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterImage/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterInlineList/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterInlineListItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterLink/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterList/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterListItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterMeta/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterMetaItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterNavigation/index.d.ts +1 -1
- package/libs-ui/react-core/src/FooterSection/index.d.ts +1 -1
- package/libs-ui/react-core/src/Form/index.d.ts +1 -1
- package/libs-ui/react-core/src/GovGRFooter/index.d.ts +1 -1
- package/libs-ui/react-core/src/GovGRLogo/index.d.ts +1 -1
- package/libs-ui/react-core/src/Grid/index.d.ts +1 -1
- package/libs-ui/react-core/src/Header/index.d.ts +1 -1
- package/libs-ui/react-core/src/HeaderContent/index.d.ts +1 -1
- package/libs-ui/react-core/src/HeaderLogo/index.d.ts +1 -1
- package/libs-ui/react-core/src/HeaderSecondaryLogo/index.d.ts +1 -1
- package/libs-ui/react-core/src/HeaderSection/index.d.ts +1 -1
- package/libs-ui/react-core/src/HeaderSubtitle/index.d.ts +1 -1
- package/libs-ui/react-core/src/HeaderTitle/index.d.ts +1 -1
- package/libs-ui/react-core/src/Heading/index.d.ts +1 -1
- package/libs-ui/react-core/src/HeadingCaption/index.d.ts +1 -1
- package/libs-ui/react-core/src/HellenicRepublicLogo/index.d.ts +1 -1
- package/libs-ui/react-core/src/Hidden/index.d.ts +1 -1
- package/libs-ui/react-core/src/Hint/index.d.ts +1 -1
- package/libs-ui/react-core/src/Label/index.d.ts +1 -1
- package/libs-ui/react-core/src/LabelTitle/index.d.ts +1 -1
- package/libs-ui/react-core/src/Layout/index.d.ts +1 -1
- package/libs-ui/react-core/src/Link/index.d.ts +1 -1
- package/libs-ui/react-core/src/List/index.d.ts +1 -1
- package/libs-ui/react-core/src/ListItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/Main/index.d.ts +1 -1
- package/libs-ui/react-core/src/Masthead/index.d.ts +1 -1
- package/libs-ui/react-core/src/MastheadBody/index.d.ts +1 -1
- package/libs-ui/react-core/src/NavHorizontal/index.d.ts +1 -1
- package/libs-ui/react-core/src/NavHorizontalList/index.d.ts +1 -1
- package/libs-ui/react-core/src/NavHorizontalListItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/NavVertical/index.d.ts +1 -1
- package/libs-ui/react-core/src/NavVerticalItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/NormalText/index.d.ts +1 -1
- package/libs-ui/react-core/src/NotificationBanner/index.d.ts +1 -1
- package/libs-ui/react-core/src/NotificationBannerContent/index.d.ts +1 -1
- package/libs-ui/react-core/src/NotificationBannerHeader/index.d.ts +1 -1
- package/libs-ui/react-core/src/NotificationBannerHeading/index.d.ts +1 -1
- package/libs-ui/react-core/src/NotificationBannerLink/index.d.ts +1 -1
- package/libs-ui/react-core/src/PageTitle/index.d.ts +1 -1
- package/libs-ui/react-core/src/PageTitleCaption/index.d.ts +1 -1
- package/libs-ui/react-core/src/PageTitleHeading/index.d.ts +1 -1
- package/libs-ui/react-core/src/PageTitleSection/index.d.ts +1 -1
- package/libs-ui/react-core/src/Paragraph/index.d.ts +1 -1
- package/libs-ui/react-core/src/PhaseBanner/index.d.ts +1 -1
- package/libs-ui/react-core/src/PhaseBannerHeaderContainer/index.d.ts +1 -1
- package/libs-ui/react-core/src/PhaseBannerTag/index.d.ts +1 -1
- package/libs-ui/react-core/src/PhaseBannerText/index.d.ts +1 -1
- package/libs-ui/react-core/src/Radio/index.d.ts +1 -1
- package/libs-ui/react-core/src/RadioConditional/index.d.ts +1 -1
- package/libs-ui/react-core/src/RadioItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/SectionBreak/index.d.ts +1 -1
- package/libs-ui/react-core/src/Select/index.d.ts +1 -1
- package/libs-ui/react-core/src/SelectOption/index.d.ts +1 -1
- package/libs-ui/react-core/src/ServiceBadge/index.d.ts +1 -1
- package/libs-ui/react-core/src/SkipLink/index.d.ts +1 -1
- package/libs-ui/react-core/src/SummaryList/index.d.ts +1 -1
- package/libs-ui/react-core/src/SummaryListItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/SummaryListItemAction/index.d.ts +1 -1
- package/libs-ui/react-core/src/SummaryListItemKey/index.d.ts +1 -1
- package/libs-ui/react-core/src/SummaryListItemValue/index.d.ts +1 -1
- package/libs-ui/react-core/src/SvgIcon/index.d.ts +1 -1
- package/libs-ui/react-core/src/Table/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableBody/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableCaption/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableContainer/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableDataCell/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableHead/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableHeadCell/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableNoDataRow/index.d.ts +1 -1
- package/libs-ui/react-core/src/TableRow/index.d.ts +1 -1
- package/libs-ui/react-core/src/Tabs/index.d.ts +1 -1
- package/libs-ui/react-core/src/TabsHeading/index.d.ts +1 -1
- package/libs-ui/react-core/src/TabsList/index.d.ts +1 -1
- package/libs-ui/react-core/src/TabsListItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/TabsPanel/index.d.ts +1 -1
- package/libs-ui/react-core/src/TextArea/index.d.ts +1 -1
- package/libs-ui/react-core/src/TextInput/index.d.ts +1 -1
- package/libs-ui/react-core/src/Top/index.d.ts +1 -1
- package/libs-ui/react-core/src/VisuallyHidden/index.d.ts +1 -1
- package/libs-ui/react-core/src/WarningText/index.d.ts +1 -1
- package/package.json +3 -3
- package/validators/index.js +8 -2
- package/validators/utils/int.js +31 -0
- package/validators/utils/number.js +27 -0
|
@@ -7,11 +7,13 @@ var ChildFieldMemo = /*#__PURE__*/React.memo(function ChildField(_ref) {
|
|
|
7
7
|
var dependencies = _ref.dependencies,
|
|
8
8
|
field = _ref.field,
|
|
9
9
|
control = _ref.control,
|
|
10
|
+
reset = _ref.reset,
|
|
10
11
|
register = _ref.register,
|
|
11
12
|
error = _ref.error;
|
|
12
13
|
var newField = evaluateFieldWithConditions(field, dependencies);
|
|
13
14
|
return /*#__PURE__*/React.createElement(FieldBase, _extends({}, newField, {
|
|
14
15
|
name: newField.key,
|
|
16
|
+
reset: reset,
|
|
15
17
|
control: control,
|
|
16
18
|
register: register,
|
|
17
19
|
error: error
|
|
@@ -37,6 +39,7 @@ export var FieldConditional = function FieldConditional(_ref2) {
|
|
|
37
39
|
var control = _ref2.control,
|
|
38
40
|
field = _ref2.field,
|
|
39
41
|
register = _ref2.register,
|
|
42
|
+
reset = _ref2.reset,
|
|
40
43
|
error = _ref2.error;
|
|
41
44
|
var dependencyKeys = Object.keys(field.condition);
|
|
42
45
|
var variables = useWatch({
|
|
@@ -48,6 +51,7 @@ export var FieldConditional = function FieldConditional(_ref2) {
|
|
|
48
51
|
field: field,
|
|
49
52
|
control: control,
|
|
50
53
|
register: register,
|
|
54
|
+
reset: reset,
|
|
51
55
|
error: error
|
|
52
56
|
});
|
|
53
57
|
};
|
package/esm/Field/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export var Field = function Field(_ref) {
|
|
|
16
16
|
field = _useField.field,
|
|
17
17
|
control = _useField.control,
|
|
18
18
|
register = _useField.register,
|
|
19
|
+
reset = _useField.reset,
|
|
19
20
|
error = _useField.error,
|
|
20
21
|
componentRegistry = _useField.componentRegistry,
|
|
21
22
|
formState = _useField.formState,
|
|
@@ -32,6 +33,7 @@ export var Field = function Field(_ref) {
|
|
|
32
33
|
if (calculatedField.condition) {
|
|
33
34
|
return /*#__PURE__*/React.createElement(FieldConditional, {
|
|
34
35
|
control: control,
|
|
36
|
+
reset: reset,
|
|
35
37
|
register: register,
|
|
36
38
|
field: calculatedField,
|
|
37
39
|
error: error
|
|
@@ -39,7 +41,6 @@ export var Field = function Field(_ref) {
|
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
if (calculatedField.type === 'array' && calculatedField.multiplicity) {
|
|
42
|
-
// if (error) debugger;
|
|
43
44
|
calculatedField.name = name;
|
|
44
45
|
return /*#__PURE__*/React.createElement(Multiplicity, _extends({
|
|
45
46
|
control: control,
|
|
@@ -68,6 +69,7 @@ export var Field = function Field(_ref) {
|
|
|
68
69
|
name: name,
|
|
69
70
|
control: control,
|
|
70
71
|
register: register,
|
|
72
|
+
reset: reset,
|
|
71
73
|
error: error
|
|
72
74
|
}));
|
|
73
75
|
};
|
package/esm/Field/utils.js
CHANGED
|
@@ -80,6 +80,7 @@ export var useField = function useField(name, customField) {
|
|
|
80
80
|
fieldsMap = _useContext.fieldsMap,
|
|
81
81
|
control = _useContext.control,
|
|
82
82
|
register = _useContext.register,
|
|
83
|
+
reset = _useContext.reset,
|
|
83
84
|
trigger = _useContext.trigger,
|
|
84
85
|
clearErrors = _useContext.clearErrors,
|
|
85
86
|
errors = _useContext.errors,
|
|
@@ -101,6 +102,7 @@ export var useField = function useField(name, customField) {
|
|
|
101
102
|
field: customField || fieldsMap[name],
|
|
102
103
|
control: control,
|
|
103
104
|
register: register,
|
|
105
|
+
reset: reset,
|
|
104
106
|
trigger: trigger,
|
|
105
107
|
watch: watch,
|
|
106
108
|
componentRegistry: componentRegistry,
|
package/esm/FieldObject/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export var FieldObject = function FieldObject(_ref) {
|
|
|
12
12
|
error = _ref.error,
|
|
13
13
|
control = _ref.control,
|
|
14
14
|
register = _ref.register,
|
|
15
|
+
reset = _ref.reset,
|
|
15
16
|
formState = _ref.formState;
|
|
16
17
|
|
|
17
18
|
var _useTranslation = useTranslation(),
|
|
@@ -25,6 +26,7 @@ export var FieldObject = function FieldObject(_ref) {
|
|
|
25
26
|
name: "".concat(name, ".").concat(field.key),
|
|
26
27
|
control: control,
|
|
27
28
|
register: register,
|
|
29
|
+
reset: reset,
|
|
28
30
|
field: field,
|
|
29
31
|
error: error && error[field.key],
|
|
30
32
|
formState: formState
|
|
@@ -39,6 +41,7 @@ var FieldObjectItem = function FieldObjectItem(_ref2) {
|
|
|
39
41
|
error = _ref2.error,
|
|
40
42
|
control = _ref2.control,
|
|
41
43
|
formState = _ref2.formState,
|
|
44
|
+
reset = _ref2.reset,
|
|
42
45
|
register = _ref2.register;
|
|
43
46
|
var calculatedField = useMemo(function () {
|
|
44
47
|
return calculateField(children, field);
|
|
@@ -47,6 +50,7 @@ var FieldObjectItem = function FieldObjectItem(_ref2) {
|
|
|
47
50
|
return /*#__PURE__*/React.createElement(FieldBase, _extends({}, calculatedField, {
|
|
48
51
|
name: name,
|
|
49
52
|
control: control,
|
|
53
|
+
reset: reset,
|
|
50
54
|
register: register,
|
|
51
55
|
error: customError
|
|
52
56
|
}));
|
|
@@ -108,6 +108,7 @@ export var AddObjects = function AddObjects(_ref) {
|
|
|
108
108
|
field = _useField.field,
|
|
109
109
|
control = _useField.control,
|
|
110
110
|
register = _useField.register,
|
|
111
|
+
reset = _useField.reset,
|
|
111
112
|
needsMoreError = _useField.error;
|
|
112
113
|
|
|
113
114
|
var calculatedField = useMemo(function () {
|
|
@@ -150,6 +151,7 @@ export var AddObjects = function AddObjects(_ref) {
|
|
|
150
151
|
name: calculatedField.key,
|
|
151
152
|
control: control,
|
|
152
153
|
register: register,
|
|
154
|
+
reset: reset,
|
|
153
155
|
error: (extra === null || extra === void 0 ? void 0 : extra.max) - stashedObjects.length === 0 || (extra === null || extra === void 0 ? void 0 : extra.length) - stashedObjects.length === 0 ? error : needsMoreError
|
|
154
156
|
})));
|
|
155
157
|
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import FormBuilder, { Field } from '@digigov/form/';
|
|
3
|
+
import Button from '@digigov/ui/core/Button';
|
|
4
|
+
var fields = [{
|
|
5
|
+
key: 'number_required',
|
|
6
|
+
label: {
|
|
7
|
+
primary: 'A positive number',
|
|
8
|
+
secondary: 'required'
|
|
9
|
+
},
|
|
10
|
+
required: true,
|
|
11
|
+
type: 'int'
|
|
12
|
+
}, {
|
|
13
|
+
key: 'number_not_required',
|
|
14
|
+
label: {
|
|
15
|
+
primary: 'A positive number',
|
|
16
|
+
secondary: 'not required'
|
|
17
|
+
},
|
|
18
|
+
required: false,
|
|
19
|
+
type: 'int'
|
|
20
|
+
}];
|
|
21
|
+
var initialValues = {};
|
|
22
|
+
|
|
23
|
+
var _ref = /*#__PURE__*/React.createElement(Button, {
|
|
24
|
+
type: "submit"
|
|
25
|
+
}, "Submit");
|
|
26
|
+
|
|
27
|
+
export var IntField = function IntField() {
|
|
28
|
+
return /*#__PURE__*/React.createElement(FormBuilder, {
|
|
29
|
+
fields: fields,
|
|
30
|
+
onSubmit: function onSubmit(data) {
|
|
31
|
+
console.log(data);
|
|
32
|
+
},
|
|
33
|
+
initial: initialValues
|
|
34
|
+
}, fields.map(function (field) {
|
|
35
|
+
return /*#__PURE__*/React.createElement(Field, {
|
|
36
|
+
key: field.key,
|
|
37
|
+
name: field.key
|
|
38
|
+
});
|
|
39
|
+
}), _ref);
|
|
40
|
+
};
|
package/esm/index.js
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import FormBuilder, { Field } from '@digigov/form';
|
|
3
|
+
import { Button } from '@digigov/ui/core';
|
|
4
|
+
|
|
5
|
+
var _ref = /*#__PURE__*/React.createElement(Button, null, "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1");
|
|
6
|
+
|
|
7
|
+
export var Default = function Default() {
|
|
8
|
+
return /*#__PURE__*/React.createElement(FormBuilder, {
|
|
9
|
+
onSubmit: function onSubmit(data) {
|
|
10
|
+
debugger;
|
|
11
|
+
console.log(data);
|
|
12
|
+
}
|
|
13
|
+
}, /*#__PURE__*/React.createElement(Field, {
|
|
14
|
+
key: 'string',
|
|
15
|
+
name: "file",
|
|
16
|
+
type: "file",
|
|
17
|
+
required: true,
|
|
18
|
+
label: {
|
|
19
|
+
primary: 'Βιογραφικό σημείωμα'
|
|
20
|
+
}
|
|
21
|
+
}), _ref);
|
|
22
|
+
};
|
|
23
|
+
export default Default;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
1
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["name", "extra", "disabled", "reset"];
|
|
5
|
+
var _excluded = ["name", "extra", "disabled", "reset", "onChange", "control"];
|
|
5
6
|
import React, { useState } from 'react';
|
|
6
7
|
import clsx from 'clsx';
|
|
7
8
|
import { useTranslation } from '@digigov/ui/app/i18n';
|
|
8
9
|
import Paragraph from '@digigov/ui/typography/Paragraph';
|
|
9
10
|
import CoreHint from '@digigov/react-core/Hint';
|
|
10
11
|
import Button from '@digigov/ui/core/Button';
|
|
12
|
+
import FileUpload from '@digigov/react-core/FileUpload';
|
|
13
|
+
import Field from '@digigov/react-core/Field';
|
|
11
14
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
-
export var FileInput = function FileInput(_ref) {
|
|
15
|
+
export var FileInput = /*#__PURE__*/React.forwardRef(function FileInput(_ref, ref) {
|
|
13
16
|
var name = _ref.name,
|
|
14
17
|
_ref$extra = _ref.extra,
|
|
15
18
|
extra = _ref$extra === void 0 ? {} : _ref$extra,
|
|
16
19
|
disabled = _ref.disabled,
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
reset = _ref.reset,
|
|
21
|
+
onChange = _ref.onChange,
|
|
22
|
+
control = _ref.control,
|
|
19
23
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
20
24
|
|
|
21
25
|
var _useTranslation = useTranslation(),
|
|
@@ -26,35 +30,35 @@ export var FileInput = function FileInput(_ref) {
|
|
|
26
30
|
files = _useState2[0],
|
|
27
31
|
setFiles = _useState2[1];
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
var handleChange = function handleChange(e) {
|
|
34
|
+
var target = e.target;
|
|
35
|
+
var selectedFiles = Array.from(target.files).map(function (_ref2) {
|
|
36
|
+
var name = _ref2.name;
|
|
37
|
+
return name;
|
|
38
|
+
});
|
|
39
|
+
setFiles(selectedFiles); // proceed calling the onChange provided
|
|
40
|
+
// by react-hook-form
|
|
41
|
+
|
|
42
|
+
onChange(e);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Field, {
|
|
46
|
+
className: clsx(extra.className, files && files.length > 0 && 'govgr-uploaded-file')
|
|
47
|
+
}, files !== null && files !== void 0 && files.length ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Paragraph, null, /*#__PURE__*/React.createElement("b", null, t('upload.file'), ":"), " ", "".concat(files.join(', ')))) : /*#__PURE__*/React.createElement(CoreHint, null, t('upload.no_file')), /*#__PURE__*/React.createElement(FileUpload, _extends({
|
|
48
|
+
ref: ref,
|
|
49
|
+
hasFiles: !!(files !== null && files !== void 0 && files.length),
|
|
37
50
|
name: name,
|
|
38
51
|
disabled: disabled,
|
|
39
|
-
|
|
40
|
-
display: 'none'
|
|
41
|
-
},
|
|
42
|
-
className: "govgr-file-upload",
|
|
43
|
-
onChange: function onChange(e) {
|
|
44
|
-
var target = e.target;
|
|
45
|
-
var selectedFiles = Array.from(target.files).map(function (_ref2) {
|
|
46
|
-
var name = _ref2.name;
|
|
47
|
-
return name;
|
|
48
|
-
});
|
|
49
|
-
setFiles(selectedFiles);
|
|
50
|
-
}
|
|
52
|
+
onChange: handleChange
|
|
51
53
|
}, _extends({}, props, {
|
|
52
54
|
required: undefined
|
|
53
|
-
}))
|
|
55
|
+
})), files !== null && files !== void 0 && files.length ? t('upload.change_file') : t('upload.choose_file')), files !== undefined && files.length > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
|
|
54
56
|
variant: "link",
|
|
55
|
-
onClick: function onClick() {
|
|
57
|
+
onClick: function onClick(event) {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
reset(_defineProperty({}, name, ''));
|
|
56
60
|
setFiles(undefined);
|
|
57
61
|
}
|
|
58
62
|
}, t('upload.reset_file')))));
|
|
59
|
-
};
|
|
63
|
+
});
|
|
60
64
|
export default FileInput;
|
package/esm/validators/index.js
CHANGED
|
@@ -4,6 +4,8 @@ import { useMemo } from 'react';
|
|
|
4
4
|
import dayjs from 'dayjs';
|
|
5
5
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
6
6
|
import { getYupObjectShape, AFM_VALIDATOR, FILE_MAX_SIZE_VALIDATOR, IBAN_VALIDATOR, MOBILE_PHONE_VALIDATOR, PHONE_NUMBER_VALIDATOR, POSTALCODE_VALIDATOR, UUID4_VALIDATOR } from '@digigov/form/validators/utils';
|
|
7
|
+
import { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';
|
|
8
|
+
import { INT_VALIDATOR } from '@digigov/form/validators/utils/int';
|
|
7
9
|
dayjs.extend(customParseFormat);
|
|
8
10
|
var VALID_DATE_FORMATS = ['DD/MM/YYYY'];
|
|
9
11
|
var DATE_CACHE = {};
|
|
@@ -52,7 +54,7 @@ export var getYUPTypeMap = function getYUPTypeMap() {
|
|
|
52
54
|
max: field.extra.max
|
|
53
55
|
}
|
|
54
56
|
});
|
|
55
|
-
return arrayValidator;
|
|
57
|
+
return arrayValidator;
|
|
56
58
|
} else if (typeof field.extra.of === 'string') {
|
|
57
59
|
return yup.array().of(yupTypeMap[field.extra.of]());
|
|
58
60
|
} else {
|
|
@@ -61,7 +63,9 @@ export var getYUPTypeMap = function getYUPTypeMap() {
|
|
|
61
63
|
}
|
|
62
64
|
},
|
|
63
65
|
"int": function int() {
|
|
64
|
-
return yup.
|
|
66
|
+
return yup.mixed().transform(function (_, val) {
|
|
67
|
+
return val !== '' ? Number(val) : null;
|
|
68
|
+
}).test(NUMBER_VALIDATOR()).test(INT_VALIDATOR());
|
|
65
69
|
},
|
|
66
70
|
email: function email() {
|
|
67
71
|
return yup.string().email('form.error.email');
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function validateIntNumber(number) {
|
|
2
|
+
if (number === undefined) {
|
|
3
|
+
return false;
|
|
4
|
+
} else {
|
|
5
|
+
return Number.isInteger(number) && Number(number) > 0;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export var INT_VALIDATOR = function INT_VALIDATOR() {
|
|
9
|
+
return {
|
|
10
|
+
name: 'int-validator',
|
|
11
|
+
message: 'form.error.positive_integer_number',
|
|
12
|
+
test: function test(value) {
|
|
13
|
+
if (value === null) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return validateIntNumber(value);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function validateNumber(number) {
|
|
2
|
+
return !Number.isNaN(number);
|
|
3
|
+
}
|
|
4
|
+
export var NUMBER_VALIDATOR = function NUMBER_VALIDATOR() {
|
|
5
|
+
return {
|
|
6
|
+
name: 'number-validator',
|
|
7
|
+
message: 'form.error.number',
|
|
8
|
+
test: function test(value) {
|
|
9
|
+
if (value === null) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return validateNumber(value);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
var _exportNames = {};
|
|
9
|
+
exports["default"] = void 0;
|
|
10
|
+
|
|
11
|
+
var _FileInput = _interopRequireDefault(require("@digigov/form/inputs/FileInput"));
|
|
12
|
+
|
|
13
|
+
var _Default = require("@digigov/form/inputs/FileInput/__stories__/Default");
|
|
14
|
+
|
|
15
|
+
Object.keys(_Default).forEach(function (key) {
|
|
16
|
+
if (key === "default" || key === "__esModule") return;
|
|
17
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
18
|
+
if (key in exports && exports[key] === _Default[key]) return;
|
|
19
|
+
Object.defineProperty(exports, key, {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _Default[key];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
var _default = {
|
|
27
|
+
title: 'Digigov Form/inputs/FileInput',
|
|
28
|
+
component: _FileInput["default"]
|
|
29
|
+
};
|
|
30
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = exports.Default = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _form = _interopRequireWildcard(require("@digigov/form"));
|
|
15
|
+
|
|
16
|
+
var _core = require("@digigov/ui/core");
|
|
17
|
+
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
|
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
+
|
|
22
|
+
var _ref = /*#__PURE__*/_react["default"].createElement(_core.Button, null, "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1");
|
|
23
|
+
|
|
24
|
+
var Default = function Default() {
|
|
25
|
+
return /*#__PURE__*/_react["default"].createElement(_form["default"], {
|
|
26
|
+
onSubmit: function onSubmit(data) {
|
|
27
|
+
debugger;
|
|
28
|
+
console.log(data);
|
|
29
|
+
}
|
|
30
|
+
}, /*#__PURE__*/_react["default"].createElement(_form.Field, {
|
|
31
|
+
key: 'string',
|
|
32
|
+
name: "file",
|
|
33
|
+
type: "file",
|
|
34
|
+
required: true,
|
|
35
|
+
label: {
|
|
36
|
+
primary: 'Βιογραφικό σημείωμα'
|
|
37
|
+
}
|
|
38
|
+
}), _ref);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
exports.Default = Default;
|
|
42
|
+
var _default = Default;
|
|
43
|
+
exports["default"] = _default;
|
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = exports.FileInput = void 0;
|
|
11
11
|
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
12
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
15
|
|
|
14
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
@@ -27,20 +29,25 @@ var _Hint = _interopRequireDefault(require("@digigov/react-core/Hint"));
|
|
|
27
29
|
|
|
28
30
|
var _Button = _interopRequireDefault(require("@digigov/ui/core/Button"));
|
|
29
31
|
|
|
30
|
-
var
|
|
32
|
+
var _FileUpload = _interopRequireDefault(require("@digigov/react-core/FileUpload"));
|
|
33
|
+
|
|
34
|
+
var _Field = _interopRequireDefault(require("@digigov/react-core/Field"));
|
|
35
|
+
|
|
36
|
+
var _excluded = ["name", "extra", "disabled", "reset", "onChange", "control"];
|
|
31
37
|
|
|
32
38
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
39
|
|
|
34
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
41
|
|
|
36
42
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
-
var FileInput = function FileInput(_ref) {
|
|
43
|
+
var FileInput = /*#__PURE__*/_react["default"].forwardRef(function FileInput(_ref, ref) {
|
|
38
44
|
var name = _ref.name,
|
|
39
45
|
_ref$extra = _ref.extra,
|
|
40
46
|
extra = _ref$extra === void 0 ? {} : _ref$extra,
|
|
41
47
|
disabled = _ref.disabled,
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
reset = _ref.reset,
|
|
49
|
+
onChange = _ref.onChange,
|
|
50
|
+
control = _ref.control,
|
|
44
51
|
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
45
52
|
|
|
46
53
|
var _useTranslation = (0, _i18n.useTranslation)(),
|
|
@@ -51,37 +58,37 @@ var FileInput = function FileInput(_ref) {
|
|
|
51
58
|
files = _useState2[0],
|
|
52
59
|
setFiles = _useState2[1];
|
|
53
60
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
var handleChange = function handleChange(e) {
|
|
62
|
+
var target = e.target;
|
|
63
|
+
var selectedFiles = Array.from(target.files).map(function (_ref2) {
|
|
64
|
+
var name = _ref2.name;
|
|
65
|
+
return name;
|
|
66
|
+
});
|
|
67
|
+
setFiles(selectedFiles); // proceed calling the onChange provided
|
|
68
|
+
// by react-hook-form
|
|
69
|
+
|
|
70
|
+
onChange(e);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Field["default"], {
|
|
74
|
+
className: (0, _clsx["default"])(extra.className, files && files.length > 0 && 'govgr-uploaded-file')
|
|
75
|
+
}, files !== null && files !== void 0 && files.length ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Paragraph["default"], null, /*#__PURE__*/_react["default"].createElement("b", null, t('upload.file'), ":"), " ", "".concat(files.join(', ')))) : /*#__PURE__*/_react["default"].createElement(_Hint["default"], null, t('upload.no_file')), /*#__PURE__*/_react["default"].createElement(_FileUpload["default"], (0, _extends2["default"])({
|
|
76
|
+
ref: ref,
|
|
77
|
+
hasFiles: !!(files !== null && files !== void 0 && files.length),
|
|
62
78
|
name: name,
|
|
63
79
|
disabled: disabled,
|
|
64
|
-
|
|
65
|
-
display: 'none'
|
|
66
|
-
},
|
|
67
|
-
className: "govgr-file-upload",
|
|
68
|
-
onChange: function onChange(e) {
|
|
69
|
-
var target = e.target;
|
|
70
|
-
var selectedFiles = Array.from(target.files).map(function (_ref2) {
|
|
71
|
-
var name = _ref2.name;
|
|
72
|
-
return name;
|
|
73
|
-
});
|
|
74
|
-
setFiles(selectedFiles);
|
|
75
|
-
}
|
|
80
|
+
onChange: handleChange
|
|
76
81
|
}, (0, _extends2["default"])({}, props, {
|
|
77
82
|
required: undefined
|
|
78
|
-
}))
|
|
83
|
+
})), files !== null && files !== void 0 && files.length ? t('upload.change_file') : t('upload.choose_file')), files !== undefined && files.length > 0 && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
79
84
|
variant: "link",
|
|
80
|
-
onClick: function onClick() {
|
|
85
|
+
onClick: function onClick(event) {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
reset((0, _defineProperty2["default"])({}, name, ''));
|
|
81
88
|
setFiles(undefined);
|
|
82
89
|
}
|
|
83
90
|
}, t('upload.reset_file')))));
|
|
84
|
-
};
|
|
91
|
+
});
|
|
85
92
|
|
|
86
93
|
exports.FileInput = FileInput;
|
|
87
94
|
var _default = FileInput;
|
package/inputs/Input/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export interface FieldConditionalProps {
|
|
|
12
12
|
field: FieldWithCondition;
|
|
13
13
|
control: UseFormReturn['control'];
|
|
14
14
|
register: UseFormReturn['register'];
|
|
15
|
+
reset: UseFormReturn['reset'];
|
|
15
16
|
error?: ErrorOption;
|
|
16
17
|
}
|
|
17
18
|
export declare type FieldComponentItem = {
|
|
@@ -61,6 +62,7 @@ export interface CalculatedField extends OmittedFieldSpec {
|
|
|
61
62
|
export interface FieldBaseProps extends CalculatedField {
|
|
62
63
|
control: UseFormReturn['control'];
|
|
63
64
|
register: UseFormReturn['register'];
|
|
65
|
+
reset: UseFormReturn['reset'];
|
|
64
66
|
}
|
|
65
67
|
export interface FieldProps extends FieldSpec {
|
|
66
68
|
name: string;
|
|
@@ -70,6 +72,7 @@ export interface UseFieldProps {
|
|
|
70
72
|
field: FieldSpec;
|
|
71
73
|
control: FieldBaseProps['control'];
|
|
72
74
|
register: FieldBaseProps['register'];
|
|
75
|
+
reset: FieldBaseProps['reset'];
|
|
73
76
|
watch: UseFormReturn['watch'];
|
|
74
77
|
formState: UseFormReturn['formState'];
|
|
75
78
|
getFieldState: UseFormReturn['getFieldState'];
|
|
@@ -5,6 +5,7 @@ import { FieldSpec } from '@digigov/form/types';
|
|
|
5
5
|
export interface FieldObjectProps extends Omit<FieldProps, 'key'> {
|
|
6
6
|
control: UseFormReturn['control'];
|
|
7
7
|
register: UseFormReturn['register'];
|
|
8
|
+
reset: UseFormReturn['reset'];
|
|
8
9
|
formState: UseFormReturn['formState'];
|
|
9
10
|
error?: ErrorOption;
|
|
10
11
|
}
|
|
@@ -14,6 +15,7 @@ export interface FieldObjectItemProps {
|
|
|
14
15
|
field: FieldSpec;
|
|
15
16
|
control: UseFormReturn['control'];
|
|
16
17
|
register: UseFormReturn['register'];
|
|
18
|
+
reset: UseFormReturn['reset'];
|
|
17
19
|
formState: UseFormReturn['formState'];
|
|
18
20
|
error?: ErrorOption;
|
|
19
21
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const IntField: () => JSX.Element;
|