@remoteoss/remote-flows 0.4.0-alpha.2 → 0.4.0-alpha.21

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 (412) hide show
  1. package/README.md +82 -8
  2. package/dist/chunk-32RYPLZK.js +2 -0
  3. package/dist/chunk-32RYPLZK.js.map +1 -0
  4. package/dist/chunk-3BIRQAED.js +2 -0
  5. package/dist/chunk-3BIRQAED.js.map +1 -0
  6. package/dist/chunk-3HPG2L62.js +2 -0
  7. package/dist/chunk-3HPG2L62.js.map +1 -0
  8. package/dist/chunk-3IE2B2UE.js +2 -0
  9. package/dist/chunk-3IE2B2UE.js.map +1 -0
  10. package/dist/chunk-3NZ6PO4D.js +2 -0
  11. package/dist/chunk-3NZ6PO4D.js.map +1 -0
  12. package/dist/chunk-3QGKRPQ6.js +2 -0
  13. package/dist/chunk-3QGKRPQ6.js.map +1 -0
  14. package/dist/chunk-3R33SVSF.js +2 -0
  15. package/dist/chunk-3R33SVSF.js.map +1 -0
  16. package/dist/{chunk-WRDKLT4N.js → chunk-3ZWDIEEM.js} +2 -2
  17. package/dist/{chunk-KQ6TGZJS.js → chunk-5SMMQQXP.js} +2 -2
  18. package/dist/chunk-5SMMQQXP.js.map +1 -0
  19. package/dist/chunk-63BYEK44.js +2 -0
  20. package/dist/chunk-63BYEK44.js.map +1 -0
  21. package/dist/chunk-6653VQAG.js +2 -0
  22. package/dist/chunk-6653VQAG.js.map +1 -0
  23. package/dist/chunk-7TOZZQQJ.js +2 -0
  24. package/dist/chunk-7TOZZQQJ.js.map +1 -0
  25. package/dist/chunk-7ZH23EMZ.js +2 -0
  26. package/dist/chunk-7ZH23EMZ.js.map +1 -0
  27. package/dist/chunk-AIEAUPO6.js +2 -0
  28. package/dist/chunk-AIEAUPO6.js.map +1 -0
  29. package/dist/chunk-ARYI3WUN.js +2 -0
  30. package/dist/chunk-ARYI3WUN.js.map +1 -0
  31. package/dist/chunk-BF7QENCN.js +2 -0
  32. package/dist/chunk-BF7QENCN.js.map +1 -0
  33. package/dist/chunk-CEIK7DGY.js +2 -0
  34. package/dist/chunk-CEIK7DGY.js.map +1 -0
  35. package/dist/{chunk-A4RX3KRZ.js → chunk-CFIJKJXD.js} +2 -2
  36. package/dist/chunk-CSU6IQX3.js +2 -0
  37. package/dist/chunk-CSU6IQX3.js.map +1 -0
  38. package/dist/chunk-CTTXXEWI.js +2 -0
  39. package/dist/chunk-CTTXXEWI.js.map +1 -0
  40. package/dist/chunk-DOLJU76M.js +2 -0
  41. package/dist/chunk-DOLJU76M.js.map +1 -0
  42. package/dist/chunk-EEAMZPP6.js +2 -0
  43. package/dist/{chunk-GMGKIQLI.js.map → chunk-EEAMZPP6.js.map} +1 -1
  44. package/dist/chunk-EPLIVM3Y.js +2 -0
  45. package/dist/chunk-EPLIVM3Y.js.map +1 -0
  46. package/dist/chunk-ETMTVNOU.js +2 -0
  47. package/dist/chunk-ETMTVNOU.js.map +1 -0
  48. package/dist/chunk-EV5YPN4F.js +2 -0
  49. package/dist/chunk-EV5YPN4F.js.map +1 -0
  50. package/dist/chunk-FB5J7SRP.js +2 -0
  51. package/dist/chunk-FB5J7SRP.js.map +1 -0
  52. package/dist/chunk-FCHRSRS6.js +2 -0
  53. package/dist/chunk-FCHRSRS6.js.map +1 -0
  54. package/dist/chunk-FUIQ7D6L.js +2 -0
  55. package/dist/chunk-FUIQ7D6L.js.map +1 -0
  56. package/dist/chunk-GEYFQVQI.js +2 -0
  57. package/dist/{chunk-56BNVYTD.js.map → chunk-GEYFQVQI.js.map} +1 -1
  58. package/dist/chunk-ISOKYXYN.js +2 -0
  59. package/dist/chunk-ISOKYXYN.js.map +1 -0
  60. package/dist/{chunk-D3SD6MMV.js → chunk-JXCJLQRA.js} +2 -2
  61. package/dist/chunk-JXCJLQRA.js.map +1 -0
  62. package/dist/chunk-KFVOK5X5.js +2 -0
  63. package/dist/chunk-KFVOK5X5.js.map +1 -0
  64. package/dist/chunk-KM4XVL2X.js +2 -0
  65. package/dist/chunk-KM4XVL2X.js.map +1 -0
  66. package/dist/{chunk-5ETXP2QF.js → chunk-KPHSEIR3.js} +2 -2
  67. package/dist/{chunk-OLJ2S6A6.js → chunk-KSHK3ZPX.js} +2 -2
  68. package/dist/chunk-KSHK3ZPX.js.map +1 -0
  69. package/dist/chunk-LFIQVLFK.js +2 -0
  70. package/dist/chunk-LFIQVLFK.js.map +1 -0
  71. package/dist/chunk-LLIGZSYY.js +2 -0
  72. package/dist/chunk-LLIGZSYY.js.map +1 -0
  73. package/dist/chunk-LPR2D3EY.js +2 -0
  74. package/dist/chunk-LPR2D3EY.js.map +1 -0
  75. package/dist/{chunk-QOMUXX6W.js → chunk-LX7QBDSF.js} +2 -2
  76. package/dist/chunk-LX7QBDSF.js.map +1 -0
  77. package/dist/{chunk-N25EBX6R.js → chunk-MH6KKP6K.js} +2 -2
  78. package/dist/{chunk-N25EBX6R.js.map → chunk-MH6KKP6K.js.map} +1 -1
  79. package/dist/chunk-MNFM2TNK.js +2 -0
  80. package/dist/chunk-MNFM2TNK.js.map +1 -0
  81. package/dist/chunk-MNO47WC2.js +2 -0
  82. package/dist/chunk-MNO47WC2.js.map +1 -0
  83. package/dist/chunk-MO7KC4HE.js +2 -0
  84. package/dist/chunk-MO7KC4HE.js.map +1 -0
  85. package/dist/{chunk-DZYFSFZ7.js → chunk-MRYRNB7Y.js} +2 -2
  86. package/dist/chunk-MSBG52WO.js +2 -0
  87. package/dist/chunk-MSBG52WO.js.map +1 -0
  88. package/dist/chunk-N6NYXAXH.js +2 -0
  89. package/dist/chunk-N6NYXAXH.js.map +1 -0
  90. package/dist/chunk-O53436KO.js +2 -0
  91. package/dist/chunk-O53436KO.js.map +1 -0
  92. package/dist/chunk-P37U34EQ.js +2 -0
  93. package/dist/chunk-PGWKJ6FK.js +2 -0
  94. package/dist/chunk-PGWKJ6FK.js.map +1 -0
  95. package/dist/chunk-PJBAQZ6G.js +2 -0
  96. package/dist/chunk-PJBAQZ6G.js.map +1 -0
  97. package/dist/chunk-PJCUSCO4.js +2 -0
  98. package/dist/{chunk-MESREYTZ.js.map → chunk-PJCUSCO4.js.map} +1 -1
  99. package/dist/chunk-PWUYHFON.js +2 -0
  100. package/dist/chunk-PWUYHFON.js.map +1 -0
  101. package/dist/chunk-Q23DM4O3.js +2 -0
  102. package/dist/chunk-Q23DM4O3.js.map +1 -0
  103. package/dist/chunk-QW4JPW6J.js +2 -0
  104. package/dist/chunk-QW4JPW6J.js.map +1 -0
  105. package/dist/chunk-RXK4RLF6.js +2 -0
  106. package/dist/chunk-RXK4RLF6.js.map +1 -0
  107. package/dist/{chunk-FZ2HS6G7.js → chunk-S4XU4SE7.js} +1 -1
  108. package/dist/chunk-S4XU4SE7.js.map +1 -0
  109. package/dist/chunk-SIC7BRJ2.js +2 -0
  110. package/dist/chunk-SIC7BRJ2.js.map +1 -0
  111. package/dist/chunk-TNF6DNGM.js +2 -0
  112. package/dist/chunk-TNF6DNGM.js.map +1 -0
  113. package/dist/{chunk-6HGUGIYJ.js → chunk-TVZAFTPT.js} +2 -2
  114. package/dist/chunk-VNSF5IOL.js +2 -0
  115. package/dist/chunk-VNSF5IOL.js.map +1 -0
  116. package/dist/{chunk-UIAP5KT2.js → chunk-WASEFJAE.js} +2 -2
  117. package/dist/chunk-WASEFJAE.js.map +1 -0
  118. package/dist/chunk-WIRFNWEU.js +2 -0
  119. package/dist/chunk-WIRFNWEU.js.map +1 -0
  120. package/dist/chunk-WKK63LAY.js +2 -0
  121. package/dist/chunk-WKK63LAY.js.map +1 -0
  122. package/dist/chunk-WVJDCDGZ.js +2 -0
  123. package/dist/chunk-WVJDCDGZ.js.map +1 -0
  124. package/dist/chunk-XIPPSRO6.js +2 -0
  125. package/dist/chunk-XIPPSRO6.js.map +1 -0
  126. package/dist/chunk-XKSOWDLS.js +2 -0
  127. package/dist/chunk-XKSOWDLS.js.map +1 -0
  128. package/dist/chunk-XMDNHTKE.js +2 -0
  129. package/dist/chunk-XMDNHTKE.js.map +1 -0
  130. package/dist/chunk-XO3JWN33.js +2 -0
  131. package/dist/{chunk-GFBF55NR.js.map → chunk-XO3JWN33.js.map} +1 -1
  132. package/dist/chunk-YJXRJTOH.js +1 -0
  133. package/dist/chunk-YNQVZYFG.js +2 -0
  134. package/dist/chunk-YNQVZYFG.js.map +1 -0
  135. package/dist/chunk-YO4OQIFP.js +2 -0
  136. package/dist/{chunk-3FVI5JIC.js.map → chunk-YO4OQIFP.js.map} +1 -1
  137. package/dist/flows/ContractAmendment/ContractAmendmentBack.d.ts +3 -2
  138. package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
  139. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +3 -3
  140. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  141. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +6 -6
  142. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  143. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +3 -3
  144. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  145. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.d.ts +3 -2
  146. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
  147. package/dist/flows/ContractAmendment/context.d.ts +6 -7
  148. package/dist/flows/ContractAmendment/context.js +1 -1
  149. package/dist/flows/ContractAmendment/hooks.d.ts +5 -6
  150. package/dist/flows/ContractAmendment/hooks.js +1 -1
  151. package/dist/flows/ContractAmendment/index.d.ts +4 -4
  152. package/dist/flows/ContractAmendment/index.js +1 -1
  153. package/dist/flows/ContractAmendment/types.d.ts +0 -2
  154. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  155. package/dist/flows/ContractAmendment/utils.js +1 -1
  156. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +2 -2
  157. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
  158. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +7 -7
  159. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  160. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +9 -6
  161. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  162. package/dist/flows/CostCalculator/CostCalculatorResetButton.d.ts +3 -2
  163. package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
  164. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.d.ts +3 -2
  165. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
  166. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +2 -2
  167. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
  168. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +2 -2
  169. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
  170. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +2 -2
  171. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
  172. package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +3 -3
  173. package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
  174. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +2 -2
  175. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
  176. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +1 -1
  177. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +2 -2
  178. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
  179. package/dist/flows/CostCalculator/api.d.ts +70 -0
  180. package/dist/flows/CostCalculator/api.js +2 -0
  181. package/dist/flows/CostCalculator/components/SalaryField.d.ts +20 -0
  182. package/dist/flows/CostCalculator/components/SalaryField.js +2 -0
  183. package/dist/flows/CostCalculator/context.d.ts +9 -7
  184. package/dist/flows/CostCalculator/context.js +1 -1
  185. package/dist/flows/CostCalculator/disclaimerUtils.js +1 -1
  186. package/dist/flows/CostCalculator/hooks.d.ts +6 -21
  187. package/dist/flows/CostCalculator/hooks.js +1 -1
  188. package/dist/flows/CostCalculator/index.d.ts +8 -3
  189. package/dist/flows/CostCalculator/index.js +1 -1
  190. package/dist/flows/CostCalculator/jsonSchema.js +1 -1
  191. package/dist/flows/CostCalculator/types.d.ts +16 -4
  192. package/dist/flows/CostCalculator/utils.d.ts +7 -4
  193. package/dist/flows/CostCalculator/utils.js +1 -1
  194. package/dist/flows/Onboarding/OnboardingFlow.d.ts +27 -14
  195. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  196. package/dist/flows/Onboarding/api.d.ts +126 -0
  197. package/dist/flows/Onboarding/api.js +2 -0
  198. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +18 -0
  199. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +2 -0
  200. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +19 -0
  201. package/dist/flows/Onboarding/components/BasicInformationStep.js +2 -0
  202. package/dist/flows/Onboarding/{BenefitsStep.d.ts → components/BenefitsStep.d.ts} +14 -8
  203. package/dist/flows/Onboarding/components/BenefitsStep.js +2 -0
  204. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +19 -0
  205. package/dist/flows/Onboarding/components/ContractDetailsStep.js +2 -0
  206. package/dist/flows/Onboarding/components/OnboardingBack.d.ts +7 -0
  207. package/dist/flows/Onboarding/components/OnboardingBack.js +2 -0
  208. package/dist/flows/Onboarding/components/OnboardingBack.js.map +1 -0
  209. package/dist/flows/Onboarding/{OnboardingForm.d.ts → components/OnboardingForm.d.ts} +8 -7
  210. package/dist/flows/Onboarding/components/OnboardingForm.js +2 -0
  211. package/dist/flows/Onboarding/components/OnboardingForm.js.map +1 -0
  212. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +23 -0
  213. package/dist/flows/Onboarding/components/OnboardingInvite.js +2 -0
  214. package/dist/flows/Onboarding/components/OnboardingInvite.js.map +1 -0
  215. package/dist/flows/Onboarding/components/OnboardingSubmit.d.ts +6 -0
  216. package/dist/flows/Onboarding/components/OnboardingSubmit.js +2 -0
  217. package/dist/flows/Onboarding/components/OnboardingSubmit.js.map +1 -0
  218. package/dist/flows/Onboarding/components/ReviewStep.d.ts +37 -0
  219. package/dist/flows/Onboarding/components/ReviewStep.js +2 -0
  220. package/dist/flows/Onboarding/components/ReviewStep.js.map +1 -0
  221. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +15 -0
  222. package/dist/flows/Onboarding/components/SaveDraftButton.js +2 -0
  223. package/dist/flows/Onboarding/components/SaveDraftButton.js.map +1 -0
  224. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +19 -0
  225. package/dist/flows/Onboarding/components/SelectCountryStep.js +2 -0
  226. package/dist/flows/Onboarding/components/SelectCountryStep.js.map +1 -0
  227. package/dist/flows/Onboarding/context.d.ts +52 -12
  228. package/dist/flows/Onboarding/context.js +1 -1
  229. package/dist/flows/Onboarding/hooks.d.ts +70 -29
  230. package/dist/flows/Onboarding/hooks.js +1 -1
  231. package/dist/flows/Onboarding/index.d.ts +17 -12
  232. package/dist/flows/Onboarding/index.js +1 -1
  233. package/dist/flows/Onboarding/json-schemas/selectCountryStep.d.ts +24 -0
  234. package/dist/flows/Onboarding/json-schemas/selectCountryStep.js +2 -0
  235. package/dist/flows/Onboarding/json-schemas/selectCountryStep.js.map +1 -0
  236. package/dist/flows/Onboarding/types.d.ts +53 -6
  237. package/dist/flows/Onboarding/utils.d.ts +22 -3
  238. package/dist/flows/Onboarding/utils.js +1 -1
  239. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +3 -3
  240. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  241. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +3 -3
  242. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  243. package/dist/flows/Termination/PaidTimeOffForm.d.ts +3 -3
  244. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  245. package/dist/flows/Termination/TerminationBack.d.ts +3 -2
  246. package/dist/flows/Termination/TerminationBack.js +1 -1
  247. package/dist/flows/Termination/TerminationDetailsForm.d.ts +3 -3
  248. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  249. package/dist/flows/Termination/TerminationFlow.d.ts +8 -6
  250. package/dist/flows/Termination/TerminationFlow.js +1 -1
  251. package/dist/flows/Termination/TerminationForm.d.ts +3 -3
  252. package/dist/flows/Termination/TerminationForm.js +1 -1
  253. package/dist/flows/Termination/TerminationSubmit.d.ts +3 -2
  254. package/dist/flows/Termination/TerminationSubmit.js +1 -1
  255. package/dist/flows/Termination/TimeOff.d.ts +4 -4
  256. package/dist/flows/Termination/TimeOff.js +1 -1
  257. package/dist/flows/Termination/context.d.ts +7 -6
  258. package/dist/flows/Termination/context.js +1 -1
  259. package/dist/flows/Termination/hooks.d.ts +5 -4
  260. package/dist/flows/Termination/hooks.js +1 -1
  261. package/dist/flows/Termination/index.d.ts +5 -3
  262. package/dist/flows/Termination/index.js +1 -1
  263. package/dist/flows/Termination/json-schemas/additionalInformation.js +1 -1
  264. package/dist/flows/Termination/json-schemas/defaultSchema.js +1 -1
  265. package/dist/flows/Termination/json-schemas/employeeComunication.js +1 -1
  266. package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
  267. package/dist/flows/Termination/json-schemas/paidTimeOff.js +1 -1
  268. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  269. package/dist/flows/Termination/json-schemas/terminationDetails.js +1 -1
  270. package/dist/flows/Termination/types.d.ts +1 -1
  271. package/dist/flows/Termination/utils.d.ts +1 -1
  272. package/dist/flows/Termination/utils.js +1 -1
  273. package/dist/flows/types.d.ts +3 -4
  274. package/dist/flows/useStepState.d.ts +19 -6
  275. package/dist/flows/useStepState.js +1 -1
  276. package/dist/flows/utils.d.ts +3 -11
  277. package/dist/flows/utils.js +1 -1
  278. package/dist/index.css +1 -1
  279. package/dist/index.css.map +1 -1
  280. package/dist/index.d.ts +26 -17
  281. package/dist/index.js +1 -1
  282. package/dist/index.js.map +1 -1
  283. package/dist/mutations-B6HWH-rZ.d.ts +22 -0
  284. package/dist/remoteFlows-DFkKjnDe.d.ts +149 -0
  285. package/dist/types-CxSFjQw5.d.ts +3 -0
  286. package/dist/{types.gen-D5alruJJ.d.ts → types.gen-DL1ycXOS.d.ts} +335 -2
  287. package/package.json +18 -3
  288. package/dist/chunk-2PXGLWCY.js +0 -2
  289. package/dist/chunk-2PXGLWCY.js.map +0 -1
  290. package/dist/chunk-2YWRQJ7P.js +0 -2
  291. package/dist/chunk-2YWRQJ7P.js.map +0 -1
  292. package/dist/chunk-36UPHOJS.js +0 -2
  293. package/dist/chunk-36UPHOJS.js.map +0 -1
  294. package/dist/chunk-3FVI5JIC.js +0 -2
  295. package/dist/chunk-56BNVYTD.js +0 -2
  296. package/dist/chunk-5CJPGBXJ.js +0 -2
  297. package/dist/chunk-5CJPGBXJ.js.map +0 -1
  298. package/dist/chunk-5OXN2O6C.js +0 -2
  299. package/dist/chunk-5OXN2O6C.js.map +0 -1
  300. package/dist/chunk-6A3F6JG6.js +0 -2
  301. package/dist/chunk-6A3F6JG6.js.map +0 -1
  302. package/dist/chunk-7CYG2RHP.js +0 -2
  303. package/dist/chunk-7CYG2RHP.js.map +0 -1
  304. package/dist/chunk-7OMSCFTM.js +0 -2
  305. package/dist/chunk-7OMSCFTM.js.map +0 -1
  306. package/dist/chunk-AYDF3IFZ.js +0 -2
  307. package/dist/chunk-BLPOQIGB.js +0 -2
  308. package/dist/chunk-BLPOQIGB.js.map +0 -1
  309. package/dist/chunk-CRHTUOZT.js +0 -2
  310. package/dist/chunk-CRHTUOZT.js.map +0 -1
  311. package/dist/chunk-D3SD6MMV.js.map +0 -1
  312. package/dist/chunk-DGPRFQYK.js +0 -2
  313. package/dist/chunk-DGPRFQYK.js.map +0 -1
  314. package/dist/chunk-DHRIURRT.js +0 -2
  315. package/dist/chunk-DHRIURRT.js.map +0 -1
  316. package/dist/chunk-EAAIAMTY.js +0 -2
  317. package/dist/chunk-EAAIAMTY.js.map +0 -1
  318. package/dist/chunk-EDNELJVE.js +0 -2
  319. package/dist/chunk-EDNELJVE.js.map +0 -1
  320. package/dist/chunk-FGBEOUQK.js +0 -1
  321. package/dist/chunk-FMT2OTOL.js +0 -2
  322. package/dist/chunk-FMT2OTOL.js.map +0 -1
  323. package/dist/chunk-FZ2HS6G7.js.map +0 -1
  324. package/dist/chunk-GFBF55NR.js +0 -2
  325. package/dist/chunk-GMGKIQLI.js +0 -2
  326. package/dist/chunk-GQD6NNYO.js +0 -2
  327. package/dist/chunk-GQD6NNYO.js.map +0 -1
  328. package/dist/chunk-GR6EY46K.js +0 -2
  329. package/dist/chunk-GR6EY46K.js.map +0 -1
  330. package/dist/chunk-HDQGO453.js +0 -2
  331. package/dist/chunk-HDQGO453.js.map +0 -1
  332. package/dist/chunk-I6NVZI7W.js +0 -2
  333. package/dist/chunk-I6NVZI7W.js.map +0 -1
  334. package/dist/chunk-IDSJI7KQ.js +0 -2
  335. package/dist/chunk-IDSJI7KQ.js.map +0 -1
  336. package/dist/chunk-J55S4SEH.js +0 -2
  337. package/dist/chunk-J55S4SEH.js.map +0 -1
  338. package/dist/chunk-JFOOILST.js +0 -2
  339. package/dist/chunk-JFOOILST.js.map +0 -1
  340. package/dist/chunk-JRQSZHUU.js +0 -2
  341. package/dist/chunk-JRQSZHUU.js.map +0 -1
  342. package/dist/chunk-KH6QS5OU.js +0 -2
  343. package/dist/chunk-KH6QS5OU.js.map +0 -1
  344. package/dist/chunk-KQ6TGZJS.js.map +0 -1
  345. package/dist/chunk-KSGPQCSG.js +0 -2
  346. package/dist/chunk-KSGPQCSG.js.map +0 -1
  347. package/dist/chunk-LCZQVL4U.js +0 -2
  348. package/dist/chunk-LCZQVL4U.js.map +0 -1
  349. package/dist/chunk-LM5GAAUB.js +0 -2
  350. package/dist/chunk-LM5GAAUB.js.map +0 -1
  351. package/dist/chunk-LMDX5IAX.js +0 -2
  352. package/dist/chunk-LMDX5IAX.js.map +0 -1
  353. package/dist/chunk-M7WCW7WD.js +0 -2
  354. package/dist/chunk-M7WCW7WD.js.map +0 -1
  355. package/dist/chunk-MESREYTZ.js +0 -2
  356. package/dist/chunk-MHKNAQLP.js +0 -2
  357. package/dist/chunk-MHKNAQLP.js.map +0 -1
  358. package/dist/chunk-OLJ2S6A6.js.map +0 -1
  359. package/dist/chunk-P2COURSU.js +0 -2
  360. package/dist/chunk-P2COURSU.js.map +0 -1
  361. package/dist/chunk-PKX5K2UY.js +0 -2
  362. package/dist/chunk-PKX5K2UY.js.map +0 -1
  363. package/dist/chunk-QOMUXX6W.js.map +0 -1
  364. package/dist/chunk-S4FKLPBB.js +0 -2
  365. package/dist/chunk-S4FKLPBB.js.map +0 -1
  366. package/dist/chunk-S56EWAS4.js +0 -2
  367. package/dist/chunk-S56EWAS4.js.map +0 -1
  368. package/dist/chunk-SMHHCUP4.js +0 -2
  369. package/dist/chunk-SMHHCUP4.js.map +0 -1
  370. package/dist/chunk-TPPGI73P.js +0 -2
  371. package/dist/chunk-TPPGI73P.js.map +0 -1
  372. package/dist/chunk-U25ZZ3LM.js +0 -2
  373. package/dist/chunk-U25ZZ3LM.js.map +0 -1
  374. package/dist/chunk-UIAP5KT2.js.map +0 -1
  375. package/dist/chunk-WQHKB5T7.js +0 -2
  376. package/dist/chunk-WQHKB5T7.js.map +0 -1
  377. package/dist/chunk-WS3C3WIJ.js +0 -2
  378. package/dist/chunk-WS3C3WIJ.js.map +0 -1
  379. package/dist/chunk-XLFHHYVS.js +0 -2
  380. package/dist/chunk-XLFHHYVS.js.map +0 -1
  381. package/dist/chunk-Y477IGTZ.js +0 -2
  382. package/dist/chunk-Y477IGTZ.js.map +0 -1
  383. package/dist/chunk-YOC3VDC7.js +0 -2
  384. package/dist/chunk-YOC3VDC7.js.map +0 -1
  385. package/dist/flows/Onboarding/BasicInformationStep.d.ts +0 -15
  386. package/dist/flows/Onboarding/BasicInformationStep.js +0 -2
  387. package/dist/flows/Onboarding/BenefitsStep.js +0 -2
  388. package/dist/flows/Onboarding/ContractDetailsStep.d.ts +0 -15
  389. package/dist/flows/Onboarding/ContractDetailsStep.js +0 -2
  390. package/dist/flows/Onboarding/OnboardingBack.d.ts +0 -5
  391. package/dist/flows/Onboarding/OnboardingBack.js +0 -2
  392. package/dist/flows/Onboarding/OnboardingForm.js +0 -2
  393. package/dist/flows/Onboarding/OnboardingInvite.d.ts +0 -11
  394. package/dist/flows/Onboarding/OnboardingInvite.js +0 -2
  395. package/dist/flows/Onboarding/OnboardingSubmit.d.ts +0 -5
  396. package/dist/flows/Onboarding/OnboardingSubmit.js +0 -2
  397. package/dist/mutations-v9H353tz.d.ts +0 -10
  398. package/dist/remoteFlows-CswYencu.d.ts +0 -116
  399. /package/dist/{chunk-WRDKLT4N.js.map → chunk-3ZWDIEEM.js.map} +0 -0
  400. /package/dist/{chunk-A4RX3KRZ.js.map → chunk-CFIJKJXD.js.map} +0 -0
  401. /package/dist/{chunk-5ETXP2QF.js.map → chunk-KPHSEIR3.js.map} +0 -0
  402. /package/dist/{chunk-DZYFSFZ7.js.map → chunk-MRYRNB7Y.js.map} +0 -0
  403. /package/dist/{chunk-AYDF3IFZ.js.map → chunk-P37U34EQ.js.map} +0 -0
  404. /package/dist/{chunk-6HGUGIYJ.js.map → chunk-TVZAFTPT.js.map} +0 -0
  405. /package/dist/{chunk-FGBEOUQK.js.map → chunk-YJXRJTOH.js.map} +0 -0
  406. /package/dist/flows/{Onboarding/BasicInformationStep.js.map → CostCalculator/api.js.map} +0 -0
  407. /package/dist/flows/{Onboarding/BenefitsStep.js.map → CostCalculator/components/SalaryField.js.map} +0 -0
  408. /package/dist/flows/Onboarding/{ContractDetailsStep.js.map → api.js.map} +0 -0
  409. /package/dist/flows/Onboarding/{OnboardingBack.js.map → components/AnnualGrossSalary.js.map} +0 -0
  410. /package/dist/flows/Onboarding/{OnboardingForm.js.map → components/BasicInformationStep.js.map} +0 -0
  411. /package/dist/flows/Onboarding/{OnboardingInvite.js.map → components/BenefitsStep.js.map} +0 -0
  412. /package/dist/flows/Onboarding/{OnboardingSubmit.js.map → components/ContractDetailsStep.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/button.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90',\n outline: 'border border-input bg-background shadow-xs',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-link-button-primary underline-offset-4 hover:underline button-link',\n },\n size: {\n default: 'h-9 px-4 py-7 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n link: 'px-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(\n buttonVariants({ variant, size, className }),\n 'RemoteFlows__Button',\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"mappings":"gFAAA,OAAS,QAAAA,MAAY,uBACrB,OAAS,OAAAC,MAA8B,2BACvC,UAAYC,MAAW,QAIvB,IAAMC,EAAiBC,EACrB,yVACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mEACF,YACE,8DACF,QAAS,8CACT,UACE,yEACF,MAAO,+CACP,KAAM,yEACR,EACA,KAAM,CACJ,QAAS,gCACT,GAAI,gDACJ,GAAI,uCACJ,KAAM,SACN,KAAM,MACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CAGH,OACE,gBAHWD,EAAUE,EAAO,SAG3B,CACC,YAAU,SACV,UAAWC,EACTT,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,EAC3C,qBACF,EACC,GAAGI,EACN,CAEJ,CAtBSG,EAAAR,EAAA","names":["Slot","cva","React","buttonVariants","cva","Button","className","variant","size","asChild","props","Slot","cn","__name"]}
1
+ {"version":3,"sources":["../src/components/ui/button.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90',\n outline: 'border border-input bg-background shadow-xs',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-link-button-primary underline-offset-4 hover:underline button-link',\n },\n size: {\n default: 'h-9 px-4 py-7 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n link: 'px-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(\n buttonVariants({ variant, size, className }),\n 'RemoteFlows__Button',\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"mappings":"gFAAA,OAAS,QAAAA,MAAY,uBACrB,OAAS,OAAAC,MAA8B,2BAgDnC,cAAAC,MAAA,oBA3CJ,IAAMC,EAAiBC,EACrB,yVACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mEACF,YACE,8DACF,QAAS,8CACT,UACE,yEACF,MAAO,+CACP,KAAM,yEACR,EACA,KAAM,CACJ,QAAS,gCACT,GAAI,gDACJ,GAAI,uCACJ,KAAM,SACN,KAAM,MACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CAGH,OACER,EAHWO,EAAUE,EAAO,SAG3B,CACC,YAAU,SACV,UAAWC,EACTT,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,EAC3C,qBACF,EACC,GAAGI,EACN,CAEJ,CAtBSG,EAAAR,EAAA","names":["Slot","cva","jsx","buttonVariants","cva","Button","className","variant","size","asChild","props","Slot","cn","__name"]}
@@ -0,0 +1,2 @@
1
+ import{a as m}from"./chunk-63BYEK44.js";import{b as a}from"./chunk-PGWKJ6FK.js";import{b as t}from"./chunk-QW4JPW6J.js";import{d as s}from"./chunk-MH6KKP6K.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function P({components:d,onSubmit:l,onError:i,onSuccess:f}){let{onboardingBag:o}=a(),p=o.fields??[],c=s(p,o.initialValues.benefits);return E(m,{defaultValues:c,components:d,onSubmit:e(async n=>{try{await l?.(n);let r=await o.onSubmit(n);if(r?.data){await f?.(r.data),o?.next();return}if(r?.error){let u=t(r?.fieldErrors||[],o.meta?.fields?.benefits);i?.({error:r.error,rawError:r.rawError,fieldErrors:u})}}catch(r){i?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit")})}e(P,"BenefitsStep");export{P as a};
2
+ //# sourceMappingURL=chunk-ISOKYXYN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/components/BenefitsStep.tsx"],"sourcesContent":["import { Components } from '@/src/types/remoteFlows';\nimport { OnboardingForm } from '@/src/flows/Onboarding/components/OnboardingForm';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { SuccessResponse } from '@/src/client';\nimport { getInitialValues } from '@/src/components/form/utils';\nimport { BenefitsFormPayload } from '@/src/flows/Onboarding/types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport {\n NormalizedFieldError,\n normalizeFieldErrors,\n} from '@/src/lib/mutations';\n\ntype BenefitsStepProps = {\n components?: Components;\n /**\n * Callback function to be called when the benefits form is submitted.\n * It can be used to perform any additional validation or processing before\n * the onboarding moves to the last step.\n * @param values\n * @returns\n */\n onSubmit?: (values: BenefitsFormPayload) => void | Promise<void>;\n /**\n * Callback function to be called when the submitting benefits form fails.\n * @param error\n * @returns\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n /**\n * Callback function to be called when benefits form is successfully submitted.\n * This function is called after the submitting benefits form is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (data: SuccessResponse) => void | Promise<void>;\n};\n\nexport function BenefitsStep({\n components,\n onSubmit,\n onError,\n onSuccess,\n}: BenefitsStepProps) {\n const { onboardingBag } = useOnboardingContext();\n const fields = onboardingBag.fields ?? [];\n const initialValues = getInitialValues(\n fields,\n onboardingBag.initialValues.benefits,\n );\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.(payload as BenefitsFormPayload);\n const response = await onboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response.data as SuccessResponse);\n onboardingBag?.next();\n return;\n }\n if (response?.error) {\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n onboardingBag.meta?.fields?.benefits,\n );\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error: unknown) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n };\n\n return (\n <OnboardingForm\n defaultValues={initialValues}\n components={components}\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"wMAwFI,cAAAA,MAAA,oBA3CG,SAASC,EAAa,CAC3B,WAAAC,EACA,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAAsB,CACpB,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAqB,EACzCC,EAASF,EAAc,QAAU,CAAC,EAClCG,EAAgBC,EACpBF,EACAF,EAAc,cAAc,QAC9B,EA+BA,OACEN,EAACW,EAAA,CACC,cAAeF,EACf,WAAYP,EACZ,SAjCiBU,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,MAAMV,IAAWU,CAA8B,EAC/C,IAAMC,EAAW,MAAMR,EAAc,SAASO,CAAO,EACrD,GAAIC,GAAU,KAAM,CAClB,MAAMT,IAAYS,EAAS,IAAuB,EAClDR,GAAe,KAAK,EACpB,MACF,CACA,GAAIQ,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BR,EAAc,MAAM,QAAQ,QAC9B,EACAF,IAAU,CACR,MAAOU,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBb,IAAU,CACR,MAAOa,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA3BqB,gBAkCnB,CAEJ,CAjDgBL,EAAAX,EAAA","names":["jsx","BenefitsStep","components","onSubmit","onError","onSuccess","onboardingBag","useOnboardingContext","fields","initialValues","getInitialValues","OnboardingForm","__name","payload","response","normalizedFieldErrors","normalizeFieldErrors","error"]}
@@ -1,2 +1,2 @@
1
- import{b as n}from"./chunk-DZYFSFZ7.js";import{a as t,b as m}from"./chunk-QOMUXX6W.js";import{a as o}from"./chunk-AYDF3IFZ.js";var a=o(({render:p})=>{let{terminationBag:e}=n(),{data:s}=t({employmentId:e.employmentId}),{data:f}=m({employmentId:e.employmentId,status:"taken"});return p({employment:s,timeoff:f})},"TimeOff");export{a};
2
- //# sourceMappingURL=chunk-D3SD6MMV.js.map
1
+ import{b as n}from"./chunk-MRYRNB7Y.js";import{a as t,b as m}from"./chunk-LX7QBDSF.js";import{a as o}from"./chunk-P37U34EQ.js";var a=o(({render:p})=>{let{terminationBag:e}=n(),{data:s}=t({employmentId:e.employmentId}),{data:f}=m({employmentId:e.employmentId,status:"taken"});return p({employment:s,timeoff:f})},"TimeOff");export{a};
2
+ //# sourceMappingURL=chunk-JXCJLQRA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Termination/TimeOff.tsx"],"sourcesContent":["import { EmploymentShowResponse, ListTimeoffResponse } from '@/src/client';\nimport { useEmploymentQuery, useTimeOffQuery } from '@/src/common/api';\nimport { useTerminationContext } from '@/src/flows/Termination/context';\nimport React from 'react';\n\nexport const TimeOff = ({\n render,\n}: {\n render: (props: {\n employment: EmploymentShowResponse | undefined;\n timeoff: ListTimeoffResponse | undefined;\n }) => React.ReactNode;\n}) => {\n const { terminationBag } = useTerminationContext();\n const { data: employment } = useEmploymentQuery({\n employmentId: terminationBag.employmentId,\n });\n\n const { data: timeoff } = useTimeOffQuery({\n employmentId: terminationBag.employmentId,\n status: 'taken',\n });\n\n return render({ employment, timeoff });\n};\n"],"mappings":"+HAKO,IAAMA,EAAUC,EAAA,CAAC,CACtB,OAAAC,CACF,IAKM,CACJ,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAC3C,CAAE,KAAMC,CAAW,EAAIC,EAAmB,CAC9C,aAAcH,EAAe,YAC/B,CAAC,EAEK,CAAE,KAAMI,CAAQ,EAAIC,EAAgB,CACxC,aAAcL,EAAe,aAC7B,OAAQ,OACV,CAAC,EAED,OAAOD,EAAO,CAAE,WAAAG,EAAY,QAAAE,CAAQ,CAAC,CACvC,EAnBuB","names":["TimeOff","__name","render","terminationBag","useTerminationContext","employment","useEmploymentQuery","timeoff","useTimeOffQuery"]}
@@ -0,0 +1,2 @@
1
+ import{b as r}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";var S=["invited","created_reserve_paid"],R=["deposit_required","referred"];function l({render:o}){let{onboardingBag:t,creditScore:s}=r(),d=t.creditRiskStatus==="deposit_required",i=t.employment?.status&&S.includes(t.employment.status),n=t.creditRiskStatus&&R.includes(t.creditRiskStatus),u=d&&t.employment?.status&&!i,c=t.creditRiskStatus&&!n||t.employment?.status&&i,a=e(()=>u?s.showReserveInvoice?"deposit_required_successful":"deposit_required":c?s.showInviteSuccessful?"invite_successful":"invite":null,"getCreditRiskState")();return o({creditRiskState:a,creditRiskStatus:t.creditRiskStatus})}e(l,"ReviewStep");export{l as a};
2
+ //# sourceMappingURL=chunk-KFVOK5X5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/components/ReviewStep.tsx"],"sourcesContent":["import { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport {\n CreditRiskStatus,\n CreditRiskState,\n Employment,\n} from '@/src/flows/Onboarding/types';\n\ntype ReviewStepProps = {\n /**\n * Render prop function for customizing the review step credit risk flow UI\n *\n * @param props - Object containing credit risk information\n * @param props.creditRiskState - Current state of the credit risk flow\n * - 'deposit_required': Deposit payment is required but not yet paid\n * - 'deposit_required_successful': Deposit payment has been successfully processed\n * - 'invite': Regular invite flow is available (no deposit required)\n * - 'invite_successful': Invitation has been successfully sent\n * - null: No specific credit risk state applies\n *\n * @param props.creditRiskStatus - Credit risk status from the backend\n * - 'not_started': Credit risk assessment has not been initiated\n * - 'ready': Ready for credit risk assessment\n * - 'in_progress': Credit risk assessment is in progress\n * - 'referred': Company has been referred for manual review\n * - 'fail': Credit risk assessment failed\n * - 'deposit_required': Company requires a deposit payment\n * - 'no_deposit_required': No deposit is required for this company\n * - undefined: Credit risk status not yet determined\n * @returns React.ReactNode to render for the review step\n */\n render: (props: {\n creditRiskState: CreditRiskState;\n creditRiskStatus: CreditRiskStatus | undefined;\n }) => React.ReactNode;\n};\n\nconst statusesToNotShowDeposit: Employment['status'][] = [\n 'invited',\n 'created_reserve_paid',\n];\n\nconst CREDIT_RISK_STATUSES: CreditRiskStatus[] = [\n 'deposit_required',\n 'referred',\n];\n\nexport function ReviewStep({ render }: ReviewStepProps) {\n const { onboardingBag, creditScore } = useOnboardingContext();\n\n // Helper variables to make logic more readable\n const isDepositRequiredCreditRisk =\n onboardingBag.creditRiskStatus === 'deposit_required';\n\n const hasEmploymentStatusThatHidesDeposit =\n onboardingBag.employment?.status &&\n statusesToNotShowDeposit.includes(onboardingBag.employment.status);\n\n const isCreditRiskStatusInExclusionList =\n onboardingBag.creditRiskStatus &&\n CREDIT_RISK_STATUSES.includes(onboardingBag.creditRiskStatus);\n\n const shouldShowDepositFlow =\n isDepositRequiredCreditRisk &&\n onboardingBag.employment?.status &&\n !hasEmploymentStatusThatHidesDeposit;\n\n const shouldShowInviteFlow =\n (onboardingBag.creditRiskStatus && !isCreditRiskStatusInExclusionList) ||\n (onboardingBag.employment?.status && hasEmploymentStatusThatHidesDeposit);\n\n const getCreditRiskState = (): CreditRiskState => {\n // Priority 1: Deposit required flow\n if (shouldShowDepositFlow) {\n return creditScore.showReserveInvoice\n ? 'deposit_required_successful'\n : 'deposit_required';\n }\n\n // Priority 2: Invite flow\n if (shouldShowInviteFlow) {\n return creditScore.showInviteSuccessful ? 'invite_successful' : 'invite';\n }\n\n // Default case\n return null;\n };\n\n const creditRiskState = getCreditRiskState();\n\n return render({\n creditRiskState,\n creditRiskStatus: onboardingBag.creditRiskStatus,\n });\n}\n"],"mappings":"gFAoCA,IAAMA,EAAmD,CACvD,UACA,sBACF,EAEMC,EAA2C,CAC/C,mBACA,UACF,EAEO,SAASC,EAAW,CAAE,OAAAC,CAAO,EAAoB,CACtD,GAAM,CAAE,cAAAC,EAAe,YAAAC,CAAY,EAAIC,EAAqB,EAGtDC,EACJH,EAAc,mBAAqB,mBAE/BI,EACJJ,EAAc,YAAY,QAC1BJ,EAAyB,SAASI,EAAc,WAAW,MAAM,EAE7DK,EACJL,EAAc,kBACdH,EAAqB,SAASG,EAAc,gBAAgB,EAExDM,EACJH,GACAH,EAAc,YAAY,QAC1B,CAACI,EAEGG,EACHP,EAAc,kBAAoB,CAACK,GACnCL,EAAc,YAAY,QAAUI,EAmBjCI,EAjBqBC,EAAA,IAErBH,EACKL,EAAY,mBACf,8BACA,mBAIFM,EACKN,EAAY,qBAAuB,oBAAsB,SAI3D,KAdkB,sBAiBgB,EAE3C,OAAOF,EAAO,CACZ,gBAAAS,EACA,iBAAkBR,EAAc,gBAClC,CAAC,CACH,CA/CgBS,EAAAX,EAAA","names":["statusesToNotShowDeposit","CREDIT_RISK_STATUSES","ReviewStep","render","onboardingBag","creditScore","useOnboardingContext","isDepositRequiredCreditRisk","hasEmploymentStatusThatHidesDeposit","isCreditRiskStatusInExclusionList","shouldShowDepositFlow","shouldShowInviteFlow","creditRiskState","__name"]}
@@ -0,0 +1,2 @@
1
+ import{b as m}from"./chunk-KSHK3ZPX.js";import{b as i}from"./chunk-GEYFQVQI.js";import{b as s}from"./chunk-3ZWDIEEM.js";import{a as e}from"./chunk-KPHSEIR3.js";import{a as u}from"./chunk-P37U34EQ.js";import{jsx as l}from"react/jsx-runtime";function b({children:o,...t}){let{formId:n}=m(),{components:C}=s(),r=C?.button;return r?l(r,{...t,form:n,children:o}):l(i,{...t,type:"submit",className:e("RemoteFlows__CostCalculatorForm__SubmitButton",t.className),form:n,children:o})}u(b,"CostCalculatorSubmitButton");export{b as a};
2
+ //# sourceMappingURL=chunk-KM4XVL2X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorSubmitButton.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useCostCalculatorContext } from './context';\nimport { cn } from '@/src/lib/utils';\nimport { useFormFields } from '@/src/context';\n\nexport function CostCalculatorSubmitButton({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const { formId } = useCostCalculatorContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton {...props} form={formId}>\n {children}\n </CustomButton>\n );\n }\n\n return (\n <Button\n {...props}\n type=\"submit\"\n className={cn(\n 'RemoteFlows__CostCalculatorForm__SubmitButton',\n props.className,\n )}\n form={formId}\n >\n {children}\n </Button>\n );\n}\n"],"mappings":"wMAiBM,cAAAA,MAAA,oBAXC,SAASC,EAA2B,CACzC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAyB,EACtC,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,OACjC,OAAIE,EAEAR,EAACQ,EAAA,CAAc,GAAGL,EAAO,KAAMC,EAC5B,SAAAF,EACH,EAKFF,EAACS,EAAA,CACE,GAAGN,EACJ,KAAK,SACL,UAAWO,EACT,gDACAP,EAAM,SACR,EACA,KAAMC,EAEL,SAAAF,EACH,CAEJ,CA9BgBS,EAAAV,EAAA","names":["jsx","CostCalculatorSubmitButton","children","props","formId","useCostCalculatorContext","components","useFormFields","CustomButton","Button","cn","__name"]}
@@ -1,2 +1,2 @@
1
- import{a as i}from"./chunk-AYDF3IFZ.js";import{clsx as e}from"clsx";import{twMerge as a}from"tailwind-merge";function c(...n){return a(e(n))}i(c,"cn");function m(n,t="\u20AC"){if(!n)return"-";let r=n/100;return`${t}${r.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`}i(m,"formatCurrency");var s=i(n=>{let t={};return n.inner.forEach(r=>{r.path!==void 0&&(t[r.path]={type:r.type,errors:r.errors,inner:r.inner.map(o=>s(o))})}),t},"transformYupErrorsIntoObject");export{c as a,m as b,s as c};
2
- //# sourceMappingURL=chunk-5ETXP2QF.js.map
1
+ import{a as i}from"./chunk-P37U34EQ.js";import{clsx as e}from"clsx";import{twMerge as a}from"tailwind-merge";function c(...n){return a(e(n))}i(c,"cn");function m(n,t="\u20AC"){if(!n)return"-";let r=n/100;return`${t}${r.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`}i(m,"formatCurrency");var s=i(n=>{let t={};return n.inner.forEach(r=>{r.path!==void 0&&(t[r.path]={type:r.type,errors:r.errors,inner:r.inner.map(o=>s(o))})}),t},"transformYupErrorsIntoObject");export{c as a,m as b,s as c};
2
+ //# sourceMappingURL=chunk-KPHSEIR3.js.map
@@ -1,2 +1,2 @@
1
- import{a as t}from"./chunk-AYDF3IFZ.js";import{createContext as r,useContext as e}from"react";var a=r({form:null,formId:void 0,costCalculatorBag:void 0}),n=t(()=>{let o=e(a);if(!o.form)throw new Error("useCostCalculatorContext must be used within a CostCalculatorProvider");return{form:o.form,formId:o.formId,costCalculatorBag:o.costCalculatorBag}},"useCostCalculatorContext");export{a,n as b};
2
- //# sourceMappingURL=chunk-OLJ2S6A6.js.map
1
+ import{a as t}from"./chunk-P37U34EQ.js";import{createContext as r,useContext as e}from"react";var a=r({form:null,formId:void 0,costCalculatorBag:void 0}),n=t(()=>{let o=e(a);if(!o.form)throw new Error("useCostCalculatorContext must be used within a CostCalculatorProvider");return{form:o.form,formId:o.formId,costCalculatorBag:o.costCalculatorBag}},"useCostCalculatorContext");export{a,n as b};
2
+ //# sourceMappingURL=chunk-KSHK3ZPX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/CostCalculator/context.ts"],"sourcesContent":["import { useCostCalculator } from '@/src/flows/CostCalculator/hooks';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { createContext, useContext } from 'react';\nimport { UseFormReturn } from 'react-hook-form';\n\nexport const CostCalculatorContext = createContext<{\n form: UseFormReturn<$TSFixMe> | null;\n formId: string | undefined;\n costCalculatorBag?: ReturnType<typeof useCostCalculator>;\n}>({\n form: null,\n formId: undefined,\n costCalculatorBag: undefined,\n});\n\nexport const useCostCalculatorContext = () => {\n const context = useContext(CostCalculatorContext);\n if (!context.form) {\n throw new Error(\n 'useCostCalculatorContext must be used within a CostCalculatorProvider',\n );\n }\n\n return {\n form: context.form,\n formId: context.formId,\n costCalculatorBag: context.costCalculatorBag,\n } as const;\n};\n"],"mappings":"wCAEA,OAAS,iBAAAA,EAAe,cAAAC,MAAkB,QAGnC,IAAMC,EAAwBC,EAIlC,CACD,KAAM,KACN,OAAQ,OACR,kBAAmB,MACrB,CAAC,EAEYC,EAA2BC,EAAA,IAAM,CAC5C,IAAMC,EAAUC,EAAWL,CAAqB,EAChD,GAAI,CAACI,EAAQ,KACX,MAAM,IAAI,MACR,uEACF,EAGF,MAAO,CACL,KAAMA,EAAQ,KACd,OAAQA,EAAQ,OAChB,kBAAmBA,EAAQ,iBAC7B,CACF,EAbwC","names":["createContext","useContext","CostCalculatorContext","createContext","useCostCalculatorContext","__name","context","useContext"]}
@@ -0,0 +1,2 @@
1
+ import{a as t}from"./chunk-SIC7BRJ2.js";import{b as a}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as p}from"react/jsx-runtime";function F({requesterName:n,onSubmit:s,onSuccess:m,onError:d}){let{terminationBag:e}=a(),l=i(async o=>{await s?.(e?.parseFormValues(o));let r=await e?.onSubmit(o);r?.error?d?.(r.error):r?.data&&await m?.(r.data)},"handleSubmit"),u=e?.fields.map(o=>o.name==="acknowledge_termination_procedure"?{...o,label:o.label.replace("{{requesterName}}",n)}:o);return p(t,{fields:u,onSubmit:l})}i(F,"AdditionalDetailsForm");export{F as a};
2
+ //# sourceMappingURL=chunk-LFIQVLFK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Termination/AdditionalDetailsForm.tsx"],"sourcesContent":["import { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { OffboardingResponse } from '@/src/client';\nimport { TerminationForm } from '@/src/flows/Termination/TerminationForm';\n\ntype AdditionalDetailsFormProps = {\n /*\n * The name of the person who initiates the termination, used to personalize the label of the\n * acknowledge_termination_procedure field.\n */\n requesterName: string;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: TerminationFormValues) => void | Promise<void>;\n /*\n * The function is called when the form submission has failed.\n */\n onError?: (error: Error) => void;\n /*\n * The function is called when the form submission is successful. It receives the response data as\n * an argument.\n */\n onSuccess?: (data: OffboardingResponse) => void | Promise<void>;\n};\n\nexport function AdditionalDetailsForm({\n requesterName,\n onSubmit,\n onSuccess,\n onError,\n}: AdditionalDetailsFormProps) {\n const { terminationBag } = useTerminationContext();\n\n const handleSubmit = async (values: TerminationFormValues) => {\n await onSubmit?.(\n terminationBag?.parseFormValues(values) as TerminationFormValues,\n );\n const terminationResult = await terminationBag?.onSubmit(values);\n\n if (terminationResult?.error) {\n onError?.(terminationResult.error);\n } else {\n if (terminationResult?.data) {\n await onSuccess?.(terminationResult.data as OffboardingResponse);\n }\n }\n };\n\n const updatedFields = terminationBag?.fields.map((field) => {\n if (field.name === 'acknowledge_termination_procedure') {\n return {\n ...field,\n label: (field.label as string).replace(\n '{{requesterName}}',\n requesterName,\n ),\n };\n }\n return field;\n });\n\n return <TerminationForm fields={updatedFields} onSubmit={handleSubmit} />;\n}\n"],"mappings":"wHA8DS,cAAAA,MAAA,oBApCF,SAASC,EAAsB,CACpC,cAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA+B,CAC7B,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAE3CC,EAAeC,EAAA,MAAOC,GAAkC,CAC5D,MAAMP,IACJG,GAAgB,gBAAgBI,CAAM,CACxC,EACA,IAAMC,EAAoB,MAAML,GAAgB,SAASI,CAAM,EAE3DC,GAAmB,MACrBN,IAAUM,EAAkB,KAAK,EAE7BA,GAAmB,MACrB,MAAMP,IAAYO,EAAkB,IAA2B,CAGrE,EAbqB,gBAefC,EAAgBN,GAAgB,OAAO,IAAKO,GAC5CA,EAAM,OAAS,oCACV,CACL,GAAGA,EACH,MAAQA,EAAM,MAAiB,QAC7B,oBACAX,CACF,CACF,EAEKW,CACR,EAED,OAAOb,EAACc,EAAA,CAAgB,OAAQF,EAAe,SAAUJ,EAAc,CACzE,CArCgBC,EAAAR,EAAA","names":["jsx","AdditionalDetailsForm","requesterName","onSubmit","onSuccess","onError","terminationBag","useTerminationContext","handleSubmit","__name","values","terminationResult","updatedFields","field","TerminationForm"]}
@@ -0,0 +1,2 @@
1
+ import{b as e}from"./chunk-MRYRNB7Y.js";import{b as i}from"./chunk-GEYFQVQI.js";import{b as u}from"./chunk-3ZWDIEEM.js";import{a as m}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function T({children:t,...o}){let{formId:n}=e(),{components:f}=u(),r=f?.button;return r?s(r,{...o,form:n,children:t}):s(i,{...o,form:n,children:t})}m(T,"TerminationSubmit");export{T as a};
2
+ //# sourceMappingURL=chunk-LLIGZSYY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Termination/TerminationSubmit.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useTerminationContext } from './context';\nimport { useFormFields } from '@/src/context';\n\nexport function TerminationSubmit({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const { formId } = useTerminationContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton {...props} form={formId}>\n {children}\n </CustomButton>\n );\n }\n\n return (\n <Button {...props} form={formId}>\n {children}\n </Button>\n );\n}\n"],"mappings":"gKAgBM,cAAAA,MAAA,oBAXC,SAASC,EAAkB,CAChC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAsB,EACnC,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,OACjC,OAAIE,EAEAR,EAACQ,EAAA,CAAc,GAAGL,EAAO,KAAMC,EAC5B,SAAAF,EACH,EAKFF,EAACS,EAAA,CAAQ,GAAGN,EAAO,KAAMC,EACtB,SAAAF,EACH,CAEJ,CAtBgBQ,EAAAT,EAAA","names":["jsx","TerminationSubmit","children","props","formId","useTerminationContext","components","useFormFields","CustomButton","Button","__name"]}
@@ -0,0 +1,2 @@
1
+ import{a as s}from"./chunk-63BYEK44.js";import{b as n}from"./chunk-PGWKJ6FK.js";import{b as i}from"./chunk-QW4JPW6J.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as p}from"react/jsx-runtime";function F({onSubmit:l,onError:t,onSuccess:d}){let{onboardingBag:o}=n(),m=e(async a=>{try{await l?.(o.parseFormValues(a));let r=await o.onSubmit(a);if(r?.data){await d?.(r.data),o?.next();return}if(r?.error){let c=i(r?.fieldErrors||[],o.meta?.fields?.contract_details);t?.({error:r.error,rawError:r.rawError,fieldErrors:c})}}catch(r){t?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit");return p(s,{defaultValues:o.stepState.values?.contract_details||o.initialValues.contract_details,onSubmit:m})}e(F,"ContractDetailsStep");export{F as a};
2
+ //# sourceMappingURL=chunk-LPR2D3EY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/components/ContractDetailsStep.tsx"],"sourcesContent":["import { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { OnboardingForm } from '@/src/flows/Onboarding/components/OnboardingForm';\nimport { EmploymentResponse } from '@/src/client';\nimport { ContractDetailsFormPayload } from '@/src/flows/Onboarding/types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport {\n NormalizedFieldError,\n normalizeFieldErrors,\n} from '@/src/lib/mutations';\n\ntype ContractDetailsStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: ContractDetailsFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (response: EmploymentResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function ContractDetailsStep({\n onSubmit,\n onError,\n onSuccess,\n}: ContractDetailsStepProps) {\n const { onboardingBag } = useOnboardingContext();\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.(\n onboardingBag.parseFormValues(payload) as ContractDetailsFormPayload,\n );\n const response = await onboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response.data as EmploymentResponse);\n onboardingBag?.next();\n return;\n }\n if (response?.error) {\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n onboardingBag.meta?.fields?.contract_details,\n );\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error: unknown) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n };\n\n return (\n <OnboardingForm\n defaultValues={\n onboardingBag.stepState.values?.contract_details ||\n onboardingBag.initialValues.contract_details\n }\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"gKAuEI,cAAAA,MAAA,oBAtCG,SAASC,EAAoB,CAClC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA6B,CAC3B,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAqB,EACzCC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,MAAMP,IACJG,EAAc,gBAAgBI,CAAO,CACvC,EACA,IAAMC,EAAW,MAAML,EAAc,SAASI,CAAO,EACrD,GAAIC,GAAU,KAAM,CAClB,MAAMN,IAAYM,EAAS,IAA0B,EACrDL,GAAe,KAAK,EACpB,MACF,CACA,GAAIK,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BL,EAAc,MAAM,QAAQ,gBAC9B,EACAF,IAAU,CACR,MAAOO,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBV,IAAU,CACR,MAAOU,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA7BqB,gBA+BrB,OACEb,EAACc,EAAA,CACC,cACET,EAAc,UAAU,QAAQ,kBAChCA,EAAc,cAAc,iBAE9B,SAAUE,EACZ,CAEJ,CA9CgBC,EAAAP,EAAA","names":["jsx","ContractDetailsStep","onSubmit","onError","onSuccess","onboardingBag","useOnboardingContext","handleSubmit","__name","payload","response","normalizedFieldErrors","normalizeFieldErrors","error","OnboardingForm"]}
@@ -1,2 +1,2 @@
1
- import{m as o,s as i}from"./chunk-DHRIURRT.js";import{d as n}from"./chunk-WRDKLT4N.js";import{a as e}from"./chunk-AYDF3IFZ.js";import{useQuery as s}from"@tanstack/react-query";var p=e(({employmentId:t})=>{let{client:r}=n();return s({queryKey:["employment",t],retry:!1,queryFn:e(()=>o({client:r,headers:{Authorization:""},path:{employment_id:t}}),"queryFn"),select:e(({data:m})=>m,"select")})},"useEmploymentQuery"),c=e(({employmentId:t,status:r})=>{let{client:m}=n();return s({queryKey:["timeoff",t,r],retry:!1,queryFn:e(()=>i({client:m,headers:{Authorization:""},query:{employment_id:t,status:r}}),"queryFn"),select:e(({data:u})=>u,"select")})},"useTimeOffQuery");export{p as a,c as b};
2
- //# sourceMappingURL=chunk-QOMUXX6W.js.map
1
+ import{p as o,w as i}from"./chunk-WKK63LAY.js";import{d as n}from"./chunk-3ZWDIEEM.js";import{a as e}from"./chunk-P37U34EQ.js";import{useQuery as s}from"@tanstack/react-query";var p=e(({employmentId:t})=>{let{client:r}=n();return s({queryKey:["employment",t],retry:!1,queryFn:e(()=>o({client:r,headers:{Authorization:""},path:{employment_id:t}}),"queryFn"),select:e(({data:m})=>m,"select")})},"useEmploymentQuery"),c=e(({employmentId:t,status:r})=>{let{client:m}=n();return s({queryKey:["timeoff",t,r],retry:!1,queryFn:e(()=>i({client:m,headers:{Authorization:""},query:{employment_id:t,status:r}}),"queryFn"),select:e(({data:u})=>u,"select")})},"useTimeOffQuery");export{p as a,c as b};
2
+ //# sourceMappingURL=chunk-LX7QBDSF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/api.ts"],"sourcesContent":["import {\n getIndexTimeoff,\n getShowEmployment,\n TimeoffStatus,\n} from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { ContractAmendmentParams } from '@/src/flows/ContractAmendment/types';\nimport { Client } from '@hey-api/client-fetch';\nimport { useQuery } from '@tanstack/react-query';\n\ntype UseEmployment = Pick<ContractAmendmentParams, 'employmentId'>;\n\n/**\n * Hook to retrieve employment details for a specific employment ID.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} params.employmentId - The ID of the employment to fetch details for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the employment details.\n */\nexport const useEmploymentQuery = ({ employmentId }: UseEmployment) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n queryFn: () => {\n return getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { employment_id: employmentId },\n });\n },\n select: ({ data }) => data,\n });\n};\n\n/**\n * Hook to retrieve time off data for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch time off data for.\n * @param {TimeoffStatus} [params.status] - The status of the time off requests to filter by (e.g., 'approved', 'pending').\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the time off data.\n *\n */\nexport const useTimeOffQuery = ({\n employmentId,\n status,\n}: {\n employmentId?: string;\n status?: TimeoffStatus;\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['timeoff', employmentId, status],\n retry: false,\n queryFn: () => {\n return getIndexTimeoff({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n employment_id: employmentId,\n status: status,\n },\n });\n },\n select: ({ data }) => data,\n });\n};\n"],"mappings":"+HAQA,OAAS,YAAAA,MAAgB,wBAWlB,IAAMC,EAAqBC,EAAA,CAAC,CAAE,aAAAC,CAAa,IAAqB,CACrE,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,aAAcH,CAAY,EACrC,MAAO,GACP,QAASD,EAAA,IACAK,EAAkB,CACvB,OAAQH,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CAAE,cAAeD,CAAa,CACtC,CAAC,EAPM,WAST,OAAQD,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAMA,EAAd,SACV,CAAC,CACH,EAhBkC,sBA2BrBC,EAAkBP,EAAA,CAAC,CAC9B,aAAAC,EACA,OAAAO,CACF,IAGM,CACJ,GAAM,CAAE,OAAAN,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,UAAWH,EAAcO,CAAM,EAC1C,MAAO,GACP,QAASR,EAAA,IACAS,EAAgB,CACrB,OAAQP,EACR,QAAS,CACP,cAAe,EACjB,EACA,MAAO,CACL,cAAeD,EACf,OAAQO,CACV,CACF,CAAC,EAVM,WAYT,OAAQR,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAMA,EAAd,SACV,CAAC,CACH,EAzB+B","names":["useQuery","useEmploymentQuery","__name","employmentId","client","useClient","useQuery","getShowEmployment","data","useTimeOffQuery","status","getIndexTimeoff"]}
@@ -1,2 +1,2 @@
1
- import{a as i}from"./chunk-AYDF3IFZ.js";import f from"lodash/get";var F={TEXT:"text",TEXTAREA:"textarea",NUMBER:"number",SELECT:"select",COUNTRIES:"countries",TEL:"tel",EMAIL:"email",MONEY:"money",DATE:"date",DATE_RANGE:"date-range",CURRENCIES:"currencies",TIME:"time"},I={CHECKBOX:"checkbox",ACK_CHECK:"ack-check"},l={FILE:"file",RADIO:"radio",RADIO_CARD:"radio-card",GROUP_ARRAY:"group-array",EXTRA:"extra",STATEMENT:"statement",HIDDEN:"hidden",FIELDSET:"fieldset",FIELDSET_FLAT:"fieldset-flat",WORK_SCHEDULE:"work-schedule",WORK_WEEK_SCHEDULE:"work-week-schedule",BENEFITS:"benefits",SIGNATURE:"signature",SELECT_MULTIPLE:"select-multiple",...F,...I};function E(e){return Math.round((e+Number.EPSILON)*100)/100}i(E,"round");function d(e){return parseFloat(e.replace(/,/g,""))}i(d,"convertToValidCost");function D(e){if(e==null||e===""||Number.isNaN(e)||Array.isArray(e)||typeof e=="boolean")return null;let n;return typeof e=="string"?n=d(e):n=e,E(n*100)}i(D,"convertToCents");function O(e){if(e==null||Number.isNaN(e))return null;let n;return typeof e=="string"?n=d(e||"0"):n=e,E(n/100)}i(O,"convertFromCents");var y=i(e=>Object.entries(e||{}).reduce((n,[a,t])=>(Array.isArray(t)?n[a]=t.map(r=>typeof r=="object"&&r!==null?y(r):typeof r=="string"?r.trim():r):typeof t=="object"&&t!==null?n[a]=y(t):n[a]=typeof t=="string"?t.trim():t,n),{}),"trimStringValues");function T(e,n){let a={};return n.forEach(t=>{let r=t.name;if(!(!Object.prototype.hasOwnProperty.call(e,r)&&!(t.type===l.FIELDSET&&t.valueGroupingDisabled))){if(t.type===l.FIELDSET&&t.valueGroupingDisabled){Object.assign(a,T(e,t.fields));return}t.readOnly&&t.defaultValue?a[r]=t.defaultValue:a[r]=e[r]}}),a}i(T,"prefillReadOnlyFields");function b(e,n){return e.reduce((a,t)=>(t.type===l.FIELDSET&&t.valueGroupingDisabled?Object.assign(a,b(t.fields,n)):Object.prototype.hasOwnProperty.call(n,t.name)&&(a[t.name]=n[t.name]),a),{})}i(b,"extractFieldsetFieldsValues");var p={[l.COUNTRIES]:{transformValueToAPI:i(e=>n=>!e.multiple||typeof n=="string"?n:n.map(a=>typeof a=="string"?a:a.name),"transformValueToAPI"),transformValue:i(e=>{let n=i(a=>a?.name||a?.value||a?.label,"getCountryValue");return Array.isArray(e)?e.map(n):n(e)||""},"transformValue")},[l.NUMBER]:{transformValueToAPI:i(()=>e=>{let n=Number(e);return Number.isNaN(n)?e:n},"transformValueToAPI")},[l.MONEY]:{transformValueFromAPI:i(()=>e=>O(e)??"","transformValueFromAPI"),transformValueToAPI:i(()=>D,"transformValueToAPI")},[l.RADIO]:{transformValueToAPI:i(e=>n=>e.transformToBool?n==="yes":n,"transformValueToAPI")},[l.CHECKBOX]:{transformValueToAPI:i(e=>n=>n===void 0?!1:e.const&&n===!0?e.const:n,"transformValueToAPI")},[l.SELECT]:{transformValue:i(e=>Array.isArray(e)?e.map(n=>n.value):e?.value??"","transformValue")}};function m(e={},n){return n.filter(r=>e[r.name]||r.type===l.FIELDSET&&r.valueGroupingDisabled).reduce((r,s)=>{switch(s.type){case l.FIELDSET:{let o=s;if(o.valueGroupingDisabled){let u=b(o.fields,e);Object.assign(r,m(u,o.fields))}else r[s.name]=m(e[s.name],o.fields);break}case l.TEXTAREA:case l.TEXT:{r[s.name]=e[s.name].replace(/\0/g,"");break}case l.GROUP_ARRAY:{let o=s?.fields?.().map(c=>({...c,name:c.nameKey||""})),u=e[s.name]?.map(c=>m(c,o));r[s.name]=u;break}case l.EXTRA:{let o=s;if(o.includeValueToApi!==!1){let u=e[o.name],c=o?.transformValueToAPI||p[o.type]?.transformValueToAPI;if(c){r[o.name]=c(s)(u);break}r[o.name]=u;break}r[o.name]=void 0;break}default:{let o=e[s.name],u=s?.transformValueToAPI||p[s.type]?.transformValueToAPI;if(u){r[s.name]=u(s)(o);break}r[s.name]=o;break}}return s.forcedValue!==void 0&&(r[s.name]=s.forcedValue),r},{...e})}i(m,"parseFormValuesToAPI");function S(e,n){return e.visibilityCondition?e.visibilityCondition(n):typeof e.isVisible<"u"?!!e.isVisible:!0}i(S,"isFieldVisible");function V(e,n){return e.calculateDynamicProperties?{...e,...e.calculateDynamicProperties(n)||{}}:e}i(V,"applyFieldDynamicProperties");function g(e,n,a,t){let r={};return n.map(s=>V(s,e)).forEach(s=>{let o=s.name;t&&(o=o?`${t}.${s.name}`:t);let u=f(e,o);if(!(!S(s,e)&&!(a&&u))&&!s.meta?.ignoreValue)if(s.type==="fieldset"&&s.valueGroupingDisabled)Object.assign(r,g(e,s.fields,a,o));else if(Array.isArray(s.fields))r[s.name]=g(e,s.fields,a,o);else{if(u===void 0)return;r[s.name]=u}}),r}i(g,"excludeValuesInvisible");function k(e){return Object.fromEntries(Object.entries(e).filter(([,n])=>n!=null&&n!==""))}i(k,"removeEmptyValues");function P(e,n,a){let t=a?.keepInvisibleValues?e:g(e,n),r=m(t,n),s=y(r),o=k(s);return T(o,n)}i(P,"parseSubmitValues");function C(e,n,a={isPartialValidation:!1}){return P(e,n,{keepInvisibleValues:a?.isPartialValidation})}i(C,"parseJSFToValidate");function N(e){switch(e){case l.FILE:return;default:return""}}i(N,"getDefaultValueForType");function A(e,n){let a=f(e,n.name),t=n?.transformValueFromAPI||p[n.type]?.transformValueFromAPI;if(t)return t(n)(a);let r=typeof n.value=="function"?n.value(a,e):null,s=typeof n.value!="function"?n.value:null,o=n.checkboxValue===!0?a||!1:null,u=i(c=>c===""?void 0:c,"excludeString");return u(r)??u(a)??u(s)??u(n.default)??o??N(n.type)}i(A,"getInitialDefaultValue");function R(e,n,a){let t={},r=e.name;a&&(r=r?`${a}.${r}`:a);let s=e.fields;if(Array.isArray(s)){let o={};s.forEach(u=>{Object.assign(o,R(u,n,r))}),e.type===l.FIELDSET&&e.valueGroupingDisabled?Object.assign(t,o):t[e.name]=o}else t[e.name]=A(n,{...e,name:r});return t}i(R,"getInitialSubFieldValues");function x(e,n){let a={},t=n;return e.map(r=>V(r,t)).forEach(r=>{switch(r.type){case l.FIELDSET:{if(r.valueGroupingDisabled)Object.assign(a,x(r.fields,t));else{let s=R(r,t);Object.assign(a,s)}break}default:{a[r.name]||(a[r.name]=A(t,r));break}}}),a}i(x,"getInitialValues");export{D as a,O as b,C as c,x as d};
2
- //# sourceMappingURL=chunk-N25EBX6R.js.map
1
+ import{a as i}from"./chunk-P37U34EQ.js";import f from"lodash.get";var F={TEXT:"text",TEXTAREA:"textarea",NUMBER:"number",SELECT:"select",COUNTRIES:"countries",TEL:"tel",EMAIL:"email",MONEY:"money",DATE:"date",DATE_RANGE:"date-range",CURRENCIES:"currencies",TIME:"time"},I={CHECKBOX:"checkbox",ACK_CHECK:"ack-check"},l={FILE:"file",RADIO:"radio",RADIO_CARD:"radio-card",GROUP_ARRAY:"group-array",EXTRA:"extra",STATEMENT:"statement",HIDDEN:"hidden",FIELDSET:"fieldset",FIELDSET_FLAT:"fieldset-flat",WORK_SCHEDULE:"work-schedule",WORK_WEEK_SCHEDULE:"work-week-schedule",BENEFITS:"benefits",SIGNATURE:"signature",SELECT_MULTIPLE:"select-multiple",...F,...I};function E(e){return Math.round((e+Number.EPSILON)*100)/100}i(E,"round");function d(e){return parseFloat(e.replace(/,/g,""))}i(d,"convertToValidCost");function D(e){if(e==null||e===""||Number.isNaN(e)||Array.isArray(e)||typeof e=="boolean")return null;let n;return typeof e=="string"?n=d(e):n=e,E(n*100)}i(D,"convertToCents");function O(e){if(e==null||Number.isNaN(e))return null;let n;return typeof e=="string"?n=d(e||"0"):n=e,E(n/100)}i(O,"convertFromCents");var y=i(e=>Object.entries(e||{}).reduce((n,[a,t])=>(Array.isArray(t)?n[a]=t.map(r=>typeof r=="object"&&r!==null?y(r):typeof r=="string"?r.trim():r):typeof t=="object"&&t!==null?n[a]=y(t):n[a]=typeof t=="string"?t.trim():t,n),{}),"trimStringValues");function T(e,n){let a={};return n.forEach(t=>{let r=t.name;if(!(!Object.prototype.hasOwnProperty.call(e,r)&&!(t.type===l.FIELDSET&&t.valueGroupingDisabled))){if(t.type===l.FIELDSET&&t.valueGroupingDisabled){Object.assign(a,T(e,t.fields));return}t.readOnly&&t.defaultValue?a[r]=t.defaultValue:a[r]=e[r]}}),a}i(T,"prefillReadOnlyFields");function b(e,n){return e.reduce((a,t)=>(t.type===l.FIELDSET&&t.valueGroupingDisabled?Object.assign(a,b(t.fields,n)):Object.prototype.hasOwnProperty.call(n,t.name)&&(a[t.name]=n[t.name]),a),{})}i(b,"extractFieldsetFieldsValues");var p={[l.COUNTRIES]:{transformValueToAPI:i(e=>n=>!e.multiple||typeof n=="string"?n:n.map(a=>typeof a=="string"?a:a.name),"transformValueToAPI"),transformValue:i(e=>{let n=i(a=>a?.name||a?.value||a?.label,"getCountryValue");return Array.isArray(e)?e.map(n):n(e)||""},"transformValue")},[l.NUMBER]:{transformValueToAPI:i(()=>e=>{let n=Number(e);return Number.isNaN(n)?e:n},"transformValueToAPI")},[l.MONEY]:{transformValueFromAPI:i(()=>e=>O(e)??"","transformValueFromAPI"),transformValueToAPI:i(()=>D,"transformValueToAPI")},[l.RADIO]:{transformValueToAPI:i(e=>n=>e.transformToBool?n==="yes":n,"transformValueToAPI")},[l.CHECKBOX]:{transformValueToAPI:i(e=>n=>n===void 0?!1:e.const&&n===!0?e.const:n,"transformValueToAPI")},[l.SELECT]:{transformValue:i(e=>Array.isArray(e)?e.map(n=>n.value):e?.value??"","transformValue")}};function m(e={},n){return n.filter(r=>e[r.name]||r.type===l.FIELDSET&&r.valueGroupingDisabled).reduce((r,s)=>{switch(s.type){case l.FIELDSET:{let o=s;if(o.valueGroupingDisabled){let u=b(o.fields,e);Object.assign(r,m(u,o.fields))}else r[s.name]=m(e[s.name],o.fields);break}case l.TEXTAREA:case l.TEXT:{r[s.name]=e[s.name].replace(/\0/g,"");break}case l.GROUP_ARRAY:{let o=s?.fields?.().map(c=>({...c,name:c.nameKey||""})),u=e[s.name]?.map(c=>m(c,o));r[s.name]=u;break}case l.EXTRA:{let o=s;if(o.includeValueToApi!==!1){let u=e[o.name],c=o?.transformValueToAPI||p[o.type]?.transformValueToAPI;if(c){r[o.name]=c(s)(u);break}r[o.name]=u;break}r[o.name]=void 0;break}default:{let o=e[s.name],u=s?.transformValueToAPI||p[s.type]?.transformValueToAPI;if(u){r[s.name]=u(s)(o);break}r[s.name]=o;break}}return s.forcedValue!==void 0&&(r[s.name]=s.forcedValue),r},{...e})}i(m,"parseFormValuesToAPI");function S(e,n){return e.visibilityCondition?e.visibilityCondition(n):typeof e.isVisible<"u"?!!e.isVisible:!0}i(S,"isFieldVisible");function V(e,n){return e.calculateDynamicProperties?{...e,...e.calculateDynamicProperties(n)||{}}:e}i(V,"applyFieldDynamicProperties");function g(e,n,a,t){let r={};return n.map(s=>V(s,e)).forEach(s=>{let o=s.name;t&&(o=o?`${t}.${s.name}`:t);let u=f(e,o);if(!(!S(s,e)&&!(a&&u))&&!s.meta?.ignoreValue)if(s.type==="fieldset"&&s.valueGroupingDisabled)Object.assign(r,g(e,s.fields,a,o));else if(Array.isArray(s.fields))r[s.name]=g(e,s.fields,a,o);else{if(u===void 0)return;r[s.name]=u}}),r}i(g,"excludeValuesInvisible");function k(e){return Object.fromEntries(Object.entries(e).filter(([,n])=>n!=null&&n!==""))}i(k,"removeEmptyValues");function P(e,n,a){let t=a?.keepInvisibleValues?e:g(e,n),r=m(t,n),s=y(r),o=k(s);return T(o,n)}i(P,"parseSubmitValues");function C(e,n,a={isPartialValidation:!1}){return P(e,n,{keepInvisibleValues:a?.isPartialValidation})}i(C,"parseJSFToValidate");function N(e){switch(e){case l.FILE:return;default:return""}}i(N,"getDefaultValueForType");function A(e,n){let a=f(e,n.name),t=n?.transformValueFromAPI||p[n.type]?.transformValueFromAPI;if(t)return t(n)(a);let r=typeof n.value=="function"?n.value(a,e):null,s=typeof n.value!="function"?n.value:null,o=n.checkboxValue===!0?a||!1:null,u=i(c=>c===""?void 0:c,"excludeString");return u(r)??u(a)??u(s)??u(n.default)??o??N(n.type)}i(A,"getInitialDefaultValue");function R(e,n,a){let t={},r=e.name;a&&(r=r?`${a}.${r}`:a);let s=e.fields;if(Array.isArray(s)){let o={};s.forEach(u=>{Object.assign(o,R(u,n,r))}),e.type===l.FIELDSET&&e.valueGroupingDisabled?Object.assign(t,o):t[e.name]=o}else t[e.name]=A(n,{...e,name:r});return t}i(R,"getInitialSubFieldValues");function x(e,n){let a={},t=n;return e.map(r=>V(r,t)).forEach(r=>{switch(r.type){case l.FIELDSET:{if(r.valueGroupingDisabled)Object.assign(a,x(r.fields,t));else{let s=R(r,t);Object.assign(a,s)}break}default:{a[r.name]||(a[r.name]=A(t,r));break}}}),a}i(x,"getInitialValues");export{D as a,O as b,C as c,x as d};
2
+ //# sourceMappingURL=chunk-MH6KKP6K.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/form/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Field } from '@/src/flows/types';\nimport { $TSFixMe, Fields } from '@remoteoss/json-schema-form';\nimport get from 'lodash/get';\n\nconst textInputTypes = {\n TEXT: 'text',\n TEXTAREA: 'textarea',\n NUMBER: 'number',\n SELECT: 'select',\n COUNTRIES: 'countries',\n TEL: 'tel',\n EMAIL: 'email',\n MONEY: 'money',\n DATE: 'date',\n DATE_RANGE: 'date-range',\n CURRENCIES: 'currencies',\n TIME: 'time',\n} as const;\n\nconst checkboxTypes = {\n CHECKBOX: 'checkbox',\n ACK_CHECK: 'ack-check',\n} as const;\n\nconst supportedTypes = {\n FILE: 'file',\n RADIO: 'radio',\n /** @deprecated */\n RADIO_CARD: 'radio-card',\n GROUP_ARRAY: 'group-array',\n EXTRA: 'extra',\n STATEMENT: 'statement',\n HIDDEN: 'hidden',\n FIELDSET: 'fieldset',\n FIELDSET_FLAT: 'fieldset-flat',\n WORK_SCHEDULE: 'work-schedule',\n WORK_WEEK_SCHEDULE: 'work-week-schedule',\n /** @deprecated we still display benefits in read-only contract details view, but never in any form */\n BENEFITS: 'benefits',\n SIGNATURE: 'signature',\n SELECT_MULTIPLE: 'select-multiple',\n ...textInputTypes,\n ...checkboxTypes,\n} as const;\n\nfunction round(value: number): number {\n return Math.round((value + Number.EPSILON) * 100) / 100;\n}\n\nfunction convertToValidCost(value: string) {\n return parseFloat(value.replace(/,/g, ''));\n}\n\nexport function convertToCents(\n amount?: number | string | string[] | null | boolean,\n) {\n if (\n amount == null ||\n amount === '' ||\n Number.isNaN(amount) ||\n Array.isArray(amount) ||\n typeof amount === 'boolean'\n ) {\n return null;\n }\n\n let validAmount: number;\n\n if (typeof amount === 'string') {\n validAmount = convertToValidCost(amount);\n } else {\n validAmount = amount;\n }\n\n return round(validAmount * 100);\n}\n\nexport function convertFromCents(amount?: number | string | null) {\n if (amount == null || Number.isNaN(amount)) return null;\n\n let normalizedValue: number;\n\n if (typeof amount === 'string') {\n normalizedValue = convertToValidCost(amount || '0');\n } else {\n normalizedValue = amount;\n }\n\n return round(normalizedValue / 100);\n}\n\nconst trimStringValues = (values: Record<string, any>) =>\n Object.entries(values || {}).reduce<Record<string, any>>(\n (result, [key, value]) => {\n if (Array.isArray(value)) {\n // If the value is an array, recursively process each element\n result[key] = value.map((item) =>\n typeof item === 'object' && item !== null\n ? trimStringValues(item)\n : typeof item === 'string'\n ? item.trim()\n : item,\n );\n } else if (typeof value === 'object' && value !== null) {\n // If the value is an object, recursively process it\n result[key] = trimStringValues(value);\n } else {\n // Otherwise, trim the string or keep the value as is\n result[key] = typeof value === 'string' ? value.trim() : value;\n }\n return result;\n },\n {},\n );\n\n/**\n * Given a list of form values, modify the ones that are readOnly,\n * based on their field config, by adding its defaultValue.\n * This is needed to support readOnly fields that are also conditional\n * based on the \"pivotName\" workaround.\n * @param {Object} values - List with form values { name: value }.\n * @param {Array} fields - Respective form fields configuration.\n */\nfunction prefillReadOnlyFields(values: Record<string, any>, fields: any[]) {\n const newValues: Record<string, any> = {};\n\n fields.forEach((field) => {\n const fieldName = field.name;\n\n if (\n !Object.prototype.hasOwnProperty.call(values, fieldName!) &&\n !(field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled)\n )\n return;\n\n if (field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled) {\n Object.assign(newValues, prefillReadOnlyFields(values, field.fields));\n return;\n }\n\n if (field.readOnly && field.defaultValue) {\n newValues[fieldName!] = field.defaultValue;\n } else {\n newValues[fieldName!] = values[fieldName!];\n }\n });\n\n return newValues;\n}\n/**\n * Recursively extracts fieldsets' fields values and maps them to the field name\n * For nested fields that are fieldsets with valueGroupingDisabled, the values\n * are extracted one level up\n *\n * @param {Array} fields - Fieldset fields configuration.\n * @param {Object} formValues - List with form values { name: value }.\n * @return {Object} – Raw form values mapped to the field name\n */\nfunction extractFieldsetFieldsValues(\n fields: any[],\n formValues: Record<string, unknown>,\n) {\n return fields.reduce<Record<string, any>>((nestedAcc, subField) => {\n const isFieldsetValueGroupingDisabled =\n subField.type === supportedTypes.FIELDSET &&\n subField.valueGroupingDisabled;\n\n if (isFieldsetValueGroupingDisabled) {\n Object.assign(\n nestedAcc,\n extractFieldsetFieldsValues(subField.fields, formValues),\n );\n } else if (\n Object.prototype.hasOwnProperty.call(formValues, subField.name!)\n ) {\n nestedAcc[subField.name!] = formValues[subField.name!];\n }\n\n return nestedAcc;\n }, {});\n}\n\nexport const fieldTypesTransformations: Record<string, any> = {\n [supportedTypes.COUNTRIES]: {\n /**\n * @param {String[] | { name: String }[]} value\n * - Excepted: array of strings.\n * - Edge cases: array of objects. (when using dangerousTransformValue)\n * @returns {String[]} - List of countries\n * @example expected: ['Peru', 'Germany'] -> ['Peru', 'Germany']\n * @example edge cases: [{name: 'Peru'}, {name: 'Germany'}] -> ['Peru', 'Germany']\n */\n transformValueToAPI:\n (field: any) => (selectedCountries: string[] | { name: string }[]) => {\n if (!field.multiple || typeof selectedCountries === 'string') {\n return selectedCountries;\n }\n // NOTE: The value should be an array of strings, however legacy data can come as\n // an array of country objects. So, we always send an array of strings to normalize\n // the data (eg old form values being modified) until DB migration is done !5667\n return selectedCountries.map((option) =>\n typeof option === 'string' ? option : option.name,\n );\n },\n /**\n * Used for react-select, where the country selected is transformed\n * before saving on Formik state. Supports both solo and multi select\n * @param {Object|Object[]} selectedCountry[] - Current selected options\n * @param {String} selectedCountry[].value\n * @param {String} selectedCountry[].name\n * @param {String} selectedCountry[].label\n * @returns {String[]} - List of countries selected\n * @example\n * [{ value: 'Hungria' }] -> ['Hungria']\n */\n transformValue: (selectedCountry: any | any[]) => {\n // name or label are used in dragon. value is used in json-schema-form\n // TODO: it should be the same everywhere — read more at !5667\n const getCountryValue = (opt: any) =>\n opt?.name || opt?.value || opt?.label;\n return Array.isArray(selectedCountry)\n ? selectedCountry.map(getCountryValue) // support multi countries\n : getCountryValue(selectedCountry) || ''; // Fallback to '' in case user removes all countries\n },\n },\n [supportedTypes.NUMBER]: {\n transformValueToAPI: () => (value: string) => {\n // this prevents values with letters such as \"2r\" from being considered valid\n // if the input is invalid, number().cast will return NaN\n const castValue = Number(value);\n\n if (Number.isNaN(castValue)) {\n return value;\n }\n\n return castValue;\n },\n },\n [supportedTypes.MONEY]: {\n transformValueFromAPI: () => (value: string | number) =>\n convertFromCents(value) ?? '',\n transformValueToAPI: () => convertToCents,\n },\n [supportedTypes.RADIO]: {\n transformValueToAPI: (field: any) => (value: string) => {\n if (field.transformToBool) {\n return value === 'yes';\n }\n return value;\n },\n },\n [supportedTypes.CHECKBOX]: {\n transformValueToAPI: (field: any) => (value: string | boolean) => {\n if (value === undefined) {\n return false;\n }\n\n if (field.const && value === true) {\n return field.const;\n }\n return value;\n },\n },\n [supportedTypes.SELECT]: {\n /**\n * Used for react-select, where the value is transformed\n * before saving on Formik state.\n * @param {Object | Object[]} option - Object structure with options config\n * @param {String} option[].value - Key for the API\n * @param {Array} this.options[].label - Friendly label\n * @example\n * [{ value: '1', label: 'One' }, { value: '2', label: 'Two' }] -> [\"One\", \"Two\"]\n * { value: '1', label: 'One' } -> \"One\"\n * {} -> \"\"\n */\n transformValue: (option: any | any[]) =>\n Array.isArray(option)\n ? option.map((opt) => opt.value) // multi-options\n : (option?.value ?? ''), // Fallback to '' in case user removes all options,\n },\n};\n\nexport function parseFormValuesToAPI(\n formValues: Record<string, any> = {},\n fields: any[],\n) {\n const filteredFields = fields.filter(\n (field) =>\n formValues[field.name!] ||\n (field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled),\n );\n\n const parsedFormValues = filteredFields.reduce(\n (acc, field) => {\n switch (field.type) {\n case supportedTypes.FIELDSET: {\n const fieldset = field;\n if (fieldset.valueGroupingDisabled) {\n const nestedFormValues = extractFieldsetFieldsValues(\n fieldset.fields,\n formValues,\n );\n\n Object.assign(\n acc,\n parseFormValuesToAPI(nestedFormValues, fieldset.fields),\n );\n } else {\n acc[field.name!] = parseFormValuesToAPI(\n formValues[field.name!],\n fieldset.fields,\n );\n }\n break;\n }\n\n case supportedTypes.TEXTAREA:\n case supportedTypes.TEXT: {\n // Attempt to remove null bytes from form values - https://gitlab.com/remote-com/employ-starbase/tracker/-/issues/10670\n acc[field.name] = formValues[field.name].replace(/\\0/g, '');\n break;\n }\n\n case supportedTypes.GROUP_ARRAY: {\n // NOTE: The field `name` in group arrays represents a path, but we only\n // need the last part of it which is represented by `nameKey`.\n\n const transformedFields = field?.fields?.().map((subField: any) => ({\n ...subField,\n name: subField.nameKey || '',\n }));\n\n // Null check necessary for case where no fields are set due to optional check\n const parsedFieldValues = formValues[field.name]?.map(\n (fieldValues: Record<string, any>) =>\n parseFormValuesToAPI(fieldValues, transformedFields),\n );\n\n acc[field.name] = parsedFieldValues;\n break;\n }\n case supportedTypes.EXTRA: {\n const extraField = field;\n if (extraField.includeValueToApi !== false) {\n const formValue = formValues[extraField.name];\n const fieldTransformValueToAPI =\n extraField?.transformValueToAPI ||\n fieldTypesTransformations[extraField.type]?.transformValueToAPI;\n\n // logErrorOnMissingComplimentaryParams(field);\n\n if (fieldTransformValueToAPI) {\n acc[extraField.name] = fieldTransformValueToAPI(field)(formValue);\n break;\n }\n\n acc[extraField.name] = formValue;\n break;\n }\n acc[extraField.name] = undefined;\n break;\n }\n default: {\n const formValue = formValues[field.name];\n const fieldTransformValueToAPI =\n field?.transformValueToAPI ||\n fieldTypesTransformations[field.type]?.transformValueToAPI;\n // logErrorOnMissingComplimentaryParams(field);\n if (fieldTransformValueToAPI) {\n acc[field.name] = fieldTransformValueToAPI(field)(formValue);\n break;\n }\n acc[field.name] = formValue;\n break;\n }\n }\n\n // this occurs when const === default in a JSON Schema for a given field.\n // without this, values such as money types won't use the correct value.\n if (field.forcedValue !== undefined) {\n acc[field.name!] = field.forcedValue;\n }\n\n return acc;\n },\n { ...formValues },\n );\n\n return parsedFormValues;\n}\n\nfunction isFieldVisible(field: any, formValues: Record<string, unknown>) {\n if (field.visibilityCondition) {\n return field.visibilityCondition(formValues);\n }\n\n if (typeof field.isVisible !== 'undefined') {\n return Boolean(field.isVisible);\n }\n\n return true;\n}\n\nfunction applyFieldDynamicProperties(\n field: any,\n values: Record<string, unknown> | Record<string, unknown>[],\n) {\n if (field.calculateDynamicProperties) {\n return {\n ...field,\n ...(field.calculateDynamicProperties(values) || {}),\n };\n }\n\n return field;\n}\n\nfunction excludeValuesInvisible(\n values: any,\n fields: any[],\n keepTruthyInvisibleValues?: boolean,\n parentFieldKeyPath?: string,\n) {\n const valuesAsked: Record<string, any> = {};\n\n fields\n .map((field) => applyFieldDynamicProperties(field, values))\n .forEach((field) => {\n let fieldKeyPath = field.name;\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${field.name}`\n : parentFieldKeyPath;\n }\n\n const valueOfField = get(values, fieldKeyPath!);\n\n // keepTruthyInvisibleValues: false/undefined -> remove invisible field\n // keepTruthyInvisibleValues: true -> keep invisible field if it has a value\n if (\n !isFieldVisible(field, values) &&\n !(keepTruthyInvisibleValues && !!valueOfField)\n ) {\n return;\n }\n\n if (field.meta?.ignoreValue) {\n return;\n }\n\n if (field.type === 'fieldset' && field.valueGroupingDisabled) {\n Object.assign(\n valuesAsked,\n excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n ),\n );\n } else if (Array.isArray(field.fields)) {\n valuesAsked[field.name!] = excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n );\n } else {\n if (valueOfField === undefined) {\n return;\n }\n valuesAsked[field.name!] = valueOfField;\n }\n });\n\n return valuesAsked;\n}\n\nfunction removeEmptyValues<T extends Record<string, any>>(\n obj: T,\n): Record<string, any> {\n return Object.fromEntries(\n Object.entries(obj).filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n ),\n );\n}\n\nexport function parseSubmitValues(\n formValues: Record<string, any>,\n fields: any[],\n config?: { keepInvisibleValues?: boolean },\n) {\n const visibleFormValues = config?.keepInvisibleValues\n ? formValues\n : excludeValuesInvisible(formValues, fields);\n const convertedFormValues = parseFormValuesToAPI(visibleFormValues, fields);\n const formValuesWithTrimmedStrings = trimStringValues(convertedFormValues);\n\n const formValuesWithUndefined = removeEmptyValues(\n formValuesWithTrimmedStrings,\n );\n\n const valuesWithReadOnly = prefillReadOnlyFields(\n formValuesWithUndefined,\n fields,\n );\n return valuesWithReadOnly;\n}\n\nexport function parseJSFToValidate(\n formValues: Record<string, any>,\n fields: Fields,\n config: { isPartialValidation: boolean } = {\n isPartialValidation: false,\n },\n) {\n const valuesParsed = parseSubmitValues(formValues, fields, {\n /* We cannot exclude invisible fields (excludeValuesInvisible) because\n they are needed for conditional fields validations */\n keepInvisibleValues: config?.isPartialValidation,\n });\n return valuesParsed;\n}\n\nfunction castFieldTo<T>(field: Field) {\n return field as unknown as T;\n}\n\nfunction getDefaultValueForType(type: string) {\n switch (type) {\n case supportedTypes.FILE:\n return undefined; // Allows fallback values in function declarations to be used\n default:\n return '';\n }\n}\n\nfunction getInitialDefaultValue(\n defaultValues: Record<string, any>,\n field: Field,\n) {\n // lodash get is needed because some values could be nested object, like billing address\n // use camelCase to support forms with fields in snake_case or kebab_case.\n const defaultFieldValue = get(defaultValues, field.name);\n const fieldTransformValueFromAPI =\n field?.transformValueFromAPI ||\n fieldTypesTransformations[field.type]?.transformValueFromAPI;\n\n if (fieldTransformValueFromAPI) {\n return fieldTransformValueFromAPI(field)(defaultFieldValue);\n }\n\n // TODO: We need to get rid of value as fn for json-schema. Related !5560\n const generatedValue =\n typeof field.value === 'function'\n ? field.value(defaultFieldValue, defaultValues)\n : null;\n\n // field.value is deprecated. should use \"default\" instead.\n const defaultValueDeprecated =\n typeof field.value !== 'function' ? field.value : null;\n const initialValueForCheckboxAsBool =\n castFieldTo<$TSFixMe>(field).checkboxValue === true\n ? defaultFieldValue || false\n : null;\n\n // nullish coalescing but excluding empty strings. (to support 0 (zero) as valid numbers)\n const excludeString = (val: any) => (val === '' ? undefined : val);\n\n return (\n excludeString(generatedValue) ??\n excludeString(defaultFieldValue) ??\n excludeString(defaultValueDeprecated) ??\n excludeString(field.default) ??\n initialValueForCheckboxAsBool ??\n getDefaultValueForType(field.type)\n );\n}\n\n/**\n * Get initial values for sub fields within fieldsets\n * @param {Object} field The form field\n * @param {Object} defaultValues The form default values\n * @param {String=} parentFieldKeyPath The path to the parent field using dot-notation\n * @returns {Object} The initial values for a fieldset\n */\nfunction getInitialSubFieldValues(\n field: $TSFixMe,\n defaultValues: Record<string, unknown>,\n parentFieldKeyPath?: string,\n) {\n const initialValue: Record<string, Record<string, unknown>> = {};\n\n let fieldKeyPath = field.name;\n\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${fieldKeyPath}`\n : parentFieldKeyPath;\n }\n\n const subFields = field.fields;\n\n if (Array.isArray(subFields)) {\n const subFieldValues = {};\n\n subFields.forEach((subField) => {\n Object.assign(\n subFieldValues,\n getInitialSubFieldValues(subField, defaultValues, fieldKeyPath),\n );\n });\n\n if (field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled) {\n Object.assign(initialValue, subFieldValues);\n } else {\n initialValue[field.name!] = subFieldValues;\n }\n } else {\n initialValue[field.name!] = getInitialDefaultValue(defaultValues, {\n ...field,\n // NOTE: To utilize the `get` function from `lodash` in `getInitialDefaultValue` correctly\n // we need to use the field path instead of just its name.\n name: fieldKeyPath,\n });\n }\n\n return initialValue;\n}\n\nexport function getInitialValues(\n fields: Fields,\n defaultValues: Record<string, unknown>,\n) {\n const initialValues: Record<string, unknown> = {};\n const defaultFieldValues = defaultValues;\n\n // loop over fields array\n // if prop does not exit in the initialValues object,\n // pluck off the name and value props and add it to the initialValues object;\n fields\n .map((field) => applyFieldDynamicProperties(field, defaultFieldValues))\n .forEach((field) => {\n switch (field.type) {\n case supportedTypes.FIELDSET: {\n if (field.valueGroupingDisabled) {\n Object.assign(\n initialValues,\n getInitialValues(field.fields, defaultFieldValues),\n );\n } else {\n const subFieldValues = getInitialSubFieldValues(\n field,\n defaultFieldValues,\n );\n Object.assign(initialValues, subFieldValues);\n }\n break;\n }\n default: {\n if (!initialValues[field.name]) {\n initialValues[field.name] = getInitialDefaultValue(\n defaultFieldValues,\n field,\n );\n }\n break;\n }\n }\n });\n\n return initialValues;\n}\n"],"mappings":"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","names":["get","textInputTypes","checkboxTypes","supportedTypes","round","value","__name","convertToValidCost","convertToCents","amount","validAmount","convertFromCents","normalizedValue","trimStringValues","values","result","key","item","prefillReadOnlyFields","fields","newValues","field","fieldName","extractFieldsetFieldsValues","formValues","nestedAcc","subField","fieldTypesTransformations","selectedCountries","option","selectedCountry","getCountryValue","opt","castValue","parseFormValuesToAPI","acc","fieldset","nestedFormValues","transformedFields","parsedFieldValues","fieldValues","extraField","formValue","fieldTransformValueToAPI","isFieldVisible","applyFieldDynamicProperties","excludeValuesInvisible","keepTruthyInvisibleValues","parentFieldKeyPath","valuesAsked","fieldKeyPath","valueOfField","get","removeEmptyValues","obj","parseSubmitValues","config","visibleFormValues","convertedFormValues","formValuesWithTrimmedStrings","formValuesWithUndefined","parseJSFToValidate","getDefaultValueForType","type","supportedTypes","__name","getInitialDefaultValue","defaultValues","field","defaultFieldValue","get","fieldTransformValueFromAPI","fieldTypesTransformations","generatedValue","defaultValueDeprecated","initialValueForCheckboxAsBool","excludeString","val","getInitialSubFieldValues","parentFieldKeyPath","initialValue","fieldKeyPath","subFields","subFieldValues","subField","getInitialValues","fields","initialValues","defaultFieldValues","applyFieldDynamicProperties"]}
1
+ {"version":3,"sources":["../src/components/form/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Field } from '@/src/flows/types';\nimport { $TSFixMe, Fields } from '@remoteoss/json-schema-form';\nimport get from 'lodash.get';\n\nconst textInputTypes = {\n TEXT: 'text',\n TEXTAREA: 'textarea',\n NUMBER: 'number',\n SELECT: 'select',\n COUNTRIES: 'countries',\n TEL: 'tel',\n EMAIL: 'email',\n MONEY: 'money',\n DATE: 'date',\n DATE_RANGE: 'date-range',\n CURRENCIES: 'currencies',\n TIME: 'time',\n} as const;\n\nconst checkboxTypes = {\n CHECKBOX: 'checkbox',\n ACK_CHECK: 'ack-check',\n} as const;\n\nconst supportedTypes = {\n FILE: 'file',\n RADIO: 'radio',\n /** @deprecated */\n RADIO_CARD: 'radio-card',\n GROUP_ARRAY: 'group-array',\n EXTRA: 'extra',\n STATEMENT: 'statement',\n HIDDEN: 'hidden',\n FIELDSET: 'fieldset',\n FIELDSET_FLAT: 'fieldset-flat',\n WORK_SCHEDULE: 'work-schedule',\n WORK_WEEK_SCHEDULE: 'work-week-schedule',\n /** @deprecated we still display benefits in read-only contract details view, but never in any form */\n BENEFITS: 'benefits',\n SIGNATURE: 'signature',\n SELECT_MULTIPLE: 'select-multiple',\n ...textInputTypes,\n ...checkboxTypes,\n} as const;\n\nfunction round(value: number): number {\n return Math.round((value + Number.EPSILON) * 100) / 100;\n}\n\nfunction convertToValidCost(value: string) {\n return parseFloat(value.replace(/,/g, ''));\n}\n\nexport function convertToCents(\n amount?: number | string | string[] | null | boolean,\n) {\n if (\n amount == null ||\n amount === '' ||\n Number.isNaN(amount) ||\n Array.isArray(amount) ||\n typeof amount === 'boolean'\n ) {\n return null;\n }\n\n let validAmount: number;\n\n if (typeof amount === 'string') {\n validAmount = convertToValidCost(amount);\n } else {\n validAmount = amount;\n }\n\n return round(validAmount * 100);\n}\n\nexport function convertFromCents(amount?: number | string | null) {\n if (amount == null || Number.isNaN(amount)) return null;\n\n let normalizedValue: number;\n\n if (typeof amount === 'string') {\n normalizedValue = convertToValidCost(amount || '0');\n } else {\n normalizedValue = amount;\n }\n\n return round(normalizedValue / 100);\n}\n\nconst trimStringValues = (values: Record<string, any>) =>\n Object.entries(values || {}).reduce<Record<string, any>>(\n (result, [key, value]) => {\n if (Array.isArray(value)) {\n // If the value is an array, recursively process each element\n result[key] = value.map((item) =>\n typeof item === 'object' && item !== null\n ? trimStringValues(item)\n : typeof item === 'string'\n ? item.trim()\n : item,\n );\n } else if (typeof value === 'object' && value !== null) {\n // If the value is an object, recursively process it\n result[key] = trimStringValues(value);\n } else {\n // Otherwise, trim the string or keep the value as is\n result[key] = typeof value === 'string' ? value.trim() : value;\n }\n return result;\n },\n {},\n );\n\n/**\n * Given a list of form values, modify the ones that are readOnly,\n * based on their field config, by adding its defaultValue.\n * This is needed to support readOnly fields that are also conditional\n * based on the \"pivotName\" workaround.\n * @param {Object} values - List with form values { name: value }.\n * @param {Array} fields - Respective form fields configuration.\n */\nfunction prefillReadOnlyFields(values: Record<string, any>, fields: any[]) {\n const newValues: Record<string, any> = {};\n\n fields.forEach((field) => {\n const fieldName = field.name;\n\n if (\n !Object.prototype.hasOwnProperty.call(values, fieldName!) &&\n !(field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled)\n )\n return;\n\n if (field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled) {\n Object.assign(newValues, prefillReadOnlyFields(values, field.fields));\n return;\n }\n\n if (field.readOnly && field.defaultValue) {\n newValues[fieldName!] = field.defaultValue;\n } else {\n newValues[fieldName!] = values[fieldName!];\n }\n });\n\n return newValues;\n}\n/**\n * Recursively extracts fieldsets' fields values and maps them to the field name\n * For nested fields that are fieldsets with valueGroupingDisabled, the values\n * are extracted one level up\n *\n * @param {Array} fields - Fieldset fields configuration.\n * @param {Object} formValues - List with form values { name: value }.\n * @return {Object} – Raw form values mapped to the field name\n */\nfunction extractFieldsetFieldsValues(\n fields: any[],\n formValues: Record<string, unknown>,\n) {\n return fields.reduce<Record<string, any>>((nestedAcc, subField) => {\n const isFieldsetValueGroupingDisabled =\n subField.type === supportedTypes.FIELDSET &&\n subField.valueGroupingDisabled;\n\n if (isFieldsetValueGroupingDisabled) {\n Object.assign(\n nestedAcc,\n extractFieldsetFieldsValues(subField.fields, formValues),\n );\n } else if (\n Object.prototype.hasOwnProperty.call(formValues, subField.name!)\n ) {\n nestedAcc[subField.name!] = formValues[subField.name!];\n }\n\n return nestedAcc;\n }, {});\n}\n\nexport const fieldTypesTransformations: Record<string, any> = {\n [supportedTypes.COUNTRIES]: {\n /**\n * @param {String[] | { name: String }[]} value\n * - Excepted: array of strings.\n * - Edge cases: array of objects. (when using dangerousTransformValue)\n * @returns {String[]} - List of countries\n * @example expected: ['Peru', 'Germany'] -> ['Peru', 'Germany']\n * @example edge cases: [{name: 'Peru'}, {name: 'Germany'}] -> ['Peru', 'Germany']\n */\n transformValueToAPI:\n (field: any) => (selectedCountries: string[] | { name: string }[]) => {\n if (!field.multiple || typeof selectedCountries === 'string') {\n return selectedCountries;\n }\n // NOTE: The value should be an array of strings, however legacy data can come as\n // an array of country objects. So, we always send an array of strings to normalize\n // the data (eg old form values being modified) until DB migration is done !5667\n return selectedCountries.map((option) =>\n typeof option === 'string' ? option : option.name,\n );\n },\n /**\n * Used for react-select, where the country selected is transformed\n * before saving on Formik state. Supports both solo and multi select\n * @param {Object|Object[]} selectedCountry[] - Current selected options\n * @param {String} selectedCountry[].value\n * @param {String} selectedCountry[].name\n * @param {String} selectedCountry[].label\n * @returns {String[]} - List of countries selected\n * @example\n * [{ value: 'Hungria' }] -> ['Hungria']\n */\n transformValue: (selectedCountry: any | any[]) => {\n // name or label are used in dragon. value is used in json-schema-form\n // TODO: it should be the same everywhere — read more at !5667\n const getCountryValue = (opt: any) =>\n opt?.name || opt?.value || opt?.label;\n return Array.isArray(selectedCountry)\n ? selectedCountry.map(getCountryValue) // support multi countries\n : getCountryValue(selectedCountry) || ''; // Fallback to '' in case user removes all countries\n },\n },\n [supportedTypes.NUMBER]: {\n transformValueToAPI: () => (value: string) => {\n // this prevents values with letters such as \"2r\" from being considered valid\n // if the input is invalid, number().cast will return NaN\n const castValue = Number(value);\n\n if (Number.isNaN(castValue)) {\n return value;\n }\n\n return castValue;\n },\n },\n [supportedTypes.MONEY]: {\n transformValueFromAPI: () => (value: string | number) =>\n convertFromCents(value) ?? '',\n transformValueToAPI: () => convertToCents,\n },\n [supportedTypes.RADIO]: {\n transformValueToAPI: (field: any) => (value: string) => {\n if (field.transformToBool) {\n return value === 'yes';\n }\n return value;\n },\n },\n [supportedTypes.CHECKBOX]: {\n transformValueToAPI: (field: any) => (value: string | boolean) => {\n if (value === undefined) {\n return false;\n }\n\n if (field.const && value === true) {\n return field.const;\n }\n return value;\n },\n },\n [supportedTypes.SELECT]: {\n /**\n * Used for react-select, where the value is transformed\n * before saving on Formik state.\n * @param {Object | Object[]} option - Object structure with options config\n * @param {String} option[].value - Key for the API\n * @param {Array} this.options[].label - Friendly label\n * @example\n * [{ value: '1', label: 'One' }, { value: '2', label: 'Two' }] -> [\"One\", \"Two\"]\n * { value: '1', label: 'One' } -> \"One\"\n * {} -> \"\"\n */\n transformValue: (option: any | any[]) =>\n Array.isArray(option)\n ? option.map((opt) => opt.value) // multi-options\n : (option?.value ?? ''), // Fallback to '' in case user removes all options,\n },\n};\n\nexport function parseFormValuesToAPI(\n formValues: Record<string, any> = {},\n fields: any[],\n) {\n const filteredFields = fields.filter(\n (field) =>\n formValues[field.name!] ||\n (field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled),\n );\n\n const parsedFormValues = filteredFields.reduce(\n (acc, field) => {\n switch (field.type) {\n case supportedTypes.FIELDSET: {\n const fieldset = field;\n if (fieldset.valueGroupingDisabled) {\n const nestedFormValues = extractFieldsetFieldsValues(\n fieldset.fields,\n formValues,\n );\n\n Object.assign(\n acc,\n parseFormValuesToAPI(nestedFormValues, fieldset.fields),\n );\n } else {\n acc[field.name!] = parseFormValuesToAPI(\n formValues[field.name!],\n fieldset.fields,\n );\n }\n break;\n }\n\n case supportedTypes.TEXTAREA:\n case supportedTypes.TEXT: {\n // Attempt to remove null bytes from form values - https://gitlab.com/remote-com/employ-starbase/tracker/-/issues/10670\n acc[field.name] = formValues[field.name].replace(/\\0/g, '');\n break;\n }\n\n case supportedTypes.GROUP_ARRAY: {\n // NOTE: The field `name` in group arrays represents a path, but we only\n // need the last part of it which is represented by `nameKey`.\n\n const transformedFields = field?.fields?.().map((subField: any) => ({\n ...subField,\n name: subField.nameKey || '',\n }));\n\n // Null check necessary for case where no fields are set due to optional check\n const parsedFieldValues = formValues[field.name]?.map(\n (fieldValues: Record<string, any>) =>\n parseFormValuesToAPI(fieldValues, transformedFields),\n );\n\n acc[field.name] = parsedFieldValues;\n break;\n }\n case supportedTypes.EXTRA: {\n const extraField = field;\n if (extraField.includeValueToApi !== false) {\n const formValue = formValues[extraField.name];\n const fieldTransformValueToAPI =\n extraField?.transformValueToAPI ||\n fieldTypesTransformations[extraField.type]?.transformValueToAPI;\n\n // logErrorOnMissingComplimentaryParams(field);\n\n if (fieldTransformValueToAPI) {\n acc[extraField.name] = fieldTransformValueToAPI(field)(formValue);\n break;\n }\n\n acc[extraField.name] = formValue;\n break;\n }\n acc[extraField.name] = undefined;\n break;\n }\n default: {\n const formValue = formValues[field.name];\n const fieldTransformValueToAPI =\n field?.transformValueToAPI ||\n fieldTypesTransformations[field.type]?.transformValueToAPI;\n // logErrorOnMissingComplimentaryParams(field);\n if (fieldTransformValueToAPI) {\n acc[field.name] = fieldTransformValueToAPI(field)(formValue);\n break;\n }\n acc[field.name] = formValue;\n break;\n }\n }\n\n // this occurs when const === default in a JSON Schema for a given field.\n // without this, values such as money types won't use the correct value.\n if (field.forcedValue !== undefined) {\n acc[field.name!] = field.forcedValue;\n }\n\n return acc;\n },\n { ...formValues },\n );\n\n return parsedFormValues;\n}\n\nfunction isFieldVisible(field: any, formValues: Record<string, unknown>) {\n if (field.visibilityCondition) {\n return field.visibilityCondition(formValues);\n }\n\n if (typeof field.isVisible !== 'undefined') {\n return Boolean(field.isVisible);\n }\n\n return true;\n}\n\nfunction applyFieldDynamicProperties(\n field: any,\n values: Record<string, unknown> | Record<string, unknown>[],\n) {\n if (field.calculateDynamicProperties) {\n return {\n ...field,\n ...(field.calculateDynamicProperties(values) || {}),\n };\n }\n\n return field;\n}\n\nfunction excludeValuesInvisible(\n values: any,\n fields: any[],\n keepTruthyInvisibleValues?: boolean,\n parentFieldKeyPath?: string,\n) {\n const valuesAsked: Record<string, any> = {};\n\n fields\n .map((field) => applyFieldDynamicProperties(field, values))\n .forEach((field) => {\n let fieldKeyPath = field.name;\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${field.name}`\n : parentFieldKeyPath;\n }\n\n const valueOfField = get(values, fieldKeyPath!);\n\n // keepTruthyInvisibleValues: false/undefined -> remove invisible field\n // keepTruthyInvisibleValues: true -> keep invisible field if it has a value\n if (\n !isFieldVisible(field, values) &&\n !(keepTruthyInvisibleValues && !!valueOfField)\n ) {\n return;\n }\n\n if (field.meta?.ignoreValue) {\n return;\n }\n\n if (field.type === 'fieldset' && field.valueGroupingDisabled) {\n Object.assign(\n valuesAsked,\n excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n ),\n );\n } else if (Array.isArray(field.fields)) {\n valuesAsked[field.name!] = excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n );\n } else {\n if (valueOfField === undefined) {\n return;\n }\n valuesAsked[field.name!] = valueOfField;\n }\n });\n\n return valuesAsked;\n}\n\nfunction removeEmptyValues<T extends Record<string, any>>(\n obj: T,\n): Record<string, any> {\n return Object.fromEntries(\n Object.entries(obj).filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n ),\n );\n}\n\nexport function parseSubmitValues(\n formValues: Record<string, any>,\n fields: any[],\n config?: { keepInvisibleValues?: boolean },\n) {\n const visibleFormValues = config?.keepInvisibleValues\n ? formValues\n : excludeValuesInvisible(formValues, fields);\n const convertedFormValues = parseFormValuesToAPI(visibleFormValues, fields);\n const formValuesWithTrimmedStrings = trimStringValues(convertedFormValues);\n\n const formValuesWithUndefined = removeEmptyValues(\n formValuesWithTrimmedStrings,\n );\n\n const valuesWithReadOnly = prefillReadOnlyFields(\n formValuesWithUndefined,\n fields,\n );\n return valuesWithReadOnly;\n}\n\nexport function parseJSFToValidate(\n formValues: Record<string, any>,\n fields: Fields,\n config: { isPartialValidation: boolean } = {\n isPartialValidation: false,\n },\n) {\n const valuesParsed = parseSubmitValues(formValues, fields, {\n /* We cannot exclude invisible fields (excludeValuesInvisible) because\n they are needed for conditional fields validations */\n keepInvisibleValues: config?.isPartialValidation,\n });\n return valuesParsed;\n}\n\nfunction castFieldTo<T>(field: Field) {\n return field as unknown as T;\n}\n\nfunction getDefaultValueForType(type: string) {\n switch (type) {\n case supportedTypes.FILE:\n return undefined; // Allows fallback values in function declarations to be used\n default:\n return '';\n }\n}\n\nfunction getInitialDefaultValue(\n defaultValues: Record<string, any>,\n field: Field,\n) {\n // lodash get is needed because some values could be nested object, like billing address\n // use camelCase to support forms with fields in snake_case or kebab_case.\n const defaultFieldValue = get(defaultValues, field.name);\n const fieldTransformValueFromAPI =\n field?.transformValueFromAPI ||\n fieldTypesTransformations[field.type]?.transformValueFromAPI;\n\n if (fieldTransformValueFromAPI) {\n return fieldTransformValueFromAPI(field)(defaultFieldValue);\n }\n\n // TODO: We need to get rid of value as fn for json-schema. Related !5560\n const generatedValue =\n typeof field.value === 'function'\n ? field.value(defaultFieldValue, defaultValues)\n : null;\n\n // field.value is deprecated. should use \"default\" instead.\n const defaultValueDeprecated =\n typeof field.value !== 'function' ? field.value : null;\n const initialValueForCheckboxAsBool =\n castFieldTo<$TSFixMe>(field).checkboxValue === true\n ? defaultFieldValue || false\n : null;\n\n // nullish coalescing but excluding empty strings. (to support 0 (zero) as valid numbers)\n const excludeString = (val: any) => (val === '' ? undefined : val);\n\n return (\n excludeString(generatedValue) ??\n excludeString(defaultFieldValue) ??\n excludeString(defaultValueDeprecated) ??\n excludeString(field.default) ??\n initialValueForCheckboxAsBool ??\n getDefaultValueForType(field.type)\n );\n}\n\n/**\n * Get initial values for sub fields within fieldsets\n * @param {Object} field The form field\n * @param {Object} defaultValues The form default values\n * @param {String=} parentFieldKeyPath The path to the parent field using dot-notation\n * @returns {Object} The initial values for a fieldset\n */\nfunction getInitialSubFieldValues(\n field: $TSFixMe,\n defaultValues: Record<string, unknown>,\n parentFieldKeyPath?: string,\n) {\n const initialValue: Record<string, Record<string, unknown>> = {};\n\n let fieldKeyPath = field.name;\n\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${fieldKeyPath}`\n : parentFieldKeyPath;\n }\n\n const subFields = field.fields;\n\n if (Array.isArray(subFields)) {\n const subFieldValues = {};\n\n subFields.forEach((subField) => {\n Object.assign(\n subFieldValues,\n getInitialSubFieldValues(subField, defaultValues, fieldKeyPath),\n );\n });\n\n if (field.type === supportedTypes.FIELDSET && field.valueGroupingDisabled) {\n Object.assign(initialValue, subFieldValues);\n } else {\n initialValue[field.name!] = subFieldValues;\n }\n } else {\n initialValue[field.name!] = getInitialDefaultValue(defaultValues, {\n ...field,\n // NOTE: To utilize the `get` function from `lodash` in `getInitialDefaultValue` correctly\n // we need to use the field path instead of just its name.\n name: fieldKeyPath,\n });\n }\n\n return initialValue;\n}\n\nexport function getInitialValues(\n fields: Fields,\n defaultValues: Record<string, unknown>,\n) {\n const initialValues: Record<string, unknown> = {};\n const defaultFieldValues = defaultValues;\n\n // loop over fields array\n // if prop does not exit in the initialValues object,\n // pluck off the name and value props and add it to the initialValues object;\n fields\n .map((field) => applyFieldDynamicProperties(field, defaultFieldValues))\n .forEach((field) => {\n switch (field.type) {\n case supportedTypes.FIELDSET: {\n if (field.valueGroupingDisabled) {\n Object.assign(\n initialValues,\n getInitialValues(field.fields, defaultFieldValues),\n );\n } else {\n const subFieldValues = getInitialSubFieldValues(\n field,\n defaultFieldValues,\n );\n Object.assign(initialValues, subFieldValues);\n }\n break;\n }\n default: {\n if (!initialValues[field.name]) {\n initialValues[field.name] = getInitialDefaultValue(\n defaultFieldValues,\n field,\n );\n }\n break;\n }\n }\n });\n\n return initialValues;\n}\n"],"mappings":"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","names":["get","textInputTypes","checkboxTypes","supportedTypes","round","value","__name","convertToValidCost","convertToCents","amount","validAmount","convertFromCents","normalizedValue","trimStringValues","values","result","key","item","prefillReadOnlyFields","fields","newValues","field","fieldName","extractFieldsetFieldsValues","formValues","nestedAcc","subField","fieldTypesTransformations","selectedCountries","option","selectedCountry","getCountryValue","opt","castValue","parseFormValuesToAPI","acc","fieldset","nestedFormValues","transformedFields","parsedFieldValues","fieldValues","extraField","formValue","fieldTransformValueToAPI","isFieldVisible","applyFieldDynamicProperties","excludeValuesInvisible","keepTruthyInvisibleValues","parentFieldKeyPath","valuesAsked","fieldKeyPath","valueOfField","get","removeEmptyValues","obj","parseSubmitValues","config","visibleFormValues","convertedFormValues","formValuesWithTrimmedStrings","formValuesWithUndefined","parseJSFToValidate","getDefaultValueForType","type","supportedTypes","__name","getInitialDefaultValue","defaultValues","field","defaultFieldValue","get","fieldTransformValueFromAPI","fieldTypesTransformations","generatedValue","defaultValueDeprecated","initialValueForCheckboxAsBool","excludeString","val","getInitialSubFieldValues","parentFieldKeyPath","initialValue","fieldKeyPath","subFields","subFieldValues","subField","getInitialValues","fields","initialValues","defaultFieldValues","applyFieldDynamicProperties"]}
@@ -0,0 +1,2 @@
1
+ import{a as Fe}from"./chunk-MO7KC4HE.js";import{a as Se,b as be,c as b,d as ge}from"./chunk-XIPPSRO6.js";import{a as re,b as ce,c as le,f as me,g as de,h as fe,i as ue,j as ye,l as pe}from"./chunk-XKSOWDLS.js";import{a as w}from"./chunk-QW4JPW6J.js";import{a as _e}from"./chunk-PJBAQZ6G.js";import{c as S,d as T}from"./chunk-MH6KKP6K.js";import{a as r}from"./chunk-P37U34EQ.js";import{useEffect as xe,useMemo as l,useRef as Ge,useState as Ee}from"react";import We from"lodash.mergewith";import{jsx as Qe}from"react/jsx-runtime";var Ke={employment_basic_information:"basic_information",contract_details:"contract_details"},Ye={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},ze=r(({isLoadingBasicInformationForm:m,isLoadingContractDetailsForm:R,isLoadingEmployment:N,isLoadingBenefitsOffersSchema:v,isLoadingBenefitOffers:a,isLoadingCompany:j,isLoadingCountries:u,employmentStatus:o,employmentId:J,currentStepName:i,basicInformationFields:P,contractDetailsFields:c})=>{let g=m||R||N||v||a||j||u,B=o&&ge.includes(o),F=!!(J&&B&&i!=="review"),I=g||F,y=!!(F&&!g&&P.length>0&&c.length>0);return{isLoading:I,isNavigatingToReview:y,isEmploymentReadOnly:B}},"getLoadingStates"),st=r(({employmentId:m,companyId:R,countryCode:N,type:v,options:a,skipSteps:j})=>{let u=Ge({select_country:{},basic_information:{},contract_details:{},benefits:{}}),[o,J]=Ee(m),[i,P]=Ee(N||null),{data:c,isLoading:g,refetch:B}=re(o);c?.country?.code&&i!==c.country.code&&P(c.country.code);let{data:F,isLoading:I}=le(o),{data:y,isLoading:A,refetch:he}=ce(R),Oe=j?.includes("select_country")?be:Se,{fieldValues:p,stepState:e,setFieldValues:Ve,previousStep:Ce,nextStep:Le,goToStep:D,setStepValues:U}=_e(Oe),{selectCountryForm:k,isLoading:H}=pe({jsfModify:a?.jsfModify?.select_country,jsonSchemaVersion:a?.jsonSchemaVersion,queryOptions:{enabled:e.currentStep.name==="select_country"}}),x=fe(a),G=ue(a),W=ye(a),{mutateAsync:Me}=w(x),{mutateAsync:K}=w(G),{mutateAsync:Te}=w(W),Pe=Ye[e.currentStep.name]||"employment_basic_information",Be=Ke[Pe],Ie=c?.[Be]||{},Y=r(({form:n,options:s={}})=>me({countryCode:i,form:n,fieldValues:Object.keys(p).length>0?{...e.values?.[e.currentStep.name],...p}:Ie,options:{...s,queryOptions:{enabled:s.queryOptions?.enabled??!0}}}),"useJSONSchema"),ke=!!(i&&(e.currentStep.name==="basic_information"||m)),we=!!(i&&(e.currentStep.name==="contract_details"||m)),{data:d,isLoading:z}=Y({form:"employment_basic_information",options:{jsfModify:a?.jsfModify?.basic_information,queryOptions:{enabled:ke}}}),_=a?.jsfModify?.contract_details?.fields?.annual_gross_salary,q=_&&typeof _=="object"&&"presentation"in _?_.presentation:void 0,Re=l(()=>({fields:{annual_gross_salary:{..._,presentation:{annual_gross_salary_conversion_properties:{label:q?.annual_gross_salary_conversion_properties?.label,description:q?.annual_gross_salary_conversion_properties?.description},desiredCurrency:y?.desired_currency,Component:r(n=>Qe(Fe,{desiredCurrency:y?.desired_currency||"",...n}),"Component")}}}}),[y?.desired_currency,q,_]),{data:f,isLoading:Q}=Y({form:"contract_details",options:{jsfModify:{...a?.jsfModify?.contract_details,fields:{...a?.jsfModify?.contract_details?.fields,...Re.fields}},queryOptions:{enabled:we}}}),{data:E,isLoading:X}=de(o,p,a),Z=l(()=>{if(e.currentStep.name==="benefits"){let n={...e.values?.[e.currentStep.name],...p};return We({},F,n)}return{}},[e.currentStep.name,F,e.values,p]),t=l(()=>({select_country:k?.fields||[],basic_information:d?.fields||[],contract_details:f?.fields||[],benefits:E?.fields||[],review:[]}),[k?.fields,d?.fields,f?.fields,E?.fields]),{country:{code:$}={},basic_information:ee={},contract_details:te={},status:ne}=c||{},oe=e.currentStep.name,h=l(()=>T(t.select_country,{country:i||$||""}),[t.select_country,i,$]),O=l(()=>T(t.basic_information,ee||{}),[t.basic_information,ee]),V=l(()=>T(t.contract_details,te||{}),[t.contract_details,te]),C=l(()=>T(t.benefits,Z),[t.benefits,Z]),Ne=l(()=>({select_country:h,basic_information:O,contract_details:V,benefits:C}),[h,O,V,C]),{isLoading:ve,isNavigatingToReview:ae,isEmploymentReadOnly:je}=l(()=>ze({isLoadingBasicInformationForm:z,isLoadingContractDetailsForm:Q,isLoadingEmployment:g,isLoadingBenefitsOffersSchema:X,isLoadingBenefitOffers:I,isLoadingCompany:A,isLoadingCountries:H,employmentId:m,employmentStatus:ne,basicInformationFields:t.basic_information,contractDetailsFields:t.contract_details,currentStepName:oe}),[z,Q,g,X,I,A,H,m,ne,t.basic_information,t.contract_details,oe]);xe(()=>{ae&&(u.current={select_country:b(h,t.select_country),basic_information:b(O,t.basic_information),contract_details:b(V,t.contract_details),benefits:b(C,t.benefits)},U({select_country:h,basic_information:O,contract_details:V,benefits:C,review:{}}),D("review"))},[O,C,V,D,ae,h,U,t.basic_information,t.benefits,t.contract_details,t.select_country]);let ie=r(n=>k&&e.currentStep.name==="select_country"?n:d&&e.currentStep.name==="basic_information"?S(n,d?.fields,{isPartialValidation:!0}):f&&e.currentStep.name==="contract_details"?S(n,f?.fields,{isPartialValidation:!0}):{},"parseFormValues");async function Je(n){let s=e.currentStep.name;s in u.current&&(u.current[s]=b(n,t[s]));let L=ie(n);switch(he(),e.currentStep.name){case"select_country":return P(L.country),Promise.resolve({data:{countryCode:L.country}});case"basic_information":{let se=!o&&i,Ue=o&&i&&c?.country&&c?.country.code!==i;if(se||Ue){let He={basic_information:L,type:v,country_code:i};try{let M=await Me(He);return J(M.data?.data?.employment?.id),M}catch(M){throw console.error("Error creating onboarding:",M),M}}else if(o)return K({employmentId:o,basic_information:L,pricing_plan_details:{frequency:"monthly"}});return}case"contract_details":return K({employmentId:o,...{contract_details:L,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return Te({employmentId:o,...n})}}r(Je,"onSubmit");function De(){Ce()}r(De,"back");function qe(){Le()}r(qe,"next");function Ae(n){D(n)}return r(Ae,"goTo"),{employmentId:o,creditRiskStatus:y?.default_legal_entity_credit_risk_status,fieldValues:p,stepState:e,fields:t[e.currentStep.name],isLoading:ve,isSubmitting:x.isPending||G.isPending||W.isPending,initialValues:Ne,handleValidation:r(n=>{if(e.currentStep.name==="select_country")return k.handleValidation(n);if(e.currentStep.name==="benefits"&&E){let s=S(n,E?.fields);return E?.handleValidation(s)}if(d&&e.currentStep.name==="basic_information"){let s=S(n,d?.fields);return d?.handleValidation(s)}if(f&&e.currentStep.name==="contract_details"){let s=S(n,f?.fields);return f?.handleValidation(s)}return null},"handleValidation"),checkFieldUpdates:Ve,parseFormValues:ie,onSubmit:Je,back:De,next:qe,goTo:Ae,meta:{fields:u.current},refetchEmployment:B,employment:c,isEmploymentReadOnly:je}},"useOnboarding");export{st as a};
2
+ //# sourceMappingURL=chunk-MNFM2TNK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/hooks.tsx"],"sourcesContent":["import {\n Employment,\n EmploymentCreateParams,\n EmploymentFullParams,\n} from '@/src/client';\nimport { Fields } from '@remoteoss/json-schema-form';\n\nimport { useStepState, Step } from '@/src/flows/useStepState';\nimport {\n prettifyFormValues,\n reviewStepAllowedEmploymentStatus,\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n} from '@/src/flows/Onboarding/utils';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { FieldValues } from 'react-hook-form';\nimport { Meta, OnboardingFlowParams } from '@/src/flows/Onboarding/types';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport mergeWith from 'lodash.mergewith';\nimport {\n useBenefitOffers,\n useBenefitOffersSchema,\n useCompany,\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n useUpdateBenefitsOffers,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport { JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { AnnualGrossSalary } from '@/src/flows/Onboarding/components/AnnualGrossSalary';\nimport { JSFField } from '@/src/types/remoteFlows';\n\ntype OnboardingHookProps = OnboardingFlowParams;\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n contract_details: 'contract_details',\n};\n\nconst stepToFormSchemaMap: Record<\n keyof typeof STEPS,\n JSONSchemaFormType | null\n> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: 'contract_details',\n benefits: null,\n review: null,\n};\n\nconst getLoadingStates = ({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentStatus,\n employmentId,\n currentStepName,\n basicInformationFields,\n contractDetailsFields,\n}: {\n isLoadingBasicInformationForm: boolean;\n isLoadingContractDetailsForm: boolean;\n isLoadingEmployment: boolean;\n isLoadingBenefitsOffersSchema: boolean;\n isLoadingBenefitOffers: boolean;\n isLoadingCompany: boolean;\n isLoadingCountries: boolean;\n employmentStatus?: Employment['status'];\n employmentId?: string;\n currentStepName: string;\n basicInformationFields: Fields;\n contractDetailsFields: Fields;\n}) => {\n const initialLoading =\n isLoadingBasicInformationForm ||\n isLoadingContractDetailsForm ||\n isLoadingEmployment ||\n isLoadingBenefitsOffersSchema ||\n isLoadingBenefitOffers ||\n isLoadingCompany ||\n isLoadingCountries;\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId && isEmploymentReadOnly && currentStepName !== 'review',\n );\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n const isNavigatingToReview = Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n basicInformationFields.length > 0 &&\n contractDetailsFields.length > 0,\n );\n\n return { isLoading, isNavigatingToReview, isEmploymentReadOnly };\n};\n\nexport const useOnboarding = ({\n employmentId,\n companyId,\n countryCode,\n type,\n options,\n skipSteps,\n}: OnboardingHookProps) => {\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n benefits: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n benefits: {},\n });\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (\n employment?.country?.code &&\n internalCountryCode !== employment.country.code\n ) {\n setInternalCountryCode(employment.country.code);\n }\n\n const { data: benefitOffers, isLoading: isLoadingBenefitOffers } =\n useBenefitOffers(internalEmploymentId);\n const {\n data: company,\n isLoading: isLoadingCompany,\n refetch: refetchCompany,\n } = useCompany(companyId);\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const createEmploymentMutation = useCreateEmployment(options);\n const updateEmploymentMutation = useUpdateEmployment(options);\n const updateBenefitsOffersMutation = useUpdateBenefitsOffers(options);\n const { mutateAsync: createEmploymentMutationAsync } = mutationToPromise(\n createEmploymentMutation,\n );\n const { mutateAsync: updateEmploymentMutationAsync } = mutationToPromise(\n updateEmploymentMutation,\n );\n const { mutateAsync: updateBenefitsOffersMutationAsync } = mutationToPromise(\n updateBenefitsOffersMutation,\n );\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'employment_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n };\n }) => {\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues:\n Object.keys(fieldValues).length > 0\n ? {\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : serverEmploymentData,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'employment_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n });\n\n const annualGrossSalaryField =\n options?.jsfModify?.contract_details?.fields?.annual_gross_salary;\n const annualSalaryFieldPresentation =\n annualGrossSalaryField &&\n typeof annualGrossSalaryField === 'object' &&\n 'presentation' in annualGrossSalaryField\n ? (\n annualGrossSalaryField as {\n presentation?: {\n annual_gross_salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const customFields = useMemo(\n () => ({\n fields: {\n annual_gross_salary: {\n ...annualGrossSalaryField,\n presentation: {\n annual_gross_salary_conversion_properties: {\n label:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.label,\n description:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.description,\n },\n desiredCurrency: company?.desired_currency,\n Component: (props: JSFField & { currency: string }) => (\n <AnnualGrossSalary\n desiredCurrency={company?.desired_currency || ''}\n {...props}\n />\n ),\n },\n },\n },\n }),\n [\n company?.desired_currency,\n annualSalaryFieldPresentation,\n annualGrossSalaryField,\n ],\n );\n\n const { data: contractDetailsForm, isLoading: isLoadingContractDetailsForm } =\n useJSONSchema({\n form: 'contract_details',\n options: {\n jsfModify: {\n ...options?.jsfModify?.contract_details,\n fields: {\n ...options?.jsfModify?.contract_details?.fields,\n ...customFields.fields,\n },\n },\n queryOptions: {\n enabled: isContractDetailsEnabled,\n },\n },\n });\n\n const {\n data: benefitOffersSchema,\n isLoading: isLoadingBenefitsOffersSchema,\n } = useBenefitOffersSchema(\n internalEmploymentId as string,\n fieldValues,\n options,\n );\n\n const initialValuesBenefitOffers = useMemo(() => {\n if (stepState.currentStep.name === 'benefits') {\n const benefitsFormValues = {\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n };\n return mergeWith({}, benefitOffers, benefitsFormValues);\n }\n return {};\n }, [\n stepState.currentStep.name,\n benefitOffers,\n stepState.values,\n fieldValues,\n ]);\n\n const stepFields: Record<keyof typeof STEPS, Fields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n contract_details: contractDetailsForm?.fields || [],\n benefits: benefitOffersSchema?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n contractDetailsForm?.fields,\n benefitOffersSchema?.fields,\n ],\n );\n\n const {\n country: { code: employmentCountryCode } = {},\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n status: employmentStatus,\n } = employment || {};\n const currentStepName = stepState.currentStep.name;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n const basicInformationInitialValues = useMemo(\n () =>\n getInitialValues(\n stepFields.basic_information,\n employmentBasicInformation || {},\n ),\n [stepFields.basic_information, employmentBasicInformation],\n );\n\n const contractDetailsInitialValues = useMemo(\n () =>\n getInitialValues(\n stepFields.contract_details,\n employmentContractDetails || {},\n ),\n [stepFields.contract_details, employmentContractDetails],\n );\n\n const benefitsInitialValues = useMemo(\n () => getInitialValues(stepFields.benefits, initialValuesBenefitOffers),\n [stepFields.benefits, initialValuesBenefitOffers],\n );\n\n const initialValues = useMemo(\n () => ({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n }),\n [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n benefitsInitialValues,\n ],\n );\n\n const { isLoading, isNavigatingToReview, isEmploymentReadOnly } = useMemo(\n () =>\n getLoadingStates({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentId,\n employmentStatus: employmentStatus,\n basicInformationFields: stepFields.basic_information,\n contractDetailsFields: stepFields.contract_details,\n currentStepName: currentStepName,\n }),\n [\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentId,\n employmentStatus,\n stepFields.basic_information,\n stepFields.contract_details,\n currentStepName,\n ],\n );\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n ),\n benefits: prettifyFormValues(\n benefitsInitialValues,\n stepFields.benefits,\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n review: {},\n });\n\n goToStep('review');\n }\n }, [\n basicInformationInitialValues,\n benefitsInitialValues,\n contractDetailsInitialValues,\n goToStep,\n isNavigatingToReview,\n selectCountryInitialValues,\n setStepValues,\n stepFields.basic_information,\n stepFields.benefits,\n stepFields.contract_details,\n stepFields.select_country,\n ]);\n\n const parseFormValues = (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: true,\n });\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return parseJSFToValidate(values, contractDetailsForm?.fields, {\n isPartialValidation: true,\n });\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n // Prettify values for the current step\n const currentStepName = stepState.currentStep.name;\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n\n const parsedValues = parseFormValues(values);\n refetchCompany();\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: type,\n country_code: internalCountryCode,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n setInternalEmploymentId(\n // @ts-expect-error the types from the response are not matching\n response.data?.data?.employment?.id,\n );\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: EmploymentFullParams = {\n contract_details: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n };\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId as string,\n ...payload,\n });\n }\n\n case 'benefits': {\n return updateBenefitsOffersMutationAsync({\n employmentId: internalEmploymentId as string,\n ...values,\n });\n }\n }\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n function goTo(step: keyof typeof STEPS) {\n goToStep(step);\n }\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId: internalEmploymentId,\n\n /**\n * Credit risk status of the company, useful to know what to to show in the review step\n * The possible values are:\n * - not_started\n * - ready\n * - in_progress\n * - referred\n * - fail\n * - deposit_required\n * - no_deposit_required\n */\n\n creditRiskStatus: company?.default_legal_entity_credit_risk_status,\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n /**\n * Loading state indicating if the onboarding schema is being fetched\n */\n isLoading: isLoading,\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n updateBenefitsOffersMutation.isPending,\n /**\n * Initial form values\n */\n initialValues,\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: FieldValues) => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n if (stepState.currentStep.name === 'benefits' && benefitOffersSchema) {\n const parsedValues = parseJSFToValidate(\n values,\n benefitOffersSchema?.fields,\n );\n\n return benefitOffersSchema?.handleValidation(parsedValues);\n }\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n contractDetailsForm?.fields,\n );\n return contractDetailsForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo,\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n },\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment,\n /**\n * Employment data\n */\n employment,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited, created_awaiting_reserve or created_reserve_paid\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","mergeWith","jsx","jsonSchemaToEmployment","stepToFormSchemaMap","getLoadingStates","__name","isLoadingBasicInformationForm","isLoadingContractDetailsForm","isLoadingEmployment","isLoadingBenefitsOffersSchema","isLoadingBenefitOffers","isLoadingCompany","isLoadingCountries","employmentStatus","employmentId","currentStepName","basicInformationFields","contractDetailsFields","initialLoading","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","shouldHandleReadOnlyEmployment","isLoading","isNavigatingToReview","useOnboarding","companyId","countryCode","type","options","skipSteps","fieldsMetaRef","useRef","internalEmploymentId","setInternalEmploymentId","useState","internalCountryCode","setInternalCountryCode","employment","refetchEmployment","useEmployment","benefitOffers","useBenefitOffers","company","refetchCompany","useCompany","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","selectCountryForm","useCountriesSchemaField","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","updateBenefitsOffersMutation","useUpdateBenefitsOffers","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractDetailsEnabled","basicInformationForm","annualGrossSalaryField","annualSalaryFieldPresentation","customFields","useMemo","props","AnnualGrossSalary","contractDetailsForm","benefitOffersSchema","useBenefitOffersSchema","initialValuesBenefitOffers","benefitsFormValues","mergeWith","stepFields","employmentCountryCode","employmentBasicInformation","employmentContractDetails","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","contractDetailsInitialValues","benefitsInitialValues","initialValues","useEffect","prettifyFormValues","parseFormValues","values","parseJSFToValidate","onSubmit","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","back","next","goTo","step"]}
@@ -0,0 +1,2 @@
1
+ import{a as x}from"./chunk-WIRFNWEU.js";import{a as R}from"./chunk-3NZ6PO4D.js";import{a as N}from"./chunk-32RYPLZK.js";import{a as _,b as h,c as v,d as T,e as w}from"./chunk-EEAMZPP6.js";import{a as P}from"./chunk-FB5J7SRP.js";import{a as g}from"./chunk-XO3JWN33.js";import{a as i}from"./chunk-KPHSEIR3.js";import{a as l}from"./chunk-P37U34EQ.js";import{lazy as z,useState as H}from"react";import*as n from"@radix-ui/react-tabs";import{jsx as b}from"react/jsx-runtime";function k({className:r,...o}){return b(n.Root,{"data-slot":"tabs",className:i("flex flex-col gap-2",r),...o})}l(k,"Tabs");function B({className:r,...o}){return b(n.List,{"data-slot":"tabs-list",className:i("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",r),...o})}l(B,"TabsList");function d({className:r,...o}){return b(n.Trigger,{"data-slot":"tabs-trigger",className:i("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",r),...o})}l(d,"TabsTrigger");import{Fragment as G,jsx as t,jsxs as a}from"react/jsx-runtime";var E=z(()=>import("./flows/CostCalculator/Results/CostCalculatorResultsChart.js"));function X({employmentData:r,options:o}){let[s,S]=H("monthly"),c=r.employments?.[0];if(!c)return null;let e=c.employer_currency_costs,m=e.currency.symbol,f=s==="monthly"?e.monthly_gross_salary:e.annual_gross_salary,C=s==="monthly"?e.monthly_benefits_total:e.annual_benefits_total,p=s==="monthly"?e.monthly_contributions_total:e.annual_contributions_total,D=s==="monthly"?e.monthly_total:e.annual_total,u=s==="monthly"?e.monthly_benefits_breakdown:e.annual_benefits_breakdown,L=s==="monthly"?e.monthly_contributions_breakdown:e.annual_contributions_breakdown,y=[{name:"Gross Salary",value:f,color:o?.chartColors?.grossSalary??"#3b82f6"},{name:"Contributions",value:p,color:o?.chartColors?.contributions??"#f59e0b"}];return u&&y.push({name:"Benefits",value:C??0,color:o?.chartColors?.benefits??"#10b981"}),a(G,{children:[a("div",{className:"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults",children:[a("div",{className:"RemoteFlows__CostCalculatorResults__Header",children:[a("h2",{className:"text-xl font-semibold flex items-center gap-2",children:[t("span",{className:"flex items-center gap-1",children:o?.title??"Cost Calculator"}),t(g,{className:"ml-2",children:c.country.name})]}),t("p",{className:"text-primary-foreground font-medium mt-1",children:o?.description??`Total cost of employment in ${c.country.name}`})]}),t(k,{value:s,onValueChange:F=>S(F),className:"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs",children:a(B,{className:"grid w-full md:w-[200px] grid-cols-2",children:[t(d,{value:"monthly",children:"Monthly"}),t(d,{value:"annual",children:"Annual"})]})})]}),a("div",{className:i("grid grid-cols-1 gap-6",o?.showChart?"md:grid-cols-3":"","RemoteFlows__CostCalculatorResults_CostBreakdown"),children:[a(_,{className:"md:col-span-2 rounded-lg",children:[a(h,{className:"pb-2",children:[t(v,{children:"Cost Breakdown"}),t(T,{children:"Detailed breakdown of all employer costs"})]}),t(w,{children:a("div",{className:"space-y-6",children:[t(N,{grossSalary:f,currency:m}),u?t(x,{benefitsBreakdown:u,benefitsTotal:C,currency:m}):null,t(R,{contributionsBreakdown:L,contributionsTotal:p,currency:m}),t(P,{totalCost:D,currency:m})]})})]}),o?.showChart&&t(E,{chartData:y,currency:m})]})]})}l(X,"CostCalculatorResults");export{X as a};
2
+ //# sourceMappingURL=chunk-MNO47WC2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorResults.tsx","../src/components/ui/tabs.tsx"],"sourcesContent":["import { lazy, useState } from 'react';\n\nimport { CostCalculatorEstimateResponse } from '@/src/client';\nimport { Badge } from '@/src/components/ui/badge';\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport { Tabs, TabsList, TabsTrigger } from '@/src/components/ui/tabs';\nimport { cn } from '@/src/lib/utils';\nimport { CostCalculatorBenefitsBreakdown } from './CostCalculatorBenefitsBreakdown';\nimport { CostCalculatorContributionsBreakdown } from './CostCalculatorContributionsBreakdown';\nimport { CostCalculatorGrossSalary } from './CostCalculatorGrossSalary';\nimport { CostCalculatorTotalCost } from './CostCalculatorTotalCost';\n\nconst CostCalculatorResultsChart = lazy(\n () => import('./CostCalculatorResultsChart'),\n);\n\ninterface CostCalculatorResultProps {\n employmentData: CostCalculatorEstimateResponse['data'];\n options?: Partial<{\n title: string;\n description: string;\n showChart: boolean;\n chartColors: {\n grossSalary: string;\n contributions: string;\n benefits: string;\n };\n }>;\n}\n\nexport function CostCalculatorResults({\n employmentData,\n options,\n}: CostCalculatorResultProps) {\n const [view, setView] = useState<'monthly' | 'annual'>('monthly');\n const employment = employmentData.employments?.[0];\n\n if (!employment) {\n return null;\n }\n\n const costs =\n view === 'monthly'\n ? employment.employer_currency_costs\n : employment.employer_currency_costs;\n\n const currency = costs.currency.symbol;\n const grossSalary =\n view === 'monthly' ? costs.monthly_gross_salary : costs.annual_gross_salary;\n const benefitsTotal =\n view === 'monthly'\n ? costs.monthly_benefits_total\n : costs.annual_benefits_total;\n const contributionsTotal =\n view === 'monthly'\n ? costs.monthly_contributions_total\n : costs.annual_contributions_total;\n const totalCost =\n view === 'monthly' ? costs.monthly_total : costs.annual_total;\n\n const benefitsBreakdown =\n view === 'monthly'\n ? costs.monthly_benefits_breakdown\n : costs.annual_benefits_breakdown;\n const contributionsBreakdown =\n view === 'monthly'\n ? costs.monthly_contributions_breakdown\n : costs.annual_contributions_breakdown;\n\n const chartData = [\n {\n name: 'Gross Salary',\n value: grossSalary,\n color: options?.chartColors?.grossSalary ?? '#3b82f6',\n },\n {\n name: 'Contributions',\n value: contributionsTotal,\n color: options?.chartColors?.contributions ?? '#f59e0b',\n },\n ];\n\n if (benefitsBreakdown) {\n chartData.push({\n name: 'Benefits',\n value: benefitsTotal ?? 0,\n color: options?.chartColors?.benefits ?? '#10b981',\n });\n }\n\n return (\n <>\n <div className=\"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults\">\n <div className=\"RemoteFlows__CostCalculatorResults__Header\">\n <h2 className=\"text-xl font-semibold flex items-center gap-2\">\n <span className=\"flex items-center gap-1\">\n {options?.title ?? 'Cost Calculator'}\n </span>\n <Badge className=\"ml-2\">{employment.country.name}</Badge>\n </h2>\n <p className=\"text-primary-foreground font-medium mt-1\">\n {options?.description ??\n `Total cost of employment in ${employment.country.name}`}\n </p>\n </div>\n\n <Tabs\n value={view}\n onValueChange={(v) => setView(v as 'monthly' | 'annual')}\n className=\"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs\"\n >\n <TabsList className=\"grid w-full md:w-[200px] grid-cols-2\">\n <TabsTrigger value=\"monthly\">Monthly</TabsTrigger>\n <TabsTrigger value=\"annual\">Annual</TabsTrigger>\n </TabsList>\n </Tabs>\n </div>\n\n <div\n className={cn(\n 'grid grid-cols-1 gap-6',\n options?.showChart ? 'md:grid-cols-3' : '',\n 'RemoteFlows__CostCalculatorResults_CostBreakdown',\n )}\n >\n <Card className=\"md:col-span-2 rounded-lg\">\n <CardHeader className=\"pb-2\">\n <CardTitle>Cost Breakdown</CardTitle>\n <CardDescription>\n Detailed breakdown of all employer costs\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-6\">\n {/* Salary Section */}\n <CostCalculatorGrossSalary\n grossSalary={grossSalary}\n currency={currency}\n />\n {/* Benefits Section */}\n {benefitsBreakdown ? (\n <CostCalculatorBenefitsBreakdown\n benefitsBreakdown={benefitsBreakdown}\n benefitsTotal={benefitsTotal}\n currency={currency}\n />\n ) : null}\n {/* Contributions Section */}\n <CostCalculatorContributionsBreakdown\n contributionsBreakdown={contributionsBreakdown}\n contributionsTotal={contributionsTotal}\n currency={currency}\n />\n {/* Total */}\n <CostCalculatorTotalCost\n totalCost={totalCost}\n currency={currency}\n />\n </div>\n </CardContent>\n </Card>\n\n {options?.showChart && (\n <CostCalculatorResultsChart\n chartData={chartData}\n currency={currency}\n />\n )}\n </div>\n </>\n );\n}\n","import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"mappings":"4VAAA,OAAS,QAAAA,EAAM,YAAAC,MAAgB,QCC/B,UAAYC,MAAmB,uBAS3B,cAAAC,MAAA,oBALJ,SAASC,EAAK,CACZ,UAAAC,EACA,GAAGC,CACL,EAAoD,CAClD,OACEH,EAAe,OAAd,CACC,YAAU,OACV,UAAWI,EAAG,sBAAuBF,CAAS,EAC7C,GAAGC,EACN,CAEJ,CAXSE,EAAAJ,EAAA,QAaT,SAASK,EAAS,CAChB,UAAAJ,EACA,GAAGC,CACL,EAAoD,CAClD,OACEH,EAAe,OAAd,CACC,YAAU,YACV,UAAWI,EACT,kGACAF,CACF,EACC,GAAGC,EACN,CAEJ,CAdSE,EAAAC,EAAA,YAgBT,SAASC,EAAY,CACnB,UAAAL,EACA,GAAGC,CACL,EAAuD,CACrD,OACEH,EAAe,UAAd,CACC,YAAU,eACV,UAAWI,EACT,0fACAF,CACF,EACC,GAAGC,EACN,CAEJ,CAdSE,EAAAE,EAAA,eD+DL,mBAAAC,EAIQ,OAAAC,EADF,QAAAC,MAHN,oBA/EJ,IAAMC,EAA6BC,EACjC,IAAM,OAAO,8DAA8B,CAC7C,EAgBO,SAASC,EAAsB,CACpC,eAAAC,EACA,QAAAC,CACF,EAA8B,CAC5B,GAAM,CAACC,EAAMC,CAAO,EAAIC,EAA+B,SAAS,EAC1DC,EAAaL,EAAe,cAAc,CAAC,EAEjD,GAAI,CAACK,EACH,OAAO,KAGT,IAAMC,EAEAD,EAAW,wBAGXE,EAAWD,EAAM,SAAS,OAC1BE,EACJN,IAAS,UAAYI,EAAM,qBAAuBA,EAAM,oBACpDG,EACJP,IAAS,UACLI,EAAM,uBACNA,EAAM,sBACNI,EACJR,IAAS,UACLI,EAAM,4BACNA,EAAM,2BACNK,EACJT,IAAS,UAAYI,EAAM,cAAgBA,EAAM,aAE7CM,EACJV,IAAS,UACLI,EAAM,2BACNA,EAAM,0BACNO,EACJX,IAAS,UACLI,EAAM,gCACNA,EAAM,+BAENQ,EAAY,CAChB,CACE,KAAM,eACN,MAAON,EACP,MAAOP,GAAS,aAAa,aAAe,SAC9C,EACA,CACE,KAAM,gBACN,MAAOS,EACP,MAAOT,GAAS,aAAa,eAAiB,SAChD,CACF,EAEA,OAAIW,GACFE,EAAU,KAAK,CACb,KAAM,WACN,MAAOL,GAAiB,EACxB,MAAOR,GAAS,aAAa,UAAY,SAC3C,CAAC,EAIDL,EAAAF,EAAA,CACE,UAAAE,EAAC,OAAI,UAAU,0GACb,UAAAA,EAAC,OAAI,UAAU,6CACb,UAAAA,EAAC,MAAG,UAAU,gDACZ,UAAAD,EAAC,QAAK,UAAU,0BACb,SAAAM,GAAS,OAAS,kBACrB,EACAN,EAACoB,EAAA,CAAM,UAAU,OAAQ,SAAAV,EAAW,QAAQ,KAAK,GACnD,EACAV,EAAC,KAAE,UAAU,2CACV,SAAAM,GAAS,aACR,+BAA+BI,EAAW,QAAQ,IAAI,GAC1D,GACF,EAEAV,EAACqB,EAAA,CACC,MAAOd,EACP,cAAgBe,GAAMd,EAAQc,CAAyB,EACvD,UAAU,4DAEV,SAAArB,EAACsB,EAAA,CAAS,UAAU,uCAClB,UAAAvB,EAACwB,EAAA,CAAY,MAAM,UAAU,mBAAO,EACpCxB,EAACwB,EAAA,CAAY,MAAM,SAAS,kBAAM,GACpC,EACF,GACF,EAEAvB,EAAC,OACC,UAAWwB,EACT,yBACAnB,GAAS,UAAY,iBAAmB,GACxC,kDACF,EAEA,UAAAL,EAACyB,EAAA,CAAK,UAAU,2BACd,UAAAzB,EAAC0B,EAAA,CAAW,UAAU,OACpB,UAAA3B,EAAC4B,EAAA,CAAU,0BAAc,EACzB5B,EAAC6B,EAAA,CAAgB,oDAEjB,GACF,EACA7B,EAAC8B,EAAA,CACC,SAAA7B,EAAC,OAAI,UAAU,YAEb,UAAAD,EAAC+B,EAAA,CACC,YAAalB,EACb,SAAUD,EACZ,EAECK,EACCjB,EAACgC,EAAA,CACC,kBAAmBf,EACnB,cAAeH,EACf,SAAUF,EACZ,EACE,KAEJZ,EAACiC,EAAA,CACC,uBAAwBf,EACxB,mBAAoBH,EACpB,SAAUH,EACZ,EAEAZ,EAACkC,EAAA,CACC,UAAWlB,EACX,SAAUJ,EACZ,GACF,EACF,GACF,EAECN,GAAS,WACRN,EAACE,EAAA,CACC,UAAWiB,EACX,SAAUP,EACZ,GAEJ,GACF,CAEJ,CA7IgBuB,EAAA/B,EAAA","names":["lazy","useState","TabsPrimitive","jsx","Tabs","className","props","cn","__name","TabsList","TabsTrigger","Fragment","jsx","jsxs","CostCalculatorResultsChart","lazy","CostCalculatorResults","employmentData","options","view","setView","useState","employment","costs","currency","grossSalary","benefitsTotal","contributionsTotal","totalCost","benefitsBreakdown","contributionsBreakdown","chartData","Badge","Tabs","v","TabsList","TabsTrigger","cn","Card","CardHeader","CardTitle","CardDescription","CardContent","CostCalculatorGrossSalary","CostCalculatorBenefitsBreakdown","CostCalculatorContributionsBreakdown","CostCalculatorTotalCost","__name"]}
@@ -0,0 +1,2 @@
1
+ import{a as s}from"./chunk-XMDNHTKE.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";var l=e(({currency:n,desiredCurrency:o,annual_gross_salary_conversion_properties:r,...a})=>i(s,{...a,sourceCurrency:n,targetCurrency:o,conversionFieldName:"annual_gross_salary_conversion",conversionProperties:{...r,description:r?.description||"Estimated amount. This is an estimation. We calculate conversions based on spot rates that are subject to fluctuation over time."},classNamePrefix:"RemoteFlows-AnnualGrossSalary"}),"AnnualGrossSalary");export{l as a};
2
+ //# sourceMappingURL=chunk-MO7KC4HE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/components/AnnualGrossSalary.tsx"],"sourcesContent":["import { CurrencyConversionField } from '@/src/components/form/fields/CurrencyConversionField';\nimport { JSFField } from '@/src/types/remoteFlows';\n\ntype AnnualGrossSalaryProps = JSFField & {\n currency: string;\n desiredCurrency: string;\n annual_gross_salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n};\n\nexport const AnnualGrossSalary = ({\n currency,\n desiredCurrency,\n annual_gross_salary_conversion_properties,\n ...props\n}: AnnualGrossSalaryProps) => {\n return (\n <CurrencyConversionField\n {...props}\n sourceCurrency={currency}\n targetCurrency={desiredCurrency}\n conversionFieldName=\"annual_gross_salary_conversion\"\n conversionProperties={{\n ...annual_gross_salary_conversion_properties,\n description:\n annual_gross_salary_conversion_properties?.description ||\n 'Estimated amount. This is an estimation. We calculate conversions based on spot rates that are subject to fluctuation over time.',\n }}\n classNamePrefix=\"RemoteFlows-AnnualGrossSalary\"\n />\n );\n};\n"],"mappings":"gFAmBI,cAAAA,MAAA,oBAPG,IAAMC,EAAoBC,EAAA,CAAC,CAChC,SAAAC,EACA,gBAAAC,EACA,0CAAAC,EACA,GAAGC,CACL,IAEIN,EAACO,EAAA,CACE,GAAGD,EACJ,eAAgBH,EAChB,eAAgBC,EAChB,oBAAoB,iCACpB,qBAAsB,CACpB,GAAGC,EACH,YACEA,GAA2C,aAC3C,kIACJ,EACA,gBAAgB,gCAClB,EAnB6B","names":["jsx","AnnualGrossSalary","__name","currency","desiredCurrency","annual_gross_salary_conversion_properties","props","CurrencyConversionField"]}
@@ -1,2 +1,2 @@
1
- import{a as n}from"./chunk-AYDF3IFZ.js";import{createContext as e,useContext as o}from"react";var r=e({formId:void 0,terminationBag:null}),m=n(()=>{let t=o(r);if(!t.formId||!t.terminationBag)throw new Error("useTerminationContext must be used within a TerminationContextProvider");return{formId:t.formId,terminationBag:t.terminationBag}},"useTerminationContext");export{r as a,m as b};
2
- //# sourceMappingURL=chunk-DZYFSFZ7.js.map
1
+ import{a as n}from"./chunk-P37U34EQ.js";import{createContext as e,useContext as o}from"react";var r=e({formId:void 0,terminationBag:null}),m=n(()=>{let t=o(r);if(!t.formId||!t.terminationBag)throw new Error("useTerminationContext must be used within a TerminationContextProvider");return{formId:t.formId,terminationBag:t.terminationBag}},"useTerminationContext");export{r as a,m as b};
2
+ //# sourceMappingURL=chunk-MRYRNB7Y.js.map
@@ -0,0 +1,2 @@
1
+ import{b as s}from"./chunk-PGWKJ6FK.js";import{b as u}from"./chunk-GEYFQVQI.js";import{b as i}from"./chunk-3ZWDIEEM.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as m}from"react/jsx-runtime";function f({children:o,onClick:a,...n}){let{onboardingBag:{back:c,isEmploymentReadOnly:B}}=s(),{components:d}=i(),r=t(p=>{B||c(),a?.(p)},"onBackHandler"),e=d?.button;return e?m(e,{...n,onClick:r,children:o}):m(u,{...n,onClick:r,children:o})}t(f,"OnboardingBack");export{f as a};
2
+ //# sourceMappingURL=chunk-MSBG52WO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/components/OnboardingBack.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { useFormFields } from '@/src/context';\n\ntype OnboardingBackProps = ButtonHTMLAttributes<HTMLButtonElement> &\n Record<string, unknown>;\n\nexport function OnboardingBack({\n children,\n onClick,\n ...props\n}: PropsWithChildren<OnboardingBackProps>) {\n const {\n onboardingBag: { back, isEmploymentReadOnly },\n } = useOnboardingContext();\n\n const { components } = useFormFields();\n\n const onBackHandler = (evt: React.MouseEvent<HTMLButtonElement>) => {\n if (!isEmploymentReadOnly) {\n back();\n }\n onClick?.(evt);\n };\n\n const CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton {...props} onClick={onBackHandler}>\n {children}\n </CustomButton>\n );\n }\n\n return (\n <Button {...props} onClick={onBackHandler}>\n {children}\n </Button>\n );\n}\n"],"mappings":"gKA6BM,cAAAA,MAAA,oBArBC,SAASC,EAAe,CAC7B,SAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAA2C,CACzC,GAAM,CACJ,cAAe,CAAE,KAAAC,EAAM,qBAAAC,CAAqB,CAC9C,EAAIC,EAAqB,EAEnB,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAgBC,EAACC,GAA6C,CAC7DN,GACHD,EAAK,EAEPF,IAAUS,CAAG,CACf,EALsB,iBAOhBC,EAAeL,GAAY,OACjC,OAAIK,EAEAb,EAACa,EAAA,CAAc,GAAGT,EAAO,QAASM,EAC/B,SAAAR,EACH,EAKFF,EAACc,EAAA,CAAQ,GAAGV,EAAO,QAASM,EACzB,SAAAR,EACH,CAEJ,CAhCgBS,EAAAV,EAAA","names":["jsx","OnboardingBack","children","onClick","props","back","isEmploymentReadOnly","useOnboardingContext","components","useFormFields","onBackHandler","__name","evt","CustomButton","Button"]}
@@ -0,0 +1,2 @@
1
+ import{b as p}from"./chunk-3ZWDIEEM.js";import{b as c,c as F,d as f,e as x,f as _,g}from"./chunk-VNSF5IOL.js";import{a as u}from"./chunk-KPHSEIR3.js";import{a as i}from"./chunk-P37U34EQ.js";import{useFormContext as y}from"react-hook-form";import{jsx as P}from"react/jsx-runtime";function b({className:o,type:r,...t}){return P("input",{type:r,"data-slot":"input",className:u("shadow-xs border-input file:text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-xl border bg-transparent px-4 py-7 text-sm transition-[color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-focused","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",o),...t})}i(b,"Input");import{jsx as e,jsxs as N}from"react/jsx-runtime";function $({name:o,description:r,label:t,type:C,onChange:s,component:v,includeErrorMessage:R=!0,additionalProps:T={},...w}){let{components:h}=p(),{control:I}=y();return e(c,{control:I,name:o,render:({field:n,fieldState:l})=>{let m=v||h?.text;if(m){let a={name:o,description:r,label:t,type:C,onChange:s,metadata:T,...w};return e(m,{field:{...n,onChange:i(d=>{n.onChange(d),s?.(d)},"onChange")},fieldState:l,fieldData:a})}return N(F,{"data-field":o,className:`RemoteFlows__TextField__Item__${o}`,children:[t&&e(f,{className:"RemoteFlows__TextField__Label",children:t}),e(x,{children:e(b,{...n,value:n.value??"",onChange:a=>{n.onChange(a),s?.(a)},className:"RemoteFlows__TextField__Input",placeholder:t})}),r&&e(_,{className:"RemoteFlows__TextField__Description",children:r}),R&&l.error&&e(g,{className:"RemoteFlows__TextField__Error"})]})}})}i($,"TextField");export{$ as a};
2
+ //# sourceMappingURL=chunk-N6NYXAXH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/fields/TextField.tsx","../src/components/ui/input.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { Input } from '../../ui/input';\n\nexport type TextFieldProps = React.ComponentProps<'input'> & {\n name: string;\n} & Partial<\n JSFField & {\n onChange?: (value: any) => void;\n component?: Components['text'];\n includeErrorMessage?: boolean;\n additionalProps?: Record<string, unknown>;\n }\n >;\n\nexport function TextField({\n name,\n description,\n label,\n type,\n onChange,\n component,\n includeErrorMessage = true,\n additionalProps = {},\n ...rest\n}: TextFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomTextField = component || components?.text;\n if (CustomTextField) {\n const customTextFieldProps = {\n name,\n description,\n label,\n type,\n onChange,\n metadata: additionalProps,\n ...rest,\n };\n return (\n <CustomTextField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextFieldProps}\n />\n );\n }\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__TextField__Item__${name}`}\n >\n {label && (\n <FormLabel className=\"RemoteFlows__TextField__Label\">\n {label}\n </FormLabel>\n )}\n <FormControl>\n <Input\n {...field}\n value={field.value ?? ''}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n field.onChange(event);\n onChange?.(event);\n }}\n className=\"RemoteFlows__TextField__Input\"\n placeholder={label}\n />\n </FormControl>\n {description && (\n <FormDescription className=\"RemoteFlows__TextField__Description\">\n {description}\n </FormDescription>\n )}\n {includeErrorMessage && fieldState.error && (\n <FormMessage className=\"RemoteFlows__TextField__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'shadow-xs border-input file:text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-xl border bg-transparent px-4 py-7 text-sm transition-[color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-focused',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":"8LAKA,OAAS,kBAAAA,MAAsB,kBCC3B,cAAAC,MAAA,oBAFJ,SAASC,EAAM,CAAE,UAAAC,EAAW,KAAAC,EAAM,GAAGC,CAAM,EAAkC,CAC3E,OACEJ,EAAC,SACC,KAAMG,EACN,YAAU,QACV,UAAWE,EACT,6WACA,+BACA,yGACAH,CACF,EACC,GAAGE,EACN,CAEJ,CAdSE,EAAAL,EAAA,SDsDG,cAAAM,EAeF,QAAAC,MAfE,oBA/BL,SAASC,EAAU,CACxB,KAAAC,EACA,YAAAC,EACA,MAAAC,EACA,KAAAC,EACA,SAAAC,EACA,UAAAC,EACA,oBAAAC,EAAsB,GACtB,gBAAAC,EAAkB,CAAC,EACnB,GAAGC,CACL,EAAmB,CACjB,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/B,CAAE,QAAAC,CAAQ,EAAIC,EAAe,EAEnC,OACEf,EAACgB,EAAA,CACC,QAASF,EACT,KAAMX,EACN,OAAQ,CAAC,CAAE,MAAAc,EAAO,WAAAC,CAAW,IAAM,CACjC,IAAMC,EAAkBX,GAAaI,GAAY,KACjD,GAAIO,EAAiB,CACnB,IAAMC,EAAuB,CAC3B,KAAAjB,EACA,YAAAC,EACA,MAAAC,EACA,KAAAC,EACA,SAAAC,EACA,SAAUG,EACV,GAAGC,CACL,EACA,OACEX,EAACmB,EAAA,CACC,MAAO,CACL,GAAGF,EACH,SAAUI,EAACC,GAAe,CACxBL,EAAM,SAASK,CAAK,EACpBf,IAAWe,CAAK,CAClB,EAHU,WAIZ,EACA,WAAYJ,EACZ,UAAWE,EACb,CAEJ,CAEA,OACEnB,EAACsB,EAAA,CACC,aAAYpB,EACZ,UAAW,iCAAiCA,CAAI,GAE/C,UAAAE,GACCL,EAACwB,EAAA,CAAU,UAAU,gCAClB,SAAAnB,EACH,EAEFL,EAACyB,EAAA,CACC,SAAAzB,EAAC0B,EAAA,CACE,GAAGT,EACJ,MAAOA,EAAM,OAAS,GACtB,SAAWU,GAA+C,CACxDV,EAAM,SAASU,CAAK,EACpBpB,IAAWoB,CAAK,CAClB,EACA,UAAU,gCACV,YAAatB,EACf,EACF,EACCD,GACCJ,EAAC4B,EAAA,CAAgB,UAAU,sCACxB,SAAAxB,EACH,EAEDK,GAAuBS,EAAW,OACjClB,EAAC6B,EAAA,CAAY,UAAU,gCAAgC,GAE3D,CAEJ,EACF,CAEJ,CAhFgBR,EAAAnB,EAAA","names":["useFormContext","jsx","Input","className","type","props","cn","__name","jsx","jsxs","TextField","name","description","label","type","onChange","component","includeErrorMessage","additionalProps","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","CustomTextField","customTextFieldProps","__name","value","FormItem","FormLabel","FormControl","Input","event","FormDescription","FormMessage"]}
@@ -0,0 +1,2 @@
1
+ import{a as r}from"./chunk-SIC7BRJ2.js";import{b as n}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as a}from"react/jsx-runtime";function u({onSubmit:m}){let{terminationBag:i}=n();return a(r,{onSubmit:o(async t=>{await m?.(i?.parseFormValues(t)),i?.next()},"handleSubmit")})}o(u,"TerminationDetailsForm");export{u as a};
2
+ //# sourceMappingURL=chunk-O53436KO.js.map