@bigbinary/neeto-form-frontend 3.8.2 → 3.9.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.
Files changed (55) hide show
  1. package/app/javascript/src/translations/en.json +12 -4
  2. package/dist/BuildForm.js +135 -62
  3. package/dist/BuildForm.js.map +1 -1
  4. package/dist/ExternalForm.js +5 -9
  5. package/dist/ExternalForm.js.map +1 -1
  6. package/dist/Submission.js +2 -2
  7. package/dist/UrlBuilder.js +5 -11
  8. package/dist/UrlBuilder.js.map +1 -1
  9. package/dist/{buildForm-354c6d6d.js → buildForm-b8eb931e.js} +4 -2
  10. package/dist/buildForm-b8eb931e.js.map +1 -0
  11. package/dist/{buildForm-042737cb.js → buildForm-dfd708c6.js} +4 -2
  12. package/dist/buildForm-dfd708c6.js.map +1 -0
  13. package/dist/cjs/BuildForm.js +135 -62
  14. package/dist/cjs/BuildForm.js.map +1 -1
  15. package/dist/cjs/ExternalForm.js +5 -9
  16. package/dist/cjs/ExternalForm.js.map +1 -1
  17. package/dist/cjs/Submission.js +2 -2
  18. package/dist/cjs/UrlBuilder.js +5 -11
  19. package/dist/cjs/UrlBuilder.js.map +1 -1
  20. package/dist/cjs/hooks.js +3 -3
  21. package/dist/cjs/index.js +7 -11
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/{constants-43eac775.js → constants-4d9fc943.js} +1 -7
  24. package/dist/{constants-43eac775.js.map → constants-4d9fc943.js.map} +1 -1
  25. package/dist/{constants-ca5ca2b1.js → constants-56bf4022.js} +2 -2
  26. package/dist/{constants-ca5ca2b1.js.map → constants-56bf4022.js.map} +1 -1
  27. package/dist/{constants-3d8a5374.js → constants-75b78b3a.js} +2 -7
  28. package/dist/{constants-3d8a5374.js.map → constants-75b78b3a.js.map} +1 -1
  29. package/dist/{constants-669f203a.js → constants-d9148acf.js} +2 -2
  30. package/dist/{constants-669f203a.js.map → constants-d9148acf.js.map} +1 -1
  31. package/dist/hooks.js +3 -3
  32. package/dist/index.js +7 -11
  33. package/dist/index.js.map +1 -1
  34. package/dist/main.css +1 -1
  35. package/dist/main.css.map +1 -1
  36. package/dist/{useFormApi-ca36173e.js → useFormApi-408d0060.js} +1 -3
  37. package/dist/useFormApi-408d0060.js.map +1 -0
  38. package/dist/{useFormApi-d733cb8d.js → useFormApi-e3476a20.js} +2 -3
  39. package/dist/useFormApi-e3476a20.js.map +1 -0
  40. package/dist/{useFormSubmission-866195bb.js → useFormSubmission-46db678f.js} +2 -2
  41. package/dist/{useFormSubmission-866195bb.js.map → useFormSubmission-46db678f.js.map} +1 -1
  42. package/dist/{useFormSubmission-f8866b84.js → useFormSubmission-e2e84587.js} +2 -2
  43. package/dist/{useFormSubmission-f8866b84.js.map → useFormSubmission-e2e84587.js.map} +1 -1
  44. package/dist/{utils-6b8cacdd.js → utils-3eb74c1b.js} +72 -537
  45. package/dist/utils-3eb74c1b.js.map +1 -0
  46. package/dist/{utils-4a844c8d.js → utils-6039d7d2.js} +76 -536
  47. package/dist/utils-6039d7d2.js.map +1 -0
  48. package/package.json +7 -7
  49. package/types.d.ts +2 -1
  50. package/dist/buildForm-042737cb.js.map +0 -1
  51. package/dist/buildForm-354c6d6d.js.map +0 -1
  52. package/dist/useFormApi-ca36173e.js.map +0 -1
  53. package/dist/useFormApi-d733cb8d.js.map +0 -1
  54. package/dist/utils-4a844c8d.js.map +0 -1
  55. package/dist/utils-6b8cacdd.js.map +0 -1
@@ -9,7 +9,7 @@ var libphonenumberJs = require('libphonenumber-js');
9
9
  var ramda = require('ramda');
10
10
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
11
  var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
12
- var constants$1 = require('./constants-ca5ca2b1.js');
12
+ var constants$1 = require('./constants-56bf4022.js');
13
13
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
14
14
  var Plus = require('@bigbinary/neeto-icons/Plus');
15
15
  var Button = require('@bigbinary/neetoui/Button');
@@ -23,8 +23,7 @@ var PhoneNumber = require('@bigbinary/neeto-molecules/PhoneNumber');
23
23
  var yup = require('yup');
24
24
  var i18next = require('i18next');
25
25
  var jsxRuntime = require('react/jsx-runtime');
26
- var path = require('path');
27
- var constants = require('./constants-43eac775.js');
26
+ var constants = require('./constants-4d9fc943.js');
28
27
  var classnames = require('classnames');
29
28
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
30
29
  var Refresh = require('@bigbinary/neeto-icons/Refresh');
@@ -34,15 +33,8 @@ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
34
33
  var ReCAPTCHA = require('react-google-recaptcha');
35
34
  var Checkbox = require('@bigbinary/neetoui/Checkbox');
36
35
  var DatePicker = require('@bigbinary/neetoui/DatePicker');
36
+ var FileUpload = require('@bigbinary/neeto-molecules/FileUpload');
37
37
  var Label = require('@bigbinary/neetoui/Label');
