@digigov/form 0.6.10 → 0.7.0
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 +12 -1
- package/Field/FieldBase.js +110 -0
- package/Field/FieldConditional.js +72 -0
- package/Field/FieldContainer.js +62 -0
- package/Field/index.js +15 -328
- package/Field/utils.js +146 -0
- package/FormBuilder.js +12 -12
- package/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
- package/es/Field/FieldBase.js +93 -0
- package/es/Field/FieldConditional.js +54 -0
- package/es/Field/FieldContainer.js +40 -0
- package/es/Field/index.js +11 -308
- package/es/Field/utils.js +122 -0
- package/es/FormBuilder.js +11 -11
- package/es/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
- package/es/internal.js +2 -0
- package/es/utils.js +5 -3
- package/es/validators/index.js +155 -0
- package/es/validators/types.js +1 -0
- package/es/validators/utils/afm.js +35 -0
- package/es/validators/utils/file.js +52 -0
- package/es/validators/utils/iban.js +123 -0
- package/es/validators/utils/index.js +105 -0
- package/es/validators/utils/phone.js +122 -0
- package/es/validators/utils/postal_code.js +29 -0
- package/es/validators/utils/uuid4.js +20 -0
- package/es/{validators.spec.js → validators/validators.spec.js} +1 -1
- package/esm/Field/FieldBase.js +93 -0
- package/esm/Field/FieldConditional.js +54 -0
- package/esm/Field/FieldContainer.js +40 -0
- package/esm/Field/index.js +11 -308
- package/esm/Field/utils.js +122 -0
- package/esm/FormBuilder.js +11 -11
- package/esm/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
- package/esm/index.js +1 -1
- package/esm/internal.js +2 -0
- package/esm/utils.js +5 -3
- package/esm/validators/index.js +155 -0
- package/esm/validators/types.js +1 -0
- package/esm/validators/utils/afm.js +35 -0
- package/esm/validators/utils/file.js +52 -0
- package/esm/validators/utils/iban.js +123 -0
- package/esm/validators/utils/index.js +105 -0
- package/esm/validators/utils/phone.js +122 -0
- package/esm/validators/utils/postal_code.js +29 -0
- package/esm/validators/utils/uuid4.js +20 -0
- package/esm/{validators.spec.js → validators/validators.spec.js} +1 -1
- package/internal.js +21 -0
- package/libs/form/src/Field/FieldBase.d.ts +3 -0
- package/libs/form/src/Field/FieldConditional.d.ts +4 -0
- package/libs/form/src/Field/FieldContainer.d.ts +4 -0
- package/libs/form/src/Field/index.d.ts +1 -3
- package/libs/form/src/Field/types.d.ts +2 -2
- package/libs/form/src/Field/utils.d.ts +5 -0
- package/libs/form/src/FormContext.d.ts +2 -2
- package/libs/form/src/internal.d.ts +2 -0
- package/libs/form/src/types.d.ts +3 -2
- package/libs/form/src/validators/index.d.ts +8 -0
- package/libs/form/src/validators/types.d.ts +2 -0
- package/libs/form/src/validators/utils/afm.d.ts +6 -0
- package/libs/form/src/validators/utils/file.d.ts +1 -0
- package/libs/form/src/validators/utils/iban.d.ts +2 -0
- package/libs/form/src/validators/utils/index.d.ts +12 -0
- package/libs/form/src/validators/utils/phone.d.ts +9 -0
- package/libs/form/src/validators/utils/postal_code.d.ts +2 -0
- package/libs/form/src/validators/utils/uuid4.d.ts +6 -0
- package/libs/form/src/{validators.spec.d.ts → validators/validators.spec.d.ts} +0 -0
- 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/NavList/NavListItem.d.ts +1 -0
- package/libs/ui/src/core/NavList/NavListItemBase.d.ts +1 -0
- package/libs/ui/src/core/NavList/types.d.ts +1 -0
- package/libs-ui/react-core/src/AccordionSectionSummary/index.d.ts +2 -1
- package/libs-ui/react-core/src/BackLink/index.d.ts +1 -1
- package/libs-ui/react-core/src/Button/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/CheckboxItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/DateInputItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/Field/index.d.ts +3 -3
- package/libs-ui/react-core/src/FileUpload/index.d.ts +1 -1
- package/libs-ui/react-core/src/Form/index.d.ts +11 -0
- package/libs-ui/react-core/src/Link/index.d.ts +1 -1
- package/libs-ui/react-core/src/NotificationBannerLink/index.d.ts +1 -1
- package/libs-ui/react-core/src/RadioItem/index.d.ts +1 -1
- package/libs-ui/react-core/src/Select/index.d.ts +1 -1
- package/libs-ui/react-core/src/SvgIcon/index.d.ts +1 -1
- package/libs-ui/react-core/src/TabsListItem/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/package.json +3 -2
- package/utils.js +6 -4
- package/validators/index.js +181 -0
- package/validators/types.js +5 -0
- package/validators/utils/afm.js +45 -0
- package/validators/utils/file.js +62 -0
- package/validators/utils/iban.js +134 -0
- package/validators/utils/index.js +210 -0
- package/validators/utils/phone.js +144 -0
- package/validators/utils/postal_code.js +40 -0
- package/validators/utils/uuid4.js +30 -0
- package/validators/validators.spec.js +88 -0
- package/es/validators.js +0 -626
- package/esm/validators.js +0 -626
- package/libs/form/src/validators.d.ts +0 -14
- package/validators.js +0 -662
- package/validators.spec.js +0 -88
package/Field/utils.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.calculateField = calculateField;
|
|
9
|
+
exports.evaluateFieldWithConditions = evaluateFieldWithConditions;
|
|
10
|
+
exports.useField = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
|
|
16
|
+
var _Input = _interopRequireDefault(require("@digigov/form/inputs/Input"));
|
|
17
|
+
|
|
18
|
+
var _Checkboxes = _interopRequireDefault(require("@digigov/form/inputs/Checkboxes"));
|
|
19
|
+
|
|
20
|
+
var _Radio = _interopRequireDefault(require("@digigov/form/inputs/Radio"));
|
|
21
|
+
|
|
22
|
+
var _Select = _interopRequireDefault(require("@digigov/form/inputs/Select"));
|
|
23
|
+
|
|
24
|
+
var _FileInput = _interopRequireDefault(require("@digigov/form/inputs/FileInput"));
|
|
25
|
+
|
|
26
|
+
var _DateInput = _interopRequireDefault(require("@digigov/form/inputs/DateInput"));
|
|
27
|
+
|
|
28
|
+
var _FormContext = require("@digigov/form/FormContext");
|
|
29
|
+
|
|
30
|
+
var FIELD_COMPONENTS = {
|
|
31
|
+
text: {
|
|
32
|
+
component: _Input["default"]
|
|
33
|
+
},
|
|
34
|
+
string: {
|
|
35
|
+
component: _Input["default"]
|
|
36
|
+
},
|
|
37
|
+
file: {
|
|
38
|
+
wrapper: 'fieldset',
|
|
39
|
+
component: _FileInput["default"]
|
|
40
|
+
},
|
|
41
|
+
date: {
|
|
42
|
+
wrapper: 'fieldset',
|
|
43
|
+
controlled: true,
|
|
44
|
+
component: _DateInput["default"]
|
|
45
|
+
},
|
|
46
|
+
'choice:multiple': {
|
|
47
|
+
wrapper: 'fieldset',
|
|
48
|
+
controlled: true,
|
|
49
|
+
component: _Checkboxes["default"]
|
|
50
|
+
},
|
|
51
|
+
'choice:single': {
|
|
52
|
+
wrapper: 'fieldset',
|
|
53
|
+
controlled: false,
|
|
54
|
+
component: _Radio["default"]
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var ALTERNATIVE_COMPONENTS = {
|
|
58
|
+
Select: {
|
|
59
|
+
component: _Select["default"],
|
|
60
|
+
controlled: false
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
function calculateField(children, field, componentRegistry) {
|
|
65
|
+
var _field$extra;
|
|
66
|
+
|
|
67
|
+
var calculatedField = (0, _extends2["default"])({}, field);
|
|
68
|
+
var fieldComponentRegistry = (0, _extends2["default"])({}, FIELD_COMPONENTS, componentRegistry);
|
|
69
|
+
|
|
70
|
+
if (children) {
|
|
71
|
+
calculatedField.component = children;
|
|
72
|
+
} else if (typeof field.component === 'function') {// leave as is
|
|
73
|
+
} else if (!field.component && !field.type) {
|
|
74
|
+
var _fieldComponentRegist;
|
|
75
|
+
|
|
76
|
+
calculatedField.component = fieldComponentRegistry.string.component;
|
|
77
|
+
calculatedField.controlled = ((_fieldComponentRegist = fieldComponentRegistry.string) === null || _fieldComponentRegist === void 0 ? void 0 : _fieldComponentRegist.controlled) || false;
|
|
78
|
+
} else if (typeof (field === null || field === void 0 ? void 0 : (_field$extra = field.extra) === null || _field$extra === void 0 ? void 0 : _field$extra.component) === 'string' && ALTERNATIVE_COMPONENTS[field.extra.component]) {
|
|
79
|
+
var _ALTERNATIVE_COMPONEN;
|
|
80
|
+
|
|
81
|
+
calculatedField.controlled = ((_ALTERNATIVE_COMPONEN = ALTERNATIVE_COMPONENTS[field.extra.component]) === null || _ALTERNATIVE_COMPONEN === void 0 ? void 0 : _ALTERNATIVE_COMPONEN.controlled) || false;
|
|
82
|
+
calculatedField.component = ALTERNATIVE_COMPONENTS[field.extra.component].component;
|
|
83
|
+
} else if (!field.component && field.type && fieldComponentRegistry[field.type]) {
|
|
84
|
+
var _fieldComponentRegist2;
|
|
85
|
+
|
|
86
|
+
calculatedField.component = fieldComponentRegistry[field.type].component;
|
|
87
|
+
calculatedField.wrapper = fieldComponentRegistry[field.type].wrapper;
|
|
88
|
+
calculatedField.controlled = ((_fieldComponentRegist2 = fieldComponentRegistry[field.type]) === null || _fieldComponentRegist2 === void 0 ? void 0 : _fieldComponentRegist2.controlled) || false;
|
|
89
|
+
} else {
|
|
90
|
+
var _fieldComponentRegist3;
|
|
91
|
+
|
|
92
|
+
calculatedField.component = fieldComponentRegistry.string.component;
|
|
93
|
+
calculatedField.controlled = ((_fieldComponentRegist3 = fieldComponentRegistry.string) === null || _fieldComponentRegist3 === void 0 ? void 0 : _fieldComponentRegist3.controlled) || false;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return calculatedField;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
var useField = function useField(name, customField) {
|
|
100
|
+
var _useContext = (0, _react.useContext)(_FormContext.FormContext),
|
|
101
|
+
fieldsMap = _useContext.fieldsMap,
|
|
102
|
+
control = _useContext.control,
|
|
103
|
+
register = _useContext.register,
|
|
104
|
+
errors = _useContext.errors,
|
|
105
|
+
registerField = _useContext.registerField,
|
|
106
|
+
componentRegistry = _useContext.componentRegistry;
|
|
107
|
+
|
|
108
|
+
(0, _react.useMemo)(function () {
|
|
109
|
+
return (customField === null || customField === void 0 ? void 0 : customField.type) && registerField((0, _extends2["default"])({}, customField, {
|
|
110
|
+
key: name
|
|
111
|
+
}));
|
|
112
|
+
}, [customField, name, registerField]);
|
|
113
|
+
return {
|
|
114
|
+
field: customField || fieldsMap[name],
|
|
115
|
+
control: control,
|
|
116
|
+
register: register,
|
|
117
|
+
componentRegistry: componentRegistry,
|
|
118
|
+
error: errors[name]
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
exports.useField = useField;
|
|
123
|
+
|
|
124
|
+
function evaluateFieldWithConditions(field, variables) {
|
|
125
|
+
var newField = (0, _extends2["default"])({}, field);
|
|
126
|
+
|
|
127
|
+
if (variables) {
|
|
128
|
+
for (var key in variables) {
|
|
129
|
+
if (field.condition[key] && field.condition[key].is === variables[key]) {
|
|
130
|
+
var then = field.condition[key].then || {};
|
|
131
|
+
|
|
132
|
+
for (var attr in then) {
|
|
133
|
+
newField[attr] = then[attr];
|
|
134
|
+
}
|
|
135
|
+
} else if (field.condition[key]) {
|
|
136
|
+
var otherwise = field.condition[key]["else"] || {};
|
|
137
|
+
|
|
138
|
+
for (var _attr in otherwise) {
|
|
139
|
+
newField[_attr] = otherwise[_attr];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return newField;
|
|
146
|
+
}
|
package/FormBuilder.js
CHANGED
|
@@ -23,8 +23,6 @@ var _reactHookForm = require("react-hook-form");
|
|
|
23
23
|
|
|
24
24
|
var _utils = require("@digigov/form/utils");
|
|
25
25
|
|
|
26
|
-
var _Grid = _interopRequireDefault(require("@digigov/ui/layouts/Grid"));
|
|
27
|
-
|
|
28
26
|
var _validators = require("@digigov/form/validators");
|
|
29
27
|
|
|
30
28
|
var _Fieldset = _interopRequireDefault(require("@digigov/form/Fieldset"));
|
|
@@ -33,8 +31,10 @@ var _Field = _interopRequireDefault(require("@digigov/form/Field"));
|
|
|
33
31
|
|
|
34
32
|
var _FormContext = require("@digigov/form/FormContext");
|
|
35
33
|
|
|
36
|
-
var
|
|
37
|
-
|
|
34
|
+
var _Form = require("@digigov/react-core/Form");
|
|
35
|
+
|
|
36
|
+
var _excluded = ["onSubmit", "children", "registerField", "fieldsMap", "fieldsetsMap", "resolver", "mode", "initial", "reValidateMode", "shouldFocusError", "criteriaMode", "componentRegistry", "grid"],
|
|
37
|
+
_excluded2 = ["fields", "fieldsets", "initial", "onSubmit", "children", "reValidateMode", "mode", "shouldFocusError", "criteriaMode", "auto", "validatorRegistry", "componentRegistry", "grid"];
|
|
38
38
|
|
|
39
39
|
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); }
|
|
40
40
|
|
|
@@ -53,6 +53,7 @@ var FormBase = /*#__PURE__*/_react["default"].forwardRef(function FormBase(_ref,
|
|
|
53
53
|
shouldFocusError = _ref.shouldFocusError,
|
|
54
54
|
criteriaMode = _ref.criteriaMode,
|
|
55
55
|
componentRegistry = _ref.componentRegistry,
|
|
56
|
+
grid = _ref.grid,
|
|
56
57
|
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
57
58
|
var form = (0, _reactHookForm.useForm)({
|
|
58
59
|
resolver: resolver,
|
|
@@ -83,15 +84,11 @@ var FormBase = /*#__PURE__*/_react["default"].forwardRef(function FormBase(_ref,
|
|
|
83
84
|
};
|
|
84
85
|
return /*#__PURE__*/_react["default"].createElement(_FormContext.FormContext.Provider, {
|
|
85
86
|
value: ctx
|
|
86
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
87
|
+
}, /*#__PURE__*/_react["default"].createElement(_Form.Form, (0, _extends4["default"])({
|
|
88
|
+
grid: grid,
|
|
87
89
|
onSubmit: form.handleSubmit(handleSubmit),
|
|
88
90
|
ref: ref
|
|
89
|
-
}, props),
|
|
90
|
-
container: true
|
|
91
|
-
}, /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
|
|
92
|
-
item: true,
|
|
93
|
-
xs: 12
|
|
94
|
-
}, children))));
|
|
91
|
+
}, props), children));
|
|
95
92
|
});
|
|
96
93
|
|
|
97
94
|
exports.FormBase = FormBase;
|
|
@@ -116,6 +113,8 @@ var FormBuilder = /*#__PURE__*/_react["default"].forwardRef(function FormBuilder
|
|
|
116
113
|
auto = _ref2$auto === void 0 ? false : _ref2$auto,
|
|
117
114
|
validatorRegistry = _ref2.validatorRegistry,
|
|
118
115
|
componentRegistry = _ref2.componentRegistry,
|
|
116
|
+
_ref2$grid = _ref2.grid,
|
|
117
|
+
grid = _ref2$grid === void 0 ? false : _ref2$grid,
|
|
119
118
|
props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
|
|
120
119
|
var fieldsState = (0, _react.useRef)(fields);
|
|
121
120
|
var setFieldsState = (0, _react.useCallback)(function (newFields) {
|
|
@@ -169,7 +168,8 @@ var FormBuilder = /*#__PURE__*/_react["default"].forwardRef(function FormBuilder
|
|
|
169
168
|
criteriaMode: criteriaMode,
|
|
170
169
|
onSubmit: onSubmit,
|
|
171
170
|
componentRegistry: componentRegistry,
|
|
172
|
-
ref: ref
|
|
171
|
+
ref: ref,
|
|
172
|
+
grid: grid
|
|
173
173
|
}, props), fieldChildren, children);
|
|
174
174
|
});
|
|
175
175
|
|