@bigbinary/neeto-form-frontend 3.9.0 → 3.9.1

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 (54) hide show
  1. package/app/javascript/src/translations/ar.json +3 -1
  2. package/app/javascript/src/translations/de.json +3 -1
  3. package/app/javascript/src/translations/es.json +3 -1
  4. package/app/javascript/src/translations/fr.json +3 -1
  5. package/app/javascript/src/translations/it.json +201 -0
  6. package/app/javascript/src/translations/nl.json +3 -1
  7. package/app/javascript/src/translations/pl.json +3 -1
  8. package/app/javascript/src/translations/pt.json +3 -1
  9. package/app/javascript/src/translations/ru.json +202 -0
  10. package/dist/BuildForm.js +14 -77
  11. package/dist/BuildForm.js.map +1 -1
  12. package/dist/ExternalForm.js +12 -12
  13. package/dist/ExternalForm.js.map +1 -1
  14. package/dist/Submission.js +1 -1
  15. package/dist/Submission.js.map +1 -1
  16. package/dist/UrlBuilder.js +10 -10
  17. package/dist/UrlBuilder.js.map +1 -1
  18. package/dist/buildForm-b8eb931e.js.map +1 -1
  19. package/dist/buildForm-dfd708c6.js.map +1 -1
  20. package/dist/cjs/BuildForm.js +16 -79
  21. package/dist/cjs/BuildForm.js.map +1 -1
  22. package/dist/cjs/ExternalForm.js +12 -12
  23. package/dist/cjs/ExternalForm.js.map +1 -1
  24. package/dist/cjs/Submission.js +1 -1
  25. package/dist/cjs/Submission.js.map +1 -1
  26. package/dist/cjs/UrlBuilder.js +10 -10
  27. package/dist/cjs/UrlBuilder.js.map +1 -1
  28. package/dist/cjs/hooks.js +2 -2
  29. package/dist/cjs/index.js +5 -4
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/constants-4d9fc943.js.map +1 -1
  32. package/dist/constants-75b78b3a.js.map +1 -1
  33. package/dist/{constants-56bf4022.js → constants-771cca31.js} +2 -3
  34. package/dist/{constants-56bf4022.js.map → constants-771cca31.js.map} +1 -1
  35. package/dist/{constants-d9148acf.js → constants-9538731d.js} +2 -3
  36. package/dist/{constants-d9148acf.js.map → constants-9538731d.js.map} +1 -1
  37. package/dist/hooks.js +2 -2
  38. package/dist/index.js +5 -4
  39. package/dist/index.js.map +1 -1
  40. package/dist/{useFormApi-408d0060.js → useFormApi-24e05ed2.js} +6 -6
  41. package/dist/{useFormApi-408d0060.js.map → useFormApi-24e05ed2.js.map} +1 -1
  42. package/dist/{useFormApi-e3476a20.js → useFormApi-dee63a95.js} +6 -6
  43. package/dist/{useFormApi-e3476a20.js.map → useFormApi-dee63a95.js.map} +1 -1
  44. package/dist/{useFormSubmission-e2e84587.js → useFormSubmission-8b23d7aa.js} +2 -2
  45. package/dist/{useFormSubmission-e2e84587.js.map → useFormSubmission-8b23d7aa.js.map} +1 -1
  46. package/dist/{useFormSubmission-46db678f.js → useFormSubmission-c4e42402.js} +2 -2
  47. package/dist/{useFormSubmission-46db678f.js.map → useFormSubmission-c4e42402.js.map} +1 -1
  48. package/dist/{utils-6039d7d2.js → utils-58566755.js} +35 -36
  49. package/dist/utils-58566755.js.map +1 -0
  50. package/dist/{utils-3eb74c1b.js → utils-d5895099.js} +35 -36
  51. package/dist/utils-d5895099.js.map +1 -0
  52. package/package.json +101 -92
  53. package/dist/utils-3eb74c1b.js.map +0 -1
  54. package/dist/utils-6039d7d2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"buildForm-dfd708c6.js","sources":["../app/javascript/src/stores/buildForm.js"],"sourcesContent":["import i18next from \"i18next\";\nimport { noop } from \"neetocist\";\nimport { withImmutableActions } from \"neetocommons/react-utils\";\nimport { mergeLeft, modify, prop } from \"ramda\";\nimport { create } from \"zustand\";\n\nimport { isFunction } from \"utils\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useBuildFormStore = create(\n withImmutableActions(set => ({\n formState: {\n values: {},\n dirty: false,\n isSubmitting: false,\n isValid: true,\n errors: [],\n submitForm: noop,\n resetForm: noop,\n selectedLanguage: i18next.resolvedLanguage,\n formId: null,\n enabled: false,\n title: \"\",\n richTextFieldsToReset: [],\n helpDocUrls: {},\n enableDomainBlacklisting: true,\n enableDomainWhitelisting: true,\n },\n\n setFormData: arg =>\n set(modify(\"formState\", isFunction(arg) ? arg : mergeLeft(arg))),\n }))\n);\n\nexport const useBuildFormState = () => useBuildFormStore(prop(\"formState\"));\n\nexport default useBuildFormStore;\n"],"names":["useBuildFormStore","create","withImmutableActions","set","formState","values","dirty","isSubmitting","isValid","errors","submitForm","noop","resetForm","selectedLanguage","i18next","resolvedLanguage","formId","enabled","title","richTextFieldsToReset","helpDocUrls","enableDomainBlacklisting","enableDomainWhitelisting","setFormData","arg","modify","isFunction","mergeLeft","useBuildFormState","prop"],"mappings":";;;;;;;AAQA;AACA,IAAMA,iBAAiB,GAAGC,MAAM,CAC9BC,oBAAoB,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAK;AAC3BC,IAAAA,SAAS,EAAE;MACTC,MAAM,EAAE,EAAE;AACVC,MAAAA,KAAK,EAAE,KAAK;AACZC,MAAAA,YAAY,EAAE,KAAK;AACnBC,MAAAA,OAAO,EAAE,IAAI;AACbC,MAAAA,MAAM,EAAE,EAAE;AACVC,MAAAA,UAAU,EAAEC,IAAI;AAChBC,MAAAA,SAAS,EAAED,IAAI;MACfE,gBAAgB,EAAEC,OAAO,CAACC,gBAAgB;AAC1CC,MAAAA,MAAM,EAAE,IAAI;AACZC,MAAAA,OAAO,EAAE,KAAK;AACdC,MAAAA,KAAK,EAAE,EAAE;AACTC,MAAAA,qBAAqB,EAAE,EAAE;MACzBC,WAAW,EAAE,EAAE;AACfC,MAAAA,wBAAwB,EAAE,IAAI;AAC9BC,MAAAA,wBAAwB,EAAE,IAAA;KAC3B;IAEDC,WAAW,EAAE,SAAAA,WAAAA,CAAAC,GAAG,EAAA;AAAA,MAAA,OACdrB,GAAG,CAACsB,MAAM,CAAC,WAAW,EAAEC,UAAU,CAACF,GAAG,CAAC,GAAGA,GAAG,GAAGG,SAAS,CAACH,GAAG,CAAC,CAAC,CAAC,CAAA;AAAA,KAAA;GACnE,CAAA;AAAA,CAAC,CACJ,EAAC;AAEYI,IAAAA,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,OAAS5B,iBAAiB,CAAC6B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"buildForm-dfd708c6.js","sources":["../app/javascript/src/stores/buildForm.js"],"sourcesContent":["import i18next from \"i18next\";\nimport { noop } from \"neetocist\";\nimport { withImmutableActions } from \"neetocommons/react-utils\";\nimport { mergeLeft, modify, prop } from \"ramda\";\nimport { create } from \"zustand\";\n\nimport { isFunction } from \"utils\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useBuildFormStore = create(\n withImmutableActions(set => ({\n formState: {\n values: {},\n dirty: false,\n isSubmitting: false,\n isValid: true,\n errors: [],\n submitForm: noop,\n resetForm: noop,\n selectedLanguage: i18next.resolvedLanguage,\n formId: null,\n enabled: false,\n title: \"\",\n richTextFieldsToReset: [],\n helpDocUrls: {},\n enableDomainBlacklisting: true,\n enableDomainWhitelisting: true,\n },\n\n setFormData: arg =>\n set(modify(\"formState\", isFunction(arg) ? arg : mergeLeft(arg))),\n }))\n);\n\nexport const useBuildFormState = () => useBuildFormStore(prop(\"formState\"));\n\nexport default useBuildFormStore;\n"],"names":["useBuildFormStore","create","withImmutableActions","set","formState","values","dirty","isSubmitting","isValid","errors","submitForm","noop","resetForm","selectedLanguage","i18next","resolvedLanguage","formId","enabled","title","richTextFieldsToReset","helpDocUrls","enableDomainBlacklisting","enableDomainWhitelisting","setFormData","arg","modify","isFunction","mergeLeft","useBuildFormState","prop"],"mappings":";;;;;;;AAQA;AACA,IAAMA,iBAAiB,GAAGC,MAAM,CAC9BC,oBAAoB,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAK;AAC3BC,IAAAA,SAAS,EAAE;MACTC,MAAM,EAAE,EAAE;AACVC,MAAAA,KAAK,EAAE,KAAK;AACZC,MAAAA,YAAY,EAAE,KAAK;AACnBC,MAAAA,OAAO,EAAE,IAAI;AACbC,MAAAA,MAAM,EAAE,EAAE;AACVC,MAAAA,UAAU,EAAEC,IAAI;AAChBC,MAAAA,SAAS,EAAED,IAAI;MACfE,gBAAgB,EAAEC,OAAO,CAACC,gBAAgB;AAC1CC,MAAAA,MAAM,EAAE,IAAI;AACZC,MAAAA,OAAO,EAAE,KAAK;AACdC,MAAAA,KAAK,EAAE,EAAE;AACTC,MAAAA,qBAAqB,EAAE,EAAE;MACzBC,WAAW,EAAE,EAAE;AACfC,MAAAA,wBAAwB,EAAE,IAAI;AAC9BC,MAAAA,wBAAwB,EAAE,IAAA;KAC3B;AAEDC,IAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAEC,GAAG,EAAA;AAAA,MAAA,OACdrB,GAAG,CAACsB,MAAM,CAAC,WAAW,EAAEC,UAAU,CAACF,GAAG,CAAC,GAAGA,GAAG,GAAGG,SAAS,CAACH,GAAG,CAAC,CAAC,CAAC,CAAA;AAAA,KAAA;GACnE,CAAA;AAAA,CAAC,CACJ,EAAC;AAEYI,IAAAA,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,OAAS5B,iBAAiB,CAAC6B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;AAAA;;;;"}
