@feathery/react 2.21.0 → 2.22.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 (108) hide show
  1. package/cjs/Form/index.d.ts.map +1 -1
  2. package/cjs/Form/tests/testMocks.d.ts.map +1 -1
  3. package/cjs/elements/components/FormOff.d.ts +5 -4
  4. package/cjs/elements/components/FormOff.d.ts.map +1 -1
  5. package/cjs/{fthry_FormControl.DFkoNS7m.js → fthry_FormControl.DO1VrNhK.js} +1 -1
  6. package/cjs/{fthry_InlineTooltip.BqrUvYsf.js → fthry_InlineTooltip.By-RR6_f.js} +2 -2
  7. package/cjs/{fthry_Overlay.BogxM8_x.js → fthry_Overlay.DWYTsRft.js} +1 -1
  8. package/cjs/{fthry_PaymentMethodField.O7j1bFxf.js → fthry_PaymentMethodField.BK4kwCOK.js} +4 -4
  9. package/cjs/{fthry_Placeholder.CeDmXoEH.js → fthry_Placeholder.6RgPOXj2.js} +1 -1
  10. package/cjs/{fthry_ShowEyeIcon.DB6Y0oJU.js → fthry_ShowEyeIcon.Bn3FCzSJ.js} +1 -1
  11. package/cjs/{fthry_index.DpdkY1k7.js → fthry_index.B21E8fM3.js} +1 -1
  12. package/cjs/{fthry_index.Cy-T4HCz.js → fthry_index.BH6XhQdp.js} +8 -8
  13. package/cjs/{fthry_index.BA-WFjGc.js → fthry_index.BtybYc89.js} +6 -6
  14. package/cjs/{fthry_index.DUau2wvs.js → fthry_index.CCS0xFt5.js} +4 -4
  15. package/cjs/{fthry_index.B6dz6_D2.js → fthry_index.CQ1H9R8w.js} +238 -74
  16. package/cjs/{fthry_index.DRNB-tCT.js → fthry_index.CWdkg5Zm.js} +5 -5
  17. package/cjs/{fthry_index.Br3HlsO5.js → fthry_index.CeQp5dil.js} +1 -1
  18. package/cjs/{fthry_index.J8P_vp8o.js → fthry_index.Ctj468qV.js} +1 -1
  19. package/cjs/{fthry_index.v9OD_-hq.js → fthry_index.Cv6mZaeK.js} +3 -3
  20. package/cjs/{fthry_index.CrI80enn.js → fthry_index.D4smc8or.js} +5 -5
  21. package/cjs/{fthry_index.CiPmoBTf.js → fthry_index.DFwy8zPz.js} +4 -4
  22. package/cjs/{fthry_index.-2aBRBrW.js → fthry_index.DSSKVn_1.js} +1 -1
  23. package/cjs/{fthry_index.DRz5hODR.js → fthry_index.DfbrnR6k.js} +5 -5
  24. package/cjs/{fthry_index.CkiBXgLp.js → fthry_index.DyZ1R4Ss.js} +5 -5
  25. package/cjs/{fthry_index.DzXZ-Rb_.js → fthry_index.Dz3HdZ1B.js} +3 -3
  26. package/cjs/{fthry_index.C3o0YyvM.js → fthry_index.DzPmH3iY.js} +1 -1
  27. package/cjs/{fthry_index.C5Pj-Zfh.js → fthry_index.Gx6e2BxN.js} +6 -6
  28. package/cjs/{fthry_index.DMEipzfW.js → fthry_index.S71Qur9B.js} +1 -1
  29. package/cjs/{fthry_index.WqEOU2O1.js → fthry_index.SwhJFwYK.js} +4 -4
  30. package/cjs/{fthry_index.GU6DtzCY.js → fthry_index.VkoiOsK9.js} +2 -2
  31. package/cjs/{fthry_index.BVa6RVKk.js → fthry_index.Vzvb_jcV.js} +6 -6
  32. package/cjs/{fthry_index.D2zIjosg.js → fthry_index.Y9ysXndZ.js} +2 -2
  33. package/cjs/{fthry_index.DhqYB5dK.js → fthry_index.k_4_AZEy.js} +1 -1
  34. package/cjs/{fthry_index.BnndrG3W.js → fthry_index.yRyX68Km.js} +1 -1
  35. package/cjs/{fthry_input.CAh1dh3q.js → fthry_input.DrPPpTdq.js} +1 -1
  36. package/cjs/{fthry_script.BTrurqF7.js → fthry_script.BKkDPtX8.js} +1 -1
  37. package/cjs/{fthry_styles.BPdPCGs1.js → fthry_styles.D3wpqY9E.js} +1 -1
  38. package/cjs/{fthry_useElementSize.8u2TF8ax.js → fthry_useElementSize.DN3P3ek_.js} +1 -1
  39. package/cjs/{fthry_useSalesforceSync.DViFa05Y.js → fthry_useSalesforceSync.DsBDJDOJ.js} +1 -1
  40. package/cjs/{fthry_webfontloader.BUWRlWxA.js → fthry_webfontloader.DVRrUK76.js} +1 -1
  41. package/cjs/index.d.ts +6 -0
  42. package/cjs/index.d.ts.map +1 -1
  43. package/cjs/index.js +1 -1
  44. package/cjs/utils/featheryClient/index.d.ts +6 -0
  45. package/cjs/utils/featheryClient/index.d.ts.map +1 -1
  46. package/cjs/utils/featheryClient/integrationClient.d.ts.map +1 -1
  47. package/cjs/utils/featheryClient/utils.d.ts +1 -0
  48. package/cjs/utils/featheryClient/utils.d.ts.map +1 -1
  49. package/cjs/utils/formContext.d.ts +6 -0
  50. package/cjs/utils/formContext.d.ts.map +1 -1
  51. package/cjs/utils/init.d.ts +1 -0
  52. package/cjs/utils/init.d.ts.map +1 -1
  53. package/cjs/utils/offlineRequestHandler.d.ts.map +1 -1
  54. package/dist/Form/index.d.ts.map +1 -1
  55. package/dist/Form/tests/testMocks.d.ts.map +1 -1
  56. package/dist/elements/components/FormOff.d.ts +5 -4
  57. package/dist/elements/components/FormOff.d.ts.map +1 -1
  58. package/dist/{fthry_FormControl.DqD-t0-5.js → fthry_FormControl.BxUrokqK.js} +1 -1
  59. package/dist/{fthry_InlineTooltip.CiQE9axD.js → fthry_InlineTooltip.Ci5tV_wI.js} +2 -2
  60. package/dist/{fthry_Overlay.DJD2-5uG.js → fthry_Overlay.DerqCNin.js} +1 -1
  61. package/dist/{fthry_PaymentMethodField.DA4PTzPY.js → fthry_PaymentMethodField.7kpfN-kk.js} +4 -4
  62. package/dist/{fthry_Placeholder.CpBJo_eu.js → fthry_Placeholder.4DL4VrHk.js} +1 -1
  63. package/dist/{fthry_ShowEyeIcon.Czn5uNUy.js → fthry_ShowEyeIcon.B630O_g-.js} +1 -1
  64. package/dist/{fthry_index.DTuI9CtE.js → fthry_index.3MYBbcV6.js} +1 -1
  65. package/dist/{fthry_index.D_6kZUzg.js → fthry_index.5O3QvVEZ.js} +8 -8
  66. package/dist/{fthry_index.rW2ARWsn.js → fthry_index.9PP8aHAm.js} +5 -5
  67. package/dist/{fthry_index.BLZHG42F.js → fthry_index.9SEFAxVs.js} +1 -1
  68. package/dist/{fthry_index.B2IqSOfR.js → fthry_index.B4025Nic.js} +5 -5
  69. package/dist/{fthry_index.BVcwTwxi.js → fthry_index.B5P56Wdn.js} +1 -1
  70. package/dist/{fthry_index.VO6RxzHm.js → fthry_index.B7Uxlphu.js} +1 -1
  71. package/dist/{fthry_index.BoctyUX4.js → fthry_index.BAWUo-9K.js} +1 -1
  72. package/dist/{fthry_index.DmQO11yP.js → fthry_index.BDrpWWPf.js} +238 -74
  73. package/dist/{fthry_index.CIQ5zg4E.js → fthry_index.CKr9necb.js} +1 -1
  74. package/dist/{fthry_index.D7Bb8rb7.js → fthry_index.CYGDbYS_.js} +3 -3
  75. package/dist/{fthry_index.B2MXQT_J.js → fthry_index.CZq04f_l.js} +4 -4
  76. package/dist/{fthry_index.BmyvNxXV.js → fthry_index.CgmyiGp_.js} +6 -6
  77. package/dist/{fthry_index.BYgv3YMr.js → fthry_index.Co1N5Wm2.js} +4 -4
  78. package/dist/{fthry_index.eRbqPcOr.js → fthry_index.D7-zC56j.js} +2 -2
  79. package/dist/{fthry_index.CXHlEhQc.js → fthry_index.D8pad3ZV.js} +1 -1
  80. package/dist/{fthry_index.BrMeQ_Gw.js → fthry_index.DCoMERuc.js} +3 -3
  81. package/dist/{fthry_index.BWMAYNPO.js → fthry_index.DE5w1XVV.js} +5 -5
  82. package/dist/{fthry_index.Z1du2f7I.js → fthry_index.DQhNMB2b.js} +2 -2
  83. package/dist/{fthry_index.BSvRoTKl.js → fthry_index.DhUtbNbg.js} +4 -4
  84. package/dist/{fthry_index.CyYMckiX.js → fthry_index.Dt1cSACI.js} +6 -6
  85. package/dist/{fthry_index.BUaA4R_x.js → fthry_index.YlaxQQbB.js} +1 -1
  86. package/dist/{fthry_index.BJvOP75r.js → fthry_index.jH4iMUwU.js} +5 -5
  87. package/dist/{fthry_index.DYcFA0C9.js → fthry_index.xli19cfL.js} +6 -6
  88. package/dist/{fthry_input.nuQO1Hyv.js → fthry_input.Bzvv0Hez.js} +1 -1
  89. package/dist/{fthry_script.C5Ls40h5.js → fthry_script.Df3ctynl.js} +1 -1
  90. package/dist/{fthry_styles.BrNC9imC.js → fthry_styles.DBhQHgTf.js} +1 -1
  91. package/dist/{fthry_useElementSize.CSBdwiEQ.js → fthry_useElementSize.C9CvRCmV.js} +1 -1
  92. package/dist/{fthry_useSalesforceSync.02x1VaLB.js → fthry_useSalesforceSync.CFutmtD2.js} +1 -1
  93. package/dist/{fthry_webfontloader.DuXmFIW7.js → fthry_webfontloader.BX5mmtRG.js} +1 -1
  94. package/dist/index.d.ts +6 -0
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +1 -1
  97. package/dist/utils/featheryClient/index.d.ts +6 -0
  98. package/dist/utils/featheryClient/index.d.ts.map +1 -1
  99. package/dist/utils/featheryClient/integrationClient.d.ts.map +1 -1
  100. package/dist/utils/featheryClient/utils.d.ts +1 -0
  101. package/dist/utils/featheryClient/utils.d.ts.map +1 -1
  102. package/dist/utils/formContext.d.ts +6 -0
  103. package/dist/utils/formContext.d.ts.map +1 -1
  104. package/dist/utils/init.d.ts +1 -0
  105. package/dist/utils/init.d.ts.map +1 -1
  106. package/dist/utils/offlineRequestHandler.d.ts.map +1 -1
  107. package/package.json +2 -2
  108. package/umd/index.js +1 -1
