@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
@@ -1,19 +1,18 @@
1
- import * as React from 'react';
2
- import { useEffect, useState, useImperativeHandle, useRef, useCallback, createElement, memo, Fragment } from 'react';
1
+ import { useEffect, useState, useImperativeHandle, memo, Fragment } from 'react';
3
2
  import { useFormikContext, useField, Field, FastField } from 'formik';
4
3
  import { isPresent, isNotEmpty, findBy, findById, isNotPresent, getRandomInt, randomPick, noop, hyphenate, slugify, notEqualsDeep } from '@bigbinary/neeto-cist';
5
4
  import { i as isFunction, b as isEmptyValues, f as fieldWithFallback } from './index-2664c3e7.js';
6
5
  import { dayjs, withEventTargetValue } from '@bigbinary/neeto-commons-frontend/utils';
7
6
  import { parsePhoneNumber } from 'libphonenumber-js';
8
- import { includes, __, isNil, clamp, prop, map, identity, pluck, pipe, toLower, reject, values, assoc, isEmpty, isNotNil, equals, pick } from 'ramda';
7
+ import { includes, __, isNil, clamp, prop, map, identity, pluck, pipe, toLower, reject, isEmpty, values, equals, pick } from 'ramda';
9
8
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
10
9
  import EditorContent from '@bigbinary/neeto-editor/EditorContent';
11
- import { C as CAPTCHA_TYPES, q as generateArray } from './constants-669f203a.js';
10
+ import { C as CAPTCHA_TYPES, q as generateArray } from './constants-d9148acf.js';
12
11
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
13
12
  import Plus from '@bigbinary/neeto-icons/Plus';
14
13
  import Button from '@bigbinary/neetoui/Button';
15
14
  import NeetoUIMultiEmailInput from '@bigbinary/neetoui/MultiEmailInput';
16
- import { useTranslation, Trans } from 'react-i18next';
15
+ import { useTranslation } from 'react-i18next';
17
16
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
18
17
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
19
18
  import _regeneratorRuntime from '@babel/runtime/regenerator';
@@ -22,10 +21,9 @@ import { validation, PhoneNumberInput } from '@bigbinary/neeto-molecules/PhoneNu
22
21
  import * as yup from 'yup';
23
22
  import i18next from 'i18next';
24
23
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
25
- import path from 'path';
26
- import { Q as QUESTION_KIND, E as ERROR_CODES, e as EMAIL_REGEX, R as RATING_VALUES, S as SCHEMA_LESS_QUESTION_KINDS, f as RATING_OPTIONS, I as ICONS_MAP } from './constants-3d8a5374.js';
24
+ import { Q as QUESTION_KIND, E as EMAIL_REGEX, R as RATING_VALUES, S as SCHEMA_LESS_QUESTION_KINDS, e as RATING_OPTIONS, I as ICONS_MAP } from './constants-75b78b3a.js';
27
25
  import classnames from 'classnames';
