@uncinc/uncinc-react-kitchen-sink 2.6.7 → 2.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/dist/components/Cookie/Checkbox/style.scss +25 -23
- package/dist/components/Form/Checkbox/index.js +23 -6
- package/dist/components/Form/Checkboxes/index.js +61 -11
- package/dist/components/Form/DateField/index.d.ts +3 -0
- package/dist/components/Form/DateField/index.js +50 -0
- package/dist/components/Form/DatePicker/index.js +53 -15
- package/dist/components/Form/DateSelect/index.d.ts +1 -0
- package/dist/components/Form/DateSelect/index.js +116 -89
- package/dist/components/Form/FormikWrapper/index.d.ts +6 -1
- package/dist/components/Form/FormikWrapper/index.js +34 -53
- package/dist/components/Form/Number/index.js +19 -12
- package/dist/components/Form/RadioButtons/index.js +42 -11
- package/dist/components/Form/RadioButtons/style.scss +1 -0
- package/dist/components/Form/Select/Input/index.js +33 -7
- package/dist/components/Form/Select/index.js +14 -7
- package/dist/components/Form/TextField/index.js +24 -8
- package/dist/components/Form/Textarea/index.js +38 -11
- package/dist/components/Form/index.d.ts +13 -0
- package/dist/components/Form/index.js +97 -0
- package/dist/components/Layout/Container/index.d.ts +6 -0
- package/dist/components/Layout/Container/index.js +6 -2
- package/dist/components/MediaPlayer/index.d.ts +1 -1
- package/dist/components/MediaPlayer/index.js +2 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.js +12 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +12 -3
- package/package.json +1 -1
- package/dist/components/Form/Date/index.d.ts +0 -3
- package/dist/components/Form/Date/index.js +0 -17
|
@@ -10,6 +10,7 @@ var _formik = require("formik");
|
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
11
11
|
var _GenericFormElement = _interopRequireDefault(require("../GenericFormElement"));
|
|
12
12
|
var _Input = _interopRequireDefault(require("../Select/Input"));
|
|
13
|
+
var _FormikWrapper = require("../FormikWrapper");
|
|
13
14
|
require("./style.scss");
|
|
14
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
16
|
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,21 +24,31 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
23
24
|
var DateSelect = function DateSelect(props) {
|
|
24
25
|
var title = props.title,
|
|
25
26
|
fieldName = props.fieldName,
|
|
27
|
+
validation = props.validation,
|
|
26
28
|
yearMin = props.yearMin,
|
|
27
29
|
yearMax = props.yearMax,
|
|
30
|
+
minDate = props.minDate,
|
|
31
|
+
maxDate = props.maxDate,
|
|
28
32
|
hideYear = props.hideYear,
|
|
29
33
|
fixedYear = props.fixedYear,
|
|
30
34
|
required = props.required,
|
|
31
|
-
displayRequiredIndicator = props.displayRequiredIndicator,
|
|
32
35
|
requiredError = props.requiredError,
|
|
33
36
|
notValidError = props.notValidError,
|
|
34
37
|
dayPlaceholder = props.dayPlaceholder,
|
|
35
38
|
monthPlaceholder = props.monthPlaceholder,
|
|
36
|
-
yearPlaceholder = props.yearPlaceholder
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
yearPlaceholder = props.yearPlaceholder,
|
|
40
|
+
onChange = props.onChange;
|
|
41
|
+
var _useExtendedFormikCon = (0, _FormikWrapper.useExtendedFormikContext)(),
|
|
42
|
+
setFieldValue = _useExtendedFormikCon.setFieldValue,
|
|
43
|
+
setFieldError = _useExtendedFormikCon.setFieldError,
|
|
44
|
+
isSubmitting = _useExtendedFormikCon.isSubmitting,
|
|
45
|
+
touched = _useExtendedFormikCon.touched,
|
|
46
|
+
values = _useExtendedFormikCon.values,
|
|
47
|
+
errors = _useExtendedFormikCon.errors,
|
|
48
|
+
displayRequiredIndicator = _useExtendedFormikCon.displayRequiredIndicator;
|
|
49
|
+
var isTouched = touched[fieldName];
|
|
50
|
+
var value = values[fieldName];
|
|
51
|
+
var error = errors[fieldName];
|
|
41
52
|
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
42
53
|
t = _useTranslation.t;
|
|
43
54
|
|
|
@@ -54,21 +65,9 @@ var DateSelect = function DateSelect(props) {
|
|
|
54
65
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
55
66
|
year = _useState6[0],
|
|
56
67
|
setYear = _useState6[1];
|
|
57
|
-
var _useState7 = (0, _react.useState)(),
|
|
58
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
59
|
-
showError = _useState8[0],
|
|
60
|
-
setShowError = _useState8[1];
|
|
61
|
-
var _useState9 = (0, _react.useState)(),
|
|
62
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
63
|
-
error = _useState10[0],
|
|
64
|
-
setError = _useState10[1];
|
|
65
|
-
var _useState11 = (0, _react.useState)(),
|
|
66
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
67
|
-
dateNotValid = _useState12[0],
|
|
68
|
-
setDateNotValid = _useState12[1];
|
|
69
68
|
|
|
70
69
|
// List all day options
|
|
71
|
-
var dayOptions = (0, _react.
|
|
70
|
+
var dayOptions = (0, _react.useMemo)(function (placeholder) {
|
|
72
71
|
var options = [];
|
|
73
72
|
if (placeholder) {
|
|
74
73
|
options.push({
|
|
@@ -84,9 +83,21 @@ var DateSelect = function DateSelect(props) {
|
|
|
84
83
|
}
|
|
85
84
|
return options;
|
|
86
85
|
}, []);
|
|
86
|
+
var onChangeHandler = function onChangeHandler(_ref) {
|
|
87
|
+
var changedDay = _ref.changedDay,
|
|
88
|
+
changedMonth = _ref.changedMonth,
|
|
89
|
+
changedYear = _ref.changedYear;
|
|
90
|
+
if (onChange) {
|
|
91
|
+
onChange({
|
|
92
|
+
day: changedDay || day,
|
|
93
|
+
month: changedMonth || month,
|
|
94
|
+
year: changedYear || year
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
};
|
|
87
98
|
|
|
88
99
|
// List all month options
|
|
89
|
-
var monthOptions = (0, _react.
|
|
100
|
+
var monthOptions = (0, _react.useMemo)(function () {
|
|
90
101
|
var months = [t('dateselect.months.jan', 'Januari'), t('dateselect.months.feb', 'Februari'), t('dateselect.months.mar', 'Maart'), t('dateselect.months.apr', 'April'), t('dateselect.months.may', 'Mei'), t('dateselect.months.jun', 'Juni'), t('dateselect.months.jul', 'Juli'), t('dateselect.months.aug', 'Augustus'), t('dateselect.months.sep', 'September'), t('dateselect.months.oct', 'Oktober'), t('dateselect.months.nov', 'November'), t('dateselect.months.dec', 'December')];
|
|
91
102
|
return months.map(function (e, i) {
|
|
92
103
|
return {
|
|
@@ -94,10 +105,10 @@ var DateSelect = function DateSelect(props) {
|
|
|
94
105
|
label: e
|
|
95
106
|
};
|
|
96
107
|
});
|
|
97
|
-
}, []);
|
|
108
|
+
}, [t]);
|
|
98
109
|
|
|
99
110
|
// List all options for possible years from the yearMin and yearMax variables.
|
|
100
|
-
var yearOptions = (0, _react.
|
|
111
|
+
var yearOptions = (0, _react.useMemo)(function () {
|
|
101
112
|
var options = [];
|
|
102
113
|
for (var index = yearMin; index <= yearMax; index++) {
|
|
103
114
|
options.push({
|
|
@@ -108,85 +119,100 @@ var DateSelect = function DateSelect(props) {
|
|
|
108
119
|
return options;
|
|
109
120
|
}, [yearMin, yearMax]);
|
|
110
121
|
|
|
111
|
-
// Check if all fields are filled
|
|
112
|
-
(0, _react.useEffect)(function () {
|
|
113
|
-
if (isSubmitting) {
|
|
114
|
-
if (required && !values[fieldName]) {
|
|
115
|
-
!dateNotValid && setError(requiredError);
|
|
116
|
-
setShowError(true);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}, [isSubmitting]);
|
|
120
|
-
|
|
121
122
|
// Validation and setting either an error or the FieldValue
|
|
122
123
|
(0, _react.useEffect)(function () {
|
|
123
124
|
hideYear && setYear(fixedYear || new Date().getFullYear());
|
|
124
125
|
|
|
125
126
|
// All options are filled, start validation
|
|
126
|
-
if (
|
|
127
|
+
if (required && (!day || !month || !year)) {
|
|
128
|
+
setFieldError(fieldName, requiredError);
|
|
129
|
+
} else if (day && month && year) {
|
|
127
130
|
var date = new Date("".concat(year, "-").concat(month, "-").concat(day));
|
|
128
|
-
|
|
129
|
-
// Take note of the exclamation mark
|
|
130
|
-
date.getDate() === day && date.getMonth() + 1 === month && date.getFullYear() === year)) {
|
|
131
|
-
// Depending on your browser, an invalid date overflows to the next month.
|
|
132
|
-
// For example, the 30th of Februari can become the 2nd of March.
|
|
133
|
-
// If that is the case, you still get a valid Date object, but it's not what
|
|
134
|
-
// the user filled in.
|
|
135
|
-
setError(notValidError);
|
|
136
|
-
setShowError(true);
|
|
137
|
-
setDateNotValid(true);
|
|
138
|
-
setFieldValue('dateSelect', '');
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// The Date is valid, so we hide previous errors and set the FieldValue
|
|
143
|
-
setShowError(false);
|
|
144
|
-
setDateNotValid(false);
|
|
145
|
-
setFieldValue('dateSelect', date);
|
|
146
|
-
return;
|
|
131
|
+
setFieldValue(fieldName, date);
|
|
147
132
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
133
|
+
}, [isSubmitting, day, month, year]);
|
|
134
|
+
var handleValidation = function handleValidation(value) {
|
|
135
|
+
if (validation && typeof validation === 'function') {
|
|
136
|
+
return validation(value);
|
|
137
|
+
}
|
|
138
|
+
if (required && (!day || !month || !year)) {
|
|
139
|
+
return requiredError || t(['webform.components.date_select.required', 'webform.required', 'webform_required']);
|
|
140
|
+
}
|
|
141
|
+
var date = new Date("".concat(year, "-").concat(month, "-").concat(day));
|
|
142
|
+
if (!(
|
|
143
|
+
// Take note of the exclamation mark
|
|
144
|
+
date.getDate() === day && date.getMonth() + 1 === month && date.getFullYear() === year)) {
|
|
145
|
+
// Depending on your browser, an invalid date overflows to the next month.
|
|
146
|
+
// For example, the 30th of Februari can become the 2nd of March.
|
|
147
|
+
// If that is the case, you still get a valid Date object, but it's not what
|
|
148
|
+
// the user filled in.
|
|
149
|
+
return notValidError || t(['webform.components.date_select.invalid', 'webform.invalid', 'webform_invalid']);
|
|
150
|
+
}
|
|
151
|
+
var isoDate = date.toISOString().split('T')[0];
|
|
152
|
+
if (minDate && date.getTime() < new Date(minDate).getTime()) {
|
|
153
|
+
return t(['webform.components.date_select.min', 'webform.min', 'webform_min'], {
|
|
154
|
+
date: isoDate,
|
|
155
|
+
minDate: minDate
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (maxDate && date.getTime() > new Date(maxDate).getTime()) {
|
|
159
|
+
return t(['webform.components.date_select.max', 'webform.max', 'webform_max'], {
|
|
160
|
+
date: isoDate,
|
|
161
|
+
maxDate: maxDate
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
};
|
|
156
165
|
return /*#__PURE__*/_react.default.createElement(_GenericFormElement.default, {
|
|
157
166
|
className: "DateSelect",
|
|
158
167
|
title: title,
|
|
159
168
|
required: required,
|
|
160
169
|
displayRequiredIndicator: displayRequiredIndicator,
|
|
161
170
|
error: error,
|
|
162
|
-
touched:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
171
|
+
touched: isTouched,
|
|
172
|
+
fieldName: fieldName
|
|
173
|
+
}, /*#__PURE__*/_react.default.createElement(_formik.Field, {
|
|
174
|
+
id: fieldName,
|
|
175
|
+
name: fieldName,
|
|
176
|
+
validate: handleValidation,
|
|
177
|
+
value: value
|
|
178
|
+
}, function () {
|
|
179
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
180
|
+
id: "".concat(fieldName, "day"),
|
|
181
|
+
fieldName: "".concat(fieldName, "day"),
|
|
182
|
+
options: dayOptions,
|
|
183
|
+
value: day,
|
|
184
|
+
placeholder: dayPlaceholder,
|
|
185
|
+
onChange: function onChange(day) {
|
|
186
|
+
setDay(day);
|
|
187
|
+
onChangeHandler({
|
|
188
|
+
changedDay: day
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}), /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
192
|
+
id: "".concat(fieldName, "month"),
|
|
193
|
+
fieldName: "".concat(fieldName, "month"),
|
|
194
|
+
options: monthOptions,
|
|
195
|
+
value: month,
|
|
196
|
+
placeholder: monthPlaceholder,
|
|
197
|
+
onChange: function onChange(month) {
|
|
198
|
+
setMonth(month);
|
|
199
|
+
onChangeHandler({
|
|
200
|
+
changedMonth: month
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}), !hideYear && /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
204
|
+
id: "".concat(fieldName, "year"),
|
|
205
|
+
fieldName: "".concat(fieldName, "year"),
|
|
206
|
+
options: yearOptions,
|
|
207
|
+
value: year,
|
|
208
|
+
placeholder: yearPlaceholder,
|
|
209
|
+
onChange: function onChange(year) {
|
|
210
|
+
setYear(year);
|
|
211
|
+
onChangeHandler({
|
|
212
|
+
changedYear: year
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}));
|
|
190
216
|
}));
|
|
191
217
|
};
|
|
192
218
|
DateSelect.defaultProps = {
|
|
@@ -199,7 +225,8 @@ DateSelect.defaultProps = {
|
|
|
199
225
|
notValidError: 'Ongeldige datum',
|
|
200
226
|
dayPlaceholder: 'Dag',
|
|
201
227
|
monthPlaceholder: 'Maand',
|
|
202
|
-
yearPlaceholder: 'Jaar'
|
|
228
|
+
yearPlaceholder: 'Jaar',
|
|
229
|
+
validation: undefined
|
|
203
230
|
};
|
|
204
231
|
var _default = DateSelect;
|
|
205
232
|
exports.default = _default;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export function useExtendedFormikContext(): any;
|
|
2
|
+
export function FormikExtendedContextProvider({ children, ...props }: {
|
|
3
|
+
[x: string]: any;
|
|
4
|
+
children: any;
|
|
5
|
+
}): React.JSX.Element;
|
|
1
6
|
export default FormikWrapper;
|
|
2
|
-
declare function FormikWrapper(props: any): React.JSX.Element;
|
|
3
7
|
import React from 'react';
|
|
8
|
+
declare function FormikWrapper(props: any): React.JSX.Element;
|
|
@@ -1,74 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
exports.useExtendedFormikContext = exports.default = exports.FormikExtendedContextProvider = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
9
|
var _formik = require("formik");
|
|
9
|
-
var _excluded = ["
|
|
10
|
-
|
|
11
|
-
function
|
|
10
|
+
var _excluded = ["children"],
|
|
11
|
+
_excluded2 = ["initialValues", "onSubmit", "validate", "validateOnChange", "validateOnBlur", "validateOnMount", "onReset", "children", "displayRequiredIndicator"];
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
12
14
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
13
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
14
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
15
15
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
17
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
18
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
19
19
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
var fieldProps = {
|
|
32
|
-
touched: childProps.touched[fieldName],
|
|
33
|
-
error: childProps.errors[fieldName],
|
|
34
|
-
value: childProps.values[fieldName],
|
|
35
|
-
displayRequiredIndicator: displayRequiredIndicator
|
|
36
|
-
};
|
|
37
|
-
return /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({}, child.props), fieldProps), _react.default.Children.map(children, function (subchild) {
|
|
38
|
-
// Happens when we conditionally render elements.
|
|
39
|
-
if (!subchild) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
20
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
21
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
22
|
+
var CustomFormikContext = /*#__PURE__*/(0, _react.createContext)();
|
|
23
|
+
var useExtendedFormikContext = function useExtendedFormikContext() {
|
|
24
|
+
return (0, _react.useContext)(CustomFormikContext);
|
|
25
|
+
};
|
|
26
|
+
exports.useExtendedFormikContext = useExtendedFormikContext;
|
|
27
|
+
var FormikExtendedContextProvider = function FormikExtendedContextProvider(_ref) {
|
|
28
|
+
var children = _ref.children,
|
|
29
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
30
|
+
var formikContext = (0, _formik.useFormikContext)();
|
|
42
31
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
touched: childProps.touched[fieldName],
|
|
52
|
-
error: childProps.errors[fieldName],
|
|
53
|
-
value: childProps.values[fieldName],
|
|
54
|
-
displayRequiredIndicator: displayRequiredIndicator
|
|
55
|
-
};
|
|
56
|
-
if (children) {
|
|
57
|
-
return renderChildrenRecursively(subchild, _objectSpread({}, childProps), displayRequiredIndicator);
|
|
58
|
-
}
|
|
59
|
-
return /*#__PURE__*/_react.default.cloneElement(subchild, _objectSpread(_objectSpread({}, childProps), fieldProps), null);
|
|
60
|
-
}));
|
|
32
|
+
// We want to supply the elements with extra properties,
|
|
33
|
+
// so we extend the default FormikContext here with our own.
|
|
34
|
+
var value = (0, _react.useMemo)(function () {
|
|
35
|
+
return _objectSpread(_objectSpread({}, formikContext), props);
|
|
36
|
+
}, [formikContext, props]);
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement(CustomFormikContext.Provider, {
|
|
38
|
+
value: value
|
|
39
|
+
}, /*#__PURE__*/_react.default.createElement(_formik.Form, null, children));
|
|
61
40
|
};
|
|
41
|
+
exports.FormikExtendedContextProvider = FormikExtendedContextProvider;
|
|
62
42
|
var FormikWrapper = function FormikWrapper(props) {
|
|
63
43
|
var initialValues = props.initialValues,
|
|
64
44
|
onSubmit = props.onSubmit,
|
|
65
|
-
displayRequiredIndicator = props.displayRequiredIndicator,
|
|
66
45
|
validate = props.validate,
|
|
67
46
|
validateOnChange = props.validateOnChange,
|
|
68
47
|
validateOnBlur = props.validateOnBlur,
|
|
69
48
|
validateOnMount = props.validateOnMount,
|
|
70
49
|
onReset = props.onReset,
|
|
71
|
-
|
|
50
|
+
children = props.children,
|
|
51
|
+
displayRequiredIndicator = props.displayRequiredIndicator,
|
|
52
|
+
restProps = _objectWithoutProperties(props, _excluded2);
|
|
72
53
|
return /*#__PURE__*/_react.default.createElement(_formik.Formik, _extends({
|
|
73
54
|
initialValues: initialValues || {},
|
|
74
55
|
onSubmit: onSubmit,
|
|
@@ -77,10 +58,10 @@ var FormikWrapper = function FormikWrapper(props) {
|
|
|
77
58
|
validateOnBlur: validateOnBlur,
|
|
78
59
|
validateOnMount: validateOnMount,
|
|
79
60
|
onReset: onReset
|
|
80
|
-
}, restProps), function (
|
|
81
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
82
|
-
|
|
83
|
-
})
|
|
61
|
+
}, restProps), function () {
|
|
62
|
+
return /*#__PURE__*/_react.default.createElement(FormikExtendedContextProvider, {
|
|
63
|
+
displayRequiredIndicator: displayRequiredIndicator
|
|
64
|
+
}, children);
|
|
84
65
|
});
|
|
85
66
|
};
|
|
86
67
|
var _default = FormikWrapper;
|
|
@@ -7,39 +7,46 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactI18next = require("react-i18next");
|
|
9
9
|
var _TextField = _interopRequireDefault(require("../TextField"));
|
|
10
|
+
var _excluded = ["min", "max", "step", "required", "requiredError", "validation"];
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
12
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
13
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
14
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
12
15
|
var Number = function Number(props) {
|
|
13
|
-
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
14
|
-
t = _useTranslation.t;
|
|
15
16
|
var min = props.min,
|
|
16
17
|
max = props.max,
|
|
17
18
|
step = props.step,
|
|
18
19
|
required = props.required,
|
|
19
|
-
requiredError = props.requiredError
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
requiredError = props.requiredError,
|
|
21
|
+
validation = props.validation,
|
|
22
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
23
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
24
|
+
t = _useTranslation.t;
|
|
25
|
+
var handleValidation = function handleValidation(value) {
|
|
22
26
|
if (required && !value) {
|
|
23
|
-
|
|
27
|
+
return requiredError || t(['webform.number.required', 'webform.required', 'webform_required']);
|
|
24
28
|
}
|
|
25
29
|
if (min && parseInt(value) < min) {
|
|
26
|
-
|
|
30
|
+
return t(['webform.number.min', 'webform.min', 'webform_min'], {
|
|
27
31
|
min: min
|
|
28
32
|
});
|
|
29
33
|
}
|
|
30
34
|
if (max && parseInt(value) > max) {
|
|
31
|
-
|
|
35
|
+
return t(['webform.number.max', 'webform.max', 'webform_max'], {
|
|
32
36
|
max: max
|
|
33
37
|
});
|
|
34
38
|
}
|
|
35
|
-
|
|
39
|
+
if (validation) {
|
|
40
|
+
return validation(value);
|
|
41
|
+
}
|
|
36
42
|
};
|
|
37
|
-
return /*#__PURE__*/_react.default.createElement(_TextField.default, _extends({},
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_TextField.default, _extends({}, restProps, {
|
|
38
44
|
type: "number",
|
|
39
|
-
validation:
|
|
45
|
+
validation: handleValidation,
|
|
40
46
|
min: min,
|
|
41
47
|
max: max,
|
|
42
|
-
step: step
|
|
48
|
+
step: step,
|
|
49
|
+
required: required
|
|
43
50
|
}));
|
|
44
51
|
};
|
|
45
52
|
var _default = Number;
|
|
@@ -7,13 +7,16 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _formik = require("formik");
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _reactI18next = require("react-i18next");
|
|
10
11
|
var _GenericFormElement = _interopRequireDefault(require("../GenericFormElement"));
|
|
12
|
+
var _FormikWrapper = require("../FormikWrapper");
|
|
11
13
|
require("./style.scss");
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
15
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
14
16
|
var Radio = function Radio(props) {
|
|
15
17
|
var className = props.className,
|
|
16
|
-
disabled = props.disabled
|
|
18
|
+
disabled = props.disabled,
|
|
19
|
+
_onChange = props.onChange;
|
|
17
20
|
return /*#__PURE__*/_react.default.createElement(_formik.Field, {
|
|
18
21
|
name: props.name,
|
|
19
22
|
validate: props.validate
|
|
@@ -24,6 +27,7 @@ var Radio = function Radio(props) {
|
|
|
24
27
|
var classes = (0, _classnames.default)('WebformRadios__radio__input', {
|
|
25
28
|
'icon-before': true,
|
|
26
29
|
'icon-radio': true,
|
|
30
|
+
'icon-variant-0': !(field.value && field.value === props.value),
|
|
27
31
|
'icon-variant-1': field.value && field.value === props.value
|
|
28
32
|
});
|
|
29
33
|
if (props.value === '__other__') {
|
|
@@ -38,7 +42,13 @@ var Radio = function Radio(props) {
|
|
|
38
42
|
id: name,
|
|
39
43
|
value: props.value,
|
|
40
44
|
disabled: disabled,
|
|
41
|
-
className: className
|
|
45
|
+
className: className,
|
|
46
|
+
onChange: function onChange(event) {
|
|
47
|
+
if (_onChange) {
|
|
48
|
+
_onChange(props.value);
|
|
49
|
+
}
|
|
50
|
+
field.onChange(event);
|
|
51
|
+
}
|
|
42
52
|
})), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("span", null, props.otherLabel ? props.otherLabel : props.label), props.description && /*#__PURE__*/_react.default.createElement("span", null, props.description)), /*#__PURE__*/_react.default.createElement("textarea", {
|
|
43
53
|
placeholder: props.otherPlaceholder,
|
|
44
54
|
className: inputClasses,
|
|
@@ -55,7 +65,13 @@ var Radio = function Radio(props) {
|
|
|
55
65
|
id: name,
|
|
56
66
|
value: props.value,
|
|
57
67
|
disabled: disabled,
|
|
58
|
-
className: className
|
|
68
|
+
className: className,
|
|
69
|
+
onChange: function onChange(event) {
|
|
70
|
+
if (_onChange) {
|
|
71
|
+
_onChange(props.value);
|
|
72
|
+
}
|
|
73
|
+
field.onChange(event);
|
|
74
|
+
}
|
|
59
75
|
})), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("span", null, props.label), props.description && /*#__PURE__*/_react.default.createElement("span", null, props.description)));
|
|
60
76
|
});
|
|
61
77
|
};
|
|
@@ -66,29 +82,43 @@ var RadioButtons = function RadioButtons(props) {
|
|
|
66
82
|
placeholder = props.placeholder,
|
|
67
83
|
fieldName = props.fieldName,
|
|
68
84
|
validation = props.validation,
|
|
69
|
-
touched = props.touched,
|
|
70
|
-
error = props.error,
|
|
71
85
|
type = props.type,
|
|
72
86
|
options = props.options,
|
|
73
87
|
_props$descriptions = props.descriptions,
|
|
74
88
|
descriptions = _props$descriptions === void 0 ? {} : _props$descriptions,
|
|
75
|
-
displayRequiredIndicator = props.displayRequiredIndicator,
|
|
76
89
|
className = props.className,
|
|
77
90
|
wrapperClassName = props.wrapperClassName,
|
|
78
91
|
_props$disabled = props.disabled,
|
|
79
92
|
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
80
93
|
otherLabel = props.otherLabel,
|
|
81
|
-
otherPlaceholder = props.otherPlaceholder
|
|
94
|
+
otherPlaceholder = props.otherPlaceholder,
|
|
95
|
+
onChange = props.onChange;
|
|
96
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
97
|
+
t = _useTranslation.t;
|
|
98
|
+
var _useExtendedFormikCon = (0, _FormikWrapper.useExtendedFormikContext)(),
|
|
99
|
+
errors = _useExtendedFormikCon.errors,
|
|
100
|
+
touched = _useExtendedFormikCon.touched,
|
|
101
|
+
displayRequiredIndicator = _useExtendedFormikCon.displayRequiredIndicator;
|
|
102
|
+
var isTouched = touched[fieldName];
|
|
103
|
+
var error = errors[fieldName];
|
|
104
|
+
var handleValidation = function handleValidation(value) {
|
|
105
|
+
if (validation) {
|
|
106
|
+
return validation(value);
|
|
107
|
+
}
|
|
108
|
+
if (required && !value) {
|
|
109
|
+
return t(['webform.components.radio_buttons.required', 'webform.required', 'webform_required']);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
82
112
|
return /*#__PURE__*/_react.default.createElement(_GenericFormElement.default, {
|
|
83
113
|
className: (0, _classnames.default)('RadioButtons', wrapperClassName),
|
|
84
114
|
title: title,
|
|
85
115
|
required: required,
|
|
86
116
|
description: description,
|
|
87
117
|
fieldName: fieldName,
|
|
88
|
-
touched:
|
|
118
|
+
touched: isTouched,
|
|
89
119
|
error: error,
|
|
90
120
|
displayRequiredIndicator: displayRequiredIndicator
|
|
91
|
-
}, Object.keys(options).map(function (value
|
|
121
|
+
}, Object.keys(options).map(function (value) {
|
|
92
122
|
var label = options[value];
|
|
93
123
|
var description = descriptions[value] || null;
|
|
94
124
|
return /*#__PURE__*/_react.default.createElement(Radio, {
|
|
@@ -102,10 +132,11 @@ var RadioButtons = function RadioButtons(props) {
|
|
|
102
132
|
type: type || 'text',
|
|
103
133
|
value: value,
|
|
104
134
|
placeholder: placeholder,
|
|
105
|
-
validate:
|
|
135
|
+
validate: handleValidation,
|
|
106
136
|
otherLabel: otherLabel,
|
|
107
137
|
otherPlaceholder: otherPlaceholder,
|
|
108
|
-
disabled: disabled
|
|
138
|
+
disabled: disabled,
|
|
139
|
+
onChange: onChange
|
|
109
140
|
});
|
|
110
141
|
}));
|
|
111
142
|
};
|