@@ -9,9 +9,9 @@ var neetoCist = require('@bigbinary/neeto-cist');
9
9
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
10
10
  var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
11
11
  var ramda = require('ramda');
12
- var useFormApi = require('../useFormApi-408d0060.js');
12
+ var useFormApi = require('../useFormApi-24e05ed2.js');
13
13
  var constants$1 = require('../constants-4d9fc943.js');
14
- var constants = require('../constants-56bf4022.js');
14
+ var constants = require('../constants-771cca31.js');
15
15
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
16
16
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
17
17
  var dnd = require('@hello-pangea/dnd');
@@ -31,6 +31,7 @@ var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
31
31
  var i18next = require('i18next');
32
32
  var Plus = require('@bigbinary/neeto-icons/Plus');
33
33
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
34
+ var uuid = require('uuid');
34
35
  var NoData = require('@bigbinary/neetoui/NoData');
35
36
  var Pane = require('@bigbinary/neetoui/Pane');
36
37
  var Form$2 = require('@bigbinary/neetoui/formik/Form');
@@ -295,8 +296,8 @@ function ownKeys$h(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymb
295
296
  function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
296
297
  var validateEditorContent = function validateEditorContent(editorRef) {
297
298
  return function () {
298
- var _editorRef$current;
299
- return (_editorRef$current = editorRef.current) !== null && _editorRef$current !== void 0 && (_editorRef$current = _editorRef$current.editor) !== null && _editorRef$current !== void 0 && _editorRef$current.isEmpty ? i18next.t("neetoForm.common.thisFieldIsRequired") : "";
299
+ var _editorRef$current, _editorRef$current$ed;
300
+ return (_editorRef$current = editorRef.current) !== null && _editorRef$current !== void 0 && (_editorRef$current$ed = _editorRef$current.editor) !== null && _editorRef$current$ed !== void 0 && _editorRef$current$ed.isEmpty ? i18next.t("neetoForm.common.thisFieldIsRequired") : "";
300
301
  };
301
302
  };
302
303
  var buildReorderPayload = function buildReorderPayload(questions) {
@@ -484,71 +485,6 @@ var Questions = function Questions(_ref) {
484
485
  });
485
486
  };
