@feathery/react 2.43.0 → 2.45.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 (163) hide show
  1. package/cjs/Form/grid/Element/index.d.ts.map +1 -1
  2. package/cjs/Form/index.d.ts.map +1 -1
  3. package/cjs/assistant/AssistantChat.d.ts.map +1 -1
  4. package/cjs/assistant/AssistantClient.d.ts +30 -6
  5. package/cjs/assistant/AssistantClient.d.ts.map +1 -1
  6. package/cjs/assistant/ToolStatus.d.ts.map +1 -1
  7. package/cjs/assistant/tools/clickElement.d.ts +4 -3
  8. package/cjs/assistant/tools/clickElement.d.ts.map +1 -1
  9. package/cjs/assistant/tools/panelRuntime.d.ts +18 -1
  10. package/cjs/assistant/tools/panelRuntime.d.ts.map +1 -1
  11. package/cjs/assistant/tools/setFieldValue.d.ts +15 -23
  12. package/cjs/assistant/tools/setFieldValue.d.ts.map +1 -1
  13. package/cjs/assistant/tools/tableMutations.d.ts +36 -0
  14. package/cjs/assistant/tools/tableMutations.d.ts.map +1 -0
  15. package/cjs/assistant/tools/triggerTableAction.d.ts +17 -0
  16. package/cjs/assistant/tools/triggerTableAction.d.ts.map +1 -0
  17. package/cjs/assistant/tools/utils.d.ts +33 -0
  18. package/cjs/assistant/tools/utils.d.ts.map +1 -0
  19. package/cjs/assistant/utils.d.ts +0 -1
  20. package/cjs/assistant/utils.d.ts.map +1 -1
  21. package/cjs/elements/basic/TableElement/index.d.ts +1 -1
  22. package/cjs/elements/basic/TableElement/index.d.ts.map +1 -1
  23. package/cjs/{fthry_AssistantChat.Dc6irzAk.js → fthry_AssistantChat.DAuwndVq.js} +951 -327
  24. package/cjs/{fthry_FormControl.D_eydQlT.js → fthry_FormControl.BBY2Jye4.js} +1 -1
  25. package/cjs/{fthry_InlineTooltip.Km0nxBV3.js → fthry_InlineTooltip.HDk3cIr4.js} +2 -2
  26. package/cjs/{fthry_Overlay.ChABiy0m.js → fthry_Overlay.AOeUL6CY.js} +1 -1
  27. package/cjs/{fthry_PaymentMethodField.BMABompY.js → fthry_PaymentMethodField.CoyAoL1E.js} +4 -4
  28. package/cjs/{fthry_Placeholder.CnNGDD_K.js → fthry_Placeholder.B7ueqeue.js} +1 -1
  29. package/cjs/{fthry_ShowEyeIcon.Cozhh36m.js → fthry_ShowEyeIcon.BQYvZcHZ.js} +1 -1
  30. package/cjs/{fthry_auto-track.CzyR3umO.js → fthry_auto-track.D-HB881s.js} +2 -2
  31. package/cjs/{fthry_highlighted-body-TPN3WLV5.D8LjPUtI.js → fthry_highlighted-body-TPN3WLV5.B-UeFUOm.js} +3 -3
  32. package/cjs/{fthry_index.H4GgWRQ-.js → fthry_index.B0i-spOd.js} +1 -1
  33. package/cjs/{fthry_index.DcnmaMvN.js → fthry_index.B1B09obP.js} +2 -2
  34. package/cjs/{fthry_index.BYJ0Cjz1.js → fthry_index.B1Eop7YX.js} +1 -1
  35. package/cjs/{fthry_index.B76xVeoK.js → fthry_index.B490AqCR.js} +10 -10
  36. package/cjs/{fthry_index.BVLMhJHP.js → fthry_index.B4GgIpQf.js} +37 -20
  37. package/cjs/{fthry_index.WbKUUcdS.js → fthry_index.BYK-L6cT.js} +1 -1
  38. package/cjs/{fthry_index.5oiWIOUK.js → fthry_index.BkUaB2ep.js} +1 -1
  39. package/cjs/{fthry_index.B5TkPpn3.js → fthry_index.BlaJBDFt.js} +2 -2
  40. package/cjs/{fthry_index.CsV6zv_0.js → fthry_index.Bz8jOUz8.js} +5 -5
  41. package/cjs/{fthry_index.wTd_xpVX.js → fthry_index.C3_3Pwba.js} +4 -4
  42. package/cjs/{fthry_index.BNFRKqrl.js → fthry_index.CCAjA-GM.js} +5 -5
  43. package/cjs/{fthry_index.8ZkixEuX.js → fthry_index.CCnbb7qW.js} +2 -2
  44. package/cjs/{fthry_index.BPu5GDF3.js → fthry_index.CK7AyNj-.js} +5 -5
  45. package/cjs/{fthry_index.DfOk3_Vc.js → fthry_index.COUEU8oT.js} +1 -1
  46. package/cjs/{fthry_index.D7jBFEkz.js → fthry_index.CPY3r_AI.js} +1 -1
  47. package/cjs/{fthry_index._pqB5lCu.js → fthry_index.CX2hoNP2.js} +8 -8
  48. package/cjs/{fthry_index.B4qsX_2B.js → fthry_index.CZvkZw_L.js} +4 -4
  49. package/cjs/{fthry_index.Cj8NIIWS.js → fthry_index.CdveGKXm.js} +6 -6
  50. package/cjs/{fthry_index.DMmTH04s.js → fthry_index.CekatTq6.js} +2 -2
  51. package/cjs/{fthry_index.B7Slrn_2.js → fthry_index.Cyo-XM28.js} +1 -1
  52. package/cjs/{fthry_index.KMyCBmte.js → fthry_index.DMtFsERM.js} +1 -1
  53. package/cjs/{fthry_index.Crv5Oqdb.js → fthry_index.DWqC5u1r.js} +6 -6
  54. package/cjs/{fthry_index.B-QAg85r.js → fthry_index.DfW7mZvC.js} +6 -6
  55. package/cjs/{fthry_index.Cj3i1JIs.js → fthry_index.RhMho_qJ.js} +1 -1
  56. package/cjs/{fthry_index.Dn7k0XbZ.js → fthry_index.Y5sdcMuJ.js} +231 -160
  57. package/cjs/{fthry_index.x_Q9efXs.js → fthry_index.dJ1e0A0z.js} +2 -2
  58. package/cjs/{fthry_index.B79ksg_6.js → fthry_index.dpt4VGCO.js} +2 -2
  59. package/cjs/{fthry_index.D6PlFvY8.js → fthry_index.egNqBHHX.js} +5 -5
  60. package/cjs/{fthry_index.DoliEMOD.js → fthry_index.h6YgYU9U.js} +3 -3
  61. package/cjs/{fthry_index.CMRH7foG.js → fthry_index.mST6-9JW.js} +6 -6
  62. package/cjs/{fthry_index.ecHJPvgK.js → fthry_index.r4vMrBms.js} +3 -3
  63. package/cjs/{fthry_index.umd.lxnwBuEl.js → fthry_index.umd.DqxbfufN.js} +1 -1
  64. package/cjs/{fthry_input.DJaKnXqS.js → fthry_input.DVS9sAJL.js} +1 -1
  65. package/cjs/{fthry_mermaid-O7DHMXV3.CyaPsnki.js → fthry_mermaid-O7DHMXV3.DVvaFs3q.js} +3 -3
  66. package/cjs/{fthry_script.DrFnB8ud.js → fthry_script.tMNEKNS0.js} +1 -1
  67. package/cjs/{fthry_styles.qeOM9hPF.js → fthry_styles.CLnNcAaC.js} +1 -1
  68. package/cjs/{fthry_useElementSize.K1QGuhUj.js → fthry_useElementSize.WUoc10bB.js} +1 -1
  69. package/cjs/{fthry_useSalesforceSync.DQd2UZn6.js → fthry_useSalesforceSync.HL0c5o2I.js} +1 -1
  70. package/cjs/{fthry_webfontloader.D6aR0hiT.js → fthry_webfontloader.BccGkoV1.js} +1 -1
  71. package/cjs/index.d.ts +1 -1
  72. package/cjs/index.js +1 -1
  73. package/cjs/utils/button.d.ts +2 -0
  74. package/cjs/utils/button.d.ts.map +1 -0
  75. package/cjs/utils/formContext.d.ts +1 -1
  76. package/cjs/utils/formContext.d.ts.map +1 -1
  77. package/cjs/utils/hideAndRepeats.d.ts.map +1 -1
  78. package/cjs/utils/repeat.d.ts +5 -0
  79. package/cjs/utils/repeat.d.ts.map +1 -1
  80. package/dist/Form/grid/Element/index.d.ts.map +1 -1
  81. package/dist/Form/index.d.ts.map +1 -1
  82. package/dist/assistant/AssistantChat.d.ts.map +1 -1
  83. package/dist/assistant/AssistantClient.d.ts +30 -6
  84. package/dist/assistant/AssistantClient.d.ts.map +1 -1
  85. package/dist/assistant/ToolStatus.d.ts.map +1 -1
  86. package/dist/assistant/tools/clickElement.d.ts +4 -3
  87. package/dist/assistant/tools/clickElement.d.ts.map +1 -1
  88. package/dist/assistant/tools/panelRuntime.d.ts +18 -1
  89. package/dist/assistant/tools/panelRuntime.d.ts.map +1 -1
  90. package/dist/assistant/tools/setFieldValue.d.ts +15 -23
  91. package/dist/assistant/tools/setFieldValue.d.ts.map +1 -1
  92. package/dist/assistant/tools/tableMutations.d.ts +36 -0
  93. package/dist/assistant/tools/tableMutations.d.ts.map +1 -0
  94. package/dist/assistant/tools/triggerTableAction.d.ts +17 -0
  95. package/dist/assistant/tools/triggerTableAction.d.ts.map +1 -0
  96. package/dist/assistant/tools/utils.d.ts +33 -0
  97. package/dist/assistant/tools/utils.d.ts.map +1 -0
  98. package/dist/assistant/utils.d.ts +0 -1
  99. package/dist/assistant/utils.d.ts.map +1 -1
  100. package/dist/elements/basic/TableElement/index.d.ts +1 -1
  101. package/dist/elements/basic/TableElement/index.d.ts.map +1 -1
  102. package/dist/{fthry_AssistantChat.D2SjzX88.js → fthry_AssistantChat.B0rVOGHi.js} +951 -327
  103. package/dist/{fthry_FormControl.AWZ2hRhb.js → fthry_FormControl.BqvIXsOg.js} +1 -1
  104. package/dist/{fthry_InlineTooltip.DAaWNMEQ.js → fthry_InlineTooltip.DpFz4-7q.js} +2 -2
  105. package/dist/{fthry_Overlay.C500WG6U.js → fthry_Overlay.D9YOHNgQ.js} +1 -1
  106. package/dist/{fthry_PaymentMethodField.Bl2Ce36L.js → fthry_PaymentMethodField.BgiWNDi2.js} +4 -4
  107. package/dist/{fthry_Placeholder.DXrZi2ze.js → fthry_Placeholder.C5ezRBA4.js} +1 -1
  108. package/dist/{fthry_ShowEyeIcon.D3iEMZA7.js → fthry_ShowEyeIcon.CRfFKHIW.js} +1 -1
  109. package/dist/{fthry_auto-track.C9HCW4qJ.js → fthry_auto-track.Bo4ek9UM.js} +2 -2
  110. package/dist/{fthry_highlighted-body-TPN3WLV5.j0rrY2PD.js → fthry_highlighted-body-TPN3WLV5.aBNiR5uT.js} +3 -3
  111. package/dist/{fthry_index.BDtWG5y-.js → fthry_index.2-SVehmd.js} +5 -5
  112. package/dist/{fthry_index.CS604ePK.js → fthry_index.5I1jwuyV.js} +2 -2
  113. package/dist/{fthry_index.CB6eTYmX.js → fthry_index.B477V46H.js} +5 -5
  114. package/dist/{fthry_index.BHbPxMcy.js → fthry_index.BAwP5nZO.js} +2 -2
  115. package/dist/{fthry_index.DOGU2-kQ.js → fthry_index.BDb1Gbdx.js} +5 -5
  116. package/dist/{fthry_index.IaraEDTR.js → fthry_index.BJAfme_C.js} +1 -1
  117. package/dist/{fthry_index.Cd0JKkOc.js → fthry_index.BUJPgzS-.js} +8 -8
  118. package/dist/{fthry_index.DtHlcCDX.js → fthry_index.BZayCCtc.js} +1 -1
  119. package/dist/{fthry_index.C9P7Vo6r.js → fthry_index.Bf6OzsUG.js} +1 -1
  120. package/dist/{fthry_index.D3O1Qvm3.js → fthry_index.BgDe4mcu.js} +3 -3
  121. package/dist/{fthry_index.DzDuGB1B.js → fthry_index.Bl-5T-uf.js} +6 -6
  122. package/dist/{fthry_index.DA5HHbVe.js → fthry_index.BmyShbTY.js} +1 -1
  123. package/dist/{fthry_index.BlrVY1vE.js → fthry_index.BzD8ur9K.js} +6 -6
  124. package/dist/{fthry_index.Co2zkJCZ.js → fthry_index.C8884q_s.js} +1 -1
  125. package/dist/{fthry_index.DFZRIGNF.js → fthry_index.CEMzrwVK.js} +2 -2
  126. package/dist/{fthry_index.OgRdIE07.js → fthry_index.CMC6lbTE.js} +5 -5
  127. package/dist/{fthry_index.BALrl_Ek.js → fthry_index.Cgd-qpYl.js} +4 -4
  128. package/dist/{fthry_index.4rXsgo8n.js → fthry_index.CvV7-AsF.js} +6 -6
  129. package/dist/{fthry_index.DAdR6bYe.js → fthry_index.DT62a6WV.js} +2 -2
  130. package/dist/{fthry_index.BjZmdaIR.js → fthry_index.DZ8TqVOz.js} +2 -2
  131. package/dist/{fthry_index.Cn4kA2tn.js → fthry_index.DnucOK6E.js} +10 -10
  132. package/dist/{fthry_index.D8_hWgYx.js → fthry_index.DzSlJMlO.js} +1 -1
  133. package/dist/{fthry_index.D2-zTdBQ.js → fthry_index.GDe8zYB6.js} +1 -1
  134. package/dist/{fthry_index.0DlQOa4l.js → fthry_index.M1FS-2Qf.js} +1 -1
  135. package/dist/{fthry_index.C-Af9t8c.js → fthry_index.RlS2LjeY.js} +5 -5
  136. package/dist/{fthry_index.C8xVXq31.js → fthry_index.V6ue96dZ.js} +3 -3
  137. package/dist/{fthry_index.-lEiRiJ3.js → fthry_index.d6j0MJN7.js} +2 -2
  138. package/dist/{fthry_index.DZviU_0h.js → fthry_index.lm4XUzM9.js} +37 -20
  139. package/dist/{fthry_index.x_DcI6GR.js → fthry_index.o9ctQnbs.js} +4 -4
  140. package/dist/{fthry_index.D5dmTp6g.js → fthry_index.pBEjY7tP.js} +1 -1
  141. package/dist/{fthry_index.umd.BhHG1ThX.js → fthry_index.umd.C338HmM7.js} +1 -1
  142. package/dist/{fthry_index.BoXwpo3p.js → fthry_index.wB8tEXQD.js} +227 -161
  143. package/dist/{fthry_input.Y2HVhQeo.js → fthry_input.EFXGfxnr.js} +1 -1
  144. package/dist/{fthry_mermaid-O7DHMXV3._Ng2DeVi.js → fthry_mermaid-O7DHMXV3.sOtzPg8E.js} +3 -3
  145. package/dist/{fthry_script.4cQVioC4.js → fthry_script.CnpXNBMs.js} +1 -1
  146. package/dist/{fthry_styles.DX0NUnVP.js → fthry_styles.DzxChSu4.js} +1 -1
  147. package/dist/{fthry_useElementSize.BCbe9jZd.js → fthry_useElementSize.BftEHcYN.js} +1 -1
  148. package/dist/{fthry_useSalesforceSync.DJFGoBIG.js → fthry_useSalesforceSync.B04DdqRz.js} +1 -1
  149. package/dist/{fthry_webfontloader.4kqCCEG_.js → fthry_webfontloader.sk5QAqQz.js} +1 -1
  150. package/dist/index.d.ts +1 -1
  151. package/dist/index.js +1 -1
  152. package/dist/utils/button.d.ts +2 -0
  153. package/dist/utils/button.d.ts.map +1 -0
  154. package/dist/utils/formContext.d.ts +1 -1
  155. package/dist/utils/formContext.d.ts.map +1 -1
  156. package/dist/utils/hideAndRepeats.d.ts.map +1 -1
  157. package/dist/utils/repeat.d.ts +5 -0
  158. package/dist/utils/repeat.d.ts.map +1 -1
  159. package/package.json +2 -2
  160. package/umd/AssistantChat.685c311fcfd51a09112e.js +1 -0
  161. package/umd/{TableElement.fef6a362cfa150f0f38e.js → TableElement.e3da137819e9b84b3b82.js} +1 -1
  162. package/umd/index.js +1 -1
  163. package/umd/AssistantChat.879f86967feffba1cc6f.js +0 -1
