@bigbinary/neeto-form-frontend 3.3.2 → 3.4.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/app/javascript/src/translations/en.json +3 -3
- package/dist/BuildForm.js +2358 -0
- package/dist/BuildForm.js.map +1 -0
- package/dist/ExternalForm.js +657 -0
- package/dist/ExternalForm.js.map +1 -0
- package/dist/NeetoFormProvider.js +11 -0
- package/dist/NeetoFormProvider.js.map +1 -0
- package/dist/Submission.js +2700 -0
- package/dist/Submission.js.map +1 -0
- package/dist/UrlBuilder.js +297 -0
- package/dist/UrlBuilder.js.map +1 -0
- package/dist/buildForm-4a5a5251.js +35 -0
- package/dist/buildForm-4a5a5251.js.map +1 -0
- package/dist/buildForm-77b32f08.js +42 -0
- package/dist/buildForm-77b32f08.js.map +1 -0
- package/dist/cjs/BuildForm.js +2416 -0
- package/dist/cjs/BuildForm.js.map +1 -0
- package/dist/cjs/ExternalForm.js +697 -0
- package/dist/cjs/ExternalForm.js.map +1 -0
- package/dist/cjs/NeetoFormProvider.js +13 -0
- package/dist/cjs/NeetoFormProvider.js.map +1 -0
- package/dist/cjs/Submission.js +2711 -0
- package/dist/cjs/Submission.js.map +1 -0
- package/dist/cjs/UrlBuilder.js +308 -0
- package/dist/cjs/UrlBuilder.js.map +1 -0
- package/dist/cjs/hooks.js +34 -0
- package/dist/cjs/hooks.js.map +1 -0
- package/dist/cjs/index.js +115 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/constants-9310a7c2.js +342 -0
- package/dist/constants-9310a7c2.js.map +1 -0
- package/dist/constants-f0f38e6f.js +378 -0
- package/dist/constants-f0f38e6f.js.map +1 -0
- package/dist/hooks.js +20 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index-2664c3e7.js +39 -0
- package/dist/index-2664c3e7.js.map +1 -0
- package/dist/index-b6bb805c.js +46 -0
- package/dist/index-b6bb805c.js.map +1 -0
- package/dist/index.js +94 -9325
- package/dist/index.js.map +1 -1
- package/dist/main.css +12 -1
- package/dist/main.css.map +1 -1
- package/dist/no-questions-832318c3.js +487 -0
- package/dist/no-questions-832318c3.js.map +1 -0
- package/dist/no-questions-995fd77e.js +538 -0
- package/dist/no-questions-995fd77e.js.map +1 -0
- package/dist/useFormApi-ca36173e.js +492 -0
- package/dist/useFormApi-ca36173e.js.map +1 -0
- package/dist/useFormApi-d733cb8d.js +467 -0
- package/dist/useFormApi-d733cb8d.js.map +1 -0
- package/dist/useFormSubmission-866195bb.js +24 -0
- package/dist/useFormSubmission-866195bb.js.map +1 -0
- package/dist/useFormSubmission-f8866b84.js +22 -0
- package/dist/useFormSubmission-f8866b84.js.map +1 -0
- package/dist/utils-7000103c.js +2157 -0
- package/dist/utils-7000103c.js.map +1 -0
- package/dist/utils-a487b8ff.js +2221 -0
- package/dist/utils-a487b8ff.js.map +1 -0
- package/package.json +19 -7
- package/dist/index.cjs.js +0 -9424
- package/dist/index.cjs.js.map +0 -1
|
@@ -0,0 +1,2221 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var formik = require('formik');
|
|
5
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
+
var index = require('./index-b6bb805c.js');
|
|
7
|
+
var dayjs = require('dayjs');
|
|
8
|
+
var libphonenumberJs = require('libphonenumber-js');
|
|
9
|
+
var ramda = require('ramda');
|
|
10
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
11
|
+
var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
|
|
12
|
+
var noQuestions = require('./no-questions-995fd77e.js');
|
|
13
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
14
|
+
var Button = require('@bigbinary/neetoui/Button');
|
|
15
|
+
var NeetoUIMultiEmailInput = require('@bigbinary/neetoui/MultiEmailInput');
|
|
16
|
+
var reactI18next = require('react-i18next');
|
|
17
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
18
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
19
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
20
|
+
var utils = require('@bigbinary/neeto-editor/utils');
|
|
21
|
+
var PhoneNumber = require('@bigbinary/neeto-molecules/PhoneNumber');
|
|
22
|
+
var yup = require('yup');
|
|
23
|
+
var i18next = require('i18next');
|
|
24
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
25
|
+
var constants = require('./constants-f0f38e6f.js');
|
|
26
|
+
var classnames = require('classnames');
|
|
27
|
+
var path = require('path');
|
|
28
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
29
|
+
var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
|
|
30
|
+
var Refresh = require('@bigbinary/neeto-icons/Refresh');
|
|
31
|
+
var Input = require('@bigbinary/neetoui/Input');
|
|
32
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
33
|
+
var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
|
|
34
|
+
var ReCAPTCHA = require('react-google-recaptcha');
|
|
35
|
+
var Checkbox = require('@bigbinary/neetoui/Checkbox');
|
|
36
|
+
var localeData = require('dayjs/plugin/localeData');
|
|
37
|
+
var utc = require('dayjs/plugin/utc');
|
|
38
|
+
var weekday = require('dayjs/plugin/weekday');
|
|
39
|
+
var weekOfYear = require('dayjs/plugin/weekOfYear');
|
|
40
|
+
var DatePicker = require('@bigbinary/neetoui/DatePicker');
|
|
41
|
+
var Label = require('@bigbinary/neetoui/Label');
|
|
42
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
43
|
+
var activestorage = require('@rails/activestorage');
|
|
44
|
+
var reactDropzone = require('react-dropzone');
|
|
45
|
+
var useFormApi = require('./useFormApi-ca36173e.js');
|
|
46
|
+
var FileGeneric = require('@bigbinary/neeto-icons/FileGeneric');
|
|
47
|
+
var Check = require('@bigbinary/neeto-icons/Check');
|
|
48
|
+
var Close = require('@bigbinary/neeto-icons/Close');
|
|
49
|
+
var framerMotion = require('framer-motion');
|
|
50
|
+
var Select = require('@bigbinary/neetoui/Select');
|
|
51
|
+
var Radio = require('@bigbinary/neetoui/Radio');
|
|
52
|
+
var NeetoEditor = require('@bigbinary/neeto-editor/Editor');
|
|
53
|
+
var Textarea = require('@bigbinary/neetoui/Textarea');
|
|
54
|
+
|
|
55
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
56
|
+
|
|
57
|
+
function _interopNamespace(e) {
|
|
58
|
+
if (e && e.__esModule) return e;
|
|
59
|
+
var n = Object.create(null);
|
|
60
|
+
if (e) {
|
|
61
|
+
Object.keys(e).forEach(function (k) {
|
|
62
|
+
if (k !== 'default') {
|
|
63
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
64
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
get: function () { return e[k]; }
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
n["default"] = e;
|
|
72
|
+
return Object.freeze(n);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
76
|
+
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
77
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
78
|
+
var EditorContent__default = /*#__PURE__*/_interopDefaultLegacy(EditorContent);
|
|
79
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
80
|
+
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
81
|
+
var NeetoUIMultiEmailInput__default = /*#__PURE__*/_interopDefaultLegacy(NeetoUIMultiEmailInput);
|
|
82
|
+
var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
|
|
83
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
84
|
+
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
85
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
86
|
+
var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
|
|
87
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
88
|
+
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
89
|
+
var Refresh__default = /*#__PURE__*/_interopDefaultLegacy(Refresh);
|
|
90
|
+
var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
|
|
91
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
92
|
+
var ReCAPTCHA__default = /*#__PURE__*/_interopDefaultLegacy(ReCAPTCHA);
|
|
93
|
+
var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
|
|
94
|
+
var localeData__default = /*#__PURE__*/_interopDefaultLegacy(localeData);
|
|
95
|
+
var utc__default = /*#__PURE__*/_interopDefaultLegacy(utc);
|
|
96
|
+
var weekday__default = /*#__PURE__*/_interopDefaultLegacy(weekday);
|
|
97
|
+
var weekOfYear__default = /*#__PURE__*/_interopDefaultLegacy(weekOfYear);
|
|
98
|
+
var DatePicker__default = /*#__PURE__*/_interopDefaultLegacy(DatePicker);
|
|
99
|
+
var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
|
|
100
|
+
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
101
|
+
var FileGeneric__default = /*#__PURE__*/_interopDefaultLegacy(FileGeneric);
|
|
102
|
+
var Check__default = /*#__PURE__*/_interopDefaultLegacy(Check);
|
|
103
|
+
var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
|
|
104
|
+
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
|
105
|
+
var Radio__default = /*#__PURE__*/_interopDefaultLegacy(Radio);
|
|
106
|
+
var NeetoEditor__default = /*#__PURE__*/_interopDefaultLegacy(NeetoEditor);
|
|
107
|
+
var Textarea__default = /*#__PURE__*/_interopDefaultLegacy(Textarea);
|
|
108
|
+
|
|
109
|
+
var clientI18nInstance = i18next__default["default"].cloneInstance();
|
|
110
|
+
|
|
111
|
+
var clearLocalStorageValues = function clearLocalStorageValues(key) {
|
|
112
|
+
try {
|
|
113
|
+
localStorage.removeItem(key);
|
|
114
|
+
} catch (error) {
|
|
115
|
+
// eslint-disable-next-line no-console
|
|
116
|
+
console.error(error);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var setWithExpiry = function setWithExpiry(key, value) {
|
|
120
|
+
var expireInDays = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
121
|
+
var expiryDate = dayjs__default["default"]().add(expireInDays, "day").toDate();
|
|
122
|
+
var item = {
|
|
123
|
+
value: value,
|
|
124
|
+
localStorageExpiry: expiryDate.getTime()
|
|
125
|
+
};
|
|
126
|
+
try {
|
|
127
|
+
localStorage.setItem(key, JSON.stringify(item));
|
|
128
|
+
} catch (error) {
|
|
129
|
+
// eslint-disable-next-line no-console
|
|
130
|
+
console.error(error);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
var getWithExpiry = function getWithExpiry(key) {
|
|
134
|
+
try {
|
|
135
|
+
var itemStr = localStorage.getItem(key);
|
|
136
|
+
if (!itemStr) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
var item = JSON.parse(itemStr);
|
|
140
|
+
var now = new Date();
|
|
141
|
+
if (now.getTime() > item.localStorageExpiry) {
|
|
142
|
+
localStorage.removeItem(key);
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
return item.value;
|
|
146
|
+
} catch (error) {
|
|
147
|
+
// eslint-disable-next-line no-console
|
|
148
|
+
console.error(error);
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
var FormikWrap = function FormikWrap(_ref) {
|
|
154
|
+
var onError = _ref.onError,
|
|
155
|
+
children = _ref.children,
|
|
156
|
+
formId = _ref.formId,
|
|
157
|
+
preserveValues = _ref.preserveValues,
|
|
158
|
+
onValuesChange = _ref.onValuesChange,
|
|
159
|
+
dataUpdateCount = _ref.dataUpdateCount;
|
|
160
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
161
|
+
errors = _useFormikContext.errors,
|
|
162
|
+
touched = _useFormikContext.touched,
|
|
163
|
+
isValid = _useFormikContext.isValid,
|
|
164
|
+
isSubmitting = _useFormikContext.isSubmitting,
|
|
165
|
+
values = _useFormikContext.values,
|
|
166
|
+
validateForm = _useFormikContext.validateForm;
|
|
167
|
+
var revalidate = function revalidate() {
|
|
168
|
+
return neetoCist.isPresent(errors) && validateForm();
|
|
169
|
+
};
|
|
170
|
+
React.useEffect(function () {
|
|
171
|
+
revalidate();
|
|
172
|
+
}, [clientI18nInstance.language, dataUpdateCount]);
|
|
173
|
+
var syncValuesWithLocalStorage = function syncValuesWithLocalStorage() {
|
|
174
|
+
return preserveValues && !index.isEmptyValues(values) && setWithExpiry("".concat(formId, "/values"), values);
|
|
175
|
+
};
|
|
176
|
+
React.useEffect(function () {
|
|
177
|
+
syncValuesWithLocalStorage();
|
|
178
|
+
onValuesChange && onValuesChange(values);
|
|
179
|
+
}, [values, formId, preserveValues]);
|
|
180
|
+
React.useEffect(function () {
|
|
181
|
+
if (isSubmitting || isValid) return;
|
|
182
|
+
|
|
183
|
+
// include only touched fields
|
|
184
|
+
var touchedErrors = Object.keys(errors).filter(function (key) {
|
|
185
|
+
return touched[key];
|
|
186
|
+
}).reduce(function (obj, key) {
|
|
187
|
+
obj[key] = errors[key];
|
|
188
|
+
return obj;
|
|
189
|
+
}, {});
|
|
190
|
+
if (index.isFunction(onError)) onError(touchedErrors);
|
|
191
|
+
}, [isValid, isSubmitting]);
|
|
192
|
+
return children;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
var t$2 = clientI18nInstance.t;
|
|
196
|
+
var getInvalidFieldError = function getInvalidFieldError(label) {
|
|
197
|
+
return t$2("neetoForm.error.invalidField", {
|
|
198
|
+
label: label
|
|
199
|
+
});
|
|
200
|
+
};
|
|
201
|
+
var getRequiredFieldError = function getRequiredFieldError(label) {
|
|
202
|
+
return t$2("neetoForm.error.requiredField", {
|
|
203
|
+
label: label
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
var getSelectMinError = function getSelectMinError(min) {
|
|
207
|
+
var entity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : t$2("neetoForm.common.option");
|
|
208
|
+
return t$2("neetoForm.error.selectMin", {
|
|
209
|
+
min: min,
|
|
210
|
+
entity: entity
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
var getInvalidTypeError = function getInvalidTypeError(label, type) {
|
|
214
|
+
return t$2("neetoForm.error.invalidType", {
|
|
215
|
+
label: label,
|
|
216
|
+
type: type
|
|
217
|
+
});
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
var _excluded$4 = ["kind", "customValidator"];
|
|
221
|
+
var _fieldKindValidatorMa;
|
|
222
|
+
function ownKeys$g(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
223
|
+
function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
224
|
+
var t$1 = clientI18nInstance.t;
|
|
225
|
+
yup__namespace.addMethod(yup__namespace.array, "unique", function () {
|
|
226
|
+
var field, message;
|
|
227
|
+
if (arguments.length > 1) {
|
|
228
|
+
field = arguments[0];
|
|
229
|
+
message = arguments[1];
|
|
230
|
+
} else {
|
|
231
|
+
message = arguments[0];
|
|
232
|
+
}
|
|
233
|
+
var getValue = function getValue(item) {
|
|
234
|
+
return field ? item[field] : item;
|
|
235
|
+
};
|
|
236
|
+
var valueInLowerCase = ramda.pipe(getValue, ramda.toLower);
|
|
237
|
+
return this.test("unique", message, function () {
|
|
238
|
+
var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
239
|
+
// ignore destroyed items in the array
|
|
240
|
+
var validItems = ramda.reject(ramda.prop("_destroy"), array);
|
|
241
|
+
var uniqueItems = new Set(ramda.map(valueInLowerCase, validItems));
|
|
242
|
+
|
|
243
|
+
// all items are unique
|
|
244
|
+
if (validItems.length === uniqueItems.size) return true;
|
|
245
|
+
return this.createError({
|
|
246
|
+
path: this.path,
|
|
247
|
+
message: message
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
var isValidDate = function isValidDate(date) {
|
|
252
|
+
return date && dayjs__default["default"](date).isValid();
|
|
253
|
+
};
|
|
254
|
+
var extractEmailDomain = function extractEmailDomain(email) {
|
|
255
|
+
return email === null || email === void 0 ? void 0 : email.split("@")[1];
|
|
256
|
+
};
|
|
257
|
+
var isEmailFromRestrictedDomain = function isEmailFromRestrictedDomain(email, restrictedDomains) {
|
|
258
|
+
var domain = extractEmailDomain(email);
|
|
259
|
+
return ramda.includes(domain, restrictedDomains);
|
|
260
|
+
};
|
|
261
|
+
var validateTextField = function validateTextField(_ref) {
|
|
262
|
+
var kind = _ref.kind,
|
|
263
|
+
label = _ref.label,
|
|
264
|
+
isRequired = _ref.isRequired;
|
|
265
|
+
var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string"));
|
|
266
|
+
if (kind === constants.QUESTION_KIND.PHONE.value) {
|
|
267
|
+
schema = PhoneNumber.validation(getInvalidFieldError(t$1("neetoForm.common.phoneNumberValidation")));
|
|
268
|
+
}
|
|
269
|
+
if (isRequired) schema = schema.trim().required(getRequiredFieldError(label));
|
|
270
|
+
return schema.trim();
|
|
271
|
+
};
|
|
272
|
+
var validateEmailField = function validateEmailField(_ref2) {
|
|
273
|
+
var label = _ref2.label,
|
|
274
|
+
isRequired = _ref2.isRequired,
|
|
275
|
+
restrictedDomains = _ref2.restrictedDomains;
|
|
276
|
+
var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string")).email(getInvalidFieldError("Email")).test("verify domain", function (_ref3) {
|
|
277
|
+
var value = _ref3.value;
|
|
278
|
+
return t$1("neetoForm.error.emailFromRestrictedDomain", {
|
|
279
|
+
domain: extractEmailDomain(value)
|
|
280
|
+
});
|
|
281
|
+
}, function (value) {
|
|
282
|
+
return neetoCist.isNotPresent(value) || !isEmailFromRestrictedDomain(value, restrictedDomains);
|
|
283
|
+
});
|
|
284
|
+
if (isRequired) schema = schema.trim().required(getRequiredFieldError(label));
|
|
285
|
+
return schema.trim();
|
|
286
|
+
};
|
|
287
|
+
var validateNameField = function validateNameField(_ref4) {
|
|
288
|
+
var label = _ref4.label,
|
|
289
|
+
isRequired = _ref4.isRequired;
|
|
290
|
+
var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string"));
|
|
291
|
+
if (isRequired) schema = schema.trim().required(getRequiredFieldError(label));
|
|
292
|
+
return schema.trim();
|
|
293
|
+
};
|
|
294
|
+
var validateSingleChoiceField = function validateSingleChoiceField(_ref5) {
|
|
295
|
+
var label = _ref5.label,
|
|
296
|
+
isRequired = _ref5.isRequired;
|
|
297
|
+
var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string"));
|
|
298
|
+
if (isRequired) schema = schema.required(getSelectMinError("an"));
|
|
299
|
+
return schema.trim();
|
|
300
|
+
};
|
|
301
|
+
var validateMultiChoiceField = function validateMultiChoiceField(_ref6) {
|
|
302
|
+
var isRequired = _ref6.isRequired;
|
|
303
|
+
var schema = yup__namespace.array().of(yup__namespace["boolean"]());
|
|
304
|
+
if (isRequired) schema = schema.compact().min(1, getSelectMinError("an"));
|
|
305
|
+
return schema;
|
|
306
|
+
};
|
|
307
|
+
var validateRatingField = function validateRatingField(_ref7) {
|
|
308
|
+
var label = _ref7.label,
|
|
309
|
+
isRequired = _ref7.isRequired;
|
|
310
|
+
var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string"));
|
|
311
|
+
if (isRequired) schema = schema.required(getSelectMinError("an"));
|
|
312
|
+
return schema.trim();
|
|
313
|
+
};
|
|
314
|
+
var validateStarRatingField = function validateStarRatingField(_ref8) {
|
|
315
|
+
var label = _ref8.label,
|
|
316
|
+
isRequired = _ref8.isRequired;
|
|
317
|
+
var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string"));
|
|
318
|
+
if (isRequired) {
|
|
319
|
+
schema = schema.required(getSelectMinError("a", t$1("neetoForm.common.rating")));
|
|
320
|
+
}
|
|
321
|
+
return schema.trim();
|
|
322
|
+
};
|
|
323
|
+
var validateTermsField = function validateTermsField(_ref9) {
|
|
324
|
+
var _ref9$isRequired = _ref9.isRequired,
|
|
325
|
+
isRequired = _ref9$isRequired === void 0 ? true : _ref9$isRequired;
|
|
326
|
+
return isRequired ? yup__namespace["boolean"]().oneOf([true], t$1("neetoForm.common.mustAcceptTermsAndConditions")) : yup__namespace["boolean"]().notRequired();
|
|
327
|
+
};
|
|
328
|
+
var validateConditionField = function validateConditionField(_ref10) {
|
|
329
|
+
var _ref10$isRequired = _ref10.isRequired,
|
|
330
|
+
isRequired = _ref10$isRequired === void 0 ? true : _ref10$isRequired;
|
|
331
|
+
return isRequired ? yup__namespace["boolean"]().oneOf([true], t$1("neetoForm.common.mustAcceptCondition")) : yup__namespace["boolean"]().notRequired();
|
|
332
|
+
};
|
|
333
|
+
var validateDateField = function validateDateField(_ref11) {
|
|
334
|
+
var label = _ref11.label,
|
|
335
|
+
isRequired = _ref11.isRequired;
|
|
336
|
+
var schema = yup__namespace.string().test("is valid date", getInvalidTypeError(label, "date"), function (value) {
|
|
337
|
+
return neetoCist.isNotPresent(value) || isValidDate(value);
|
|
338
|
+
});
|
|
339
|
+
if (isRequired) {
|
|
340
|
+
schema = schema.required(getRequiredFieldError(label));
|
|
341
|
+
}
|
|
342
|
+
return schema;
|
|
343
|
+
};
|
|
344
|
+
var validateMultiEmailField = function validateMultiEmailField(_ref12) {
|
|
345
|
+
var isRequired = _ref12.isRequired;
|
|
346
|
+
var schema = yup__namespace.array().of(yup__namespace.object().shape({
|
|
347
|
+
value: yup__namespace.string().email(getInvalidFieldError("Email")).trim()
|
|
348
|
+
})).nullable();
|
|
349
|
+
if (isRequired) {
|
|
350
|
+
schema = schema.compact().min(1, getSelectMinError("an", t$1("neetoForm.common.email")));
|
|
351
|
+
}
|
|
352
|
+
return schema;
|
|
353
|
+
};
|
|
354
|
+
var editorHasValue = function editorHasValue(content) {
|
|
355
|
+
return !utils.isEditorEmpty(content);
|
|
356
|
+
};
|
|
357
|
+
var validateRichTextField = function validateRichTextField(_ref13) {
|
|
358
|
+
var isRequired = _ref13.isRequired;
|
|
359
|
+
var schema = yup__namespace.string();
|
|
360
|
+
if (isRequired) {
|
|
361
|
+
schema = schema.test("required", getRequiredFieldError("content"), editorHasValue);
|
|
362
|
+
}
|
|
363
|
+
return schema.trim();
|
|
364
|
+
};
|
|
365
|
+
var validateFileUploadField = function validateFileUploadField(_ref14) {
|
|
366
|
+
var isRequired = _ref14.isRequired,
|
|
367
|
+
multipleFilesAllowed = _ref14.multipleFilesAllowed;
|
|
368
|
+
var files_schema = yup__namespace.array();
|
|
369
|
+
if (isRequired) {
|
|
370
|
+
files_schema = files_schema.of(yup__namespace.object().shape({
|
|
371
|
+
name: yup__namespace.string(),
|
|
372
|
+
signedId: yup__namespace.string().required(t$1("neetoForm.fileUpload.validations.waitForUpload")),
|
|
373
|
+
url: yup__namespace.string().required(t$1("neetoForm.fileUpload.validations.waitForUpload"))
|
|
374
|
+
})).unique("name", t$1("neetoForm.fileUpload.validations.removeDuplicates")).min(1, multipleFilesAllowed ? t$1("neetoForm.fileUpload.validations.atLeastOneFileRequired") : t$1("neetoForm.fileUpload.validations.fileIsRequired"));
|
|
375
|
+
}
|
|
376
|
+
return yup__namespace.object().shape({
|
|
377
|
+
files: files_schema
|
|
378
|
+
});
|
|
379
|
+
};
|
|
380
|
+
var validateCaptchaField = function validateCaptchaField(_ref15) {
|
|
381
|
+
var variant = _ref15.variant;
|
|
382
|
+
return variant === noQuestions.CAPTCHA_TYPES.MATH_CAPTCHA ? yup__namespace.mixed().test("verification failed", t$1("neetoForm.error.captchaVerificationFailed"), function (value) {
|
|
383
|
+
return neetoCist.isNotPresent(value) || value;
|
|
384
|
+
}).transform(function (value) {
|
|
385
|
+
return value === "" ? null : value;
|
|
386
|
+
}).required(t$1("neetoForm.error.incompleteCaptcha")) : yup__namespace.string().trim().required(t$1("neetoForm.error.incompleteCaptcha"));
|
|
387
|
+
};
|
|
388
|
+
var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.EMAIL.value, validateEmailField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.NAME.value, validateNameField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.PHONE.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.TEXT.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.QUESTION.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.TEXTAREA.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.DECIMAL.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.INTEGER.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.RATING.value, validateRatingField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.TERMS.value, validateTermsField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.DATE.value, validateDateField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.STAR_RATING.value, validateStarRatingField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.RICH_TEXT.value, validateRichTextField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.CONDITION.value, validateConditionField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _defineProperty__default["default"](_fieldKindValidatorMa, constants.QUESTION_KIND.CAPTCHA.value, validateCaptchaField), _fieldKindValidatorMa);
|
|
389
|
+
var validateFieldValue = function validateFieldValue(_ref16) {
|
|
390
|
+
var kind = _ref16.kind,
|
|
391
|
+
customValidator = _ref16.customValidator,
|
|
392
|
+
otherProps = _objectWithoutProperties__default["default"](_ref16, _excluded$4);
|
|
393
|
+
return function (value) {
|
|
394
|
+
if (!(kind in fieldKindValidatorMap)) return;
|
|
395
|
+
var validator = fieldKindValidatorMap[kind];
|
|
396
|
+
var schema = customValidator || validator(_objectSpread$g({
|
|
397
|
+
kind: kind
|
|
398
|
+
}, otherProps));
|
|
399
|
+
|
|
400
|
+
// eslint-disable-next-line consistent-return, no-async-promise-executor
|
|
401
|
+
return new Promise( /*#__PURE__*/function () {
|
|
402
|
+
var _ref17 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(resolve) {
|
|
403
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
404
|
+
while (1) switch (_context.prev = _context.next) {
|
|
405
|
+
case 0:
|
|
406
|
+
_context.prev = 0;
|
|
407
|
+
_context.next = 3;
|
|
408
|
+
return schema.validate(value);
|
|
409
|
+
case 3:
|
|
410
|
+
resolve(undefined);
|
|
411
|
+
_context.next = 9;
|
|
412
|
+
break;
|
|
413
|
+
case 6:
|
|
414
|
+
_context.prev = 6;
|
|
415
|
+
_context.t0 = _context["catch"](0);
|
|
416
|
+
resolve(_context.t0.message);
|
|
417
|
+
case 9:
|
|
418
|
+
case "end":
|
|
419
|
+
return _context.stop();
|
|
420
|
+
}
|
|
421
|
+
}, _callee, null, [[0, 6]]);
|
|
422
|
+
}));
|
|
423
|
+
return function (_x) {
|
|
424
|
+
return _ref17.apply(this, arguments);
|
|
425
|
+
};
|
|
426
|
+
}());
|
|
427
|
+
};
|
|
428
|
+
};
|
|
429
|
+
|
|
430
|
+
var MultipleEmailInput = function MultipleEmailInput(_ref) {
|
|
431
|
+
var _jsx2;
|
|
432
|
+
var question = _ref.question,
|
|
433
|
+
customValidator = _ref.customValidator;
|
|
434
|
+
var name = question.id,
|
|
435
|
+
kind = question.kind,
|
|
436
|
+
isRequired = question.isRequired,
|
|
437
|
+
nodeId = question.nodeId;
|
|
438
|
+
var label = index.fieldWithFallback(question, "label");
|
|
439
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
440
|
+
t = _useTranslation.t;
|
|
441
|
+
var _useField = formik.useField({
|
|
442
|
+
name: name || nodeId,
|
|
443
|
+
validate: validateFieldValue({
|
|
444
|
+
kind: kind,
|
|
445
|
+
label: label,
|
|
446
|
+
isRequired: isRequired,
|
|
447
|
+
customValidator: customValidator
|
|
448
|
+
})
|
|
449
|
+
}),
|
|
450
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3),
|
|
451
|
+
field = _useField2[0],
|
|
452
|
+
meta = _useField2[1],
|
|
453
|
+
_useField2$ = _useField2[2],
|
|
454
|
+
setValue = _useField2$.setValue,
|
|
455
|
+
setTouched = _useField2$.setTouched;
|
|
456
|
+
var _useState = React.useState(neetoCist.isPresent(field.value)),
|
|
457
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
458
|
+
isInputVisible = _useState2[0],
|
|
459
|
+
setIsInputVisible = _useState2[1];
|
|
460
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
461
|
+
className: "neeto-form-engine-input__wrapper",
|
|
462
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
463
|
+
className: "neeto-ui-w-full",
|
|
464
|
+
children: isInputVisible ? /*#__PURE__*/jsxRuntime.jsx(NeetoUIMultiEmailInput__default["default"], {
|
|
465
|
+
isRequired: isRequired,
|
|
466
|
+
label: label,
|
|
467
|
+
error: meta.touched ? meta.error : "",
|
|
468
|
+
helpText: t("neetoForm.common.addGuestsHelper"),
|
|
469
|
+
name: field.name,
|
|
470
|
+
placeholder: index.fieldWithFallback(question, "placeholder"),
|
|
471
|
+
value: field.value,
|
|
472
|
+
onBlur: function onBlur() {
|
|
473
|
+
return setTouched(true);
|
|
474
|
+
},
|
|
475
|
+
onChange: setValue
|
|
476
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], (_jsx2 = {
|
|
477
|
+
label: label
|
|
478
|
+
}, _defineProperty__default["default"](_jsx2, "label", t("neetoForm.common.addGuests")), _defineProperty__default["default"](_jsx2, "style", "secondary"), _defineProperty__default["default"](_jsx2, "onClick", function onClick() {
|
|
479
|
+
return setIsInputVisible(true);
|
|
480
|
+
}), _jsx2))
|
|
481
|
+
})
|
|
482
|
+
});
|
|
483
|
+
};
|
|
484
|
+
|
|
485
|
+
function ownKeys$f(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
486
|
+
function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
487
|
+
var t = clientI18nInstance.t;
|
|
488
|
+
var toEmailValues = function toEmailValues() {
|
|
489
|
+
var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
490
|
+
return values.map(function (value) {
|
|
491
|
+
return {
|
|
492
|
+
label: value,
|
|
493
|
+
value: value,
|
|
494
|
+
valid: true
|
|
495
|
+
};
|
|
496
|
+
});
|
|
497
|
+
};
|
|
498
|
+
var getPhoneNumberFromUrl = function getPhoneNumberFromUrl(fieldCodes, fieldCode) {
|
|
499
|
+
var countryCode = fieldCodes["".concat(fieldCode, ".country")];
|
|
500
|
+
var phoneNumber = fieldCodes["".concat(fieldCode, ".number")];
|
|
501
|
+
if (!countryCode || !phoneNumber) return undefined;
|
|
502
|
+
var formattedValue = getPhoneData(phoneNumber, countryCode);
|
|
503
|
+
if (!formattedValue) return undefined;
|
|
504
|
+
return formattedValue.formatInternational();
|
|
505
|
+
};
|
|
506
|
+
var getOptionFromURL = function getOptionFromURL(_ref) {
|
|
507
|
+
var _findBy;
|
|
508
|
+
var optionsAttributes = _ref.optionsAttributes,
|
|
509
|
+
fieldCodes = _ref.fieldCodes,
|
|
510
|
+
fieldCode = _ref.fieldCode;
|
|
511
|
+
var preFillOption = fieldCodes[fieldCode];
|
|
512
|
+
return (_findBy = neetoCist.findBy({
|
|
513
|
+
label: preFillOption
|
|
514
|
+
}, optionsAttributes)) === null || _findBy === void 0 ? void 0 : _findBy.id;
|
|
515
|
+
};
|
|
516
|
+
var getMultipleOptionsFromURL = function getMultipleOptionsFromURL(_ref2) {
|
|
517
|
+
var optionsAttributes = _ref2.optionsAttributes,
|
|
518
|
+
fieldCodes = _ref2.fieldCodes,
|
|
519
|
+
fieldCode = _ref2.fieldCode;
|
|
520
|
+
var fieldCodeValue = fieldCodes[fieldCode];
|
|
521
|
+
if (!fieldCodeValue) return new Array(optionsAttributes.length).fill(false);
|
|
522
|
+
var allOptions = fieldCodeValue.split(",");
|
|
523
|
+
return optionsAttributes.map(function (option) {
|
|
524
|
+
return allOptions.includes(option.label);
|
|
525
|
+
});
|
|
526
|
+
};
|
|
527
|
+
var getStarRatingFromUrl = function getStarRatingFromUrl(_ref3) {
|
|
528
|
+
var minValue = _ref3.minValue,
|
|
529
|
+
maxValue = _ref3.maxValue,
|
|
530
|
+
fieldCodes = _ref3.fieldCodes,
|
|
531
|
+
fieldCode = _ref3.fieldCode;
|
|
532
|
+
var fieldCodeValue = fieldCodes[fieldCode];
|
|
533
|
+
var rating = parseInt(fieldCodeValue);
|
|
534
|
+
return ramda.isNil(rating) || isNaN(rating) ? "" : ramda.clamp(minValue, maxValue, rating);
|
|
535
|
+
};
|
|
536
|
+
var getAdditionalGuestsFromUrl = function getAdditionalGuestsFromUrl(_ref4) {
|
|
537
|
+
var fieldCodes = _ref4.fieldCodes,
|
|
538
|
+
fieldCode = _ref4.fieldCode;
|
|
539
|
+
var fieldCodeValue = fieldCodes[fieldCode];
|
|
540
|
+
var allEmails = fieldCodeValue === null || fieldCodeValue === void 0 ? void 0 : fieldCodeValue.split(",");
|
|
541
|
+
if (!allEmails) return [];
|
|
542
|
+
return allEmails.map(function (email) {
|
|
543
|
+
return {
|
|
544
|
+
label: email,
|
|
545
|
+
value: email,
|
|
546
|
+
valid: constants.EMAIL_REGEX.test(email)
|
|
547
|
+
};
|
|
548
|
+
});
|
|
549
|
+
};
|
|
550
|
+
var getRatingFromUrl = function getRatingFromUrl(_ref5) {
|
|
551
|
+
var fieldCodes = _ref5.fieldCodes,
|
|
552
|
+
fieldCode = _ref5.fieldCode;
|
|
553
|
+
var fieldCodeValue = fieldCodes[fieldCode];
|
|
554
|
+
var allowedValues = Object.values(constants.RATING_VALUES).map(ramda.prop("value"));
|
|
555
|
+
return allowedValues.includes(fieldCodeValue) ? fieldCodeValue : "";
|
|
556
|
+
};
|
|
557
|
+
var getNumberFromUrl = function getNumberFromUrl(_ref6) {
|
|
558
|
+
var fieldCodes = _ref6.fieldCodes,
|
|
559
|
+
fieldCode = _ref6.fieldCode,
|
|
560
|
+
kind = _ref6.kind;
|
|
561
|
+
var fieldCodeValue = fieldCodes[fieldCode];
|
|
562
|
+
var parsedValue = kind === constants.QUESTION_KIND.INTEGER.value ? parseInt(fieldCodeValue) : parseFloat(fieldCodeValue);
|
|
563
|
+
return parsedValue || "";
|
|
564
|
+
};
|
|
565
|
+
var getLabel = function getLabel(label, isRequired) {
|
|
566
|
+
return isRequired ? "".concat(label, "*") : label;
|
|
567
|
+
};
|
|
568
|
+
var generateInitValues = function generateInitValues(_ref7) {
|
|
569
|
+
var questions = _ref7.questions,
|
|
570
|
+
_ref7$initialValues = _ref7.initialValues,
|
|
571
|
+
initialValues = _ref7$initialValues === void 0 ? [] : _ref7$initialValues,
|
|
572
|
+
_ref7$localValues = _ref7.localValues,
|
|
573
|
+
localValues = _ref7$localValues === void 0 ? {} : _ref7$localValues,
|
|
574
|
+
_ref7$fieldCodes = _ref7.fieldCodes,
|
|
575
|
+
fieldCodes = _ref7$fieldCodes === void 0 ? {} : _ref7$fieldCodes;
|
|
576
|
+
var initValues = {};
|
|
577
|
+
var valuesMap = {};
|
|
578
|
+
if (initialValues) {
|
|
579
|
+
valuesMap = initialValues.reduce(function (acc, answer) {
|
|
580
|
+
return _objectSpread$f(_objectSpread$f({}, acc), {}, _defineProperty__default["default"]({}, answer.questionId, {
|
|
581
|
+
value: answer.value,
|
|
582
|
+
optionIds: answer.optionIds
|
|
583
|
+
}));
|
|
584
|
+
}, {});
|
|
585
|
+
}
|
|
586
|
+
questions.forEach(function (question) {
|
|
587
|
+
var id = question.id,
|
|
588
|
+
kind = question.kind,
|
|
589
|
+
optionsAttributes = question.optionsAttributes,
|
|
590
|
+
fieldCode = question.fieldCode,
|
|
591
|
+
minValue = question.minValue,
|
|
592
|
+
maxValue = question.maxValue;
|
|
593
|
+
switch (kind) {
|
|
594
|
+
case constants.QUESTION_KIND.CONDITION.value:
|
|
595
|
+
{
|
|
596
|
+
var _valuesMap$id$value, _valuesMap;
|
|
597
|
+
initValues[id] = (_valuesMap$id$value = (_valuesMap = valuesMap) === null || _valuesMap === void 0 || (_valuesMap = _valuesMap[id]) === null || _valuesMap === void 0 ? void 0 : _valuesMap.value) !== null && _valuesMap$id$value !== void 0 ? _valuesMap$id$value : false;
|
|
598
|
+
return;
|
|
599
|
+
}
|
|
600
|
+
case constants.QUESTION_KIND.ADDITIONAL_GUESTS.value:
|
|
601
|
+
{
|
|
602
|
+
var _valuesMap2;
|
|
603
|
+
var emailsFromSubmission = toEmailValues((_valuesMap2 = valuesMap) === null || _valuesMap2 === void 0 || (_valuesMap2 = _valuesMap2[id]) === null || _valuesMap2 === void 0 ? void 0 : _valuesMap2.value);
|
|
604
|
+
initValues[id] = neetoCist.isNotEmpty(emailsFromSubmission) ? emailsFromSubmission : getAdditionalGuestsFromUrl({
|
|
605
|
+
fieldCodes: fieldCodes,
|
|
606
|
+
fieldCode: fieldCode
|
|
607
|
+
});
|
|
608
|
+
return;
|
|
609
|
+
}
|
|
610
|
+
case constants.QUESTION_KIND.CHECKBOX.value:
|
|
611
|
+
{
|
|
612
|
+
var _valuesMap$id;
|
|
613
|
+
initValues[id] = (_valuesMap$id = valuesMap[id]) !== null && _valuesMap$id !== void 0 && (_valuesMap$id = _valuesMap$id.optionIds) !== null && _valuesMap$id !== void 0 && _valuesMap$id.length ? optionsAttributes.map(function (option) {
|
|
614
|
+
var _valuesMap$id2;
|
|
615
|
+
return (_valuesMap$id2 = valuesMap[id]) === null || _valuesMap$id2 === void 0 || (_valuesMap$id2 = _valuesMap$id2.optionIds) === null || _valuesMap$id2 === void 0 ? void 0 : _valuesMap$id2.includes(option.id);
|
|
616
|
+
}) : getMultipleOptionsFromURL({
|
|
617
|
+
optionsAttributes: optionsAttributes,
|
|
618
|
+
fieldCodes: fieldCodes,
|
|
619
|
+
fieldCode: fieldCode
|
|
620
|
+
});
|
|
621
|
+
return;
|
|
622
|
+
}
|
|
623
|
+
case constants.QUESTION_KIND.RADIO.value:
|
|
624
|
+
case constants.QUESTION_KIND.DROPDOWN.value:
|
|
625
|
+
{
|
|
626
|
+
var _optionsAttributes$fi;
|
|
627
|
+
initValues[id] = ((_optionsAttributes$fi = optionsAttributes.find(function (option) {
|
|
628
|
+
var _valuesMap$id3;
|
|
629
|
+
return (_valuesMap$id3 = valuesMap[id]) === null || _valuesMap$id3 === void 0 || (_valuesMap$id3 = _valuesMap$id3.optionIds) === null || _valuesMap$id3 === void 0 ? void 0 : _valuesMap$id3.includes(option.id);
|
|
630
|
+
})) === null || _optionsAttributes$fi === void 0 ? void 0 : _optionsAttributes$fi.id) || getOptionFromURL({
|
|
631
|
+
optionsAttributes: optionsAttributes,
|
|
632
|
+
fieldCodes: fieldCodes,
|
|
633
|
+
fieldCode: fieldCode
|
|
634
|
+
});
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
case constants.QUESTION_KIND.INTEGER.value:
|
|
638
|
+
case constants.QUESTION_KIND.DECIMAL.value:
|
|
639
|
+
{
|
|
640
|
+
var _valuesMap3;
|
|
641
|
+
initValues[id] = ((_valuesMap3 = valuesMap) === null || _valuesMap3 === void 0 || (_valuesMap3 = _valuesMap3[id]) === null || _valuesMap3 === void 0 ? void 0 : _valuesMap3.value) || getNumberFromUrl({
|
|
642
|
+
fieldCodes: fieldCodes,
|
|
643
|
+
fieldCode: fieldCode,
|
|
644
|
+
kind: kind
|
|
645
|
+
});
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
case constants.QUESTION_KIND.RATING.value:
|
|
649
|
+
{
|
|
650
|
+
var _valuesMap4;
|
|
651
|
+
initValues[id] = ((_valuesMap4 = valuesMap) === null || _valuesMap4 === void 0 || (_valuesMap4 = _valuesMap4[id]) === null || _valuesMap4 === void 0 ? void 0 : _valuesMap4.value) || getRatingFromUrl({
|
|
652
|
+
fieldCodes: fieldCodes,
|
|
653
|
+
fieldCode: fieldCode
|
|
654
|
+
});
|
|
655
|
+
return;
|
|
656
|
+
}
|
|
657
|
+
case constants.QUESTION_KIND.TERMS.value:
|
|
658
|
+
{
|
|
659
|
+
initValues[id] = false;
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
case constants.QUESTION_KIND.FILE_UPLOAD.value:
|
|
663
|
+
{
|
|
664
|
+
var _valuesMap$id$value2, _valuesMap5;
|
|
665
|
+
initValues[id] = {
|
|
666
|
+
files: (_valuesMap$id$value2 = (_valuesMap5 = valuesMap) === null || _valuesMap5 === void 0 || (_valuesMap5 = _valuesMap5[id]) === null || _valuesMap5 === void 0 ? void 0 : _valuesMap5.value) !== null && _valuesMap$id$value2 !== void 0 ? _valuesMap$id$value2 : []
|
|
667
|
+
};
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
670
|
+
case constants.QUESTION_KIND.PHONE.value:
|
|
671
|
+
{
|
|
672
|
+
var _valuesMap$id$value3, _valuesMap6;
|
|
673
|
+
initValues[id] = (_valuesMap$id$value3 = (_valuesMap6 = valuesMap) === null || _valuesMap6 === void 0 || (_valuesMap6 = _valuesMap6[id]) === null || _valuesMap6 === void 0 ? void 0 : _valuesMap6.value) !== null && _valuesMap$id$value3 !== void 0 ? _valuesMap$id$value3 : getPhoneNumberFromUrl(fieldCodes, fieldCode);
|
|
674
|
+
return;
|
|
675
|
+
}
|
|
676
|
+
case constants.QUESTION_KIND.STAR_RATING.value:
|
|
677
|
+
{
|
|
678
|
+
var _valuesMap$id$value4, _valuesMap7;
|
|
679
|
+
initValues[id] = (_valuesMap$id$value4 = (_valuesMap7 = valuesMap) === null || _valuesMap7 === void 0 || (_valuesMap7 = _valuesMap7[id]) === null || _valuesMap7 === void 0 ? void 0 : _valuesMap7.value) !== null && _valuesMap$id$value4 !== void 0 ? _valuesMap$id$value4 : getStarRatingFromUrl({
|
|
680
|
+
minValue: minValue,
|
|
681
|
+
maxValue: maxValue,
|
|
682
|
+
fieldCodes: fieldCodes,
|
|
683
|
+
fieldCode: fieldCode
|
|
684
|
+
});
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
687
|
+
default:
|
|
688
|
+
{
|
|
689
|
+
var _valuesMap$id$value5, _valuesMap8;
|
|
690
|
+
initValues[id] = (_valuesMap$id$value5 = (_valuesMap8 = valuesMap) === null || _valuesMap8 === void 0 || (_valuesMap8 = _valuesMap8[id]) === null || _valuesMap8 === void 0 ? void 0 : _valuesMap8.value) !== null && _valuesMap$id$value5 !== void 0 ? _valuesMap$id$value5 : fieldCodes[fieldCode] || "";
|
|
691
|
+
return;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
});
|
|
695
|
+
return !index.isEmptyValues(localValues) ? localValues : initValues;
|
|
696
|
+
};
|
|
697
|
+
var generateFormResponse = function generateFormResponse(response, questions) {
|
|
698
|
+
var formResponse = [];
|
|
699
|
+
questions.forEach(function (question) {
|
|
700
|
+
var id = question.id,
|
|
701
|
+
kind = question.kind,
|
|
702
|
+
optionsAttributes = question.optionsAttributes;
|
|
703
|
+
if (!constants.SCHEMA_LESS_QUESTION_KINDS.includes(kind)) {
|
|
704
|
+
var responseValue = response[id];
|
|
705
|
+
if (kind === constants.QUESTION_KIND.RADIO.value || kind === constants.QUESTION_KIND.DROPDOWN.value) {
|
|
706
|
+
var option = neetoCist.findById(responseValue, optionsAttributes);
|
|
707
|
+
if (option) {
|
|
708
|
+
formResponse.push({
|
|
709
|
+
questionId: id,
|
|
710
|
+
questionOptionId: option.id,
|
|
711
|
+
value: option.label,
|
|
712
|
+
kind: kind
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
} else if (kind === constants.QUESTION_KIND.CHECKBOX.value) {
|
|
716
|
+
responseValue.forEach(function (isChecked, index) {
|
|
717
|
+
if (!isChecked) return;
|
|
718
|
+
var option = optionsAttributes[index];
|
|
719
|
+
formResponse.push({
|
|
720
|
+
questionId: id,
|
|
721
|
+
questionOptionId: option.id,
|
|
722
|
+
value: option.label,
|
|
723
|
+
kind: kind
|
|
724
|
+
});
|
|
725
|
+
});
|
|
726
|
+
} else if (kind === constants.QUESTION_KIND.PHONE.value) {
|
|
727
|
+
formResponse.push({
|
|
728
|
+
questionId: id,
|
|
729
|
+
value: responseValue ? libphonenumberJs.parsePhoneNumber(responseValue).formatInternational() : "",
|
|
730
|
+
kind: kind
|
|
731
|
+
});
|
|
732
|
+
} else if (kind === constants.QUESTION_KIND.ADDITIONAL_GUESTS.value) {
|
|
733
|
+
formResponse.push({
|
|
734
|
+
questionId: id,
|
|
735
|
+
value: responseValue ? ramda.pluck("value", responseValue) : null,
|
|
736
|
+
kind: kind
|
|
737
|
+
});
|
|
738
|
+
} else if (kind === constants.QUESTION_KIND.FILE_UPLOAD.value) {
|
|
739
|
+
formResponse.push({
|
|
740
|
+
questionId: id,
|
|
741
|
+
files: neetoCist.isPresent(responseValue) ? responseValue.files : null,
|
|
742
|
+
kind: kind
|
|
743
|
+
});
|
|
744
|
+
} else formResponse.push({
|
|
745
|
+
questionId: id,
|
|
746
|
+
value: responseValue,
|
|
747
|
+
kind: kind
|
|
748
|
+
});
|
|
749
|
+
}
|
|
750
|
+
});
|
|
751
|
+
return formResponse;
|
|
752
|
+
};
|
|
753
|
+
var mergeRefs = function mergeRefs() {
|
|
754
|
+
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
755
|
+
refs[_key] = arguments[_key];
|
|
756
|
+
}
|
|
757
|
+
return function (node) {
|
|
758
|
+
return refs.forEach(function (ref) {
|
|
759
|
+
return typeof ref === "function" ? ref(node) : ref.current = node;
|
|
760
|
+
});
|
|
761
|
+
};
|
|
762
|
+
};
|
|
763
|
+
var getError = function getError(meta) {
|
|
764
|
+
if (meta.error && meta.touched) {
|
|
765
|
+
return typeof meta.error === "string" ? meta.error : "";
|
|
766
|
+
}
|
|
767
|
+
return "";
|
|
768
|
+
};
|
|
769
|
+
var buildAutoCompleteAttribute = function buildAutoCompleteAttribute(kind, autoCompleteKinds, formDomProps) {
|
|
770
|
+
return (formDomProps === null || formDomProps === void 0 ? void 0 : formDomProps.autoComplete) === "off" && ramda.includes(kind, autoCompleteKinds) ? "on" : undefined;
|
|
771
|
+
};
|
|
772
|
+
var convertMbToBytes = function convertMbToBytes(mb) {
|
|
773
|
+
return mb * 1024 * 1024;
|
|
774
|
+
};
|
|
775
|
+
var renderErrorMessage = function renderErrorMessage(errorObject, maxFileSize, isMultiple) {
|
|
776
|
+
var error = errorObject.errors[0];
|
|
777
|
+
var file = errorObject.file;
|
|
778
|
+
if (error) {
|
|
779
|
+
var code = error.code;
|
|
780
|
+
switch (code) {
|
|
781
|
+
case constants.ERROR_CODES.FILE_TOO_LARGE:
|
|
782
|
+
return t("neetoForm.fileUpload.dropzone.errors.fileTooLarge", {
|
|
783
|
+
fileName: file.name,
|
|
784
|
+
maxSize: Math.round(maxFileSize / 1048576)
|
|
785
|
+
});
|
|
786
|
+
case constants.ERROR_CODES.FILE_INVALID_TYPE:
|
|
787
|
+
return t("neetoForm.fileUpload.dropzone.errors.fileInvalidType", {
|
|
788
|
+
fileType: path__default["default"].extname(file.name)
|
|
789
|
+
});
|
|
790
|
+
case constants.ERROR_CODES.TOO_MANY_FILES:
|
|
791
|
+
if (!isMultiple) {
|
|
792
|
+
return t("neetoForm.fileUpload.dropzone.errors.tooManyFiles");
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
return t("neetoForm.fileUpload.dropzone.errors.defaultError", {
|
|
797
|
+
fileName: file.name
|
|
798
|
+
});
|
|
799
|
+
};
|
|
800
|
+
var renderButtonsInOrder = function renderButtonsInOrder(buttonsArray, shouldReverse) {
|
|
801
|
+
var orderedButtons = shouldReverse ? buttonsArray.reverse() : buttonsArray;
|
|
802
|
+
return ramda.map(ramda.identity, orderedButtons);
|
|
803
|
+
};
|
|
804
|
+
var getSelectedRating = function getSelectedRating(value) {
|
|
805
|
+
var parsedValue = parseInt(value);
|
|
806
|
+
return isNaN(parsedValue) ? -1 : parsedValue;
|
|
807
|
+
};
|
|
808
|
+
|
|
809
|
+
var CaptchaField = function CaptchaField(_ref) {
|
|
810
|
+
var question = _ref.question,
|
|
811
|
+
preview = _ref.preview,
|
|
812
|
+
customValidator = _ref.customValidator,
|
|
813
|
+
captchaRef = _ref.captchaRef;
|
|
814
|
+
var name = question.id,
|
|
815
|
+
kind = question.kind,
|
|
816
|
+
isRequired = question.isRequired,
|
|
817
|
+
variant = question.variant,
|
|
818
|
+
nodeId = question.nodeId;
|
|
819
|
+
var label = index.fieldWithFallback(question, "label");
|
|
820
|
+
var _useField = formik.useField({
|
|
821
|
+
name: name || nodeId,
|
|
822
|
+
validate: validateFieldValue({
|
|
823
|
+
kind: kind,
|
|
824
|
+
label: label,
|
|
825
|
+
isRequired: isRequired,
|
|
826
|
+
customValidator: customValidator,
|
|
827
|
+
variant: variant
|
|
828
|
+
})
|
|
829
|
+
}),
|
|
830
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3);
|
|
831
|
+
_useField2[0];
|
|
832
|
+
var _useField2$ = _useField2[1],
|
|
833
|
+
touched = _useField2$.touched,
|
|
834
|
+
error = _useField2$.error,
|
|
835
|
+
_useField2$2 = _useField2[2],
|
|
836
|
+
setValue = _useField2$2.setValue,
|
|
837
|
+
setTouched = _useField2$2.setTouched;
|
|
838
|
+
var handleVerifyCaptcha = function handleVerifyCaptcha(response) {
|
|
839
|
+
setTouched(true);
|
|
840
|
+
setValue(response);
|
|
841
|
+
};
|
|
842
|
+
var Component = CAPTCHA_COMPONENT_MAP[variant];
|
|
843
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
844
|
+
className: "neeto-form-engine-input__wrapper",
|
|
845
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
846
|
+
className: "neeto-form-engine-input__label-wrapper",
|
|
847
|
+
children: label && /*#__PURE__*/jsxRuntime.jsx("label", {
|
|
848
|
+
className: "neeto-form-engine-label",
|
|
849
|
+
children: getLabel(label, isRequired)
|
|
850
|
+
})
|
|
851
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
852
|
+
className: classnames__default["default"]({
|
|
853
|
+
"pointer-events-none": preview
|
|
854
|
+
}),
|
|
855
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Component, {
|
|
856
|
+
captchaRef: captchaRef,
|
|
857
|
+
handleVerifyCaptcha: handleVerifyCaptcha,
|
|
858
|
+
handleBlur: function handleBlur() {
|
|
859
|
+
return setTouched(true);
|
|
860
|
+
}
|
|
861
|
+
})
|
|
862
|
+
}), touched && error && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
863
|
+
className: "neeto-form-engine-input__error",
|
|
864
|
+
"data-cy": "neeto-form-engine-captcha-error",
|
|
865
|
+
children: error
|
|
866
|
+
})]
|
|
867
|
+
});
|
|
868
|
+
};
|
|
869
|
+
|
|
870
|
+
var MATH_OPERATORS = {
|
|
871
|
+
PLUS: "+",
|
|
872
|
+
MINUS: "-"
|
|
873
|
+
};
|
|
874
|
+
|
|
875
|
+
var generateRandomOperation = function generateRandomOperation() {
|
|
876
|
+
var firstNumber = neetoCist.getRandomInt(1, 50);
|
|
877
|
+
var secondNumber = neetoCist.getRandomInt(1, 50);
|
|
878
|
+
var operator = neetoCist.randomPick.apply(void 0, _toConsumableArray__default["default"](ramda.values(MATH_OPERATORS)));
|
|
879
|
+
return {
|
|
880
|
+
firstNumber: firstNumber,
|
|
881
|
+
secondNumber: secondNumber,
|
|
882
|
+
operator: operator
|
|
883
|
+
};
|
|
884
|
+
};
|
|
885
|
+
|
|
886
|
+
var MathCaptcha = function MathCaptcha(_ref) {
|
|
887
|
+
var captchaRef = _ref.captchaRef,
|
|
888
|
+
handleVerifyCaptcha = _ref.handleVerifyCaptcha,
|
|
889
|
+
handleBlur = _ref.handleBlur;
|
|
890
|
+
var _useState = React.useState(generateRandomOperation()),
|
|
891
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
892
|
+
operation = _useState2[0],
|
|
893
|
+
setOperation = _useState2[1];
|
|
894
|
+
var _useState3 = React.useState(""),
|
|
895
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
896
|
+
userInput = _useState4[0],
|
|
897
|
+
setUserInput = _useState4[1];
|
|
898
|
+
var firstNumber = operation.firstNumber,
|
|
899
|
+
secondNumber = operation.secondNumber,
|
|
900
|
+
operator = operation.operator;
|
|
901
|
+
var resetCaptcha = function resetCaptcha() {
|
|
902
|
+
setOperation(generateRandomOperation());
|
|
903
|
+
setUserInput("");
|
|
904
|
+
};
|
|
905
|
+
React.useImperativeHandle(captchaRef, function () {
|
|
906
|
+
return {
|
|
907
|
+
reset: resetCaptcha
|
|
908
|
+
};
|
|
909
|
+
});
|
|
910
|
+
var calculateResult = function calculateResult() {
|
|
911
|
+
switch (operator) {
|
|
912
|
+
case MATH_OPERATORS.PLUS:
|
|
913
|
+
return firstNumber + secondNumber;
|
|
914
|
+
case MATH_OPERATORS.MINUS:
|
|
915
|
+
return firstNumber - secondNumber;
|
|
916
|
+
default:
|
|
917
|
+
return null;
|
|
918
|
+
}
|
|
919
|
+
};
|
|
920
|
+
var verifyCaptcha = function verifyCaptcha() {
|
|
921
|
+
var result = calculateResult();
|
|
922
|
+
if (result === null) return;
|
|
923
|
+
handleVerifyCaptcha(result === Number(userInput));
|
|
924
|
+
};
|
|
925
|
+
reactUtils.useUpdateEffect(function () {
|
|
926
|
+
verifyCaptcha();
|
|
927
|
+
}, [userInput]);
|
|
928
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
929
|
+
className: "neeto-form-nano-math-captcha",
|
|
930
|
+
ref: captchaRef,
|
|
931
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("button", {
|
|
932
|
+
className: "neeto-form-nano-math-captcha__button",
|
|
933
|
+
type: "button",
|
|
934
|
+
onClick: resetCaptcha,
|
|
935
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Refresh__default["default"], {})
|
|
936
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
937
|
+
className: "neeto-form-nano-math-captcha__equation",
|
|
938
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
939
|
+
children: firstNumber
|
|
940
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
941
|
+
children: operator
|
|
942
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
943
|
+
children: secondNumber
|
|
944
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
945
|
+
children: "="
|
|
946
|
+
})]
|
|
947
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
|
|
948
|
+
required: true,
|
|
949
|
+
className: "neeto-form-nano-math-captcha__input",
|
|
950
|
+
value: userInput,
|
|
951
|
+
onBlur: handleBlur,
|
|
952
|
+
onChange: utils$1.withEventTargetValue(setUserInput)
|
|
953
|
+
})]
|
|
954
|
+
});
|
|
955
|
+
};
|
|
956
|
+
|
|
957
|
+
var Recaptcha = function Recaptcha(_ref) {
|
|
958
|
+
var captchaRef = _ref.captchaRef,
|
|
959
|
+
handleVerifyCaptcha = _ref.handleVerifyCaptcha;
|
|
960
|
+
var verifyRecaptcha = function verifyRecaptcha(response) {
|
|
961
|
+
if (response === null) {
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
handleVerifyCaptcha(response);
|
|
965
|
+
};
|
|
966
|
+
var expiredRecaptcha = function expiredRecaptcha() {
|
|
967
|
+
var _captchaRef$current;
|
|
968
|
+
captchaRef === null || captchaRef === void 0 || (_captchaRef$current = captchaRef.current) === null || _captchaRef$current === void 0 || _captchaRef$current.reset();
|
|
969
|
+
handleVerifyCaptcha("");
|
|
970
|
+
};
|
|
971
|
+
return /*#__PURE__*/jsxRuntime.jsx(ReCAPTCHA__default["default"], {
|
|
972
|
+
hl: clientI18nInstance.language,
|
|
973
|
+
ref: captchaRef,
|
|
974
|
+
sitekey: initializers.globalProps.formNanoRecaptchaV2SiteKey,
|
|
975
|
+
onChange: verifyRecaptcha,
|
|
976
|
+
onErrored: neetoCist.noop,
|
|
977
|
+
onExpired: expiredRecaptcha
|
|
978
|
+
}, clientI18nInstance.language);
|
|
979
|
+
};
|
|
980
|
+
|
|
981
|
+
function ownKeys$e(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
982
|
+
function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
983
|
+
var ConditionField = function ConditionField(_ref) {
|
|
984
|
+
var question = _ref.question,
|
|
985
|
+
customValidator = _ref.customValidator;
|
|
986
|
+
var name = question.id,
|
|
987
|
+
kind = question.kind,
|
|
988
|
+
isRequired = question.isRequired,
|
|
989
|
+
nodeId = question.nodeId;
|
|
990
|
+
var label = index.fieldWithFallback(question, "label");
|
|
991
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
|
|
992
|
+
name: name || nodeId,
|
|
993
|
+
validate: validateFieldValue({
|
|
994
|
+
kind: kind,
|
|
995
|
+
label: label,
|
|
996
|
+
isRequired: isRequired,
|
|
997
|
+
customValidator: customValidator
|
|
998
|
+
}),
|
|
999
|
+
children: function children(_ref2) {
|
|
1000
|
+
var meta = _ref2.meta,
|
|
1001
|
+
field = _ref2.field;
|
|
1002
|
+
return /*#__PURE__*/jsxRuntime.jsx(Checkbox__default["default"], _objectSpread$e(_objectSpread$e({}, _objectSpread$e(_objectSpread$e({}, field), {}, {
|
|
1003
|
+
label: label,
|
|
1004
|
+
name: name
|
|
1005
|
+
})), {}, {
|
|
1006
|
+
checked: field.value,
|
|
1007
|
+
error: meta.touched ? meta.error : "",
|
|
1008
|
+
required: isRequired
|
|
1009
|
+
}));
|
|
1010
|
+
}
|
|
1011
|
+
});
|
|
1012
|
+
};
|
|
1013
|
+
|
|
1014
|
+
var _excluded$3 = ["value"];
|
|
1015
|
+
function ownKeys$d(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1016
|
+
function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1017
|
+
dayjs__default["default"].extend(weekOfYear__default["default"]);
|
|
1018
|
+
dayjs__default["default"].extend(weekday__default["default"]);
|
|
1019
|
+
dayjs__default["default"].extend(localeData__default["default"]);
|
|
1020
|
+
dayjs__default["default"].extend(utc__default["default"]);
|
|
1021
|
+
var DateField = function DateField(_ref) {
|
|
1022
|
+
var question = _ref.question,
|
|
1023
|
+
customValidator = _ref.customValidator;
|
|
1024
|
+
var name = question.id,
|
|
1025
|
+
kind = question.kind,
|
|
1026
|
+
isRequired = question.isRequired,
|
|
1027
|
+
nodeId = question.nodeId;
|
|
1028
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1029
|
+
var _QUESTION_KIND$kind$t = constants.QUESTION_KIND[kind.toUpperCase()].type,
|
|
1030
|
+
type = _QUESTION_KIND$kind$t === void 0 ? "date" : _QUESTION_KIND$kind$t;
|
|
1031
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1032
|
+
className: "neeto-form-engine-input__wrapper",
|
|
1033
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1034
|
+
className: "neeto-form-engine-input__label-wrapper",
|
|
1035
|
+
children: label && /*#__PURE__*/jsxRuntime.jsx("label", {
|
|
1036
|
+
className: "neeto-form-engine-label",
|
|
1037
|
+
children: getLabel(label, isRequired)
|
|
1038
|
+
})
|
|
1039
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1040
|
+
className: "neeto-form-engine-date-picker",
|
|
1041
|
+
children: /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
|
|
1042
|
+
name: name || nodeId,
|
|
1043
|
+
validate: validateFieldValue({
|
|
1044
|
+
kind: kind,
|
|
1045
|
+
label: label,
|
|
1046
|
+
isRequired: isRequired,
|
|
1047
|
+
customValidator: customValidator
|
|
1048
|
+
}),
|
|
1049
|
+
children: function children(_ref2) {
|
|
1050
|
+
var meta = _ref2.meta,
|
|
1051
|
+
_ref2$field = _ref2.field,
|
|
1052
|
+
value = _ref2$field.value,
|
|
1053
|
+
field = _objectWithoutProperties__default["default"](_ref2$field, _excluded$3),
|
|
1054
|
+
form = _ref2.form;
|
|
1055
|
+
return /*#__PURE__*/jsxRuntime.jsx(DatePicker__default["default"], _objectSpread$d(_objectSpread$d({}, _objectSpread$d(_objectSpread$d({}, field), {}, {
|
|
1056
|
+
type: type
|
|
1057
|
+
})), {}, {
|
|
1058
|
+
dateFormat: "MMM D, YYYY",
|
|
1059
|
+
error: meta.touched ? meta.error : "",
|
|
1060
|
+
placeholder: index.fieldWithFallback(question, "placeholder"),
|
|
1061
|
+
popupClassName: "neeto-form-engine-date-picker-popup",
|
|
1062
|
+
required: isRequired,
|
|
1063
|
+
size: "small",
|
|
1064
|
+
value: getValidDate(value),
|
|
1065
|
+
onChange: function onChange(date) {
|
|
1066
|
+
form.setFieldValue(name, date ? date.toISOString() : "");
|
|
1067
|
+
}
|
|
1068
|
+
}));
|
|
1069
|
+
}
|
|
1070
|
+
})
|
|
1071
|
+
})]
|
|
1072
|
+
});
|
|
1073
|
+
};
|
|
1074
|
+
|
|
1075
|
+
function ownKeys$c(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1076
|
+
function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1077
|
+
var EmailField = function EmailField(_ref) {
|
|
1078
|
+
var question = _ref.question,
|
|
1079
|
+
customValidator = _ref.customValidator,
|
|
1080
|
+
autoComplete = _ref.autoComplete;
|
|
1081
|
+
var name = question.id,
|
|
1082
|
+
kind = question.kind,
|
|
1083
|
+
isRequired = question.isRequired,
|
|
1084
|
+
isDomainRestrictionEnabled = question.isDomainRestrictionEnabled,
|
|
1085
|
+
restrictedDomains = question.restrictedDomains,
|
|
1086
|
+
nodeId = question.nodeId;
|
|
1087
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1088
|
+
var type = constants.QUESTION_KIND[kind.toUpperCase()].type;
|
|
1089
|
+
var _useField = formik.useField({
|
|
1090
|
+
name: name || nodeId,
|
|
1091
|
+
validate: validateFieldValue({
|
|
1092
|
+
kind: kind,
|
|
1093
|
+
label: label,
|
|
1094
|
+
isRequired: isRequired,
|
|
1095
|
+
customValidator: customValidator,
|
|
1096
|
+
restrictedDomains: isDomainRestrictionEnabled ? restrictedDomains : []
|
|
1097
|
+
})
|
|
1098
|
+
}),
|
|
1099
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3),
|
|
1100
|
+
field = _useField2[0],
|
|
1101
|
+
_useField2$ = _useField2[1],
|
|
1102
|
+
touched = _useField2$.touched,
|
|
1103
|
+
error = _useField2$.error,
|
|
1104
|
+
_useField2$2 = _useField2[2],
|
|
1105
|
+
setValue = _useField2$2.setValue,
|
|
1106
|
+
setTouched = _useField2$2.setTouched;
|
|
1107
|
+
var handleFieldChange = utils$1.withEventTargetValue(setValue);
|
|
1108
|
+
return /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], _objectSpread$c(_objectSpread$c({}, _objectSpread$c(_objectSpread$c({
|
|
1109
|
+
type: type
|
|
1110
|
+
}, field), {}, {
|
|
1111
|
+
autoComplete: autoComplete,
|
|
1112
|
+
label: label
|
|
1113
|
+
})), {}, {
|
|
1114
|
+
error: touched ? error : "",
|
|
1115
|
+
name: kind,
|
|
1116
|
+
placeholder: index.fieldWithFallback(question, "placeholder"),
|
|
1117
|
+
required: isRequired,
|
|
1118
|
+
onBlur: function onBlur() {
|
|
1119
|
+
return setTouched(true);
|
|
1120
|
+
},
|
|
1121
|
+
onChange: handleFieldChange
|
|
1122
|
+
}));
|
|
1123
|
+
};
|
|
1124
|
+
|
|
1125
|
+
function ownKeys$b(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1126
|
+
function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1127
|
+
var useFileUpload = function useFileUpload(_ref) {
|
|
1128
|
+
var disabled = _ref.disabled,
|
|
1129
|
+
accept = _ref.accept,
|
|
1130
|
+
multiple = _ref.multiple,
|
|
1131
|
+
name = _ref.name,
|
|
1132
|
+
maxFileSize = _ref.maxFileSize;
|
|
1133
|
+
var _useState = React.useState({}),
|
|
1134
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1135
|
+
uploadProgress = _useState2[0],
|
|
1136
|
+
setUploadProgress = _useState2[1];
|
|
1137
|
+
var _useState3 = React.useState(""),
|
|
1138
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
1139
|
+
uploadError = _useState4[0],
|
|
1140
|
+
setUploadError = _useState4[1];
|
|
1141
|
+
var _useField = formik.useField(name),
|
|
1142
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3);
|
|
1143
|
+
_useField2[0];
|
|
1144
|
+
var value = _useField2[1].value,
|
|
1145
|
+
_useField2$ = _useField2[2],
|
|
1146
|
+
setValue = _useField2$.setValue,
|
|
1147
|
+
setError = _useField2$.setError,
|
|
1148
|
+
setTouched = _useField2$.setTouched;
|
|
1149
|
+
var filesRef = React.useRef(value === null || value === void 0 ? void 0 : value.files);
|
|
1150
|
+
filesRef.current = value === null || value === void 0 ? void 0 : value.files;
|
|
1151
|
+
var cancel = React.useCallback(function (index) {
|
|
1152
|
+
return function () {
|
|
1153
|
+
var _value$files;
|
|
1154
|
+
setUploadProgress(ramda.assoc(value.files[index].name, null));
|
|
1155
|
+
var newFiles = (_value$files = value.files) === null || _value$files === void 0 ? void 0 : _value$files.filter(function (_, idx) {
|
|
1156
|
+
return idx !== index;
|
|
1157
|
+
});
|
|
1158
|
+
setValue({
|
|
1159
|
+
files: newFiles
|
|
1160
|
+
});
|
|
1161
|
+
};
|
|
1162
|
+
}, [value]);
|
|
1163
|
+
React.useEffect(function () {
|
|
1164
|
+
uploadError && setError(uploadError);
|
|
1165
|
+
}, [uploadError]);
|
|
1166
|
+
var onDropAccepted = /*#__PURE__*/function () {
|
|
1167
|
+
var _ref2 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(acceptedFiles) {
|
|
1168
|
+
var initialFiles, updatedFiles, newFiles;
|
|
1169
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
1170
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1171
|
+
case 0:
|
|
1172
|
+
setTouched(false);
|
|
1173
|
+
setUploadError("");
|
|
1174
|
+
initialFiles = acceptedFiles.map(function (file) {
|
|
1175
|
+
return {
|
|
1176
|
+
name: file.name,
|
|
1177
|
+
size: file.size
|
|
1178
|
+
};
|
|
1179
|
+
});
|
|
1180
|
+
updatedFiles = multiple ? [].concat(_toConsumableArray__default["default"](value.files || []), _toConsumableArray__default["default"](initialFiles)) : initialFiles;
|
|
1181
|
+
setValue({
|
|
1182
|
+
files: updatedFiles
|
|
1183
|
+
});
|
|
1184
|
+
_context.next = 7;
|
|
1185
|
+
return new Promise(function (resolve) {
|
|
1186
|
+
var files = [];
|
|
1187
|
+
acceptedFiles.forEach(function (file) {
|
|
1188
|
+
setUploadProgress(ramda.assoc(file.name, 0));
|
|
1189
|
+
var upload = new activestorage.DirectUpload(file, useFormApi.DIRECT_UPLOAD_URL, {
|
|
1190
|
+
directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
|
|
1191
|
+
xhr.upload.addEventListener("progress", function (event) {
|
|
1192
|
+
var percentComplete = Math.round(event.loaded / event.total * 100);
|
|
1193
|
+
setUploadProgress(ramda.assoc(file.name, percentComplete));
|
|
1194
|
+
});
|
|
1195
|
+
xhr.upload.addEventListener("load", function () {
|
|
1196
|
+
setUploadProgress(ramda.assoc(file.name, undefined));
|
|
1197
|
+
});
|
|
1198
|
+
}
|
|
1199
|
+
});
|
|
1200
|
+
upload.create(function (error, blob) {
|
|
1201
|
+
if (error) {
|
|
1202
|
+
return setUploadError(error);
|
|
1203
|
+
}
|
|
1204
|
+
files.push({
|
|
1205
|
+
url: blob.blob_url,
|
|
1206
|
+
name: blob.filename,
|
|
1207
|
+
signedId: blob.signed_id
|
|
1208
|
+
});
|
|
1209
|
+
var isUploadCompleted = multiple ? acceptedFiles.length === files.length : files.length === 1;
|
|
1210
|
+
if (isUploadCompleted) {
|
|
1211
|
+
return resolve(files);
|
|
1212
|
+
}
|
|
1213
|
+
return "";
|
|
1214
|
+
});
|
|
1215
|
+
});
|
|
1216
|
+
return files;
|
|
1217
|
+
});
|
|
1218
|
+
case 7:
|
|
1219
|
+
newFiles = _context.sent;
|
|
1220
|
+
if (multiple) {
|
|
1221
|
+
setValue({
|
|
1222
|
+
files: filesRef.current.map(function (file) {
|
|
1223
|
+
var uploadedFile = neetoCist.findBy({
|
|
1224
|
+
name: file.name
|
|
1225
|
+
}, newFiles);
|
|
1226
|
+
return _objectSpread$b(_objectSpread$b({}, file), uploadedFile);
|
|
1227
|
+
})
|
|
1228
|
+
});
|
|
1229
|
+
} else {
|
|
1230
|
+
setValue({
|
|
1231
|
+
files: newFiles
|
|
1232
|
+
});
|
|
1233
|
+
}
|
|
1234
|
+
case 9:
|
|
1235
|
+
case "end":
|
|
1236
|
+
return _context.stop();
|
|
1237
|
+
}
|
|
1238
|
+
}, _callee);
|
|
1239
|
+
}));
|
|
1240
|
+
return function onDropAccepted(_x) {
|
|
1241
|
+
return _ref2.apply(this, arguments);
|
|
1242
|
+
};
|
|
1243
|
+
}();
|
|
1244
|
+
var onDropRejected = function onDropRejected(fileRejections) {
|
|
1245
|
+
fileRejections.forEach(function (fileObject) {
|
|
1246
|
+
setTouched(true);
|
|
1247
|
+
setUploadError(renderErrorMessage(fileObject, maxFileSize, multiple));
|
|
1248
|
+
});
|
|
1249
|
+
};
|
|
1250
|
+
var _useDropzone = reactDropzone.useDropzone({
|
|
1251
|
+
disabled: disabled,
|
|
1252
|
+
accept: accept,
|
|
1253
|
+
multiple: multiple,
|
|
1254
|
+
onDropAccepted: onDropAccepted,
|
|
1255
|
+
onDropRejected: onDropRejected,
|
|
1256
|
+
maxSize: convertMbToBytes(maxFileSize)
|
|
1257
|
+
}),
|
|
1258
|
+
getRootProps = _useDropzone.getRootProps,
|
|
1259
|
+
getInputProps = _useDropzone.getInputProps,
|
|
1260
|
+
isDragActive = _useDropzone.isDragActive,
|
|
1261
|
+
fileRejections = _useDropzone.fileRejections;
|
|
1262
|
+
return {
|
|
1263
|
+
files: value === null || value === void 0 ? void 0 : value.files,
|
|
1264
|
+
progress: uploadProgress,
|
|
1265
|
+
cancel: cancel,
|
|
1266
|
+
getRootProps: getRootProps,
|
|
1267
|
+
getInputProps: getInputProps,
|
|
1268
|
+
isDragActive: isDragActive,
|
|
1269
|
+
fileRejections: fileRejections
|
|
1270
|
+
};
|
|
1271
|
+
};
|
|
1272
|
+
|
|
1273
|
+
var _path;
|
|
1274
|
+
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); }
|
|
1275
|
+
const SvgFileUpload = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
|
|
1276
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1277
|
+
width: 48,
|
|
1278
|
+
height: 36,
|
|
1279
|
+
fill: "none"
|
|
1280
|
+
}, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1281
|
+
fill: "currentColor",
|
|
1282
|
+
d: "M32 26h-6v10h-4V26h-6l8-8 8 8zm6.958-11.816C38.534 6.282 32.012 0 24 0S9.466 6.282 9.042 14.184C3.902 15.11 0 19.596 0 25c0 6.074 4.926 11 11 11h7v-4h-7c-3.86 0-7-3.14-7-7 0-5.594 4.958-7.666 8.866-7.44C12.532 9.124 17.282 4 24 4c6.906 0 11.782 5.594 11.134 13.56C38.624 17.468 44 19.062 44 25c0 3.86-3.14 7-7 7h-7v4h7c6.074 0 11-4.926 11-11 0-5.404-3.902-9.89-9.042-10.816z"
|
|
1283
|
+
})));
|
|
1284
|
+
|
|
1285
|
+
function ownKeys$a(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1286
|
+
function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1287
|
+
var DropZone = function DropZone(_ref) {
|
|
1288
|
+
var isDragActive = _ref.isDragActive,
|
|
1289
|
+
getRootProps = _ref.getRootProps,
|
|
1290
|
+
getInputProps = _ref.getInputProps,
|
|
1291
|
+
multipleFilesAllowed = _ref.multipleFilesAllowed,
|
|
1292
|
+
_ref$hasFileSizeLimit = _ref.hasFileSizeLimit,
|
|
1293
|
+
hasFileSizeLimit = _ref$hasFileSizeLimit === void 0 ? true : _ref$hasFileSizeLimit,
|
|
1294
|
+
maxFileSize = _ref.maxFileSize,
|
|
1295
|
+
allowedFileTypes = _ref.allowedFileTypes;
|
|
1296
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
1297
|
+
t = _useTranslation.t;
|
|
1298
|
+
var shouldShowFileSizeLimit = hasFileSizeLimit && maxFileSize;
|
|
1299
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$a(_objectSpread$a({}, getRootProps({
|
|
1300
|
+
className: classnames__default["default"](["neeto-form-engine-file-upload__dropzone"], {
|
|
1301
|
+
"neeto-form-engine-file-upload__dropzone--drag-active": isDragActive
|
|
1302
|
+
})
|
|
1303
|
+
})), {}, {
|
|
1304
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1305
|
+
className: "neeto-form-engine-file-upload__dropzone-inner",
|
|
1306
|
+
"data-cy": "file-upload-body",
|
|
1307
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(SvgFileUpload, {
|
|
1308
|
+
className: "neeto-form-engine-file-upload__upload-icon"
|
|
1309
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1310
|
+
className: "neeto-form-engine-file-upload__dropzone-content",
|
|
1311
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
|
|
1312
|
+
className: "neeto-form-engine-file-upload__upload-label",
|
|
1313
|
+
htmlFor: "file-upload",
|
|
1314
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
1315
|
+
i18nKey: "neetoForm.fileUpload.dropzone.chooseOrDragFile",
|
|
1316
|
+
components: {
|
|
1317
|
+
typography: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1318
|
+
component: "span",
|
|
1319
|
+
weight: "semibold"
|
|
1320
|
+
}),
|
|
1321
|
+
span: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1322
|
+
component: "span",
|
|
1323
|
+
weight: "normal"
|
|
1324
|
+
})
|
|
1325
|
+
}
|
|
1326
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", _objectSpread$a(_objectSpread$a({}, getInputProps()), {}, {
|
|
1327
|
+
"data-cy": "file-browse-button"
|
|
1328
|
+
}))]
|
|
1329
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1330
|
+
className: "neeto-form-engine-file-upload__dropzone-helper-block",
|
|
1331
|
+
children: [!multipleFilesAllowed && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1332
|
+
className: "neeto-form-engine-file-upload__dropzone-helper-text",
|
|
1333
|
+
"data-cy": "upload-only-one-file-text",
|
|
1334
|
+
style: "body3",
|
|
1335
|
+
children: t("neetoForm.fileUpload.dropzone.oneFileAllowed")
|
|
1336
|
+
}), shouldShowFileSizeLimit && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1337
|
+
className: "neeto-form-engine-file-upload__dropzone-helper-text",
|
|
1338
|
+
"data-cy": "maximum-allowed-size-text",
|
|
1339
|
+
style: "body3",
|
|
1340
|
+
children: t("neetoForm.fileUpload.dropzone.maxFileSize", {
|
|
1341
|
+
size: maxFileSize,
|
|
1342
|
+
unit: t("neetoForm.fileUpload.mb")
|
|
1343
|
+
})
|
|
1344
|
+
}), allowedFileTypes && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1345
|
+
className: "neeto-form-engine-file-upload__dropzone-helper-text",
|
|
1346
|
+
"data-cy": "allowed-files-types-text",
|
|
1347
|
+
style: "body3",
|
|
1348
|
+
children: t("neetoForm.fileUpload.dropzone.allowedFileTypes", {
|
|
1349
|
+
types: allowedFileTypes
|
|
1350
|
+
})
|
|
1351
|
+
})]
|
|
1352
|
+
})]
|
|
1353
|
+
})]
|
|
1354
|
+
})
|
|
1355
|
+
}));
|
|
1356
|
+
};
|
|
1357
|
+
|
|
1358
|
+
var Progress = function Progress(_ref) {
|
|
1359
|
+
var percents = _ref.percents,
|
|
1360
|
+
_ref$stroke = _ref.stroke,
|
|
1361
|
+
stroke = _ref$stroke === void 0 ? "blue" : _ref$stroke,
|
|
1362
|
+
_ref$emptyStroke = _ref.emptyStroke,
|
|
1363
|
+
emptyStroke = _ref$emptyStroke === void 0 ? stroke : _ref$emptyStroke,
|
|
1364
|
+
_ref$emptyStrokeOpaci = _ref.emptyStrokeOpacity,
|
|
1365
|
+
emptyStrokeOpacity = _ref$emptyStrokeOpaci === void 0 ? 0.25 : _ref$emptyStrokeOpaci,
|
|
1366
|
+
_ref$duration = _ref.duration,
|
|
1367
|
+
duration = _ref$duration === void 0 ? 0.5 : _ref$duration,
|
|
1368
|
+
_ref$delay = _ref.delay,
|
|
1369
|
+
delay = _ref$delay === void 0 ? 0 : _ref$delay,
|
|
1370
|
+
_ref$size = _ref.size,
|
|
1371
|
+
size = _ref$size === void 0 ? 100 : _ref$size,
|
|
1372
|
+
_ref$strokeWidth = _ref.strokeWidth,
|
|
1373
|
+
strokeWidth = _ref$strokeWidth === void 0 ? 12 : _ref$strokeWidth;
|
|
1374
|
+
var radius = 45;
|
|
1375
|
+
var circumference = Math.ceil(2 * Math.PI * radius);
|
|
1376
|
+
var fillPercents = Math.abs(Math.ceil(circumference / 100 * (percents - 100)));
|
|
1377
|
+
var transition = {
|
|
1378
|
+
duration: duration,
|
|
1379
|
+
delay: delay
|
|
1380
|
+
};
|
|
1381
|
+
var variants = {
|
|
1382
|
+
hidden: {
|
|
1383
|
+
strokeDashoffset: circumference,
|
|
1384
|
+
transition: transition
|
|
1385
|
+
},
|
|
1386
|
+
show: {
|
|
1387
|
+
strokeDashoffset: fillPercents,
|
|
1388
|
+
transition: transition
|
|
1389
|
+
}
|
|
1390
|
+
};
|
|
1391
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1392
|
+
className: "neeto-form-engine-progress__circle",
|
|
1393
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1394
|
+
className: "neeto-form-engine-progress__circle-wrapper",
|
|
1395
|
+
style: {
|
|
1396
|
+
height: size
|
|
1397
|
+
},
|
|
1398
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("svg", {
|
|
1399
|
+
height: size,
|
|
1400
|
+
version: "1.1",
|
|
1401
|
+
viewBox: "0 0 100 100",
|
|
1402
|
+
width: size,
|
|
1403
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1404
|
+
children: /*#__PURE__*/jsxRuntime.jsx("circle", {
|
|
1405
|
+
strokeWidth: strokeWidth,
|
|
1406
|
+
className: "circle",
|
|
1407
|
+
cx: "50",
|
|
1408
|
+
cy: "50",
|
|
1409
|
+
fill: "transparent",
|
|
1410
|
+
r: radius,
|
|
1411
|
+
stroke: emptyStroke,
|
|
1412
|
+
strokeOpacity: emptyStrokeOpacity
|
|
1413
|
+
})
|
|
1414
|
+
}), /*#__PURE__*/jsxRuntime.jsx("svg", {
|
|
1415
|
+
height: size,
|
|
1416
|
+
viewBox: "0 0 100 100",
|
|
1417
|
+
width: size,
|
|
1418
|
+
style: {
|
|
1419
|
+
position: "absolute",
|
|
1420
|
+
transform: "rotate(-90deg)",
|
|
1421
|
+
overflow: "visible",
|
|
1422
|
+
top: 0
|
|
1423
|
+
},
|
|
1424
|
+
children: /*#__PURE__*/jsxRuntime.jsx(framerMotion.motion.circle, {
|
|
1425
|
+
stroke: stroke,
|
|
1426
|
+
strokeWidth: strokeWidth,
|
|
1427
|
+
variants: variants,
|
|
1428
|
+
animate: "show",
|
|
1429
|
+
cx: "50",
|
|
1430
|
+
cy: "50",
|
|
1431
|
+
fill: "transparent",
|
|
1432
|
+
initial: "hidden",
|
|
1433
|
+
r: radius,
|
|
1434
|
+
strokeDasharray: circumference,
|
|
1435
|
+
strokeDashoffset: fillPercents
|
|
1436
|
+
})
|
|
1437
|
+
})]
|
|
1438
|
+
})
|
|
1439
|
+
});
|
|
1440
|
+
};
|
|
1441
|
+
|
|
1442
|
+
var FILE_MIME_TYPES = {
|
|
1443
|
+
pdf: ["application/pdf"],
|
|
1444
|
+
doc: ["application/msword", "application/wps-writer"],
|
|
1445
|
+
docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
|
|
1446
|
+
xls: ["application/vnd.ms-excel"],
|
|
1447
|
+
xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
|
|
1448
|
+
csv: ["text/csv"],
|
|
1449
|
+
txt: ["text/plain"],
|
|
1450
|
+
rtf: ["application/rtf", "text/rtf"],
|
|
1451
|
+
html: ["text/html"],
|
|
1452
|
+
htm: ["text/html"],
|
|
1453
|
+
md: ["text/markdown", "text/x-markdown"],
|
|
1454
|
+
zip: ["application/zip"],
|
|
1455
|
+
mp3: ["audio/mpeg"],
|
|
1456
|
+
wma: ["audio/x-ms-wma", "video/x-ms-asf"],
|
|
1457
|
+
mp4: ["video/mp4"],
|
|
1458
|
+
mpg: ["video/mpeg"],
|
|
1459
|
+
mpeg: ["video/mpeg"],
|
|
1460
|
+
flv: ["video/x-flv"],
|
|
1461
|
+
avi: ["video/x-msvideo"],
|
|
1462
|
+
jpg: ["image/jpeg"],
|
|
1463
|
+
jpeg: ["image/jpeg"],
|
|
1464
|
+
png: ["image/png"],
|
|
1465
|
+
gif: ["image/gif"]
|
|
1466
|
+
};
|
|
1467
|
+
|
|
1468
|
+
var getAcceptedFileTypes = function getAcceptedFileTypes(allowedFileTypes) {
|
|
1469
|
+
var accepted = {};
|
|
1470
|
+
allowedFileTypes.split(", ").forEach(function (type) {
|
|
1471
|
+
var mimeTypes = FILE_MIME_TYPES[type];
|
|
1472
|
+
var extension = ".".concat(type);
|
|
1473
|
+
if (neetoCist.isNotPresent(type) || neetoCist.isNotPresent(mimeTypes)) return;
|
|
1474
|
+
mimeTypes.forEach(function (mimeType) {
|
|
1475
|
+
if (accepted[mimeType]) accepted[mimeType].push(extension);else accepted[mimeType] = [extension];
|
|
1476
|
+
});
|
|
1477
|
+
});
|
|
1478
|
+
return accepted;
|
|
1479
|
+
};
|
|
1480
|
+
var convertBytesToMb = function convertBytesToMb(bytes) {
|
|
1481
|
+
return (bytes / (1024 * 1024)).toFixed(2);
|
|
1482
|
+
};
|
|
1483
|
+
|
|
1484
|
+
var FilePreview = reactUtils.withT(function (_ref) {
|
|
1485
|
+
var t = _ref.t,
|
|
1486
|
+
file = _ref.file,
|
|
1487
|
+
isUploading = _ref.isUploading,
|
|
1488
|
+
cancel = _ref.cancel,
|
|
1489
|
+
progress = _ref.progress;
|
|
1490
|
+
return /*#__PURE__*/jsxRuntime.jsxs("li", {
|
|
1491
|
+
className: "neeto-form-engine-file-upload__uploaded-list-item",
|
|
1492
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1493
|
+
className: "neeto-form-engine-file-upload__file-preview",
|
|
1494
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
1495
|
+
className: classnames__default["default"]("p-0", {
|
|
1496
|
+
invisible: isUploading
|
|
1497
|
+
}),
|
|
1498
|
+
href: file.url,
|
|
1499
|
+
icon: FileGeneric__default["default"],
|
|
1500
|
+
iconSize: 24,
|
|
1501
|
+
rel: "noreferrer",
|
|
1502
|
+
size: "large",
|
|
1503
|
+
style: "text",
|
|
1504
|
+
target: "_blank"
|
|
1505
|
+
}), isUploading && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1506
|
+
className: "neeto-form-engine-progress",
|
|
1507
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Progress, {
|
|
1508
|
+
percents: progress || 0,
|
|
1509
|
+
size: 20
|
|
1510
|
+
})
|
|
1511
|
+
})]
|
|
1512
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1513
|
+
className: "flex min-w-0 grow flex-col break-words",
|
|
1514
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1515
|
+
className: "neeto-form-engine-file-upload__file-info-name",
|
|
1516
|
+
style: "body2",
|
|
1517
|
+
children: file.name
|
|
1518
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1519
|
+
className: "neeto-form-engine-file-upload__file-info-size",
|
|
1520
|
+
style: "body3",
|
|
1521
|
+
children: file.size ? t("neetoForm.fileUpload.fileSizeInMb", {
|
|
1522
|
+
fileSize: convertBytesToMb(file.size)
|
|
1523
|
+
}) : ""
|
|
1524
|
+
})]
|
|
1525
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1526
|
+
className: "neeto-form-engine-file-upload__actions",
|
|
1527
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
1528
|
+
className: classnames__default["default"]("neeto-form-engine-file-upload__success-indicator", {
|
|
1529
|
+
"neeto-form-engine-file-upload__success-indicator--active": file.url
|
|
1530
|
+
}),
|
|
1531
|
+
children: file.url && /*#__PURE__*/jsxRuntime.jsx(Check__default["default"], {})
|
|
1532
|
+
}), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
1533
|
+
className: "neeto-form-engine-file-upload__button--red neeto-form-engine-file-upload__remove-button",
|
|
1534
|
+
type: "button",
|
|
1535
|
+
onClick: cancel,
|
|
1536
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Close__default["default"], {})
|
|
1537
|
+
})]
|
|
1538
|
+
})]
|
|
1539
|
+
}, file.url);
|
|
1540
|
+
});
|
|
1541
|
+
|
|
1542
|
+
var FileUploadField = function FileUploadField(_ref) {
|
|
1543
|
+
var question = _ref.question,
|
|
1544
|
+
_ref$preview = _ref.preview,
|
|
1545
|
+
preview = _ref$preview === void 0 ? false : _ref$preview,
|
|
1546
|
+
customValidator = _ref.customValidator;
|
|
1547
|
+
var name = question.id,
|
|
1548
|
+
kind = question.kind,
|
|
1549
|
+
isRequired = question.isRequired,
|
|
1550
|
+
nodeId = question.nodeId,
|
|
1551
|
+
allowedFileTypes = question.allowedFileTypes,
|
|
1552
|
+
multipleFilesAllowed = question.multipleFilesAllowed,
|
|
1553
|
+
maxFileSize = question.maxFileSize;
|
|
1554
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1555
|
+
var _useField = formik.useField({
|
|
1556
|
+
name: name || nodeId,
|
|
1557
|
+
validate: validateFieldValue({
|
|
1558
|
+
kind: kind,
|
|
1559
|
+
label: label,
|
|
1560
|
+
isRequired: isRequired,
|
|
1561
|
+
customValidator: customValidator,
|
|
1562
|
+
multipleFilesAllowed: multipleFilesAllowed
|
|
1563
|
+
})
|
|
1564
|
+
}),
|
|
1565
|
+
_useField2 = _slicedToArray__default["default"](_useField, 2);
|
|
1566
|
+
_useField2[0];
|
|
1567
|
+
var _useField2$ = _useField2[1],
|
|
1568
|
+
touched = _useField2$.touched,
|
|
1569
|
+
error = _useField2$.error;
|
|
1570
|
+
var _useFileUpload = useFileUpload({
|
|
1571
|
+
disabled: preview,
|
|
1572
|
+
accept: getAcceptedFileTypes(allowedFileTypes),
|
|
1573
|
+
multiple: multipleFilesAllowed,
|
|
1574
|
+
name: name || nodeId,
|
|
1575
|
+
maxFileSize: maxFileSize
|
|
1576
|
+
}),
|
|
1577
|
+
files = _useFileUpload.files,
|
|
1578
|
+
progress = _useFileUpload.progress,
|
|
1579
|
+
cancel = _useFileUpload.cancel,
|
|
1580
|
+
getRootProps = _useFileUpload.getRootProps,
|
|
1581
|
+
getInputProps = _useFileUpload.getInputProps,
|
|
1582
|
+
isDragActive = _useFileUpload.isDragActive,
|
|
1583
|
+
fileRejections = _useFileUpload.fileRejections;
|
|
1584
|
+
var shouldShowError = touched && error && ramda.isEmpty(fileRejections);
|
|
1585
|
+
var maxFileSizeInBytes = convertMbToBytes(maxFileSize);
|
|
1586
|
+
var isUploadingFile = function isUploadingFile(file) {
|
|
1587
|
+
return ramda.isNotNil(progress[file.name]) && (progress[file.name] !== 100 || !file.url);
|
|
1588
|
+
};
|
|
1589
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1590
|
+
className: "neeto-form-engine-input__wrapper",
|
|
1591
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1592
|
+
className: "neeto-form-engine-input__label-wrapper",
|
|
1593
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Label__default["default"], {
|
|
1594
|
+
className: "neeto-form-engine-label",
|
|
1595
|
+
required: isRequired,
|
|
1596
|
+
children: label
|
|
1597
|
+
})
|
|
1598
|
+
}), /*#__PURE__*/jsxRuntime.jsx(DropZone, {
|
|
1599
|
+
allowedFileTypes: allowedFileTypes,
|
|
1600
|
+
getInputProps: getInputProps,
|
|
1601
|
+
getRootProps: getRootProps,
|
|
1602
|
+
isDragActive: isDragActive,
|
|
1603
|
+
maxFileSize: maxFileSize,
|
|
1604
|
+
multipleFilesAllowed: multipleFilesAllowed
|
|
1605
|
+
}), neetoCist.isNotEmpty(files) && /*#__PURE__*/jsxRuntime.jsx("ul", {
|
|
1606
|
+
className: "neeto-form-engine-file-upload__uploaded-list",
|
|
1607
|
+
children: files === null || files === void 0 ? void 0 : files.map(function (file, idx) {
|
|
1608
|
+
return /*#__PURE__*/React.createElement(FilePreview, {
|
|
1609
|
+
file: file,
|
|
1610
|
+
cancel: cancel(idx),
|
|
1611
|
+
isUploading: isUploadingFile(file),
|
|
1612
|
+
key: idx,
|
|
1613
|
+
progress: progress[file.name]
|
|
1614
|
+
});
|
|
1615
|
+
})
|
|
1616
|
+
}), neetoCist.isNotEmpty(fileRejections) && fileRejections.map(function (file, index) {
|
|
1617
|
+
return /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1618
|
+
className: "neeto-ui-text-error-800 neeto-ui-bg-pastel-red neeto-ui-rounded-sm mt-2 inline-block w-full p-1 text-sm",
|
|
1619
|
+
children: renderErrorMessage(file, maxFileSizeInBytes, false)
|
|
1620
|
+
}, index);
|
|
1621
|
+
}), shouldShowError && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1622
|
+
className: "neeto-ui-text-error-800 neeto-ui-bg-pastel-red neeto-ui-rounded-sm mt-2 inline-block w-full p-1 text-sm",
|
|
1623
|
+
children: error
|
|
1624
|
+
})]
|
|
1625
|
+
});
|
|
1626
|
+
};
|
|
1627
|
+
|
|
1628
|
+
function ownKeys$9(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1629
|
+
function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1630
|
+
var NameField = function NameField(_ref) {
|
|
1631
|
+
var question = _ref.question,
|
|
1632
|
+
customValidator = _ref.customValidator,
|
|
1633
|
+
autoComplete = _ref.autoComplete;
|
|
1634
|
+
var name = question.id,
|
|
1635
|
+
kind = question.kind,
|
|
1636
|
+
isRequired = question.isRequired,
|
|
1637
|
+
nodeId = question.nodeId;
|
|
1638
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1639
|
+
var _QUESTION_KIND$kind$t = constants.QUESTION_KIND[kind.toUpperCase()].type,
|
|
1640
|
+
type = _QUESTION_KIND$kind$t === void 0 ? "text" : _QUESTION_KIND$kind$t;
|
|
1641
|
+
var _useField = formik.useField({
|
|
1642
|
+
name: name || nodeId,
|
|
1643
|
+
validate: validateFieldValue({
|
|
1644
|
+
kind: kind,
|
|
1645
|
+
label: label,
|
|
1646
|
+
isRequired: isRequired,
|
|
1647
|
+
customValidator: customValidator
|
|
1648
|
+
})
|
|
1649
|
+
}),
|
|
1650
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3),
|
|
1651
|
+
field = _useField2[0],
|
|
1652
|
+
_useField2$ = _useField2[1],
|
|
1653
|
+
touched = _useField2$.touched,
|
|
1654
|
+
error = _useField2$.error,
|
|
1655
|
+
_useField2$2 = _useField2[2],
|
|
1656
|
+
setValue = _useField2$2.setValue,
|
|
1657
|
+
setTouched = _useField2$2.setTouched;
|
|
1658
|
+
var handleFieldChange = utils$1.withEventTargetValue(setValue);
|
|
1659
|
+
return /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({
|
|
1660
|
+
type: type
|
|
1661
|
+
}, field), {}, {
|
|
1662
|
+
autoComplete: autoComplete,
|
|
1663
|
+
label: label
|
|
1664
|
+
})), {}, {
|
|
1665
|
+
error: touched ? error : "",
|
|
1666
|
+
name: kind,
|
|
1667
|
+
placeholder: index.fieldWithFallback(question, "placeholder"),
|
|
1668
|
+
required: isRequired,
|
|
1669
|
+
onBlur: function onBlur() {
|
|
1670
|
+
return setTouched(true);
|
|
1671
|
+
},
|
|
1672
|
+
onChange: handleFieldChange
|
|
1673
|
+
}));
|
|
1674
|
+
};
|
|
1675
|
+
|
|
1676
|
+
var Choices = function Choices(_ref) {
|
|
1677
|
+
var label = _ref.label,
|
|
1678
|
+
options = _ref.options,
|
|
1679
|
+
type = _ref.type,
|
|
1680
|
+
name = _ref.name,
|
|
1681
|
+
value = _ref.value,
|
|
1682
|
+
onChange = _ref.onChange,
|
|
1683
|
+
error = _ref.error;
|
|
1684
|
+
var isCheckBox = type === "checkbox";
|
|
1685
|
+
var ChoiceWrapper = isCheckBox ? "div" : Radio__default["default"];
|
|
1686
|
+
var Component = isCheckBox ? Checkbox__default["default"] : Radio__default["default"].Item;
|
|
1687
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1688
|
+
className: "neeto-form-engine-choices__wrapper",
|
|
1689
|
+
"data-cy": "".concat(neetoCist.hyphenate(label), "-select-container-wrapper"),
|
|
1690
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("label", {
|
|
1691
|
+
className: "neeto-form-engine-label",
|
|
1692
|
+
children: label
|
|
1693
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ChoiceWrapper, {
|
|
1694
|
+
className: "neeto-form-engine-choices",
|
|
1695
|
+
stacked: !isCheckBox,
|
|
1696
|
+
children: options.map(function (option, index) {
|
|
1697
|
+
var _value$index;
|
|
1698
|
+
return /*#__PURE__*/jsxRuntime.jsx("label", {
|
|
1699
|
+
htmlFor: option.id,
|
|
1700
|
+
className: classnames__default["default"]("neeto-form-engine-choice", {
|
|
1701
|
+
active: false
|
|
1702
|
+
}),
|
|
1703
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Component, {
|
|
1704
|
+
onChange: onChange,
|
|
1705
|
+
type: type,
|
|
1706
|
+
id: option.id,
|
|
1707
|
+
label: option.label,
|
|
1708
|
+
name: isCheckBox ? "".concat(name, ".").concat(index) : name,
|
|
1709
|
+
value: option.id,
|
|
1710
|
+
checked: isCheckBox ? (_value$index = value === null || value === void 0 ? void 0 : value[index]) !== null && _value$index !== void 0 ? _value$index : false : value === option.id
|
|
1711
|
+
})
|
|
1712
|
+
}, option.id);
|
|
1713
|
+
})
|
|
1714
|
+
}), !!error && typeof error === "string" && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
1715
|
+
className: "neeto-form-engine-input__error",
|
|
1716
|
+
"data-cy": "neeto-form-engine-".concat(type, "-error"),
|
|
1717
|
+
children: error
|
|
1718
|
+
})]
|
|
1719
|
+
});
|
|
1720
|
+
};
|
|
1721
|
+
var Choices$1 = /*#__PURE__*/React.memo(Choices);
|
|
1722
|
+
|
|
1723
|
+
function ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1724
|
+
function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1725
|
+
var OptionsField = function OptionsField(_ref) {
|
|
1726
|
+
var question = _ref.question,
|
|
1727
|
+
customValidator = _ref.customValidator;
|
|
1728
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
1729
|
+
setFieldTouched = _useFormikContext.setFieldTouched,
|
|
1730
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
1731
|
+
validateField = _useFormikContext.validateField;
|
|
1732
|
+
var name = question.id,
|
|
1733
|
+
kind = question.kind,
|
|
1734
|
+
isRequired = question.isRequired,
|
|
1735
|
+
_question$optionsAttr = question.optionsAttributes,
|
|
1736
|
+
options = _question$optionsAttr === void 0 ? [] : _question$optionsAttr;
|
|
1737
|
+
var isDropdown = kind === constants.QUESTION_KIND.DROPDOWN.value;
|
|
1738
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1739
|
+
var Component = isDropdown ? Select__default["default"] : Choices$1;
|
|
1740
|
+
var transformedOptions = isDropdown ? options.map(function (option) {
|
|
1741
|
+
return {
|
|
1742
|
+
label: index.fieldWithFallback(option, "label"),
|
|
1743
|
+
displayOrder: option.displayOrder,
|
|
1744
|
+
value: option.id
|
|
1745
|
+
};
|
|
1746
|
+
}) : options.map(function (option) {
|
|
1747
|
+
return _objectSpread$8(_objectSpread$8({}, option), {}, {
|
|
1748
|
+
label: index.fieldWithFallback(option, "label")
|
|
1749
|
+
});
|
|
1750
|
+
});
|
|
1751
|
+
var handleSelect = function handleSelect(option) {
|
|
1752
|
+
setFieldValue(name, option.value, false);
|
|
1753
|
+
setFieldTouched(name, true, false);
|
|
1754
|
+
setTimeout(function () {
|
|
1755
|
+
return validateField(name);
|
|
1756
|
+
});
|
|
1757
|
+
};
|
|
1758
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
|
|
1759
|
+
name: name,
|
|
1760
|
+
validate: validateFieldValue({
|
|
1761
|
+
kind: kind,
|
|
1762
|
+
label: label,
|
|
1763
|
+
isRequired: isRequired,
|
|
1764
|
+
customValidator: customValidator
|
|
1765
|
+
}),
|
|
1766
|
+
children: function children(_ref2) {
|
|
1767
|
+
var meta = _ref2.meta,
|
|
1768
|
+
field = _ref2.field;
|
|
1769
|
+
var onChange = field.onChange,
|
|
1770
|
+
value = field.value;
|
|
1771
|
+
return /*#__PURE__*/jsxRuntime.jsx(Component, {
|
|
1772
|
+
isRequired: isRequired,
|
|
1773
|
+
name: name,
|
|
1774
|
+
error: getError(meta),
|
|
1775
|
+
label: getLabel(label, isRequired),
|
|
1776
|
+
options: transformedOptions,
|
|
1777
|
+
type: kind,
|
|
1778
|
+
value: isDropdown ? neetoCist.findBy({
|
|
1779
|
+
value: value
|
|
1780
|
+
}, transformedOptions) || null : value,
|
|
1781
|
+
onChange: isDropdown ? handleSelect : onChange
|
|
1782
|
+
});
|
|
1783
|
+
}
|
|
1784
|
+
});
|
|
1785
|
+
};
|
|
1786
|
+
|
|
1787
|
+
var PhoneNumberField = function PhoneNumberField(_ref) {
|
|
1788
|
+
var _getPhoneData;
|
|
1789
|
+
var question = _ref.question,
|
|
1790
|
+
autoComplete = _ref.autoComplete;
|
|
1791
|
+
var name = question.id,
|
|
1792
|
+
kind = question.kind,
|
|
1793
|
+
isRequired = question.isRequired,
|
|
1794
|
+
nodeId = question.nodeId;
|
|
1795
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1796
|
+
var _useField = formik.useField({
|
|
1797
|
+
name: name || nodeId,
|
|
1798
|
+
validate: validateFieldValue({
|
|
1799
|
+
kind: kind,
|
|
1800
|
+
label: label,
|
|
1801
|
+
isRequired: isRequired
|
|
1802
|
+
})
|
|
1803
|
+
}),
|
|
1804
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3),
|
|
1805
|
+
value = _useField2[0].value,
|
|
1806
|
+
_useField2$ = _useField2[1],
|
|
1807
|
+
touched = _useField2$.touched,
|
|
1808
|
+
error = _useField2$.error,
|
|
1809
|
+
_useField2$2 = _useField2[2],
|
|
1810
|
+
setValue = _useField2$2.setValue,
|
|
1811
|
+
setTouched = _useField2$2.setTouched;
|
|
1812
|
+
return /*#__PURE__*/jsxRuntime.jsx(PhoneNumber.PhoneNumberInput, {
|
|
1813
|
+
autoComplete: autoComplete,
|
|
1814
|
+
label: label,
|
|
1815
|
+
value: value,
|
|
1816
|
+
className: "neeto-form-engine-input__wrapper items-stretch",
|
|
1817
|
+
error: touched ? error : "",
|
|
1818
|
+
initialCountryCode: (_getPhoneData = getPhoneData(value)) === null || _getPhoneData === void 0 ? void 0 : _getPhoneData.country,
|
|
1819
|
+
placeholder: index.fieldWithFallback(question, "placeholder"),
|
|
1820
|
+
required: isRequired,
|
|
1821
|
+
onBlur: function onBlur() {
|
|
1822
|
+
return setTouched(true);
|
|
1823
|
+
},
|
|
1824
|
+
onChange: setValue
|
|
1825
|
+
});
|
|
1826
|
+
};
|
|
1827
|
+
|
|
1828
|
+
var _excluded$2 = ["name", "label", "error", "lowestRatingLabel", "averageRatingLabel", "highestRatingLabel", "value"];
|
|
1829
|
+
function ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1830
|
+
function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1831
|
+
var Rating = function Rating(_ref) {
|
|
1832
|
+
var name = _ref.name,
|
|
1833
|
+
label = _ref.label,
|
|
1834
|
+
error = _ref.error,
|
|
1835
|
+
lowestRatingLabel = _ref.lowestRatingLabel,
|
|
1836
|
+
averageRatingLabel = _ref.averageRatingLabel,
|
|
1837
|
+
highestRatingLabel = _ref.highestRatingLabel,
|
|
1838
|
+
value = _ref.value,
|
|
1839
|
+
other = _objectWithoutProperties__default["default"](_ref, _excluded$2);
|
|
1840
|
+
var handleClick = function handleClick(e) {
|
|
1841
|
+
return e.currentTarget.nextElementSibling.click();
|
|
1842
|
+
};
|
|
1843
|
+
var render = function render() {
|
|
1844
|
+
var labels = [highestRatingLabel, averageRatingLabel, lowestRatingLabel];
|
|
1845
|
+
return constants.RATING_OPTIONS.map(function (_ref2, index) {
|
|
1846
|
+
var Icon = _ref2.icon,
|
|
1847
|
+
modifier = _ref2.modifier,
|
|
1848
|
+
rating = _ref2.value;
|
|
1849
|
+
return /*#__PURE__*/jsxRuntime.jsxs(React.Fragment, {
|
|
1850
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
1851
|
+
type: "button",
|
|
1852
|
+
className: classnames__default["default"]("neeto-form-engine-rating__item neeto-form-engine-rating__item--".concat(modifier), {
|
|
1853
|
+
active: rating === value
|
|
1854
|
+
}),
|
|
1855
|
+
onClick: handleClick,
|
|
1856
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Icon, {}), /*#__PURE__*/jsxRuntime.jsx("label", {
|
|
1857
|
+
className: "neeto-form-engine-label",
|
|
1858
|
+
children: labels[index]
|
|
1859
|
+
})]
|
|
1860
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", _objectSpread$7({
|
|
1861
|
+
name: name,
|
|
1862
|
+
hidden: true,
|
|
1863
|
+
checked: rating === value,
|
|
1864
|
+
type: "radio",
|
|
1865
|
+
value: rating
|
|
1866
|
+
}, other))]
|
|
1867
|
+
}, rating);
|
|
1868
|
+
});
|
|
1869
|
+
};
|
|
1870
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1871
|
+
className: "neeto-form-engine-rating",
|
|
1872
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("label", {
|
|
1873
|
+
className: "neeto-form-engine-label",
|
|
1874
|
+
children: label
|
|
1875
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1876
|
+
className: "neeto-form-engine-rating__row",
|
|
1877
|
+
children: render()
|
|
1878
|
+
}), !!error && typeof error === "string" && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
1879
|
+
className: "neeto-form-engine-input__error",
|
|
1880
|
+
"data-cy": "neeto-form-engine-rating-error",
|
|
1881
|
+
children: error
|
|
1882
|
+
})]
|
|
1883
|
+
});
|
|
1884
|
+
};
|
|
1885
|
+
var Rating$1 = /*#__PURE__*/React.memo(Rating);
|
|
1886
|
+
|
|
1887
|
+
function ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1888
|
+
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1889
|
+
var RatingField = function RatingField(_ref) {
|
|
1890
|
+
var question = _ref.question,
|
|
1891
|
+
customValidator = _ref.customValidator;
|
|
1892
|
+
var name = question.id,
|
|
1893
|
+
kind = question.kind,
|
|
1894
|
+
isRequired = question.isRequired;
|
|
1895
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1896
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
|
|
1897
|
+
name: name,
|
|
1898
|
+
validate: validateFieldValue({
|
|
1899
|
+
kind: kind,
|
|
1900
|
+
label: label,
|
|
1901
|
+
isRequired: isRequired,
|
|
1902
|
+
customValidator: customValidator
|
|
1903
|
+
}),
|
|
1904
|
+
children: function children(_ref2) {
|
|
1905
|
+
var meta = _ref2.meta,
|
|
1906
|
+
field = _ref2.field;
|
|
1907
|
+
return /*#__PURE__*/jsxRuntime.jsx(Rating$1, _objectSpread$6(_objectSpread$6({}, field), {}, {
|
|
1908
|
+
error: meta.touched ? meta.error : "",
|
|
1909
|
+
label: getLabel(label, isRequired),
|
|
1910
|
+
averageRatingLabel: index.fieldWithFallback(question, "averageRatingLabel") || constants.RATING_VALUES.AVERAGE.label,
|
|
1911
|
+
highestRatingLabel: index.fieldWithFallback(question, "highestRatingLabel") || constants.RATING_VALUES.GOOD.label,
|
|
1912
|
+
lowestRatingLabel: index.fieldWithFallback(question, "lowestRatingLabel") || constants.RATING_VALUES.BAD.label
|
|
1913
|
+
}));
|
|
1914
|
+
}
|
|
1915
|
+
});
|
|
1916
|
+
};
|
|
1917
|
+
|
|
1918
|
+
function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1919
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1920
|
+
var RichTextEditor = function RichTextEditor(_ref) {
|
|
1921
|
+
var editorRef = _ref.editorRef,
|
|
1922
|
+
question = _ref.question,
|
|
1923
|
+
_ref$editorProps = _ref.editorProps,
|
|
1924
|
+
editorProps = _ref$editorProps === void 0 ? {} : _ref$editorProps;
|
|
1925
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
1926
|
+
errors = _useFormikContext.errors,
|
|
1927
|
+
touched = _useFormikContext.touched;
|
|
1928
|
+
var name = question.id,
|
|
1929
|
+
kind = question.kind,
|
|
1930
|
+
isRequired = question.isRequired,
|
|
1931
|
+
nodeId = question.nodeId;
|
|
1932
|
+
var label = index.fieldWithFallback(question, "label");
|
|
1933
|
+
var debouncedPlaceholder = reactUtils.useDebounce(index.fieldWithFallback(question, "placeholder"), 300);
|
|
1934
|
+
var propsToCompare = ["debouncedPlaceholder", "error", "touched"];
|
|
1935
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1936
|
+
className: "neeto-form-engine-input__wrapper",
|
|
1937
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1938
|
+
className: "neeto-form-engine-input__label-wrapper",
|
|
1939
|
+
children: label && /*#__PURE__*/jsxRuntime.jsx("label", {
|
|
1940
|
+
className: "neeto-form-engine-label",
|
|
1941
|
+
children: getLabel(label, isRequired)
|
|
1942
|
+
})
|
|
1943
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.FastField, {
|
|
1944
|
+
debouncedPlaceholder: debouncedPlaceholder,
|
|
1945
|
+
error: errors[name],
|
|
1946
|
+
name: name || nodeId,
|
|
1947
|
+
shouldUpdate: isPropsUnequal(propsToCompare),
|
|
1948
|
+
touched: touched[name],
|
|
1949
|
+
validate: validateFieldValue({
|
|
1950
|
+
kind: kind,
|
|
1951
|
+
label: label,
|
|
1952
|
+
isRequired: isRequired
|
|
1953
|
+
}),
|
|
1954
|
+
children: function children(_ref2) {
|
|
1955
|
+
var field = _ref2.field,
|
|
1956
|
+
form = _ref2.form,
|
|
1957
|
+
meta = _ref2.meta;
|
|
1958
|
+
return /*#__PURE__*/jsxRuntime.jsx(NeetoEditor__default["default"], _objectSpread$5({
|
|
1959
|
+
className: "neeto-form-engine-rich-text-input",
|
|
1960
|
+
error: meta.touched ? meta.error : "",
|
|
1961
|
+
initialValue: field.value,
|
|
1962
|
+
placeholder: debouncedPlaceholder,
|
|
1963
|
+
ref: editorRef,
|
|
1964
|
+
addons: ["attachments", "block-quote", "code-block", "image-upload"],
|
|
1965
|
+
onBlur: function onBlur() {
|
|
1966
|
+
return form.setFieldTouched(name, true);
|
|
1967
|
+
},
|
|
1968
|
+
onChange: function onChange(value) {
|
|
1969
|
+
return form.setFieldValue(name, value);
|
|
1970
|
+
}
|
|
1971
|
+
}, editorProps), debouncedPlaceholder);
|
|
1972
|
+
}
|
|
1973
|
+
})]
|
|
1974
|
+
});
|
|
1975
|
+
};
|
|
1976
|
+
|
|
1977
|
+
var _excluded$1 = ["value", "iconType", "label", "rating"];
|
|
1978
|
+
function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1979
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1980
|
+
var RatingButton = function RatingButton(_ref) {
|
|
1981
|
+
var _ref$value = _ref.value,
|
|
1982
|
+
value = _ref$value === void 0 ? 0 : _ref$value,
|
|
1983
|
+
iconType = _ref.iconType,
|
|
1984
|
+
label = _ref.label,
|
|
1985
|
+
rating = _ref.rating,
|
|
1986
|
+
otherProps = _objectWithoutProperties__default["default"](_ref, _excluded$1);
|
|
1987
|
+
var handleClick = function handleClick(e) {
|
|
1988
|
+
return e.currentTarget.nextElementSibling.click();
|
|
1989
|
+
};
|
|
1990
|
+
var Icon = constants.ICONS_MAP[iconType];
|
|
1991
|
+
var selectedRating = getSelectedRating(value);
|
|
1992
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1993
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
1994
|
+
className: classnames__default["default"]({
|
|
1995
|
+
active: rating === value
|
|
1996
|
+
}),
|
|
1997
|
+
type: "button",
|
|
1998
|
+
onClick: handleClick,
|
|
1999
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Icon, {
|
|
2000
|
+
size: 24,
|
|
2001
|
+
className: classnames__default["default"]("neeto-form-engine-star-rating__icon", {
|
|
2002
|
+
"neeto-form-engine-star-rating__icon--active": rating <= selectedRating
|
|
2003
|
+
})
|
|
2004
|
+
}), /*#__PURE__*/jsxRuntime.jsx("label", {
|
|
2005
|
+
className: "neeto-form-engine-label",
|
|
2006
|
+
children: label
|
|
2007
|
+
})]
|
|
2008
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", _objectSpread$4({
|
|
2009
|
+
hidden: true,
|
|
2010
|
+
checked: ramda.equals(rating, value),
|
|
2011
|
+
type: "radio",
|
|
2012
|
+
value: rating
|
|
2013
|
+
}, otherProps))]
|
|
2014
|
+
});
|
|
2015
|
+
};
|
|
2016
|
+
var RatingButton$1 = /*#__PURE__*/React.memo(RatingButton);
|
|
2017
|
+
|
|
2018
|
+
var _excluded = ["label", "minValue", "maxValue", "error"];
|
|
2019
|
+
function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2020
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2021
|
+
var StarRating = function StarRating(_ref) {
|
|
2022
|
+
var label = _ref.label,
|
|
2023
|
+
minValue = _ref.minValue,
|
|
2024
|
+
maxValue = _ref.maxValue,
|
|
2025
|
+
error = _ref.error,
|
|
2026
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
2027
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
2028
|
+
className: "neeto-form-engine-input__wrapper neeto-form-engine-star-rating",
|
|
2029
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
2030
|
+
className: "neeto-form-engine-input__label-wrapper",
|
|
2031
|
+
children: /*#__PURE__*/jsxRuntime.jsx("label", {
|
|
2032
|
+
className: "neeto-form-engine-label",
|
|
2033
|
+
children: label
|
|
2034
|
+
})
|
|
2035
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
2036
|
+
className: "neeto-form-engine-star-rating__row",
|
|
2037
|
+
children: noQuestions.generateArray(minValue, maxValue).map(function (index) {
|
|
2038
|
+
return /*#__PURE__*/jsxRuntime.jsx(RatingButton$1, _objectSpread$3({
|
|
2039
|
+
label: index,
|
|
2040
|
+
rating: index
|
|
2041
|
+
}, props), index);
|
|
2042
|
+
})
|
|
2043
|
+
}), !!error && typeof error === "string" && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
2044
|
+
className: "neeto-form-engine-input__error",
|
|
2045
|
+
"data-cy": "neeto-form-engine-star-rating-error",
|
|
2046
|
+
children: error
|
|
2047
|
+
})]
|
|
2048
|
+
});
|
|
2049
|
+
};
|
|
2050
|
+
var StarRating$1 = /*#__PURE__*/React.memo(StarRating);
|
|
2051
|
+
|
|
2052
|
+
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2053
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2054
|
+
var StarRatingField = function StarRatingField(_ref) {
|
|
2055
|
+
var question = _ref.question,
|
|
2056
|
+
customValidator = _ref.customValidator;
|
|
2057
|
+
var name = question.id,
|
|
2058
|
+
kind = question.kind,
|
|
2059
|
+
isRequired = question.isRequired,
|
|
2060
|
+
minValue = question.minValue,
|
|
2061
|
+
maxValue = question.maxValue,
|
|
2062
|
+
iconType = question.iconType;
|
|
2063
|
+
var label = index.fieldWithFallback(question, "label");
|
|
2064
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
|
|
2065
|
+
name: name,
|
|
2066
|
+
validate: validateFieldValue({
|
|
2067
|
+
kind: kind,
|
|
2068
|
+
label: label,
|
|
2069
|
+
isRequired: isRequired,
|
|
2070
|
+
customValidator: customValidator
|
|
2071
|
+
}),
|
|
2072
|
+
children: function children(_ref2) {
|
|
2073
|
+
var meta = _ref2.meta,
|
|
2074
|
+
field = _ref2.field;
|
|
2075
|
+
return /*#__PURE__*/jsxRuntime.jsx(StarRating$1, _objectSpread$2({
|
|
2076
|
+
iconType: iconType,
|
|
2077
|
+
maxValue: maxValue,
|
|
2078
|
+
minValue: minValue,
|
|
2079
|
+
name: name,
|
|
2080
|
+
error: meta.touched ? meta.error : "",
|
|
2081
|
+
label: getLabel(label, isRequired)
|
|
2082
|
+
}, field));
|
|
2083
|
+
}
|
|
2084
|
+
});
|
|
2085
|
+
};
|
|
2086
|
+
|
|
2087
|
+
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2088
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2089
|
+
var TermsField = function TermsField(_ref) {
|
|
2090
|
+
var question = _ref.question,
|
|
2091
|
+
customValidator = _ref.customValidator;
|
|
2092
|
+
var name = question.id,
|
|
2093
|
+
kind = question.kind,
|
|
2094
|
+
isRequired = question.isRequired,
|
|
2095
|
+
nodeId = question.nodeId;
|
|
2096
|
+
var label = index.fieldWithFallback(question, "label", true);
|
|
2097
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
|
|
2098
|
+
name: name || nodeId,
|
|
2099
|
+
validate: validateFieldValue({
|
|
2100
|
+
kind: kind,
|
|
2101
|
+
label: label,
|
|
2102
|
+
isRequired: isRequired,
|
|
2103
|
+
customValidator: customValidator
|
|
2104
|
+
}),
|
|
2105
|
+
children: function children(_ref2) {
|
|
2106
|
+
var meta = _ref2.meta,
|
|
2107
|
+
field = _ref2.field;
|
|
2108
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
2109
|
+
className: "neeto-form-engine-terms",
|
|
2110
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Checkbox__default["default"], _objectSpread$1(_objectSpread$1({}, _objectSpread$1(_objectSpread$1({}, field), {}, {
|
|
2111
|
+
name: name
|
|
2112
|
+
})), {}, {
|
|
2113
|
+
checked: field.value,
|
|
2114
|
+
error: meta.touched ? meta.error : "",
|
|
2115
|
+
children: /*#__PURE__*/jsxRuntime.jsx(EditorContent__default["default"], {
|
|
2116
|
+
content: label
|
|
2117
|
+
})
|
|
2118
|
+
}))
|
|
2119
|
+
});
|
|
2120
|
+
}
|
|
2121
|
+
});
|
|
2122
|
+
};
|
|
2123
|
+
|
|
2124
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2125
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2126
|
+
var TextField = function TextField(_ref) {
|
|
2127
|
+
var _otherProps$onChange;
|
|
2128
|
+
var question = _ref.question,
|
|
2129
|
+
customValidator = _ref.customValidator,
|
|
2130
|
+
autoComplete = _ref.autoComplete;
|
|
2131
|
+
var name = question.id,
|
|
2132
|
+
kind = question.kind,
|
|
2133
|
+
isRequired = question.isRequired,
|
|
2134
|
+
nodeId = question.nodeId;
|
|
2135
|
+
var label = index.fieldWithFallback(question, "label");
|
|
2136
|
+
var _QUESTION_KIND$kind$t = constants.QUESTION_KIND[kind.toUpperCase()],
|
|
2137
|
+
_QUESTION_KIND$kind$t2 = _QUESTION_KIND$kind$t.type,
|
|
2138
|
+
type = _QUESTION_KIND$kind$t2 === void 0 ? "text" : _QUESTION_KIND$kind$t2,
|
|
2139
|
+
onKeyDown = _QUESTION_KIND$kind$t.onKeyDown,
|
|
2140
|
+
otherProps = _QUESTION_KIND$kind$t.otherProps;
|
|
2141
|
+
var Component = kind === constants.QUESTION_KIND.TEXTAREA.value ? Textarea__default["default"] : Input__default["default"];
|
|
2142
|
+
var _useField = formik.useField({
|
|
2143
|
+
name: name || nodeId,
|
|
2144
|
+
validate: validateFieldValue({
|
|
2145
|
+
kind: kind,
|
|
2146
|
+
label: label,
|
|
2147
|
+
isRequired: isRequired,
|
|
2148
|
+
customValidator: customValidator
|
|
2149
|
+
})
|
|
2150
|
+
}),
|
|
2151
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3),
|
|
2152
|
+
field = _useField2[0],
|
|
2153
|
+
_useField2$ = _useField2[1],
|
|
2154
|
+
touched = _useField2$.touched,
|
|
2155
|
+
error = _useField2$.error,
|
|
2156
|
+
_useField2$2 = _useField2[2],
|
|
2157
|
+
setValue = _useField2$2.setValue,
|
|
2158
|
+
setTouched = _useField2$2.setTouched;
|
|
2159
|
+
var handleFieldChange = utils$1.withEventTargetValue(setValue);
|
|
2160
|
+
return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({
|
|
2161
|
+
type: type
|
|
2162
|
+
}, field), {}, {
|
|
2163
|
+
autoComplete: autoComplete,
|
|
2164
|
+
label: label,
|
|
2165
|
+
onKeyDown: onKeyDown
|
|
2166
|
+
})), {}, {
|
|
2167
|
+
error: touched ? error : "",
|
|
2168
|
+
name: neetoCist.slugify(label),
|
|
2169
|
+
placeholder: index.fieldWithFallback(question, "placeholder"),
|
|
2170
|
+
required: isRequired,
|
|
2171
|
+
onBlur: function onBlur() {
|
|
2172
|
+
return setTouched(true);
|
|
2173
|
+
},
|
|
2174
|
+
onChange: (_otherProps$onChange = otherProps === null || otherProps === void 0 ? void 0 : otherProps.onChange(handleFieldChange)) !== null && _otherProps$onChange !== void 0 ? _otherProps$onChange : handleFieldChange
|
|
2175
|
+
}));
|
|
2176
|
+
};
|
|
2177
|
+
|
|
2178
|
+
var _QUESTION_TO_COMPONEN, _CAPTCHA_COMPONENT_MA;
|
|
2179
|
+
var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.TEXT.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.NAME.value, NameField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.EMAIL.value, EmailField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.INTEGER.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.DECIMAL.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.PHONE.value, PhoneNumberField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.QUESTION.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.TEXTAREA.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.CHECKBOX.value, OptionsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.RADIO.value, OptionsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.DROPDOWN.value, OptionsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.RATING.value, RatingField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.PARAGRAPH.value, function (_ref) {
|
|
2180
|
+
var question = _ref.question;
|
|
2181
|
+
return /*#__PURE__*/jsxRuntime.jsx(EditorContent__default["default"], {
|
|
2182
|
+
content: index.fieldWithFallback(question, "label", true)
|
|
2183
|
+
});
|
|
2184
|
+
}), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.TERMS.value, TermsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.DATE.value, DateField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.STAR_RATING.value, StarRatingField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.RICH_TEXT.value, RichTextEditor), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.CAPTCHA.value, CaptchaField), _QUESTION_TO_COMPONEN);
|
|
2185
|
+
var CAPTCHA_COMPONENT_MAP = (_CAPTCHA_COMPONENT_MA = {}, _defineProperty__default["default"](_CAPTCHA_COMPONENT_MA, noQuestions.CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), _defineProperty__default["default"](_CAPTCHA_COMPONENT_MA, noQuestions.CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha), _CAPTCHA_COMPONENT_MA);
|
|
2186
|
+
|
|
2187
|
+
var getFieldComponent = function getFieldComponent(_ref) {
|
|
2188
|
+
var kind = _ref.kind;
|
|
2189
|
+
if (kind in QUESTION_TO_COMPONENT_MAP) return QUESTION_TO_COMPONENT_MAP[kind];
|
|
2190
|
+
return function () {
|
|
2191
|
+
return null;
|
|
2192
|
+
};
|
|
2193
|
+
};
|
|
2194
|
+
var isPropsUnequal = function isPropsUnequal(props) {
|
|
2195
|
+
return function (nextProps, prevProps) {
|
|
2196
|
+
return neetoCist.notEqualsDeep(ramda.pick(props, nextProps), ramda.pick(props, prevProps));
|
|
2197
|
+
};
|
|
2198
|
+
};
|
|
2199
|
+
var getValidDate = function getValidDate(date) {
|
|
2200
|
+
if (!date) return "";
|
|
2201
|
+
return dayjs__default["default"](date).isValid() ? dayjs__default["default"](date) : "";
|
|
2202
|
+
};
|
|
2203
|
+
var getPhoneData = function getPhoneData(value, countryCode) {
|
|
2204
|
+
try {
|
|
2205
|
+
return libphonenumberJs.parsePhoneNumber(value, countryCode);
|
|
2206
|
+
} catch (_unused) {
|
|
2207
|
+
return undefined;
|
|
2208
|
+
}
|
|
2209
|
+
};
|
|
2210
|
+
|
|
2211
|
+
exports.FormikWrap = FormikWrap;
|
|
2212
|
+
exports.buildAutoCompleteAttribute = buildAutoCompleteAttribute;
|
|
2213
|
+
exports.clearLocalStorageValues = clearLocalStorageValues;
|
|
2214
|
+
exports.clientI18nInstance = clientI18nInstance;
|
|
2215
|
+
exports.generateFormResponse = generateFormResponse;
|
|
2216
|
+
exports.generateInitValues = generateInitValues;
|
|
2217
|
+
exports.getFieldComponent = getFieldComponent;
|
|
2218
|
+
exports.getWithExpiry = getWithExpiry;
|
|
2219
|
+
exports.mergeRefs = mergeRefs;
|
|
2220
|
+
exports.renderButtonsInOrder = renderButtonsInOrder;
|
|
2221
|
+
//# sourceMappingURL=utils-a487b8ff.js.map
|