486
487
 
487
- // Unique ID creation requires a high quality random # generator. In the browser we therefore
488
- // require the crypto API and do not support built-in fallback to lower quality random number
489
- // generators (like Math.random()).
490
- let getRandomValues;
491
- const rnds8 = new Uint8Array(16);
492
- function rng() {
493
- // lazy load so that environments that need to polyfill have a chance to do so
494
- if (!getRandomValues) {
495
- // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
496
- getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
497
-
498
- if (!getRandomValues) {
499
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
500
- }
501
- }
502
-
503
- return getRandomValues(rnds8);
504
- }
505
-
506
- /**
507
- * Convert array of 16 byte values to UUID string format of the form:
508
- * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
509
- */
510
-
511
- const byteToHex = [];
512
-
513
- for (let i = 0; i < 256; ++i) {
514
- byteToHex.push((i + 0x100).toString(16).slice(1));
515
- }
516
-
517
- function unsafeStringify(arr, offset = 0) {
518
- // Note: Be careful editing this code! It's been tuned for performance
519
- // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
520
- return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
521
- }
522
-
523
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
524
- var native = {
525
- randomUUID
526
- };
527
-
528
- function v4(options, buf, offset) {
529
- if (native.randomUUID && !buf && !options) {
530
- return native.randomUUID();
531
- }
532
-
533
- options = options || {};
534
- const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
535
-
536
- rnds[6] = rnds[6] & 0x0f | 0x40;
537
- rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
538
-
539
- if (buf) {
540
- offset = offset || 0;
541
-
542
- for (let i = 0; i < 16; ++i) {
543
- buf[offset + i] = rnds[i];
544
- }
545
-
546
- return buf;
547
- }
548
-
549
- return unsafeStringify(rnds);
550
- }
551
-
552
488
  var moveItem = function moveItem(arr, sourceIndex, destinationIndex) {
553
489
  if (sourceIndex === destinationIndex) return arr;
554
490
  if (arr instanceof Array && arr[sourceIndex] !== undefined) {
@@ -619,7 +555,7 @@ var createFieldData = function createFieldData(_ref3) {
619
555
  metadata: metadata,
620
556
  isRequired: isRequired,
621
557
  kind: type,
622
- nodeId: v4(),
558
+ nodeId: uuid.v4(),
623
559
  fieldCode: generateUniqueFieldCode(type, questions)
624
560
  });
625
561
  };