@@ -7370,7 +7370,7 @@ function requireApi () {
7370
7370
  api$1.generateQuikEnvelopes = generateQuikEnvelopes;
7371
7371
  const utils_1 = requireUtils();
7372
7372
  const error_1 = requireError();
7373
- async function dataHubAction(sdkKey, { hubId, operation, entryId, data }, formId) {
7373
+ async function dataHubAction(sdkKey, { hubId, operation, entryId, data, where }, formId) {
7374
7374
  const url = `${(0, utils_1.getApiUrl)()}hub/${hubId}/action/`;
7375
7375
  const res = await (0, utils_1.apiFetch)(sdkKey, url, {
7376
7376
  headers: { 'Content-Type': 'application/json' },
@@ -7379,6 +7379,8 @@ function requireApi () {
7379
7379
  operation,
7380
7380
  entry_id: entryId,
7381
7381
  data,
7382
+ // Map each condition to the backend's snake_case shape.
7383
+ where: where?.map((cond) => 'entryId' in cond ? { entry_id: cond.entryId } : { field_id: cond.fieldId, value: cond.value }),
7382
7384
  form_key: formId,
7383
7385
  }),
7384
7386
  }, false);
@@ -18219,6 +18221,21 @@ function getFieldsInRepeat(step, repeatContainer) {
18219
18221
  */
18220
18222
  function getContainerById(step, id) {
18221
18223
  return step.subgrids.find(function (subgrid) { return subgrid.id === id; });
18224
+ }
18225
+ /**
18226
+ * Number of rendered rows for a repeated field. If the trigger is 'set_value'
18227
+ * and the last row is not at default, the renderer shows an extra empty row.
18228
+ */
18229
+ function getServarRepeatNum(field, fieldValue) {
18230
+ var _a;
18231
+ if (!Array.isArray(fieldValue))
18232
+ return 0;
18233
+ var servar = (_a = field === null || field === void 0 ? void 0 : field.servar) !== null && _a !== void 0 ? _a : {};
18234
+ var hasDefaultLastValue = fieldValue.length > 0 &&
18235
+ fieldValue[fieldValue.length - 1] === getDefaultFieldValue(field);
18236
+ return servar.repeat_trigger === 'set_value' && !hasDefaultLastValue
18237
+ ? fieldValue.length + 1
18238
+ : fieldValue.length;
18222
18239
  }
18223
18240
 
18224
18241
  /**
@@ -18303,23 +18320,11 @@ var repeatCountByFields = function (step, repeatKey) {
18303
18320
  });
18304
18321
  var count = 0;
18305
18322
  repeatableServars.forEach(function (servar) {
18306
- count = Math.max(count, getServarRepeatNum(servar));
18323
+ var _a, _b;
18324
+ count = Math.max(count, getServarRepeatNum(servar, exports.fieldValues[(_b = (_a = servar.servar) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : '']));
18307
18325
  });
18308
18326
  return count;
18309
18327
  };
18310
- // If the final value is still default, do not render another repeat
18311
- var getServarRepeatNum = function (node) {
18312
- var _a, _b;
18313
- var servar = (_a = node.servar) !== null && _a !== void 0 ? _a : {};
18314
- var fieldValue = exports.fieldValues[(_b = servar.key) !== null && _b !== void 0 ? _b : ''];
18315
- if (!Array.isArray(fieldValue))
18316
- return 0;
18317
- var defaultValue = getDefaultFieldValue(node);
18318
- var hasDefaultLastValue = fieldValue[fieldValue.length - 1] === defaultValue;
18319
- return servar.repeat_trigger === 'set_value' && !hasDefaultLastValue
18320
- ? fieldValue.length + 1
18321
- : fieldValue.length;
18322
- };
18323
18328
  var stepElementTypes = [
18324
18329
  'subgrids',
18325
18330
  'texts',
@@ -22272,6 +22277,56 @@ function fieldAllowedFromList(allowLists, fieldKey) {
22272
22277
  return true;
22273
22278
  }
22274
22279
 
22280
+ function isButtonDisabled(button, activeStep, visiblePositions, readOnly) {
22281
+ var _a, _b, _c;
22282
+ var disabled = false;
22283
+ if ((_a = button === null || button === void 0 ? void 0 : button.properties) === null || _a === void 0 ? void 0 : _a.disable_if_fields_incomplete) {
22284
+ var fieldsMissingValue = getVisibleElements(activeStep, visiblePositions, ['servar_fields'], true).some(function (_a) {
22285
+ var element = _a.element, repeat = _a.repeat;
22286
+ if (isFieldActuallyRequired(element, activeStep)) {
22287
+ var servar = element.servar;
22288
+ var fieldVal = exports.fieldValues[servar.key];
22289
+ if (servar.repeated)
22290
+ fieldVal = fieldVal[repeat];
22291
+ return isFieldValueEmpty(fieldVal, servar);
22292
+ }
22293
+ return false;
22294
+ });
22295
+ var storeElements = getVisibleElements(activeStep, visiblePositions, ['buttons', 'subgrids'], true)
22296
+ .map(function (_a) {
22297
+ var element = _a.element;
22298
+ return element;
22299
+ })
22300
+ .filter(function (_a) {
22301
+ var _b;
22302
+ var id = _a.id, properties = _a.properties;
22303
+ return id !== button.id &&
22304
+ ((_b = properties.actions) !== null && _b !== void 0 ? _b : []).some(function (action) {
22305
+ return action.type === ACTION_STORE_FIELD &&
22306
+ action.custom_store_field_key;
22307
+ });
22308
+ });
22309
+ var elementsHaveValues = storeElements.length === 0 ||
22310
+ storeElements.some(function (_a) {
22311
+ var _b;
22312
+ var properties = _a.properties;
22313
+ return ((_b = properties.actions) !== null && _b !== void 0 ? _b : []).some(function (action) {
22314
+ return action.type === ACTION_STORE_FIELD &&
22315
+ exports.fieldValues[action.custom_store_field_key];
22316
+ });
22317
+ });
22318
+ disabled = fieldsMissingValue || !elementsHaveValues;
22319
+ }
22320
+ if (!disabled && readOnly) {
22321
+ var actions = (_c = (_b = button === null || button === void 0 ? void 0 : button.properties) === null || _b === void 0 ? void 0 : _b.actions) !== null && _c !== void 0 ? _c : [];
22322
+ var hasNav = actions.some(function (action) {
22323
+ return NAVIGATION_ACTIONS.includes(action.type);
22324
+ });
22325
+ disabled = !hasNav;
22326
+ }
22327
+ return disabled;
22328
+ }
22329
+
22275
22330
  var ADDRESS_FIELD_TYPES_MAP = new Set([
22276
22331
  'gmap_line_1',
22277
22332
  'gmap_line_2',
@@ -22347,10 +22402,10 @@ var getRelatedAddressValues = function (addressElement, activeStep, fieldValues,
22347
22402
  };
22348
22403
 
22349
22404
  var Element$1 = function (_a) {
22350
- var _b, _c, _d, _e, _f, _g;
22405
+ var _b, _c, _d, _e, _f;
22351
22406
  var el = _a.node, form = _a.form;
22352
22407
  var type = el.type;
22353
- var userProgress = form.userProgress, curDepth = form.curDepth, maxDepth = form.maxDepth, elementProps = form.elementProps, activeStep = form.activeStep, buttonLoaders = form.buttonLoaders, customClickSelectionState = form.customClickSelectionState, runElementActions = form.runElementActions, buttonOnClick = form.buttonOnClick, tableOnClick = form.tableOnClick, fieldOnChange = form.fieldOnChange, inlineErrors = form.inlineErrors, setInlineErrors = form.setInlineErrors, changeValue = form.changeValue, updateFieldValues = form.updateFieldValues, submitCustom = form.submitCustom, elementOnView = form.elementOnView, onViewElements = form.onViewElements, formSettings = form.formSettings, formRef = form.formRef, focusRef = form.focusRef, setCardElement = form.setCardElement, visiblePositions = form.visiblePositions, featheryContext = form.featheryContext;
22408
+ var userProgress = form.userProgress, curDepth = form.curDepth, maxDepth = form.maxDepth, elementProps = form.elementProps, activeStep = form.activeStep, buttonLoaders = form.buttonLoaders, customClickSelectionState = form.customClickSelectionState, runElementActions = form.runElementActions, buttonOnClick = form.buttonOnClick, tableOnClick = form.tableOnClick, fieldOnChange = form.fieldOnChange, inlineErrors = form.inlineErrors, setInlineErrors = form.setInlineErrors, changeValue = form.changeValue, updateFieldValues = form.updateFieldValues, submitCustom = form.submitCustom, elementOnView = form.elementOnView, onViewElements = form.onViewElements, formSettings = form.formSettings, formRef = form.formRef, focusRef = form.focusRef, setCardElement = form.setCardElement, visiblePositions = form.visiblePositions, featheryContext = form.featheryContext, assistantClient = form.assistantClient;
22354
22409
  var readOnly = formSettings.readOnly || initState.collaboratorReview === 'readOnly';
22355
22410
  var basicProps = {
22356
22411
  componentOnly: false,
@@ -22370,7 +22425,7 @@ var Element$1 = function (_a) {
22370
22425
  else if (type === 'video')
22371
22426
  return jsx$1(Elements.VideoElement, exports.__assign({}, basicProps));
22372
22427
  else if (type === 'table')
22373
- return (jsx$1(Elements.TableElement, exports.__assign({}, basicProps, { onClick: function (payload) { return tableOnClick(el, payload); }, updateFieldValues: updateFieldValues, submitCustom: submitCustom, buttonLoaders: buttonLoaders })));
22428
+ return (jsx$1(Elements.TableElement, exports.__assign({}, basicProps, { onClick: function (payload) { return tableOnClick(el, payload); }, updateFieldValues: updateFieldValues, submitCustom: submitCustom, buttonLoaders: buttonLoaders, assistantClient: assistantClient })));
22374
22429
  else if (type === 'text')
22375
22430
  return (jsx$1(Elements.TextElement, exports.__assign({ textSpanOnClick: function (textSpanStart, textSpanEnd) {
22376
22431
  var _a;
@@ -22383,53 +22438,7 @@ var Element$1 = function (_a) {
22383
22438
  });
22384
22439
  }, conditions: activeStep.next_conditions }, basicProps)));
22385
22440
  else if (type === 'button') {
22386
- var disabled = false;
22387
- if (el.properties.disable_if_fields_incomplete) {
22388
- var fieldsMissingValue = getVisibleElements(activeStep, visiblePositions, ['servar_fields'], true).some(function (_a) {
22389
- var element = _a.element, repeat = _a.repeat;
22390
- if (isFieldActuallyRequired(element, activeStep)) {
22391
- var servar = element.servar;
22392
- var fieldVal = exports.fieldValues[servar.key];
22393
- if (servar.repeated)
22394
- fieldVal = fieldVal[repeat];
22395
- return isFieldValueEmpty(fieldVal, servar);
22396
- }
22397
- return false;
22398
- });
22399
- var storeElements = getVisibleElements(activeStep, visiblePositions, ['buttons', 'subgrids'], true)
22400
- .map(function (_a) {
22401
- var element = _a.element;
22402
- return element;
22403
- })
22404
- .filter(function (_a) {
22405
- var _b;
22406
- var id = _a.id, properties = _a.properties;
22407
- return id !== el.id &&
22408
- ((_b = properties.actions) !== null && _b !== void 0 ? _b : []).some(function (action) {
22409
- return action.type === ACTION_STORE_FIELD &&
22410
- action.custom_store_field_key;
22411
- });
22412
- });
22413
- var elementsHaveValues = storeElements.length === 0 || // Loose check via "some" since "requiredness" of click action
22414
- // elements can depend on use case
22415
- storeElements.some(function (_a) {
22416
- var _b;
22417
- var properties = _a.properties;
22418
- return ((_b = properties.actions) !== null && _b !== void 0 ? _b : []).some(function (action) {
22419
- return action.type === ACTION_STORE_FIELD &&
22420
- exports.fieldValues[action.custom_store_field_key];
22421
- });
22422
- });
22423
- disabled = fieldsMissingValue || !elementsHaveValues;
22424
- }
22425
- if (!disabled && readOnly) {
22426
- var actions = (_d = el.properties.actions) !== null && _d !== void 0 ? _d : [];
22427
- var hasNav = actions.some(function (action) {
22428
- return NAVIGATION_ACTIONS.includes(action.type);
22429
- });
22430
- // Disable buttons not used for navigation
22431
- disabled = !hasNav;
22432
- }
22441
+ var disabled = isButtonDisabled(el, activeStep, visiblePositions, readOnly);
22433
22442
  var loaderData = buttonLoaders[el.id];
22434
22443
  if (isNum(loaderData === null || loaderData === void 0 ? void 0 : loaderData.repeat) && loaderData.repeat !== el.repeat)
22435
22444
  loaderData = null;
@@ -22441,7 +22450,7 @@ var Element$1 = function (_a) {
22441
22450
  }, disabled: disabled }, basicProps)));
22442
22451
  }
22443
22452
  else if (type === 'field') {
22444
- var index_1 = (_e = el.repeat) !== null && _e !== void 0 ? _e : null;
22453
+ var index_1 = (_d = el.repeat) !== null && _d !== void 0 ? _d : null;
22445
22454
  var servar_1 = el.servar;
22446
22455
  var fieldVal_1 = getFieldValue$1(el).value;
22447
22456
  var empty = !fieldVal_1 || fieldVal_1 === servar_1.metadata.default_value;
@@ -22625,7 +22634,7 @@ var Element$1 = function (_a) {
22625
22634
  if (field.servar.metadata.store_abbreviation)
22626
22635
  countryCode = value;
22627
22636
  else
22628
- countryCode = (_g = (_f = findCountryByID(value, 'name')) === null || _f === void 0 ? void 0 : _f.countryCode) !== null && _g !== void 0 ? _g : '';
22637
+ countryCode = (_f = (_e = findCountryByID(value, 'name')) === null || _e === void 0 ? void 0 : _e.countryCode) !== null && _f !== void 0 ? _f : '';
22629
22638
  }
22630
22639
  else
22631
22640
  countryCode = '';
@@ -24629,8 +24638,14 @@ var getFormContext = function (formUuid) {
24629
24638
  return formState.client.setCollaboratorAsCompleted(templateId);
24630
24639
  },
24631
24640
  dataHubAction: function (_a) {
24632
- var hubId = _a.hubId, operation = _a.operation, entryId = _a.entryId, data = _a.data;
24633
- return formState.client.dataHubAction({ hubId: hubId, operation: operation, entryId: entryId, data: data });
24641
+ var hubId = _a.hubId, operation = _a.operation, entryId = _a.entryId, data = _a.data, where = _a.where;
24642
+ return formState.client.dataHubAction({
24643
+ hubId: hubId,
24644
+ operation: operation,
24645
+ entryId: entryId,
24646
+ data: data,
24647
+ where: where
24648
+ });
24634
24649
  },
24635
24650
  generateDocuments: function (_a) {
24636
24651
  var documentIds = _a.documentIds, download = _a.download, merge = _a.merge, mergedFileName = _a.mergedFileName;
@@ -41011,19 +41026,56 @@ function useTrackUserInteraction(formRef, activeStep, stepKey, formName) {
41011
41026
  }, [activeStep, stepKey, formName]);
41012
41027
  }
41013
41028
 
41014
- var LazyAssistantChat = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.Dc6irzAk.js'); }).then(function (n) { return n.AssistantChat; }); });
41029
+ var LazyAssistantChat = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.DAuwndVq.js'); }).then(function (n) { return n.AssistantChat; }); });
41015
41030
  var AssistantChat = function (props) { return (jsx$1(React.Suspense, exports.__assign({ fallback: null }, { children: jsx$1(LazyAssistantChat, exports.__assign({}, props)) }))); };
41016
41031
 
41017
41032
  var AssistantClient = /** @class */ (function () {
41018
- function AssistantClient(args) {
41019
- this._buttonOnClick = args.buttonOnClick;
41020
- this._runElementActions = args.runElementActions;
41033
+ function AssistantClient(callbacks) {
41034
+ this._tables = new Map();
41035
+ this._callbacks = callbacks;
41021
41036
  }
41037
+ AssistantClient.prototype.updateCallbacks = function (callbacks) {
41038
+ this._callbacks = callbacks;
41039
+ };
41022
41040
  AssistantClient.prototype.click = function (button) {
41023
- return this._buttonOnClick(button);
41041
+ return this._callbacks.buttonOnClick(button);
41024
41042
  };
41025
41043
  AssistantClient.prototype.runActions = function (args) {
41026
- return this._runElementActions(args);
41044
+ return this._callbacks.runElementActions(args);
41045
+ };
41046
+ AssistantClient.prototype.changeValue = function (value, field, index) {
41047
+ if (index === void 0) { index = null; }
41048
+ this._callbacks.changeValue(value, field, index);
41049
+ };
41050
+ AssistantClient.prototype.runTableAction = function (args) {
41051
+ return this._callbacks.tableOnClick(args.table, args.payload);
41052
+ };
41053
+ AssistantClient.prototype.registerTable = function (tableId, handlers) {
41054
+ this._tables.set(tableId, handlers);
41055
+ };
41056
+ AssistantClient.prototype.unregisterTable = function (tableId) {
41057
+ this._tables.delete(tableId);
41058
+ };
41059
+ AssistantClient.prototype.editTableCell = function (tableId, rowIndex, fieldKey, value) {
41060
+ var t = this._tables.get(tableId);
41061
+ if (!t)
41062
+ return false;
41063
+ t.handleCellEdit(fieldKey, rowIndex, value);
41064
+ return true;
41065
+ };
41066
+ AssistantClient.prototype.addTableRow = function (tableId) {
41067
+ var t = this._tables.get(tableId);
41068
+ if (!t)
41069
+ return false;
41070
+ t.handleAddRow();
41071
+ return true;
41072
+ };
41073
+ AssistantClient.prototype.deleteTableRow = function (tableId, rowIndex) {
41074
+ var t = this._tables.get(tableId);
41075
+ if (!t)
41076
+ return false;
41077
+ t.handleDeleteRow(rowIndex);
41078
+ return true;
41027
41079
  };
41028
41080
  return AssistantClient;
41029
41081
  }());
@@ -41059,30 +41111,31 @@ function preOpenIOSWindows(actions) {
41059
41111
  }
41060
41112
  function Form(_a) {
41061
41113
  var _this = this;
41062
- var _b;
41063
- var _internalId = _a._internalId, _c = _a._isAuthLoading, _isAuthLoading = _c === void 0 ? false : _c, _d = _a._bypassCDN, _bypassCDN = _d === void 0 ? false : _d, _e = _a._draft, _draft = _e === void 0 ? false : _e, _f = _a._pollFuserData, _pollFuserData = _f === void 0 ? false : _f, formIdProp = _a.formId, // The 'live' env slug
41064
- _g = _a.onChange, // The 'live' env slug
41065
- onChange = _g === void 0 ? null : _g, _h = _a.onLoad, onLoad = _h === void 0 ? null : _h, _j = _a.onFormLoad, onFormLoad = _j === void 0 ? null : _j, _k = _a.onFormComplete, onFormComplete = _k === void 0 ? null : _k, _l = _a.onSubmit, onSubmit = _l === void 0 ? null : _l, _m = _a.onError, onError = _m === void 0 ? null : _m, _o = _a.onView, onView = _o === void 0 ? null : _o, _p = _a.onAction, onAction = _p === void 0 ? null : _p, _q = _a.onViewElements, onViewElements = _q === void 0 ? [] : _q, _r = _a.saveUrlParams, saveUrlParams = _r === void 0 ? false : _r, _s = _a.hideTestUI, hideTestUI = _s === void 0 ? false : _s, _t = _a.initialValues, initialValues = _t === void 0 ? {} : _t, _u = _a.initialStepId, initialStepId = _u === void 0 ? '' : _u, language = _a.language, initialLoader = _a.initialLoader, popupOptions = _a.popupOptions, _v = _a.elementProps, elementProps = _v === void 0 ? {} : _v, contextRef = _a.contextRef, _w = _a.formProps, formProps = _w === void 0 ? {} : _w, _x = _a.customComponents, customComponents = _x === void 0 ? {} : _x, _y = _a.style, style = _y === void 0 ? {} : _y, _z = _a.className, className = _z === void 0 ? '' : _z, children = _a.children, _0 = _a.readOnly, readOnly = _0 === void 0 ? false : _0, hashNavigation = _a.hashNavigation;
41066
- var _1 = __read(React.useState(''), 2), formName = _1[0], setFormName = _1[1];
41067
- var _2 = __read(React.useState(formIdProp), 2), formId = _2[0], setFormId = _2[1];
41114
+ var _b, _c;
41115
+ var _internalId = _a._internalId, _d = _a._isAuthLoading, _isAuthLoading = _d === void 0 ? false : _d, _e = _a._bypassCDN, _bypassCDN = _e === void 0 ? false : _e, _f = _a._draft, _draft = _f === void 0 ? false : _f, _g = _a._pollFuserData, _pollFuserData = _g === void 0 ? false : _g, formIdProp = _a.formId, // The 'live' env slug
41116
+ _h = _a.onChange, // The 'live' env slug
41117
+ onChange = _h === void 0 ? null : _h, _j = _a.onLoad, onLoad = _j === void 0 ? null : _j, _k = _a.onFormLoad, onFormLoad = _k === void 0 ? null : _k, _l = _a.onFormComplete, onFormComplete = _l === void 0 ? null : _l, _m = _a.onSubmit, onSubmit = _m === void 0 ? null : _m, _o = _a.onError, onError = _o === void 0 ? null : _o, _p = _a.onView, onView = _p === void 0 ? null : _p, _q = _a.onAction, onAction = _q === void 0 ? null : _q, _r = _a.onViewElements, onViewElements = _r === void 0 ? [] : _r, _s = _a.saveUrlParams, saveUrlParams = _s === void 0 ? false : _s, _t = _a.hideTestUI, hideTestUI = _t === void 0 ? false : _t, _u = _a.initialValues, initialValues = _u === void 0 ? {} : _u, _v = _a.initialStepId, initialStepId = _v === void 0 ? '' : _v, language = _a.language, initialLoader = _a.initialLoader, popupOptions = _a.popupOptions, _w = _a.elementProps, elementProps = _w === void 0 ? {} : _w, contextRef = _a.contextRef, _x = _a.formProps, formProps = _x === void 0 ? {} : _x, _y = _a.customComponents, customComponents = _y === void 0 ? {} : _y, _z = _a.style, style = _z === void 0 ? {} : _z, _0 = _a.className, className = _0 === void 0 ? '' : _0, children = _a.children, _1 = _a.readOnly, readOnly = _1 === void 0 ? false : _1, hashNavigation = _a.hashNavigation;
41118
+ var _2 = __read(React.useState(''), 2), formName = _2[0], setFormName = _2[1];
41119
+ var _3 = __read(React.useState(formIdProp), 2), formId = _3[0], setFormId = _3[1];
41068
41120
  var clientRef = React.useRef(undefined);
41069
41121
  var client = clientRef.current;
41122
+ var assistantClientRef = React.useRef(undefined);
41070
41123
  var navigate = useNavigate();
41071
41124
  var location = useLocation();
41072
41125
  var session = initState.formSessions[formId];
41073
- var _3 = __read(React.useState(false), 2), autoValidate = _3[0], setAutoValidate = _3[1];
41074
- var _4 = __read(React.useState({}), 2), steps = _4[0], setSteps = _4[1];
41075
- var _5 = __read(React.useState(null), 2), activeStep = _5[0], setActiveStep = _5[1];
41076
- var _6 = __read(React.useState(''), 2), stepKey = _6[0], setStepKey = _6[1];
41077
- var _7 = __read(React.useState(false), 2), shouldScrollToTop = _7[0], setShouldScrollToTop = _7[1];
41126
+ var _4 = __read(React.useState(false), 2), autoValidate = _4[0], setAutoValidate = _4[1];
41127
+ var _5 = __read(React.useState({}), 2), steps = _5[0], setSteps = _5[1];
41128
+ var _6 = __read(React.useState(null), 2), activeStep = _6[0], setActiveStep = _6[1];
41129
+ var _7 = __read(React.useState(''), 2), stepKey = _7[0], setStepKey = _7[1];
41130
+ var _8 = __read(React.useState(false), 2), shouldScrollToTop = _8[0], setShouldScrollToTop = _8[1];
41078
41131
  var pendingScrollRef = React.useRef(null);
41079
- var _8 = __read(React.useState(false), 2), finished = _8[0], setFinished = _8[1];
41080
- var _9 = __read(React.useState(null), 2), userProgress = _9[0], setUserProgress = _9[1];
41081
- var _10 = __read(React.useState(0), 2), curDepth = _10[0], setCurDepth = _10[1];
41082
- var _11 = __read(React.useState(0), 2), maxDepth = _11[0], setMaxDepth = _11[1];
41132
+ var _9 = __read(React.useState(false), 2), finished = _9[0], setFinished = _9[1];
41133
+ var _10 = __read(React.useState(null), 2), userProgress = _10[0], setUserProgress = _10[1];
41134
+ var _11 = __read(React.useState(0), 2), curDepth = _11[0], setCurDepth = _11[1];
41135
+ var _12 = __read(React.useState(0), 2), maxDepth = _12[0], setMaxDepth = _12[1];
41083
41136
  // No state since off reason is set in two locations almost simultaneously
41084
41137
  var formOffReason = React.useRef('');
41085
- var _12 = __read(React.useState({
41138
+ var _13 = __read(React.useState({
41086
41139
  readOnly: readOnly,
41087
41140
  errorType: 'html5',
41088
41141
  autocomplete: 'on',
@@ -41101,21 +41154,21 @@ function Form(_a) {
41101
41154
  assistantEnabled: false,
41102
41155
  assistantColor: '#6b7280',
41103
41156
  assistantWorkflowActions: []
41104
- }), 2), formSettings = _12[0], setFormSettings = _12[1];
41157
+ }), 2), formSettings = _13[0], setFormSettings = _13[1];
41105
41158
  var trackHashes = React.useRef(false);
41106
41159
  var curLanguage = React.useRef(undefined);
41107
- var _13 = __read(React.useState([]), 2), fieldKeys = _13[0], setFieldKeys = _13[1];
41108
- var _14 = __read(React.useState({}), 2), hiddenFields = _14[0], setHiddenFields = _14[1];
41160
+ var _14 = __read(React.useState([]), 2), fieldKeys = _14[0], setFieldKeys = _14[1];
41161
+ var _15 = __read(React.useState({}), 2), hiddenFields = _15[0], setHiddenFields = _15[1];
41109
41162
  // Array of 2 elements. First is field whitelist, second is field blacklist
41110
- var _15 = __read(React.useState([null, null]), 2), allowLists = _15[0], setAllowLists = _15[1];
41111
- var _16 = __read(React.useState(), 2), connectorFields = _16[0], setConnectorFields = _16[1];
41112
- var _17 = __read(React.useState([]), 2), logicRules = _17[0], setLogicRules = _17[1];
41113
- var _18 = __read(React.useState([]), 2), sharedCodes = _18[0], setSharedCodes = _18[1];
41114
- var _19 = __read(React.useState({}), 2), inlineErrors = _19[0], setInlineErrors = _19[1];
41115
- var _20 = __read(React.useState(false), 2), setRepeatChanged = _20[1];
41116
- var _21 = __read(React.useState(null), 2), integrations = _21[0], setIntegrations = _21[1];
41163
+ var _16 = __read(React.useState([null, null]), 2), allowLists = _16[0], setAllowLists = _16[1];
41164
+ var _17 = __read(React.useState(), 2), connectorFields = _17[0], setConnectorFields = _17[1];
41165
+ var _18 = __read(React.useState([]), 2), logicRules = _18[0], setLogicRules = _18[1];
41166
+ var _19 = __read(React.useState([]), 2), sharedCodes = _19[0], setSharedCodes = _19[1];
41167
+ var _20 = __read(React.useState({}), 2), inlineErrors = _20[0], setInlineErrors = _20[1];
41168
+ var _21 = __read(React.useState(false), 2), setRepeatChanged = _21[1];
41169
+ var _22 = __read(React.useState(null), 2), integrations = _22[0], setIntegrations = _22[1];
41117
41170
  var flowCompleted = React.useRef(false);
41118
- var _22 = __read(React.useState(''), 2), requiredStepAction = _22[0], setRequiredStepAction = _22[1];
41171
+ var _23 = __read(React.useState(''), 2), requiredStepAction = _23[0], setRequiredStepAction = _23[1];
41119
41172
  var formLoadRan = React.useRef(false);
41120
41173
  // Lookup utility to find a servar (server field definition) by its key.
41121
41174
  // Needed because servars are nested within steps and may be across multiple steps,
@@ -41176,25 +41229,25 @@ function Form(_a) {
41176
41229
  ? 'Some file uploads are still pending. Please check your connection and try again.'
41177
41230
  : 'A file upload is still pending. Please check your connection and try again.');
41178
41231
  };
41179
- var _23 = __read(React.useState(function () {
41232
+ var _24 = __read(React.useState(function () {
41180
41233
  return getViewport(formSettings.mobileBreakpoint);
41181
- }), 2), viewport = _23[0], setViewport = _23[1];
41234
+ }), 2), viewport = _24[0], setViewport = _24[1];
41182
41235
  var prevAuthId = usePrevious(authState.authId);
41183
41236
  var prevStepKey = usePrevious(stepKey);
41184
41237
  // Set to trigger conditional renders on field value updates, no need to use the value itself
41185
- var _24 = __read(React.useState({ v: 1 }), 2), render = _24[0], setRender = _24[1];
41186
- var _25 = __read(React.useState(false), 2), showQuikFormViewer = _25[0], setShowQuikFormViewer = _25[1];
41187
- var _26 = __read(React.useState(''), 2), quikHTMLPayload = _26[0], setQuikHTMLPayload = _26[1];
41188
- var _27 = useFlinksConnect(), openFlinksConnect = _27.openFlinksConnect, flinksFrame = _27.flinksFrame;
41238
+ var _25 = __read(React.useState({ v: 1 }), 2), render = _25[0], setRender = _25[1];
41239
+ var _26 = __read(React.useState(false), 2), showQuikFormViewer = _26[0], setShowQuikFormViewer = _26[1];
41240
+ var _27 = __read(React.useState(''), 2), quikHTMLPayload = _27[0], setQuikHTMLPayload = _27[1];
41241
+ var _28 = useFlinksConnect(), openFlinksConnect = _28.openFlinksConnect, flinksFrame = _28.flinksFrame;
41189
41242
  // When the active step changes, recalculate the dimensions of the new step
41190
41243
  var stepCSS = React.useMemo(function () { return calculateStepCSS(activeStep); }, [activeStep]);
41191
- var _28 = __read(React.useState({
41244
+ var _29 = __read(React.useState({
41192
41245
  mode: 'current',
41193
41246
  isOpen: false,
41194
41247
  side: null,
41195
41248
  width: 0,
41196
41249
  isResizing: false
41197
- }), 2), assistantLayout = _28[0], setAssistantLayout = _28[1];
41250
+ }), 2), assistantLayout = _29[0], setAssistantLayout = _29[1];
41198
41251
  var handleAssistantLayoutChange = React.useCallback(function (state) { return setAssistantLayout(state); }, []);
41199
41252
  var assistantOffsetCSS = React.useMemo(function () {
41200
41253
  var _a;
@@ -41228,17 +41281,17 @@ function Form(_a) {
41228
41281
  client: client,
41229
41282
  _internalId: _internalId
41230
41283
  });
41231
- var _29 = __read(React.useState({}), 2), backNavMap = _29[0], setBackNavMap = _29[1];
41284
+ var _30 = __read(React.useState({}), 2), backNavMap = _30[0], setBackNavMap = _30[1];
41232
41285
  var updateBackNavMap = function (newNavs) {
41233
41286
  return newNavs && setBackNavMap(exports.__assign(exports.__assign({}, backNavMap), newNavs));
41234
41287
  };
41235
41288
  var formRef = React.useRef(null);
41236
- var _30 = useLoader({
41289
+ var _31 = useLoader({
41237
41290
  initialLoader: initialLoader,
41238
41291
  _isAuthLoading: _isAuthLoading,
41239
41292
  loaderBackgroundColor: stepCSS === null || stepCSS === void 0 ? void 0 : stepCSS.backgroundColor,
41240
41293
  formRef: formRef
41241
- }), clearLoaders = _30.clearLoaders, stepLoader = _30.stepLoader, buttonLoaders = _30.buttonLoaders, setLoaders = _30.setLoaders;
41294
+ }), clearLoaders = _31.clearLoaders, stepLoader = _31.stepLoader, buttonLoaders = _31.buttonLoaders, setLoaders = _31.setLoaders;
41242
41295
  // Completion loader helpers: keep the temporary completion loader scoped, reuse
41243
41296
  // designer-provided button loaders when present, and clear only our entry.
41244
41297
  var COMPLETION_LOADER_KEY = 'completionLoader';
@@ -41282,10 +41335,10 @@ function Form(_a) {
41282
41335
  return nextLoaders;
41283
41336
  });
41284
41337
  }, [setLoaders]);
41285
- var _31 = useAIExtractionToast(), currentActionExtractions = _31.currentActionExtractions, initializeActionExtractions = _31.initializeActionExtractions, updateExtractionInAction = _31.updateExtractionInAction, handleExtractionStatusUpdate = _31.handleExtractionStatusUpdate;
41286
- var _32 = useEnvelopeGenerationToast(), currentEnvelopeGeneration = _32.currentEnvelopeGeneration, initializeEnvelopeGeneration = _32.initializeEnvelopeGeneration, updateEnvelopeGeneration = _32.updateEnvelopeGeneration;
41338
+ var _32 = useAIExtractionToast(), currentActionExtractions = _32.currentActionExtractions, initializeActionExtractions = _32.initializeActionExtractions, updateExtractionInAction = _32.updateExtractionInAction, handleExtractionStatusUpdate = _32.handleExtractionStatusUpdate;
41339
+ var _33 = useEnvelopeGenerationToast(), currentEnvelopeGeneration = _33.currentEnvelopeGeneration, initializeEnvelopeGeneration = _33.initializeEnvelopeGeneration, updateEnvelopeGeneration = _33.updateEnvelopeGeneration;
41287
41340
  // Track ActionToast height for positioning WorkflowChat above it
41288
- var _33 = __read(React.useState(0), 2), actionToastHeight = _33[0], setActionToastHeight = _33[1];
41341
+ var _34 = __read(React.useState(0), 2), actionToastHeight = _34[0], setActionToastHeight = _34[1];
41289
41342
  var actionToastRef = React.useRef(null);
41290
41343
  var actionToastObserverRef = React.useRef(null);
41291
41344
  // Reset height when toast data becomes empty
@@ -41383,7 +41436,7 @@ function Form(_a) {
41383
41436
  setRequiredStepAction(requiredStepAction);
41384
41437
  }, [activeStep === null || activeStep === void 0 ? void 0 : activeStep.id]);
41385
41438
  // viewElements state
41386
- var _34 = __read(React.useState([]), 2), viewElements = _34[0], setViewElements = _34[1];
41439
+ var _35 = __read(React.useState([]), 2), viewElements = _35[0], setViewElements = _35[1];
41387
41440
  React.useEffect(function () {
41388
41441
  setViewElements(onViewElements);
41389
41442
  }, [onViewElements.length]);
@@ -41535,7 +41588,7 @@ function Form(_a) {
41535
41588
  return true;
41536
41589
  };
41537
41590
  // For audio AI only right now
41538
- var _35 = __read(React.useState(_pollFuserData), 2), pollFuserData = _35[0], setPollFuserData = _35[1];
41591
+ var _36 = __read(React.useState(_pollFuserData), 2), pollFuserData = _36[0], setPollFuserData = _36[1];
41539
41592
  usePollFuserData(pollFuserData, client, updateFieldValues);
41540
41593
  var eventCallbackMap = {
41541
41594
  change: onChange,
@@ -41690,12 +41743,6 @@ function Form(_a) {
41690
41743
  return runUserLogic('error', function () { return (exports.__assign(exports.__assign({}, props1), props2)); });
41691
41744
  };
41692
41745
  };
41693
- // keep internalState fresh
41694
- if (internalState[_internalId]) {
41695
- internalState[_internalId].setInlineErrors = setInlineErrors;
41696
- internalState[_internalId].inlineErrors = inlineErrors;
41697
- internalState[_internalId].logicRules = logicRules;
41698
- }
41699
41746
  var changeFormStep = function (newKey, oldKey, load) {
41700
41747
  var _a;
41701
41748
  var changed = changeStep(newKey, oldKey, steps, setStepKey, navigate, client, trackHashes.current);
@@ -42014,6 +42061,15 @@ function Form(_a) {
42014
42061
  }
42015
42062
  return visiblePositions;
42016
42063
  }, [activeStep, render, formSettings]);
42064
+ // keep internalState fresh
42065
+ if (internalState[_internalId]) {
42066
+ internalState[_internalId].setInlineErrors = setInlineErrors;
42067
+ internalState[_internalId].inlineErrors = inlineErrors;
42068
+ internalState[_internalId].logicRules = logicRules;
42069
+ if (visiblePositions) {
42070
+ internalState[_internalId].visiblePositions = visiblePositions;
42071
+ }
42072
+ }
42017
42073
  React.useEffect(function () {
42018
42074
  if (clientRef.current)
42019
42075
  return;
@@ -42350,7 +42406,7 @@ function Form(_a) {
42350
42406
  });
42351
42407
  }); };