28
- import { useUpdateEffect, withT, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
26
+ import { useUpdateEffect, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
29
27
  import Refresh from '@bigbinary/neeto-icons/Refresh';
30
28
  import Input from '@bigbinary/neetoui/Input';
31
29
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
@@ -33,15 +31,8 @@ import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
33
31
  import ReCAPTCHA from 'react-google-recaptcha';
34
32
  import Checkbox from '@bigbinary/neetoui/Checkbox';
35
33
  import DatePicker from '@bigbinary/neetoui/DatePicker';
34
+ import { FileUpload } from '@bigbinary/neeto-molecules/FileUpload';
36
35
  import Label from '@bigbinary/neetoui/Label';
37
- import Typography from '@bigbinary/neetoui/Typography';
38
- import { DirectUpload } from '@rails/activestorage';
39
- import { useDropzone } from 'react-dropzone';
40
- import { D as DIRECT_UPLOAD_URL } from './useFormApi-d733cb8d.js';
41
- import FileGeneric from '@bigbinary/neeto-icons/FileGeneric';
42
- import Check from '@bigbinary/neeto-icons/Check';
43
- import Close from '@bigbinary/neeto-icons/Close';
44
- import { motion } from 'framer-motion';
45
36
  import Select from '@bigbinary/neetoui/Select';
46
37
  import Radio from '@bigbinary/neetoui/Radio';
47
38
  import NeetoEditor from '@bigbinary/neeto-editor/Editor';
@@ -133,34 +124,33 @@ var FormikWrap = function FormikWrap(_ref) {
133
124
  return children;
134
125
  };
135
126
 
136
- var t$2 = clientI18nInstance.t;
127
+ var t$1 = clientI18nInstance.t;
137
128
  var getInvalidFieldError = function getInvalidFieldError(label) {
138
- return t$2("neetoForm.error.invalidField", {
129
+ return t$1("neetoForm.error.invalidField", {
139
130
  label: label
140
131
  });
141
132
  };
142
133
  var getRequiredFieldError = function getRequiredFieldError(label) {
143
- return t$2("neetoForm.error.requiredField", {
134
+ return t$1("neetoForm.error.requiredField", {
144
135
  label: label
145
136
  });
146
137
  };
147
138
  var getSelectMinError = function getSelectMinError(min) {
148
- var entity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : t$2("neetoForm.common.option");
149
- return t$2("neetoForm.error.selectMin", {
139
+ var entity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : t$1("neetoForm.common.option");
140
+ return t$1("neetoForm.error.selectMin", {
150
141
  min: min,
151
142
  entity: entity
152
143
  });
153
144
  };
154
145
  var getInvalidTypeError = function getInvalidTypeError(label, type) {
155
- return t$2("neetoForm.error.invalidType", {
146
+ return t$1("neetoForm.error.invalidType", {
156
147
  label: label,
157
148
  type: type
158
149
  });
159
150
  };
160
151
 
161
- 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; }
162
- 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(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; }
163
- var t$1 = clientI18nInstance.t;
152
+ 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; }
153
+ 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(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; }
164
154
  var toEmailValues = function toEmailValues() {
165
155
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
166
156
  return values.map(function (value) {
@@ -253,7 +243,7 @@ var generateInitValues = function generateInitValues(_ref7) {
253
243
  var valuesMap = {};
254
244
  if (initialValues) {
255
245
  valuesMap = initialValues.reduce(function (acc, answer) {
256
- return _objectSpread$g(_objectSpread$g({}, acc), {}, _defineProperty({}, answer.questionId, {
246
+ return _objectSpread$e(_objectSpread$e({}, acc), {}, _defineProperty({}, answer.questionId, {
257
247
  value: answer.value,
258
248
  optionIds: answer.optionIds
259
249
  }));
@@ -446,34 +436,6 @@ var getError = function getError(meta) {
446
436
  var buildAutoCompleteAttribute = function buildAutoCompleteAttribute(kind, autoCompleteKinds, formDomProps) {
447
437
  return (formDomProps === null || formDomProps === void 0 ? void 0 : formDomProps.autoComplete) === "off" && includes(kind, autoCompleteKinds) ? "on" : undefined;
448
438
  };
449
- var convertMbToBytes = function convertMbToBytes(mb) {
450
- return mb * 1024 * 1024;
451
- };
452
- var renderErrorMessage = function renderErrorMessage(errorObject, maxFileSize, isMultiple) {
453
- var error = errorObject.errors[0];
454
- var file = errorObject.file;
455
- if (error) {
456
- var code = error.code;
457
- switch (code) {
458
- case ERROR_CODES.FILE_TOO_LARGE:
459
- return t$1("neetoForm.fileUpload.dropzone.errors.fileTooLarge", {
460
- fileName: file.name,
461
- maxSize: Math.round(maxFileSize / 1048576)
462
- });
463
- case ERROR_CODES.FILE_INVALID_TYPE:
464
- return t$1("neetoForm.fileUpload.dropzone.errors.fileInvalidType", {
465
- fileType: path.extname(file.name)
466
- });
467
- case ERROR_CODES.TOO_MANY_FILES:
468
- if (!isMultiple) {
469
- return t$1("neetoForm.fileUpload.dropzone.errors.tooManyFiles");
470
- }
471
- }
472
- }
473
- return t$1("neetoForm.fileUpload.dropzone.errors.defaultError", {
474
- fileName: file.name
475
- });
476
- };
477
439
  var renderButtonsInOrder = function renderButtonsInOrder(buttonsArray, shouldReverse) {
478
440
  var orderedButtons = shouldReverse ? buttonsArray.reverse() : buttonsArray;
479
441
  return map(identity, orderedButtons);
@@ -486,8 +448,8 @@ var isPhoneNumberField = includes(__, [QUESTION_KIND.PHONE.value, QUESTION_KIND.
486
448
 
487
449
  var _excluded$4 = ["kind", "customValidator"];
488
450
  var _fieldKindValidatorMa;
489
- 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; }
490
- 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(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; }
451
+ 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; }
452
+ 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(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; }
491
453
  var t = clientI18nInstance.t;
492
454
  yup.addMethod(yup.array, "unique", function () {
493
455
  var field, message;
@@ -521,9 +483,14 @@ var isValidDate = function isValidDate(date) {
521
483
  var extractEmailDomain = function extractEmailDomain(email) {
522
484
  return email === null || email === void 0 ? void 0 : email.split("@")[1];
523
485
  };
524
- var isEmailFromRestrictedDomain = function isEmailFromRestrictedDomain(email, restrictedDomains) {
486
+ var isEmailFromWhitelistedDomain = function isEmailFromWhitelistedDomain(email, whitelistedDomains) {
487
+ if (isEmpty(whitelistedDomains)) return true;
488
+ var domain = extractEmailDomain(email);
489
+ return includes(domain, whitelistedDomains);
490
+ };
491
+ var isEmailFromBlacklistedDomain = function isEmailFromBlacklistedDomain(email, blacklistedDomains) {
525
492
  var domain = extractEmailDomain(email);
526
- return includes(domain, restrictedDomains);
493
+ return includes(domain, blacklistedDomains);
527
494
  };
528
495
  var validateTextField = function validateTextField(_ref) {
529
496
  var kind = _ref.kind,
@@ -539,14 +506,15 @@ var validateTextField = function validateTextField(_ref) {
539
506
  var validateEmailField = function validateEmailField(_ref2) {
540
507
  var label = _ref2.label,
541
508
  isRequired = _ref2.isRequired,
542
- restrictedDomains = _ref2.restrictedDomains;
509
+ whitelistedDomains = _ref2.whitelistedDomains,
510
+ blacklistedDomains = _ref2.blacklistedDomains;
543
511
  var schema = yup.string().typeError(getInvalidTypeError(label, "string")).email(getInvalidFieldError("Email")).test("verify domain", function (_ref3) {
544
512
  var value = _ref3.value;
545
513
  return t("neetoForm.error.emailFromRestrictedDomain", {
546
514
  domain: extractEmailDomain(value)
547
515
  });
548
516
  }, function (value) {
549
- return isNotPresent(value) || !isEmailFromRestrictedDomain(value, restrictedDomains);
517
+ return isNotPresent(value) || isEmailFromWhitelistedDomain(value, whitelistedDomains) && !isEmailFromBlacklistedDomain(value, blacklistedDomains);
550
518
  });
551
519
  if (isRequired) schema = schema.trim().required(getRequiredFieldError(label));
552
520
  return schema.trim();
@@ -660,7 +628,7 @@ var validateFieldValue = function validateFieldValue(_ref16) {
660
628
  return function (value) {
661
629
  if (!(kind in fieldKindValidatorMap)) return;
662
630
  var validator = fieldKindValidatorMap[kind];
663
- var schema = customValidator || validator(_objectSpread$f({
631
+ var schema = customValidator || validator(_objectSpread$d({
664
632
  kind: kind
665
633
  }, otherProps));
666
634
 
@@ -872,6 +840,7 @@ var MathCaptcha = function MathCaptcha(_ref) {
872
840
  }, [userInput]);
873
841
  return /*#__PURE__*/jsxs("div", {
874
842
  className: "neeto-form-nano-math-captcha",
843
+ "data-cy": "math-captcha",
875
844
  ref: captchaRef,
876
845
  children: [/*#__PURE__*/jsx("button", {
877
846
  className: "neeto-form-nano-math-captcha__button",
@@ -881,10 +850,13 @@ var MathCaptcha = function MathCaptcha(_ref) {
881
850
  }), /*#__PURE__*/jsxs("div", {
882
851
  className: "neeto-form-nano-math-captcha__equation",
883
852
  children: [/*#__PURE__*/jsx("span", {
853
+ "data-cy": "first-number",
884
854
  children: firstNumber
885
855
  }), /*#__PURE__*/jsx("span", {
856
+ "data-cy": "operator",
886
857
  children: operator
887
858
  }), /*#__PURE__*/jsx("span", {
859
+ "data-cy": "second-number",
888
860
  children: secondNumber
889
861
  }), /*#__PURE__*/jsx("span", {
890
862
  children: "="
@@ -892,6 +864,7 @@ var MathCaptcha = function MathCaptcha(_ref) {
892
864
  }), /*#__PURE__*/jsx(Input, {
893
865
  required: true,
894
866
  className: "neeto-form-nano-math-captcha__input",
867
+ "data-cy": "math-captcha-input",
895
868
  value: userInput,
896
869
  onBlur: handleBlur,
897
870
  onChange: withEventTargetValue(setUserInput)
@@ -923,8 +896,8 @@ var Recaptcha = function Recaptcha(_ref) {
923
896
  }, clientI18nInstance.language);
924
897
  };
925
898
 
926
- 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; }
927
- 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(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; }
899
+ 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; }
900
+ 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(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; }
928
901
  var ConditionField = function ConditionField(_ref) {
929
902
  var question = _ref.question,
930
903
  customValidator = _ref.customValidator;
@@ -944,7 +917,7 @@ var ConditionField = function ConditionField(_ref) {
944
917
  children: function children(_ref2) {
945
918
  var meta = _ref2.meta,
946
919
  field = _ref2.field;
947
- return /*#__PURE__*/jsx(Checkbox, _objectSpread$e(_objectSpread$e({}, _objectSpread$e(_objectSpread$e({}, field), {}, {
920
+ return /*#__PURE__*/jsx(Checkbox, _objectSpread$c(_objectSpread$c({}, _objectSpread$c(_objectSpread$c({}, field), {}, {
948
921
  label: label,
949
922
  name: name
950
923
  })), {}, {
@@ -957,8 +930,8 @@ var ConditionField = function ConditionField(_ref) {
957
930
  };
958
931
 
959
932
  var _excluded$3 = ["value"];
960
- 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; }
961
- 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(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; }
933
+ 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; }
934
+ 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(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; }
962
935
  var DateField = function DateField(_ref) {
963
936
  var question = _ref.question,
964
937
  customValidator = _ref.customValidator;
@@ -975,6 +948,7 @@ var DateField = function DateField(_ref) {
975
948
  className: "neeto-form-engine-input__label-wrapper",
976
949
  children: label && /*#__PURE__*/jsx("label", {
977
950
  className: "neeto-form-engine-label",
951
+ "data-cy": "".concat(hyphenate(label), "-input-label"),
978
952
  children: getLabel(label, isRequired)
979
953
  })
980
954
  }), /*#__PURE__*/jsx("div", {
@@ -993,9 +967,10 @@ var DateField = function DateField(_ref) {
993
967
  value = _ref2$field.value,
994
968
  field = _objectWithoutProperties(_ref2$field, _excluded$3),
995
969
  form = _ref2.form;
996
- return /*#__PURE__*/jsx(DatePicker, _objectSpread$d(_objectSpread$d({}, _objectSpread$d(_objectSpread$d({}, field), {}, {
970
+ return /*#__PURE__*/jsx(DatePicker, _objectSpread$b(_objectSpread$b({}, _objectSpread$b(_objectSpread$b({}, field), {}, {
997
971
  type: type
998
972
  })), {}, {
973
+ "data-cy": "".concat(hyphenate(label), "-input-field"),
999
974
  dateFormat: "MMM D, YYYY",
1000
975
  error: meta.touched ? meta.error : "",
1001
976
  placeholder: fieldWithFallback(question, "placeholder"),
@@ -1013,8 +988,8 @@ var DateField = function DateField(_ref) {
1013
988
  });
1014
989
  };
1015
990
 
1016
- 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; }
1017
- 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(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; }
991
+ 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; }
992
+ 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(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; }
1018
993
  var EmailField = function EmailField(_ref) {
1019
994
  var question = _ref.question,
1020
995
  customValidator = _ref.customValidator,
@@ -1022,8 +997,10 @@ var EmailField = function EmailField(_ref) {
1022
997
  var name = question.id,
1023
998
  kind = question.kind,
1024
999
  isRequired = question.isRequired,
1025
- isDomainRestrictionEnabled = question.isDomainRestrictionEnabled,
1026
- restrictedDomains = question.restrictedDomains,
1000
+ isDomainWhitelistingEnabled = question.isDomainWhitelistingEnabled,
1001
+ whitelistedDomains = question.whitelistedDomains,
1002
+ isDomainBlacklistingEnabled = question.isDomainBlacklistingEnabled,
1003
+ blacklistedDomains = question.blacklistedDomains,
1027
1004
  nodeId = question.nodeId;
1028
1005
  var label = fieldWithFallback(question, "label");
1029
1006
  var type = QUESTION_KIND[kind.toUpperCase()].type;
@@ -1034,7 +1011,8 @@ var EmailField = function EmailField(_ref) {
1034
1011
  label: label,
1035
1012
  isRequired: isRequired,
1036
1013
  customValidator: customValidator,
1037
- restrictedDomains: isDomainRestrictionEnabled ? restrictedDomains : []
1014
+ whitelistedDomains: isDomainWhitelistingEnabled ? whitelistedDomains : [],
1015
+ blacklistedDomains: isDomainBlacklistingEnabled ? blacklistedDomains : []
1038
1016
  })
1039
1017
  }),
1040
1018
  _useField2 = _slicedToArray(_useField, 3),
@@ -1046,7 +1024,7 @@ var EmailField = function EmailField(_ref) {
1046
1024
  setValue = _useField2$2.setValue,
1047
1025
  setTouched = _useField2$2.setTouched;
1048
1026
  var handleFieldChange = withEventTargetValue(setValue);
1049
- return /*#__PURE__*/jsx(Input, _objectSpread$c(_objectSpread$c({}, _objectSpread$c(_objectSpread$c({
1027
+ return /*#__PURE__*/jsx(Input, _objectSpread$a(_objectSpread$a({}, _objectSpread$a(_objectSpread$a({
1050
1028
  type: type
1051
1029
  }, field), {}, {
1052
1030
  autoComplete: autoComplete,
@@ -1063,424 +1041,6 @@ var EmailField = function EmailField(_ref) {
1063
1041
  }));
1064
1042
  };
1065
1043
 
1066
- 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; }
1067
- 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(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; }
1068
- var useFileUpload = function useFileUpload(_ref) {
1069
- var disabled = _ref.disabled,
1070
- accept = _ref.accept,
1071
- multiple = _ref.multiple,
1072
- name = _ref.name,
1073
- maxFileSize = _ref.maxFileSize;
1074
- var _useState = useState({}),
1075
- _useState2 = _slicedToArray(_useState, 2),
1076
- uploadProgress = _useState2[0],
1077
- setUploadProgress = _useState2[1];
1078
- var _useState3 = useState(""),
1079
- _useState4 = _slicedToArray(_useState3, 2),
1080
- uploadError = _useState4[0],
1081
- setUploadError = _useState4[1];
1082
- var _useField = useField(name),
1083
- _useField2 = _slicedToArray(_useField, 3);
1084
- _useField2[0];
1085
- var value = _useField2[1].value,
1086
- _useField2$ = _useField2[2],
1087
- setValue = _useField2$.setValue,
1088
- setError = _useField2$.setError,
1089
- setTouched = _useField2$.setTouched;
1090
- var filesRef = useRef(value === null || value === void 0 ? void 0 : value.files);
1091
- filesRef.current = value === null || value === void 0 ? void 0 : value.files;
1092
- var cancel = useCallback(function (index) {
1093
- return function () {
1094
- var _value$files;
1095
- setUploadProgress(assoc(value.files[index].name, null));
1096
- var newFiles = (_value$files = value.files) === null || _value$files === void 0 ? void 0 : _value$files.filter(function (_, idx) {
1097
- return idx !== index;
1098
- });
1099
- setValue({
1100
- files: newFiles
1101
- });
1102
- };
1103
- }, [value]);
1104
- useEffect(function () {
1105
- uploadError && setError(uploadError);
1106
- }, [uploadError]);
1107
- var onDropAccepted = /*#__PURE__*/function () {
1108
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(acceptedFiles) {
1109
- var initialFiles, updatedFiles, newFiles;
1110
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1111
- while (1) switch (_context.prev = _context.next) {
1112
- case 0:
1113
- setTouched(false);
1114
- setUploadError("");
1115
- initialFiles = acceptedFiles.map(function (file) {
1116
- return {
1117
- name: file.name,
1118
- size: file.size
1119
- };
1120
- });
1121
- updatedFiles = multiple ? [].concat(_toConsumableArray(value.files || []), _toConsumableArray(initialFiles)) : initialFiles;
1122
- setValue({
1123
- files: updatedFiles
1124
- });
1125
- _context.next = 7;
1126
- return new Promise(function (resolve) {
1127
- var files = [];
1128
- acceptedFiles.forEach(function (file) {
1129
- setUploadProgress(assoc(file.name, 0));
1130
- var upload = new DirectUpload(file, DIRECT_UPLOAD_URL, {
1131
- directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
1132
- xhr.upload.addEventListener("progress", function (event) {
1133
- var percentComplete = Math.round(event.loaded / event.total * 100);
1134
- setUploadProgress(assoc(file.name, percentComplete));
1135
- });
1136
- xhr.upload.addEventListener("load", function () {
1137
- setUploadProgress(assoc(file.name, undefined));
1138
- });
1139
- }
1140
- });
1141
- upload.create(function (error, blob) {
1142
- if (error) {
1143
- return setUploadError(error);
1144
- }
1145
- files.push({
1146
- url: blob.blob_url,
1147
- name: blob.filename,
1148
- signedId: blob.signed_id
1149
- });
1150
- var isUploadCompleted = multiple ? acceptedFiles.length === files.length : files.length === 1;
1151
- if (isUploadCompleted) {
1152
- return resolve(files);
1153
- }
1154
- return "";
1155
- });
1156
- });
1157
- return files;
1158
- });
1159
- case 7:
1160
- newFiles = _context.sent;
1161
- if (multiple) {
1162
- setValue({
1163
- files: filesRef.current.map(function (file) {
1164
- var uploadedFile = findBy({
1165
- name: file.name
1166
- }, newFiles);
1167
- return _objectSpread$b(_objectSpread$b({}, file), uploadedFile);
1168
- })
1169
- });
1170
- } else {
1171
- setValue({
1172
- files: newFiles
1173
- });
1174
- }
1175
- case 9:
1176
- case "end":
1177
- return _context.stop();
1178
- }
1179
- }, _callee);
1180
- }));
1181
- return function onDropAccepted(_x) {
1182
- return _ref2.apply(this, arguments);
1183
- };
1184
- }();
1185
- var onDropRejected = function onDropRejected(fileRejections) {
1186
- fileRejections.forEach(function (fileObject) {
1187
- setTouched(true);
1188
- setUploadError(renderErrorMessage(fileObject, maxFileSize, multiple));
1189
- });
1190
- };
1191
- var _useDropzone = useDropzone({
1192
- disabled: disabled,
1193
- accept: accept,
1194
- multiple: multiple,
1195
- onDropAccepted: onDropAccepted,
1196
- onDropRejected: onDropRejected,
1197
- maxSize: convertMbToBytes(maxFileSize)
1198
- }),
1199
- getRootProps = _useDropzone.getRootProps,
1200
- getInputProps = _useDropzone.getInputProps,
1201
- isDragActive = _useDropzone.isDragActive,
1202
- fileRejections = _useDropzone.fileRejections;
1203
- return {
1204
- files: value === null || value === void 0 ? void 0 : value.files,
1205
- progress: uploadProgress,
1206
- cancel: cancel,
1207
- getRootProps: getRootProps,
1208
- getInputProps: getInputProps,
1209
- isDragActive: isDragActive,
1210
- fileRejections: fileRejections
1211
- };
1212
- };
1213
-
1214
- var _path;
1215
- 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); }
1216
- const SvgFileUpload = props => /*#__PURE__*/React.createElement("svg", _extends({
1217
- xmlns: "http://www.w3.org/2000/svg",
1218
- width: 48,
1219
- height: 36,
1220
- fill: "none"
1221
- }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
1222
- fill: "currentColor",
1223
- 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"
1224
- })));
1225
-
1226
- 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; }
1227
- 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(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; }
1228
- var DropZone = function DropZone(_ref) {
1229
- var isDragActive = _ref.isDragActive,
1230
- getRootProps = _ref.getRootProps,
1231
- getInputProps = _ref.getInputProps,
1232
- multipleFilesAllowed = _ref.multipleFilesAllowed,
1233
- _ref$hasFileSizeLimit = _ref.hasFileSizeLimit,
1234
- hasFileSizeLimit = _ref$hasFileSizeLimit === void 0 ? true : _ref$hasFileSizeLimit,
1235
- maxFileSize = _ref.maxFileSize,
1236
- allowedFileTypes = _ref.allowedFileTypes;
1237
- var _useTranslation = useTranslation(),
1238
- t = _useTranslation.t;
1239
- var shouldShowFileSizeLimit = hasFileSizeLimit && maxFileSize;
1240
- return /*#__PURE__*/jsx("div", _objectSpread$a(_objectSpread$a({}, getRootProps({
1241
- className: classnames(["neeto-form-engine-file-upload__dropzone"], {
1242
- "neeto-form-engine-file-upload__dropzone--drag-active": isDragActive
1243
- })
1244
- })), {}, {
1245
- children: /*#__PURE__*/jsxs("div", {
1246
- className: "neeto-form-engine-file-upload__dropzone-inner",
1247
- "data-cy": "file-upload-body",
1248
- children: [/*#__PURE__*/jsx(SvgFileUpload, {
1249
- className: "neeto-form-engine-file-upload__upload-icon"
1250
- }), /*#__PURE__*/jsxs("div", {
1251
- className: "neeto-form-engine-file-upload__dropzone-content",
1252
- children: [/*#__PURE__*/jsxs("label", {
1253
- className: "neeto-form-engine-file-upload__upload-label",
1254
- htmlFor: "file-upload",
1255
- children: [/*#__PURE__*/jsx(Trans, {
1256
- i18nKey: "neetoForm.fileUpload.dropzone.chooseOrDragFile",
1257
- components: {
1258
- typography: /*#__PURE__*/jsx(Typography, {
1259
- component: "span",
1260
- weight: "semibold"
1261
- }),
1262
- span: /*#__PURE__*/jsx(Typography, {
1263
- component: "span",
1264
- weight: "normal"
1265
- })
1266
- }
1267
- }), /*#__PURE__*/jsx("input", _objectSpread$a(_objectSpread$a({}, getInputProps()), {}, {
1268
- "data-cy": "file-browse-button"
1269
- }))]
1270
- }), /*#__PURE__*/jsxs("div", {
1271
- className: "neeto-form-engine-file-upload__dropzone-helper-block",
1272
- children: [!multipleFilesAllowed && /*#__PURE__*/jsx(Typography, {
1273
- className: "neeto-form-engine-file-upload__dropzone-helper-text",
1274
- "data-cy": "upload-only-one-file-text",
1275
- style: "body3",
1276
- children: t("neetoForm.fileUpload.dropzone.oneFileAllowed")
1277
- }), shouldShowFileSizeLimit && /*#__PURE__*/jsx(Typography, {
1278
- className: "neeto-form-engine-file-upload__dropzone-helper-text",
1279
- "data-cy": "maximum-allowed-size-text",
1280
- style: "body3",
1281
- children: t("neetoForm.fileUpload.dropzone.maxFileSize", {
1282
- size: maxFileSize,
1283
- unit: t("neetoForm.fileUpload.mb")
1284
- })
1285
- }), allowedFileTypes && /*#__PURE__*/jsx(Typography, {
1286
- className: "neeto-form-engine-file-upload__dropzone-helper-text",
1287
- "data-cy": "allowed-files-types-text",
1288
- style: "body3",
1289
- children: t("neetoForm.fileUpload.dropzone.allowedFileTypes", {
1290
- types: allowedFileTypes
1291
- })
1292
- })]
1293
- })]
1294
- })]
1295
- })
1296
- }));
1297
- };
1298
-
1299
- var Progress = function Progress(_ref) {
1300
- var percents = _ref.percents,
1301
- _ref$stroke = _ref.stroke,
1302
- stroke = _ref$stroke === void 0 ? "blue" : _ref$stroke,
1303
- _ref$emptyStroke = _ref.emptyStroke,
1304
- emptyStroke = _ref$emptyStroke === void 0 ? stroke : _ref$emptyStroke,
1305
- _ref$emptyStrokeOpaci = _ref.emptyStrokeOpacity,
1306
- emptyStrokeOpacity = _ref$emptyStrokeOpaci === void 0 ? 0.25 : _ref$emptyStrokeOpaci,
1307
- _ref$duration = _ref.duration,
1308
- duration = _ref$duration === void 0 ? 0.5 : _ref$duration,
1309
- _ref$delay = _ref.delay,
1310
- delay = _ref$delay === void 0 ? 0 : _ref$delay,
1311
- _ref$size = _ref.size,
1312
- size = _ref$size === void 0 ? 100 : _ref$size,
1313
- _ref$strokeWidth = _ref.strokeWidth,
1314
- strokeWidth = _ref$strokeWidth === void 0 ? 12 : _ref$strokeWidth;
1315
- var radius = 45;
1316
- var circumference = Math.ceil(2 * Math.PI * radius);
1317
- var fillPercents = Math.abs(Math.ceil(circumference / 100 * (percents - 100)));
1318
- var transition = {
1319
- duration: duration,
1320
- delay: delay
1321
- };
1322
- var variants = {
1323
- hidden: {
1324
- strokeDashoffset: circumference,
1325
- transition: transition
1326
- },
1327
- show: {
1328
- strokeDashoffset: fillPercents,
1329
- transition: transition
1330
- }
1331
- };
1332
- return /*#__PURE__*/jsx("div", {
1333
- className: "neeto-form-engine-progress__circle",
1334
- children: /*#__PURE__*/jsxs("div", {
1335
- className: "neeto-form-engine-progress__circle-wrapper",
1336
- style: {
1337
- height: size
1338
- },
1339
- children: [/*#__PURE__*/jsx("svg", {
1340
- height: size,
1341
- version: "1.1",
1342
- viewBox: "0 0 100 100",
1343
- width: size,
1344
- xmlns: "http://www.w3.org/2000/svg",
1345
- children: /*#__PURE__*/jsx("circle", {
1346
- strokeWidth: strokeWidth,
1347
- className: "circle",
1348
- cx: "50",
1349
- cy: "50",
1350
- fill: "transparent",
1351
- r: radius,
1352
- stroke: emptyStroke,
1353
- strokeOpacity: emptyStrokeOpacity
1354
- })
1355
- }), /*#__PURE__*/jsx("svg", {
1356
- height: size,
1357
- viewBox: "0 0 100 100",
1358
- width: size,
1359
- style: {
1360
- position: "absolute",
1361
- transform: "rotate(-90deg)",
1362
- overflow: "visible",
1363
- top: 0
1364
- },
1365
- children: /*#__PURE__*/jsx(motion.circle, {
1366
- stroke: stroke,
1367
- strokeWidth: strokeWidth,
1368
- variants: variants,
1369
- animate: "show",
1370
- cx: "50",
1371
- cy: "50",
1372
- fill: "transparent",
1373
- initial: "hidden",
1374
- r: radius,
1375
- strokeDasharray: circumference,
1376
- strokeDashoffset: fillPercents
1377
- })
1378
- })]
1379
- })
1380
- });
1381
- };
1382
-
1383
- var FILE_MIME_TYPES = {
1384
- pdf: ["application/pdf"],
1385
- doc: ["application/msword", "application/wps-writer"],
1386
- docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
1387
- xls: ["application/vnd.ms-excel"],
1388
- xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
1389
- csv: ["text/csv"],
1390
- txt: ["text/plain"],
1391
- rtf: ["application/rtf", "text/rtf"],
1392
- html: ["text/html"],
1393
- htm: ["text/html"],
1394
- md: ["text/markdown", "text/x-markdown"],
1395
- zip: ["application/zip"],
1396
- mp3: ["audio/mpeg"],
1397
- wma: ["audio/x-ms-wma", "video/x-ms-asf"],
1398
- mp4: ["video/mp4"],
1399
- webm: ["video/webm"],
1400
- mpg: ["video/mpeg"],
1401
- mpeg: ["video/mpeg"],
1402
- flv: ["video/x-flv"],
1403
- avi: ["video/x-msvideo"],
1404
- jpg: ["image/jpeg"],
1405
- jpeg: ["image/jpeg"],
1406
- png: ["image/png"],
1407
- gif: ["image/gif"]
1408
- };
1409
-
1410
- var getAcceptedFileTypes = function getAcceptedFileTypes(allowedFileTypes) {
1411
- var accepted = {};
1412
- allowedFileTypes.split(", ").forEach(function (type) {
1413
- var mimeTypes = FILE_MIME_TYPES[type];
1414
- var extension = ".".concat(type);
1415
- if (isNotPresent(type) || isNotPresent(mimeTypes)) return;
1416
- mimeTypes.forEach(function (mimeType) {
1417
- if (accepted[mimeType]) accepted[mimeType].push(extension);else accepted[mimeType] = [extension];
1418
- });
1419
- });
1420
- return accepted;
1421
- };
1422
- var convertBytesToMb = function convertBytesToMb(bytes) {
1423
- return (bytes / (1024 * 1024)).toFixed(2);
1424
- };
1425
-
1426
- var FilePreview = withT(function (_ref) {
1427
- var t = _ref.t,
1428
- file = _ref.file,
1429
- isUploading = _ref.isUploading,
1430
- cancel = _ref.cancel,
1431
- progress = _ref.progress;
1432
- return /*#__PURE__*/jsxs("li", {
1433
- className: "neeto-form-engine-file-upload__uploaded-list-item",
1434
- children: [/*#__PURE__*/jsxs("div", {
1435
- className: "neeto-form-engine-file-upload__file-preview",
1436
- children: [/*#__PURE__*/jsx(Button, {
1437
- className: classnames("p-0", {
1438
- invisible: isUploading
1439
- }),
1440
- href: file.url,
1441
- icon: FileGeneric,
1442
- iconSize: 24,
1443
- rel: "noreferrer",
1444
- size: "large",
1445
- style: "text",
1446
- target: "_blank"
1447
- }), isUploading && /*#__PURE__*/jsx("div", {
1448
- className: "neeto-form-engine-progress",
1449
- children: /*#__PURE__*/jsx(Progress, {
1450
- percents: progress || 0,
1451
- size: 20
1452
- })
1453
- })]
1454
- }), /*#__PURE__*/jsxs("div", {
1455
- className: "flex min-w-0 grow flex-col break-words",
1456
- children: [/*#__PURE__*/jsx(Typography, {
1457
- className: "neeto-form-engine-file-upload__file-info-name",
1458
- style: "body2",
1459
- children: file.name
1460
- }), /*#__PURE__*/jsx(Typography, {
1461
- className: "neeto-form-engine-file-upload__file-info-size",
1462
- style: "body3",
1463
- children: file.size ? t("neetoForm.fileUpload.fileSizeInMb", {
1464
- fileSize: convertBytesToMb(file.size)
1465
- }) : ""
1466
- })]
1467
- }), /*#__PURE__*/jsxs("div", {
1468
- className: "neeto-form-engine-file-upload__actions",
1469
- children: [/*#__PURE__*/jsx("span", {
1470
- className: classnames("neeto-form-engine-file-upload__success-indicator", {
1471
- "neeto-form-engine-file-upload__success-indicator--active": file.url
1472
- }),
1473
- children: file.url && /*#__PURE__*/jsx(Check, {})
1474
- }), /*#__PURE__*/jsx("button", {
1475
- className: "neeto-form-engine-file-upload__button--red neeto-form-engine-file-upload__remove-button",
1476
- type: "button",
1477
- onClick: cancel,
1478
- children: /*#__PURE__*/jsx(Close, {})
1479
- })]
1480
- })]
1481
- }, file.url);
1482
- });
1483
-
1484
1044
  var FileUploadField = function FileUploadField(_ref) {
1485
1045
  var question = _ref.question,
1486
1046
  _ref$preview = _ref.preview,
@@ -1504,30 +1064,17 @@ var FileUploadField = function FileUploadField(_ref) {
1504
1064
  multipleFilesAllowed: multipleFilesAllowed
1505
1065
  })
1506
1066
  }),
1507
- _useField2 = _slicedToArray(_useField, 2);
1067
+ _useField2 = _slicedToArray(_useField, 3);
1508
1068
  _useField2[0];
1509
1069
  var _useField2$ = _useField2[1],
1070
+ value = _useField2$.value,
1510
1071
  touched = _useField2$.touched,
1511
- error = _useField2$.error;
1512
- var _useFileUpload = useFileUpload({
1513
- disabled: preview,
1514
- accept: getAcceptedFileTypes(allowedFileTypes),
1515
- multiple: multipleFilesAllowed,
1516
- name: name || nodeId,
1517
- maxFileSize: maxFileSize
1518
- }),
1519
- files = _useFileUpload.files,
1520
- progress = _useFileUpload.progress,
1521
- cancel = _useFileUpload.cancel,
1522
- getRootProps = _useFileUpload.getRootProps,
1523
- getInputProps = _useFileUpload.getInputProps,
1524
- isDragActive = _useFileUpload.isDragActive,
1525
- fileRejections = _useFileUpload.fileRejections;
1526
- var shouldShowError = touched && error && isEmpty(fileRejections);
1527
- var maxFileSizeInBytes = convertMbToBytes(maxFileSize);
1528
- var isUploadingFile = function isUploadingFile(file) {
1529
- return isNotNil(progress[file.name]) && (progress[file.name] !== 100 || !file.url);
1530
- };
1072
+ error = _useField2$.error,
1073
+ _useField2$2 = _useField2[2],
1074
+ setValue = _useField2$2.setValue,
1075
+ setError = _useField2$2.setError,
1076
+ setTouched = _useField2$2.setTouched;
1077
+ var errorToDisplay = touched && error ? error : "";
1531
1078
  return /*#__PURE__*/jsxs("div", {
1532
1079
  className: "neeto-form-engine-input__wrapper",
1533
1080
  children: [/*#__PURE__*/jsx("div", {
@@ -1537,32 +1084,20 @@ var FileUploadField = function FileUploadField(_ref) {
1537
1084
  required: isRequired,
1538
1085
  children: label
1539
1086
  })
1540
- }), /*#__PURE__*/jsx(DropZone, {
1087
+ }), /*#__PURE__*/jsx(FileUpload, {
1541
1088
  allowedFileTypes: allowedFileTypes,
1542
- getInputProps: getInputProps,
1543
- getRootProps: getRootProps,
1544
- isDragActive: isDragActive,
1545
1089
  maxFileSize: maxFileSize,
1546
- multipleFilesAllowed: multipleFilesAllowed
1547
- }), isNotEmpty(files) && /*#__PURE__*/jsx("ul", {
1548
- className: "neeto-form-engine-file-upload__uploaded-list",
1549
- children: files === null || files === void 0 ? void 0 : files.map(function (file, idx) {
1550
- return /*#__PURE__*/createElement(FilePreview, {
1551
- file: file,
1552
- cancel: cancel(idx),
1553
- isUploading: isUploadingFile(file),
1554
- key: idx,
1555
- progress: progress[file.name]
1090
+ multipleFilesAllowed: multipleFilesAllowed,
1091
+ setError: setError,
1092
+ setTouched: setTouched,
1093
+ error: errorToDisplay,
1094
+ files: value === null || value === void 0 ? void 0 : value.files,
1095
+ isPreview: preview,
1096
+ onChange: function onChange(files) {
1097
+ return setValue({
1098
+ files: files
1556
1099
  });
1557
- })
1558
- }), isNotEmpty(fileRejections) && fileRejections.map(function (file, index) {
1559
- return /*#__PURE__*/jsx(Typography, {
1560
- 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",
1561
- children: renderErrorMessage(file, maxFileSizeInBytes, false)
1562
- }, index);
1563
- }), shouldShowError && /*#__PURE__*/jsx(Typography, {
1564
- 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",
1565
- children: error
1100
+ }
1566
1101
  })]
1567
1102
  });
1568
1103
  };
@@ -1813,9 +1348,11 @@ var Rating = function Rating(_ref) {
1813
1348
  className: "neeto-form-engine-rating",
1814
1349
  children: [/*#__PURE__*/jsx("label", {
1815
1350
  className: "neeto-form-engine-label",
1351
+ "data-cy": "rating-input-label",
1816
1352
  children: label
1817
1353
  }), /*#__PURE__*/jsx("div", {
1818
1354
  className: "neeto-form-engine-rating__row",
1355
+ "data-cy": "rating-input-field",
1819
1356
  children: render()
1820
1357
  }), !!error && typeof error === "string" && /*#__PURE__*/jsx("p", {
1821
1358
  className: "neeto-form-engine-input__error",
@@ -1880,6 +1417,7 @@ var RichTextEditor = function RichTextEditor(_ref) {
1880
1417
  className: "neeto-form-engine-input__label-wrapper",
1881
1418
  children: label && /*#__PURE__*/jsx("label", {
1882
1419
  className: "neeto-form-engine-label",
1420
+ "data-cy": "".concat(hyphenate(label), "-input-label"),
1883
1421
  children: getLabel(label, isRequired)
1884
1422
  })
1885
1423
  }), /*#__PURE__*/jsx(FastField, {
@@ -1972,10 +1510,12 @@ var StarRating = function StarRating(_ref) {
1972
1510
  className: "neeto-form-engine-input__label-wrapper",
1973
1511
  children: /*#__PURE__*/jsx("label", {
1974
1512
  className: "neeto-form-engine-label",
1513
+ "data-cy": "star-rating-input-label",
1975
1514
  children: label
1976
1515
  })
1977
1516
  }), /*#__PURE__*/jsx("div", {
1978
1517
  className: "neeto-form-engine-star-rating__row",
1518
+ "data-cy": "star-rating-input-field",
1979
1519
  children: generateArray(minValue, maxValue).map(function (index) {
1980
1520
  return /*#__PURE__*/jsx(RatingButton$1, _objectSpread$3({
1981
1521
  label: index,
@@ -2151,4 +1691,4 @@ var getPhoneData = function getPhoneData(value, countryCode) {
2151
1691
  };
2152
1692
 
2153
1693
  export { FormikWrap as F, generateInitValues as a, getFieldComponent as b, clientI18nInstance as c, buildAutoCompleteAttribute as d, generateFormResponse as e, clearLocalStorageValues as f, getWithExpiry as g, mergeRefs as m, renderButtonsInOrder as r };
2154
- //# sourceMappingURL=utils-4a844c8d.js.map
1694
+ //# sourceMappingURL=utils-6039d7d2.js.map