@@ -644,7 +580,7 @@ var duplicateFieldData = function duplicateFieldData(_ref4) {
644
580
  kind: kind,
645
581
  label: newQuestionLabel,
646
582
  optionsAttributes: optionsAttributes && optionsAttributes.map(ramda.omit(["id"])),
647
- nodeId: v4(),
583
+ nodeId: uuid.v4(),
648
584
  fieldCode: generateUniqueFieldCode(item.kind, questions),
649
585
  displayOrder: item.displayOrder + 1
650
586
  });
@@ -804,8 +740,8 @@ var useUpdateEditorContent = function useUpdateEditorContent(_ref) {
804
740
  return store.formState.richTextFieldsToReset.includes(fieldCode);
805
741
  });
806
742
  var setEditorContent = function setEditorContent(content) {
807
- var _editorRef$current$ed;
808
- return (_editorRef$current$ed = editorRef.current.editor) === null || _editorRef$current$ed === void 0 || (_editorRef$current$ed = _editorRef$current$ed.commands) === null || _editorRef$current$ed === void 0 ? void 0 : _editorRef$current$ed.setContent(content);
743
+ var _editorRef$current$ed, _editorRef$current$ed2;
744
+ return (_editorRef$current$ed = editorRef.current.editor) === null || _editorRef$current$ed === void 0 ? void 0 : (_editorRef$current$ed2 = _editorRef$current$ed.commands) === null || _editorRef$current$ed2 === void 0 ? void 0 : _editorRef$current$ed2.setContent(content);
809
745
  };