42352
42408
  // usePayments (Stripe)
42353
- var _36 = __read(usePayments(), 2), getCardElement = _36[0], setCardElement = _36[1];
42409
+ var _37 = __read(usePayments(), 2), getCardElement = _37[0], setCardElement = _37[1];
42354
42410
  function setupStepPaymentMethod(formattedFields) {
42355
42411
  return __awaiter$2(this, void 0, void 0, function () {
42356
42412
  var i, field, integrationData, actionData, actionResult;
@@ -42685,7 +42741,7 @@ function Form(_a) {
42685
42741
  }
42686
42742
  return state;
42687
42743
  };
42688
- var _37 = useCheckButtonAction(setButtonLoader, clearLoaders), isButtonActionRunning = _37.isButtonActionRunning, updateButtonActionState = _37.updateButtonActionState, clearButtonActionState = _37.clearButtonActionState, setUserLogicRunning = _37.setUserLogicRunning;
42744
+ var _38 = useCheckButtonAction(setButtonLoader, clearLoaders), isButtonActionRunning = _38.isButtonActionRunning, updateButtonActionState = _38.updateButtonActionState, clearButtonActionState = _38.clearButtonActionState, setUserLogicRunning = _38.setUserLogicRunning;
42689
42745
  var buttonOnClick = function (button) { return __awaiter$2(_this, void 0, void 0, function () {
42690
42746
  var setButtonError, actions, preOpenedWindows, invalid, running, e_5;
42691
42747
  var _a;
@@ -43721,6 +43777,21 @@ function Form(_a) {
43721
43777
  }); }));
43722
43778
  }