38
- var Typography = require('@bigbinary/neetoui/Typography');
39
- var activestorage = require('@rails/activestorage');
40
- var reactDropzone = require('react-dropzone');
41
- var useFormApi = require('./useFormApi-ca36173e.js');
42
- var FileGeneric = require('@bigbinary/neeto-icons/FileGeneric');
43
- var Check = require('@bigbinary/neeto-icons/Check');
44
- var Close = require('@bigbinary/neeto-icons/Close');
45
- var framerMotion = require('framer-motion');
46
38
  var Select = require('@bigbinary/neetoui/Select');
47
39
  var Radio = require('@bigbinary/neetoui/Radio');
48
40
  var NeetoEditor = require('@bigbinary/neeto-editor/Editor');
@@ -68,7 +60,6 @@ function _interopNamespace(e) {
68
60
  return Object.freeze(n);
69
61
  }
70
62
 
71
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
72
63
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
73
64
  var EditorContent__default = /*#__PURE__*/_interopDefaultLegacy(EditorContent);
74
65
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
@@ -80,7 +71,6 @@ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_obje
80
71
  var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
81
72
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
82
73
  var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
83
- var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
84
74
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
85
75
  var Refresh__default = /*#__PURE__*/_interopDefaultLegacy(Refresh);
86
76
  var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
@@ -89,10 +79,6 @@ var ReCAPTCHA__default = /*#__PURE__*/_interopDefaultLegacy(ReCAPTCHA);
89
79
  var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
90
80
  var DatePicker__default = /*#__PURE__*/_interopDefaultLegacy(DatePicker);
91
81
  var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
92
- var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
93
- var FileGeneric__default = /*#__PURE__*/_interopDefaultLegacy(FileGeneric);
94
- var Check__default = /*#__PURE__*/_interopDefaultLegacy(Check);
95
- var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
96
82
  var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
97
83
  var Radio__default = /*#__PURE__*/_interopDefaultLegacy(Radio);
98
84
  var NeetoEditor__default = /*#__PURE__*/_interopDefaultLegacy(NeetoEditor);
@@ -184,34 +170,33 @@ var FormikWrap = function FormikWrap(_ref) {
184
170
  return children;
185
171
  };
186
172
 
