@feathery/react 2.21.0 → 2.22.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 (106) hide show
  1. package/cjs/Form/index.d.ts.map +1 -1
  2. package/cjs/elements/components/FormOff.d.ts +5 -4
  3. package/cjs/elements/components/FormOff.d.ts.map +1 -1
  4. package/cjs/{fthry_FormControl.DFkoNS7m.js → fthry_FormControl.C6RfrG4j.js} +1 -1
  5. package/cjs/{fthry_InlineTooltip.BqrUvYsf.js → fthry_InlineTooltip.DXjYqPtD.js} +2 -2
  6. package/cjs/{fthry_Overlay.BogxM8_x.js → fthry_Overlay.C4w6Cb6j.js} +1 -1
  7. package/cjs/{fthry_PaymentMethodField.O7j1bFxf.js → fthry_PaymentMethodField.D05feokK.js} +4 -4
  8. package/cjs/{fthry_Placeholder.CeDmXoEH.js → fthry_Placeholder.D7Yh7mU2.js} +1 -1
  9. package/cjs/{fthry_ShowEyeIcon.DB6Y0oJU.js → fthry_ShowEyeIcon.CiLTfgAK.js} +1 -1
  10. package/cjs/{fthry_index.Br3HlsO5.js → fthry_index.2sunYeoj.js} +1 -1
  11. package/cjs/{fthry_index.DpdkY1k7.js → fthry_index.6gJGxnEh.js} +1 -1
  12. package/cjs/{fthry_index.DhqYB5dK.js → fthry_index.B7fwm2Qq.js} +1 -1
  13. package/cjs/{fthry_index.v9OD_-hq.js → fthry_index.BJT2EG9q.js} +3 -3
  14. package/cjs/{fthry_index.DzXZ-Rb_.js → fthry_index.BNdR1Zvy.js} +3 -3
  15. package/cjs/{fthry_index.BA-WFjGc.js → fthry_index.BO3AY9qR.js} +6 -6
  16. package/cjs/{fthry_index.BVa6RVKk.js → fthry_index.BoacvsbM.js} +6 -6
  17. package/cjs/{fthry_index.CkiBXgLp.js → fthry_index.BqZlc7T3.js} +5 -5
  18. package/cjs/{fthry_index.Cy-T4HCz.js → fthry_index.C-ANSPxY.js} +8 -8
  19. package/cjs/{fthry_index.C3o0YyvM.js → fthry_index.C7ja1s3P.js} +1 -1
  20. package/cjs/{fthry_index.C5Pj-Zfh.js → fthry_index.CIxKm2W7.js} +6 -6
  21. package/cjs/{fthry_index.DUau2wvs.js → fthry_index.CRdtsgYY.js} +4 -4
  22. package/cjs/{fthry_index.GU6DtzCY.js → fthry_index.CofrHdeg.js} +2 -2
  23. package/cjs/{fthry_index.CrI80enn.js → fthry_index.CvLykMCw.js} +5 -5
  24. package/cjs/{fthry_index.D2zIjosg.js → fthry_index.Cy80QFQZ.js} +2 -2
  25. package/cjs/{fthry_index.BnndrG3W.js → fthry_index.D3t9MrC8.js} +1 -1
  26. package/cjs/{fthry_index.DRNB-tCT.js → fthry_index.D9UgyAK0.js} +5 -5
  27. package/cjs/{fthry_index.DRz5hODR.js → fthry_index.DBJtTx9s.js} +5 -5
  28. package/cjs/{fthry_index.-2aBRBrW.js → fthry_index.DiSY7Ac7.js} +1 -1
  29. package/cjs/{fthry_index.WqEOU2O1.js → fthry_index.DjWVnEr6.js} +4 -4
  30. package/cjs/{fthry_index.DMEipzfW.js → fthry_index.Dl8zGsAp.js} +1 -1
  31. package/cjs/{fthry_index.J8P_vp8o.js → fthry_index.avrbgACA.js} +1 -1
  32. package/cjs/{fthry_index.CiPmoBTf.js → fthry_index.dpVLfqGZ.js} +4 -4
  33. package/cjs/{fthry_index.B6dz6_D2.js → fthry_index.lrVIrRLc.js} +201 -66
  34. package/cjs/{fthry_input.CAh1dh3q.js → fthry_input.CHp_Jap5.js} +1 -1
  35. package/cjs/{fthry_script.BTrurqF7.js → fthry_script.C2pt_bUm.js} +1 -1
  36. package/cjs/{fthry_styles.BPdPCGs1.js → fthry_styles.DFm8HxDr.js} +1 -1
  37. package/cjs/{fthry_useElementSize.8u2TF8ax.js → fthry_useElementSize.BroSkGyG.js} +1 -1
  38. package/cjs/{fthry_useSalesforceSync.DViFa05Y.js → fthry_useSalesforceSync.DiWBOGl_.js} +1 -1
  39. package/cjs/{fthry_webfontloader.BUWRlWxA.js → fthry_webfontloader.Du37duiu.js} +1 -1
  40. package/cjs/index.d.ts +6 -0
  41. package/cjs/index.d.ts.map +1 -1
  42. package/cjs/index.js +1 -1
  43. package/cjs/utils/featheryClient/index.d.ts +6 -0
  44. package/cjs/utils/featheryClient/index.d.ts.map +1 -1
  45. package/cjs/utils/featheryClient/integrationClient.d.ts.map +1 -1
  46. package/cjs/utils/featheryClient/utils.d.ts +1 -0
  47. package/cjs/utils/featheryClient/utils.d.ts.map +1 -1
  48. package/cjs/utils/formContext.d.ts +6 -0
  49. package/cjs/utils/formContext.d.ts.map +1 -1
  50. package/cjs/utils/init.d.ts +1 -0
  51. package/cjs/utils/init.d.ts.map +1 -1
  52. package/cjs/utils/offlineRequestHandler.d.ts.map +1 -1
  53. package/dist/Form/index.d.ts.map +1 -1
  54. package/dist/elements/components/FormOff.d.ts +5 -4
  55. package/dist/elements/components/FormOff.d.ts.map +1 -1
  56. package/dist/{fthry_FormControl.DqD-t0-5.js → fthry_FormControl.BR7z833q.js} +1 -1
  57. package/dist/{fthry_InlineTooltip.CiQE9axD.js → fthry_InlineTooltip.D5rXgJxn.js} +2 -2
  58. package/dist/{fthry_Overlay.DJD2-5uG.js → fthry_Overlay.C0T4Ihiz.js} +1 -1
  59. package/dist/{fthry_PaymentMethodField.DA4PTzPY.js → fthry_PaymentMethodField.BnHykb0-.js} +4 -4
  60. package/dist/{fthry_Placeholder.CpBJo_eu.js → fthry_Placeholder.OebdDszh.js} +1 -1
  61. package/dist/{fthry_ShowEyeIcon.Czn5uNUy.js → fthry_ShowEyeIcon.5ZGg8TFI.js} +1 -1
  62. package/dist/{fthry_index.BWMAYNPO.js → fthry_index.B-HK4FAf.js} +5 -5
  63. package/dist/{fthry_index.BYgv3YMr.js → fthry_index.BVBupEyX.js} +4 -4
  64. package/dist/{fthry_index.BLZHG42F.js → fthry_index.Bg6jDqRN.js} +1 -1
  65. package/dist/{fthry_index.CXHlEhQc.js → fthry_index.BkvB1fWy.js} +1 -1
  66. package/dist/{fthry_index.Z1du2f7I.js → fthry_index.Bsx6VyJi.js} +2 -2
  67. package/dist/{fthry_index.DYcFA0C9.js → fthry_index.CAO_boB_.js} +6 -6
  68. package/dist/{fthry_index.DmQO11yP.js → fthry_index.CDRQrd84.js} +201 -66
  69. package/dist/{fthry_index.CIQ5zg4E.js → fthry_index.CLjO1Hq8.js} +1 -1
  70. package/dist/{fthry_index.eRbqPcOr.js → fthry_index.CQIPge2V.js} +2 -2
  71. package/dist/{fthry_index.DTuI9CtE.js → fthry_index.CZr2zxPE.js} +1 -1
  72. package/dist/{fthry_index.BrMeQ_Gw.js → fthry_index.Ca6YzvQ4.js} +3 -3
  73. package/dist/{fthry_index.rW2ARWsn.js → fthry_index.CbNESu0U.js} +5 -5
  74. package/dist/{fthry_index.D7Bb8rb7.js → fthry_index.CbxKTwce.js} +3 -3
  75. package/dist/{fthry_index.B2MXQT_J.js → fthry_index.CenbmeTZ.js} +4 -4
  76. package/dist/{fthry_index.D_6kZUzg.js → fthry_index.Cjz0TFbJ.js} +8 -8
  77. package/dist/{fthry_index.VO6RxzHm.js → fthry_index.Cog2BDNb.js} +1 -1
  78. package/dist/{fthry_index.BJvOP75r.js → fthry_index.D33p0Cu9.js} +5 -5
  79. package/dist/{fthry_index.BoctyUX4.js → fthry_index.D91kaNEu.js} +1 -1
  80. package/dist/{fthry_index.BVcwTwxi.js → fthry_index.DSXLISe1.js} +1 -1
  81. package/dist/{fthry_index.CyYMckiX.js → fthry_index.DSpMogdQ.js} +6 -6
  82. package/dist/{fthry_index.BUaA4R_x.js → fthry_index.DgH--mO0.js} +1 -1
  83. package/dist/{fthry_index.BSvRoTKl.js → fthry_index.DomytyFl.js} +4 -4
  84. package/dist/{fthry_index.B2IqSOfR.js → fthry_index.NZiAUoKR.js} +5 -5
  85. package/dist/{fthry_index.BmyvNxXV.js → fthry_index.VasUvj87.js} +6 -6
  86. package/dist/{fthry_input.nuQO1Hyv.js → fthry_input.mf5Eisx1.js} +1 -1
  87. package/dist/{fthry_script.C5Ls40h5.js → fthry_script.DYkmIi0j.js} +1 -1
  88. package/dist/{fthry_styles.BrNC9imC.js → fthry_styles.DctHU6BX.js} +1 -1
  89. package/dist/{fthry_useElementSize.CSBdwiEQ.js → fthry_useElementSize.B_En_KWY.js} +1 -1
  90. package/dist/{fthry_useSalesforceSync.02x1VaLB.js → fthry_useSalesforceSync.wfhYAUgy.js} +1 -1
  91. package/dist/{fthry_webfontloader.DuXmFIW7.js → fthry_webfontloader.sudLWRnv.js} +1 -1
  92. package/dist/index.d.ts +6 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +1 -1
  95. package/dist/utils/featheryClient/index.d.ts +6 -0
  96. package/dist/utils/featheryClient/index.d.ts.map +1 -1
  97. package/dist/utils/featheryClient/integrationClient.d.ts.map +1 -1
  98. package/dist/utils/featheryClient/utils.d.ts +1 -0
  99. package/dist/utils/featheryClient/utils.d.ts.map +1 -1
  100. package/dist/utils/formContext.d.ts +6 -0
  101. package/dist/utils/formContext.d.ts.map +1 -1
  102. package/dist/utils/init.d.ts +1 -0
  103. package/dist/utils/init.d.ts.map +1 -1
  104. package/dist/utils/offlineRequestHandler.d.ts.map +1 -1
  105. package/package.json +2 -2
  106. package/umd/index.js +1 -1