810
746
  if (shouldReset) {
811
747
  setEditorContent(initialValue);
@@ -1284,11 +1220,11 @@ var SwitchBlock = function SwitchBlock(_ref) {
1284
1220
  otherProps = _objectWithoutProperties__default["default"](_ref, _excluded$4);
1285
1221
  return /*#__PURE__*/jsxRuntime.jsxs(Label__default["default"], {
1286
1222
  className: classnames__default["default"]("flex items-center justify-start gap-2 ", className),
1287
- "data-cy": "neeto-form-engine-".concat(neetoCist.hyphenate(title), "-toggle-label"),
1223
+ "data-cy": "neeto-form-engine-".concat(neetoCist.hyphenate(title && name), "-toggle-label"),
1288
1224
  children: [/*#__PURE__*/jsxRuntime.jsx(Switch__default["default"], _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, otherProps), {}, {
1289
1225
  name: name
1290
1226
  })), {}, {
1291
- "data-cy": "neeto-form-engine-".concat(neetoCist.hyphenate(title), "-switch")
1227
+ "data-cy": "neeto-form-engine-".concat(neetoCist.hyphenate(title && name), "-switch")
1292
1228
  })), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1293
1229
  component: "span",
1294
1230
  style: "body1",
@@ -1554,8 +1490,8 @@ var validateDomains = function validateDomains(value) {
1554
1490
  }));
1555
1491
 
1556
1492
  // eslint-disable-next-line no-async-promise-executor
1557
- return new Promise( /*#__PURE__*/function () {
1558
- var _ref = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(resolve) {
1493
+ return new Promise(/*#__PURE__*/function () {
1494
+ var _ref = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(resolve) {
1559
1495
  return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
1560
1496
  while (1) switch (_context.prev = _context.next) {
1561
1497
  case 0:
@@ -1628,6 +1564,7 @@ var RestrictDomainsBlock = function RestrictDomainsBlock(_ref) {
1628
1564
  var helpLink = buildForm.useBuildFormStore(ramda.path(["formState", "helpDocUrls", domainName]));
1629
1565
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1630
1566
  className: "flex flex-col space-y-4",
1567
+ "data-cy": "".concat(neetoCist.hyphenate(switchName), "-container"),
1631
1568
  children: [/*#__PURE__*/jsxRuntime.jsx(SwitchBlock, {
1632
1569
  className: "mt-4",
1633
1570
  name: switchName,
@@ -2254,7 +2191,7 @@ var Form = function Form(_ref) {
2254
2191
  enabled: !(isDeleteAlertOpen || isManageQuestionPaneOpen)
2255
2192
  });
2256
2193
  React.useEffect(function () {
2257
- onValueChange === null || onValueChange === void 0 || onValueChange(questions);
2194
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(questions);
2258
2195
  }, [questions]);
2259
2196
  var availableQuestionKinds = getAvailableQuestionKinds({
2260
2197
  allQuestionKinds: questionKinds,
@@ -2439,7 +2376,7 @@ var BuildForm = function BuildForm(_ref) {
2439
2376
  isQuestionsLoading = _ref2.isQuestionsLoading;
2440
2377
  React.useEffect(function () {
2441
2378
  if (data) {
2442
- onUpdate === null || onUpdate === void 0 || onUpdate(data);
2379
+ onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(data);
2443
2380
  }
2444
2381
  }, [data]);
2445
2382
  if (isLoading || showLoader && isQuestionsLoading && !isQuestionsPending) {