187
- var t$2 = clientI18nInstance.t;
173
+ var t$1 = clientI18nInstance.t;
188
174
  var getInvalidFieldError = function getInvalidFieldError(label) {
189
- return t$2("neetoForm.error.invalidField", {
175
+ return t$1("neetoForm.error.invalidField", {
190
176
  label: label
191
177
  });
192
178
  };
193
179
  var getRequiredFieldError = function getRequiredFieldError(label) {
194
- return t$2("neetoForm.error.requiredField", {
180
+ return t$1("neetoForm.error.requiredField", {
195
181
  label: label
196
182
  });
197
183
  };
198
184
  var getSelectMinError = function getSelectMinError(min) {
199
- var entity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : t$2("neetoForm.common.option");
200
- return t$2("neetoForm.error.selectMin", {
185
+ var entity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : t$1("neetoForm.common.option");
186
+ return t$1("neetoForm.error.selectMin", {
201
187
  min: min,
202
188
  entity: entity
203
189
  });
204
190
  };
205
191
  var getInvalidTypeError = function getInvalidTypeError(label, type) {
206
- return t$2("neetoForm.error.invalidType", {
192
+ return t$1("neetoForm.error.invalidType", {
207
193
  label: label,
208
194
  type: type
209
195
  });
210
196
  };
211
197
 
212
- 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; }
213
- 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; }
214
- var t$1 = clientI18nInstance.t;
198
+ 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; }
199
+ 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; }
215
200
  var toEmailValues = function toEmailValues() {
216
201
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
217
202
  return values.map(function (value) {
@@ -304,7 +289,7 @@ var generateInitValues = function generateInitValues(_ref7) {
304
289
  var valuesMap = {};
305
290
  if (initialValues) {
306
291
  valuesMap = initialValues.reduce(function (acc, answer) {
307
- return _objectSpread$g(_objectSpread$g({}, acc), {}, _defineProperty__default["default"]({}, answer.questionId, {
292
+ return _objectSpread$e(_objectSpread$e({}, acc), {}, _defineProperty__default["default"]({}, answer.questionId, {
308
293
  value: answer.value,
309
294
  optionIds: answer.optionIds
310
295
  }));
@@ -497,34 +482,6 @@ var getError = function getError(meta) {
497
482
  var buildAutoCompleteAttribute = function buildAutoCompleteAttribute(kind, autoCompleteKinds, formDomProps) {
498
483
  return (formDomProps === null || formDomProps === void 0 ? void 0 : formDomProps.autoComplete) === "off" && ramda.includes(kind, autoCompleteKinds) ? "on" : undefined;
499
484
  };
500
- var convertMbToBytes = function convertMbToBytes(mb) {
501
- return mb * 1024 * 1024;
502
- };
503
- var renderErrorMessage = function renderErrorMessage(errorObject, maxFileSize, isMultiple) {
504
- var error = errorObject.errors[0];
505
- var file = errorObject.file;
506
- if (error) {
507
- var code = error.code;
508
- switch (code) {
509
- case constants.ERROR_CODES.FILE_TOO_LARGE:
510
- return t$1("neetoForm.fileUpload.dropzone.errors.fileTooLarge", {
511
- fileName: file.name,
512
- maxSize: Math.round(maxFileSize / 1048576)
513
- });
514
- case constants.ERROR_CODES.FILE_INVALID_TYPE:
515
- return t$1("neetoForm.fileUpload.dropzone.errors.fileInvalidType", {
516
- fileType: path__default["default"].extname(file.name)
517
- });
518
- case constants.ERROR_CODES.TOO_MANY_FILES:
519
- if (!isMultiple) {
520
- return t$1("neetoForm.fileUpload.dropzone.errors.tooManyFiles");
521
- }
522
- }
523
- }
524
- return t$1("neetoForm.fileUpload.dropzone.errors.defaultError", {
525
- fileName: file.name
526
- });
527
- };
528
485
  var renderButtonsInOrder = function renderButtonsInOrder(buttonsArray, shouldReverse) {
529
486
  var orderedButtons = shouldReverse ? buttonsArray.reverse() : buttonsArray;
530
487
  return ramda.map(ramda.identity, orderedButtons);
@@ -537,8 +494,8 @@ var isPhoneNumberField = ramda.includes(ramda.__, [constants.QUESTION_KIND.PHONE
537
494
 
538
495
  var _excluded$4 = ["kind", "customValidator"];
539
496
  var _fieldKindValidatorMa;
540
- 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; }
541
- 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; }
497
+ 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; }
498
+ 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; }
542
499
  var t = clientI18nInstance.t;
543
500
  yup__namespace.addMethod(yup__namespace.array, "unique", function () {
544
501
  var field, message;
@@ -572,9 +529,14 @@ var isValidDate = function isValidDate(date) {
572
529
  var extractEmailDomain = function extractEmailDomain(email) {
573
530
  return email === null || email === void 0 ? void 0 : email.split("@")[1];
574
531
  };
575
- var isEmailFromRestrictedDomain = function isEmailFromRestrictedDomain(email, restrictedDomains) {
532
+ var isEmailFromWhitelistedDomain = function isEmailFromWhitelistedDomain(email, whitelistedDomains) {
533
+ if (ramda.isEmpty(whitelistedDomains)) return true;
534
+ var domain = extractEmailDomain(email);
535
+ return ramda.includes(domain, whitelistedDomains);
536
+ };
537
+ var isEmailFromBlacklistedDomain = function isEmailFromBlacklistedDomain(email, blacklistedDomains) {
576
538
  var domain = extractEmailDomain(email);
577
- return ramda.includes(domain, restrictedDomains);
539
+ return ramda.includes(domain, blacklistedDomains);
578
540
  };
579
541
  var validateTextField = function validateTextField(_ref) {
580
542
  var kind = _ref.kind,
@@ -590,14 +552,15 @@ var validateTextField = function validateTextField(_ref) {
590
552
  var validateEmailField = function validateEmailField(_ref2) {
591
553
  var label = _ref2.label,
592
554
  isRequired = _ref2.isRequired,
593
- restrictedDomains = _ref2.restrictedDomains;
555
+ whitelistedDomains = _ref2.whitelistedDomains,
556
+ blacklistedDomains = _ref2.blacklistedDomains;
594
557
  var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string")).email(getInvalidFieldError("Email")).test("verify domain", function (_ref3) {
595
558
  var value = _ref3.value;
596
559
  return t("neetoForm.error.emailFromRestrictedDomain", {
597
560
  domain: extractEmailDomain(value)
598
561
  });
599
562
  }, function (value) {
600
- return neetoCist.isNotPresent(value) || !isEmailFromRestrictedDomain(value, restrictedDomains);
563
+ return neetoCist.isNotPresent(value) || isEmailFromWhitelistedDomain(value, whitelistedDomains) && !isEmailFromBlacklistedDomain(value, blacklistedDomains);
601
564
  });
602
565
  if (isRequired) schema = schema.trim().required(getRequiredFieldError(label));
603
566
  return schema.trim();
@@ -711,7 +674,7 @@ var validateFieldValue = function validateFieldValue(_ref16) {
711
674
  return function (value) {
712
675
  if (!(kind in fieldKindValidatorMap)) return;
713
676
  var validator = fieldKindValidatorMap[kind];
714
- var schema = customValidator || validator(_objectSpread$f({
677
+ var schema = customValidator || validator(_objectSpread$d({
715
678
  kind: kind
716
679
  }, otherProps));
717
680
 
@@ -923,6 +886,7 @@ var MathCaptcha = function MathCaptcha(_ref) {
923
886
  }, [userInput]);
924
887
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
925
888
  className: "neeto-form-nano-math-captcha",
889
+ "data-cy": "math-captcha",
926
890
  ref: captchaRef,
927
891
  children: [/*#__PURE__*/jsxRuntime.jsx("button", {
928
892
  className: "neeto-form-nano-math-captcha__button",
@@ -932,10 +896,13 @@ var MathCaptcha = function MathCaptcha(_ref) {
932
896
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
933
897
  className: "neeto-form-nano-math-captcha__equation",
934
898
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
899
+ "data-cy": "first-number",
935
900
  children: firstNumber
936
901
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
902
+ "data-cy": "operator",
937
903
  children: operator
938
904
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
905
+ "data-cy": "second-number",
939
906
  children: secondNumber
940
907
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
941
908
  children: "="
@@ -943,6 +910,7 @@ var MathCaptcha = function MathCaptcha(_ref) {
943
910
  }), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
944
911
  required: true,
945
912
  className: "neeto-form-nano-math-captcha__input",
913
+ "data-cy": "math-captcha-input",
946
914
  value: userInput,
947
915
  onBlur: handleBlur,
948
916
  onChange: utils.withEventTargetValue(setUserInput)
@@ -974,8 +942,8 @@ var Recaptcha = function Recaptcha(_ref) {
974
942
  }, clientI18nInstance.language);
975
943
  };
976
944
 
977
- 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; }
978
- 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; }
945
+ 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; }
946
+ 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; }
979
947
  var ConditionField = function ConditionField(_ref) {
980
948
  var question = _ref.question,
981
949
  customValidator = _ref.customValidator;
@@ -995,7 +963,7 @@ var ConditionField = function ConditionField(_ref) {
995
963
  children: function children(_ref2) {
996
964
  var meta = _ref2.meta,
997
965
  field = _ref2.field;
998
- return /*#__PURE__*/jsxRuntime.jsx(Checkbox__default["default"], _objectSpread$e(_objectSpread$e({}, _objectSpread$e(_objectSpread$e({}, field), {}, {
966
+ return /*#__PURE__*/jsxRuntime.jsx(Checkbox__default["default"], _objectSpread$c(_objectSpread$c({}, _objectSpread$c(_objectSpread$c({}, field), {}, {
999
967
  label: label,
1000
968
  name: name
1001
969
  })), {}, {
@@ -1008,8 +976,8 @@ var ConditionField = function ConditionField(_ref) {
1008
976
  };
1009
977
 
1010
978
  var _excluded$3 = ["value"];
1011
- 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; }
1012
- 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; }
979
+ 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; }
980
+ 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; }
1013
981
  var DateField = function DateField(_ref) {
1014
982
  var question = _ref.question,
1015
983
  customValidator = _ref.customValidator;
@@ -1026,6 +994,7 @@ var DateField = function DateField(_ref) {
1026
994
  className: "neeto-form-engine-input__label-wrapper",
1027
995
  children: label && /*#__PURE__*/jsxRuntime.jsx("label", {
1028
996
  className: "neeto-form-engine-label",
997
+ "data-cy": "".concat(neetoCist.hyphenate(label), "-input-label"),
1029
998
  children: getLabel(label, isRequired)
1030
999
  })
1031
1000
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -1044,9 +1013,10 @@ var DateField = function DateField(_ref) {
1044
1013
  value = _ref2$field.value,
1045
1014
  field = _objectWithoutProperties__default["default"](_ref2$field, _excluded$3),
1046
1015
  form = _ref2.form;
1047
- return /*#__PURE__*/jsxRuntime.jsx(DatePicker__default["default"], _objectSpread$d(_objectSpread$d({}, _objectSpread$d(_objectSpread$d({}, field), {}, {
1016
+ return /*#__PURE__*/jsxRuntime.jsx(DatePicker__default["default"], _objectSpread$b(_objectSpread$b({}, _objectSpread$b(_objectSpread$b({}, field), {}, {
1048
1017
  type: type
1049
1018
  })), {}, {
1019
+ "data-cy": "".concat(neetoCist.hyphenate(label), "-input-field"),
1050
1020
  dateFormat: "MMM D, YYYY",
1051
1021
  error: meta.touched ? meta.error : "",
1052
1022
  placeholder: index.fieldWithFallback(question, "placeholder"),
@@ -1064,8 +1034,8 @@ var DateField = function DateField(_ref) {
1064
1034
  });
1065
1035
  };
1066
1036
 
1067
- 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; }
1068
- 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; }
1037
+ 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; }
1038
+ 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; }
1069
1039
  var EmailField = function EmailField(_ref) {
1070
1040
  var question = _ref.question,
1071
1041
  customValidator = _ref.customValidator,
@@ -1073,8 +1043,10 @@ var EmailField = function EmailField(_ref) {
1073
1043
  var name = question.id,
1074
1044
  kind = question.kind,
1075
1045
  isRequired = question.isRequired,
1076
- isDomainRestrictionEnabled = question.isDomainRestrictionEnabled,
1077
- restrictedDomains = question.restrictedDomains,
1046
+ isDomainWhitelistingEnabled = question.isDomainWhitelistingEnabled,
1047
+ whitelistedDomains = question.whitelistedDomains,
1048
+ isDomainBlacklistingEnabled = question.isDomainBlacklistingEnabled,
1049
+ blacklistedDomains = question.blacklistedDomains,
1078
1050
  nodeId = question.nodeId;
1079
1051
  var label = index.fieldWithFallback(question, "label");
1080
1052
  var type = constants.QUESTION_KIND[kind.toUpperCase()].type;
@@ -1085,7 +1057,8 @@ var EmailField = function EmailField(_ref) {
1085
1057
  label: label,
1086
1058
  isRequired: isRequired,
1087
1059
  customValidator: customValidator,
1088
- restrictedDomains: isDomainRestrictionEnabled ? restrictedDomains : []
1060
+ whitelistedDomains: isDomainWhitelistingEnabled ? whitelistedDomains : [],
1061
+ blacklistedDomains: isDomainBlacklistingEnabled ? blacklistedDomains : []
1089
1062
  })
1090
1063
  }),
1091
1064
  _useField2 = _slicedToArray__default["default"](_useField, 3),
@@ -1097,7 +1070,7 @@ var EmailField = function EmailField(_ref) {
1097
1070
  setValue = _useField2$2.setValue,
1098
1071
  setTouched = _useField2$2.setTouched;
1099
1072
  var handleFieldChange = utils.withEventTargetValue(setValue);
1100
- return /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], _objectSpread$c(_objectSpread$c({}, _objectSpread$c(_objectSpread$c({
1073
+ return /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], _objectSpread$a(_objectSpread$a({}, _objectSpread$a(_objectSpread$a({
1101
1074
  type: type
1102
1075
  }, field), {}, {
1103
1076
  autoComplete: autoComplete,
@@ -1114,424 +1087,6 @@ var EmailField = function EmailField(_ref) {
1114
1087
  }));
1115
1088
  };
1116
1089
 
1117
- 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; }
1118
- 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; }
1119
- var useFileUpload = function useFileUpload(_ref) {
1120
- var disabled = _ref.disabled,
1121
- accept = _ref.accept,
1122
- multiple = _ref.multiple,
1123
- name = _ref.name,
1124
- maxFileSize = _ref.maxFileSize;
1125
- var _useState = React.useState({}),
1126
- _useState2 = _slicedToArray__default["default"](_useState, 2),
1127
- uploadProgress = _useState2[0],
1128
- setUploadProgress = _useState2[1];
1129
- var _useState3 = React.useState(""),
1130
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
1131
- uploadError = _useState4[0],
1132
- setUploadError = _useState4[1];
1133
- var _useField = formik.useField(name),
1134
- _useField2 = _slicedToArray__default["default"](_useField, 3);
1135
- _useField2[0];
1136
- var value = _useField2[1].value,
1137
- _useField2$ = _useField2[2],
1138
- setValue = _useField2$.setValue,
1139
- setError = _useField2$.setError,
1140
- setTouched = _useField2$.setTouched;
1141
- var filesRef = React.useRef(value === null || value === void 0 ? void 0 : value.files);
1142
- filesRef.current = value === null || value === void 0 ? void 0 : value.files;
1143
- var cancel = React.useCallback(function (index) {
1144
- return function () {
1145
- var _value$files;
1146
- setUploadProgress(ramda.assoc(value.files[index].name, null));
1147
- var newFiles = (_value$files = value.files) === null || _value$files === void 0 ? void 0 : _value$files.filter(function (_, idx) {
1148
- return idx !== index;
1149
- });
1150
- setValue({
1151
- files: newFiles
1152
- });
1153
- };
1154
- }, [value]);
1155
- React.useEffect(function () {
1156
- uploadError && setError(uploadError);
1157
- }, [uploadError]);
1158
- var onDropAccepted = /*#__PURE__*/function () {
1159
- var _ref2 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(acceptedFiles) {
1160
- var initialFiles, updatedFiles, newFiles;
1161
- return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
1162
- while (1) switch (_context.prev = _context.next) {
1163
- case 0:
1164
- setTouched(false);
1165
- setUploadError("");
1166
- initialFiles = acceptedFiles.map(function (file) {
1167
- return {
1168
- name: file.name,
1169
- size: file.size
1170
- };
1171
- });
1172
- updatedFiles = multiple ? [].concat(_toConsumableArray__default["default"](value.files || []), _toConsumableArray__default["default"](initialFiles)) : initialFiles;
1173
- setValue({
1174
- files: updatedFiles
1175
- });
1176
- _context.next = 7;
1177
- return new Promise(function (resolve) {
1178
- var files = [];
1179
- acceptedFiles.forEach(function (file) {
1180
- setUploadProgress(ramda.assoc(file.name, 0));
1181
- var upload = new activestorage.DirectUpload(file, useFormApi.DIRECT_UPLOAD_URL, {
1182
- directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
1183
- xhr.upload.addEventListener("progress", function (event) {
1184
- var percentComplete = Math.round(event.loaded / event.total * 100);
1185
- setUploadProgress(ramda.assoc(file.name, percentComplete));
1186
- });
1187
- xhr.upload.addEventListener("load", function () {
1188
- setUploadProgress(ramda.assoc(file.name, undefined));
1189
- });
1190
- }
1191
- });
1192
- upload.create(function (error, blob) {
1193
- if (error) {
1194
- return setUploadError(error);
1195
- }
1196
- files.push({
1197
- url: blob.blob_url,
1198
- name: blob.filename,
1199
- signedId: blob.signed_id
1200
- });
1201
- var isUploadCompleted = multiple ? acceptedFiles.length === files.length : files.length === 1;
1202
- if (isUploadCompleted) {
1203
- return resolve(files);
1204
- }
1205
- return "";
1206
- });
1207
- });
1208
- return files;
1209
- });
1210
- case 7:
1211
- newFiles = _context.sent;
1212
- if (multiple) {
1213
- setValue({
1214
- files: filesRef.current.map(function (file) {
1215
- var uploadedFile = neetoCist.findBy({
1216
- name: file.name
1217
- }, newFiles);
1218
- return _objectSpread$b(_objectSpread$b({}, file), uploadedFile);
1219
- })
1220
- });
1221
- } else {
1222
- setValue({
1223
- files: newFiles
1224
- });
1225
- }
1226
- case 9:
1227
- case "end":
1228
- return _context.stop();
1229
- }
1230
- }, _callee);
1231
- }));
1232
- return function onDropAccepted(_x) {
1233
- return _ref2.apply(this, arguments);
1234
- };
1235
- }();
1236
- var onDropRejected = function onDropRejected(fileRejections) {
1237
- fileRejections.forEach(function (fileObject) {
1238
- setTouched(true);
1239
- setUploadError(renderErrorMessage(fileObject, maxFileSize, multiple));
1240
- });
1241
- };
1242
- var _useDropzone = reactDropzone.useDropzone({
1243
- disabled: disabled,
1244
- accept: accept,
1245
- multiple: multiple,
1246
- onDropAccepted: onDropAccepted,
1247
- onDropRejected: onDropRejected,
1248
- maxSize: convertMbToBytes(maxFileSize)
1249
- }),
1250
- getRootProps = _useDropzone.getRootProps,
1251
- getInputProps = _useDropzone.getInputProps,
1252
- isDragActive = _useDropzone.isDragActive,
1253
- fileRejections = _useDropzone.fileRejections;
1254
- return {
1255
- files: value === null || value === void 0 ? void 0 : value.files,
1256
- progress: uploadProgress,
1257
- cancel: cancel,
1258
- getRootProps: getRootProps,
1259
- getInputProps: getInputProps,
1260
- isDragActive: isDragActive,
1261
- fileRejections: fileRejections
1262
- };
1263
- };
1264
-
1265
- var _path;
1266
- 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); }
1267
- const SvgFileUpload = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
1268
- xmlns: "http://www.w3.org/2000/svg",
1269
- width: 48,
1270
- height: 36,
1271
- fill: "none"
1272
- }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
1273
- fill: "currentColor",
1274
- 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"
1275
- })));
1276
-
1277
- 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; }
1278
- 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; }
1279
- var DropZone = function DropZone(_ref) {
1280
- var isDragActive = _ref.isDragActive,
1281
- getRootProps = _ref.getRootProps,
1282
- getInputProps = _ref.getInputProps,
1283
- multipleFilesAllowed = _ref.multipleFilesAllowed,
1284
- _ref$hasFileSizeLimit = _ref.hasFileSizeLimit,
1285
- hasFileSizeLimit = _ref$hasFileSizeLimit === void 0 ? true : _ref$hasFileSizeLimit,
1286
- maxFileSize = _ref.maxFileSize,
1287
- allowedFileTypes = _ref.allowedFileTypes;
1288
- var _useTranslation = reactI18next.useTranslation(),
1289
- t = _useTranslation.t;
1290
- var shouldShowFileSizeLimit = hasFileSizeLimit && maxFileSize;
1291
- return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$a(_objectSpread$a({}, getRootProps({
1292
- className: classnames__default["default"](["neeto-form-engine-file-upload__dropzone"], {
1293
- "neeto-form-engine-file-upload__dropzone--drag-active": isDragActive
1294
- })
1295
- })), {}, {
1296
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
1297
- className: "neeto-form-engine-file-upload__dropzone-inner",
1298
- "data-cy": "file-upload-body",
1299
- children: [/*#__PURE__*/jsxRuntime.jsx(SvgFileUpload, {
1300
- className: "neeto-form-engine-file-upload__upload-icon"
1301
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1302
- className: "neeto-form-engine-file-upload__dropzone-content",
1303
- children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
1304
- className: "neeto-form-engine-file-upload__upload-label",
1305
- htmlFor: "file-upload",
1306
- children: [/*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
1307
- i18nKey: "neetoForm.fileUpload.dropzone.chooseOrDragFile",
1308
- components: {
1309
- typography: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1310
- component: "span",
1311
- weight: "semibold"
1312
- }),
1313
- span: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1314
- component: "span",
1315
- weight: "normal"
1316
- })
1317
- }
1318
- }), /*#__PURE__*/jsxRuntime.jsx("input", _objectSpread$a(_objectSpread$a({}, getInputProps()), {}, {
1319
- "data-cy": "file-browse-button"
1320
- }))]
1321
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1322
- className: "neeto-form-engine-file-upload__dropzone-helper-block",
1323
- children: [!multipleFilesAllowed && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1324
- className: "neeto-form-engine-file-upload__dropzone-helper-text",
1325
- "data-cy": "upload-only-one-file-text",
1326
- style: "body3",
1327
- children: t("neetoForm.fileUpload.dropzone.oneFileAllowed")
1328
- }), shouldShowFileSizeLimit && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1329
- className: "neeto-form-engine-file-upload__dropzone-helper-text",
1330
- "data-cy": "maximum-allowed-size-text",
1331
- style: "body3",
1332
- children: t("neetoForm.fileUpload.dropzone.maxFileSize", {
1333
- size: maxFileSize,
1334
- unit: t("neetoForm.fileUpload.mb")
1335
- })
1336
- }), allowedFileTypes && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1337
- className: "neeto-form-engine-file-upload__dropzone-helper-text",
1338
- "data-cy": "allowed-files-types-text",
1339
- style: "body3",
1340
- children: t("neetoForm.fileUpload.dropzone.allowedFileTypes", {
1341
- types: allowedFileTypes
1342
- })
1343
- })]
1344
- })]
1345
- })]
1346
- })
1347
- }));
1348
- };
1349
-
1350
- var Progress = function Progress(_ref) {
1351
- var percents = _ref.percents,
1352
- _ref$stroke = _ref.stroke,
1353
- stroke = _ref$stroke === void 0 ? "blue" : _ref$stroke,
1354
- _ref$emptyStroke = _ref.emptyStroke,
1355
- emptyStroke = _ref$emptyStroke === void 0 ? stroke : _ref$emptyStroke,
1356
- _ref$emptyStrokeOpaci = _ref.emptyStrokeOpacity,
1357
- emptyStrokeOpacity = _ref$emptyStrokeOpaci === void 0 ? 0.25 : _ref$emptyStrokeOpaci,
1358
- _ref$duration = _ref.duration,
1359
- duration = _ref$duration === void 0 ? 0.5 : _ref$duration,
1360
- _ref$delay = _ref.delay,
1361
- delay = _ref$delay === void 0 ? 0 : _ref$delay,
1362
- _ref$size = _ref.size,
1363
- size = _ref$size === void 0 ? 100 : _ref$size,
1364
- _ref$strokeWidth = _ref.strokeWidth,
1365
- strokeWidth = _ref$strokeWidth === void 0 ? 12 : _ref$strokeWidth;
1366
- var radius = 45;
1367
- var circumference = Math.ceil(2 * Math.PI * radius);
1368
- var fillPercents = Math.abs(Math.ceil(circumference / 100 * (percents - 100)));
1369
- var transition = {
1370
- duration: duration,
1371
- delay: delay
1372
- };
1373
- var variants = {
1374
- hidden: {
1375
- strokeDashoffset: circumference,
1376
- transition: transition
1377
- },
1378
- show: {
1379
- strokeDashoffset: fillPercents,
1380
- transition: transition
1381
- }
1382
- };
1383
- return /*#__PURE__*/jsxRuntime.jsx("div", {
1384
- className: "neeto-form-engine-progress__circle",
1385
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
1386
- className: "neeto-form-engine-progress__circle-wrapper",
1387
- style: {
1388
- height: size
1389
- },
1390
- children: [/*#__PURE__*/jsxRuntime.jsx("svg", {
1391
- height: size,
1392
- version: "1.1",
1393
- viewBox: "0 0 100 100",
1394
- width: size,
1395
- xmlns: "http://www.w3.org/2000/svg",
1396
- children: /*#__PURE__*/jsxRuntime.jsx("circle", {
1397
- strokeWidth: strokeWidth,
1398
- className: "circle",
1399
- cx: "50",
1400
- cy: "50",
1401
- fill: "transparent",
1402
- r: radius,
1403
- stroke: emptyStroke,
1404
- strokeOpacity: emptyStrokeOpacity
1405
- })
1406
- }), /*#__PURE__*/jsxRuntime.jsx("svg", {
1407
- height: size,
1408
- viewBox: "0 0 100 100",
1409
- width: size,
1410
- style: {
1411
- position: "absolute",
1412
- transform: "rotate(-90deg)",
1413
- overflow: "visible",
1414
- top: 0
1415
- },
1416
- children: /*#__PURE__*/jsxRuntime.jsx(framerMotion.motion.circle, {
1417
- stroke: stroke,
1418
- strokeWidth: strokeWidth,
1419
- variants: variants,
1420
- animate: "show",
1421
- cx: "50",
1422
- cy: "50",
1423
- fill: "transparent",
1424
- initial: "hidden",
1425
- r: radius,
1426
- strokeDasharray: circumference,
1427
- strokeDashoffset: fillPercents
1428
- })
1429
- })]
1430
- })
1431
- });
1432
- };
1433
-
1434
- var FILE_MIME_TYPES = {
1435
- pdf: ["application/pdf"],
1436
- doc: ["application/msword", "application/wps-writer"],
1437
- docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
1438
- xls: ["application/vnd.ms-excel"],
1439
- xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
1440
- csv: ["text/csv"],
1441
- txt: ["text/plain"],
1442
- rtf: ["application/rtf", "text/rtf"],
1443
- html: ["text/html"],
1444
- htm: ["text/html"],
1445
- md: ["text/markdown", "text/x-markdown"],
1446
- zip: ["application/zip"],
1447
- mp3: ["audio/mpeg"],
1448
- wma: ["audio/x-ms-wma", "video/x-ms-asf"],
1449
- mp4: ["video/mp4"],
1450
- webm: ["video/webm"],
1451
- mpg: ["video/mpeg"],
1452
- mpeg: ["video/mpeg"],
1453
- flv: ["video/x-flv"],
1454
- avi: ["video/x-msvideo"],
1455
- jpg: ["image/jpeg"],
1456
- jpeg: ["image/jpeg"],
1457
- png: ["image/png"],
1458
- gif: ["image/gif"]
1459
- };
1460
-
1461
- var getAcceptedFileTypes = function getAcceptedFileTypes(allowedFileTypes) {
1462
- var accepted = {};
1463
- allowedFileTypes.split(", ").forEach(function (type) {
1464
- var mimeTypes = FILE_MIME_TYPES[type];
1465
- var extension = ".".concat(type);
1466
- if (neetoCist.isNotPresent(type) || neetoCist.isNotPresent(mimeTypes)) return;
1467
- mimeTypes.forEach(function (mimeType) {
1468
- if (accepted[mimeType]) accepted[mimeType].push(extension);else accepted[mimeType] = [extension];
1469
- });
1470
- });
1471
- return accepted;
1472
- };
1473
- var convertBytesToMb = function convertBytesToMb(bytes) {
1474
- return (bytes / (1024 * 1024)).toFixed(2);
1475
- };
1476
-
1477
- var FilePreview = reactUtils.withT(function (_ref) {
1478
- var t = _ref.t,
1479
- file = _ref.file,
1480
- isUploading = _ref.isUploading,
1481
- cancel = _ref.cancel,
1482
- progress = _ref.progress;
1483
- return /*#__PURE__*/jsxRuntime.jsxs("li", {
1484
- className: "neeto-form-engine-file-upload__uploaded-list-item",
1485
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
1486
- className: "neeto-form-engine-file-upload__file-preview",
1487
- children: [/*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
1488
- className: classnames__default["default"]("p-0", {
1489
- invisible: isUploading
1490
- }),
1491
- href: file.url,
1492
- icon: FileGeneric__default["default"],
1493
- iconSize: 24,
1494
- rel: "noreferrer",
1495
- size: "large",
1496
- style: "text",
1497
- target: "_blank"
1498
- }), isUploading && /*#__PURE__*/jsxRuntime.jsx("div", {
1499
- className: "neeto-form-engine-progress",
1500
- children: /*#__PURE__*/jsxRuntime.jsx(Progress, {
1501
- percents: progress || 0,
1502
- size: 20
1503
- })
1504
- })]
1505
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1506
- className: "flex min-w-0 grow flex-col break-words",
1507
- children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1508
- className: "neeto-form-engine-file-upload__file-info-name",
1509
- style: "body2",
1510
- children: file.name
1511
- }), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1512
- className: "neeto-form-engine-file-upload__file-info-size",
1513
- style: "body3",
1514
- children: file.size ? t("neetoForm.fileUpload.fileSizeInMb", {
1515
- fileSize: convertBytesToMb(file.size)
1516
- }) : ""
1517
- })]
1518
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1519
- className: "neeto-form-engine-file-upload__actions",
1520
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
1521
- className: classnames__default["default"]("neeto-form-engine-file-upload__success-indicator", {
1522
- "neeto-form-engine-file-upload__success-indicator--active": file.url
1523
- }),
1524
- children: file.url && /*#__PURE__*/jsxRuntime.jsx(Check__default["default"], {})
1525
- }), /*#__PURE__*/jsxRuntime.jsx("button", {
1526
- className: "neeto-form-engine-file-upload__button--red neeto-form-engine-file-upload__remove-button",
1527
- type: "button",
1528
- onClick: cancel,
1529
- children: /*#__PURE__*/jsxRuntime.jsx(Close__default["default"], {})
1530
- })]
1531
- })]
1532
- }, file.url);
1533
- });
1534
-
1535
1090
  var FileUploadField = function FileUploadField(_ref) {
1536
1091
  var question = _ref.question,
1537
1092
  _ref$preview = _ref.preview,
@@ -1555,30 +1110,17 @@ var FileUploadField = function FileUploadField(_ref) {
1555
1110
  multipleFilesAllowed: multipleFilesAllowed
1556
1111
  })