43723
43779
  : undefined;
43780
+ if (internalState[_internalId]) {
43781
+ var callbacks = {
43782
+ buttonOnClick: buttonOnClick,
43783
+ runElementActions: runElementActions,
43784
+ tableOnClick: tableOnClick,
43785
+ changeValue: changeValue
43786
+ };
43787
+ if (assistantClientRef.current) {
43788
+ assistantClientRef.current.updateCallbacks(callbacks);
43789
+ }
43790
+ else {
43791
+ assistantClientRef.current = new AssistantClient(callbacks);
43792
+ internalState[_internalId].assistantClient = assistantClientRef.current;
43793
+ }
43794
+ }
43724
43795
  var form = {
43725
43796
  userProgress: userProgress,
43726
43797
  curDepth: curDepth,
@@ -43752,14 +43823,9 @@ function Form(_a) {
43752
43823
  setCardElement: setCardElement,
43753
43824
  visiblePositions: visiblePositions,
43754
43825
  calendly: (_b = integrations === null || integrations === void 0 ? void 0 : integrations.calendly) === null || _b === void 0 ? void 0 : _b.metadata,
43755
- featheryContext: getFormContext(_internalId)
43826
+ featheryContext: getFormContext(_internalId),
43827
+ assistantClient: (_c = internalState[_internalId]) === null || _c === void 0 ? void 0 : _c.assistantClient
43756
43828
  };
43757
- if (internalState[_internalId]) {
43758
- internalState[_internalId].assistantClient = new AssistantClient({
43759
- buttonOnClick: buttonOnClick,
43760
- runElementActions: runElementActions
43761
- });
43762
- }
43763
43829
  // If form was completed in a previous session and edits are disabled,
43764
43830
  // consider the form finished
43765
43831
  var anyFinished = finished || ((session === null || session === void 0 ? void 0 : session.form_completed) && !formSettings.allowEdits);
@@ -45001,7 +45067,7 @@ function loadSegment(segmentConfig, queue) {
45001
45067
  case 0:
45002
45068
  _a.trys.push([0, 2, , 3]);
45003
45069
  return [4 /*yield*/, Promise.resolve().then(function () { return require(
45004
- /* webpackChunkName: "segment" */ './fthry_index.B76xVeoK.js'); }).then(function (n) { return n.index; })];
45070
+ /* webpackChunkName: "segment" */ './fthry_index.B490AqCR.js'); }).then(function (n) { return n.index; })];
45005
45071
  case 1:
45006
45072
  (AnalyticsBrowserClass = (_a.sent()).AnalyticsBrowser);
45007
45073
  return [3 /*break*/, 3];
@@ -47636,9 +47702,9 @@ function init(sdkKey, options) {
47636
47702
  if (runningInClient()) {
47637
47703
  // Dynamically load libraries that must be client side
47638
47704
  global.scriptjsLoadPromise = Promise.resolve().then(function () { return require(
47639
- /* webpackChunkName: "scriptjs" */ './fthry_script.DrFnB8ud.js'); }).then(function (n) { return n.script; });
47705
+ /* webpackChunkName: "scriptjs" */ './fthry_script.tMNEKNS0.js'); }).then(function (n) { return n.script; });
47640
47706
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
47641
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.D6aR0hiT.js'); }).then(function (n) { return n.webfontloader; });
47707
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.BccGkoV1.js'); }).then(function (n) { return n.webfontloader; });
47642
47708
  // Client-side tracking logic
47643
47709
  if (initState.userTracking === 'cookie') {
47644
47710
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -47825,7 +47891,7 @@ function loadCompletedSteps(client) {
47825
47891
  });
47826
47892
  }
47827
47893
  function logFeatheryBadge() {
47828
- console.log('%c Feathery %c v' + "2.43.0" + ' ', // replaced with real version during build
47894
+ console.log('%c Feathery %c v' + "2.45.0" + ' ', // replaced with real version during build
47829
47895
  '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;');
47830
47896
  }
47831
47897
 
@@ -49340,64 +49406,64 @@ breakpoint) {
49340
49406
 
49341
49407
  var fieldLoaders = {
49342
49408
  AddressLine1: function () {
49343
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.BNFRKqrl.js'); });
49409
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.CCAjA-GM.js'); });
49344
49410
  },
49345
49411
  ButtonGroupField: function () {
49346
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.wTd_xpVX.js'); });
49412
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.C3_3Pwba.js'); });
49347
49413
  },
49348
49414
  CheckboxField: function () {
49349
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.B7Slrn_2.js'); });
49415
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.Cyo-XM28.js'); });
49350
49416
  },
49351
49417
  CheckboxGroupField: function () {
49352
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.Cj8NIIWS.js'); });
49418
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.CdveGKXm.js'); });
49353
49419
  },
49354
49420
  ColorPickerField: function () {
49355
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.KMyCBmte.js'); });
49421
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.DMtFsERM.js'); });
49356
49422
  },
49357
49423
  CustomField: function () {
49358
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.5oiWIOUK.js'); });
49424
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.BkUaB2ep.js'); });
49359
49425
  },
49360
49426
  DateSelectorField: function () {
49361
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.B-QAg85r.js'); });
49427
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.DfW7mZvC.js'); });
49362
49428
  },
49363
49429
  DropdownField: function () {
49364
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.BPu5GDF3.js'); });
49430
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.CK7AyNj-.js'); });
49365
49431
  },
49366
49432
  DropdownMultiField: function () {
49367
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.CsV6zv_0.js'); });
49433
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.Bz8jOUz8.js'); });
49368
49434
  },
49369
49435
  FileUploadField: function () {
49370
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.BYJ0Cjz1.js'); });
49436
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.B1Eop7YX.js'); });
49371
49437
  },
49372
49438
  MatrixField: function () {
49373
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.DoliEMOD.js'); });
49439
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.h6YgYU9U.js'); });
49374
49440
  },
49375
49441
  PasswordField: function () {
49376
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.D6PlFvY8.js'); });
49442
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.egNqBHHX.js'); });
49377
49443
  },
49378
49444
  PaymentMethodField: function () {
49379
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.BMABompY.js'); });
49445
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.CoyAoL1E.js'); });
49380
49446
  },
49381
- PhoneField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.Crv5Oqdb.js'); }); },
49447
+ PhoneField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DWqC5u1r.js'); }); },
49382
49448
  PinInputField: function () {
49383
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.D7jBFEkz.js'); });
49449
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.CPY3r_AI.js'); });
49384
49450
  },
49385
- QRScanner: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.DcnmaMvN.js'); }); },
49451
+ QRScanner: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.B1B09obP.js'); }); },
49386
49452
  RadioButtonGroupField: function () {
49387
49453
  return Promise.resolve().then(function () { return require(
49388
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CMRH7foG.js'); });
49454
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.mST6-9JW.js'); });
49389
49455
  },
49390
49456
  RatingField: function () {
49391
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.Cj3i1JIs.js'); });
49457
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.RhMho_qJ.js'); });
49392
49458
  },
49393
49459
  SignatureField: function () {
49394
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.ecHJPvgK.js'); });
49460
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.r4vMrBms.js'); });
49395
49461
  },
49396
49462
  SliderField: function () {
49397
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.x_Q9efXs.js'); });
49463
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.dJ1e0A0z.js'); });
49398
49464
  },
49399
- TextField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index._pqB5lCu.js'); }); },
49400
- TextArea: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.B4qsX_2B.js'); }); }
49465
+ TextField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.CX2hoNP2.js'); }); },
49466
+ TextArea: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.CZvkZw_L.js'); }); }
49401
49467
  };
49402
49468
  var getPositionKey = function (element) { var _a; return ((_a = element.position) === null || _a === void 0 ? void 0 : _a.join(',')) || 'root'; };
49403
49469
  // Share the resolved component between preload and render. A separate
@@ -50645,7 +50711,7 @@ function ElementSkeleton(_a) {
50645
50711
  }
50646
50712
  var templateObject_1;
50647
50713
 
50648
- var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.BVLMhJHP.js'); }); });
50714
+ var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.B4GgIpQf.js'); }); });
50649
50715
  var Basic = {
50650
50716
  ImageElement: ImageElement,
50651
50717
  VideoElement: VideoElement,
@@ -50995,8 +51061,12 @@ exports.formatDateString = formatDateString;
50995
51061
  exports.from = from;
50996
51062
  exports.getCookie = getCookie;
50997
51063
  exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
51064
+ exports.getDefaultFieldValue = getDefaultFieldValue;
50998
51065
  exports.getFieldValue = getFieldValue$1;
50999
51066
  exports.getFieldValues = getFieldValues;
51067
+ exports.getPositionKey = getPositionKey$1;
51068
+ exports.getRepeatedContainer = getRepeatedContainer;
51069
+ exports.getRepeatedContainers = getRepeatedContainers;
51000
51070
  exports.getStripe = getStripe;
51001
51071
  exports.hash = hash;
51002
51072
  exports.hoverStylesGuard = hoverStylesGuard;
@@ -51007,6 +51077,7 @@ exports.initInfo = initInfo;
51007
51077
  exports.initState = initState;
51008
51078
  exports.internalState = internalState;
51009
51079
  exports.iosScrollOnFocus = iosScrollOnFocus;
51080
+ exports.isButtonDisabled = isButtonDisabled;
51010
51081
  exports.isEmptyArray = isEmptyArray;
51011
51082
  exports.isMobile = isMobile;
51012
51083
  exports.isNum = isNum;