@@ -5849,6 +5849,35 @@ var api$1 = {};
5849
5849
 
5850
5850
  var utils = {};
5851
5851
 
5852
+ var cookies = {};
5853
+
5854
+ var hasRequiredCookies;
5855
+
5856
+ function requireCookies () {
5857
+ if (hasRequiredCookies) return cookies;
5858
+ hasRequiredCookies = 1;
5859
+ Object.defineProperty(cookies, "__esModule", { value: true });
5860
+ cookies.getCookie = getCookie;
5861
+ /**
5862
+ * Get a cookie value
5863
+ *
5864
+ * @param name - The name of the cookie to retrieve
5865
+ * @returns The cookie value or null if not found or no browser
5866
+ */
5867
+ function getCookie(name) {
5868
+ if (typeof document === 'undefined')
5869
+ return null;
5870
+ const value = `; ${document.cookie}`;
5871
+ const parts = value.split(`; ${name}=`);
5872
+ if (parts.length === 2) {
5873
+ const cookieValue = parts.pop()?.split(';').shift();
5874
+ return cookieValue || null;
5875
+ }
5876
+ return null;
5877
+ }
5878
+ return cookies;
5879
+ }
5880
+
5852
5881
  var error = {};
5853
5882
 
5854
5883
  var hasRequiredError;