1557
1112
  }),
1558
- _useField2 = _slicedToArray__default["default"](_useField, 2);
1113
+ _useField2 = _slicedToArray__default["default"](_useField, 3);
1559
1114
  _useField2[0];
1560
1115
  var _useField2$ = _useField2[1],
1116
+ value = _useField2$.value,
1561
1117
  touched = _useField2$.touched,
1562
- error = _useField2$.error;
1563
- var _useFileUpload = useFileUpload({
1564
- disabled: preview,
1565
- accept: getAcceptedFileTypes(allowedFileTypes),
1566
- multiple: multipleFilesAllowed,
1567
- name: name || nodeId,
1568
- maxFileSize: maxFileSize
1569
- }),
1570
- files = _useFileUpload.files,
1571
- progress = _useFileUpload.progress,
1572
- cancel = _useFileUpload.cancel,
1573
- getRootProps = _useFileUpload.getRootProps,
1574
- getInputProps = _useFileUpload.getInputProps,
1575
- isDragActive = _useFileUpload.isDragActive,
1576
- fileRejections = _useFileUpload.fileRejections;
1577
- var shouldShowError = touched && error && ramda.isEmpty(fileRejections);
1578
- var maxFileSizeInBytes = convertMbToBytes(maxFileSize);
1579
- var isUploadingFile = function isUploadingFile(file) {
1580
- return ramda.isNotNil(progress[file.name]) && (progress[file.name] !== 100 || !file.url);
1581
- };
1118
+ error = _useField2$.error,
1119
+ _useField2$2 = _useField2[2],
1120
+ setValue = _useField2$2.setValue,
1121
+ setError = _useField2$2.setError,
1122
+ setTouched = _useField2$2.setTouched;
1123
+ var errorToDisplay = touched && error ? error : "";
1582
1124
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1583
1125
  className: "neeto-form-engine-input__wrapper",
