@remoteoss/remote-flows 0.31.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/README.md +45 -8
  2. package/dist/chunk-2CBUBDUV.js +2 -0
  3. package/dist/chunk-2CBUBDUV.js.map +1 -0
  4. package/dist/chunk-2EJ4BAUK.js +2 -0
  5. package/dist/chunk-2EJ4BAUK.js.map +1 -0
  6. package/dist/{chunk-E76DWINZ.js → chunk-2Q4L4WH7.js} +2 -2
  7. package/dist/chunk-2QOLV5T5.js +2 -0
  8. package/dist/chunk-2QOLV5T5.js.map +1 -0
  9. package/dist/{chunk-BWJAHRV6.js → chunk-2S376WY7.js} +2 -2
  10. package/dist/{chunk-PNAZ6US5.js → chunk-34TXLVDI.js} +2 -2
  11. package/dist/chunk-3UM34N4C.js +2 -0
  12. package/dist/chunk-3UM34N4C.js.map +1 -0
  13. package/dist/{chunk-FQYK5BJV.js → chunk-3XOHQ7Y7.js} +2 -2
  14. package/dist/chunk-3XOHQ7Y7.js.map +1 -0
  15. package/dist/chunk-4A2UD4KX.js +2 -0
  16. package/dist/chunk-4A2UD4KX.js.map +1 -0
  17. package/dist/{chunk-OUSDXTNH.js → chunk-5BY7HOJB.js} +2 -2
  18. package/dist/chunk-5BY7HOJB.js.map +1 -0
  19. package/dist/{chunk-ID3ZF7QT.js → chunk-62HGJVHQ.js} +2 -2
  20. package/dist/{chunk-P5WUODPR.js → chunk-65H2G43I.js} +2 -2
  21. package/dist/{chunk-DPY77ASH.js → chunk-66L7BKYM.js} +2 -2
  22. package/dist/{chunk-OIN3HGOQ.js → chunk-677KTHPH.js} +2 -2
  23. package/dist/{chunk-SQENUVY5.js → chunk-6PT55OGW.js} +2 -2
  24. package/dist/chunk-6PT55OGW.js.map +1 -0
  25. package/dist/{chunk-FJPQPOK3.js → chunk-7CLHPFPZ.js} +2 -2
  26. package/dist/{chunk-CYDWBHAA.js → chunk-7HSSHSYK.js} +2 -2
  27. package/dist/chunk-7JQFGVWI.js +2 -0
  28. package/dist/chunk-7JQFGVWI.js.map +1 -0
  29. package/dist/{chunk-SXN63FPH.js → chunk-7LRY5QTK.js} +2 -2
  30. package/dist/{chunk-PEHK6NHL.js → chunk-A477TZFC.js} +2 -2
  31. package/dist/{chunk-GWICTLVR.js → chunk-A7BBVCMY.js} +2 -2
  32. package/dist/{chunk-HWEJIPSK.js → chunk-AA7QB3QQ.js} +1 -1
  33. package/dist/chunk-BTUON37L.js +2 -0
  34. package/dist/chunk-BTUON37L.js.map +1 -0
  35. package/dist/chunk-CN3GXYLK.js +2 -0
  36. package/dist/{chunk-OOCCLRPH.js.map → chunk-CN3GXYLK.js.map} +1 -1
  37. package/dist/chunk-D3ZE5TO6.js +2 -0
  38. package/dist/chunk-D3ZE5TO6.js.map +1 -0
  39. package/dist/{chunk-WBN4ZSGC.js → chunk-DBGYYVFL.js} +2 -2
  40. package/dist/{chunk-2MG7YOPU.js → chunk-EAJ7JLBL.js} +2 -2
  41. package/dist/chunk-EAJ7JLBL.js.map +1 -0
  42. package/dist/{chunk-UPXJJBXZ.js → chunk-ED6E3V2E.js} +2 -2
  43. package/dist/{chunk-ZQ6MG635.js → chunk-FEB3W622.js} +2 -2
  44. package/dist/chunk-FGBEOUQK.js +1 -0
  45. package/dist/{chunk-OQJWLV7V.js → chunk-FIXHXJGN.js} +2 -2
  46. package/dist/{chunk-EKKRQI6B.js → chunk-GGQFBP37.js} +2 -2
  47. package/dist/chunk-HBYHRMST.js +2 -0
  48. package/dist/chunk-HBYHRMST.js.map +1 -0
  49. package/dist/{chunk-JTOLQCOG.js → chunk-HKCDMC3H.js} +2 -2
  50. package/dist/{chunk-IJR44ISO.js → chunk-I4XJ764Y.js} +2 -2
  51. package/dist/{chunk-QW322WRX.js → chunk-IHYMZJ4W.js} +2 -2
  52. package/dist/chunk-IHYMZJ4W.js.map +1 -0
  53. package/dist/{chunk-T2FGDQSU.js → chunk-ISQ6I4HJ.js} +2 -2
  54. package/dist/chunk-KSNOQWVU.js +2 -0
  55. package/dist/chunk-KSNOQWVU.js.map +1 -0
  56. package/dist/chunk-L2GTD44Y.js +2 -0
  57. package/dist/chunk-L2GTD44Y.js.map +1 -0
  58. package/dist/{chunk-H7L735T7.js → chunk-LDZWM4VX.js} +2 -2
  59. package/dist/{chunk-QFOYD5Q4.js → chunk-LIF7X2AH.js} +2 -2
  60. package/dist/chunk-LIF7X2AH.js.map +1 -0
  61. package/dist/{chunk-ACQ3OEOE.js → chunk-LLJWEHDJ.js} +2 -2
  62. package/dist/{chunk-NBFJOIV2.js → chunk-M37LWACT.js} +2 -2
  63. package/dist/{chunk-NBFJOIV2.js.map → chunk-M37LWACT.js.map} +1 -1
  64. package/dist/{chunk-4X77DTSW.js → chunk-M3EBUSNT.js} +2 -2
  65. package/dist/chunk-M5WQNNAT.js +2 -0
  66. package/dist/{chunk-4OAWZYH7.js.map → chunk-M5WQNNAT.js.map} +1 -1
  67. package/dist/{chunk-TWIUL2P3.js → chunk-MOG7GUQB.js} +2 -2
  68. package/dist/{chunk-ANGJCT4I.js → chunk-MPV22ALR.js} +2 -2
  69. package/dist/chunk-ORIJ6E2J.js +2 -0
  70. package/dist/chunk-ORIJ6E2J.js.map +1 -0
  71. package/dist/chunk-OVTCRVTZ.js +2 -0
  72. package/dist/{chunk-5PPUPDYP.js.map → chunk-OVTCRVTZ.js.map} +1 -1
  73. package/dist/{chunk-UZXTPQ47.js → chunk-PABPITPH.js} +2 -2
  74. package/dist/{chunk-H3ZR4EW5.js → chunk-RD27ZSYF.js} +2 -2
  75. package/dist/chunk-RD27ZSYF.js.map +1 -0
  76. package/dist/chunk-RIA5Z6I3.js +2 -0
  77. package/dist/chunk-RIA5Z6I3.js.map +1 -0
  78. package/dist/{chunk-OIVWGY5Z.js → chunk-RSH5MZY3.js} +2 -2
  79. package/dist/{chunk-OW5QGJD4.js → chunk-S2BJGON2.js} +2 -2
  80. package/dist/{chunk-5ZR7EFPY.js → chunk-SHK2UKLD.js} +2 -2
  81. package/dist/chunk-SS6RX52D.js +2 -0
  82. package/dist/chunk-SS6RX52D.js.map +1 -0
  83. package/dist/chunk-STSTF3AT.js +2 -0
  84. package/dist/chunk-STSTF3AT.js.map +1 -0
  85. package/dist/{chunk-6VRUYYUV.js → chunk-U5WVXSGT.js} +2 -2
  86. package/dist/chunk-UK5HHMPM.js +2 -0
  87. package/dist/chunk-UK5HHMPM.js.map +1 -0
  88. package/dist/chunk-UQMGBXCI.js +2 -0
  89. package/dist/chunk-UQMGBXCI.js.map +1 -0
  90. package/dist/chunk-W5M5HLWF.js +2 -0
  91. package/dist/chunk-W5M5HLWF.js.map +1 -0
  92. package/dist/{chunk-EGSRN2CQ.js → chunk-WRNHET4F.js} +2 -2
  93. package/dist/chunk-XOA7GG4P.js +2 -0
  94. package/dist/{chunk-26ZOPH2I.js → chunk-XPOLXRYT.js} +2 -2
  95. package/dist/{chunk-R7W3BT6P.js → chunk-YCILXVJU.js} +2 -2
  96. package/dist/chunk-YHR7BPYU.js +2 -0
  97. package/dist/chunk-YHR7BPYU.js.map +1 -0
  98. package/dist/chunk-ZJSWK3Y7.js +2 -0
  99. package/dist/chunk-ZJSWK3Y7.js.map +1 -0
  100. package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
  101. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
  102. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  103. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +4 -3
  104. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  105. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
  106. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  107. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
  108. package/dist/flows/ContractAmendment/context.d.ts +6 -5
  109. package/dist/flows/ContractAmendment/hooks.d.ts +6 -5
  110. package/dist/flows/ContractAmendment/hooks.js +1 -1
  111. package/dist/flows/ContractAmendment/index.d.ts +4 -3
  112. package/dist/flows/ContractAmendment/index.js +1 -1
  113. package/dist/flows/ContractAmendment/types.d.ts +1 -0
  114. package/dist/flows/ContractAmendment/utils.d.ts +1 -1
  115. package/dist/flows/ContractAmendment/utils.js +1 -1
  116. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +6 -5
  117. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  118. package/dist/flows/ContractorOnboarding/api.d.ts +3 -2
  119. package/dist/flows/ContractorOnboarding/api.js +1 -1
  120. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +5 -4
  121. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
  122. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +6 -5
  123. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
  124. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +6 -5
  125. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
  126. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +6 -5
  127. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
  128. package/dist/flows/ContractorOnboarding/components/OnboardingBack.js +1 -1
  129. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
  130. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  131. package/dist/flows/ContractorOnboarding/components/OnboardingSubmit.js +1 -1
  132. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +6 -5
  133. package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
  134. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +5 -4
  135. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
  136. package/dist/flows/ContractorOnboarding/context.d.ts +9 -8
  137. package/dist/flows/ContractorOnboarding/hooks.d.ts +6 -5
  138. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  139. package/dist/flows/ContractorOnboarding/index.d.ts +6 -5
  140. package/dist/flows/ContractorOnboarding/index.js +1 -1
  141. package/dist/flows/ContractorOnboarding/types.d.ts +6 -5
  142. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +4 -3
  143. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  144. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +4 -3
  145. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  146. package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
  147. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
  148. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -1
  149. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
  150. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -1
  151. package/dist/flows/CostCalculator/api.d.ts +2 -1
  152. package/dist/flows/CostCalculator/api.js +1 -1
  153. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
  154. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  155. package/dist/flows/CostCalculator/context.d.ts +5 -4
  156. package/dist/flows/CostCalculator/hooks.d.ts +5 -4
  157. package/dist/flows/CostCalculator/hooks.js +1 -1
  158. package/dist/flows/CostCalculator/index.d.ts +4 -6
  159. package/dist/flows/CostCalculator/index.js +1 -1
  160. package/dist/flows/CostCalculator/types.d.ts +2 -1
  161. package/dist/flows/CostCalculator/utils.d.ts +4 -3
  162. package/dist/flows/CostCalculator/utils.js +1 -1
  163. package/dist/flows/Onboarding/OnboardingFlow.d.ts +5 -4
  164. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  165. package/dist/flows/Onboarding/api.d.ts +7 -6
  166. package/dist/flows/Onboarding/api.js +1 -1
  167. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
  168. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  169. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +5 -4
  170. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  171. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +5 -4
  172. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  173. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +5 -4
  174. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  175. package/dist/flows/Onboarding/components/OnboardingBack.js +1 -1
  176. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +5 -4
  177. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  178. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
  179. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  180. package/dist/flows/Onboarding/components/OnboardingSubmit.js +1 -1
  181. package/dist/flows/Onboarding/components/ReviewStep.d.ts +5 -4
  182. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
  183. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +5 -4
  184. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  185. package/dist/flows/Onboarding/context.d.ts +8 -7
  186. package/dist/flows/Onboarding/hooks.d.ts +5 -4
  187. package/dist/flows/Onboarding/hooks.js +1 -1
  188. package/dist/flows/Onboarding/index.d.ts +5 -4
  189. package/dist/flows/Onboarding/index.js +1 -1
  190. package/dist/flows/Onboarding/types.d.ts +5 -4
  191. package/dist/flows/Onboarding/utils.d.ts +5 -4
  192. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +5 -4
  193. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  194. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +5 -4
  195. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  196. package/dist/flows/Termination/PaidTimeOffForm.d.ts +5 -4
  197. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  198. package/dist/flows/Termination/TerminationBack.js +1 -1
  199. package/dist/flows/Termination/TerminationDetailsForm.d.ts +5 -4
  200. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  201. package/dist/flows/Termination/TerminationFlow.d.ts +5 -4
  202. package/dist/flows/Termination/TerminationFlow.js +1 -1
  203. package/dist/flows/Termination/TerminationForm.d.ts +5 -4
  204. package/dist/flows/Termination/TerminationForm.js +1 -1
  205. package/dist/flows/Termination/TerminationSubmit.js +1 -1
  206. package/dist/flows/Termination/api.d.ts +26 -7
  207. package/dist/flows/Termination/api.js +1 -1
  208. package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
  209. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +9 -5
  210. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
  211. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +9 -5
  212. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  213. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +9 -5
  214. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  215. package/dist/flows/Termination/context.d.ts +8 -7
  216. package/dist/flows/Termination/hooks.d.ts +5 -4
  217. package/dist/flows/Termination/hooks.js +1 -1
  218. package/dist/flows/Termination/index.d.ts +7 -6
  219. package/dist/flows/Termination/index.js +1 -1
  220. package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
  221. package/dist/flows/Termination/json-schemas/schema.d.ts +5 -4
  222. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  223. package/dist/flows/Termination/types.d.ts +5 -4
  224. package/dist/flows/Termination/utils.d.ts +5 -4
  225. package/dist/flows/types.d.ts +3 -1
  226. package/dist/index.css +1 -1
  227. package/dist/index.css.map +1 -1
  228. package/dist/index.d.ts +36 -14
  229. package/dist/index.js +1 -1
  230. package/dist/index.js.map +1 -1
  231. package/dist/internals.d.ts +11 -2
  232. package/dist/internals.js +1 -1
  233. package/dist/{mutations-poZZkLvk.d.ts → mutations-Dj5OTaG_.d.ts} +1 -1
  234. package/dist/{remoteFlows-DzRZRhQq.d.ts → remoteFlows-CJkEwDeI.d.ts} +38 -10
  235. package/dist/{types-CpgnTLWW.d.ts → types-CrBx80W2.d.ts} +6 -6
  236. package/dist/{types-CTSYWNx-.d.ts → types-CzuydJIU.d.ts} +5 -5
  237. package/dist/{types-BNjv7eD0.d.ts → types-OcTc56P-.d.ts} +1 -1
  238. package/dist/{types-6uSA0-an.d.ts → types-o2Z9IpsO.d.ts} +7 -7
  239. package/dist/{types.gen-B2u-cOXI.d.ts → types.gen-D0ZCnKWv.d.ts} +1 -1
  240. package/dist/utils-CjDMg_Yr.d.ts +22 -0
  241. package/package.json +2 -2
  242. package/dist/ZendeskTriggerButton-Dditzyfj.d.ts +0 -47
  243. package/dist/chunk-2L3ISQJL.js +0 -2
  244. package/dist/chunk-2L3ISQJL.js.map +0 -1
  245. package/dist/chunk-2MG7YOPU.js.map +0 -1
  246. package/dist/chunk-3A47R5RQ.js +0 -2
  247. package/dist/chunk-3A47R5RQ.js.map +0 -1
  248. package/dist/chunk-4OAWZYH7.js +0 -2
  249. package/dist/chunk-5ENAY65Y.js +0 -2
  250. package/dist/chunk-5ENAY65Y.js.map +0 -1
  251. package/dist/chunk-5PPUPDYP.js +0 -2
  252. package/dist/chunk-6TY7IKSG.js +0 -2
  253. package/dist/chunk-6TY7IKSG.js.map +0 -1
  254. package/dist/chunk-7FAT6WCC.js +0 -2
  255. package/dist/chunk-7FAT6WCC.js.map +0 -1
  256. package/dist/chunk-7R347KBY.js +0 -2
  257. package/dist/chunk-7R347KBY.js.map +0 -1
  258. package/dist/chunk-7WDO47KQ.js +0 -2
  259. package/dist/chunk-7WDO47KQ.js.map +0 -1
  260. package/dist/chunk-7XDJV7LA.js +0 -2
  261. package/dist/chunk-7XDJV7LA.js.map +0 -1
  262. package/dist/chunk-A2KMKSSC.js +0 -2
  263. package/dist/chunk-A2KMKSSC.js.map +0 -1
  264. package/dist/chunk-ANHUECRI.js +0 -2
  265. package/dist/chunk-ANHUECRI.js.map +0 -1
  266. package/dist/chunk-AVX6IOGC.js +0 -2
  267. package/dist/chunk-AVX6IOGC.js.map +0 -1
  268. package/dist/chunk-BCXRPHWY.js +0 -2
  269. package/dist/chunk-BCXRPHWY.js.map +0 -1
  270. package/dist/chunk-CFIJKJXD.js +0 -2
  271. package/dist/chunk-CFIJKJXD.js.map +0 -1
  272. package/dist/chunk-D6X2WCEG.js +0 -2
  273. package/dist/chunk-D6X2WCEG.js.map +0 -1
  274. package/dist/chunk-DYB3RWP7.js +0 -20
  275. package/dist/chunk-DYB3RWP7.js.map +0 -1
  276. package/dist/chunk-FPJLWY23.js +0 -2
  277. package/dist/chunk-FPJLWY23.js.map +0 -1
  278. package/dist/chunk-FQYK5BJV.js.map +0 -1
  279. package/dist/chunk-GD425MMM.js +0 -2
  280. package/dist/chunk-GD425MMM.js.map +0 -1
  281. package/dist/chunk-GHV4Q4MB.js +0 -2
  282. package/dist/chunk-GHV4Q4MB.js.map +0 -1
  283. package/dist/chunk-H3ZR4EW5.js.map +0 -1
  284. package/dist/chunk-HPHWQU34.js +0 -2
  285. package/dist/chunk-HPHWQU34.js.map +0 -1
  286. package/dist/chunk-HS4VEURD.js +0 -2
  287. package/dist/chunk-HS4VEURD.js.map +0 -1
  288. package/dist/chunk-JBUNDNKJ.js +0 -2
  289. package/dist/chunk-JBUNDNKJ.js.map +0 -1
  290. package/dist/chunk-JCKQQFA4.js +0 -2
  291. package/dist/chunk-LGJYIUSH.js +0 -2
  292. package/dist/chunk-LGJYIUSH.js.map +0 -1
  293. package/dist/chunk-LWGVLLBH.js +0 -2
  294. package/dist/chunk-LWGVLLBH.js.map +0 -1
  295. package/dist/chunk-LYK6PNAY.js +0 -2
  296. package/dist/chunk-LYK6PNAY.js.map +0 -1
  297. package/dist/chunk-MQWVZSGH.js +0 -2
  298. package/dist/chunk-MQWVZSGH.js.map +0 -1
  299. package/dist/chunk-NCNXUNBB.js +0 -2
  300. package/dist/chunk-NCNXUNBB.js.map +0 -1
  301. package/dist/chunk-OLRZ3U4A.js +0 -2
  302. package/dist/chunk-OLRZ3U4A.js.map +0 -1
  303. package/dist/chunk-OOCCLRPH.js +0 -2
  304. package/dist/chunk-OUSDXTNH.js.map +0 -1
  305. package/dist/chunk-PAQW5BFW.js +0 -2
  306. package/dist/chunk-PAQW5BFW.js.map +0 -1
  307. package/dist/chunk-Q4BKFSTW.js +0 -2
  308. package/dist/chunk-Q4BKFSTW.js.map +0 -1
  309. package/dist/chunk-QFOYD5Q4.js.map +0 -1
  310. package/dist/chunk-QW322WRX.js.map +0 -1
  311. package/dist/chunk-SQENUVY5.js.map +0 -1
  312. package/dist/chunk-UBN6O7B5.js +0 -2
  313. package/dist/chunk-UBN6O7B5.js.map +0 -1
  314. package/dist/chunk-VSMVVIBA.js +0 -2
  315. package/dist/chunk-VSMVVIBA.js.map +0 -1
  316. package/dist/chunk-XDNUJY3V.js +0 -2
  317. package/dist/chunk-XDNUJY3V.js.map +0 -1
  318. package/dist/chunk-YXXCHMX3.js +0 -2
  319. package/dist/chunk-YXXCHMX3.js.map +0 -1
  320. package/dist/chunk-Z3BMF4BO.js +0 -1
  321. package/dist/chunk-ZE3YT3Q6.js +0 -2
  322. package/dist/chunk-ZE3YT3Q6.js.map +0 -1
  323. package/dist/chunk-ZSCKSEAA.js +0 -2
  324. package/dist/chunk-ZSCKSEAA.js.map +0 -1
  325. package/dist/chunk-ZX5OIIJX.js +0 -1
  326. package/dist/chunk-ZX5OIIJX.js.map +0 -1
  327. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +0 -8
  328. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +0 -2
  329. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js.map +0 -1
  330. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +0 -16
  331. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +0 -2
  332. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js.map +0 -1
  333. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +0 -16
  334. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +0 -2
  335. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js.map +0 -1
  336. package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.d.ts +0 -16
  337. package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +0 -2
  338. package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js.map +0 -1
  339. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +0 -10
  340. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +0 -2
  341. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js.map +0 -1
  342. package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.d.ts +0 -9
  343. package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js +0 -2
  344. package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js.map +0 -1
  345. package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +0 -19
  346. package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +0 -2
  347. package/dist/flows/CostCalculator/Results/CostCalculatorResults.js.map +0 -1
  348. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +0 -13
  349. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +0 -2
  350. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +0 -1
  351. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +0 -9
  352. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +0 -2
  353. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js.map +0 -1
  354. package/dist/flows/CostCalculator/disclaimerUtils.d.ts +0 -10
  355. package/dist/flows/CostCalculator/disclaimerUtils.js +0 -2
  356. package/dist/flows/CostCalculator/disclaimerUtils.js.map +0 -1
  357. package/dist/flows/api.d.ts +0 -33
  358. package/dist/flows/api.js +0 -2
  359. package/dist/flows/api.js.map +0 -1
  360. /package/dist/{chunk-E76DWINZ.js.map → chunk-2Q4L4WH7.js.map} +0 -0
  361. /package/dist/{chunk-BWJAHRV6.js.map → chunk-2S376WY7.js.map} +0 -0
  362. /package/dist/{chunk-PNAZ6US5.js.map → chunk-34TXLVDI.js.map} +0 -0
  363. /package/dist/{chunk-ID3ZF7QT.js.map → chunk-62HGJVHQ.js.map} +0 -0
  364. /package/dist/{chunk-P5WUODPR.js.map → chunk-65H2G43I.js.map} +0 -0
  365. /package/dist/{chunk-DPY77ASH.js.map → chunk-66L7BKYM.js.map} +0 -0
  366. /package/dist/{chunk-OIN3HGOQ.js.map → chunk-677KTHPH.js.map} +0 -0
  367. /package/dist/{chunk-FJPQPOK3.js.map → chunk-7CLHPFPZ.js.map} +0 -0
  368. /package/dist/{chunk-CYDWBHAA.js.map → chunk-7HSSHSYK.js.map} +0 -0
  369. /package/dist/{chunk-SXN63FPH.js.map → chunk-7LRY5QTK.js.map} +0 -0
  370. /package/dist/{chunk-PEHK6NHL.js.map → chunk-A477TZFC.js.map} +0 -0
  371. /package/dist/{chunk-GWICTLVR.js.map → chunk-A7BBVCMY.js.map} +0 -0
  372. /package/dist/{chunk-HWEJIPSK.js.map → chunk-AA7QB3QQ.js.map} +0 -0
  373. /package/dist/{chunk-WBN4ZSGC.js.map → chunk-DBGYYVFL.js.map} +0 -0
  374. /package/dist/{chunk-UPXJJBXZ.js.map → chunk-ED6E3V2E.js.map} +0 -0
  375. /package/dist/{chunk-ZQ6MG635.js.map → chunk-FEB3W622.js.map} +0 -0
  376. /package/dist/{chunk-Z3BMF4BO.js.map → chunk-FGBEOUQK.js.map} +0 -0
  377. /package/dist/{chunk-OQJWLV7V.js.map → chunk-FIXHXJGN.js.map} +0 -0
  378. /package/dist/{chunk-EKKRQI6B.js.map → chunk-GGQFBP37.js.map} +0 -0
  379. /package/dist/{chunk-JTOLQCOG.js.map → chunk-HKCDMC3H.js.map} +0 -0
  380. /package/dist/{chunk-IJR44ISO.js.map → chunk-I4XJ764Y.js.map} +0 -0
  381. /package/dist/{chunk-T2FGDQSU.js.map → chunk-ISQ6I4HJ.js.map} +0 -0
  382. /package/dist/{chunk-H7L735T7.js.map → chunk-LDZWM4VX.js.map} +0 -0
  383. /package/dist/{chunk-ACQ3OEOE.js.map → chunk-LLJWEHDJ.js.map} +0 -0
  384. /package/dist/{chunk-4X77DTSW.js.map → chunk-M3EBUSNT.js.map} +0 -0
  385. /package/dist/{chunk-TWIUL2P3.js.map → chunk-MOG7GUQB.js.map} +0 -0
  386. /package/dist/{chunk-ANGJCT4I.js.map → chunk-MPV22ALR.js.map} +0 -0
  387. /package/dist/{chunk-UZXTPQ47.js.map → chunk-PABPITPH.js.map} +0 -0
  388. /package/dist/{chunk-OIVWGY5Z.js.map → chunk-RSH5MZY3.js.map} +0 -0
  389. /package/dist/{chunk-OW5QGJD4.js.map → chunk-S2BJGON2.js.map} +0 -0
  390. /package/dist/{chunk-5ZR7EFPY.js.map → chunk-SHK2UKLD.js.map} +0 -0
  391. /package/dist/{chunk-6VRUYYUV.js.map → chunk-U5WVXSGT.js.map} +0 -0
  392. /package/dist/{chunk-EGSRN2CQ.js.map → chunk-WRNHET4F.js.map} +0 -0
  393. /package/dist/{chunk-JCKQQFA4.js.map → chunk-XOA7GG4P.js.map} +0 -0
  394. /package/dist/{chunk-26ZOPH2I.js.map → chunk-XPOLXRYT.js.map} +0 -0
  395. /package/dist/{chunk-R7W3BT6P.js.map → chunk-YCILXVJU.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{b as r}from"./chunk-43WMZDDH.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as t,jsxs as e}from"react/jsx-runtime";function n({totalCost:a,currency:s}){return t("div",{className:"pt-2 mt-4 border-t-2 border-gray-200",children:e("div",{className:"flex justify-between items-center",children:[t("h3",{className:"font-bold text-primary-foreground-800",children:"Total Cost"}),t("span",{className:"font-bold text-xl",children:r(a,s)})]})})}o(n,"CostCalculatorTotalCost");export{n as a};
2
- //# sourceMappingURL=chunk-MQWVZSGH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorTotalCost.tsx"],"sourcesContent":["import { formatCurrency } from '@/src/lib/utils';\n\ntype CostCalculatorTotalCostProps = {\n totalCost: number;\n currency: string;\n};\n\nexport function CostCalculatorTotalCost({\n totalCost,\n currency,\n}: CostCalculatorTotalCostProps) {\n return (\n <div className='pt-2 mt-4 border-t-2 border-gray-200'>\n <div className='flex justify-between items-center'>\n <h3 className='font-bold text-primary-foreground-800'>Total Cost</h3>\n <span className='font-bold text-xl'>\n {formatCurrency(totalCost, currency)}\n </span>\n </div>\n </div>\n );\n}\n"],"mappings":"gFAaM,OACE,OAAAA,EADF,QAAAC,MAAA,oBANC,SAASC,EAAwB,CACtC,UAAAC,EACA,SAAAC,CACF,EAAiC,CAC/B,OACEJ,EAAC,OAAI,UAAU,uCACb,SAAAC,EAAC,OAAI,UAAU,oCACb,UAAAD,EAAC,MAAG,UAAU,wCAAwC,sBAAU,EAChEA,EAAC,QAAK,UAAU,oBACb,SAAAK,EAAeF,EAAWC,CAAQ,EACrC,GACF,EACF,CAEJ,CAdgBE,EAAAJ,EAAA","names":["jsx","jsxs","CostCalculatorTotalCost","totalCost","currency","formatCurrency","__name"]}
@@ -1,2 +0,0 @@
1
- import{a as ke}from"./chunk-VAIBLWOY.js";import{a as Le}from"./chunk-GWICTLVR.js";import{a as ue,b as ye,c as pe,f as _e,g as Se,h as be,i as ge,j as Fe,k as Ee,m as he}from"./chunk-BWJAHRV6.js";import{a as Ce,b as Oe,c as Pe,d as Me,e as Te}from"./chunk-XNOLBKZC.js";import{a as R}from"./chunk-2YTBWEC7.js";import{a as Ve}from"./chunk-PJBAQZ6G.js";import{c as h,d as L,f as W}from"./chunk-PAQW5BFW.js";import{g as V}from"./chunk-43WMZDDH.js";import{a as l}from"./chunk-P37U34EQ.js";import{useEffect as st,useMemo as d,useRef as at,useState as we}from"react";import rt from"lodash.mergewith";import{jsx as Be}from"react/jsx-runtime";var ct={employment_basic_information:"basic_information",contract_details:"contract_details"},lt={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},mt=l(({isLoadingBasicInformationForm:f,isLoadingContractDetailsForm:J,isLoadingEmployment:D,isLoadingBenefitsOffersSchema:I,isLoadingBenefitOffers:i,isLoadingCompany:N,isLoadingCountries:C,employmentStatus:s,employmentId:_,currentStepName:a,basicInformationFields:A,contractDetailsFields:c})=>{let O=f||J||D||I||i||N||C,r=s&&Pe.includes(s),k=s&&!Me.includes(s),w=!!(_&&r&&a!=="review"),B=O||w,j=!!(w&&!O&&A.length>0&&c.length>0);return{isLoading:B,isNavigatingToReview:j,isEmploymentReadOnly:r,canInvite:k}},"getLoadingStates"),ht=l(({employmentId:f,companyId:J,countryCode:D,type:I,options:i,skipSteps:N,externalId:C,initialValues:s})=>{let _=at({select_country:{},basic_information:{},contract_details:{},benefits:{}}),[a,A]=we(f),[c,O]=we(D||null),{data:r,isLoading:k,refetch:w}=ue(a);f&&r?.country?.code&&!c&&O(r.country.code);let{data:B,isLoading:j}=pe(a),{data:q,isLoading:G,refetch:je}=ye(J),qe=N?.includes("select_country")?Oe:Ce,{fieldValues:S,stepState:n,setFieldValues:ve,previousStep:Re,nextStep:Je,goToStep:U,setStepValues:$}=Ve(qe),{selectCountryForm:v,isLoading:z}=Ee({jsfModify:i?.jsfModify?.select_country,queryOptions:{enabled:n.currentStep.name==="select_country"}}),K=be(i),Y=ge(i),Q=Fe(i),De=he(),{mutateAsync:Ie}=R(K),{mutateAsync:X}=R(Y),{mutateAsync:Ne}=R(Q),Ae=lt[n.currentStep.name]||"employment_basic_information",Ue=ct[Ae],xe=r?.[Ue]||{},Z=l(({form:e,options:o={},query:m={}})=>{let H=Object.keys(S).length>0?{...s,...n.values?.[n.currentStep.name],...S}:{...s,...xe};return _e({countryCode:c,form:e,fieldValues:H,query:m,options:{...o,queryOptions:{enabled:o.queryOptions?.enabled??!0},jsonSchemaVersion:o.jsonSchemaVersion}})},"useJSONSchema"),He=!!(c&&(n.currentStep.name==="basic_information"||f)),We=!!(c&&(n.currentStep.name==="contract_details"||f)),{data:u,isLoading:ee}=Z({form:"employment_basic_information",options:{jsfModify:i?.jsfModify?.basic_information,jsonSchemaVersion:i?.jsonSchemaVersion,queryOptions:{enabled:He}}}),b=i?.jsfModify?.contract_details?.fields?.annual_gross_salary,x=b&&typeof b=="object"&&"presentation"in b?b.presentation:void 0,te=i?.jsfModify?.contract_details?.fields?.equity_compensation,Ge=d(()=>({fields:{annual_gross_salary:{...b,presentation:{annual_gross_salary_conversion_properties:{label:x?.annual_gross_salary_conversion_properties?.label,description:x?.annual_gross_salary_conversion_properties?.description},desiredCurrency:q?.desired_currency,Component:l(e=>Be(Le,{desiredCurrency:q?.desired_currency||"",...e}),"Component")}},equity_compensation:{...te,presentation:{calculateDynamicProperties:l((e,o)=>{let m=e.equity_compensation?.offer_equity_compensation,M=o?.meta?.cost;return{extra:Be(ke,{offerEquity:m,equityCost:M})}},"calculateDynamicProperties")}}}}),[b,x,q?.desired_currency,te]),$e=Te(i?.jsonSchemaVersion),{data:y,isLoading:ne}=Z({form:"contract_details",query:{employment_id:a},options:{jsfModify:{...i?.jsfModify?.contract_details,fields:{...i?.jsfModify?.contract_details?.fields,...Ge.fields}},queryOptions:{enabled:We},jsonSchemaVersion:$e}}),{data:P,isLoading:oe}=Se(a,S,i),ie=d(()=>{if(n.currentStep.name==="benefits"){let e={...n.values?.[n.currentStep.name],...S};return rt({},B,e)}return{}},[n.currentStep.name,B,n.values,S]),t=d(()=>({select_country:v?.fields||[],basic_information:u?.fields||[],contract_details:y?.fields||[],benefits:P?.fields||[],review:[]}),[v?.fields,u?.fields,y?.fields,P?.fields]),ze={select_country:null,basic_information:u?.meta["x-jsf-fieldsets"],contract_details:y?.meta["x-jsf-fieldsets"],benefits:null,review:null},{country:Ke,basic_information:se={},contract_details:ae={},status:re}=r||{},ce=Ke?.code,le=n.currentStep.name,g=d(()=>L(t.select_country,{country:c||ce||""}),[t.select_country,c,ce]),F=d(()=>{let e={...s,...se};return L(t.basic_information,e)},[t.basic_information,se,s]),p=d(()=>{let e={...s,...ae};return L(t.contract_details,e)},[t.contract_details,ae,s]),E=d(()=>{let e={...s,...ie};return L(t.benefits,e)},[t.benefits,ie,s]),Ye=d(()=>r?{select_country:g,basic_information:W(t.basic_information,F),contract_details:r?.contract_details!==null?W(t.contract_details,p):p,benefits:E}:{select_country:g,basic_information:F,contract_details:p,benefits:E},[g,F,p,E,r,t]),{isLoading:Qe,isNavigatingToReview:me,isEmploymentReadOnly:Xe,canInvite:Ze}=d(()=>mt({isLoadingBasicInformationForm:ee,isLoadingContractDetailsForm:ne,isLoadingEmployment:k,isLoadingBenefitsOffersSchema:oe,isLoadingBenefitOffers:j,isLoadingCompany:G,isLoadingCountries:z,employmentId:f,employmentStatus:re,basicInformationFields:t.basic_information,contractDetailsFields:t.contract_details,currentStepName:le}),[ee,ne,k,oe,j,G,z,f,re,t.basic_information,t.contract_details,le]);st(()=>{me&&(_.current={select_country:V(g,t.select_country),basic_information:V(F,t.basic_information),contract_details:V(p,t.contract_details),benefits:V(E,t.benefits)},$({select_country:g,basic_information:F,contract_details:p,benefits:E,review:{}}),U("review"))},[F,E,p,U,me,g,$,t.basic_information,t.benefits,t.contract_details,t.select_country]);let de=l(e=>v&&n.currentStep.name==="select_country"?e:u&&n.currentStep.name==="basic_information"?h(e,u?.fields,{isPartialValidation:!1}):y&&n.currentStep.name==="contract_details"?h(e,y?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function et(e){let o=n.currentStep.name;o in _.current&&(_.current[o]=V(e,t[o]));let m=de(e);switch(je(),n.currentStep.name){case"select_country":return O(m.country),Promise.resolve({data:{countryCode:m.country}});case"basic_information":{let M=!a&&c,H=a&&c&&r?.country&&r?.country.code!==c;if(M||H){let it={basic_information:m,type:I,country_code:c,external_id:C};try{let T=await Ie(it),fe=T.data?.data?.employment?.id;return A(fe),await De.mutateAsync({employmentId:fe,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1}),T}catch(T){throw console.error("Error creating onboarding:",T),T}}else if(a)return X({employmentId:a,basic_information:m,pricing_plan_details:{frequency:"monthly"},external_id:C});return}case"contract_details":return X({employmentId:a,external_id:C,...{contract_details:m,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return Ne({employmentId:a,...e})}}l(et,"onSubmit");function tt(){Re()}l(tt,"back");function nt(){Je()}l(nt,"next");function ot(e){U(e)}return l(ot,"goTo"),{employmentId:a,creditRiskStatus:q?.default_legal_entity_credit_risk_status,fieldValues:S,stepState:n,fields:t[n.currentStep.name],isLoading:Qe,isSubmitting:K.isPending||Y.isPending||Q.isPending,initialValues:Ye,handleValidation:l(e=>{if(n.currentStep.name==="select_country")return v.handleValidation(e);if(n.currentStep.name==="benefits"&&P){let o=h(e,P?.fields,{isPartialValidation:!1});return P?.handleValidation(o)}if(u&&n.currentStep.name==="basic_information"){let o=h(e,u?.fields,{isPartialValidation:!1});return u?.handleValidation(o)}if(y&&n.currentStep.name==="contract_details"){let o=h(e,y?.fields,{isPartialValidation:!1});return y?.handleValidation(o)}return null},"handleValidation"),checkFieldUpdates:ve,parseFormValues:de,onSubmit:et,back:tt,next:nt,goTo:ot,meta:{fields:_.current,fieldsets:ze[n.currentStep.name]},refetchEmployment:w,employment:r,isEmploymentReadOnly:Xe,canInvite:Ze}},"useOnboarding");export{ht as a};
2
- //# sourceMappingURL=chunk-NCNXUNBB.js.map
@@ -1 +0,0 @@
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 disabledInviteButtonEmploymentStatus,\n getContractDetailsSchemaVersion,\n reviewStepAllowedEmploymentStatus,\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n} from '@/src/flows/Onboarding/utils';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport {\n getInitialValues,\n enableAckFields,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { FieldValues } from 'react-hook-form';\nimport { OnboardingFlowProps } 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 useUpsertContractEligibility,\n} from '@/src/flows/Onboarding/api';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { AnnualGrossSalary } from '@/src/flows/Onboarding/components/AnnualGrossSalary';\nimport { $TSFixMe, JSFField, JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport { EquityPriceDetails } from '@/src/flows/Onboarding/components/EquityPriceDetails';\n\ntype OnboardingHookProps = Omit<OnboardingFlowProps, 'render'>;\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 canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.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 {\n isLoading,\n isNavigatingToReview,\n isEmploymentReadOnly,\n canInvite,\n };\n};\n\nexport const useOnboarding = ({\n employmentId,\n companyId,\n countryCode,\n type,\n options,\n skipSteps,\n externalId,\n initialValues: onboardingInitialValues,\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 (employmentId && employment?.country?.code && !internalCountryCode) {\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 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 updateContractEligibilityMutation = useUpsertContractEligibility();\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 query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n jsonSchemaVersion: jsonSchemaOptions.jsonSchemaVersion,\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 jsonSchemaVersion: options?.jsonSchemaVersion,\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 equityCompensationField =\n options?.jsfModify?.contract_details?.fields?.equity_compensation;\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 return (\n <AnnualGrossSalary\n desiredCurrency={company?.desired_currency || ''}\n {...props}\n />\n );\n },\n },\n },\n equity_compensation: {\n ...equityCompensationField,\n presentation: {\n calculateDynamicProperties: (\n values: FieldValues,\n field: JSFField,\n ) => {\n const offerEquity =\n values.equity_compensation?.offer_equity_compensation;\n const equityCost = field?.meta?.cost;\n\n return {\n extra: (\n <EquityPriceDetails\n offerEquity={offerEquity}\n equityCost={equityCost as $TSFixMe}\n />\n ),\n };\n },\n },\n },\n },\n }),\n [\n annualGrossSalaryField,\n annualSalaryFieldPresentation,\n company?.desired_currency,\n equityCompensationField,\n ],\n );\n\n const effectiveContractDetailsJsonSchemaVersion =\n getContractDetailsSchemaVersion(options?.jsonSchemaVersion);\n\n const { data: contractDetailsForm, isLoading: isLoadingContractDetailsForm } =\n useJSONSchema({\n form: 'contract_details',\n query: {\n employment_id: internalEmploymentId as string,\n },\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 jsonSchemaVersion: effectiveContractDetailsJsonSchemaVersion,\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 stepFieldsWithFlatFieldsets: Record<\n keyof typeof STEPS,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n contract_details: contractDetailsForm?.meta['x-jsf-fieldsets'],\n benefits: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n status: employmentStatus,\n } = employment || {};\n\n const employmentCountryCode = country?.code;\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 const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n stepFields.basic_information,\n employmentBasicInformation,\n onboardingInitialValues,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const benefitsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...initialValuesBenefitOffers,\n };\n\n return getInitialValues(stepFields.benefits, initialValues);\n }, [\n stepFields.benefits,\n initialValuesBenefitOffers,\n onboardingInitialValues,\n ]);\n\n const initialValues = useMemo(() => {\n if (employment) {\n return {\n select_country: selectCountryInitialValues,\n // We don't store ack fields in the db, eg \"ack_start_date_ammendment\" for Argentina, and therefore is not returned in the employment response\n // So when an employmentId exists, it means that the user has already started the onboarding process, and we need to enable the ack fields\n basic_information: enableAckFields(\n stepFields['basic_information'],\n basicInformationInitialValues,\n ),\n contract_details:\n // if contract details is null, it means it has not been filled yet, so we can't enable the ack fields\n employment?.contract_details !== null\n ? enableAckFields(\n stepFields['contract_details'],\n contractDetailsInitialValues,\n )\n : contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n };\n }\n return {\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 employment,\n stepFields,\n ]);\n\n const { isLoading, isNavigatingToReview, isEmploymentReadOnly, canInvite } =\n 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: false,\n });\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return parseJSFToValidate(values, contractDetailsForm?.fields, {\n isPartialValidation: false,\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 external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n setInternalEmploymentId(employmentId);\n await updateContractEligibilityMutation.mutateAsync({\n employmentId: employmentId,\n eligible_to_work_in_residing_country: 'citizen',\n employer_or_work_restrictions: false,\n });\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 external_id: externalId,\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 external_id: externalId,\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 { isPartialValidation: false },\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 { isPartialValidation: false },\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 { isPartialValidation: false },\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 fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\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 * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n };\n};\n"],"mappings":"meAwBA,OAAS,aAAAA,GAAW,WAAAC,EAAS,UAAAC,GAAQ,YAAAC,OAAgB,QACrD,OAAOC,OAAe,mBA+SN,cAAAC,OAAA,oBA3RhB,IAAMC,GAEF,CACF,6BAA8B,oBAC9B,iBAAkB,kBACpB,EAEMC,GAGF,CACF,eAAgB,KAChB,kBAAmB,+BACnB,iBAAkB,mBAClB,SAAU,KACV,OAAQ,IACV,EAEMC,GAAmBC,EAAA,CAAC,CACxB,8BAAAC,EACA,6BAAAC,EACA,oBAAAC,EACA,8BAAAC,EACA,uBAAAC,EACA,iBAAAC,EACA,mBAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,sBAAAC,CACF,IAaM,CACJ,IAAMC,EACJZ,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EAEIO,EACJN,GACAO,GAAkC,SAASP,CAAgB,EAEvDQ,EACJR,GACA,CAACS,GAAqC,SAAST,CAAgB,EAE3DU,EAAiC,GACrCT,GAAgBK,GAAwBJ,IAAoB,UAGxDS,EAAYN,GAAkBK,EAE9BE,EAAuB,GAC3BF,GACE,CAACL,GACDF,EAAuB,OAAS,GAChCC,EAAsB,OAAS,GAGnC,MAAO,CACL,UAAAO,EACA,qBAAAC,EACA,qBAAAN,EACA,UAAAE,CACF,CACF,EA/DyB,oBAiEZK,GAAgBrB,EAAA,CAAC,CAC5B,aAAAS,EACA,UAAAa,EACA,YAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,cAAeC,CACjB,IAA2B,CACzB,IAAMC,EAAgBC,GAKnB,CACD,eAAgB,CAAC,EACjB,kBAAmB,CAAC,EACpB,iBAAkB,CAAC,EACnB,SAAU,CAAC,CACb,CAAC,EACK,CAACC,EAAsBC,CAAuB,EAAIC,GAEtDxB,CAAY,EACR,CAACyB,EAAqBC,CAAsB,EAAIF,GACpDV,GAAe,IACjB,EACM,CACJ,KAAMa,EACN,UAAWjC,EACX,QAASkC,CACX,EAAIC,GAAcP,CAAoB,EAIlCtB,GAAgB2B,GAAY,SAAS,MAAQ,CAACF,GAChDC,EAAuBC,EAAW,QAAQ,IAAI,EAGhD,GAAM,CAAE,KAAMG,EAAe,UAAWlC,CAAuB,EAC7DmC,GAAiBT,CAAoB,EACjC,CACJ,KAAMU,EACN,UAAWnC,EACX,QAASoC,EACX,EAAIC,GAAWrB,CAAS,EAClBsB,GAAalB,GAAW,SAAS,gBAAgB,EACnDmB,GACAC,GAEE,CACJ,YAAAC,EACA,UAAAC,EACA,eAAAC,GACA,aAAAC,GACA,SAAAC,GACA,SAAAC,EACA,cAAAC,CACF,EAAIC,GACFV,EACF,EAEM,CAAE,kBAAAW,EAAmB,UAAWhD,CAAmB,EACvDiD,GAAwB,CACtB,UAAW/B,GAAS,WAAW,eAC/B,aAAc,CACZ,QAASuB,EAAU,YAAY,OAAS,gBAC1C,CACF,CAAC,EAEGS,EAA2BC,GAAoBjC,CAAO,EACtDkC,EAA2BC,GAAoBnC,CAAO,EACtDoC,EAA+BC,GAAwBrC,CAAO,EAC9DsC,GAAoCC,GAA6B,EACjE,CAAE,YAAaC,EAA8B,EAAIC,EACrDT,CACF,EACM,CAAE,YAAaU,CAA8B,EAAID,EACrDP,CACF,EACM,CAAE,YAAaS,EAAkC,EAAIF,EACzDL,CACF,EAEMQ,GACJvE,GAAoBkD,EAAU,YAAY,IAAI,GAC9C,+BACIsB,GAAgBzE,GAAuBwE,EAAQ,EAC/CE,GAAwBnC,IAAakC,EAAa,GAAK,CAAC,EAKxDE,EAAgBxE,EAAA,CAAC,CACrB,KAAAyE,EACA,QAASC,EAAoB,CAAC,EAC9B,MAAAC,EAAQ,CAAC,CACX,IAQM,CAKJ,IAAMC,EAJ0B,OAAO,KAAK7B,CAAW,EAAE,OAAS,EAK9D,CACE,GAAGnB,EACH,GAAGoB,EAAU,SAASA,EAAU,YAAY,IAAI,EAChD,GAAGD,CACL,EACA,CACE,GAAGnB,EACH,GAAG2C,EACL,EAEJ,OAAOM,GAAkB,CACvB,YAAa3C,EACb,KAAMuC,EACN,YAAaG,EACb,MAAAD,EACA,QAAS,CACP,GAAGD,EACH,aAAc,CACZ,QAASA,EAAkB,cAAc,SAAW,EACtD,EACA,kBAAmBA,EAAkB,iBACvC,CACF,CAAC,CACH,EAzCsB,iBA2ChBI,GAAmC,GACvC5C,IACGc,EAAU,YAAY,OAAS,qBACtBvC,IAGRsE,GAA2B,GAC/B7C,IACGc,EAAU,YAAY,OAAS,oBACtBvC,IAGR,CACJ,KAAMuE,EACN,UAAW/E,EACb,EAAIuE,EAAc,CAChB,KAAM,+BACN,QAAS,CACP,UAAW/C,GAAS,WAAW,kBAC/B,kBAAmBA,GAAS,kBAC5B,aAAc,CACZ,QAASqD,EACX,CACF,CACF,CAAC,EAEKG,EACJxD,GAAS,WAAW,kBAAkB,QAAQ,oBAC1CyD,EACJD,GACA,OAAOA,GAA2B,UAClC,iBAAkBA,EAEZA,EAQA,aACF,OAEAE,GACJ1D,GAAS,WAAW,kBAAkB,QAAQ,oBAE1C2D,GAAeC,EACnB,KAAO,CACL,OAAQ,CACN,oBAAqB,CACnB,GAAGJ,EACH,aAAc,CACZ,0CAA2C,CACzC,MACEC,GACI,2CAA2C,MACjD,YACEA,GACI,2CAA2C,WACnD,EACA,gBAAiBzC,GAAS,iBAC1B,UAAWzC,EAACsF,GAER1F,GAAC2F,GAAA,CACC,gBAAiB9C,GAAS,kBAAoB,GAC7C,GAAG6C,EACN,EALO,YAQb,CACF,EACA,oBAAqB,CACnB,GAAGH,GACH,aAAc,CACZ,2BAA4BnF,EAAA,CAC1BwF,EACAC,IACG,CACH,IAAMC,EACJF,EAAO,qBAAqB,0BACxBG,EAAaF,GAAO,MAAM,KAEhC,MAAO,CACL,MACE7F,GAACgG,GAAA,CACC,YAAaF,EACb,WAAYC,EACd,CAEJ,CACF,EAhB4B,6BAiB9B,CACF,CACF,CACF,GACA,CACEV,EACAC,EACAzC,GAAS,iBACT0C,EACF,CACF,EAEMU,GACJC,GAAgCrE,GAAS,iBAAiB,EAEtD,CAAE,KAAMsE,EAAqB,UAAW7F,EAA6B,EACzEsE,EAAc,CACZ,KAAM,mBACN,MAAO,CACL,cAAezC,CACjB,EACA,QAAS,CACP,UAAW,CACT,GAAGN,GAAS,WAAW,iBACvB,OAAQ,CACN,GAAGA,GAAS,WAAW,kBAAkB,OACzC,GAAG2D,GAAa,MAClB,CACF,EACA,aAAc,CACZ,QAASL,EACX,EACA,kBAAmBc,EACrB,CACF,CAAC,EAEG,CACJ,KAAMG,EACN,UAAW5F,EACb,EAAI6F,GACFlE,EACAgB,EACAtB,CACF,EAEMyE,GAA6Bb,EAAQ,IAAM,CAC/C,GAAIrC,EAAU,YAAY,OAAS,WAAY,CAC7C,IAAMmD,EAAqB,CACzB,GAAGnD,EAAU,SAASA,EAAU,YAAY,IAA0B,EACtE,GAAGD,CACL,EACA,OAAOqD,GAAU,CAAC,EAAG7D,EAAe4D,CAAkB,CACxD,CACA,MAAO,CAAC,CACV,EAAG,CACDnD,EAAU,YAAY,KACtBT,EACAS,EAAU,OACVD,CACF,CAAC,EAEKsD,EAAiDhB,EACrD,KAAO,CACL,eAAgB9B,GAAmB,QAAU,CAAC,EAC9C,kBAAmByB,GAAsB,QAAU,CAAC,EACpD,iBAAkBe,GAAqB,QAAU,CAAC,EAClD,SAAUC,GAAqB,QAAU,CAAC,EAC1C,OAAQ,CAAC,CACX,GACA,CACEzC,GAAmB,OACnByB,GAAsB,OACtBe,GAAqB,OACrBC,GAAqB,MACvB,CACF,EAEMM,GAGF,CACF,eAAgB,KAChB,kBAAmBtB,GAAsB,KAAK,iBAAiB,EAC/D,iBAAkBe,GAAqB,KAAK,iBAAiB,EAC7D,SAAU,KACV,OAAQ,IACV,EAEM,CACJ,QAAAQ,GACA,kBAAmBC,GAA6B,CAAC,EACjD,iBAAkBC,GAA4B,CAAC,EAC/C,OAAQjG,EACV,EAAI4B,GAAc,CAAC,EAEbsE,GAAwBH,IAAS,KACjC7F,GAAkBsC,EAAU,YAAY,KAExC2D,EAA6BtB,EACjC,IACEuB,EAAiBP,EAAW,eAAgB,CAC1C,QAASnE,GAAuBwE,IAAyB,EAC3D,CAAC,EACH,CAACL,EAAW,eAAgBnE,EAAqBwE,EAAqB,CACxE,EAEMG,EAAgCxB,EAAQ,IAAM,CAClD,IAAMyB,EAAgB,CACpB,GAAGlF,EACH,GAAG4E,EACL,EAEA,OAAOI,EAAiBP,EAAW,kBAAmBS,CAAa,CACrE,EAAG,CACDT,EAAW,kBACXG,GACA5E,CACF,CAAC,EAEKmF,EAA+B1B,EAAQ,IAAM,CACjD,IAAMyB,EAAgB,CACpB,GAAGlF,EACH,GAAG6E,EACL,EAEA,OAAOG,EAAiBP,EAAW,iBAAkBS,CAAa,CACpE,EAAG,CACDT,EAAW,iBACXI,GACA7E,CACF,CAAC,EAEKoF,EAAwB3B,EAAQ,IAAM,CAC1C,IAAMyB,EAAgB,CACpB,GAAGlF,EACH,GAAGsE,EACL,EAEA,OAAOU,EAAiBP,EAAW,SAAUS,CAAa,CAC5D,EAAG,CACDT,EAAW,SACXH,GACAtE,CACF,CAAC,EAEKkF,GAAgBzB,EAAQ,IACxBjD,EACK,CACL,eAAgBuE,EAGhB,kBAAmBM,EACjBZ,EAAW,kBACXQ,CACF,EACA,iBAEEzE,GAAY,mBAAqB,KAC7B6E,EACEZ,EAAW,iBACXU,CACF,EACAA,EACN,SAAUC,CACZ,EAEK,CACL,eAAgBL,EAChB,kBAAmBE,EACnB,iBAAkBE,EAClB,SAAUC,CACZ,EACC,CACDL,EACAE,EACAE,EACAC,EACA5E,EACAiE,CACF,CAAC,EAEK,CAAE,UAAAlF,GAAW,qBAAAC,GAAsB,qBAAAN,GAAsB,UAAAE,EAAU,EACvEqE,EACE,IACEtF,GAAiB,CACf,8BAAAE,GACA,6BAAAC,GACA,oBAAAC,EACA,8BAAAC,GACA,uBAAAC,EACA,iBAAAC,EACA,mBAAAC,EACA,aAAAE,EACA,iBAAkBD,GAClB,uBAAwB6F,EAAW,kBACnC,sBAAuBA,EAAW,iBAClC,gBAAiB3F,EACnB,CAAC,EACH,CACET,GACAC,GACAC,EACAC,GACAC,EACAC,EACAC,EACAE,EACAD,GACA6F,EAAW,kBACXA,EAAW,iBACX3F,EACF,CACF,EAEFwG,GAAU,IAAM,CACV9F,KACFS,EAAc,QAAU,CACtB,eAAgBsF,EACdR,EACAN,EAAW,cACb,EACA,kBAAmBc,EACjBN,EACAR,EAAW,iBACb,EACA,iBAAkBc,EAChBJ,EACAV,EAAW,gBACb,EACA,SAAUc,EACRH,EACAX,EAAW,QACb,CACF,EAEAhD,EAAc,CACZ,eAAgBsD,EAChB,kBAAmBE,EACnB,iBAAkBE,EAClB,SAAUC,EACV,OAAQ,CAAC,CACX,CAAC,EAED5D,EAAS,QAAQ,EAErB,EAAG,CACDyD,EACAG,EACAD,EACA3D,EACAhC,GACAuF,EACAtD,EACAgD,EAAW,kBACXA,EAAW,SACXA,EAAW,iBACXA,EAAW,cACb,CAAC,EAED,IAAMe,GAAkBpH,EAACwF,GACnBjC,GAAqBP,EAAU,YAAY,OAAS,iBAC/CwC,EAGPR,GACAhC,EAAU,YAAY,OAAS,oBAExBqE,EAAmB7B,EAAQR,GAAsB,OAAQ,CAC9D,oBAAqB,EACvB,CAAC,EAIDe,GACA/C,EAAU,YAAY,OAAS,mBAExBqE,EAAmB7B,EAAQO,GAAqB,OAAQ,CAC7D,oBAAqB,EACvB,CAAC,EAGI,CAAC,EAtBc,mBAyBxB,eAAeuB,GAAS9B,EAAqB,CAE3C,IAAM9E,EAAkBsC,EAAU,YAAY,KAC1CtC,KAAmBmB,EAAc,UACnCA,EAAc,QACZnB,CACF,EAAIyG,EAAmB3B,EAAQa,EAAW3F,CAAe,CAAC,GAG5D,IAAM6G,EAAeH,GAAgB5B,CAAM,EAE3C,OADA9C,GAAe,EACPM,EAAU,YAAY,KAAM,CAClC,IAAK,iBACH,OAAAb,EAAuBoF,EAAa,OAAO,EACpC,QAAQ,QAAQ,CAAE,KAAM,CAAE,YAAaA,EAAa,OAAQ,CAAE,CAAC,EAExE,IAAK,oBAAqB,CACxB,IAAMC,EACJ,CAACzF,GAAwBG,EACrBuF,EACJ1F,GACAG,GACAE,GAAY,SACZA,GAAY,QAAQ,OAASF,EAC/B,GAAIsF,GAAyBC,EAAmB,CAC9C,IAAMC,GAAkC,CACtC,kBAAmBH,EACnB,KAAM/F,EACN,aAAcU,EACd,YAAaP,CACf,EACA,GAAI,CACF,IAAMgG,EAAW,MAAM1D,GAA8ByD,EAAO,EAEtDjH,GAAekH,EAAS,MAAM,MAAM,YAAY,GACtD,OAAA3F,EAAwBvB,EAAY,EACpC,MAAMsD,GAAkC,YAAY,CAClD,aAActD,GACd,qCAAsC,UACtC,8BAA+B,EACjC,CAAC,EAEMkH,CACT,OAASC,EAAO,CACd,cAAQ,MAAM,6BAA8BA,CAAK,EAC3CA,CACR,CACF,SAAW7F,EACT,OAAOoC,EAA8B,CACnC,aAAcpC,EACd,kBAAmBwF,EACnB,qBAAsB,CACpB,UAAW,SACb,EACA,YAAa5F,CACf,CAAC,EAGH,MACF,CACA,IAAK,mBAOH,OAAOwC,EAA8B,CACnC,aAAcpC,EACd,YAAaJ,EACb,GAToC,CACpC,iBAAkB4F,EAClB,qBAAsB,CACpB,UAAW,SACb,CACF,CAKA,CAAC,EAGH,IAAK,WACH,OAAOnD,GAAkC,CACvC,aAAcrC,EACd,GAAGyD,CACL,CAAC,CAEL,CAEF,CAlFexF,EAAAsH,GAAA,YAoFf,SAASO,IAAO,CACd3E,GAAa,CACf,CAFSlD,EAAA6H,GAAA,QAIT,SAASC,IAAO,CACd3E,GAAS,CACX,CAFSnD,EAAA8H,GAAA,QAIT,SAASC,GAAKC,EAA0B,CACtC5E,EAAS4E,CAAI,CACf,CAFS,OAAAhI,EAAA+H,GAAA,QAIF,CAIL,aAAchG,EAcd,iBAAkBU,GAAS,wCAI3B,YAAAM,EAIA,UAAAC,EAIA,OAAQqD,EAAWrD,EAAU,YAAY,IAAI,EAI7C,UAAW7B,GAIX,aACEsC,EAAyB,WACzBE,EAAyB,WACzBE,EAA6B,UAI/B,cAAAiD,GAMA,iBAAkB9G,EAACwF,GAAwB,CACzC,GAAIxC,EAAU,YAAY,OAAS,iBACjC,OAAOO,EAAkB,iBAAiBiC,CAAM,EAElD,GAAIxC,EAAU,YAAY,OAAS,YAAcgD,EAAqB,CACpE,IAAMuB,EAAeF,EACnB7B,EACAQ,GAAqB,OACrB,CAAE,oBAAqB,EAAM,CAC/B,EAEA,OAAOA,GAAqB,iBAAiBuB,CAAY,CAC3D,CACA,GACEvC,GACAhC,EAAU,YAAY,OAAS,oBAC/B,CACA,IAAMuE,EAAeF,EACnB7B,EACAR,GAAsB,OACtB,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAsB,iBAAiBuC,CAAY,CAC5D,CAEA,GACExB,GACA/C,EAAU,YAAY,OAAS,mBAC/B,CACA,IAAMuE,EAAeF,EACnB7B,EACAO,GAAqB,OACrB,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAqB,iBAAiBwB,CAAY,CAC3D,CAEA,OAAO,IACT,EAtCkB,oBA2ClB,kBAAmBtE,GAOnB,gBAAAmE,GAOA,SAAAE,GAMA,KAAAO,GAMA,KAAAC,GAOA,KAAAC,GAKA,KAAM,CACJ,OAAQlG,EAAc,QACtB,UAAWyE,GAA4BtD,EAAU,YAAY,IAAI,CACnE,EAMA,kBAAAX,EAIA,WAAAD,EAMA,qBAAAtB,GAMA,UAAAE,EACF,CACF,EA/vB6B","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","canInvite","disabledInviteButtonEmploymentStatus","shouldHandleReadOnlyEmployment","isLoading","isNavigatingToReview","useOnboarding","companyId","countryCode","type","options","skipSteps","externalId","onboardingInitialValues","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","updateContractEligibilityMutation","useUpsertContractEligibility","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractDetailsEnabled","basicInformationForm","annualGrossSalaryField","annualSalaryFieldPresentation","equityCompensationField","customFields","useMemo","props","AnnualGrossSalary","values","field","offerEquity","equityCost","EquityPriceDetails","effectiveContractDetailsJsonSchemaVersion","getContractDetailsSchemaVersion","contractDetailsForm","benefitOffersSchema","useBenefitOffersSchema","initialValuesBenefitOffers","benefitsFormValues","mergeWith","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","contractDetailsInitialValues","benefitsInitialValues","enableAckFields","useEffect","prettifyFormValues","parseFormValues","parseJSFToValidate","onSubmit","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","back","next","goTo","step"]}
@@ -1,2 +0,0 @@
1
- import{b as u}from"./chunk-CFIJKJXD.js";import{a as F}from"./chunk-A2KMKSSC.js";import{f as l,g as p}from"./chunk-CNDSIADP.js";import{c as f}from"./chunk-PAQW5BFW.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a as r}from"./chunk-P37U34EQ.js";import{useEffect as R}from"react";import{jsx as a}from"react/jsx-runtime";var w=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:S,stepState:g,initialValues:i,handleValidation:y}}=_(),V=u(y),e=l({resolver:V,defaultValues:g.values?.form||i,shouldUnregister:!0,mode:"onBlur"});R(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=r(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!w.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=f(t,s,{isPartialValidation:!1});await b?.(d);let n=await S(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return a(p,{...e,children:a("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:a(F,{fields:s})})})}r(x,"ContractAmendmentForm");export{x as a};
2
- //# sourceMappingURL=chunk-OLRZ3U4A.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentForm.tsx"],"sourcesContent":["import {\n ContractAmendmentAutomatableResponse,\n PostAutomatableContractAmendmentError,\n} from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => void | Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (\n error:\n | PostAutomatableContractAmendmentError\n | { message: 'no_changes_detected_contract_details' },\n ) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * This function is called after the contract amendment is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (\n data: ContractAmendmentAutomatableResponse,\n ) => void | Promise<void>;\n};\n\nconst commonFields = [\n 'effective_date',\n 'reason_for_change',\n 'reason_for_change_description',\n 'additional_comments',\n 'additional_comments_toggle',\n] as const;\n\ntype CommonFields = (typeof commonFields)[number];\n\nexport function ContractAmendmentForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentFormProps) {\n const {\n formId,\n contractAmendment: {\n checkFieldUpdates,\n fields,\n onSubmit: submitContractAmendment,\n stepState,\n initialValues,\n handleValidation,\n },\n } = useContractAmendmentContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues:\n // stepState.values is used as defaultValues for the form when the form is\n // rendered when clicking on the back button after the user has submitted the form\n // and the confirmation form is displayed.\n // This is because the form is unmounted when the user submits the form.\n stepState.values?.form || initialValues,\n shouldUnregister: true,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isFormDirty =\n Object.keys(form.formState.dirtyFields).length > 0 ||\n form.formState.isDirty;\n if (isFormDirty) {\n checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: FieldValues) => {\n let hasContractDetailsChanges = false;\n for (const [key, value] of Object.entries(values)) {\n if (\n !commonFields.includes(key as CommonFields) &&\n // @ts-expect-error error\n initialValues[key] !== value\n ) {\n hasContractDetailsChanges = true;\n break;\n }\n }\n\n if (!hasContractDetailsChanges) {\n return onError?.({\n message: 'no_changes_detected_contract_details',\n });\n }\n\n const parsedValues = parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(contractAmendmentResult.error);\n } else {\n await onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentAutomatableResponse,\n );\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n data-testid='contract-amendment-form'\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__ContractAmendmentForm'\n >\n <JSONSchemaFormFields fields={fields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"uPAQA,OAAS,aAAAA,MAAiB,QAwIlB,cAAAC,MAAA,oBArGR,IAAMC,EAAe,CACnB,iBACA,oBACA,gCACA,sBACA,4BACF,EAIO,SAASC,EAAsB,CACpC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA+B,CAC7B,GAAM,CACJ,OAAAC,EACA,kBAAmB,CACjB,kBAAAC,EACA,OAAAC,EACA,SAAUC,EACV,UAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,CACF,EAAIC,EAA4B,EAE1BC,EAAWC,EAEfH,CACF,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAKEJ,EAAU,QAAQ,MAAQC,EAC5B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDO,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,EAEzC,OAAO,KAAKJ,EAAK,UAAU,WAAW,EAAE,OAAS,GACjDA,EAAK,UAAU,UAEfT,EAAkBa,CAAM,CAE5B,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAME,EAAeC,EAAA,MAAOF,GAAwB,CAClD,IAAIG,EAA4B,GAChC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQL,CAAM,EAC9C,GACE,CAACnB,EAAa,SAASuB,CAAmB,GAE1Cb,EAAca,CAAG,IAAMC,EACvB,CACAF,EAA4B,GAC5B,KACF,CAGF,GAAI,CAACA,EACH,OAAOnB,IAAU,CACf,QAAS,sCACX,CAAC,EAGH,IAAMsB,EAAeC,EAAmBP,EAAQZ,EAAQ,CACtD,oBAAqB,EACvB,CAAC,EAED,MAAML,IAAWuB,CAAY,EAE7B,IAAME,EAA0B,MAAMnB,EAAwBW,CAAM,EAEhEQ,EAAwB,MAC1BxB,IAAUwB,EAAwB,KAAK,EAEvC,MAAMvB,IACJuB,EAAwB,IAC1B,CAEJ,EAlCqB,gBAoCrB,OACE5B,EAAC6B,EAAA,CAAM,GAAGb,EACR,SAAAhB,EAAC,QACC,GAAIM,EACJ,cAAY,0BACZ,SAAUU,EAAK,aAAaK,CAAY,EACxC,UAAU,+CAEV,SAAArB,EAAC8B,EAAA,CAAqB,OAAQtB,EAAQ,EACxC,EACF,CAEJ,CA/FgBc,EAAApB,EAAA","names":["useEffect","jsx","commonFields","ContractAmendmentForm","onSubmit","onError","onSuccess","formId","checkFieldUpdates","fields","submitContractAmendment","stepState","initialValues","handleValidation","useContractAmendmentContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","handleSubmit","__name","hasContractDetailsChanges","key","value","parsedValues","parseJSFToValidate","contractAmendmentResult","Form","JSONSchemaFormFields"]}
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-FQYK5BJV.js";import{b as m}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as n}from"react/jsx-runtime";function u({onSubmit:r}){let{terminationBag:i}=m();return n(a,{onSubmit:o(async e=>{await r?.(i?.parseFormValues(e)),i?.next()},"handleSubmit")})}o(u,"PaidTimeOffForm");export{u as a};
2
- //# sourceMappingURL=chunk-OOCCLRPH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractorOnboardingForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport { BasicInformationFormPayload } from '@/src/flows/Onboarding/types';\nimport { Components } from '@/src/types/remoteFlows';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useEffect } from 'react';\nimport { PricingPlanFormPayload } from '@/src/flows/ContractorOnboarding/types';\nimport { ContractorOnboardingContractDetailsFormPayload } from '@/src/flows/ContractorOnboarding/types';\n\ntype ContractorOnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | PricingPlanFormPayload\n | ContractorOnboardingContractDetailsFormPayload,\n ) => void;\n components?: Components;\n fields?: Fields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function ContractorOnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: ContractorOnboardingFormProps) {\n const { formId, contractorOnboardingBag } = useContractorOnboardingContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n contractorOnboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (contractorOnboardingBag.employmentId) {\n contractorOnboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof unknown] !== defaultValues[key as keyof unknown],\n );\n if (isAnyFieldDirty) {\n contractorOnboardingBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: Record<string, unknown>) => {\n onSubmit(values);\n };\n\n return (\n <Form\n {...form}\n key={`form-${contractorOnboardingBag.stepState.currentStep.name}`}\n >\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={contractorOnboardingBag.fields}\n fieldsets={contractorOnboardingBag.meta.fieldsets}\n fieldValues={contractorOnboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"+MAQA,OAAS,aAAAA,MAAiB,QAwElB,cAAAC,MAAA,oBATJ,wBAAAC,MAAA,QA/CG,SAASC,EAAyB,CACvC,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAkC,CAChC,GAAM,CAAE,OAAAC,EAAQ,wBAAAC,CAAwB,EAAIC,EAA+B,EAErEC,EAAWC,EAEfH,EAAwB,gBAC1B,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAN,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDU,EAAU,IAAM,CAGVN,EAAwB,cAC1BA,GAAyB,kBAAkBI,EAAK,UAAU,CAAC,CAG/D,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAoB,IAAMb,EAAca,CAAoB,CACvE,GAEET,GAAyB,kBAAkBQ,CAAM,CAErD,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MAAOH,GAAoC,CAC9DX,EAASW,CAAM,CACjB,EAFqB,gBAIrB,OACEd,EAACkB,EAAA,CACE,GAAGR,EACJ,IAAK,QAAQJ,EAAwB,UAAU,YAAY,IAAI,IAE/DP,EAAC,QACC,GAAIM,EACJ,SAAUK,EAAK,aAAaM,CAAY,EACxC,UAAU,wCAEV,SAAAjB,EAACoB,EAAA,CACC,WAAYf,EACZ,OAAQE,EAAwB,OAChC,UAAWA,EAAwB,KAAK,UACxC,YAAaA,EAAwB,YACvC,EACF,CACF,CAEJ,CAjEgBW,EAAAhB,EAAA","names":["useEffect","jsx","createElement","ContractorOnboardingForm","defaultValues","onSubmit","components","formId","contractorOnboardingBag","useContractorOnboardingContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","handleSubmit","__name","Form","JSONSchemaFormFields"]}
@@ -1,2 +0,0 @@
1
- import{a as o}from"./chunk-P37U34EQ.js";import{addBusinessDays as P,isWeekend as x,nextMonday as h}from"date-fns";import V from"lodash.get";var w={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"},L={CHECKBOX:"checkbox",ACK_CHECK:"ack-check"},c={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",...w,...L};function A(e){return Math.round((e+Number.EPSILON)*100)/100}o(A,"round");function R(e){return parseFloat(e.replace(/,/g,""))}o(R,"convertToValidCost");function C(e){if(e==null||e===""||Number.isNaN(e)||Array.isArray(e)||typeof e=="boolean")return null;let n;return typeof e=="string"?n=R(e):n=e,A(n*100)}o(C,"convertToCents");function j(e){if(e==null||Number.isNaN(e))return null;let n;return typeof e=="string"?n=R(e||"0"):n=e,A(n/100)}o(j,"convertFromCents");var g=o(e=>Object.entries(e||{}).reduce((n,[t,s])=>(Array.isArray(s)?n[t]=s.map(r=>typeof r=="object"&&r!==null?g(r):typeof r=="string"?r.trim():r):typeof s=="object"&&s!==null?n[t]=g(s):n[t]=typeof s=="string"?s.trim():s,n),{}),"trimStringValues");function I(e,n){let t={};return n.forEach(s=>{let r=s.name;if(!(!Object.prototype.hasOwnProperty.call(e,r)&&!(s.type===c.FIELDSET&&s.valueGroupingDisabled))){if(s.type===c.FIELDSET&&s.valueGroupingDisabled){Object.assign(t,I(e,s.fields));return}s.readOnly&&s.defaultValue?t[r]=s.defaultValue:t[r]=e[r]}}),t}o(I,"prefillReadOnlyFields");function D(e,n){return e.reduce((t,s)=>(s.type===c.FIELDSET&&s.valueGroupingDisabled?Object.assign(t,D(s.fields,n)):Object.prototype.hasOwnProperty.call(n,s.name)&&(t[s.name]=n[s.name]),t),{})}o(D,"extractFieldsetFieldsValues");var b={[c.COUNTRIES]:{transformValueToAPI:o(e=>n=>!e.multiple||typeof n=="string"?n:n.map(t=>typeof t=="string"?t:t.name),"transformValueToAPI"),transformValue:o(e=>{let n=o(t=>t?.name||t?.value||t?.label,"getCountryValue");return Array.isArray(e)?e.map(n):n(e)||""},"transformValue")},[c.NUMBER]:{transformValueToAPI:o(()=>e=>{let n=Number(e);return Number.isNaN(n)?e:n},"transformValueToAPI")},[c.MONEY]:{transformValueFromAPI:o(()=>e=>j(e)??"","transformValueFromAPI"),transformValueToAPI:o(()=>C,"transformValueToAPI")},[c.RADIO]:{transformValueToAPI:o(e=>n=>e.transformToBool?n==="yes":n,"transformValueToAPI")},[c.CHECKBOX]:{transformValueToAPI:o(e=>n=>n===void 0?!1:e.const&&n===!0?e.const:n,"transformValueToAPI")},[c.SELECT]:{transformValue:o(e=>Array.isArray(e)?e.map(n=>n.value):e?.value??"","transformValue")}};function f(e={},n){return n.filter(r=>e[r.name]||r.type===c.FIELDSET&&r.valueGroupingDisabled).reduce((r,a)=>{switch(a.type){case c.FIELDSET:{let i=a;if(i.valueGroupingDisabled){let u=D(i.fields,e);Object.assign(r,f(u,i.fields))}else{let u=e[a.name];if(u&&typeof u=="object"&&!Array.isArray(u)){let l=Object.fromEntries(Object.entries(u).filter(([,d])=>d!==""&&d!==null&&d!==void 0));r[a.name]=Object.keys(l).length>0?f(l,i.fields):void 0}else r[a.name]=f(u,i.fields)}break}case c.TEXTAREA:case c.TEXT:{r[a.name]=e[a.name].replace(/\0/g,"");break}case c.GROUP_ARRAY:{let i=a?.fields?.().map(l=>({...l,name:l.nameKey||""})),u=e[a.name]?.map(l=>f(l,i));r[a.name]=u;break}case c.EXTRA:{let i=a;if(i.includeValueToApi!==!1){let u=e[i.name],l=i?.transformValueToAPI||b[i.type]?.transformValueToAPI;if(l){r[i.name]=l(a)(u);break}r[i.name]=u;break}r[i.name]=void 0;break}default:{let i=e[a.name],u=a?.transformValueToAPI||b[a.type]?.transformValueToAPI;if(u){r[a.name]=u(a)(i);break}r[a.name]=i;break}}return a.forcedValue!==void 0&&(r[a.name]=a.forcedValue),r},{...e})}o(f,"parseFormValuesToAPI");function O(e,n){return e.visibilityCondition?e.visibilityCondition(n):typeof e.isVisible<"u"?!!e.isVisible:!0}o(O,"isFieldVisible");function F(e,n){return e.calculateDynamicProperties?{...e,...e.calculateDynamicProperties(n)||{}}:e}o(F,"applyFieldDynamicProperties");function E(e,n,t,s){let r={};return n.map(a=>F(a,e)).forEach(a=>{let i=a.name;s&&(i=i?`${s}.${a.name}`:s);let u=V(e,i);if(!(!O(a,e)&&!(t&&u))&&!a.meta?.ignoreValue)if(a.type==="fieldset"&&a.valueGroupingDisabled)Object.assign(r,E(e,a.fields,t,i));else if(Array.isArray(a.fields))r[a.name]=E(e,a.fields,t,i);else{if(u===void 0)return;r[a.name]=u}}),r}o(E,"excludeValuesInvisible");function M(e){return Object.fromEntries(Object.entries(e).filter(([,n])=>n!=null&&n!==""))}o(M,"removeEmptyValues");function T(e){return Array.isArray(e)?e.map(T):e&&typeof e=="object"?Object.entries(e).reduce((n,[t,s])=>(t.startsWith("_")||(n[t]=T(s)),n),{}):e}o(T,"cleanUnderscoreFields");function G(e,n,t){let s=t?.keepInvisibleValues?e:E(e,n),r=f(s,n),a=g(r),i=M(a),u=I(i,n);return T(u)}o(G,"parseSubmitValues");function v(e,n,t={isPartialValidation:!1}){return G(e,n,{keepInvisibleValues:t?.isPartialValidation})}o(v,"parseJSFToValidate");function U(e){switch(e){case c.FILE:return;default:return""}}o(U,"getDefaultValueForType");function S(e,n){let t=V(e,n.name),s=n?.transformValueFromAPI||b[n.type]?.transformValueFromAPI;if(s)return s(n)(t);let r=typeof n.value=="function"?n.value(t,e):null,a=typeof n.value!="function"?n.value:null,i=n.checkboxValue===!0?t||!1:null,u=o(l=>l===""?void 0:l,"excludeString");return u(r)??u(t)??u(a)??u(n.default)??i??U(n.type)}o(S,"getInitialDefaultValue");function k(e,n,t){let s={},r=e.name;t&&(r=r?`${t}.${r}`:t);let a=e.fields;if(Array.isArray(a)){let i={};a.forEach(u=>{Object.assign(i,k(u,n,r))}),e.type===c.FIELDSET&&e.valueGroupingDisabled?Object.assign(s,i):s[e.name]=i}else s[e.name]=S(n,{...e,name:r});return s}o(k,"getInitialSubFieldValues");function B(e,n){let t={},s=n;return e.map(r=>F(r,s)).forEach(r=>{switch(r.type){case c.FIELDSET:{if(r.valueGroupingDisabled)Object.assign(t,B(r.fields,s));else{let a=k(r,s);Object.assign(t,a)}break}default:{t[r.name]||(t[r.name]=S(s,r));break}}}),t}o(B,"getInitialValues");function X({fields:e=[],fieldsets:n={},values:t}){let s=Object.keys(n);if(!s?.length)return e;let r=new Set(s.flatMap(l=>n[l]?.propertiesByName??[]));return s.map(l=>{let{propertiesByName:d=[],...y}=n[l],p=d.map(m=>e.find(N=>N.name===m)).filter(m=>!!m);return{...y,name:l,type:"fieldset-flat",inputType:"fieldset-flat",fields:p,label:n[l].title,isVisible:p.map(m=>F(m,t)).some(m=>O(m,t))}}).reduce((l,d)=>{let y=[...l],p=d.fields[0]?l.findIndex(m=>m.name===d.fields[0].name):l.length;return y.splice(p,0,d),y},e).filter(l=>!r.has(l.name))}o(X,"getFieldsWithFlatFieldsets");function H(e,n){let t=n;return e.forEach(s=>{"const"in s&&(t=Object.fromEntries(Object.entries(n).map(([r,a])=>r===s.name?[r,s.const]:[r,a])))}),t}o(H,"enableAckFields");function $(e){let n=new Date;n.setDate(n.getUTCDate()),n.setHours(0,0,0,0);let t=P(n,e+1);return x(t)?h(t):t}o($,"getMinStartDate");export{C as a,j as b,v as c,B as d,X as e,H as f,$ as g};
2
- //# sourceMappingURL=chunk-PAQW5BFW.js.map
@@ -1 +0,0 @@
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 { addBusinessDays, isWeekend, nextMonday } from 'date-fns';\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 const fieldsetValue = formValues[field.name!];\n\n // Filter out empty properties from fieldset objects\n // this code avoids sending department: {id: '1234', name: ''} or even department: {id: undefined, name: undefined}\n if (\n fieldsetValue &&\n typeof fieldsetValue === 'object' &&\n !Array.isArray(fieldsetValue)\n ) {\n const cleanedValue = Object.fromEntries(\n Object.entries(fieldsetValue).filter(([, value]) => {\n // Keep the property if it has a meaningful value\n return value !== '' && value !== null && value !== undefined;\n }),\n );\n\n acc[field.name!] =\n Object.keys(cleanedValue).length > 0\n ? parseFormValuesToAPI(cleanedValue, fieldset.fields)\n : undefined;\n } else {\n acc[field.name!] = parseFormValuesToAPI(\n fieldsetValue,\n fieldset.fields,\n );\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\nfunction cleanUnderscoreFields(obj: Record<string, any>): Record<string, any> {\n if (Array.isArray(obj)) {\n return obj.map(cleanUnderscoreFields);\n }\n if (obj && typeof obj === 'object') {\n return Object.entries(obj).reduce(\n (acc, [key, value]) => {\n if (!key.startsWith('_')) {\n acc[key] = cleanUnderscoreFields(value);\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n }\n return obj;\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 cleanUnderscoreFields(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\n/**\n * Wraps fields listed in fieldsets with a fieldset field.\n * @param fields - Complete fields list.\n * @param fieldsets - fields list to be wrapped in a fieldset field.\n * @param values - Values for each field.\n * @returns The fields with the fieldsets wrapped.\n */\nexport function getFieldsWithFlatFieldsets({\n fields = [],\n fieldsets = {},\n values,\n}: {\n fields: any[];\n fieldsets: Record<string, { propertiesByName: string[]; title: string }>;\n values: Record<string, unknown>;\n}) {\n const flatFieldsetsKeys = Object.keys(fieldsets);\n\n if (!flatFieldsetsKeys?.length) {\n return fields;\n }\n\n const flatFieldsetsFieldNames = new Set(\n flatFieldsetsKeys.flatMap(\n (flatFieldsetKey) => fieldsets[flatFieldsetKey]?.propertiesByName ?? [],\n ),\n );\n\n const flatFieldsetsWithFields = flatFieldsetsKeys.map((flatFieldsetKey) => {\n const { propertiesByName: flatFieldsetFields = [], ...rest } =\n fieldsets[flatFieldsetKey];\n\n const childFields = flatFieldsetFields\n .map((name) => fields.find((f) => f.name === name))\n .filter((field): field is any => !!field);\n\n return {\n ...rest,\n name: flatFieldsetKey,\n type: 'fieldset-flat',\n inputType: 'fieldset-flat',\n fields: childFields,\n label: fieldsets[flatFieldsetKey].title,\n // Hide the fieldset if none of the children fields are visible.\n isVisible: childFields\n .map((childField) => applyFieldDynamicProperties(childField, values))\n .some((childField) => isFieldVisible(childField, values)),\n };\n });\n\n const sortedFields = flatFieldsetsWithFields.reduce((accumulator, field) => {\n const accumulatedFieldsSorted = [...accumulator];\n\n /**\n * We place the flat fieldset at the original position of its first field.\n * If no field is found, we move it to the end.\n */\n const fieldsetPosition = field.fields[0]\n ? accumulator.findIndex(\n (accumulatorItem) => accumulatorItem.name === field.fields[0].name,\n )\n : accumulator.length;\n\n accumulatedFieldsSorted.splice(\n fieldsetPosition,\n 0,\n field as unknown as any,\n );\n\n return accumulatedFieldsSorted;\n }, fields);\n\n const filteredFields = sortedFields.filter(\n (field) => !flatFieldsetsFieldNames.has(field.name!),\n );\n\n return filteredFields;\n}\n\nexport function enableAckFields(\n fields: Fields,\n values: Record<string, unknown>,\n) {\n let result = values;\n fields.forEach((field) => {\n if ('const' in field) {\n result = Object.fromEntries(\n Object.entries(values).map(([k, v]) => {\n if (k === field.name) {\n return [k, field.const];\n }\n return [k, v];\n }),\n );\n }\n });\n return result;\n}\n\n/**\n * Get the minimum start date for the onboarding process.\n * @param minOnBoardingTime\n * @returns Date\n */\nexport function getMinStartDate(minOnBoardingTime: number) {\n const today = new Date();\n\n // Make sure our base date is UTC and set the time to 00:00:00\n today.setDate(today.getUTCDate());\n today.setHours(0, 0, 0, 0);\n\n // The + 1 ensures you get the full preparation time before the employee can actually start working.\n // It's the difference between \"preparation completes on this day\" vs \"earliest possible start date after preparation\".\n const minDate = addBusinessDays(today, minOnBoardingTime + 1);\n return isWeekend(minDate) ? nextMonday(minDate) : minDate;\n}\n"],"mappings":"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","names":["addBusinessDays","isWeekend","nextMonday","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","fieldsetValue","cleanedValue","transformedFields","parsedFieldValues","fieldValues","extraField","formValue","fieldTransformValueToAPI","isFieldVisible","applyFieldDynamicProperties","excludeValuesInvisible","keepTruthyInvisibleValues","parentFieldKeyPath","valuesAsked","fieldKeyPath","valueOfField","get","removeEmptyValues","obj","cleanUnderscoreFields","parseSubmitValues","config","visibleFormValues","convertedFormValues","formValuesWithTrimmedStrings","formValuesWithUndefined","valuesWithReadOnly","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","getFieldsWithFlatFieldsets","fieldsets","values","flatFieldsetsKeys","flatFieldsetsFieldNames","flatFieldsetKey","flatFieldsetFields","rest","childFields","name","f","childField","isFieldVisible","accumulator","accumulatedFieldsSorted","fieldsetPosition","accumulatorItem","enableAckFields","result","k","v","getMinStartDate","minOnBoardingTime","today","minDate","addBusinessDays","isWeekend","nextMonday"]}
@@ -1,2 +0,0 @@
1
- import{a as e}from"./chunk-DYB3RWP7.js";import{a as p}from"./chunk-3A47R5RQ.js";import{a as i,b as l,c as s,d as n,e as c,f as m,g as d}from"./chunk-TWIUL2P3.js";import{b as o}from"./chunk-WVDTHFGS.js";import{a as t}from"./chunk-P37U34EQ.js";import{X as u}from"lucide-react";import{jsx as r,jsxs as a}from"react/jsx-runtime";var y=t(({label:D="Disclaimer"})=>a(i,{children:[r(l,{asChild:!0,children:r(o,{variant:"link",size:"link",children:D})}),a(n,{children:[a(c,{children:[a(s,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[r(u,{className:"h-4 w-4"}),r("span",{className:"sr-only",children:"Close"})]}),r(m,{children:e?.data.title}),a(d,{children:["For more details read our"," ",r(o,{variant:"link",size:"link",asChild:!0,children:r("a",{href:e?.data.html_url,target:"_blank",rel:"noopener noreferrer",children:"Disclaimer"})})]})]}),r(p,{className:"px-4 pb-4 overflow-y-auto max-h-[calc(80vh-120px)] cost-calculator-disclaimer-drawer-scroll-area",children:r("div",{className:"cost-calculator-disclaimer-drawer-body",dangerouslySetInnerHTML:{__html:e?.data.body??""}})})]})]}),"CostCalculatorDisclaimer");export{y as a};
2
- //# sourceMappingURL=chunk-Q4BKFSTW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorDisclaimer.tsx"],"sourcesContent":["import {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from '@/src/components/ui/drawer';\nimport { ScrollArea } from '@/src/components/ui/scroll-area';\nimport { X } from 'lucide-react';\nimport { Button } from '@/src/components/ui/button';\nimport { disclaimerData } from '@/src/flows/CostCalculator/disclaimerUtils';\n\ntype CostCalculatorDisclaimerProps = {\n label?: string;\n};\n\nexport const CostCalculatorDisclaimer = ({\n label = 'Disclaimer',\n}: CostCalculatorDisclaimerProps) => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button variant='link' size='link'>\n {label}\n </Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerClose className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none'>\n <X className='h-4 w-4' />\n <span className='sr-only'>Close</span>\n </DrawerClose>\n <DrawerTitle>{disclaimerData?.data.title}</DrawerTitle>\n <DrawerDescription>\n For more details read our{' '}\n <Button variant='link' size='link' asChild>\n <a\n href={disclaimerData?.data.html_url}\n target='_blank'\n rel='noopener noreferrer'\n >\n Disclaimer\n </a>\n </Button>\n </DrawerDescription>\n </DrawerHeader>\n <ScrollArea className='px-4 pb-4 overflow-y-auto max-h-[calc(80vh-120px)] cost-calculator-disclaimer-drawer-scroll-area'>\n <div\n className='cost-calculator-disclaimer-drawer-body'\n dangerouslySetInnerHTML={{\n __html: disclaimerData?.data.body ?? '',\n }}\n ></div>\n </ScrollArea>\n </DrawerContent>\n </Drawer>\n );\n};\n"],"mappings":"kPAUA,OAAS,KAAAA,MAAS,eAcV,cAAAC,EAME,QAAAC,MANF,oBAND,IAAMC,EAA2BC,EAAA,CAAC,CACvC,MAAAC,EAAQ,YACV,IAEIH,EAACI,EAAA,CACC,UAAAL,EAACM,EAAA,CAAc,QAAO,GACpB,SAAAN,EAACO,EAAA,CAAO,QAAQ,OAAO,KAAK,OACzB,SAAAH,EACH,EACF,EACAH,EAACO,EAAA,CACC,UAAAP,EAACQ,EAAA,CACC,UAAAR,EAACS,EAAA,CAAY,UAAU,4MACrB,UAAAV,EAACW,EAAA,CAAE,UAAU,UAAU,EACvBX,EAAC,QAAK,UAAU,UAAU,iBAAK,GACjC,EACAA,EAACY,EAAA,CAAa,SAAAC,GAAgB,KAAK,MAAM,EACzCZ,EAACa,EAAA,CAAkB,sCACS,IAC1Bd,EAACO,EAAA,CAAO,QAAQ,OAAO,KAAK,OAAO,QAAO,GACxC,SAAAP,EAAC,KACC,KAAMa,GAAgB,KAAK,SAC3B,OAAO,SACP,IAAI,sBACL,sBAED,EACF,GACF,GACF,EACAb,EAACe,EAAA,CAAW,UAAU,mGACpB,SAAAf,EAAC,OACC,UAAU,yCACV,wBAAyB,CACvB,OAAQa,GAAgB,KAAK,MAAQ,EACvC,EACD,EACH,GACF,GACF,EAvCoC","names":["X","jsx","jsxs","CostCalculatorDisclaimer","__name","label","Drawer","DrawerTrigger","Button","DrawerContent","DrawerHeader","DrawerClose","X","DrawerTitle","disclaimerData","DrawerDescription","ScrollArea"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/Onboarding/components/OnboardingForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport {\n BasicInformationFormPayload,\n BenefitsFormPayload,\n ContractDetailsFormPayload,\n} from '@/src/flows/Onboarding/types';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { normalizeFieldErrors } from '@/src/lib/mutations';\n\ntype OnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | BenefitsFormPayload\n | ContractDetailsFormPayload,\n ) => void;\n components?: Components;\n fields?: Fields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function OnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: OnboardingFormProps) {\n const { formId, onboardingBag } = useOnboardingContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n onboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (onboardingBag.employmentId) {\n onboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof unknown] !== defaultValues[key as keyof unknown],\n );\n if (isAnyFieldDirty) {\n onboardingBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (\n values: Record<string, unknown>,\n event?: React.BaseSyntheticEvent,\n ) => {\n const nativeEvent = event?.nativeEvent as $TSFixMe;\n\n if (nativeEvent?.isDraftSubmission) {\n // Handle draft submission\n const { onSuccess, onError } = nativeEvent.draftCallbacks;\n\n try {\n // Trigger validation\n const isValid = await form.trigger();\n if (!isValid) {\n return; // Don't submit if validation fails\n }\n\n // Submit the form\n const response = await onboardingBag.onSubmit(values);\n\n if (response?.data) {\n onSuccess?.();\n } else if (response?.error) {\n const currentStepName = onboardingBag.stepState.currentStep.name;\n\n // Get the appropriate fields based on current step\n const currentStepFields =\n onboardingBag.meta?.fields?.[\n currentStepName as keyof typeof onboardingBag.meta.fields\n ];\n\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n currentStepFields,\n );\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n } else {\n // Handle normal form submission\n onSubmit(values);\n }\n };\n\n return (\n <Form {...form} key={`form-${onboardingBag.stepState.currentStep.name}`}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={onboardingBag.fields}\n fieldsets={onboardingBag.meta.fieldsets}\n fieldValues={onboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"kPAEA,OAAS,aAAAA,MAAiB,QAgIlB,cAAAC,MAAA,oBANJ,wBAAAC,MAAA,QAjGG,SAASC,EAAe,CAC7B,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAwB,CACtB,GAAM,CAAE,OAAAC,EAAQ,cAAAC,CAAc,EAAIC,EAAqB,EAEjDC,EAAWC,EAEfH,EAAc,gBAChB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAN,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDU,EAAU,IAAM,CAGVN,EAAc,cAChBA,GAAe,kBAAkBI,EAAK,UAAU,CAAC,CAGrD,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAoB,IAAMb,EAAca,CAAoB,CACvE,GAEET,GAAe,kBAAkBQ,CAAM,CAE3C,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MACnBH,EACAI,IACG,CACH,IAAMC,EAAcD,GAAO,YAE3B,GAAIC,GAAa,kBAAmB,CAElC,GAAM,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAIF,EAAY,eAE3C,GAAI,CAGF,GAAI,CADY,MAAMT,EAAK,QAAQ,EAEjC,OAIF,IAAMY,EAAW,MAAMhB,EAAc,SAASQ,CAAM,EAEpD,GAAIQ,GAAU,KACZF,IAAY,UACHE,GAAU,MAAO,CAC1B,IAAMC,EAAkBjB,EAAc,UAAU,YAAY,KAGtDkB,EACJlB,EAAc,MAAM,SAClBiB,CACF,EAEIE,EAAwBC,EAC5BJ,GAAU,aAAe,CAAC,EAC1BE,CACF,EACAH,IAAU,CACR,MAAOC,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAaG,CACf,CAAC,CACH,CACF,OAASE,EAAO,CACdN,IAAU,CACR,MAAOM,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,MAEExB,EAASW,CAAM,CAEnB,EApDqB,gBAsDrB,OACEd,EAAC4B,EAAA,CAAM,GAAGlB,EAAM,IAAK,QAAQJ,EAAc,UAAU,YAAY,IAAI,IACnEP,EAAC,QACC,GAAIM,EACJ,SAAUK,EAAK,aAAaM,CAAY,EACxC,UAAU,wCAEV,SAAAjB,EAAC8B,EAAA,CACC,WAAYzB,EACZ,OAAQE,EAAc,OACtB,UAAWA,EAAc,KAAK,UAC9B,YAAaA,EAAc,YAC7B,EACF,CACF,CAEJ,CAhHgBW,EAAAhB,EAAA","names":["useEffect","jsx","createElement","OnboardingForm","defaultValues","onSubmit","components","formId","onboardingBag","useOnboardingContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","handleSubmit","__name","event","nativeEvent","onSuccess","onError","response","currentStepName","currentStepFields","normalizedFieldErrors","normalizeFieldErrors","error","Form","JSONSchemaFormFields"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorFlow.tsx"],"sourcesContent":["import React, { useEffect, useId, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { CostCalculatorContext } from '@/src/flows/CostCalculator/context';\nimport {\n CostCalculatorVersion,\n defaultEstimationOptions,\n useCostCalculator,\n} from '@/src/flows/CostCalculator/hooks';\nimport {\n CostCalculatorEstimationOptions,\n CurrencyKey,\n UseCostCalculatorOptions,\n} from '@/src/flows/CostCalculator/types';\nimport { BASE_RATES } from '@/src/flows/CostCalculator/constants';\n\nexport type CostCalculatorFlowProps = {\n /**\n * Estimation params allows you to customize the parameters sent to the /cost-calculator/estimation endpoint.\n */\n estimationOptions?: CostCalculatorEstimationOptions;\n /**\n * Default values for the form fields.\n */\n defaultValues?: Partial<\n {\n /**\n * Default value for the country field.\n */\n countryRegionSlug: string;\n /**\n * Default value for the currency field.\n */\n currencySlug: string;\n /**\n * Default value for the salary field.\n */\n salary: string;\n /**\n * Default value for the benefits field.\n */\n benefits: Record<string, string>;\n /**\n * Default value for the hiring budget field\n */\n hiringBudget: string;\n /**\n * Default value for the age field.\n */\n age: number;\n /**\n * Default value for the contract duration type field.\n */\n contractDurationType: 'fixed' | 'indefinite';\n /**\n * Default value for the management fee field.\n */\n management: {\n management_fee: string;\n };\n /**\n * Default value for the region field.\n */\n regionSlug: string;\n } & Record<string, unknown>\n >;\n options?: UseCostCalculatorOptions;\n render: (\n costCalculatorBag: ReturnType<typeof useCostCalculator>,\n ) => React.ReactNode;\n /**\n * Whether to include annual_gross_salary in the estimation payload\n */\n version?: CostCalculatorVersion;\n};\n\nconst getDefaultManagementFee = (\n baseRates: Record<CurrencyKey, number>,\n currency: CurrencyKey,\n managementFees?: Partial<Record<CurrencyKey, number>>,\n) => {\n if (managementFees && managementFees[currency]) {\n return managementFees[currency];\n }\n if (baseRates[currency]) {\n return baseRates[currency] / 100;\n }\n return 0;\n};\n\nconst getManagementFee = (\n currency: CurrencyKey,\n currencySlug?: string,\n management?: { management_fee: string },\n managementFees?: Partial<Record<CurrencyKey, number>>,\n) => {\n if (!currencySlug && !management?.management_fee && currency) {\n return getDefaultManagementFee(BASE_RATES, currency, managementFees);\n }\n if (currencySlug && !management?.management_fee) {\n return '';\n }\n\n return management?.management_fee;\n};\n\nexport const CostCalculatorFlow = ({\n estimationOptions = defaultEstimationOptions,\n defaultValues = {\n countryRegionSlug: '',\n regionSlug: '',\n currencySlug: '',\n salary: '',\n benefits: {},\n management: {\n management_fee: '',\n },\n },\n options,\n render,\n version = 'standard',\n}: CostCalculatorFlowProps) => {\n const formId = useId();\n const [currency, setCurrency] = useState<CurrencyKey>('USD');\n const onCurrencyChange = (currency: string) => {\n setCurrency(currency as CurrencyKey);\n const managementFee = getDefaultManagementFee(\n BASE_RATES,\n currency as CurrencyKey,\n estimationOptions.managementFees,\n );\n if (managementFee) {\n form.setValue('management.management_fee', managementFee);\n }\n };\n const costCalculatorBag = useCostCalculator({\n defaultRegion: defaultValues.countryRegionSlug,\n defaultCurrency: defaultValues.currencySlug,\n defaultSalary: defaultValues.salary,\n estimationOptions,\n version,\n options: {\n ...options,\n onCurrencyChange: onCurrencyChange,\n },\n });\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n costCalculatorBag.handleValidation,\n );\n\n const defaultManagementFee = getManagementFee(\n currency,\n defaultValues.currencySlug,\n defaultValues.management,\n estimationOptions.managementFees,\n );\n\n const {\n countryRegionSlug,\n currencySlug,\n salary,\n benefits,\n hiringBudget,\n age,\n contractDurationType,\n regionSlug,\n ...formDefaultValues\n } = defaultValues;\n\n const form = useForm({\n resolver,\n defaultValues: {\n country: countryRegionSlug,\n currency: currencySlug,\n region: regionSlug,\n salary: salary,\n salary_conversion: '',\n salary_converted: '',\n hiring_budget: hiringBudget || 'employee_annual_salary',\n age: age,\n contract_duration_type: contractDurationType,\n management: {\n management_fee: defaultManagementFee,\n },\n benefits: benefits,\n estimation_title: estimationOptions.title,\n ...formDefaultValues,\n },\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n if (\n defaultValues.currencySlug &&\n costCalculatorBag.currencies &&\n estimationOptions.includeManagementFee &&\n !defaultValues.management?.management_fee\n ) {\n const currencyData = costCalculatorBag.currencies.find(\n (currency) => currency.value === defaultValues.currencySlug,\n );\n const currencyCode = currencyData?.label;\n if (currencyCode) {\n setCurrency(currencyCode as CurrencyKey);\n const defaultManagementFee = getDefaultManagementFee(\n BASE_RATES,\n currencyCode as CurrencyKey,\n estimationOptions.managementFees,\n );\n form.setValue('management.management_fee', defaultManagementFee);\n }\n }\n }, [\n defaultValues.currencySlug,\n costCalculatorBag.currencies,\n estimationOptions.includeManagementFee,\n estimationOptions.managementFees,\n defaultValues.management?.management_fee,\n form,\n ]);\n\n return (\n <CostCalculatorContext.Provider\n value={{\n form,\n formId: formId,\n costCalculatorBag,\n }}\n >\n {render(costCalculatorBag)}\n </CostCalculatorContext.Provider>\n );\n};\n"],"mappings":"uPAAA,OAAgB,aAAAA,EAAW,SAAAC,EAAO,YAAAC,MAAgB,QAgO9C,cAAAC,MAAA,oBApJJ,IAAMC,EAA0BC,EAAA,CAC9BC,EACAC,EACAC,IAEIA,GAAkBA,EAAeD,CAAQ,EACpCC,EAAeD,CAAQ,EAE5BD,EAAUC,CAAQ,EACbD,EAAUC,CAAQ,EAAI,IAExB,EAXuB,2BAc1BE,EAAmBJ,EAAA,CACvBE,EACAG,EACAC,EACAH,IAEI,CAACE,GAAgB,CAACC,GAAY,gBAAkBJ,EAC3CH,EAAwBQ,EAAYL,EAAUC,CAAc,EAEjEE,GAAgB,CAACC,GAAY,eACxB,GAGFA,GAAY,eAbI,oBAgBZE,EAAqBR,EAAA,CAAC,CACjC,kBAAAS,EAAoBC,EACpB,cAAAC,EAAgB,CACd,kBAAmB,GACnB,WAAY,GACZ,aAAc,GACd,OAAQ,GACR,SAAU,CAAC,EACX,WAAY,CACV,eAAgB,EAClB,CACF,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,EAAU,UACZ,IAA+B,CAC7B,IAAMC,EAASC,EAAM,EACf,CAACd,EAAUe,CAAW,EAAIC,EAAsB,KAAK,EACrDC,EAAmBnB,EAACE,GAAqB,CAC7Ce,EAAYf,CAAuB,EACnC,IAAMkB,EAAgBrB,EACpBQ,EACAL,EACAO,EAAkB,cACpB,EACIW,GACFC,EAAK,SAAS,4BAA6BD,CAAa,CAE5D,EAVyB,oBAWnBE,EAAoBC,EAAkB,CAC1C,cAAeZ,EAAc,kBAC7B,gBAAiBA,EAAc,aAC/B,cAAeA,EAAc,OAC7B,kBAAAF,EACA,QAAAK,EACA,QAAS,CACP,GAAGF,EACH,iBAAkBO,CACpB,CACF,CAAC,EACKK,EAAWC,EAEfH,EAAkB,gBACpB,EAEMI,EAAuBtB,EAC3BF,EACAS,EAAc,aACdA,EAAc,WACdF,EAAkB,cACpB,EAEM,CACJ,kBAAAkB,EACA,aAAAtB,EACA,OAAAuB,EACA,SAAAC,EACA,aAAAC,EACA,IAAAC,EACA,qBAAAC,EACA,WAAAC,EACA,GAAGC,CACL,EAAIvB,EAEEU,EAAOc,EAAQ,CACnB,SAAAX,EACA,cAAe,CACb,QAASG,EACT,SAAUtB,EACV,OAAQ4B,EACR,OAAQL,EACR,kBAAmB,GACnB,iBAAkB,GAClB,cAAeE,GAAgB,yBAC/B,IAAKC,EACL,uBAAwBC,EACxB,WAAY,CACV,eAAgBN,CAClB,EACA,SAAUG,EACV,iBAAkBpB,EAAkB,MACpC,GAAGyB,CACL,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAED,OAAAE,EAAU,IAAM,CACd,GACEzB,EAAc,cACdW,EAAkB,YAClBb,EAAkB,sBAClB,CAACE,EAAc,YAAY,eAC3B,CAIA,IAAM0B,EAHef,EAAkB,WAAW,KAC/CpB,GAAaA,EAAS,QAAUS,EAAc,YACjD,GACmC,MACnC,GAAI0B,EAAc,CAChBpB,EAAYoB,CAA2B,EACvC,IAAMX,EAAuB3B,EAC3BQ,EACA8B,EACA5B,EAAkB,cACpB,EACAY,EAAK,SAAS,4BAA6BK,CAAoB,CACjE,CACF,CACF,EAAG,CACDf,EAAc,aACdW,EAAkB,WAClBb,EAAkB,qBAClBA,EAAkB,eAClBE,EAAc,YAAY,eAC1BU,CACF,CAAC,EAGCvB,EAACwC,EAAsB,SAAtB,CACC,MAAO,CACL,KAAAjB,EACA,OAAQN,EACR,kBAAAO,CACF,EAEC,SAAAT,EAAOS,CAAiB,EAC3B,CAEJ,EAhIkC","names":["useEffect","useId","useState","jsx","getDefaultManagementFee","__name","baseRates","currency","managementFees","getManagementFee","currencySlug","management","BASE_RATES","CostCalculatorFlow","estimationOptions","defaultEstimationOptions","defaultValues","options","render","version","formId","useId","setCurrency","useState","onCurrencyChange","managementFee","form","costCalculatorBag","useCostCalculator","resolver","useJsonSchemasValidationFormResolver","defaultManagementFee","countryRegionSlug","salary","benefits","hiringBudget","age","contractDurationType","regionSlug","formDefaultValues","useForm","useEffect","currencyCode","CostCalculatorContext"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractAmendment/hooks.ts"],"sourcesContent":["import {\n CreateContractAmendmentParams,\n Employment,\n getShowContractAmendmentSchema,\n postAutomatableContractAmendment,\n postCreateContractAmendment,\n} from '@/src/client';\n\nimport {\n convertToCents,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\n\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { ContractAmendmentParams } from './types';\n\nimport { useEmploymentQuery } from '@/src/common/api';\nimport { useClient } from '@/src/context';\nimport { FieldValues } from 'react-hook-form';\nimport { useStepState } from '../useStepState';\nimport { buildInitialValues, STEPS } from './utils';\nimport { FlowOptions } from '@/src/flows/types';\n\ntype ContractAmendmentSchemaParams = {\n countryCode: string;\n employment: Employment | undefined;\n fieldValues: FieldValues | undefined;\n options?: ContractAmendmentParams['options'];\n};\n\nconst useContractAmendmentSchemaQuery = ({\n countryCode,\n employment,\n fieldValues,\n options,\n}: ContractAmendmentSchemaParams) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useQuery({\n queryKey: ['contract-amendment-schema'],\n retry: false,\n queryFn: async () => {\n const response = await getShowContractAmendmentSchema({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n employment_id: employment?.id as string,\n country_code: countryCode,\n ...jsonSchemaQueryParam,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch contract amendment schema');\n }\n\n return response;\n },\n enabled: Boolean(employment),\n select: ({ data }) => {\n let jsfSchema = data?.data || {};\n\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n const copyFieldValues = {\n ...fieldValues,\n annual_gross_salary: fieldValues?.annual_gross_salary\n ? convertToCents(fieldValues?.annual_gross_salary)\n : undefined,\n };\n\n const hasFieldValues = Object.keys(copyFieldValues).length > 0;\n\n const result = createHeadlessForm(jsfSchema, {\n initialValues: hasFieldValues\n ? copyFieldValues\n : buildInitialValues(employment),\n });\n return result;\n },\n });\n};\n\nconst useCreateContractAmendmentMutation = (options?: FlowOptions) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useMutation({\n mutationFn: (payload: CreateContractAmendmentParams) => {\n return postCreateContractAmendment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nconst useAutomatableContractAmendmentMutation = (options?: FlowOptions) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useMutation({\n mutationFn: (payload: CreateContractAmendmentParams) => {\n return postAutomatableContractAmendment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useContractAmendment = ({\n employmentId,\n countryCode,\n options,\n}: ContractAmendmentParams) => {\n const { fieldValues, setFieldValues, stepState, nextStep, previousStep } =\n useStepState<keyof typeof STEPS>(STEPS);\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n isError: isErrorEmployment,\n error: errorEmployment,\n } = useEmploymentQuery({\n employmentId,\n });\n\n const {\n data: contractAmendmentHeadlessForm,\n isLoading: isLoadingContractAmendments,\n isError: isErrorContractAmendmentSchema,\n error: errorContractAmendmentSchema,\n } = useContractAmendmentSchemaQuery({\n employment,\n countryCode,\n // In case the user is navigating back to the form step, we need to\n // pass the previous field values, so that the schema can be\n // generated with the correct values.\n fieldValues: {\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n },\n options,\n });\n\n const initialValues = buildInitialValues(\n employment,\n contractAmendmentHeadlessForm?.fields,\n );\n\n const createContractAmendmentMutation =\n useCreateContractAmendmentMutation(options);\n const automatableContractAmendmentMutation =\n useAutomatableContractAmendmentMutation(options);\n\n async function onSubmit(values: FieldValues) {\n const parsedValues = parseJSFToValidate(\n values,\n contractAmendmentHeadlessForm?.fields || [],\n {\n isPartialValidation: false,\n },\n );\n\n const payload = {\n employment_id: employment?.id as string,\n amendment_contract_id: employment?.active_contract_id as string,\n contract_amendment: {\n ...parsedValues,\n },\n };\n\n switch (stepState.currentStep.name) {\n case STEPS.form.name: {\n const { mutateAsync } = mutationToPromise(\n automatableContractAmendmentMutation,\n );\n\n const automatableContractAmendment = await mutateAsync(payload);\n\n nextStep();\n\n return automatableContractAmendment;\n }\n case STEPS.confirmation_form.name: {\n const { mutateAsync } = mutationToPromise(\n createContractAmendmentMutation,\n );\n\n return mutateAsync(payload);\n }\n\n default:\n throw new Error('Invalid step state');\n }\n }\n\n function handleValidation(values: FieldValues) {\n if (contractAmendmentHeadlessForm) {\n const parsedValues = parseJSFToValidate(\n values,\n contractAmendmentHeadlessForm?.fields,\n );\n\n return contractAmendmentHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n }\n\n function back() {\n previousStep();\n }\n\n return {\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 contract amendment schema\n */\n fields: contractAmendmentHeadlessForm?.fields || [],\n /**\n * Loading state indicating if either employment or contract amendment data is being fetched\n */\n isLoading: isLoadingEmployment || isLoadingContractAmendments,\n /**\n * Error state indicating if there was an error fetching either employment or contract amendment data\n */\n isError: isErrorEmployment || isErrorContractAmendmentSchema,\n /**\n * Error object containing details about any errors that occurred during data fetching\n */\n error: errorEmployment || errorContractAmendmentSchema,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting:\n automatableContractAmendmentMutation.isPending ||\n createContractAmendmentMutation.isPending,\n /**\n * Initial form values built from employment data and contract amendment fields\n */\n initialValues,\n /**\n * Current form field values\n */\n values: fieldValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation,\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\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 * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n };\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useContractAmendmentSchemaQuery","__name","countryCode","employment","fieldValues","options","client","useClient","jsonSchemaQueryParam","useQuery","response","getShowContractAmendmentSchema","data","jsfSchema","schema","modify","copyFieldValues","convertToCents","hasFieldValues","createHeadlessForm","buildInitialValues","useCreateContractAmendmentMutation","useMutation","payload","postCreateContractAmendment","useAutomatableContractAmendmentMutation","postAutomatableContractAmendment","useContractAmendment","employmentId","setFieldValues","stepState","nextStep","previousStep","useStepState","STEPS","isLoadingEmployment","isErrorEmployment","errorEmployment","useEmploymentQuery","contractAmendmentHeadlessForm","isLoadingContractAmendments","isErrorContractAmendmentSchema","errorContractAmendmentSchema","initialValues","createContractAmendmentMutation","automatableContractAmendmentMutation","onSubmit","values","parsedValues","parseJSFToValidate","mutateAsync","mutationToPromise","automatableContractAmendment","handleValidation","back"]}
@@ -1,2 +0,0 @@
1
- import{a as l}from"./chunk-ZSCKSEAA.js";import{a as m}from"./chunk-ZE3YT3Q6.js";import{b as o}from"./chunk-OQJWLV7V.js";import{b as i}from"./chunk-WVDTHFGS.js";import{b as r}from"./chunk-43WMZDDH.js";import{a as n}from"./chunk-P37U34EQ.js";import{Info as p}from"lucide-react";import{Fragment as f,jsx as t,jsxs as e}from"react/jsx-runtime";function B({extraStatutoryPaymentsTotal:d,extraStatutoryPaymentsBreakdown:u,currency:s}){return e("div",{children:[e("div",{className:"flex justify-between items-center mb-2",children:[t("h3",{className:"font-medium text-primary-foreground-800",children:"Extra Statutory Payments"}),t("span",{className:"font-semibold text-lg",children:r(d,s)})]}),t(l,{className:"mb-3"}),t("div",{className:"space-y-3 pl-2",children:u.map((a,c)=>e("div",{className:"flex justify-between items-start text-sm",children:[e("div",{className:"flex items-start gap-2",children:[t("span",{children:a.name}),a.description&&t(m,{content:e(f,{children:[t("span",{children:a.description})," ",a.zendesk_article_url&&t(o,{zendeskId:Number(a.zendesk_article_id),children:"Learn more"})]}),children:e(i,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0",children:[t(p,{className:"h-3 w-3 text-gray-400"}),t("span",{className:"sr-only",children:"Info"})]})})]}),t("span",{children:r(a.amount,s)})]},c))})]})}n(B,"CostCalculatorExtraStatutoryPaymentsBreakdown");export{B as a};
2
- //# sourceMappingURL=chunk-UBN6O7B5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.tsx"],"sourcesContent":["import { Info } from 'lucide-react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Separator } from '@/src/components/ui/separator';\nimport { formatCurrency } from '@/src/lib/utils';\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\ntype CostCalculatorExtraStatutoryPaymentsBreakdownProps = {\n extraStatutoryPaymentsTotal: number | null;\n extraStatutoryPaymentsBreakdown: {\n name: string;\n description: string | null;\n zendesk_article_url: string | null;\n zendesk_article_id: string | null;\n amount: number;\n }[];\n currency: string;\n};\n\nexport function CostCalculatorExtraStatutoryPaymentsBreakdown({\n extraStatutoryPaymentsTotal,\n extraStatutoryPaymentsBreakdown,\n currency,\n}: CostCalculatorExtraStatutoryPaymentsBreakdownProps) {\n return (\n <div>\n <div className='flex justify-between items-center mb-2'>\n <h3 className='font-medium text-primary-foreground-800'>\n Extra Statutory Payments\n </h3>\n <span className='font-semibold text-lg'>\n {formatCurrency(extraStatutoryPaymentsTotal, currency)}\n </span>\n </div>\n <Separator className='mb-3' />\n\n <div className='space-y-3 pl-2'>\n {extraStatutoryPaymentsBreakdown.map((payment, index) => (\n <div key={index} className='flex justify-between items-start text-sm'>\n <div className='flex items-start gap-2'>\n <span>{payment.name}</span>\n {payment.description && (\n <BasicTooltip\n content={\n <>\n <span>{payment.description}</span>{' '}\n {payment.zendesk_article_url && (\n <ZendeskTriggerButton\n zendeskId={Number(payment.zendesk_article_id)}\n >\n Learn more\n </ZendeskTriggerButton>\n )}\n </>\n }\n >\n <Button variant='ghost' size='icon' className='h-4 w-4 p-0'>\n <Info className='h-3 w-3 text-gray-400' />\n <span className='sr-only'>Info</span>\n </Button>\n </BasicTooltip>\n )}\n </div>\n <span>{formatCurrency(payment.amount, currency)}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"gPAAA,OAAS,QAAAA,MAAY,eA2Bf,OAkBc,YAAAC,EAjBZ,OAAAC,EADF,QAAAC,MAAA,oBAPC,SAASC,EAA8C,CAC5D,4BAAAC,EACA,gCAAAC,EACA,SAAAC,CACF,EAAuD,CACrD,OACEJ,EAAC,OACC,UAAAA,EAAC,OAAI,UAAU,yCACb,UAAAD,EAAC,MAAG,UAAU,0CAA0C,oCAExD,EACAA,EAAC,QAAK,UAAU,wBACb,SAAAM,EAAeH,EAA6BE,CAAQ,EACvD,GACF,EACAL,EAACO,EAAA,CAAU,UAAU,OAAO,EAE5BP,EAAC,OAAI,UAAU,iBACZ,SAAAI,EAAgC,IAAI,CAACI,EAASC,IAC7CR,EAAC,OAAgB,UAAU,2CACzB,UAAAA,EAAC,OAAI,UAAU,yBACb,UAAAD,EAAC,QAAM,SAAAQ,EAAQ,KAAK,EACnBA,EAAQ,aACPR,EAACU,EAAA,CACC,QACET,EAAAF,EAAA,CACE,UAAAC,EAAC,QAAM,SAAAQ,EAAQ,YAAY,EAAQ,IAClCA,EAAQ,qBACPR,EAACW,EAAA,CACC,UAAW,OAAOH,EAAQ,kBAAkB,EAC7C,sBAED,GAEJ,EAGF,SAAAP,EAACW,EAAA,CAAO,QAAQ,QAAQ,KAAK,OAAO,UAAU,cAC5C,UAAAZ,EAACa,EAAA,CAAK,UAAU,wBAAwB,EACxCb,EAAC,QAAK,UAAU,UAAU,gBAAI,GAChC,EACF,GAEJ,EACAA,EAAC,QAAM,SAAAM,EAAeE,EAAQ,OAAQH,CAAQ,EAAE,IAzBxCI,CA0BV,CACD,EACH,GACF,CAEJ,CAlDgBK,EAAAZ,EAAA","names":["Info","Fragment","jsx","jsxs","CostCalculatorExtraStatutoryPaymentsBreakdown","extraStatutoryPaymentsTotal","extraStatutoryPaymentsBreakdown","currency","formatCurrency","Separator","payment","index","BasicTooltip","ZendeskTriggerButton","Button","Info","__name"]}
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-OUSDXTNH.js";import{b as i}from"./chunk-TOA3JILU.js";import{b as n}from"./chunk-2YTBWEC7.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function F({onSubmit:d,onSuccess:l,onError:a}){let{contractorOnboardingBag:o}=i(),c=t(async e=>{try{await d?.(o.parseFormValues(e));let r=await o.onSubmit(e);if(r?.data){await l?.(r?.data),o?.next();return}if(r?.error){let p=n(r?.fieldErrors||[],o.meta?.fields?.contract_details);a?.({error:r?.error,rawError:r?.rawError,fieldErrors:p})}}catch(r){a?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),m=o.stepState.values?.contract_details||o.initialValues.contract_details;return u(s,{defaultValues:m,onSubmit:c})}t(F,"ContractDetailsStep");export{F as a};
2
- //# sourceMappingURL=chunk-VSMVVIBA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractDetailsStep.tsx"],"sourcesContent":["import { $TSFixMe } from '@/src/types/remoteFlows';\nimport {\n normalizeFieldErrors,\n NormalizedFieldError,\n} from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport {\n ContractorOnboardingContractDetailsFormPayload,\n ContractorOnboardingContractDetailsResponse,\n} from '@/src/flows/ContractorOnboarding/types';\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?: (\n payload: ContractorOnboardingContractDetailsFormPayload,\n ) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (\n data: ContractorOnboardingContractDetailsResponse,\n ) => 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 onSuccess,\n onError,\n}: ContractDetailsStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.(\n contractorOnboardingBag.parseFormValues(payload) as $TSFixMe, // TODO: add type\n );\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as $TSFixMe); // TODO: add type\n contractorOnboardingBag?.next();\n return;\n }\n if (response?.error) {\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n contractorOnboardingBag.meta?.fields?.contract_details,\n );\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 const initialValues =\n contractorOnboardingBag.stepState.values?.contract_details ||\n contractorOnboardingBag.initialValues.contract_details;\n\n return (\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"gKAmFI,cAAAA,MAAA,oBA5CG,SAASC,EAAoB,CAClC,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA6B,CAC3B,GAAM,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAE7DC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,MAAMP,IACJG,EAAwB,gBAAgBI,CAAO,CACjD,EACA,IAAMC,EAAW,MAAML,EAAwB,SAASI,CAAO,EAC/D,GAAIC,GAAU,KAAM,CAClB,MAAMP,IAAYO,GAAU,IAAgB,EAC5CL,GAAyB,KAAK,EAC9B,MACF,CACA,GAAIK,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BL,EAAwB,MAAM,QAAQ,gBACxC,EAEAD,IAAU,CACR,MAAOM,GAAU,MACjB,SAAUA,GAAU,SACpB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBT,IAAU,CACR,MAAOS,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EACJT,EAAwB,UAAU,QAAQ,kBAC1CA,EAAwB,cAAc,iBAExC,OACEL,EAACe,EAAA,CACC,cAAeD,EACf,SAAUP,EACZ,CAEJ,CAjDgBC,EAAAP,EAAA","names":["jsx","ContractDetailsStep","onSubmit","onSuccess","onError","contractorOnboardingBag","useContractorOnboardingContext","handleSubmit","__name","payload","response","normalizedFieldErrors","normalizeFieldErrors","error","initialValues","ContractorOnboardingForm"]}
@@ -1,2 +0,0 @@
1
- import{a as t}from"./chunk-FQYK5BJV.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as f}from"react/jsx-runtime";function F({onSubmit:n,onSuccess:s,onError:m}){let{terminationBag:r}=e(),d=i(async a=>{let l=r?.parseFormValues(a,!0);await n?.(l);let o=await r?.onSubmit(a);o?.error?m?.(o.error):o?.data&&await s?.(o.data)},"handleSubmit");return f(t,{fields:r?.fields,onSubmit:d})}i(F,"AdditionalDetailsForm");export{F as a};
2
- //# sourceMappingURL=chunk-XDNUJY3V.js.map
@@ -1 +0,0 @@
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 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 onSubmit,\n onSuccess,\n onError,\n}: AdditionalDetailsFormProps) {\n const { terminationBag } = useTerminationContext();\n\n const handleSubmit = async (values: TerminationFormValues) => {\n const parsedValues = terminationBag?.parseFormValues(\n values,\n true,\n ) as TerminationFormValues;\n await onSubmit?.(parsedValues);\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 return (\n <TerminationForm fields={terminationBag?.fields} onSubmit={handleSubmit} />\n );\n}\n"],"mappings":"wHA8CI,cAAAA,MAAA,oBAzBG,SAASC,EAAsB,CACpC,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA+B,CAC7B,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAE3CC,EAAeC,EAAA,MAAOC,GAAkC,CAC5D,IAAMC,EAAeL,GAAgB,gBACnCI,EACA,EACF,EACA,MAAMP,IAAWQ,CAAY,EAC7B,IAAMC,EAAoB,MAAMN,GAAgB,SAASI,CAAM,EAE3DE,GAAmB,MACrBP,IAAUO,EAAkB,KAAK,EAE7BA,GAAmB,MACrB,MAAMR,IAAYQ,EAAkB,IAA2B,CAGrE,EAfqB,gBAiBrB,OACEX,EAACY,EAAA,CAAgB,OAAQP,GAAgB,OAAQ,SAAUE,EAAc,CAE7E,CA3BgBC,EAAAP,EAAA","names":["jsx","AdditionalDetailsForm","onSubmit","onSuccess","onError","terminationBag","useTerminationContext","handleSubmit","__name","values","parsedValues","terminationResult","TerminationForm"]}
@@ -1,2 +0,0 @@
1
- import{a as R,b as x,c as N,d as A}from"./chunk-DTHBG6BD.js";import{a as T}from"./chunk-ZE3YT3Q6.js";import{a as C}from"./chunk-AFRA4BIW.js";import{a as w,b as f}from"./chunk-OQJWLV7V.js";import{b as B}from"./chunk-WVDTHFGS.js";import{a as i,b as n,e as F}from"./chunk-43WMZDDH.js";import{a as d}from"./chunk-P37U34EQ.js";import{MoreHorizontal as G}from"lucide-react";import{useState as P}from"react";import{Fragment as U,jsx as g,jsxs as E}from"react/jsx-runtime";function L({actions:e=[],className:r,label:l,"data-testid":a}){let[_,m]=P(!1);return E("div",{className:i("relative",r),children:[g(B,{"data-testid":a,variant:"ghost","aria-label":l,className:"h-8 w-8 p-0",onClick:()=>m(!_),children:g(G,{className:"h-4 w-4"})}),_&&E(U,{children:[g("div",{className:"fixed inset-0 z-40",onClick:()=>m(!1)}),g("div",{className:"absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]",children:e.map((c,u)=>g("button",{"data-testid":`${a}-${c.label.toLowerCase().replace(" ","-")}`,className:i("w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100",c.disabled&&"opacity-50 cursor-not-allowed"),onClick:()=>{c.onClick(),m(!1)},disabled:c.disabled,children:c.label},u))})]})]})}d(L,"ActionsDropdown");import{ChevronDown as S,Info as $}from"lucide-react";import j from"react-flagpack";import{useState as O}from"react";import{Fragment as b,jsx as o,jsxs as t}from"react/jsx-runtime";var Z={GB:"GB-UKM"},K=d(({title:e,country:r,region:l,annualGrossSalary:a,onDelete:_,onExportPdf:m,onEdit:c})=>{let u=[{label:"Edit",onClick:c},{label:"Export",onClick:m},{label:"Delete",onClick:_}];return t("div",{className:"RemoteFlows__EstimationResults__Header flex justify-between",children:[t("div",{className:"flex flex-row items-center gap-6",children:[o("div",{className:"RemoteFlows__EstimationResultsHeader__FlagContainer flex h-16 w-16 items-center justify-center rounded-lg bg-[#F4F4F5]",children:o(j,{code:Z[r.alpha_2_code]||r.alpha_2_code})}),t("div",{className:"space-y-1",children:[o("h2",{"data-testid":"estimation-results-header-title",className:"RemoteFlows__EstimationResultsHeader__Title text-lg font-medium leading-none text-[#181818]",children:e}),t("p",{className:"RemoteFlows__EstimationResultsHeader__Country text-xs text-[#71717A]",children:[r.name," ",l?` (${l.name})`:""]}),t("p",{"data-testid":"estimation-results-header-annual-gross-salary",className:"RemoteFlows__EstimationResultsHeader__AnnualGrossSalary text-xs text-[#71717A]",children:[o("span",{className:"text-[#181818]",children:"Employee annual gross salary:"})," ",a]})]})]}),o(L,{label:"Actions",className:"RemoteFlows__EstimationResults__ActionsDropdown",actions:u})]})},"EstimationResultsHeader"),V=d(()=>({steps:[{id:"add-employment-details",title:"Add employment details",description:"You add employee employments details."},{id:"invite-employee",title:"Invite employee",description:"Hire receives an email invitation from Remote to start the self-enrollment process."},{id:"verify-information",title:"Verify information",description:"Remote prepares the Employment Agreement and verifies all the information."},{id:"sign-contract",title:"Sign contract",description:"All parties sign the Employment Agreement and are ready to start. \u{1F389}"}],helpText:"For customers who accept Remote's Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrollment.",zendeskArticleId:w.employeeOnboardingTimeline}),"getOnboardingTimelineData");function Y({minimumOnboardingDays:e,data:r,className:l}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__OnboardingTimeline w-full",l),children:t(x,{value:"timeline",className:"RemoteFlows__OnboardingTimeline__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__OnboardingTimeline__AccordionTrigger hover:no-underline px-0 py-4",children:t("div",{className:"flex items-center justify-between w-full",children:[o("span",{className:"RemoteFlows__OnboardingTimeline__Title text-base font-medium text-[#0F172A]",children:"Onboarding timeline"}),e!=null&&t("span",{className:"RemoteFlows__OnboardingTimeline__Description text-base text-muted-foreground mr-4",children:[e," days"]})]})}),t(A,{className:"px-0 pb-4",children:[o("ul",{className:"RemoteFlows__OnboardingTimeline__List list-disc list-inside space-y-2",children:r.steps.map(a=>t("li",{children:[o("strong",{className:"font-medium text-[#09090B]",children:a.title})," ","- ",a.description]},a.id))}),t("p",{className:"RemoteFlows__OnboardingTimeline__HelpText text-xs text-muted-foreground mt-4",children:[r.helpText,r.zendeskArticleId&&o(f,{zendeskId:r.zendeskArticleId,children:"Learn more"})]})]})]})})}d(Y,"OnboardingTimeline");function q({className:e,countryBenefitsUrl:r,countryGuideUrl:l,country:a}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__HiringSection w-full",e),children:t(x,{value:"timeline",className:"RemoteFlows__HiringSection__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__HiringSection__AccordionTrigger hover:no-underline px-0 py-4",children:o("div",{className:"flex items-center justify-between w-full",children:t("span",{className:"text-base font-medium text-[#0F172A]",children:["Hiring in ",a.name]})})}),o(A,{children:t("div",{className:"flex flex-col gap-1",children:[l&&o("a",{href:l,target:"_blank",className:"RemoteFlows__Link",children:"Explore our complete guide \u2197"}),r&&o("a",{href:r,target:"_blank",className:"RemoteFlows__Link",children:"Explore our available benefits \u2197"})]})})]})})}d(q,"HiringSection");function J({isMultipleCurrency:e,className:r}){return t("div",{className:i("RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center",r),children:[o("span",{"aria-hidden":!0}),e?t(b,{children:[o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employee currency"}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employer currency"})]}):t(b,{children:[o("span",{}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Amount"})]})]})}d(J,"EstimationHeaders");function I({label:e,amounts:r,className:l,children:a}){let[_,m]=O(!0);return t("div",{className:i("RemoteFlows__EstimationResults__Row",l),children:[t("div",{className:"RemoteFlows__EstimationRow__Grid grid grid-cols-3 items-center",children:[t("div",{className:"RemoteFlows__EstimationRow__LabelContainer flex items-center gap-2",children:[o("span",{className:i("RemoteFlows__EstimationRow__Title min-w-[140px] font-medium text-[#09090B]"),children:e}),o("button",{onClick:()=>m(!_),className:"RemoteFlows__EstimationRow__CollapseButton p-1 hover:bg-gray-100 rounded",children:o(S,{className:`h-4 w-4 text-muted-foreground transition-transform ${_?"rotate-180":""}`})})]}),Array.isArray(r)?r.map((c,u)=>o("span",{className:i("RemoteFlows__EstimationRow__RegionalAmount text-right font-medium text-[#09090B]"),children:c},u)):t(b,{children:[o("span",{}),o("span",{className:i("RemoteFlows__EstimationRow__EmployerAmount text-right font-medium text-[#09090B]"),children:r})]})]}),_&&a&&o("div",{className:"RemoteFlows__EstimationRow__CollapsibleContent mt-4",children:a})]})}d(I,"EstimationRow");function Q({item:e,isMultipleCurrency:r,level:l=0}){let[a,_]=O(!1),m=e.children&&e.children.length>0,c=l>0,u=e.isCollapsible||m;return t("li",{className:i("RemoteFlows__BreakdownList__Item pb-3",c&&"pb-1"),children:[t("div",{className:i(r?"RemoteFlows__BreakdownList__Grid grid grid-cols-3 items-center justify-between":"RemoteFlows__BreakdownList__Grid grid grid-cols-2 items-center justify-between"),children:[t("div",{className:i("RemoteFlows__BreakdownList__LabelContainer flex items-center gap-2",c&&"pl-3"),children:[!c&&o("span",{className:"RemoteFlows__BreakdownList__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0","aria-hidden":"true"}),u?t("button",{onClick:()=>_(!a),className:"RemoteFlows__BreakdownList__CollapseButton flex items-center gap-2 hover:bg-gray-100 rounded p-1",children:[o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B]"),children:e.label}),o(S,{className:`RemoteFlows__BreakdownList__ChevronDown h-3 w-3 text-muted-foreground transition-transform ${a?"rotate-180":""}`})]}):o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B] p-1"),children:e.label}),e.tooltip&&o(T,{content:t(b,{children:[o("span",{dangerouslySetInnerHTML:{__html:F(e.tooltip)}})," ",e.zendeskId&&o(f,{zendeskId:Number(e.zendeskId),children:"Learn more"})]}),children:o("button",{className:"RemoteFlows__BreakdownList__InfoButton p-1 hover:bg-gray-100 rounded",children:o($,{className:i("RemoteFlows__BreakdownList__InfoButton__Icon text-muted-foreground",c?"h-3 w-3":"h-4 w-4")})})})]}),r?t(b,{children:[o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employee-amount",className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"}),o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employer-amount",className:i("RemoteFlows__BreakdownList__EmployerAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__EmployerAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__EmployerAmountText--NotNested text-[#09090B]"),children:e.employerAmount||"\u2014"})]}):o("span",{"data-testid":e.dataSelector,className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"})]}),m&&a&&o("div",{className:"mt-1",children:o(k,{items:e.children,isMultipleCurrency:r,level:l+1})})]})}d(Q,"BreakdownListItem");function k({items:e,isMultipleCurrency:r,className:l,level:a}){return o("ul",{className:i("RemoteFlows__BreakdownList list-none",l),children:e.map((_,m)=>o(Q,{item:_,isMultipleCurrency:r,level:a},m))})}d(k,"BreakdownList");var pe=d(({estimation:e,title:r,components:l,onDelete:a,onExportPdf:_,onEdit:m})=>{let c=l?.HiringSection||q,u=l?.OnboardingTimeline||Y,z=l?.Header||K,h=l?.Footer,H=V(),p=e.employer_currency_costs.currency.code!==e.regional_currency_costs.currency.code,v=e.employer_currency_costs.monthly_management_fee,D=e.region.code!==e.country.code,M=n(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol);return t(C,{className:"RemoteFlows__EstimationResults__Card p-10",children:[o("div",{className:"RemoteFlows__Separator",children:o(z,{title:r,annualGrossSalary:M,region:D?e.region:void 0,country:e.country,onDelete:a,onExportPdf:_,onEdit:m})}),t("div",{className:"RemoteFlows__Separator",children:[o(J,{isMultipleCurrency:p,className:"mb-3"}),o(I,{label:"Monthly total cost",amounts:p?[n(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),n(e.employer_currency_costs.monthly_total,e.employer_currency_costs.currency.symbol)]:n(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),children:o(k,{items:[{label:"Gross monthly salary",regionalAmount:n(e.regional_currency_costs.monthly_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.monthly_gross_salary,e.employer_currency_costs.currency.symbol),zendeskId:w.extraPayments.toString(),tooltip:"This country respects extra payments on top of the gross salary."},{label:"Mandatory employer costs",regionalAmount:n(e.regional_currency_costs.monthly_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.monthly_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.monthly_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:n(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:n(e.regional_currency_costs.monthly_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.monthly_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.monthly_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:n(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...v?[{label:"Monthly fee",regionalAmount:n(e.regional_currency_costs.monthly_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.monthly_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})]}),o("div",{className:"RemoteFlows__Separator",children:o(I,{label:"Annual total cost",amounts:p?[n(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),n(e.employer_currency_costs.annual_total,e.employer_currency_costs.currency.symbol)]:n(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),children:o(k,{items:[{label:"Gross annual salary",dataSelector:"annual-gross-salary",regionalAmount:n(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.annual_gross_salary,e.employer_currency_costs.currency.symbol)},{label:"Mandatory employer costs",regionalAmount:n(e.regional_currency_costs.annual_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.annual_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.annual_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:n(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:n(e.regional_currency_costs.annual_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.annual_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.annual_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:n(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Extra statutory payments",regionalAmount:n(e.regional_currency_costs.extra_statutory_payments_total,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.extra_statutory_payments_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.extra_statutory_payments_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.extra_statutory_payments_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:n(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...v?[{label:"Annual fee",regionalAmount:n(e.regional_currency_costs.annual_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:n(e.employer_currency_costs.annual_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})}),o("div",{className:"RemoteFlows__Separator",children:o(u,{minimumOnboardingDays:e.minimum_onboarding_time,data:H})}),o(c,{countryBenefitsUrl:e.country_benefits_details_url,countryGuideUrl:e.country_guide_url,country:e.country}),h&&o(h,{})]})},"EstimationResults");export{pe as a};
2
- //# sourceMappingURL=chunk-YXXCHMX3.js.map