@@ -5857,7 +5886,7 @@ function requireError () {
5857
5886
  if (hasRequiredError) return error;
5858
5887
  hasRequiredError = 1;
5859
5888
  Object.defineProperty(error, "__esModule", { value: true });
5860
- error.ValidationError = error.SDKKeyError = error.FormConflictError = error.FetchError = void 0;
5889
+ error.ValidationError = error.FormAuthenticationError = error.SDKKeyError = error.FormConflictError = error.FetchError = void 0;
5861
5890
  error.parseAPIError = parseAPIError;
5862
5891
  class FetchError extends Error {
5863
5892
  constructor(message, payload = null) {
@@ -5881,6 +5910,13 @@ function requireError () {
5881
5910
  }
5882
5911
  }
5883
5912
  error.SDKKeyError = SDKKeyError;
5913
+ class FormAuthenticationError extends Error {
5914
+ constructor(message = 'User does not have access to this form') {
5915
+ super(message);
5916
+ this.name = 'FormAuthenticationError';
5917
+ }
5918
+ }
5919
+ error.FormAuthenticationError = FormAuthenticationError;
5884
5920
  class ValidationError extends Error {
5885
5921
  constructor(message) {
5886
5922
  super(message);
@@ -5988,6 +6024,7 @@ function requireUtils () {
5988
6024
  utils.apiFetch = apiFetch;
5989
6025
  utils.createHttpHelpers = createHttpHelpers;
5990
6026
  const api_1 = requireApi();
6027
+ const cookies_1 = requireCookies();
5991
6028
  const error_1 = requireError();
5992
6029
  const setup_1 = requireSetup();
5993
6030
  function getApiUrl() {
@@ -6026,6 +6063,10 @@ function requireUtils () {
6026
6063
  throw new error_1.FetchError(payload.toString());
6027
6064
  case 401:
6028
6065
  throw new error_1.SDKKeyError();
6066
+ case 403:
6067
+ payload = await response.clone().json();
6068
+ const message = (0, error_1.parseAPIError)(payload);
6069
+ throw new error_1.FormAuthenticationError(message);
6029
6070
  case 404:
6030
6071
  throw new error_1.FetchError("Can't find object");
6031
6072
  case 409:
@@ -6039,14 +6080,21 @@ function requireUtils () {
6039
6080
  async function apiFetch(sdkKey, url, options, parseResponse = true) {
6040
6081
  options = options ?? {};
6041
6082
  const { headers, ...otherOptions } = options;
6083
+ // Read JWT from cookie
6084
+ const sessionJwt = (0, cookies_1.getCookie)('feathery_session_token');
6085
+ const requestHeaders = {
6086
+ Authorization: 'Token ' + sdkKey,
6087
+ ...headers,
6088
+ };
6089
+ // Add session JWT if available
6090
+ if (sessionJwt) {
6091
+ requestHeaders['X-Feathery-Session'] = sessionJwt;
6092
+ }
6042
6093
  options = {
6043
6094
  cache: 'no-store',
6044
6095
  // write requests must succeed so data is tracked
6045
6096
  keepalive: ['POST', 'PATCH', 'PUT'].includes(options.method),
6046
- headers: {
6047
- Authorization: 'Token ' + sdkKey,
6048
- ...headers,
6049
- },
6097
+ headers: requestHeaders,
6050
6098
  ...otherOptions,
6051
6099
  };
6052
6100
  const { internalSecretKey } = (0, setup_1.getEnvironment)();
@@ -6389,7 +6437,7 @@ function requireDist$2 () {
6389
6437
  hasRequiredDist$2 = 1;
6390
6438
  (function (exports$1) {
6391
6439
  Object.defineProperty(exports$1, "__esModule", { value: true });
6392
- exports$1.setEnvironment = exports$1.parseAPIError = exports$1.FormConflictError = exports$1.SDKKeyError = exports$1.FetchError = exports$1.getS3Url = exports$1.getCdnUrl = exports$1.getStaticUrl = exports$1.getApiUrl = exports$1.createHttpHelpers = exports$1.checkResponseSuccess = exports$1.apiFetch = exports$1.sendEmail = exports$1.pollForCompletion = exports$1.inviteFormCollaborator = exports$1.getQuikAccountForms = exports$1.getQuikForms = exports$1.getQuikFormRoles = exports$1.generateQuikEnvelopes = exports$1.generateFormDocuments = exports$1.forwardInboxEmail = exports$1.extractAIDocument = exports$1.customRolloutAction = void 0;
6440
+ exports$1.setEnvironment = exports$1.parseAPIError = exports$1.FormConflictError = exports$1.FormAuthenticationError = exports$1.SDKKeyError = exports$1.FetchError = exports$1.getS3Url = exports$1.getCdnUrl = exports$1.getStaticUrl = exports$1.getApiUrl = exports$1.createHttpHelpers = exports$1.checkResponseSuccess = exports$1.apiFetch = exports$1.sendEmail = exports$1.pollForCompletion = exports$1.inviteFormCollaborator = exports$1.getQuikAccountForms = exports$1.getQuikForms = exports$1.getQuikFormRoles = exports$1.generateQuikEnvelopes = exports$1.generateFormDocuments = exports$1.forwardInboxEmail = exports$1.extractAIDocument = exports$1.customRolloutAction = void 0;
6393
6441
  var api_1 = requireApi();
6394
6442
  Object.defineProperty(exports$1, "customRolloutAction", { enumerable: true, get: function () { return api_1.customRolloutAction; } });
6395
6443
  Object.defineProperty(exports$1, "extractAIDocument", { enumerable: true, get: function () { return api_1.extractAIDocument; } });
@@ -6413,6 +6461,7 @@ function requireDist$2 () {
6413
6461
  var error_1 = requireError();
6414
6462
  Object.defineProperty(exports$1, "FetchError", { enumerable: true, get: function () { return error_1.FetchError; } });
6415
6463
  Object.defineProperty(exports$1, "SDKKeyError", { enumerable: true, get: function () { return error_1.SDKKeyError; } });
6464
+ Object.defineProperty(exports$1, "FormAuthenticationError", { enumerable: true, get: function () { return error_1.FormAuthenticationError; } });
6416
6465
  Object.defineProperty(exports$1, "FormConflictError", { enumerable: true, get: function () { return error_1.FormConflictError; } });
6417
6466
  Object.defineProperty(exports$1, "parseAPIError", { enumerable: true, get: function () { return error_1.parseAPIError; } });
6418
6467
  var setup_1 = requireSetup();
@@ -6432,6 +6481,16 @@ function handleFormConflict() {
6432
6481
  untrackUnload(true);
6433
6482
  featheryWindow().alert('This form has been updated. Please fill it out again.');
6434
6483
  location.reload();
6484
+ }
6485
+ function handleFormAuthenticationError(errorMessage) {
6486
+ untrackUnload(true);
6487
+ // Store the authentication error in initState so Form component can show FormOff
6488
+ initState.authenticationError =
6489
+ errorMessage || 'Access to this form is restricted';
6490
+ // Trigger a re-render by updating remount callbacks
6491
+ Object.values(initState.remountCallbacks).forEach(function (callback) {
6492
+ callback === null || callback === void 0 ? void 0 : callback();
6493
+ });
6435
6494
  }
6436
6495
 
6437
6496
  // Constants for the IndexedDB database
@@ -6931,9 +6990,9 @@ var OfflineRequestHandler = /** @class */ (function () {
6931
6990
  };
6932
6991
  var attemptRequest = function () { return __awaiter$2(_this, void 0, void 0, function () {
6933
6992
  var attempts, response, error_2, nextDelay;
6934
- var _a, _b, _c, _d, _e;
6935
- return __generator(this, function (_f) {
6936
- switch (_f.label) {
6993
+ var _a, _b, _c, _d, _e, _f;
6994
+ return __generator(this, function (_g) {
6995
+ switch (_g.label) {
6937
6996
  case 0:
6938
6997
  attempts = (_a = request.retryAttempts) !== null && _a !== void 0 ? _a : 0;
6939
6998
  // Ensure exhausted retries are marked as failed before being skipped
@@ -6941,54 +7000,58 @@ var OfflineRequestHandler = /** @class */ (function () {
6941
7000
  markFileUploadRetryFailure((_b = request.metadata) === null || _b === void 0 ? void 0 : _b.fieldKey);
6942
7001
  return [2 /*return*/];
6943
7002
  }
6944
- _f.label = 1;
7003
+ _g.label = 1;
6945
7004
  case 1:
6946
- if (!(attempts < this.maxRetryAttempts)) return [3 /*break*/, 13];
6947
- _f.label = 2;
7005
+ if (!(attempts < this.maxRetryAttempts)) return [3 /*break*/, 15];
7006
+ _g.label = 2;
6948
7007
  case 2:
6949
- _f.trys.push([2, 6, , 12]);
7008
+ _g.trys.push([2, 6, , 14]);
6950
7009
  return [4 /*yield*/, fetch(url, fetchOptions)];
6951
7010
  case 3:
6952
- response = _f.sent();
7011
+ response = _g.sent();
6953
7012
  return [4 /*yield*/, distExports$2.checkResponseSuccess(response)];
6954
7013
  case 4:
6955
- _f.sent();
7014
+ _g.sent();
6956
7015
  markFileUploadRetrySuccess((_c = request.metadata) === null || _c === void 0 ? void 0 : _c.fieldKey);
6957
7016
  return [4 /*yield*/, this.removeRequest(key)];
6958
7017
  case 5:
6959
- _f.sent();
7018
+ _g.sent();
6960
7019
  return [2 /*return*/];
6961
7020
  case 6:
6962
- error_2 = _f.sent();
6963
- if (error_2 instanceof distExports$2.FormConflictError) {
6964
- handleFormConflict();
6965
- return [2 /*return*/];
6966
- }
7021
+ error_2 = _g.sent();
7022
+ if (!(error_2 instanceof distExports$2.FormConflictError)) return [3 /*break*/, 8];
7023
+ handleFormConflict();
7024
+ markFileUploadRetrySuccess((_d = request.metadata) === null || _d === void 0 ? void 0 : _d.fieldKey);
7025
+ return [4 /*yield*/, this.removeRequest(key)];
7026
+ case 7:
7027
+ _g.sent();
7028
+ return [2 /*return*/];
7029
+ case 8:
6967
7030
  attempts++;
6968
7031
  return [4 /*yield*/, this.updateRetryAttempts(key, attempts)];
6969
- case 7:
6970
- _f.sent();
6971
- if (!navigator.onLine) return [3 /*break*/, 9];
7032
+ case 9:
7033
+ _g.sent();
7034
+ if (!navigator.onLine) return [3 /*break*/, 11];
6972
7035
  nextDelay = this.getExponentialDelay(attempts);
6973
7036
  if (attempts >= this.maxRetryAttempts) {
6974
7037
  // Skip alerting when a specific field upload already surfaces its own retry error
6975
- if (this.errorCallback && !((_d = request.metadata) === null || _d === void 0 ? void 0 : _d.fieldKey)) {
7038
+ if (this.errorCallback && !((_e = request.metadata) === null || _e === void 0 ? void 0 : _e.fieldKey)) {
6976
7039
  this.errorCallback("Failed to submit after ".concat(this.maxRetryAttempts, " attempts. Please check your connection and try again."));
6977
7040
  }
6978
- markFileUploadRetryFailure((_e = request.metadata) === null || _e === void 0 ? void 0 : _e.fieldKey);
7041
+ markFileUploadRetryFailure((_f = request.metadata) === null || _f === void 0 ? void 0 : _f.fieldKey);
6979
7042
  return [2 /*return*/];
6980
7043
  }
6981
7044
  return [4 /*yield*/, this.delay(nextDelay)];
6982
- case 8:
6983
- _f.sent();
6984
- return [3 /*break*/, 11];
6985
- case 9: return [4 /*yield*/, this.onlineAndReplayed()];
6986
7045
  case 10:
6987
- _f.sent();
7046
+ _g.sent();
7047
+ return [3 /*break*/, 13];
7048
+ case 11: return [4 /*yield*/, this.onlineAndReplayed()];
7049
+ case 12:
7050
+ _g.sent();
6988
7051
  return [2 /*return*/];
6989
- case 11: return [3 /*break*/, 12];
6990
- case 12: return [3 /*break*/, 1];
6991
- case 13: return [2 /*return*/];
7052
+ case 13: return [3 /*break*/, 14];
7053
+ case 14: return [3 /*break*/, 1];
7054
+ case 15: return [2 /*return*/];
6992
7055
  }
6993
7056
  });
6994
7057
  }); };
@@ -7359,12 +7422,20 @@ var IntegrationClient = /** @class */ (function () {
7359
7422
  if (parseResponse === void 0) { parseResponse = true; }
7360
7423
  if (propagateNetworkErrors === void 0) { propagateNetworkErrors = false; }
7361
7424
  var sdkKey = initInfo().sdkKey;
7425
+ // Stop making requests if authentication error has occurred
7426
+ if (initState.authenticationError) {
7427
+ return Promise.resolve(undefined);
7428
+ }
7362
7429
  return distExports$2.apiFetch(sdkKey, url, options, parseResponse).catch(function (e) {
7363
7430
  var _a;
7364
7431
  if (e instanceof distExports$2.FormConflictError) {
7365
7432
  handleFormConflict();
7366
7433
  return;
7367
7434
  }
7435
+ if (e instanceof distExports$2.FormAuthenticationError) {
7436
+ handleFormAuthenticationError(e.message);
7437
+ return;
7438
+ }
7368
7439
  // Ignore TypeErrors if form has redirected because `fetch` in
7369
7440
  // Safari will error after redirect
7370
7441
  var ignore = ((_a = _this.ignoreNetworkErrors) === null || _a === void 0 ? void 0 : _a.current) ||
@@ -20201,7 +20272,7 @@ var messages = (_a = {},
20201
20272
  _a[NO_BUSINESS_EMAIL] = 'Activate forms by adding an email from a company domain to your Feathery account',
20202
20273
  _a);
20203
20274
  function FormOff(_a) {
20204
- var _b = _a.width, width = _b === void 0 ? 400 : _b, _c = _a.reason, reason = _c === void 0 ? CLOSED : _c, _d = _a.showCTA, showCTA = _d === void 0 ? true : _d;
20275
+ var _b = _a.width, width = _b === void 0 ? 400 : _b, _c = _a.reason, reason = _c === void 0 ? CLOSED : _c, _d = _a.showCTA, showCTA = _d === void 0 ? true : _d, message = _a.message;
20205
20276
  return (jsxs("div", __assign({ css: {
20206
20277
  width: '100%',
20207
20278
  height: '100%',
@@ -20218,7 +20289,7 @@ function FormOff(_a) {
20218
20289
  lineHeight: '32px',
20219
20290
  textAlign: 'center',
20220
20291
  margin: '50px 0'
20221
- } }, { children: messages[reason] })), showCTA && (jsx$1("button", __assign({ css: {
20292
+ } }, { children: message || messages[reason] })), showCTA && (jsx$1("button", __assign({ css: {
20222
20293
  border: '1px solid #e2626e',
20223
20294
  color: '#e2626e',
20224
20295
  outline: 'none',
@@ -22697,6 +22768,10 @@ var getFormContext = function (formUuid) {
22697
22768
  setCollaboratorAsCompleted: function (templateId) {
22698
22769
  return formState.client.setCollaboratorAsCompleted(templateId);
22699
22770
  },
22771
+ dataHubAction: function (_a) {
22772
+ var hubId = _a.hubId, operation = _a.operation, entryId = _a.entryId, data = _a.data;
22773
+ return formState.client.dataHubAction({ hubId: hubId, operation: operation, entryId: entryId, data: data });
22774
+ },
22700
22775
  generateDocuments: function (_a) {
22701
22776
  var documentIds = _a.documentIds, download = _a.download, merge = _a.merge;
22702
22777
  return formState.client.generateDocuments({ documentIds: documentIds, download: download, merge: merge });
@@ -39007,6 +39082,26 @@ var getSubmissionErrorMessage = function (error) {
39007
39082
  }
39008
39083
  return 'Submission failed. Please try again.';
39009
39084
  };
39085
+ function closePreOpenedWindows(windows) {
39086
+ windows.forEach(function (win) { return win === null || win === void 0 ? void 0 : win.close(); });
39087
+ }
39088
+ // Pre-open windows synchronously within the user-gesture call stack on iOS.
39089
+ // iOS Safari blocks window.open() after any await breaks the gesture chain.
39090
+ function preOpenIOSWindows(actions) {
39091
+ var windows = new Map();
39092
+ if (isIOS()) {
39093
+ actions.forEach(function (action, idx) {
39094
+ if (action.type === ACTION_URL && action.open_tab) {
39095
+ var win = featheryWindow().open('about:blank', '_blank');
39096
+ if (win) {
39097
+ win.opener = null;
39098
+ windows.set(idx, win);
39099
+ }
39100
+ }
39101
+ });
39102
+ }
39103
+ return windows;
39104
+ }
39010
39105
  function Form(_a) {
39011
39106
  var _this = this;
39012
39107
  var _b;
@@ -40541,7 +40636,7 @@ function Form(_a) {
40541
40636
  };
40542
40637
  var _35 = useCheckButtonAction(setButtonLoader, clearLoaders), isButtonActionRunning = _35.isButtonActionRunning, updateButtonActionState = _35.updateButtonActionState, clearButtonActionState = _35.clearButtonActionState, setUserLogicRunning = _35.setUserLogicRunning;
40543
40638
  var buttonOnClick = function (button) { return __awaiter$2(_this, void 0, void 0, function () {
40544
- var setButtonError, invalid, running, e_5;
40639
+ var setButtonError, actions, preOpenedWindows, invalid, running, e_5;
40545
40640
  var _a;
40546
40641
  return __generator(this, function (_b) {
40547
40642
  switch (_b.label) {
@@ -40568,6 +40663,8 @@ function Form(_a) {
40568
40663
  });
40569
40664
  }, 10);
40570
40665
  };
40666
+ actions = prioritizeActions((_a = button.properties.actions) !== null && _a !== void 0 ? _a : []);
40667
+ preOpenedWindows = preOpenIOSWindows(actions);
40571
40668
  _b.label = 3;
40572
40669
  case 3:
40573
40670
  _b.trys.push([3, 7, , 8]);
@@ -40576,17 +40673,19 @@ function Form(_a) {
40576
40673
  case 4:
40577
40674
  invalid = _b.sent();
40578
40675
  if (invalid) {
40676
+ closePreOpenedWindows(preOpenedWindows);
40579
40677
  setButtonError("You didn't pass CAPTCHA verification");
40580
40678
  return [2 /*return*/];
40581
40679
  }
40582
40680
  _b.label = 5;
40583
40681
  case 5: return [4 /*yield*/, runElementActions({
40584
- actions: (_a = button.properties.actions) !== null && _a !== void 0 ? _a : [],
40682
+ actions: actions,
40585
40683
  element: button,
40586
40684
  elementType: 'button',
40587
40685
  submit: button.properties.submit,
40588
40686
  setElementError: setButtonError,
40589
- onAsyncEnd: function () { return clearLoaders(); }
40687
+ onAsyncEnd: function () { return clearLoaders(); },
40688
+ preOpenedWindows: preOpenedWindows
40590
40689
  })];
40591
40690
  case 6:
40592
40691
  running = _b.sent();
@@ -40596,6 +40695,7 @@ function Form(_a) {
40596
40695
  return [3 /*break*/, 8];
40597
40696
  case 7:
40598
40697
  e_5 = _b.sent();
40698
+ closePreOpenedWindows(preOpenedWindows);
40599
40699
  // Clear the click lock so user can retry
40600
40700
  if (button.id) {
40601
40701
  elementClicks[button.id] = false;
@@ -40653,21 +40753,25 @@ function Form(_a) {
40653
40753
  // Some actions (Persona, Plaid, etc) require special handling: they pause execution and
40654
40754
  // provide a callback for continuing to the next action once they complete.
40655
40755
  var runElementActions = function (_a) {
40656
- var actions = _a.actions, element = _a.element, elementType = _a.elementType, _b = _a.submit, submit = _b === void 0 ? false : _b, _c = _a.setElementError, setElementError = _c === void 0 ? function () { } : _c, _d = _a.onAsyncEnd, onAsyncEnd = _d === void 0 ? function () { } : _d, textSpanStart = _a.textSpanStart, textSpanEnd = _a.textSpanEnd, triggerPayload = _a.triggerPayload;
40756
+ var actions = _a.actions, element = _a.element, elementType = _a.elementType, _b = _a.submit, submit = _b === void 0 ? false : _b, _c = _a.setElementError, setElementError = _c === void 0 ? function () { } : _c, _d = _a.onAsyncEnd, onAsyncEnd = _d === void 0 ? function () { } : _d, textSpanStart = _a.textSpanStart, textSpanEnd = _a.textSpanEnd, triggerPayload = _a.triggerPayload, externalPreOpenedWindows = _a.preOpenedWindows;
40657
40757
  return __awaiter$2(_this, void 0, void 0, function () {
40658
- var id, metadata, trigger, submitPromise, pendingFileKeys, invalid, hasNext, submissionResult, error_3, _e, stepPromise, flowOnSuccess, actionTypes, runAction, i, hasExtractions, hasEnvelopeGeneration, _loop_1, state_1;
40758
+ var id, preOpenedWindows, metadata, trigger, submitPromise, pendingFileKeys, invalid, hasNext, submissionResult, error_3, _e, stepPromise, flowOnSuccess, actionTypes, runAction, i, hasExtractions, hasEnvelopeGeneration, _loop_1, state_1;
40659
40759
  var _this = this;
40660
40760
  var _f, _g, _h, _j, _k;
40661
40761
  return __generator(this, function (_l) {
40662
40762
  switch (_l.label) {
40663
40763
  case 0:
40664
40764
  id = (_f = element.id) !== null && _f !== void 0 ? _f : '';
40765
+ preOpenedWindows = externalPreOpenedWindows !== null && externalPreOpenedWindows !== void 0 ? externalPreOpenedWindows : new Map();
40665
40766
  // Prevent rapid re-clicks on the same element during async operations (file uploads, API calls)
40666
- if (id && elementClicks[id])
40767
+ if (id && elementClicks[id]) {
40768
+ closePreOpenedWindows(preOpenedWindows);
40667
40769
  return [2 /*return*/];
40770
+ }
40668
40771
  elementClicks[id] = true;
40669
40772
  if (isButtonActionRunning()) {
40670
40773
  elementClicks[id] = false;
40774
+ closePreOpenedWindows(preOpenedWindows);
40671
40775
  return [2 /*return*/, true];
40672
40776
  }
40673
40777
  updateButtonActionState(elementType, element, triggerPayload);
@@ -40687,6 +40791,7 @@ function Form(_a) {
40687
40791
  setElementError(REQUIRED_FLOW_ACTIONS[requiredStepAction]);
40688
40792
  elementClicks[id] = false;
40689
40793
  clearButtonActionState();
40794
+ closePreOpenedWindows(preOpenedWindows);
40690
40795
  return [2 /*return*/];
40691
40796
  }
40692
40797
  pendingFileKeys = getPendingFileUploadKeys();
@@ -40722,6 +40827,7 @@ function Form(_a) {
40722
40827
  setAutoValidate(true);
40723
40828
  elementClicks[id] = false;
40724
40829
  clearButtonActionState();
40830
+ closePreOpenedWindows(preOpenedWindows);
40725
40831
  return [2 /*return*/];
40726
40832
  }
40727
40833
  hasNext = actions.some(function (action) { return action.type === ACTION_NEXT; }) &&
@@ -40742,6 +40848,7 @@ function Form(_a) {
40742
40848
  if (!submissionResult) {
40743
40849
  elementClicks[id] = false;
40744
40850
  clearButtonActionState();
40851
+ closePreOpenedWindows(preOpenedWindows);
40745
40852
  return [2 /*return*/];
40746
40853
  }
40747
40854
  _e = __read(submissionResult, 1), stepPromise = _e[0];
@@ -40759,9 +40866,14 @@ function Form(_a) {
40759
40866
  submitPromise.catch(function () { });
40760
40867
  _l.label = 7;
40761
40868
  case 7:
40762
- // Adjust action order to prioritize certain actions and
40763
- // to ensure all actions are run as expected
40764
- actions = prioritizeActions(actions);
40869
+ if (!externalPreOpenedWindows)
40870
+ actions = prioritizeActions(actions);
40871
+ // Guards text/container callers if an async onAction or action logic rule breaks the gesture chain
40872
+ if (!externalPreOpenedWindows) {
40873
+ preOpenIOSWindows(actions).forEach(function (win, idx) {
40874
+ return preOpenedWindows.set(idx, win);
40875
+ });
40876
+ }
40765
40877
  flowOnSuccess = function (index) { return function () { return __awaiter$2(_this, void 0, void 0, function () {
40766
40878
  var running;
40767
40879
  return __generator(this, function (_a) {
@@ -40813,7 +40925,7 @@ function Form(_a) {
40813
40925
  initializeEnvelopeGeneration(actions);
40814
40926
  }
40815
40927
  _loop_1 = function () {
40816
- var action, type, container, container, personaMeta, url, eventData, phoneNum, e_6, phoneNum, e_7, emailAddress, e_8, pinKey, pin, params, hasErr_1, prom, email, e_9, auth, loginStep, actionSuccess, val, valid, val, invitees, res, collabKey, newVals, e_10, e_11, extractions, _loop_2, state_2, data, errorEntry, e_12, envelopeId, data, envAction, url, eventData, files, newValues, e_13, payload, e_14, key_1, val, servar_1, hiddenFieldType, destVal, setToDefaultValue, curIndex, defaultVal, i_1, newValues, phoneNum, silentVeriResult, key, newValues, e_15, phoneNum, phoneType, key, newValues, e_16, phoneNum, e_17, pinKey, pin, pinMatch, e_18;
40928
+ var action, type, container, container, personaMeta, url, preOpened, eventData, phoneNum, e_6, phoneNum, e_7, emailAddress, e_8, pinKey, pin, params, hasErr_1, prom, email, e_9, auth, loginStep, actionSuccess, val, valid, val, invitees, res, collabKey, newVals, e_10, e_11, extractions, _loop_2, state_2, data, errorEntry, e_12, envelopeId, data, envAction, url, eventData, files, newValues, e_13, payload, e_14, key_1, val, servar_1, hiddenFieldType, destVal, setToDefaultValue, curIndex, defaultVal, i_1, newValues, phoneNum, silentVeriResult, key, newValues, e_15, phoneNum, phoneType, key, newValues, e_16, phoneNum, e_17, pinKey, pin, pinMatch, e_18;
40817
40929
  var _m, _o, _p, _q, _r, _s, _t;
40818
40930
  return __generator(this, function (_u) {
40819
40931
  switch (_u.label) {
@@ -40890,8 +41002,16 @@ function Form(_a) {
40890
41002
  if (url) {
40891
41003
  if (!url.includes(':'))
40892
41004
  url = 'https://' + url;
40893
- if (action.open_tab)
40894
- openTab(url);
41005
+ if (action.open_tab) {
41006
+ preOpened = preOpenedWindows.get(i);
41007
+ if (preOpened) {
41008
+ preOpened.location.href = url;
41009
+ preOpenedWindows.delete(i);
41010
+ }
41011
+ else {
41012
+ openTab(url);
41013
+ }
41014
+ }
40895
41015
  }
40896
41016
  if (!!action.open_tab) return [3 /*break*/, 21];
40897
41017
  eventData = {
@@ -41469,6 +41589,7 @@ function Form(_a) {
41469
41589
  i++;
41470
41590
  return [3 /*break*/, 9];
41471
41591
  case 12:
41592
+ closePreOpenedWindows(preOpenedWindows);
41472
41593
  if (i < actions.length) {
41473
41594
  elementClicks[id] = false;
41474
41595
  clearButtonActionState();
@@ -41590,6 +41711,10 @@ function Form(_a) {
41590
41711
  };
41591
41712
  handleFormComplete().then(redirectForm);
41592
41713
  }, [anyFinished]);
41714
+ // Form authentication error (403)
41715
+ if (initState.authenticationError) {
41716
+ return (jsx$1(FormOff, { reason: CLOSED, message: initState.authenticationError, showCTA: false }));
41717
+ }
41593
41718
  // Form is turned off
41594
41719
  if (formOffReason.current === CLOSED)
41595
41720
  return jsx$1(FormOff, { showCTA: formSettings.showBrand });
@@ -45670,6 +45795,43 @@ var FeatheryClient = /** @class */ (function (_super) {
45670
45795
  });
45671
45796
  });
45672
45797
  };
45798
+ FeatheryClient.prototype.dataHubAction = function (_a) {
45799
+ var hubId = _a.hubId, operation = _a.operation, entryId = _a.entryId, data = _a.data;
45800
+ return __awaiter$2(this, void 0, void 0, function () {
45801
+ var baseUrl, url, response, _b, _c;
45802
+ return __generator(this, function (_d) {
45803
+ switch (_d.label) {
45804
+ case 0:
45805
+ baseUrl = new URL(distExports$2.getApiUrl()).origin;
45806
+ url = "".concat(baseUrl, "/api/hub/").concat(hubId, "/action/");
45807
+ return [4 /*yield*/, this._fetch(url, {
45808
+ headers: { 'Content-Type': 'application/json' },
45809
+ method: 'POST',
45810
+ body: JSON.stringify({
45811
+ operation: operation,
45812
+ entry_id: entryId,
45813
+ data: data,
45814
+ form_key: this.formKey
45815
+ })
45816
+ }, false)];
45817
+ case 1:
45818
+ response = _d.sent();
45819
+ if (!response) return [3 /*break*/, 5];
45820
+ if (response.status === 204)
45821
+ return [2 /*return*/, null];
45822
+ if (!response.ok) return [3 /*break*/, 3];
45823
+ return [4 /*yield*/, response.json()];
45824
+ case 2: return [2 /*return*/, _d.sent()];
45825
+ case 3:
45826
+ _b = Error;
45827
+ _c = distExports$2.parseAPIError;
45828
+ return [4 /*yield*/, response.json()];
45829
+ case 4: throw _b.apply(void 0, [_c.apply(void 0, [_d.sent()])]);
45830
+ case 5: return [2 /*return*/];
45831
+ }
45832
+ });
45833
+ });
45834
+ };
45673
45835
  return FeatheryClient;
45674
45836
  }(IntegrationClient));
45675
45837
 
@@ -45721,6 +45883,8 @@ function init(sdkKey, options) {
45721
45883
  return Promise.resolve((_a = initState.userId) !== null && _a !== void 0 ? _a : ''); // can only be initialized one time per load
45722
45884
  logFeatheryBadge();
45723
45885
  initState.initialized = true;
45886
+ // Clear any previous authentication errors on new initialization
45887
+ initState.authenticationError = undefined;
45724
45888
  initState.sdkKey = sdkKey;
45725
45889
  if (options._enterpriseRegion)
45726
45890
  initState.region = options._enterpriseRegion.toLowerCase();
@@ -45747,9 +45911,9 @@ function init(sdkKey, options) {
45747
45911
  if (runningInClient()) {
45748
45912
  // Dynamically load libraries that must be client side
45749
45913
  global.scriptjsLoadPromise = import(
45750
- /* webpackChunkName: "scriptjs" */ './fthry_script.C5Ls40h5.js').then(function (n) { return n.s; });
45914
+ /* webpackChunkName: "scriptjs" */ './fthry_script.Df3ctynl.js').then(function (n) { return n.s; });
45751
45915
  global.webfontloaderPromise = import(
45752
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.DuXmFIW7.js').then(function (n) { return n.w; });
45916
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.BX5mmtRG.js').then(function (n) { return n.w; });
45753
45917
  // Client-side tracking logic
45754
45918
  if (initState.userTracking === 'cookie') {
45755
45919
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -45895,7 +46059,7 @@ function getFieldValues() {
45895
46059
  return __assign({}, fieldValues);
45896
46060
  }
45897
46061
  function logFeatheryBadge() {
45898
- console.log('%c Feathery %c v' + "2.21.0" + ' ', // replaced with real version during build
46062
+ console.log('%c Feathery %c v' + "2.22.1" + ' ', // replaced with real version during build
45899
46063
  'background: #e2626e; color: white; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;', 'background: #fce7e9; color: #c5495a; padding: 2px 6px; border-radius: 0 3px 3px 0;');
45900
46064
  }
45901
46065
 
@@ -47323,39 +47487,39 @@ breakpoint) {
47323
47487
  return styles.getTarget('inner-container', undefined, viewport === 'mobile');
47324
47488
  };
47325
47489
 
47326
- var AddressLine1 = lazy(function () { return import(/* webpackChunkName: "AddressField" */ './fthry_index.BJvOP75r.js'); });
47327
- var ButtonGroupField = lazy(function () { return import(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.BSvRoTKl.js'); });
47328
- var CheckboxField = lazy(function () { return import(/* webpackChunkName: "CheckboxField" */ './fthry_index.BLZHG42F.js'); });
47490
+ var AddressLine1 = lazy(function () { return import(/* webpackChunkName: "AddressField" */ './fthry_index.jH4iMUwU.js'); });
47491
+ var ButtonGroupField = lazy(function () { return import(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.DhUtbNbg.js'); });
47492
+ var CheckboxField = lazy(function () { return import(/* webpackChunkName: "CheckboxField" */ './fthry_index.9SEFAxVs.js'); });
47329
47493
  var CheckboxGroupField = lazy(function () {
47330
- return import(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.CyYMckiX.js');
47494
+ return import(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.Dt1cSACI.js');
47331
47495
  });
47332
- var ColorPickerField = lazy(function () { return import(/* webpackChunkName: "ColorPickerField" */ './fthry_index.BoctyUX4.js'); });
47333
- var CustomField = lazy(function () { return import(/* webpackChunkName: "CustomField" */ './fthry_index.BUaA4R_x.js'); });
47496
+ var ColorPickerField = lazy(function () { return import(/* webpackChunkName: "ColorPickerField" */ './fthry_index.BAWUo-9K.js'); });
47497
+ var CustomField = lazy(function () { return import(/* webpackChunkName: "CustomField" */ './fthry_index.YlaxQQbB.js'); });
47334
47498
  var DateSelectorField = lazy(function () {
47335
- return import(/* webpackChunkName: "DateSelectorField" */ './fthry_index.DYcFA0C9.js');
47499
+ return import(/* webpackChunkName: "DateSelectorField" */ './fthry_index.xli19cfL.js');
47336
47500
  });
47337
- var DropdownField = lazy(function () { return import(/* webpackChunkName: "DropdownField" */ './fthry_index.BYgv3YMr.js'); });
47501
+ var DropdownField = lazy(function () { return import(/* webpackChunkName: "DropdownField" */ './fthry_index.Co1N5Wm2.js'); });
47338
47502
  var DropdownMultiField = lazy(function () {
47339
- return import(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.BWMAYNPO.js');
47503
+ return import(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.DE5w1XVV.js');
47340
47504
  });
47341
- var FileUploadField = lazy(function () { return import(/* webpackChunkName: "FileUploadField" */ './fthry_index.VO6RxzHm.js'); });
47342
- var MatrixField = lazy(function () { return import(/* webpackChunkName: "MatrixField" */ './fthry_index.BrMeQ_Gw.js'); });
47343
- var PasswordField = lazy(function () { return import(/* webpackChunkName: "PasswordField" */ './fthry_index.rW2ARWsn.js'); });
47505
+ var FileUploadField = lazy(function () { return import(/* webpackChunkName: "FileUploadField" */ './fthry_index.B7Uxlphu.js'); });
47506
+ var MatrixField = lazy(function () { return import(/* webpackChunkName: "MatrixField" */ './fthry_index.DCoMERuc.js'); });
47507
+ var PasswordField = lazy(function () { return import(/* webpackChunkName: "PasswordField" */ './fthry_index.9PP8aHAm.js'); });
47344
47508
  var PaymentMethodField = lazy(function () {
47345
- return import(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.DA4PTzPY.js');
47509
+ return import(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.7kpfN-kk.js');
47346
47510
  });
47347
- var PhoneField = lazy(function () { return import(/* webpackChunkName: "PhoneField" */ './fthry_index.B2IqSOfR.js'); });
47348
- var PinInputField = lazy(function () { return import(/* webpackChunkName: "PinInputField" */ './fthry_index.DTuI9CtE.js'); });
47349
- var QRScanner = lazy(function () { return import(/* webpackChunkName: "QRScanner" */ './fthry_index.Z1du2f7I.js'); });
47511
+ var PhoneField = lazy(function () { return import(/* webpackChunkName: "PhoneField" */ './fthry_index.B4025Nic.js'); });
47512
+ var PinInputField = lazy(function () { return import(/* webpackChunkName: "PinInputField" */ './fthry_index.3MYBbcV6.js'); });
47513
+ var QRScanner = lazy(function () { return import(/* webpackChunkName: "QRScanner" */ './fthry_index.DQhNMB2b.js'); });
47350
47514
  var RadioButtonGroupField = lazy(function () {
47351
47515
  return import(
47352
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.BmyvNxXV.js');
47516
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CgmyiGp_.js');
47353
47517
  });
47354
- var RatingField = lazy(function () { return import(/* webpackChunkName: "RatingField" */ './fthry_index.BVcwTwxi.js'); });
47355
- var SignatureField = lazy(function () { return import(/* webpackChunkName: "SignatureField" */ './fthry_index.D7Bb8rb7.js'); });
47356
- var SliderField = lazy(function () { return import(/* webpackChunkName: "SliderField" */ './fthry_index.eRbqPcOr.js'); });
47357
- var TextField = lazy(function () { return import(/* webpackChunkName: "TextField" */ './fthry_index.D_6kZUzg.js'); });
47358
- var TextArea = lazy(function () { return import(/* webpackChunkName: "TextArea" */ './fthry_index.B2MXQT_J.js'); });
47518
+ var RatingField = lazy(function () { return import(/* webpackChunkName: "RatingField" */ './fthry_index.B5P56Wdn.js'); });
47519
+ var SignatureField = lazy(function () { return import(/* webpackChunkName: "SignatureField" */ './fthry_index.CYGDbYS_.js'); });
47520
+ var SliderField = lazy(function () { return import(/* webpackChunkName: "SliderField" */ './fthry_index.D7-zC56j.js'); });
47521
+ var TextField = lazy(function () { return import(/* webpackChunkName: "TextField" */ './fthry_index.5O3QvVEZ.js'); });
47522
+ var TextArea = lazy(function () { return import(/* webpackChunkName: "TextArea" */ './fthry_index.CZq04f_l.js'); });
47359
47523
  var Fields = {
47360
47524
  AddressLine1: AddressLine1,
47361
47525
  ButtonGroupField: ButtonGroupField,
@@ -48295,7 +48459,7 @@ function ElementSkeleton(_a) {
48295
48459
  }
48296
48460
  var templateObject_1;
48297
48461
 
48298
- var TableElement = lazy(function () { return import(/* webpackChunkName: "TableElement" */ './fthry_index.CXHlEhQc.js'); });
48462
+ var TableElement = lazy(function () { return import(/* webpackChunkName: "TableElement" */ './fthry_index.D8pad3ZV.js'); });
48299
48463
  var Basic = {
48300
48464
  ImageElement: ImageElement,
48301
48465
  VideoElement: VideoElement,
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs } from './fthry_index.DmQO11yP.js';
1
+ import { g as getDefaultExportFromCjs } from './fthry_index.BDrpWWPf.js';
2
2
 
3
3
  var propTypes = {exports: {}};
4
4
 
@@ -1,6 +1,6 @@
1
- import { f as featheryDoc, an as devicePixelRatio, g as getDefaultExportFromCjs, b as __read, a as jsxs, j as jsx, _ as __assign, F as Fragment, k as __awaiter, l as __generator, ao as toBase64, n as debounce, ap as MODAL_Z_INDEX, ab as CloseIcon, aq as dataURLToFile, q as FORM_Z_INDEX, E as ErrorInput } from './fthry_index.DmQO11yP.js';
1
+ import { f as featheryDoc, an as devicePixelRatio, g as getDefaultExportFromCjs, b as __read, a as jsxs, j as jsx, _ as __assign, F as Fragment, k as __awaiter, l as __generator, ao as toBase64, n as debounce, ap as MODAL_Z_INDEX, ab as CloseIcon, aq as dataURLToFile, q as FORM_Z_INDEX, E as ErrorInput } from './fthry_index.BDrpWWPf.js';
2
2
  import React__default, { Component, forwardRef, useState, useRef, useImperativeHandle, useEffect, useCallback, Suspense } from 'react';
3
- import { P as PropTypes } from './fthry_index.CIQ5zg4E.js';
3
+ import { P as PropTypes } from './fthry_index.CKr9necb.js';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react-dom/client';
6
6
  import 'jszip';
@@ -1433,7 +1433,7 @@ function SignatureField(_a) {
1433
1433
  useEffect(function () {
1434
1434
  if (!global.webfontloaderPromise)
1435
1435
  global.webfontloaderPromise = import(
1436
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.DuXmFIW7.js').then(function (n) { return n.w; });
1436
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.BX5mmtRG.js').then(function (n) { return n.w; });
1437
1437
  global.webfontloaderPromise.then(function (WebFont) {
1438
1438
  WebFont.load({ google: { families: ['La Belle Aurore'] } });
1439
1439
  });