1584
1126
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
@@ -1588,32 +1130,20 @@ var FileUploadField = function FileUploadField(_ref) {
1588
1130
  required: isRequired,
1589
1131
  children: label
1590
1132
  })
1591
- }), /*#__PURE__*/jsxRuntime.jsx(DropZone, {
1133
+ }), /*#__PURE__*/jsxRuntime.jsx(FileUpload.FileUpload, {
1592
1134
  allowedFileTypes: allowedFileTypes,
1593
- getInputProps: getInputProps,
1594
- getRootProps: getRootProps,
1595
- isDragActive: isDragActive,
1596
1135
  maxFileSize: maxFileSize,
1597
- multipleFilesAllowed: multipleFilesAllowed
1598
- }), neetoCist.isNotEmpty(files) && /*#__PURE__*/jsxRuntime.jsx("ul", {
1599
- className: "neeto-form-engine-file-upload__uploaded-list",
1600
- children: files === null || files === void 0 ? void 0 : files.map(function (file, idx) {
1601
- return /*#__PURE__*/React.createElement(FilePreview, {
1602
- file: file,
1603
- cancel: cancel(idx),
1604
- isUploading: isUploadingFile(file),
1605
- key: idx,
1606
- progress: progress[file.name]
1136
+ multipleFilesAllowed: multipleFilesAllowed,
1137
+ setError: setError,
1138
+ setTouched: setTouched,
1139
+ error: errorToDisplay,
1140
+ files: value === null || value === void 0 ? void 0 : value.files,
1141
+ isPreview: preview,
1142
+ onChange: function onChange(files) {
1143
+ return setValue({
1144
+ files: files
1607
1145
  });
1608
- })
1609
- }), neetoCist.isNotEmpty(fileRejections) && fileRejections.map(function (file, index) {
1610
- return /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1611
- 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",
1612
- children: renderErrorMessage(file, maxFileSizeInBytes, false)
1613
- }, index);
1614
- }), shouldShowError && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1615
- 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",
1616
- children: error
1146
+ }
1617
1147
  })]