@@ -5870,6 +5870,35 @@ var api$1 = {};
5870
5870
 
5871
5871
  var utils = {};
5872
5872
 
5873
+ var cookies = {};
5874
+
5875
+ var hasRequiredCookies;
5876
+
5877
+ function requireCookies () {
5878
+ if (hasRequiredCookies) return cookies;
5879
+ hasRequiredCookies = 1;
5880
+ Object.defineProperty(cookies, "__esModule", { value: true });
5881
+ cookies.getCookie = getCookie;
5882
+ /**
5883
+ * Get a cookie value
5884
+ *
5885
+ * @param name - The name of the cookie to retrieve
5886
+ * @returns The cookie value or null if not found or no browser
5887
+ */
5888
+ function getCookie(name) {
5889
+ if (typeof document === 'undefined')
5890
+ return null;
5891
+ const value = `; ${document.cookie}`;
5892
+ const parts = value.split(`; ${name}=`);
5893
+ if (parts.length === 2) {
5894
+ const cookieValue = parts.pop()?.split(';').shift();
5895
+ return cookieValue || null;
5896
+ }
5897
+ return null;
5898
+ }
5899
+ return cookies;
5900
+ }
5901
+
5873
5902
  var error = {};
5874
5903
 
5875
5904
  var hasRequiredError;
