@digigov/form 0.6.9 → 0.6.10
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 +8 -1
- package/Field/index.js +107 -34
- package/Field/types.js +5 -0
- package/Fieldset/FieldsetWithContext.js +63 -0
- package/Fieldset/index.js +4 -63
- package/Fieldset/types.js +5 -0
- package/FormBuilder.js +178 -0
- package/FormContext.js +14 -0
- package/Questions/Questions.js +105 -0
- package/Questions/QuestionsContext.js +20 -0
- package/Questions/Step/ReviewStep.js +11 -7
- package/Questions/Step/Step.js +93 -0
- package/Questions/Step/StepArrayReview.js +79 -0
- package/Questions/Step/StepContext.js +37 -0
- package/Questions/Step/StepDescription.js +2 -2
- package/Questions/Step/StepForm.js +10 -6
- package/Questions/Step/StepTitle.js +2 -2
- package/Questions/Step/getAddMoreFields.js +31 -0
- package/Questions/Step/index.js +81 -200
- package/Questions/Step/types.js +5 -0
- package/Questions/getNextStep.js +30 -0
- package/Questions/index.js +4 -150
- package/Questions/types.js +5 -0
- package/es/Field/index.js +102 -30
- package/es/Field/types.js +1 -0
- package/es/Fieldset/FieldsetWithContext.js +41 -0
- package/es/Fieldset/index.js +3 -51
- package/es/Fieldset/types.js +1 -0
- package/es/FormBuilder.js +148 -0
- package/es/FormContext.js +5 -0
- package/es/Questions/Questions.js +84 -0
- package/es/Questions/QuestionsContext.js +11 -0
- package/es/Questions/Step/ReviewStep.js +5 -3
- package/es/Questions/Step/Step.js +69 -0
- package/es/Questions/Step/StepArrayReview.js +50 -0
- package/es/Questions/Step/StepContext.js +27 -0
- package/es/Questions/Step/StepDescription.js +1 -1
- package/es/Questions/Step/StepForm.js +4 -2
- package/es/Questions/Step/StepTitle.js +1 -1
- package/es/Questions/Step/getAddMoreFields.js +22 -0
- package/es/Questions/Step/index.js +13 -165
- package/es/Questions/Step/types.js +1 -0
- package/es/Questions/getNextStep.js +23 -0
- package/es/Questions/index.js +2 -119
- package/es/Questions/index.spec.js +2 -1
- package/es/Questions/types.js +1 -0
- package/es/index.js +2 -153
- package/es/inputs/index.js +5 -4
- package/es/internal.js +29 -0
- package/es/types.js +1 -0
- package/esm/Field/index.js +102 -30
- package/esm/Field/types.js +1 -0
- package/esm/Fieldset/FieldsetWithContext.js +41 -0
- package/esm/Fieldset/index.js +3 -51
- package/esm/Fieldset/types.js +1 -0
- package/esm/FormBuilder.js +148 -0
- package/esm/FormContext.js +5 -0
- package/esm/Questions/Questions.js +84 -0
- package/esm/Questions/QuestionsContext.js +11 -0
- package/esm/Questions/Step/ReviewStep.js +5 -3
- package/esm/Questions/Step/Step.js +69 -0
- package/esm/Questions/Step/StepArrayReview.js +50 -0
- package/esm/Questions/Step/StepContext.js +27 -0
- package/esm/Questions/Step/StepDescription.js +1 -1
- package/esm/Questions/Step/StepForm.js +4 -2
- package/esm/Questions/Step/StepTitle.js +1 -1
- package/esm/Questions/Step/getAddMoreFields.js +22 -0
- package/esm/Questions/Step/index.js +13 -165
- package/esm/Questions/Step/types.js +1 -0
- package/esm/Questions/getNextStep.js +23 -0
- package/esm/Questions/index.js +2 -119
- package/esm/Questions/index.spec.js +2 -1
- package/esm/Questions/types.js +1 -0
- package/esm/index.js +3 -154
- package/esm/inputs/index.js +5 -4
- package/esm/internal.js +29 -0
- package/esm/types.js +1 -0
- package/index.js +8 -191
- package/inputs/index.js +13 -5
- package/internal.js +335 -0
- package/libs/form/src/Field/index.d.ts +2 -61
- package/libs/form/src/Field/types.d.ts +75 -0
- package/libs/form/src/Fieldset/FieldsetWithContext.d.ts +4 -0
- package/libs/form/src/Fieldset/index.d.ts +2 -12
- package/libs/form/src/Fieldset/types.d.ts +6 -0
- package/libs/form/src/FormBuilder.d.ts +5 -0
- package/libs/form/src/FormContext.d.ts +3 -0
- package/libs/form/src/Questions/Questions.d.ts +8 -0
- package/libs/form/src/Questions/QuestionsContext.d.ts +3 -0
- package/libs/form/src/Questions/Step/ReviewStep.d.ts +1 -0
- package/libs/form/src/Questions/Step/Step.d.ts +9 -0
- package/libs/form/src/Questions/Step/StepArrayReview.d.ts +4 -0
- package/libs/form/src/Questions/Step/StepContext.d.ts +4 -0
- package/libs/form/src/Questions/Step/StepForm.d.ts +2 -1
- package/libs/form/src/Questions/Step/getAddMoreFields.d.ts +3 -0
- package/libs/form/src/Questions/Step/index.d.ts +12 -47
- package/libs/form/src/Questions/Step/types.d.ts +31 -0
- package/libs/form/src/Questions/getNextStep.d.ts +2 -0
- package/libs/form/src/Questions/index.d.ts +1 -28
- package/libs/form/src/Questions/types.d.ts +19 -0
- package/libs/form/src/index.d.ts +2 -73
- package/libs/form/src/inputs/Checkboxes/index.d.ts +1 -1
- package/libs/form/src/inputs/DateInput/index.d.ts +1 -1
- package/libs/form/src/inputs/FileInput/index.d.ts +1 -1
- package/libs/form/src/inputs/Input/index.d.ts +1 -1
- package/libs/form/src/inputs/Label/index.d.ts +2 -1
- package/libs/form/src/inputs/Radio/index.d.ts +1 -1
- package/libs/form/src/inputs/Select/index.d.ts +1 -1
- package/libs/form/src/inputs/index.d.ts +4 -3
- package/libs/form/src/internal.d.ts +29 -0
- package/libs/form/src/types.d.ts +69 -0
- package/libs/form/src/validators.d.ts +1 -1
- package/libs/ui/src/core/Button/index.d.ts +1 -1
- package/libs/ui/src/core/NavList/NavList.d.ts +1 -14
- package/libs/ui/src/core/NavList/NavListBase.d.ts +4 -0
- package/libs/ui/src/core/NavList/NavListSubMenu.d.ts +1 -1
- package/libs/ui/src/core/NavList/types.d.ts +13 -0
- package/libs/ui/src/core/Table/TableFloatingScroll.d.ts +3 -0
- package/libs/ui/src/core/Table/index.d.ts +1 -0
- package/libs/ui/src/layouts/Grid/index.d.ts +1 -0
- package/libs-ui/react-core/src/Button/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/Fieldset/index.d.ts +1 -1
- package/libs-ui/react-core/src/FileUpload/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/Table/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 +2 -2
- package/types.js +5 -0
- package/Field/ConditionalField.js +0 -92
- package/es/Field/ConditionalField.js +0 -77
- package/esm/Field/ConditionalField.js +0 -77
- package/libs/form/src/Field/ConditionalField.d.ts +0 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# Change Log - @digigov/form
|
|
2
2
|
|
|
3
|
-
This log was last generated on Thu,
|
|
3
|
+
This log was last generated on Thu, 07 Jul 2022 13:01:18 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.6.10
|
|
6
|
+
Thu, 07 Jul 2022 13:01:18 GMT
|
|
7
|
+
|
|
8
|
+
### Patches
|
|
9
|
+
|
|
10
|
+
- refactor code to resolve circular dependencies
|
|
4
11
|
|
|
5
12
|
## 0.6.9
|
|
6
13
|
Thu, 23 Jun 2022 11:49:45 GMT
|
package/Field/index.js
CHANGED
|
@@ -7,19 +7,17 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports["default"] = exports.FieldBase = exports.Field = void 0;
|
|
11
|
-
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
exports["default"] = exports.FieldBase = exports.Field = exports.ConditionalField = void 0;
|
|
13
11
|
|
|
14
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
15
|
|
|
18
|
-
var
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
17
|
|
|
20
18
|
var _reactHookForm = require("react-hook-form");
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _FormContext = require("@digigov/form/FormContext");
|
|
23
21
|
|
|
24
22
|
var _Field = _interopRequireDefault(require("@digigov/react-core/Field"));
|
|
25
23
|
|
|
@@ -56,6 +54,81 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
56
54
|
|
|
57
55
|
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; }
|
|
58
56
|
|
|
57
|
+
function evaluateFieldWithConditions(field, variables) {
|
|
58
|
+
var newField = (0, _extends2["default"])({}, field);
|
|
59
|
+
|
|
60
|
+
if (variables) {
|
|
61
|
+
for (var key in variables) {
|
|
62
|
+
if (field.condition[key] && field.condition[key].is === variables[key]) {
|
|
63
|
+
var then = field.condition[key].then || {};
|
|
64
|
+
|
|
65
|
+
for (var attr in then) {
|
|
66
|
+
newField[attr] = then[attr];
|
|
67
|
+
}
|
|
68
|
+
} else if (field.condition[key]) {
|
|
69
|
+
var otherwise = field.condition[key]["else"] || {};
|
|
70
|
+
|
|
71
|
+
for (var _attr in otherwise) {
|
|
72
|
+
newField[_attr] = otherwise[_attr];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return newField;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
var ChildFieldMemo = /*#__PURE__*/_react["default"].memo(function ChildField(_ref) {
|
|
82
|
+
var dependencies = _ref.dependencies,
|
|
83
|
+
field = _ref.field,
|
|
84
|
+
control = _ref.control,
|
|
85
|
+
register = _ref.register,
|
|
86
|
+
error = _ref.error;
|
|
87
|
+
var newField = evaluateFieldWithConditions(field, dependencies);
|
|
88
|
+
return /*#__PURE__*/_react["default"].createElement(FieldBase, (0, _extends2["default"])({}, newField, {
|
|
89
|
+
name: newField.key,
|
|
90
|
+
control: control,
|
|
91
|
+
register: register,
|
|
92
|
+
error: error
|
|
93
|
+
}));
|
|
94
|
+
}, function (prev, next) {
|
|
95
|
+
if (!prev || !prev.dependencies) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (prev.error !== next.error) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
for (var dep in next.dependencies) {
|
|
104
|
+
if (next.dependencies[dep] !== prev.dependencies[dep]) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return true;
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
var ConditionalField = function ConditionalField(_ref2) {
|
|
113
|
+
var control = _ref2.control,
|
|
114
|
+
field = _ref2.field,
|
|
115
|
+
register = _ref2.register,
|
|
116
|
+
error = _ref2.error;
|
|
117
|
+
var dependencyKeys = Object.keys(field.condition);
|
|
118
|
+
var variables = (0, _reactHookForm.useWatch)({
|
|
119
|
+
name: dependencyKeys,
|
|
120
|
+
control: control
|
|
121
|
+
});
|
|
122
|
+
return /*#__PURE__*/_react["default"].createElement(ChildFieldMemo, {
|
|
123
|
+
dependencies: variables,
|
|
124
|
+
field: field,
|
|
125
|
+
control: control,
|
|
126
|
+
register: register,
|
|
127
|
+
error: error
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
exports.ConditionalField = ConditionalField;
|
|
59
132
|
var FIELD_COMPONENTS = {
|
|
60
133
|
text: {
|
|
61
134
|
component: _Input["default"]
|
|
@@ -90,12 +163,12 @@ var ALTERNATIVE_COMPONENTS = {
|
|
|
90
163
|
}
|
|
91
164
|
};
|
|
92
165
|
|
|
93
|
-
var FieldContainer = function FieldContainer(
|
|
94
|
-
var name =
|
|
95
|
-
wrapper =
|
|
96
|
-
label =
|
|
97
|
-
children =
|
|
98
|
-
error =
|
|
166
|
+
var FieldContainer = function FieldContainer(_ref3) {
|
|
167
|
+
var name = _ref3.name,
|
|
168
|
+
wrapper = _ref3.wrapper,
|
|
169
|
+
label = _ref3.label,
|
|
170
|
+
children = _ref3.children,
|
|
171
|
+
error = _ref3.error;
|
|
99
172
|
|
|
100
173
|
var _useTranslation = (0, _i18n.useTranslation)(),
|
|
101
174
|
t = _useTranslation.t;
|
|
@@ -154,10 +227,10 @@ var FieldBase = function FieldBase(props) {
|
|
|
154
227
|
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
|
155
228
|
control: control,
|
|
156
229
|
name: name,
|
|
157
|
-
render: function render(
|
|
158
|
-
var onChange =
|
|
159
|
-
onBlur =
|
|
160
|
-
value =
|
|
230
|
+
render: function render(_ref4) {
|
|
231
|
+
var onChange = _ref4.onChange,
|
|
232
|
+
onBlur = _ref4.onBlur,
|
|
233
|
+
value = _ref4.value;
|
|
161
234
|
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({
|
|
162
235
|
name: name,
|
|
163
236
|
onChange: onChange,
|
|
@@ -210,7 +283,7 @@ var FieldBase = function FieldBase(props) {
|
|
|
210
283
|
exports.FieldBase = FieldBase;
|
|
211
284
|
|
|
212
285
|
var useField = function useField(name, customField) {
|
|
213
|
-
var _useContext = (0, _react.useContext)(
|
|
286
|
+
var _useContext = (0, _react.useContext)(_FormContext.FormContext),
|
|
214
287
|
fieldsMap = _useContext.fieldsMap,
|
|
215
288
|
control = _useContext.control,
|
|
216
289
|
register = _useContext.register,
|
|
@@ -236,41 +309,41 @@ function calculateField(children, field, componentRegistry) {
|
|
|
236
309
|
var _field$extra;
|
|
237
310
|
|
|
238
311
|
var calculatedField = (0, _extends2["default"])({}, field);
|
|
239
|
-
var
|
|
312
|
+
var fieldComponentRegistry = (0, _extends2["default"])({}, FIELD_COMPONENTS, componentRegistry);
|
|
240
313
|
|
|
241
314
|
if (children) {
|
|
242
315
|
calculatedField.component = children;
|
|
243
316
|
} else if (typeof field.component === 'function') {// leave as is
|
|
244
317
|
} else if (!field.component && !field.type) {
|
|
245
|
-
var
|
|
318
|
+
var _fieldComponentRegist;
|
|
246
319
|
|
|
247
|
-
calculatedField.component =
|
|
248
|
-
calculatedField.controlled = ((
|
|
320
|
+
calculatedField.component = fieldComponentRegistry.string.component;
|
|
321
|
+
calculatedField.controlled = ((_fieldComponentRegist = fieldComponentRegistry.string) === null || _fieldComponentRegist === void 0 ? void 0 : _fieldComponentRegist.controlled) || false;
|
|
249
322
|
} 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]) {
|
|
250
323
|
var _ALTERNATIVE_COMPONEN;
|
|
251
324
|
|
|
252
325
|
calculatedField.controlled = ((_ALTERNATIVE_COMPONEN = ALTERNATIVE_COMPONENTS[field.extra.component]) === null || _ALTERNATIVE_COMPONEN === void 0 ? void 0 : _ALTERNATIVE_COMPONEN.controlled) || false;
|
|
253
326
|
calculatedField.component = ALTERNATIVE_COMPONENTS[field.extra.component].component;
|
|
254
|
-
} else if (!field.component && field.type &&
|
|
255
|
-
var
|
|
327
|
+
} else if (!field.component && field.type && fieldComponentRegistry[field.type]) {
|
|
328
|
+
var _fieldComponentRegist2;
|
|
256
329
|
|
|
257
|
-
calculatedField.component =
|
|
258
|
-
calculatedField.wrapper =
|
|
259
|
-
calculatedField.controlled = ((
|
|
330
|
+
calculatedField.component = fieldComponentRegistry[field.type].component;
|
|
331
|
+
calculatedField.wrapper = fieldComponentRegistry[field.type].wrapper;
|
|
332
|
+
calculatedField.controlled = ((_fieldComponentRegist2 = fieldComponentRegistry[field.type]) === null || _fieldComponentRegist2 === void 0 ? void 0 : _fieldComponentRegist2.controlled) || false;
|
|
260
333
|
} else {
|
|
261
|
-
var
|
|
334
|
+
var _fieldComponentRegist3;
|
|
262
335
|
|
|
263
|
-
calculatedField.component =
|
|
264
|
-
calculatedField.controlled = ((
|
|
336
|
+
calculatedField.component = fieldComponentRegistry.string.component;
|
|
337
|
+
calculatedField.controlled = ((_fieldComponentRegist3 = fieldComponentRegistry.string) === null || _fieldComponentRegist3 === void 0 ? void 0 : _fieldComponentRegist3.controlled) || false;
|
|
265
338
|
}
|
|
266
339
|
|
|
267
340
|
return calculatedField;
|
|
268
341
|
}
|
|
269
342
|
|
|
270
|
-
var Field = function Field(
|
|
271
|
-
var name =
|
|
272
|
-
children =
|
|
273
|
-
customField = (0, _objectWithoutProperties2["default"])(
|
|
343
|
+
var Field = function Field(_ref5) {
|
|
344
|
+
var name = _ref5.name,
|
|
345
|
+
children = _ref5.children,
|
|
346
|
+
customField = (0, _objectWithoutProperties2["default"])(_ref5, _excluded2);
|
|
274
347
|
|
|
275
348
|
var _useField = useField(name, customField !== null && customField !== void 0 && customField.type ? customField : null),
|
|
276
349
|
field = _useField.field,
|
|
@@ -284,7 +357,7 @@ var Field = function Field(_ref3) {
|
|
|
284
357
|
}, [field]);
|
|
285
358
|
|
|
286
359
|
if (calculatedField.condition) {
|
|
287
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
360
|
+
return /*#__PURE__*/_react["default"].createElement(ConditionalField, {
|
|
288
361
|
control: control,
|
|
289
362
|
register: register,
|
|
290
363
|
field: calculatedField,
|
package/Field/types.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
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.FieldsetWithContext = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _FormContext = require("@digigov/form/FormContext");
|
|
15
|
+
|
|
16
|
+
var _Field = _interopRequireDefault(require("@digigov/form/Field"));
|
|
17
|
+
|
|
18
|
+
var _i18n = require("@digigov/ui/app/i18n");
|
|
19
|
+
|
|
20
|
+
var _Fieldset = require("@digigov/form/Fieldset/");
|
|
21
|
+
|
|
22
|
+
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); }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
var FieldsetWithContext = function FieldsetWithContext(_ref) {
|
|
27
|
+
var name = _ref.name;
|
|
28
|
+
|
|
29
|
+
var _useFieldset = useFieldset(name),
|
|
30
|
+
label = _useFieldset.label,
|
|
31
|
+
body = _useFieldset.body,
|
|
32
|
+
fields = _useFieldset.fields;
|
|
33
|
+
|
|
34
|
+
var _useTranslation = (0, _i18n.useTranslation)(),
|
|
35
|
+
t = _useTranslation.t;
|
|
36
|
+
|
|
37
|
+
var _ref2 = /*#__PURE__*/_react["default"].createElement(_Fieldset.FieldsetBody, null, body);
|
|
38
|
+
|
|
39
|
+
return (0, _react.useMemo)(function () {
|
|
40
|
+
return /*#__PURE__*/_react["default"].createElement(_Fieldset.Fieldset, null, (label === null || label === void 0 ? void 0 : label.primary) && /*#__PURE__*/_react["default"].createElement(_Fieldset.FieldsetLabel, null, t(label.primary)), (label === null || label === void 0 ? void 0 : label.secondary) && /*#__PURE__*/_react["default"].createElement(_Fieldset.FieldsetCaption, null, t(label.secondary)), body && _ref2, fields.map(function (field) {
|
|
41
|
+
return /*#__PURE__*/_react["default"].createElement(_Field["default"], {
|
|
42
|
+
key: field,
|
|
43
|
+
name: field
|
|
44
|
+
});
|
|
45
|
+
}));
|
|
46
|
+
}, [label === null || label === void 0 ? void 0 : label.primary, label === null || label === void 0 ? void 0 : label.secondary, body, fields]);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
exports.FieldsetWithContext = FieldsetWithContext;
|
|
50
|
+
|
|
51
|
+
var useFieldset = function useFieldset(name) {
|
|
52
|
+
var _useContext = (0, _react.useContext)(_FormContext.FormContext),
|
|
53
|
+
fieldsetsMap = _useContext.fieldsetsMap;
|
|
54
|
+
|
|
55
|
+
if (fieldsetsMap && fieldsetsMap[name]) {
|
|
56
|
+
return (0, _react.useMemo)(function () {
|
|
57
|
+
return fieldsetsMap[name];
|
|
58
|
+
}, [name]);
|
|
59
|
+
} else {
|
|
60
|
+
if (!fieldsetsMap) throw new Error("Fieldsets is not defined");
|
|
61
|
+
throw new Error("No fieldset with name ".concat(name, " found"));
|
|
62
|
+
}
|
|
63
|
+
};
|
package/Fieldset/index.js
CHANGED
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
exports["default"] = exports.
|
|
8
|
+
exports["default"] = exports.FieldsetLabel = exports.FieldsetCaption = exports.FieldsetBody = exports.Fieldset = void 0;
|
|
11
9
|
|
|
12
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
11
|
|
|
14
12
|
var _Grid = _interopRequireDefault(require("@digigov/ui/layouts/Grid"));
|
|
15
13
|
|
|
@@ -19,18 +17,8 @@ var _FieldsetLegend = _interopRequireDefault(require("@digigov/react-core/Fields
|
|
|
19
17
|
|
|
20
18
|
var _Hint = _interopRequireDefault(require("@digigov/react-core/Hint"));
|
|
21
19
|
|
|
22
|
-
var _form = require("@digigov/form");
|
|
23
|
-
|
|
24
|
-
var _Field = _interopRequireDefault(require("@digigov/form/Field"));
|
|
25
|
-
|
|
26
20
|
var _NormalText = _interopRequireDefault(require("@digigov/ui/typography/NormalText"));
|
|
27
21
|
|
|
28
|
-
var _i18n = require("@digigov/ui/app/i18n");
|
|
29
|
-
|
|
30
|
-
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); }
|
|
31
|
-
|
|
32
|
-
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; }
|
|
33
|
-
|
|
34
22
|
var FieldsetLabel = function FieldsetLabel(_ref) {
|
|
35
23
|
var children = _ref.children;
|
|
36
24
|
return /*#__PURE__*/_react["default"].createElement(_FieldsetLegend["default"], {
|
|
@@ -58,55 +46,8 @@ var FieldsetBody = function FieldsetBody(_ref3) {
|
|
|
58
46
|
|
|
59
47
|
exports.FieldsetBody = FieldsetBody;
|
|
60
48
|
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
fieldsetsMap = _useContext.fieldsetsMap;
|
|
64
|
-
|
|
65
|
-
if (fieldsetsMap && fieldsetsMap[name]) {
|
|
66
|
-
return (0, _react.useMemo)(function () {
|
|
67
|
-
return fieldsetsMap[name];
|
|
68
|
-
}, [name]);
|
|
69
|
-
} else {
|
|
70
|
-
if (!fieldsetsMap) throw new Error("Fieldsets is not defined");
|
|
71
|
-
throw new Error("No fieldset with name ".concat(name, " found"));
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
var FieldsetWithContext = function FieldsetWithContext(_ref4) {
|
|
76
|
-
var name = _ref4.name;
|
|
77
|
-
|
|
78
|
-
var _useFieldset = useFieldset(name),
|
|
79
|
-
label = _useFieldset.label,
|
|
80
|
-
body = _useFieldset.body,
|
|
81
|
-
fields = _useFieldset.fields;
|
|
82
|
-
|
|
83
|
-
var _useTranslation = (0, _i18n.useTranslation)(),
|
|
84
|
-
t = _useTranslation.t;
|
|
85
|
-
|
|
86
|
-
var _ref5 = /*#__PURE__*/_react["default"].createElement(FieldsetBody, null, body);
|
|
87
|
-
|
|
88
|
-
return (0, _react.useMemo)(function () {
|
|
89
|
-
return /*#__PURE__*/_react["default"].createElement(Fieldset, null, (label === null || label === void 0 ? void 0 : label.primary) && /*#__PURE__*/_react["default"].createElement(FieldsetLabel, null, t(label.primary)), (label === null || label === void 0 ? void 0 : label.secondary) && /*#__PURE__*/_react["default"].createElement(FieldsetCaption, null, t(label.secondary)), body && _ref5, fields.map(function (field) {
|
|
90
|
-
return /*#__PURE__*/_react["default"].createElement(_Field["default"], {
|
|
91
|
-
key: field,
|
|
92
|
-
name: field
|
|
93
|
-
});
|
|
94
|
-
}));
|
|
95
|
-
}, [label === null || label === void 0 ? void 0 : label.primary, label === null || label === void 0 ? void 0 : label.secondary, body, fields]);
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
exports.FieldsetWithContext = FieldsetWithContext;
|
|
99
|
-
|
|
100
|
-
var Fieldset = function Fieldset(_ref6) {
|
|
101
|
-
var name = _ref6.name,
|
|
102
|
-
children = _ref6.children;
|
|
103
|
-
|
|
104
|
-
if (name && !children) {
|
|
105
|
-
return /*#__PURE__*/_react["default"].createElement(FieldsetWithContext, {
|
|
106
|
-
name: name
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
|
|
49
|
+
var Fieldset = function Fieldset(_ref4) {
|
|
50
|
+
var children = _ref4.children;
|
|
110
51
|
return /*#__PURE__*/_react["default"].createElement(_Fieldset["default"], null, children);
|
|
111
52
|
};
|
|
112
53
|
|
package/FormBuilder.js
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
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.FormBuilder = exports.FormBase = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
+
|
|
16
|
+
var _extends4 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
|
+
|
|
18
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
19
|
+
|
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _reactHookForm = require("react-hook-form");
|
|
23
|
+
|
|
24
|
+
var _utils = require("@digigov/form/utils");
|
|
25
|
+
|
|
26
|
+
var _Grid = _interopRequireDefault(require("@digigov/ui/layouts/Grid"));
|
|
27
|
+
|
|
28
|
+
var _validators = require("@digigov/form/validators");
|
|
29
|
+
|
|
30
|
+
var _Fieldset = _interopRequireDefault(require("@digigov/form/Fieldset"));
|
|
31
|
+
|
|
32
|
+
var _Field = _interopRequireDefault(require("@digigov/form/Field"));
|
|
33
|
+
|
|
34
|
+
var _FormContext = require("@digigov/form/FormContext");
|
|
35
|
+
|
|
36
|
+
var _excluded = ["onSubmit", "children", "registerField", "fieldsMap", "fieldsetsMap", "resolver", "mode", "initial", "reValidateMode", "shouldFocusError", "criteriaMode", "componentRegistry"],
|
|
37
|
+
_excluded2 = ["fields", "fieldsets", "initial", "onSubmit", "children", "reValidateMode", "mode", "shouldFocusError", "criteriaMode", "auto", "validatorRegistry", "componentRegistry"];
|
|
38
|
+
|
|
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
|
+
|
|
41
|
+
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; }
|
|
42
|
+
|
|
43
|
+
var FormBase = /*#__PURE__*/_react["default"].forwardRef(function FormBase(_ref, ref) {
|
|
44
|
+
var onSubmit = _ref.onSubmit,
|
|
45
|
+
children = _ref.children,
|
|
46
|
+
registerField = _ref.registerField,
|
|
47
|
+
fieldsMap = _ref.fieldsMap,
|
|
48
|
+
fieldsetsMap = _ref.fieldsetsMap,
|
|
49
|
+
resolver = _ref.resolver,
|
|
50
|
+
mode = _ref.mode,
|
|
51
|
+
initial = _ref.initial,
|
|
52
|
+
reValidateMode = _ref.reValidateMode,
|
|
53
|
+
shouldFocusError = _ref.shouldFocusError,
|
|
54
|
+
criteriaMode = _ref.criteriaMode,
|
|
55
|
+
componentRegistry = _ref.componentRegistry,
|
|
56
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
57
|
+
var form = (0, _reactHookForm.useForm)({
|
|
58
|
+
resolver: resolver,
|
|
59
|
+
mode: mode,
|
|
60
|
+
defaultValues: initial,
|
|
61
|
+
reValidateMode: reValidateMode,
|
|
62
|
+
shouldFocusError: shouldFocusError,
|
|
63
|
+
criteriaMode: criteriaMode
|
|
64
|
+
});
|
|
65
|
+
var handleSubmit = (0, _react.useCallback)(function (data) {
|
|
66
|
+
var errors = onSubmit && onSubmit(data);
|
|
67
|
+
|
|
68
|
+
if (errors) {
|
|
69
|
+
for (var key in errors) {
|
|
70
|
+
form.setError(key, errors[key]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, [onSubmit]);
|
|
74
|
+
var ctx = {
|
|
75
|
+
fieldsMap: fieldsMap,
|
|
76
|
+
fieldsetsMap: fieldsetsMap,
|
|
77
|
+
control: form.control,
|
|
78
|
+
register: form.register,
|
|
79
|
+
registerField: registerField,
|
|
80
|
+
errors: form.errors,
|
|
81
|
+
reset: form.reset,
|
|
82
|
+
componentRegistry: componentRegistry
|
|
83
|
+
};
|
|
84
|
+
return /*#__PURE__*/_react["default"].createElement(_FormContext.FormContext.Provider, {
|
|
85
|
+
value: ctx
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement("form", (0, _extends4["default"])({
|
|
87
|
+
onSubmit: form.handleSubmit(handleSubmit),
|
|
88
|
+
ref: ref
|
|
89
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
|
|
90
|
+
container: true
|
|
91
|
+
}, /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
|
|
92
|
+
item: true,
|
|
93
|
+
xs: 12
|
|
94
|
+
}, children))));
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
exports.FormBase = FormBase;
|
|
98
|
+
|
|
99
|
+
var FormBuilder = /*#__PURE__*/_react["default"].forwardRef(function FormBuilder(_ref2, ref) {
|
|
100
|
+
var _ref2$fields = _ref2.fields,
|
|
101
|
+
fields = _ref2$fields === void 0 ? [] : _ref2$fields,
|
|
102
|
+
fieldsets = _ref2.fieldsets,
|
|
103
|
+
_ref2$initial = _ref2.initial,
|
|
104
|
+
initial = _ref2$initial === void 0 ? {} : _ref2$initial,
|
|
105
|
+
onSubmit = _ref2.onSubmit,
|
|
106
|
+
children = _ref2.children,
|
|
107
|
+
_ref2$reValidateMode = _ref2.reValidateMode,
|
|
108
|
+
reValidateMode = _ref2$reValidateMode === void 0 ? 'onSubmit' : _ref2$reValidateMode,
|
|
109
|
+
_ref2$mode = _ref2.mode,
|
|
110
|
+
mode = _ref2$mode === void 0 ? 'onSubmit' : _ref2$mode,
|
|
111
|
+
_ref2$shouldFocusErro = _ref2.shouldFocusError,
|
|
112
|
+
shouldFocusError = _ref2$shouldFocusErro === void 0 ? true : _ref2$shouldFocusErro,
|
|
113
|
+
_ref2$criteriaMode = _ref2.criteriaMode,
|
|
114
|
+
criteriaMode = _ref2$criteriaMode === void 0 ? 'firstError' : _ref2$criteriaMode,
|
|
115
|
+
_ref2$auto = _ref2.auto,
|
|
116
|
+
auto = _ref2$auto === void 0 ? false : _ref2$auto,
|
|
117
|
+
validatorRegistry = _ref2.validatorRegistry,
|
|
118
|
+
componentRegistry = _ref2.componentRegistry,
|
|
119
|
+
props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
|
|
120
|
+
var fieldsState = (0, _react.useRef)(fields);
|
|
121
|
+
var setFieldsState = (0, _react.useCallback)(function (newFields) {
|
|
122
|
+
fieldsState.current = newFields;
|
|
123
|
+
}, []);
|
|
124
|
+
var schema = (0, _validators.useValidationSchema)(fieldsState, validatorRegistry);
|
|
125
|
+
var registerField = (0, _react.useCallback)(function (field) {
|
|
126
|
+
setFieldsState([].concat((0, _toConsumableArray2["default"])(fieldsState.current), [field]));
|
|
127
|
+
}, []);
|
|
128
|
+
var resolver;
|
|
129
|
+
var fieldsMap;
|
|
130
|
+
var fieldsetsMap;
|
|
131
|
+
var fieldChildren;
|
|
132
|
+
|
|
133
|
+
if (schema) {
|
|
134
|
+
resolver = (0, _utils.yupResolver)(schema);
|
|
135
|
+
fieldsMap = fields ? fields.reduce(function (map, field) {
|
|
136
|
+
return (0, _extends4["default"])({}, map, (0, _defineProperty2["default"])({}, field.key, field));
|
|
137
|
+
}, {}) : {};
|
|
138
|
+
fieldsetsMap = fieldsets && fieldsets.reduce(function (map, fieldset) {
|
|
139
|
+
return (0, _extends4["default"])({}, map, (0, _defineProperty2["default"])({}, fieldset.key, fieldset));
|
|
140
|
+
}, {});
|
|
141
|
+
|
|
142
|
+
if (auto) {
|
|
143
|
+
if (fieldsets) {
|
|
144
|
+
fieldChildren = fieldsets.map(function (fieldset) {
|
|
145
|
+
return /*#__PURE__*/_react["default"].createElement(_Fieldset["default"], {
|
|
146
|
+
key: fieldset.key
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
} else if (fields) {
|
|
150
|
+
fieldChildren = fields.map(function (field) {
|
|
151
|
+
return /*#__PURE__*/_react["default"].createElement(_Field["default"], {
|
|
152
|
+
key: field.key,
|
|
153
|
+
name: field.key
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return /*#__PURE__*/_react["default"].createElement(FormBase, (0, _extends4["default"])({
|
|
161
|
+
resolver: resolver,
|
|
162
|
+
fieldsetsMap: fieldsetsMap,
|
|
163
|
+
fieldsMap: fieldsMap,
|
|
164
|
+
registerField: registerField,
|
|
165
|
+
initial: initial,
|
|
166
|
+
reValidateMode: reValidateMode,
|
|
167
|
+
mode: mode,
|
|
168
|
+
shouldFocusError: shouldFocusError,
|
|
169
|
+
criteriaMode: criteriaMode,
|
|
170
|
+
onSubmit: onSubmit,
|
|
171
|
+
componentRegistry: componentRegistry,
|
|
172
|
+
ref: ref
|
|
173
|
+
}, props), fieldChildren, children);
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
exports.FormBuilder = FormBuilder;
|
|
177
|
+
var _default = FormBuilder;
|
|
178
|
+
exports["default"] = _default;
|
package/FormContext.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FormContext = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var FormContext = /*#__PURE__*/(0, _react.createContext)({
|
|
11
|
+
fieldsMap: {},
|
|
12
|
+
fieldsetsMap: {}
|
|
13
|
+
});
|
|
14
|
+
exports.FormContext = FormContext;
|