1618
1148
  });
1619
1149
  };
@@ -1864,9 +1394,11 @@ var Rating = function Rating(_ref) {
1864
1394
  className: "neeto-form-engine-rating",
1865
1395
  children: [/*#__PURE__*/jsxRuntime.jsx("label", {
1866
1396
  className: "neeto-form-engine-label",
1397
+ "data-cy": "rating-input-label",
1867
1398
  children: label
1868
1399
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
1869
1400
  className: "neeto-form-engine-rating__row",
1401
+ "data-cy": "rating-input-field",
1870
1402
  children: render()
1871
1403
  }), !!error && typeof error === "string" && /*#__PURE__*/jsxRuntime.jsx("p", {
1872
1404
  className: "neeto-form-engine-input__error",
@@ -1931,6 +1463,7 @@ var RichTextEditor = function RichTextEditor(_ref) {
1931
1463
  className: "neeto-form-engine-input__label-wrapper",
1932
1464
  children: label && /*#__PURE__*/jsxRuntime.jsx("label", {
1933
1465
  className: "neeto-form-engine-label",
1466
+ "data-cy": "".concat(neetoCist.hyphenate(label), "-input-label"),
1934
1467
  children: getLabel(label, isRequired)
1935
1468
  })
1936
1469
  }), /*#__PURE__*/jsxRuntime.jsx(formik.FastField, {
@@ -2023,10 +1556,12 @@ var StarRating = function StarRating(_ref) {
2023
1556
  className: "neeto-form-engine-input__label-wrapper",
2024
1557
  children: /*#__PURE__*/jsxRuntime.jsx("label", {
2025
1558
  className: "neeto-form-engine-label",
1559
+ "data-cy": "star-rating-input-label",
2026
1560
  children: label
2027
1561
  })
2028
1562
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
2029
1563
  className: "neeto-form-engine-star-rating__row",
1564
+ "data-cy": "star-rating-input-field",
2030
1565
  children: constants$1.generateArray(minValue, maxValue).map(function (index) {
2031
1566
  return /*#__PURE__*/jsxRuntime.jsx(RatingButton$1, _objectSpread$3({
2032
1567
  label: index,
@@ -2211,4 +1746,4 @@ exports.getFieldComponent = getFieldComponent;
2211
1746
  exports.getWithExpiry = getWithExpiry;
2212
1747
  exports.mergeRefs = mergeRefs;
2213
1748
  exports.renderButtonsInOrder = renderButtonsInOrder;
2214
- //# sourceMappingURL=utils-6b8cacdd.js.map
1749
+ //# sourceMappingURL=utils-3eb74c1b.js.map