@@ -5878,7 +5907,7 @@ function requireError () {
5878
5907
  if (hasRequiredError) return error;
5879
5908
  hasRequiredError = 1;
5880
5909
  Object.defineProperty(error, "__esModule", { value: true });
5881
- error.ValidationError = error.SDKKeyError = error.FormConflictError = error.FetchError = void 0;
5910
+ error.ValidationError = error.FormAuthenticationError = error.SDKKeyError = error.FormConflictError = error.FetchError = void 0;
5882
5911
  error.parseAPIError = parseAPIError;
5883
5912
  class FetchError extends Error {
5884
5913
  constructor(message, payload = null) {
@@ -5902,6 +5931,13 @@ function requireError () {
5902
5931
  }
5903
5932
  }
5904
5933
  error.SDKKeyError = SDKKeyError;
5934
+ class FormAuthenticationError extends Error {
5935
+ constructor(message = 'User does not have access to this form') {
5936
+ super(message);
5937
+ this.name = 'FormAuthenticationError';
5938
+ }
5939
+ }
5940
+ error.FormAuthenticationError = FormAuthenticationError;
5905
5941
  class ValidationError extends Error {
5906
5942
  constructor(message) {
5907
5943
  super(message);
@@ -6009,6 +6045,7 @@ function requireUtils () {
6009
6045
  utils.apiFetch = apiFetch;
6010
6046
  utils.createHttpHelpers = createHttpHelpers;
6011
6047
  const api_1 = requireApi();
6048
+ const cookies_1 = requireCookies();
6012
6049
  const error_1 = requireError();
6013
6050
  const setup_1 = requireSetup();
6014
6051
  function getApiUrl() {
@@ -6047,6 +6084,10 @@ function requireUtils () {
6047
6084
  throw new error_1.FetchError(payload.toString());
6048
6085
  case 401:
6049
6086
  throw new error_1.SDKKeyError();
6087
+ case 403:
6088
+ payload = await response.clone().json();
6089
+ const message = (0, error_1.parseAPIError)(payload);
6090
+ throw new error_1.FormAuthenticationError(message);
6050
6091
  case 404:
6051
6092
  throw new error_1.FetchError("Can't find object");
6052
6093
  case 409:
@@ -6060,14 +6101,21 @@ function requireUtils () {
6060
6101
  async function apiFetch(sdkKey, url, options, parseResponse = true) {
6061
6102
  options = options ?? {};
6062
6103
  const { headers, ...otherOptions } = options;
6104
+ // Read JWT from cookie
6105
+ const sessionJwt = (0, cookies_1.getCookie)('feathery_session_token');
6106
+ const requestHeaders = {
6107
+ Authorization: 'Token ' + sdkKey,
6108
+ ...headers,
6109
+ };
6110
+ // Add session JWT if available
6111
+ if (sessionJwt) {
6112
+ requestHeaders['X-Feathery-Session'] = sessionJwt;
6113
+ }
6063
6114
  options = {
6064
6115
  cache: 'no-store',
6065
6116
  // write requests must succeed so data is tracked
6066
6117
  keepalive: ['POST', 'PATCH', 'PUT'].includes(options.method),
6067
- headers: {
6068
- Authorization: 'Token ' + sdkKey,
6069
- ...headers,
6070
- },
6118
+ headers: requestHeaders,
6071
6119
  ...otherOptions,
6072
6120
  };
6073
6121
  const { internalSecretKey } = (0, setup_1.getEnvironment)();
@@ -6410,7 +6458,7 @@ function requireDist$2 () {
6410
6458
  hasRequiredDist$2 = 1;
6411
6459
  (function (exports$1) {
6412
6460
  Object.defineProperty(exports$1, "__esModule", { value: true });
6413
- 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;
6461
+ 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;
6414
6462
  var api_1 = requireApi();
6415
6463
  Object.defineProperty(exports$1, "customRolloutAction", { enumerable: true, get: function () { return api_1.customRolloutAction; } });
6416
6464
  Object.defineProperty(exports$1, "extractAIDocument", { enumerable: true, get: function () { return api_1.extractAIDocument; } });
@@ -6434,6 +6482,7 @@ function requireDist$2 () {
6434
6482
  var error_1 = requireError();
6435
6483
  Object.defineProperty(exports$1, "FetchError", { enumerable: true, get: function () { return error_1.FetchError; } });
6436
6484
  Object.defineProperty(exports$1, "SDKKeyError", { enumerable: true, get: function () { return error_1.SDKKeyError; } });
6485
+ Object.defineProperty(exports$1, "FormAuthenticationError", { enumerable: true, get: function () { return error_1.FormAuthenticationError; } });
6437
6486
  Object.defineProperty(exports$1, "FormConflictError", { enumerable: true, get: function () { return error_1.FormConflictError; } });
6438
6487
  Object.defineProperty(exports$1, "parseAPIError", { enumerable: true, get: function () { return error_1.parseAPIError; } });
6439
6488
  var setup_1 = requireSetup();
@@ -6453,6 +6502,16 @@ function handleFormConflict() {
6453
6502
  untrackUnload(true);
6454
6503
  featheryWindow().alert('This form has been updated. Please fill it out again.');
6455
6504
  location.reload();
6505
+ }
6506
+ function handleFormAuthenticationError(errorMessage) {
6507
+ untrackUnload(true);
6508
+ // Store the authentication error in initState so Form component can show FormOff
6509
+ initState.authenticationError =
6510
+ errorMessage || 'Access to this form is restricted';
6511
+ // Trigger a re-render by updating remount callbacks
6512
+ Object.values(initState.remountCallbacks).forEach(function (callback) {
6513
+ callback === null || callback === void 0 ? void 0 : callback();
6514
+ });
6456
6515
  }
6457
6516
 
6458
6517
  // Constants for the IndexedDB database
@@ -6952,9 +7011,9 @@ var OfflineRequestHandler = /** @class */ (function () {
6952
7011
  };
6953
7012
  var attemptRequest = function () { return __awaiter$2(_this, void 0, void 0, function () {
6954
7013
  var attempts, response, error_2, nextDelay;
6955
- var _a, _b, _c, _d, _e;
6956
- return __generator(this, function (_f) {
6957
- switch (_f.label) {
7014
+ var _a, _b, _c, _d, _e, _f;
7015
+ return __generator(this, function (_g) {
7016
+ switch (_g.label) {
6958
7017
  case 0:
6959
7018
  attempts = (_a = request.retryAttempts) !== null && _a !== void 0 ? _a : 0;
6960
7019
  // Ensure exhausted retries are marked as failed before being skipped
@@ -6962,54 +7021,58 @@ var OfflineRequestHandler = /** @class */ (function () {
6962
7021
  markFileUploadRetryFailure((_b = request.metadata) === null || _b === void 0 ? void 0 : _b.fieldKey);
6963
7022
  return [2 /*return*/];
6964
7023
  }
6965
- _f.label = 1;
7024
+ _g.label = 1;
6966
7025
  case 1:
6967
- if (!(attempts < this.maxRetryAttempts)) return [3 /*break*/, 13];
6968
- _f.label = 2;
7026
+ if (!(attempts < this.maxRetryAttempts)) return [3 /*break*/, 15];
7027
+ _g.label = 2;
6969
7028
  case 2:
6970
- _f.trys.push([2, 6, , 12]);
7029
+ _g.trys.push([2, 6, , 14]);
6971
7030
  return [4 /*yield*/, fetch(url, fetchOptions)];
6972
7031
  case 3:
6973
- response = _f.sent();
7032
+ response = _g.sent();
6974
7033
  return [4 /*yield*/, distExports$2.checkResponseSuccess(response)];
6975
7034
  case 4:
6976
- _f.sent();
7035
+ _g.sent();
6977
7036
  markFileUploadRetrySuccess((_c = request.metadata) === null || _c === void 0 ? void 0 : _c.fieldKey);
6978
7037
  return [4 /*yield*/, this.removeRequest(key)];
6979
7038
  case 5:
6980
- _f.sent();
7039
+ _g.sent();
6981
7040
  return [2 /*return*/];
6982
7041
  case 6:
6983
- error_2 = _f.sent();
6984
- if (error_2 instanceof distExports$2.FormConflictError) {
6985
- handleFormConflict();
6986
- return [2 /*return*/];
6987
- }
7042
+ error_2 = _g.sent();
7043
+ if (!(error_2 instanceof distExports$2.FormConflictError)) return [3 /*break*/, 8];
7044
+ handleFormConflict();
7045
+ markFileUploadRetrySuccess((_d = request.metadata) === null || _d === void 0 ? void 0 : _d.fieldKey);
7046
+ return [4 /*yield*/, this.removeRequest(key)];
7047
+ case 7:
7048
+ _g.sent();
7049
+ return [2 /*return*/];
7050
+ case 8:
6988
7051
  attempts++;
6989
7052
  return [4 /*yield*/, this.updateRetryAttempts(key, attempts)];
6990
- case 7:
6991
- _f.sent();
6992
- if (!navigator.onLine) return [3 /*break*/, 9];
7053
+ case 9:
7054
+ _g.sent();
7055
+ if (!navigator.onLine) return [3 /*break*/, 11];
6993
7056
  nextDelay = this.getExponentialDelay(attempts);
6994
7057
  if (attempts >= this.maxRetryAttempts) {
6995
7058
  // Skip alerting when a specific field upload already surfaces its own retry error
6996
- if (this.errorCallback && !((_d = request.metadata) === null || _d === void 0 ? void 0 : _d.fieldKey)) {
7059
+ if (this.errorCallback && !((_e = request.metadata) === null || _e === void 0 ? void 0 : _e.fieldKey)) {
6997
7060
  this.errorCallback("Failed to submit after ".concat(this.maxRetryAttempts, " attempts. Please check your connection and try again."));
6998
7061
  }
6999
- markFileUploadRetryFailure((_e = request.metadata) === null || _e === void 0 ? void 0 : _e.fieldKey);
7062
+ markFileUploadRetryFailure((_f = request.metadata) === null || _f === void 0 ? void 0 : _f.fieldKey);
7000
7063
  return [2 /*return*/];
7001
7064
  }
7002
7065
  return [4 /*yield*/, this.delay(nextDelay)];
7003
- case 8:
7004
- _f.sent();
7005
- return [3 /*break*/, 11];
7006
- case 9: return [4 /*yield*/, this.onlineAndReplayed()];
7007
7066
  case 10:
7008
- _f.sent();
7067
+ _g.sent();
7068
+ return [3 /*break*/, 13];
7069
+ case 11: return [4 /*yield*/, this.onlineAndReplayed()];
7070
+ case 12:
7071
+ _g.sent();
7009
7072
  return [2 /*return*/];
7010
- case 11: return [3 /*break*/, 12];
7011
- case 12: return [3 /*break*/, 1];
7012
- case 13: return [2 /*return*/];
7073
+ case 13: return [3 /*break*/, 14];
7074
+ case 14: return [3 /*break*/, 1];
7075
+ case 15: return [2 /*return*/];
7013
7076
  }
7014
7077
  });
7015
7078
  }); };
@@ -7380,12 +7443,20 @@ var IntegrationClient = /** @class */ (function () {
7380
7443
  if (parseResponse === void 0) { parseResponse = true; }
7381
7444
  if (propagateNetworkErrors === void 0) { propagateNetworkErrors = false; }
7382
7445
  var sdkKey = initInfo().sdkKey;
7446
+ // Stop making requests if authentication error has occurred
7447
+ if (initState.authenticationError) {
7448
+ return Promise.resolve(undefined);
7449
+ }
7383
7450
  return distExports$2.apiFetch(sdkKey, url, options, parseResponse).catch(function (e) {
7384
7451
  var _a;
7385
7452
  if (e instanceof distExports$2.FormConflictError) {
7386
7453
  handleFormConflict();
7387
7454
  return;
7388
7455
  }
7456
+ if (e instanceof distExports$2.FormAuthenticationError) {
7457
+ handleFormAuthenticationError(e.message);
7458
+ return;
7459
+ }
7389
7460
  // Ignore TypeErrors if form has redirected because `fetch` in
7390
7461
  // Safari will error after redirect
7391
7462
  var ignore = ((_a = _this.ignoreNetworkErrors) === null || _a === void 0 ? void 0 : _a.current) ||
@@ -20222,7 +20293,7 @@ var messages = (_a = {},
20222
20293
  _a[NO_BUSINESS_EMAIL] = 'Activate forms by adding an email from a company domain to your Feathery account',
20223
20294
  _a);
20224
20295
  function FormOff(_a) {
20225
- 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;
20296
+ 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;
20226
20297
  return (jsxs("div", exports.__assign({ css: {
20227
20298
  width: '100%',
20228
20299
  height: '100%',
@@ -20239,7 +20310,7 @@ function FormOff(_a) {
20239
20310
  lineHeight: '32px',
20240
20311
  textAlign: 'center',
20241
20312
  margin: '50px 0'
20242
- } }, { children: messages[reason] })), showCTA && (jsx$1("button", exports.__assign({ css: {
20313
+ } }, { children: message || messages[reason] })), showCTA && (jsx$1("button", exports.__assign({ css: {
20243
20314
  border: '1px solid #e2626e',
20244
20315
  color: '#e2626e',
20245
20316
  outline: 'none',
@@ -22718,6 +22789,10 @@ var getFormContext = function (formUuid) {
22718
22789
  setCollaboratorAsCompleted: function (templateId) {
22719
22790
  return formState.client.setCollaboratorAsCompleted(templateId);
22720
22791
  },
22792
+ dataHubAction: function (_a) {
22793
+ var hubId = _a.hubId, operation = _a.operation, entryId = _a.entryId, data = _a.data;
22794
+ return formState.client.dataHubAction({ hubId: hubId, operation: operation, entryId: entryId, data: data });
22795
+ },
22721
22796
  generateDocuments: function (_a) {
22722
22797
  var documentIds = _a.documentIds, download = _a.download, merge = _a.merge;
22723
22798
  return formState.client.generateDocuments({ documentIds: documentIds, download: download, merge: merge });
@@ -40676,7 +40751,7 @@ function Form(_a) {
40676
40751
  var runElementActions = function (_a) {
40677
40752
  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;
40678
40753
  return __awaiter$2(_this, void 0, void 0, function () {
40679
- var id, metadata, trigger, submitPromise, pendingFileKeys, invalid, hasNext, submissionResult, error_3, _e, stepPromise, flowOnSuccess, actionTypes, runAction, i, hasExtractions, hasEnvelopeGeneration, _loop_1, state_1;
40754
+ var id, metadata, trigger, submitPromise, pendingFileKeys, invalid, hasNext, submissionResult, error_3, _e, stepPromise, preOpenedWindows, flowOnSuccess, actionTypes, runAction, i, hasExtractions, hasEnvelopeGeneration, _loop_1, state_1;
40680
40755
  var _this = this;
40681
40756
  var _f, _g, _h, _j, _k;
40682
40757
  return __generator(this, function (_l) {
@@ -40783,6 +40858,18 @@ function Form(_a) {
40783
40858
  // Adjust action order to prioritize certain actions and
40784
40859
  // to ensure all actions are run as expected
40785
40860
  actions = prioritizeActions(actions);
40861
+ preOpenedWindows = new Map();
40862
+ if (isIOS()) {
40863
+ actions.forEach(function (action, idx) {
40864
+ if (action.type === ACTION_URL && action.open_tab) {
40865
+ var win = featheryWindow().open('about:blank', '_blank');
40866
+ if (win) {
40867
+ win.opener = null; // Prevent reverse tabnabbing
40868
+ preOpenedWindows.set(idx, win);
40869
+ }
40870
+ }
40871
+ });
40872
+ }
40786
40873
  flowOnSuccess = function (index) { return function () { return __awaiter$2(_this, void 0, void 0, function () {
40787
40874
  var running;
40788
40875
  return __generator(this, function (_a) {
@@ -40834,7 +40921,7 @@ function Form(_a) {
40834
40921
  initializeEnvelopeGeneration(actions);
40835
40922
  }
40836
40923
  _loop_1 = function () {
40837
- 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;
40924
+ 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;
40838
40925
  var _m, _o, _p, _q, _r, _s, _t;
40839
40926
  return __generator(this, function (_u) {
40840
40927
  switch (_u.label) {
@@ -40911,8 +40998,16 @@ function Form(_a) {
40911
40998
  if (url) {
40912
40999
  if (!url.includes(':'))
40913
41000
  url = 'https://' + url;
40914
- if (action.open_tab)
40915
- openTab(url);
41001
+ if (action.open_tab) {
41002
+ preOpened = preOpenedWindows.get(i);
41003
+ if (preOpened) {
41004
+ preOpened.location.href = url;
41005
+ preOpenedWindows.delete(i);
41006
+ }
41007
+ else {
41008
+ openTab(url);
41009
+ }
41010
+ }
40916
41011
  }
40917
41012
  if (!!action.open_tab) return [3 /*break*/, 21];
40918
41013
  eventData = {
@@ -41490,6 +41585,8 @@ function Form(_a) {
41490
41585
  i++;
41491
41586
  return [3 /*break*/, 9];
41492
41587
  case 12:
41588
+ // Close any pre-opened windows that weren't used (e.g., validation failed)
41589
+ preOpenedWindows.forEach(function (win) { return win === null || win === void 0 ? void 0 : win.close(); });
41493
41590
  if (i < actions.length) {
41494
41591
  elementClicks[id] = false;
41495
41592
  clearButtonActionState();
@@ -41611,6 +41708,10 @@ function Form(_a) {
41611
41708
  };
41612
41709
  handleFormComplete().then(redirectForm);
41613
41710
  }, [anyFinished]);
41711
+ // Form authentication error (403)
41712
+ if (initState.authenticationError) {
41713
+ return (jsx$1(FormOff, { reason: CLOSED, message: initState.authenticationError, showCTA: false }));
41714
+ }
41614
41715
  // Form is turned off
41615
41716
  if (formOffReason.current === CLOSED)
41616
41717
  return jsx$1(FormOff, { showCTA: formSettings.showBrand });
@@ -45691,6 +45792,38 @@ var FeatheryClient = /** @class */ (function (_super) {
45691
45792
  });
45692
45793
  });
45693
45794
  };
45795
+ FeatheryClient.prototype.dataHubAction = function (_a) {
45796
+ var hubId = _a.hubId, operation = _a.operation, entryId = _a.entryId, data = _a.data;
45797
+ return __awaiter$2(this, void 0, void 0, function () {
45798
+ var baseUrl, url, response, _b, _c;
45799
+ return __generator(this, function (_d) {
45800
+ switch (_d.label) {
45801
+ case 0:
45802
+ baseUrl = new URL(distExports$2.getApiUrl()).origin;
45803
+ url = "".concat(baseUrl, "/api/hub/").concat(hubId, "/action/");
45804
+ return [4 /*yield*/, this._fetch(url, {
45805
+ headers: { 'Content-Type': 'application/json' },
45806
+ method: 'POST',
45807
+ body: JSON.stringify({ operation: operation, entry_id: entryId, data: data })
45808
+ }, false)];
45809
+ case 1:
45810
+ response = _d.sent();
45811
+ if (!response) return [3 /*break*/, 5];
45812
+ if (response.status === 204)
45813
+ return [2 /*return*/, null];
45814
+ if (!response.ok) return [3 /*break*/, 3];
45815
+ return [4 /*yield*/, response.json()];
45816
+ case 2: return [2 /*return*/, _d.sent()];
45817
+ case 3:
45818
+ _b = Error;
45819
+ _c = distExports$2.parseAPIError;
45820
+ return [4 /*yield*/, response.json()];
45821
+ case 4: throw _b.apply(void 0, [_c.apply(void 0, [_d.sent()])]);
45822
+ case 5: return [2 /*return*/];
45823
+ }
45824
+ });
45825
+ });
45826
+ };
45694
45827
  return FeatheryClient;
45695
45828
  }(IntegrationClient));
45696
45829
 
@@ -45742,6 +45875,8 @@ function init(sdkKey, options) {
45742
45875
  return Promise.resolve((_a = initState.userId) !== null && _a !== void 0 ? _a : ''); // can only be initialized one time per load
45743
45876
  logFeatheryBadge();
45744
45877
  initState.initialized = true;
45878
+ // Clear any previous authentication errors on new initialization
45879
+ initState.authenticationError = undefined;
45745
45880
  initState.sdkKey = sdkKey;
45746
45881
  if (options._enterpriseRegion)
45747
45882
  initState.region = options._enterpriseRegion.toLowerCase();
@@ -45768,9 +45903,9 @@ function init(sdkKey, options) {
45768
45903
  if (runningInClient()) {
45769
45904
  // Dynamically load libraries that must be client side
45770
45905
  global.scriptjsLoadPromise = Promise.resolve().then(function () { return require(
45771
- /* webpackChunkName: "scriptjs" */ './fthry_script.BTrurqF7.js'); }).then(function (n) { return n.script; });
45906
+ /* webpackChunkName: "scriptjs" */ './fthry_script.C2pt_bUm.js'); }).then(function (n) { return n.script; });
45772
45907
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
45773
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.BUWRlWxA.js'); }).then(function (n) { return n.webfontloader; });
45908
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.Du37duiu.js'); }).then(function (n) { return n.webfontloader; });
45774
45909
  // Client-side tracking logic
45775
45910
  if (initState.userTracking === 'cookie') {
45776
45911
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -45916,7 +46051,7 @@ function getFieldValues() {
45916
46051
  return exports.__assign({}, exports.fieldValues);
45917
46052
  }
45918
46053
  function logFeatheryBadge() {
45919
- console.log('%c Feathery %c v' + "2.21.0" + ' ', // replaced with real version during build
46054
+ console.log('%c Feathery %c v' + "2.22.0" + ' ', // replaced with real version during build
45920
46055
  '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;');
45921
46056
  }
45922
46057
 
@@ -47344,39 +47479,39 @@ breakpoint) {
47344
47479
  return styles.getTarget('inner-container', undefined, viewport === 'mobile');
47345
47480
  };
47346
47481
 
47347
- var AddressLine1 = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.CrI80enn.js'); }); });
47348
- var ButtonGroupField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.DUau2wvs.js'); }); });
47349
- var CheckboxField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.BnndrG3W.js'); }); });
47482
+ var AddressLine1 = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.CvLykMCw.js'); }); });
47483
+ var ButtonGroupField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.CRdtsgYY.js'); }); });
47484
+ var CheckboxField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.D3t9MrC8.js'); }); });
47350
47485
  var CheckboxGroupField = React.lazy(function () {
47351
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.C5Pj-Zfh.js'); });
47486
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.CIxKm2W7.js'); });
47352
47487
  });
47353
- var ColorPickerField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.C3o0YyvM.js'); }); });
47354
- var CustomField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.DMEipzfW.js'); }); });
47488
+ var ColorPickerField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.C7ja1s3P.js'); }); });
47489
+ var CustomField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.Dl8zGsAp.js'); }); });
47355
47490
  var DateSelectorField = React.lazy(function () {
47356
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.BVa6RVKk.js'); });
47491
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.BoacvsbM.js'); });
47357
47492
  });
47358
- var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.CiPmoBTf.js'); }); });
47493
+ var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.dpVLfqGZ.js'); }); });
47359
47494
  var DropdownMultiField = React.lazy(function () {
47360
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.DRNB-tCT.js'); });
47495
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.D9UgyAK0.js'); });
47361
47496
  });
47362
- var FileUploadField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.Br3HlsO5.js'); }); });
47363
- var MatrixField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.v9OD_-hq.js'); }); });
47364
- var PasswordField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.CkiBXgLp.js'); }); });
47497
+ var FileUploadField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.2sunYeoj.js'); }); });
47498
+ var MatrixField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.BJT2EG9q.js'); }); });
47499
+ var PasswordField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.BqZlc7T3.js'); }); });
47365
47500
  var PaymentMethodField = React.lazy(function () {
47366
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.O7j1bFxf.js'); });
47501
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.D05feokK.js'); });
47367
47502
  });
47368
- var PhoneField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DRz5hODR.js'); }); });
47369
- var PinInputField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.-2aBRBrW.js'); }); });
47370
- var QRScanner = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.GU6DtzCY.js'); }); });
47503
+ var PhoneField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DBJtTx9s.js'); }); });
47504
+ var PinInputField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.DiSY7Ac7.js'); }); });
47505
+ var QRScanner = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.CofrHdeg.js'); }); });
47371
47506
  var RadioButtonGroupField = React.lazy(function () {
47372
47507
  return Promise.resolve().then(function () { return require(
47373
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.BA-WFjGc.js'); });
47508
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.BO3AY9qR.js'); });
47374
47509
  });
47375
- var RatingField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.DhqYB5dK.js'); }); });
47376
- var SignatureField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.DzXZ-Rb_.js'); }); });
47377
- var SliderField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.D2zIjosg.js'); }); });
47378
- var TextField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.Cy-T4HCz.js'); }); });
47379
- var TextArea = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.WqEOU2O1.js'); }); });
47510
+ var RatingField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.B7fwm2Qq.js'); }); });
47511
+ var SignatureField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.BNdR1Zvy.js'); }); });
47512
+ var SliderField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.Cy80QFQZ.js'); }); });
47513
+ var TextField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.C-ANSPxY.js'); }); });
47514
+ var TextArea = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.DjWVnEr6.js'); }); });
47380
47515
  var Fields = {
47381
47516
  AddressLine1: AddressLine1,
47382
47517
  ButtonGroupField: ButtonGroupField,
@@ -48316,7 +48451,7 @@ function ElementSkeleton(_a) {
48316
48451
  }
48317
48452
  var templateObject_1;
48318
48453
 
48319
- var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.J8P_vp8o.js'); }); });
48454
+ var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.avrbgACA.js'); }); });
48320
48455
  var Basic = {
48321
48456
  ImageElement: ImageElement,
48322
48457
  VideoElement: VideoElement,
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var index = require('./fthry_index.DpdkY1k7.js');
4
+ var index = require('./fthry_index.6gJGxnEh.js');
5
5
 
6
6
  /** Checks if value is string */
7
7
  function isString(str) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.B6dz6_D2.js');
3
+ var index = require('./fthry_index.lrVIrRLc.js');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var index = require('./fthry_index.B6dz6_D2.js');
4
+ var index = require('./fthry_index.lrVIrRLc.js');
5
5
  var ReactDOM = require('react-dom');
6
6
 
7
7
  function _interopNamespaceDefault(e) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.B6dz6_D2.js');
3
+ var index = require('./fthry_index.lrVIrRLc.js');
4
4
  var React = require('react');
5
5
 
6
6
  function useElementSize(anchorRef) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.B6dz6_D2.js');
3
+ var index = require('./fthry_index.lrVIrRLc.js');
4
4
  var React = require('react');
5
5
 
6
6
  function useSalesforceSync(salesforceSync, editMode) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.B6dz6_D2.js');
3
+ var index = require('./fthry_index.lrVIrRLc.js');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  m.forEach(function (e) {
package/cjs/index.d.ts CHANGED
@@ -91,6 +91,12 @@ declare function renderAt(elementId: any, props: FormProps, loginEnabled?: boole
91
91
  payload?: undefined;
92
92
  }>;
93
93
  setCollaboratorAsCompleted: (templateId: string) => Promise<any>;
94
+ dataHubAction: ({ hubId, operation, entryId, data }: {
95
+ hubId: string;
96
+ operation: "get" | "create" | "update" | "delete";
97
+ entryId?: string | undefined;
98
+ data?: Record<string, any> | undefined;
99
+ }) => Promise<any>;
94
100
  generateDocuments: ({ documentIds, download, merge }: {
95
101
  documentIds: string[];
96
102
  download?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,EAAE,EAAU,KAAK,IAAI,SAAS,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,mBAAmB,CAAC;AAG3B;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCvE;AAGD,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASb,CAAC;AAEF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACR,eAAe,EAChB,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,EAAE,EAAU,KAAK,IAAI,SAAS,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,mBAAmB,CAAC;AAG3B;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCvE;AAGD,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASb,CAAC;AAEF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACR,eAAe,EAChB,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
package/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.B6dz6_D2.js');
3
+ var index = require('./fthry_index.lrVIrRLc.js');
4
4
  require('react-dom/client');
5
5
  require('react/jsx-runtime');
6
6
  require('react');
@@ -107,5 +107,11 @@ export default class FeatheryClient extends IntegrationClient {
107
107
  files: any;
108
108
  }>;
109
109
  resetPendingFileUploads(fieldKeys: string[]): Promise<void>;
110
+ dataHubAction({ hubId, operation, entryId, data }: {
111
+ hubId: string;
112
+ operation: 'get' | 'create' | 'update' | 'delete';
113
+ entryId?: string;
114
+ data?: Record<string, any>;
115
+ }): Promise<any>;
110
116
  }
111
117
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/featheryClient/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/featheryClient/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AA4BpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,uBAAuB,EAEvB,kBAAkB,EAWnB,MAAM,wBAAwB,CAAC;AAahC,eAAO,IAAI,OAAO,QAAc,CAAC;AACjC,eAAO,IAAI,OAAO,QAAc,CAAC;AACjC,eAAO,IAAI,UAAU,QAAiB,CAAC;AACvC,eAAO,IAAI,MAAM,QAAa,CAAC;AAE/B,eAAO,MAAM,mBAAmB,WAAY,MAAM,SAajD,CAAC;AAOF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,iBAAiB;IAC3D;;;OAGG;IACH,yBAAyB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAElD;;OAEG;IACH,qBAAqB,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,cAAc,CAAgC;gBAGpD,OAAO,SAAK,EACZ,mBAAmB,CAAC,EAAE,GAAG,EACzB,KAAK,UAAQ,EACb,SAAS,UAAQ;YAsBL,iBAAiB;YAWjB,kBAAkB;IAQzB,OAAO;IAOR,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;IA8BlE,aAAa,CAAC,MAAM,EAAE,GAAG;IAqEzB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAoFlD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,UAAQ;IAgB7C,YAAY;IAMZ,oBAAoB,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,GAAG;IAuBrD,iBAAiB,CAAC,GAAG,EAAE,GAAG;IA2D1B,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM;IAwC9B,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAa1C,YAAY,CAAC,WAAW,OAAO,EAAE,KAAK,UAAQ;IAsE9C,cAAc,CAAC,EACnB,MAAM,EACN,QAAa,EACb,mBAA2B,EAC5B,EAAE,GAAG;IA6CN;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,OAAO;IA6E9C;;OAEG;IACG,iBAAiB,CAAC,QAAQ,UAAO;IASvC;;;;;;;OAOG;IACH,8BAA8B,UAAW,iBAAiB,oBAOxD;IAEF,0BAA0B;IAO1B,uBAAuB;IAOvB,SAAS;IAKH,YAAY,CAChB,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAEvC,EACE,QAAe,EACf,WAAmB,EACpB,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO;IAqBjD,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO;IAwCpD,aAAa,CAAC,SAAS,EAAE,GAAG;YAUpB,sBAAsB;IAgEpC,sBAAsB,CAAC,EAAE,EAAE,MAAM;IAsBjC,iBAAiB,SAAQ;IACzB,WAAW,SAAkB;IAGvB,eAAe,CAAC,EACpB,YAAY,EACZ,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,cAAc,EACf,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC;QAC3C,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,cAAc,CAAC,EAAE,GAAG,CAAC;KACtB;IAiBK,iBAAiB,CAAC,EACtB,OAAO,EACR,EAAE;QACD,OAAO,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;KACH;IAmBK,SAAS,CAAC,YAAY,EAAE,eAAe;IAavC,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAchC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM;;;;;;;;;IAgB5D,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IA2B9D,0BAA0B,CAAC,UAAU,EAAE,MAAM;IAyB7C,iBAAiB,CAAC,EACtB,WAAW,EACX,QAAgB,EAChB,KAAa,EACd,EAAE;QACD,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;;;IAiBK,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE;IAgB3C,aAAa,CAAC,EAClB,KAAK,EACL,SAAS,EACT,OAAO,EACP,IAAI,EACL,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAClD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC5B;CAoBF"}