@remoteoss/remote-flows 1.31.0 → 1.33.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 (188) hide show
  1. package/README.md +83 -10
  2. package/dist/{chunk-V67RONRN.js → chunk-2P2OJKD4.js} +2 -2
  3. package/dist/{chunk-RIGP2BKY.js → chunk-3UDWOREZ.js} +2 -2
  4. package/dist/{chunk-QTLMJODK.js → chunk-4QVFKKVN.js} +2 -2
  5. package/dist/{chunk-OV3MNQPL.js → chunk-4RF6I3TT.js} +2 -2
  6. package/dist/{chunk-UQ3H4S26.js → chunk-5X6JMXP6.js} +2 -2
  7. package/dist/{chunk-IRLOG7MR.js → chunk-75MI3G5H.js} +2 -2
  8. package/dist/{chunk-VCM32VB3.js → chunk-77WJNWIC.js} +2 -2
  9. package/dist/{chunk-AUIHRJIX.js → chunk-AZZUFPQM.js} +2 -2
  10. package/dist/{chunk-L4Q4ZT4L.js → chunk-CBPV2QLT.js} +2 -2
  11. package/dist/{chunk-PPJUUGKP.js → chunk-CKJF6K4L.js} +2 -2
  12. package/dist/{chunk-IBUAH6HC.js → chunk-E3WR4SVV.js} +2 -2
  13. package/dist/{chunk-SGQ7FXWO.js → chunk-GCQYAEZT.js} +2 -2
  14. package/dist/chunk-HUAPBLSQ.js +2 -0
  15. package/dist/chunk-HUAPBLSQ.js.map +1 -0
  16. package/dist/chunk-I66TFXX4.js +2 -0
  17. package/dist/chunk-I66TFXX4.js.map +1 -0
  18. package/dist/{chunk-2SS3UU6K.js → chunk-IOVRTUOC.js} +2 -2
  19. package/dist/{chunk-OTNGKS3S.js → chunk-J4ALYQ36.js} +2 -2
  20. package/dist/{chunk-KNIZVHFU.js → chunk-JQHOMFXA.js} +2 -2
  21. package/dist/chunk-K2SHDZBB.js +2 -0
  22. package/dist/{chunk-OVJTJFYF.js.map → chunk-K2SHDZBB.js.map} +1 -1
  23. package/dist/{chunk-N6OHWIQ4.js → chunk-KAHAW4HH.js} +2 -2
  24. package/dist/{chunk-2RWZ2XC5.js → chunk-LANAT75E.js} +2 -2
  25. package/dist/{chunk-4AW3FP2P.js → chunk-LDSS6RYC.js} +2 -2
  26. package/dist/{chunk-ICOGJLAL.js → chunk-PIGJNWPB.js} +2 -2
  27. package/dist/{chunk-EU7WVCHQ.js → chunk-TSWZPJNS.js} +2 -2
  28. package/dist/{chunk-G6R56RS2.js → chunk-WSARYSM5.js} +2 -2
  29. package/dist/{chunk-CZPJWO2R.js → chunk-Y5JFBXNR.js} +2 -2
  30. package/dist/default-components.d.ts +2 -2
  31. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
  32. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
  33. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  34. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
  35. package/dist/flows/ContractAmendment/context.d.ts +3 -3
  36. package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
  37. package/dist/flows/ContractAmendment/hooks.js +1 -1
  38. package/dist/flows/ContractAmendment/index.d.ts +3 -3
  39. package/dist/flows/ContractAmendment/index.js +1 -1
  40. package/dist/flows/ContractAmendment/types.d.ts +2 -2
  41. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  42. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
  43. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  44. package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
  45. package/dist/flows/ContractorOnboarding/api.js +1 -1
  46. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
  47. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
  48. package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
  49. package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
  50. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
  51. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
  52. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +5 -5
  53. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
  54. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  55. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
  56. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
  57. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
  58. package/dist/flows/ContractorOnboarding/context.d.ts +6 -5
  59. package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
  60. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  61. package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
  62. package/dist/flows/ContractorOnboarding/index.js +1 -1
  63. package/dist/flows/ContractorOnboarding/jsfModify.d.ts +5 -5
  64. package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
  65. package/dist/flows/ContractorOnboarding/utils.d.ts +4 -4
  66. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
  67. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  68. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
  69. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
  70. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
  71. package/dist/flows/CostCalculator/api.d.ts +2 -2
  72. package/dist/flows/CostCalculator/api.js +1 -1
  73. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
  74. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  75. package/dist/flows/CostCalculator/context.d.ts +3 -3
  76. package/dist/flows/CostCalculator/hooks.d.ts +3 -3
  77. package/dist/flows/CostCalculator/hooks.js +1 -1
  78. package/dist/flows/CostCalculator/index.d.ts +3 -3
  79. package/dist/flows/CostCalculator/index.js +1 -1
  80. package/dist/flows/CostCalculator/types.d.ts +2 -2
  81. package/dist/flows/CostCalculator/utils.d.ts +3 -3
  82. package/dist/flows/CostCalculator/utils.js +1 -1
  83. package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
  84. package/dist/flows/CreateCompany/CreateCompany.js +1 -1
  85. package/dist/flows/CreateCompany/api.d.ts +2 -2
  86. package/dist/flows/CreateCompany/api.js +1 -1
  87. package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
  88. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
  89. package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
  90. package/dist/flows/CreateCompany/context.d.ts +4 -4
  91. package/dist/flows/CreateCompany/hooks.d.ts +4 -4
  92. package/dist/flows/CreateCompany/hooks.js +1 -1
  93. package/dist/flows/CreateCompany/index.d.ts +4 -4
  94. package/dist/flows/CreateCompany/index.js +1 -1
  95. package/dist/flows/CreateCompany/types.d.ts +4 -4
  96. package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
  97. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  98. package/dist/flows/Onboarding/api.d.ts +4 -4
  99. package/dist/flows/Onboarding/api.js +1 -1
  100. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
  101. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  102. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
  103. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
  104. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
  105. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
  106. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
  107. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
  108. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  109. package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
  110. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
  111. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
  112. package/dist/flows/Onboarding/context.d.ts +5 -4
  113. package/dist/flows/Onboarding/hooks.d.ts +4 -4
  114. package/dist/flows/Onboarding/hooks.js +1 -1
  115. package/dist/flows/Onboarding/index.d.ts +4 -4
  116. package/dist/flows/Onboarding/index.js +1 -1
  117. package/dist/flows/Onboarding/types.d.ts +4 -4
  118. package/dist/flows/Onboarding/utils.d.ts +4 -4
  119. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
  120. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
  121. package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
  122. package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
  123. package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
  124. package/dist/flows/Termination/TerminationFlow.js +1 -1
  125. package/dist/flows/Termination/TerminationForm.d.ts +4 -4
  126. package/dist/flows/Termination/api.d.ts +5 -5
  127. package/dist/flows/Termination/api.js +1 -1
  128. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
  129. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
  130. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  131. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
  132. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  133. package/dist/flows/Termination/context.d.ts +4 -4
  134. package/dist/flows/Termination/hooks.d.ts +4 -4
  135. package/dist/flows/Termination/hooks.js +1 -1
  136. package/dist/flows/Termination/index.d.ts +6 -6
  137. package/dist/flows/Termination/index.js +1 -1
  138. package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
  139. package/dist/flows/Termination/types.d.ts +4 -4
  140. package/dist/flows/Termination/utils.d.ts +4 -4
  141. package/dist/flows/types.d.ts +3 -2
  142. package/dist/flows/utils.d.ts +2 -2
  143. package/dist/index.css +1 -1
  144. package/dist/index.css.map +1 -1
  145. package/dist/index.d.ts +12 -12
  146. package/dist/index.js +2 -2
  147. package/dist/index.js.map +1 -1
  148. package/dist/internals.d.ts +3 -3
  149. package/dist/internals.js +1 -1
  150. package/dist/{mutations-Dy0AcOjz.d.ts → mutations-DTK4GE8r.d.ts} +1 -1
  151. package/dist/{remoteFlows-CnHcNfc4.d.ts → remoteFlows-n8r_cW0z.d.ts} +44 -1
  152. package/dist/styles.css +1 -1
  153. package/dist/styles.css.map +1 -1
  154. package/dist/{types-BOg9OXFy.d.ts → types-BD0b8UuQ.d.ts} +2 -2
  155. package/dist/{types-BIjH8PeJ.d.ts → types-BJ9gyvly.d.ts} +5 -4
  156. package/dist/{types-DWheQ1pi.d.ts → types-BY3BtHb6.d.ts} +1 -1
  157. package/dist/{types-BTj_IIC_.d.ts → types-BiMfLZYw.d.ts} +4 -3
  158. package/dist/{types-BCw6Enmi.d.ts → types-Cd5_2FHQ.d.ts} +3 -3
  159. package/dist/{types.gen-CDCDRemY.d.ts → types.gen-DPZBntYq.d.ts} +1 -1
  160. package/dist/{utils-ythMeVS9.d.ts → utils-C5lwjSxr.d.ts} +3 -2
  161. package/package.json +3 -1
  162. package/dist/chunk-B7YD67K7.js +0 -2
  163. package/dist/chunk-B7YD67K7.js.map +0 -1
  164. package/dist/chunk-LVWRZFEL.js +0 -2
  165. package/dist/chunk-LVWRZFEL.js.map +0 -1
  166. package/dist/chunk-OVJTJFYF.js +0 -2
  167. /package/dist/{chunk-V67RONRN.js.map → chunk-2P2OJKD4.js.map} +0 -0
  168. /package/dist/{chunk-RIGP2BKY.js.map → chunk-3UDWOREZ.js.map} +0 -0
  169. /package/dist/{chunk-QTLMJODK.js.map → chunk-4QVFKKVN.js.map} +0 -0
  170. /package/dist/{chunk-OV3MNQPL.js.map → chunk-4RF6I3TT.js.map} +0 -0
  171. /package/dist/{chunk-UQ3H4S26.js.map → chunk-5X6JMXP6.js.map} +0 -0
  172. /package/dist/{chunk-IRLOG7MR.js.map → chunk-75MI3G5H.js.map} +0 -0
  173. /package/dist/{chunk-VCM32VB3.js.map → chunk-77WJNWIC.js.map} +0 -0
  174. /package/dist/{chunk-AUIHRJIX.js.map → chunk-AZZUFPQM.js.map} +0 -0
  175. /package/dist/{chunk-L4Q4ZT4L.js.map → chunk-CBPV2QLT.js.map} +0 -0
  176. /package/dist/{chunk-PPJUUGKP.js.map → chunk-CKJF6K4L.js.map} +0 -0
  177. /package/dist/{chunk-IBUAH6HC.js.map → chunk-E3WR4SVV.js.map} +0 -0
  178. /package/dist/{chunk-SGQ7FXWO.js.map → chunk-GCQYAEZT.js.map} +0 -0
  179. /package/dist/{chunk-2SS3UU6K.js.map → chunk-IOVRTUOC.js.map} +0 -0
  180. /package/dist/{chunk-OTNGKS3S.js.map → chunk-J4ALYQ36.js.map} +0 -0
  181. /package/dist/{chunk-KNIZVHFU.js.map → chunk-JQHOMFXA.js.map} +0 -0
  182. /package/dist/{chunk-N6OHWIQ4.js.map → chunk-KAHAW4HH.js.map} +0 -0
  183. /package/dist/{chunk-2RWZ2XC5.js.map → chunk-LANAT75E.js.map} +0 -0
  184. /package/dist/{chunk-4AW3FP2P.js.map → chunk-LDSS6RYC.js.map} +0 -0
  185. /package/dist/{chunk-ICOGJLAL.js.map → chunk-PIGJNWPB.js.map} +0 -0
  186. /package/dist/{chunk-EU7WVCHQ.js.map → chunk-TSWZPJNS.js.map} +0 -0
  187. /package/dist/{chunk-G6R56RS2.js.map → chunk-WSARYSM5.js.map} +0 -0
  188. /package/dist/{chunk-CZPJWO2R.js.map → chunk-Y5JFBXNR.js.map} +0 -0
package/README.md CHANGED
@@ -12,6 +12,8 @@ A React library that provides components for Remote's embedded solution, enablin
12
12
  - [Quick Start](#quick-start)
13
13
  - [Components API](#components-api)
14
14
  - [RemoteFlows](#remoteflows)
15
+ - [Error Boundary](#error-boundary)
16
+ - [HTML Transformation](#html-transformation)
15
17
  - [Custom Field Components](#custom-field-components)
16
18
  - [Available Flows](#available-flows)
17
19
  - [Authentication](#authentication)
@@ -61,16 +63,17 @@ function App() {
61
63
 
62
64
  The `RemoteFlows` component serves as a provider for authentication and theming.
63
65
 
64
- | Prop | Type | Required | Deprecated | Description |
65
- | --------------- | --------------------------------------------------------------------------------------------- | -------- | ---------- | -------------------------------------------------------------------------------------------------------------- |
66
- | `auth` | `() => Promise<{ accessToken: string, expiresIn: number }>` | No | - | Function to fetch authentication token. Optional when using cookie-based authentication via `credentials` prop |
67
- | `environment` | `'partners' \| 'production' \| 'sandbox' \| 'staging'` | No | - | Environment to use for API calls (defaults to production) |
68
- | `theme` | `ThemeOptions` | No | - | Custom theme configuration |
69
- | `components` | `Components` | No | - | Custom field components for form rendering |
70
- | `proxy` | `{ url: string, headers?: Record<string, string> }` | No | - | Configuration for API request proxy with optional headers |
71
- | `errorBoundary` | `{ useParentErrorBoundary?: boolean, fallback?: ReactNode \| ((error: Error) => ReactNode) }` | No | - | Error boundary configuration to prevent crashes and show custom fallback UI |
72
- | `debug` | boolean | No | - | useful to see telemetry debugging in console |
73
- | `credentials` | `'include' \| 'same-origin'` | No | - | Credentials mode for fetch requests. Use `'include'` for cookie-based authentication without bearer tokens |
66
+ | Prop | Type | Required | Deprecated | Description |
67
+ | --------------------------- | --------------------------------------------------------------------------------------------- | -------- | ---------- | ---------------------------------------------------------------------------------------------------------------- |
68
+ | `auth` | `() => Promise<{ accessToken: string, expiresIn: number }>` | No | - | Function to fetch authentication token. Optional when using cookie-based authentication via `credentials` prop |
69
+ | `environment` | `'partners' \| 'production' \| 'sandbox' \| 'staging'` | No | - | Environment to use for API calls (defaults to production) |
70
+ | `theme` | `ThemeOptions` | No | - | Custom theme configuration |
71
+ | `components` | `Components` | No | - | Custom field components for form rendering |
72
+ | `proxy` | `{ url: string, headers?: Record<string, string> }` | No | - | Configuration for API request proxy with optional headers |
73
+ | `errorBoundary` | `{ useParentErrorBoundary?: boolean, fallback?: ReactNode \| ((error: Error) => ReactNode) }` | No | - | Error boundary configuration to prevent crashes and show custom fallback UI |
74
+ | `debug` | boolean | No | - | useful to see telemetry debugging in console |
75
+ | `credentials` | `'include' \| 'same-origin'` | No | - | Credentials mode for fetch requests. Use `'include'` for cookie-based authentication without bearer tokens |
76
+ | `transformHtmlToComponents` | `(htmlContent: string) => ReactNode` | No | - | Optional function to transform HTML strings into React components. Useful for customizing HTML content rendering |
74
77
 
75
78
  #### Error Boundary
76
79
 
@@ -106,6 +109,76 @@ The `errorBoundary` prop controls how the SDK handles runtime errors to prevent
106
109
  - When `useParentErrorBoundary: false` without `fallback` → Shows default error message: "Something went wrong in RemoteFlows. Please refresh the page."
107
110
  - When `useParentErrorBoundary: false` with `fallback` → Shows your custom fallback UI
108
111
 
112
+ #### HTML Transformation
113
+
114
+ The `transformHtmlToComponents` prop allows you to transform HTML strings from API responses into custom React components. This is useful for replacing generic HTML patterns with your own component library.
115
+
116
+ ```tsx
117
+ import parse, {
118
+ domToReact,
119
+ HTMLReactParserOptions,
120
+ Element,
121
+ } from 'html-react-parser';
122
+ import DOMPurify from 'dompurify';
123
+
124
+ function transformHtmlToComponents(htmlContent: string) {
125
+ // 1. Sanitize HTML first (IMPORTANT for security)
126
+ const clean = DOMPurify.sanitize(htmlContent);
127
+
128
+ // 2. Define transformation options
129
+ const options: HTMLReactParserOptions = {
130
+ replace: (domNode) => {
131
+ // Transform <details data-component="Accordion"> to custom Accordion
132
+ if (domNode.type === 'tag' && domNode.name === 'details') {
133
+ const element = domNode as Element;
134
+ if (element.attribs?.['data-component'] === 'Accordion') {
135
+ // Find the summary tag
136
+ const summaryNode = element.children?.find(
137
+ (child) => child.type === 'tag' && child.name === 'summary',
138
+ );
139
+
140
+ // Extract content
141
+ const summary = summaryNode
142
+ ? domToReact(summaryNode.children, options)
143
+ : 'Details';
144
+ const content = element.children?.filter(
145
+ (child) => !(child.type === 'tag' && child.name === 'summary'),
146
+ );
147
+
148
+ return (
149
+ <CustomAccordion summary={summary}>
150
+ {domToReact(content || [], options)}
151
+ </CustomAccordion>
152
+ );
153
+ }
154
+ }
155
+ },
156
+ };
157
+
158
+ // 3. Parse and transform
159
+ return parse(clean, options);
160
+ }
161
+
162
+ <RemoteFlows
163
+ components={defaultComponents}
164
+ auth={fetchToken}
165
+ transformHtmlToComponents={transformHtmlToComponents}
166
+ >
167
+ {/* Your flows */}
168
+ </RemoteFlows>;
169
+ ```
170
+
171
+ **Security Notice:** The function receives **unsanitized HTML**. You are responsible for sanitizing untrusted content before rendering. Consider using:
172
+
173
+ - [`DOMPurify`](https://github.com/cure53/DOMPurify) - Client-side HTML sanitization
174
+ - [`sanitize-html`](https://github.com/apostrophecms/sanitize-html) - Server-side HTML sanitization
175
+
176
+ **Common Use Cases:**
177
+
178
+ - Replace `<details>` elements with custom accordion components
179
+ - Transform links with custom styling or tracking
180
+ - Inject custom components for specific HTML patterns marked with `data-component` attributes
181
+
109
182
  ### Custom Field Components
110
183
 
111
184
  You can customize form field components to match your application's design system.
@@ -1,2 +1,2 @@
1
- import{a as y}from"./chunk-IBUAH6HC.js";import{a as l,b as m}from"./chunk-BZ232WZD.js";import{c}from"./chunk-XG6ASTX5.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as N}from"react";import{Fragment as b,jsx as v,jsxs as C}from"react/jsx-runtime";var R=t(({currencies:{from:d,to:F},shouldSwapOrder:s,salary_conversion_properties:a,conversionType:_="no_spread",defaultValue:r,...e})=>{let{setValue:n,getValues:i}=c(),f={label:a?.label||"Salary conversion",description:a?.description||C(b,{children:["The conversion is based on the Remote FX rate."," ",v(m,{className:"text-sm",zendeskId:l.remoteFxRate,children:"Learn more \u2197"})]})},g=s?"salary_conversion":e.name,u=s?e.name:"salary_conversion";return N(()=>{if(s){let o=i(e.name);o?(n("salary_conversion",o),n("salary_converted","salary_conversion")):r&&(n("salary_conversion",r),n("salary_converted","salary_conversion"))}else{let o=i("salary_conversion");o?(n(e.name,o),n("salary_converted",e.name)):r&&(n(e.name,r),n("salary_converted",e.name))}},[s,r,n,i,e.name]),v(y,{...e,sourceCurrency:d,targetCurrency:F,mainFieldName:g,conversionFieldName:u,conversionProperties:f,classNamePrefix:"RemoteFlows-Salary",conversionType:_})},"SalaryField");export{R as a};
2
- //# sourceMappingURL=chunk-V67RONRN.js.map
1
+ import{a as y}from"./chunk-E3WR4SVV.js";import{a as l,b as m}from"./chunk-BZ232WZD.js";import{c}from"./chunk-XG6ASTX5.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as N}from"react";import{Fragment as b,jsx as v,jsxs as C}from"react/jsx-runtime";var R=t(({currencies:{from:d,to:F},shouldSwapOrder:s,salary_conversion_properties:a,conversionType:_="no_spread",defaultValue:r,...e})=>{let{setValue:n,getValues:i}=c(),f={label:a?.label||"Salary conversion",description:a?.description||C(b,{children:["The conversion is based on the Remote FX rate."," ",v(m,{className:"text-sm",zendeskId:l.remoteFxRate,children:"Learn more \u2197"})]})},g=s?"salary_conversion":e.name,u=s?e.name:"salary_conversion";return N(()=>{if(s){let o=i(e.name);o?(n("salary_conversion",o),n("salary_converted","salary_conversion")):r&&(n("salary_conversion",r),n("salary_converted","salary_conversion"))}else{let o=i("salary_conversion");o?(n(e.name,o),n("salary_converted",e.name)):r&&(n(e.name,r),n("salary_converted",e.name))}},[s,r,n,i,e.name]),v(y,{...e,sourceCurrency:d,targetCurrency:F,mainFieldName:g,conversionFieldName:u,conversionProperties:f,classNamePrefix:"RemoteFlows-Salary",conversionType:_})},"SalaryField");export{R as a};
2
+ //# sourceMappingURL=chunk-2P2OJKD4.js.map
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-IBUAH6HC.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";var l=e(({currency:n,desiredCurrency:o,annual_gross_salary_conversion_properties:r,...a})=>i(s,{...a,sourceCurrency:n,targetCurrency:o,conversionFieldName:"annual_gross_salary_conversion",conversionProperties:{...r,description:r?.description||"Estimated amount. This is an estimation. We calculate conversions based on spot rates that are subject to fluctuation over time."},classNamePrefix:"RemoteFlows-AnnualGrossSalary",conversionType:"no_spread"}),"AnnualGrossSalary");export{l as a};
2
- //# sourceMappingURL=chunk-RIGP2BKY.js.map
1
+ import{a as s}from"./chunk-E3WR4SVV.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";var l=e(({currency:n,desiredCurrency:o,annual_gross_salary_conversion_properties:r,...a})=>i(s,{...a,sourceCurrency:n,targetCurrency:o,conversionFieldName:"annual_gross_salary_conversion",conversionProperties:{...r,description:r?.description||"Estimated amount. This is an estimation. We calculate conversions based on spot rates that are subject to fluctuation over time."},classNamePrefix:"RemoteFlows-AnnualGrossSalary",conversionType:"no_spread"}),"AnnualGrossSalary");export{l as a};
2
+ //# sourceMappingURL=chunk-3UDWOREZ.js.map
@@ -1,2 +1,2 @@
1
- import{a as z}from"./chunk-AP56UUME.js";import{a as H}from"./chunk-IJCTN52C.js";import{e as E}from"./chunk-AHRG5QCS.js";import{a as P,b as Y,c as X,d as _,f as q}from"./chunk-PX5PE6GX.js";import{a as W}from"./chunk-WVJDCDGZ.js";import{a as B}from"./chunk-MKUSE7JK.js";import{a as b}from"./chunk-OVJTJFYF.js";import{$,B as v,G as U,O as J,R as K,T as j,V as A,W as G,X as V,Y as k,aa as N,f as R,h as D,p as M,r as T,s as L,t as Q}from"./chunk-TNQKP2XT.js";import{a as O,f as x,s as w}from"./chunk-RZCU2MT3.js";import{e as s}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMemo as be}from"react";import{useMutation as f,useQuery as p}from"@tanstack/react-query";import{useMutation as de,useQuery as Z}from"@tanstack/react-query";var we=n(()=>{let{client:e}=s();return de({mutationFn:n(t=>j({client:e,body:t,headers:{Authorization:""}}),"mutationFn")})},"useUploadFile"),ee=n(e=>{let{client:t}=s();return Z({queryKey:["download-file",e],queryFn:n(async()=>{let o=await v({client:t,path:{id:e}});if(o.error)throw o.error;return o.data},"queryFn"),select:n(({data:o})=>o?.file,"select"),enabled:!!e})},"useDownloadFile"),te=n((e,t,o)=>{let{client:r}=s();return Z({queryKey:["employment-files",e],queryFn:n(async()=>{let i=await K({client:r,path:{employment_id:e},query:t});if(i.error)throw i.error;return i.data},"queryFn"),...o})},"useEmploymentFiles");import{useQuery as me}from"@tanstack/react-query";import{useQuery as pe}from"@tanstack/react-query";var ne=n(()=>{let{client:e}=s();return pe({queryKey:["identity"],queryFn:n(()=>G({client:e,headers:{Authorization:""}}),"queryFn"),select:n(t=>t.data?.data,"select")})},"useIdentity");function ye(e){return e!=null&&"company"in e}n(ye,"hasCompany");var oe=n((e={enabled:!0})=>{let{data:t}=ne(),o=ye(t)?t?.company?.id??"":"",{client:r}=s();return me({queryKey:["pricing-plans",o],queryFn:n(()=>R({client:r,path:{company_id:o}}),"queryFn"),select:n(i=>i.data?.data?.pricing_plans,"select"),enabled:!!e?.enabled&&!!o})},"useCompanyPricingPlans");var fe=n(({employmentId:e,options:t})=>{let{client:o}=s();return p({queryKey:["contractor-currencies",e],queryFn:n(async()=>Q({client:o,path:{employment_id:e},query:{restrict_to_guaranteed_pay_out_currencies:!1}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useContractorCurrencies"),bt=n(({fieldValues:e,options:t})=>p({queryKey:["contract-document-signature",e.review_completed,t?.jsfModify],queryFn:n(async()=>b(H,e,{jsfModify:t?.jsfModify}),"queryFn"),enabled:t?.queryOptions?.enabled}),"useGetContractDocumentSignatureSchema"),ft=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,contractDocumentId:o,payload:r})=>A({client:e,body:r,path:{employment_id:t,contract_document_id:o}}),"mutationFn")})},"useSignContractDocument"),Ce=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{client:r}=s();return p({queryKey:["contract-document",e,t],queryFn:n(async()=>T({client:r,path:{employment_id:e,id:t}}),"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:i})=>({...i?.data,contract_document:{...i?.data?.contract_document,content:w(i?.data?.contract_document?.content)}}),"select")})},"useGetShowContractDocument"),Ct=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{data:r}=Ce({employmentId:e,contractDocumentId:t,options:{queryOptions:{enabled:o?.queryOptions?.enabled}}});return{hasCompanySignedContract:r?.contract_document?.signatories?.some(a=>a.type==="company"&&a.status==="signed")}},"useHasCompanySignedContract"),ge=n(({employmentId:e,options:t})=>{let{client:o}=s();return p({queryKey:["contractor-subscriptions",e],queryFn:n(async()=>M({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useGetContractorSubscriptions"),gt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>k({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorSubscriptions"),Ft=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>J({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"useCreateContractorContractDocument"),Fe=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let{client:i}=s();return p({queryKey:["contractor-onboarding-details-schema",e,t],retry:!1,queryFn:n(async()=>D({client:i,path:{country_code:e},query:{json_schema_version:1,employment_id:t}}),"queryFn"),enabled:r?.queryOptions?.enabled,select:n(({data:a})=>{let c=a?.data?.schema||{};return b(c,o,r)},"select")})},"useContractorOnboardingDetailsSchema"),Se={[P]:"Contractor Management",[Y]:"Contractor Management Plus",[X]:"Contractor of Record"},he=n(e=>{let{data:t,isLoading:o}=oe({enabled:e?.enabled}),r=t?.find(a=>a.product.name==="EOR Monthly");return{eorSubscription:{product:{identifier:_,short_name:"EOR"},currency:r?.price.currency,price:{amount:x(r?.price.amount??0)},features:["Contract between Remote and employee","Remote manages onboarding, payroll, and compliance","Manages taxes, benefits, and time-off tracking","Handles contracts, transfers, and terminations"],description:"Enables hiring in countries without a local entity",label:"Employer of Record",value:_},isLoading:o}},"useEorSubscription"),_e=n((e,t,o)=>(E(_,o)&&e.push({label:t.label,value:t.value,description:t.description,meta:{features:t.features,price:{amount:t.price.amount,currencyCode:t.currency?.code??""}},disabled:!1}),e),"addEorToFieldOptions"),St=n((e,t,o)=>{let{data:r,isLoading:i,refetch:a}=ge({employmentId:e,options:{queryOptions:o?.queryOptions}}),c=r?.length===0,l=r?.length===1,u=r?.find(S=>S.product.short_name==="COR")?.eligibility_questionnaire?.is_blocking,d=(l||u===!0||c)&&t?.eor_onboarding,{eorSubscription:C,isLoading:re}=he({enabled:d}),I=b(z.data.schema,{},o);if(r){let S=I.fields.find(h=>h.name==="subscription");if(S){let h=r.filter(m=>E(m.product.identifier??"",o?.excludeProducts)).map(m=>{let y=m.product,ie=m.price.amount,ae=m.currency.code,se=Se[y.identifier]??"",ce=y.identifier??"",ue=y.description??"",le={features:y.features??[],price:{amount:x(ie),currencyCode:ae}};return{label:se,value:ce,description:ue,meta:le,disabled:u&&y.identifier!==P}});h.sort((m,y)=>m.label.localeCompare(y.label));let g=[];d&&(_e(g,C,o?.excludeProducts),g.length>0&&(g[0].meta={...g[0].meta,groupSeparator:{show:!0}})),S.options=[...h,...g]}}return{isLoading:i||re,form:I,contractorSubscriptions:r,refetch:a,isEligibilityQuestionnaireBlocked:u}},"useContractorSubscriptionSchemaField"),ht=n((e,t,o)=>{let{mutateAsyncOrThrow:r}=O(t),{mutateAsyncOrThrow:i}=O(e);return{mutateAsync:n(async({employmentId:a})=>{let{nationality_status:c,ir35:l,ir35_sds_file:F}=o,u={contract_document:{ir_35:l}},d={contract_document:{nationality:c}};return l?(await i({employmentId:a,payload:u}),F?r({employment_id:a,file:F,sub_type:q}):Promise.resolve()):c?i({employmentId:a,payload:d}):Promise.resolve()},"mutateAsync")}},"useUpdateUKandSaudiFields"),_t=n((e,t)=>{let{data:o,isLoading:r}=te(e,{sub_type:q},{...t,select:n(({data:c})=>c?.files?.filter(l=>l.sub_type===q),"select")}),i=o?.[0]?.id,a=ee(i);return{...a,isLoading:r||a.isLoading}},"useGetIR35File"),qt=n((e,t)=>{let{client:o}=s();return p({queryKey:["contract-documents",e],queryFn:n(async()=>L({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.enabled,select:n(({data:r})=>r?.data?.contract_documents,"select")})},"useGetContractDocuments"),Ot=n(({options:e,fieldValues:t})=>{let{client:o}=s();return p({queryKey:["eligibility-questionnaire"],queryFn:n(async()=>{let r=await V({client:o,query:{type:"contractor_of_record",json_schema_version:1}});if(r.error)throw new Error("Failed to fetch eligibility questionnaire");return r.data.data},"queryFn"),select:n(r=>{let i=r?.schema||{};return b(i,t,{jsfModify:e?.jsfModify})},"select"),enabled:e?.queryOptions?.enabled})},"useGetEligibilityQuestionnaire"),xt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>U({client:e,body:{employment_slug:t,responses:o,type:"contractor_of_record"},query:{json_schema_version:1}}),"mutationFn")})},"usePostCreateEligibilityQuestionnaire"),Pt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t})=>N({client:e,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorCorSubscription"),Et=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t})=>$({client:e,path:{employment_id:t}}),"mutationFn")})},"useDeleteContractorCorSubscription"),It=n(e=>{let{client:t}=s(),{data:o,isLoading:r}=p({...B(t,"contractor-onboarding-countries"),select:n(a=>a.data?.data?.map(c=>({label:c.name,value:c.code,eor_onboarding:c.eor_onboarding,contractor_products_available:c.contractor_products_available}))||[],"select"),enabled:e?.queryOptions?.enabled}),i=b(W.data.schema,{},e);if(o){let a=i.fields.find(c=>c.name==="country");a&&(a.options=o)}return{isLoading:r,selectCountryForm:i,countries:o}},"useCountriesSchemaField"),wt=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let i=Fe({countryCode:e,employmentId:t,fieldValues:o,options:r}),{data:a,isLoading:c}=fe({employmentId:t,options:{queryOptions:{enabled:r?.queryOptions?.enabled}}}),l=be(()=>!i.data||!a?i.data:{...i.data,fields:i.data.fields.map(u=>u.name!=="payment_terms"?u:{...u,fields:u.fields?.map(d=>d.name!=="compensation_currency_code"?d:{...d,options:a.map(C=>({label:C.code,value:C.code,meta:{source:C.source}}))})})},[i.data,a]);return{...i,data:l,isLoading:i.isLoading||c}},"useContractorOnboardingDetailsSchemaWithCurrencies");export{we as a,ne as b,ye as c,bt as d,ft as e,Ce as f,Ct as g,ge as h,gt as i,Ft as j,Se as k,St as l,ht as m,_t as n,qt as o,Ot as p,xt as q,Pt as r,Et as s,It as t,wt as u};
2
- //# sourceMappingURL=chunk-QTLMJODK.js.map
1
+ import{a as z}from"./chunk-AP56UUME.js";import{a as H}from"./chunk-IJCTN52C.js";import{e as E}from"./chunk-AHRG5QCS.js";import{a as P,b as Y,c as X,d as _,f as q}from"./chunk-PX5PE6GX.js";import{a as W}from"./chunk-WVJDCDGZ.js";import{a as B}from"./chunk-MKUSE7JK.js";import{a as b}from"./chunk-K2SHDZBB.js";import{$,B as v,G as U,O as J,R as K,T as j,V as A,W as G,X as V,Y as k,aa as N,f as R,h as D,p as M,r as T,s as L,t as Q}from"./chunk-TNQKP2XT.js";import{a as O,f as x,s as w}from"./chunk-RZCU2MT3.js";import{e as s}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMemo as be}from"react";import{useMutation as f,useQuery as p}from"@tanstack/react-query";import{useMutation as de,useQuery as Z}from"@tanstack/react-query";var we=n(()=>{let{client:e}=s();return de({mutationFn:n(t=>j({client:e,body:t,headers:{Authorization:""}}),"mutationFn")})},"useUploadFile"),ee=n(e=>{let{client:t}=s();return Z({queryKey:["download-file",e],queryFn:n(async()=>{let o=await v({client:t,path:{id:e}});if(o.error)throw o.error;return o.data},"queryFn"),select:n(({data:o})=>o?.file,"select"),enabled:!!e})},"useDownloadFile"),te=n((e,t,o)=>{let{client:r}=s();return Z({queryKey:["employment-files",e],queryFn:n(async()=>{let i=await K({client:r,path:{employment_id:e},query:t});if(i.error)throw i.error;return i.data},"queryFn"),...o})},"useEmploymentFiles");import{useQuery as me}from"@tanstack/react-query";import{useQuery as pe}from"@tanstack/react-query";var ne=n(()=>{let{client:e}=s();return pe({queryKey:["identity"],queryFn:n(()=>G({client:e,headers:{Authorization:""}}),"queryFn"),select:n(t=>t.data?.data,"select")})},"useIdentity");function ye(e){return e!=null&&"company"in e}n(ye,"hasCompany");var oe=n((e={enabled:!0})=>{let{data:t}=ne(),o=ye(t)?t?.company?.id??"":"",{client:r}=s();return me({queryKey:["pricing-plans",o],queryFn:n(()=>R({client:r,path:{company_id:o}}),"queryFn"),select:n(i=>i.data?.data?.pricing_plans,"select"),enabled:!!e?.enabled&&!!o})},"useCompanyPricingPlans");var fe=n(({employmentId:e,options:t})=>{let{client:o}=s();return p({queryKey:["contractor-currencies",e],queryFn:n(async()=>Q({client:o,path:{employment_id:e},query:{restrict_to_guaranteed_pay_out_currencies:!1}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useContractorCurrencies"),bt=n(({fieldValues:e,options:t})=>p({queryKey:["contract-document-signature",e.review_completed,t?.jsfModify],queryFn:n(async()=>b(H,e,{jsfModify:t?.jsfModify}),"queryFn"),enabled:t?.queryOptions?.enabled}),"useGetContractDocumentSignatureSchema"),ft=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,contractDocumentId:o,payload:r})=>A({client:e,body:r,path:{employment_id:t,contract_document_id:o}}),"mutationFn")})},"useSignContractDocument"),Ce=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{client:r}=s();return p({queryKey:["contract-document",e,t],queryFn:n(async()=>T({client:r,path:{employment_id:e,id:t}}),"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:i})=>({...i?.data,contract_document:{...i?.data?.contract_document,content:w(i?.data?.contract_document?.content)}}),"select")})},"useGetShowContractDocument"),Ct=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{data:r}=Ce({employmentId:e,contractDocumentId:t,options:{queryOptions:{enabled:o?.queryOptions?.enabled}}});return{hasCompanySignedContract:r?.contract_document?.signatories?.some(a=>a.type==="company"&&a.status==="signed")}},"useHasCompanySignedContract"),ge=n(({employmentId:e,options:t})=>{let{client:o}=s();return p({queryKey:["contractor-subscriptions",e],queryFn:n(async()=>M({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useGetContractorSubscriptions"),gt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>k({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorSubscriptions"),Ft=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>J({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"useCreateContractorContractDocument"),Fe=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let{client:i}=s();return p({queryKey:["contractor-onboarding-details-schema",e,t],retry:!1,queryFn:n(async()=>D({client:i,path:{country_code:e},query:{json_schema_version:1,employment_id:t}}),"queryFn"),enabled:r?.queryOptions?.enabled,select:n(({data:a})=>{let c=a?.data?.schema||{};return b(c,o,r)},"select")})},"useContractorOnboardingDetailsSchema"),Se={[P]:"Contractor Management",[Y]:"Contractor Management Plus",[X]:"Contractor of Record"},he=n(e=>{let{data:t,isLoading:o}=oe({enabled:e?.enabled}),r=t?.find(a=>a.product.name==="EOR Monthly");return{eorSubscription:{product:{identifier:_,short_name:"EOR"},currency:r?.price.currency,price:{amount:x(r?.price.amount??0)},features:["Contract between Remote and employee","Remote manages onboarding, payroll, and compliance","Manages taxes, benefits, and time-off tracking","Handles contracts, transfers, and terminations"],description:"Enables hiring in countries without a local entity",label:"Employer of Record",value:_},isLoading:o}},"useEorSubscription"),_e=n((e,t,o)=>(E(_,o)&&e.push({label:t.label,value:t.value,description:t.description,meta:{features:t.features,price:{amount:t.price.amount,currencyCode:t.currency?.code??""}},disabled:!1}),e),"addEorToFieldOptions"),St=n((e,t,o)=>{let{data:r,isLoading:i,refetch:a}=ge({employmentId:e,options:{queryOptions:o?.queryOptions}}),c=r?.length===0,l=r?.length===1,u=r?.find(S=>S.product.short_name==="COR")?.eligibility_questionnaire?.is_blocking,d=(l||u===!0||c)&&t?.eor_onboarding,{eorSubscription:C,isLoading:re}=he({enabled:d}),I=b(z.data.schema,{},o);if(r){let S=I.fields.find(h=>h.name==="subscription");if(S){let h=r.filter(m=>E(m.product.identifier??"",o?.excludeProducts)).map(m=>{let y=m.product,ie=m.price.amount,ae=m.currency.code,se=Se[y.identifier]??"",ce=y.identifier??"",ue=y.description??"",le={features:y.features??[],price:{amount:x(ie),currencyCode:ae}};return{label:se,value:ce,description:ue,meta:le,disabled:u&&y.identifier!==P}});h.sort((m,y)=>m.label.localeCompare(y.label));let g=[];d&&(_e(g,C,o?.excludeProducts),g.length>0&&(g[0].meta={...g[0].meta,groupSeparator:{show:!0}})),S.options=[...h,...g]}}return{isLoading:i||re,form:I,contractorSubscriptions:r,refetch:a,isEligibilityQuestionnaireBlocked:u}},"useContractorSubscriptionSchemaField"),ht=n((e,t,o)=>{let{mutateAsyncOrThrow:r}=O(t),{mutateAsyncOrThrow:i}=O(e);return{mutateAsync:n(async({employmentId:a})=>{let{nationality_status:c,ir35:l,ir35_sds_file:F}=o,u={contract_document:{ir_35:l}},d={contract_document:{nationality:c}};return l?(await i({employmentId:a,payload:u}),F?r({employment_id:a,file:F,sub_type:q}):Promise.resolve()):c?i({employmentId:a,payload:d}):Promise.resolve()},"mutateAsync")}},"useUpdateUKandSaudiFields"),_t=n((e,t)=>{let{data:o,isLoading:r}=te(e,{sub_type:q},{...t,select:n(({data:c})=>c?.files?.filter(l=>l.sub_type===q),"select")}),i=o?.[0]?.id,a=ee(i);return{...a,isLoading:r||a.isLoading}},"useGetIR35File"),qt=n((e,t)=>{let{client:o}=s();return p({queryKey:["contract-documents",e],queryFn:n(async()=>L({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.enabled,select:n(({data:r})=>r?.data?.contract_documents,"select")})},"useGetContractDocuments"),Ot=n(({options:e,fieldValues:t})=>{let{client:o}=s();return p({queryKey:["eligibility-questionnaire"],queryFn:n(async()=>{let r=await V({client:o,query:{type:"contractor_of_record",json_schema_version:1}});if(r.error)throw new Error("Failed to fetch eligibility questionnaire");return r.data.data},"queryFn"),select:n(r=>{let i=r?.schema||{};return b(i,t,{jsfModify:e?.jsfModify})},"select"),enabled:e?.queryOptions?.enabled})},"useGetEligibilityQuestionnaire"),xt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>U({client:e,body:{employment_slug:t,responses:o,type:"contractor_of_record"},query:{json_schema_version:1}}),"mutationFn")})},"usePostCreateEligibilityQuestionnaire"),Pt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t})=>N({client:e,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorCorSubscription"),Et=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t})=>$({client:e,path:{employment_id:t}}),"mutationFn")})},"useDeleteContractorCorSubscription"),It=n(e=>{let{client:t}=s(),{data:o,isLoading:r}=p({...B(t,"contractor-onboarding-countries"),select:n(a=>a.data?.data?.map(c=>({label:c.name,value:c.code,eor_onboarding:c.eor_onboarding,contractor_products_available:c.contractor_products_available}))||[],"select"),enabled:e?.queryOptions?.enabled}),i=b(W.data.schema,{},e);if(o){let a=i.fields.find(c=>c.name==="country");a&&(a.options=o)}return{isLoading:r,selectCountryForm:i,countries:o}},"useCountriesSchemaField"),wt=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let i=Fe({countryCode:e,employmentId:t,fieldValues:o,options:r}),{data:a,isLoading:c}=fe({employmentId:t,options:{queryOptions:{enabled:r?.queryOptions?.enabled}}}),l=be(()=>!i.data||!a?i.data:{...i.data,fields:i.data.fields.map(u=>u.name!=="payment_terms"?u:{...u,fields:u.fields?.map(d=>d.name!=="compensation_currency_code"?d:{...d,options:a.map(C=>({label:C.code,value:C.code,meta:{source:C.source}}))})})},[i.data,a]);return{...i,data:l,isLoading:i.isLoading||c}},"useContractorOnboardingDetailsSchemaWithCurrencies");export{we as a,ne as b,ye as c,bt as d,ft as e,Ce as f,Ct as g,ge as h,gt as i,Ft as j,Se as k,St as l,ht as m,_t as n,qt as o,Ot as p,xt as q,Pt as r,Et as s,It as t,wt as u};
2
+ //# sourceMappingURL=chunk-4QVFKKVN.js.map
@@ -1,2 +1,2 @@
1
- import{c as d,d as S}from"./chunk-AUIHRJIX.js";import{a as f}from"./chunk-KSHK3ZPX.js";import{a as u}from"./chunk-HN5HLFTB.js";import{b as C}from"./chunk-KFYWUBRS.js";import{f as y}from"./chunk-XG6ASTX5.js";import{a as o}from"./chunk-P37U34EQ.js";import{useEffect as T,useId as U,useState as I}from"react";import{jsx as k}from"react/jsx-runtime";var l=o((n,e,r)=>r&&r[e]?r[e]:n[e]?n[e]/100:0,"getDefaultManagementFee"),A=o((n,e,r,g)=>!e&&!r?.management_fee&&n?l(u,n,g):e&&!r?.management_fee?"":r?.management_fee,"getManagementFee"),W=o(({estimationOptions:n=d,defaultValues:e={countryRegionSlug:"",regionSlug:"",currencySlug:"",salary:"",benefits:{},management:{management_fee:""}},options:r,render:g,version:_="standard"})=>{let p=U(),[R,m]=I("USD"),F=o(s=>{m(s);let a=l(u,s,n.managementFees);a&&c.setValue("management.management_fee",a.toString())},"onCurrencyChange"),t=S({defaultRegion:e.countryRegionSlug,defaultCurrency:e.currencySlug,defaultSalary:e.salary,estimationOptions:n,version:_,options:{...r,onCurrencyChange:F}}),K=C(t.handleValidation),b=A(R,e.currencySlug,e.management,n.managementFees),{countryRegionSlug:v,currencySlug:h,salary:D,benefits:P,hiringBudget:B,age:E,contractDurationType:M,regionSlug:w,...x}=e,c=y({resolver:K,defaultValues:{country:v,currency:h,region:w,salary:D,salary_conversion:"",salary_converted:void 0,hiring_budget:B||"employee_annual_salary",age:E,contract_duration_type:M,management:{management_fee:b?.toString()||""},benefits:P,estimation_title:n.title,...x},shouldUnregister:!1,mode:"onBlur"});return T(()=>{if(e.currencySlug&&t.currencies&&n.includeManagementFee&&!e.management?.management_fee){let a=t.currencies.find(i=>i.value===e.currencySlug)?.label;if(a){m(a);let i=l(u,a,n.managementFees);c.setValue("management.management_fee",i?.toString()||"")}}},[e.currencySlug,t.currencies,n.includeManagementFee,n.managementFees,e.management?.management_fee,c]),k(f.Provider,{value:{form:c,formId:p,costCalculatorBag:t},children:g(t)})},"CostCalculatorFlow");export{W as a};
2
- //# sourceMappingURL=chunk-OV3MNQPL.js.map
1
+ import{c as d,d as S}from"./chunk-AZZUFPQM.js";import{a as u}from"./chunk-HN5HLFTB.js";import{a as f}from"./chunk-KSHK3ZPX.js";import{b as C}from"./chunk-KFYWUBRS.js";import{f as y}from"./chunk-XG6ASTX5.js";import{a as o}from"./chunk-P37U34EQ.js";import{useEffect as T,useId as U,useState as I}from"react";import{jsx as k}from"react/jsx-runtime";var l=o((n,e,r)=>r&&r[e]?r[e]:n[e]?n[e]/100:0,"getDefaultManagementFee"),A=o((n,e,r,g)=>!e&&!r?.management_fee&&n?l(u,n,g):e&&!r?.management_fee?"":r?.management_fee,"getManagementFee"),W=o(({estimationOptions:n=d,defaultValues:e={countryRegionSlug:"",regionSlug:"",currencySlug:"",salary:"",benefits:{},management:{management_fee:""}},options:r,render:g,version:_="standard"})=>{let p=U(),[R,m]=I("USD"),F=o(s=>{m(s);let a=l(u,s,n.managementFees);a&&c.setValue("management.management_fee",a.toString())},"onCurrencyChange"),t=S({defaultRegion:e.countryRegionSlug,defaultCurrency:e.currencySlug,defaultSalary:e.salary,estimationOptions:n,version:_,options:{...r,onCurrencyChange:F}}),K=C(t.handleValidation),b=A(R,e.currencySlug,e.management,n.managementFees),{countryRegionSlug:v,currencySlug:h,salary:D,benefits:P,hiringBudget:B,age:E,contractDurationType:M,regionSlug:w,...x}=e,c=y({resolver:K,defaultValues:{country:v,currency:h,region:w,salary:D,salary_conversion:"",salary_converted:void 0,hiring_budget:B||"employee_annual_salary",age:E,contract_duration_type:M,management:{management_fee:b?.toString()||""},benefits:P,estimation_title:n.title,...x},shouldUnregister:!1,mode:"onBlur"});return T(()=>{if(e.currencySlug&&t.currencies&&n.includeManagementFee&&!e.management?.management_fee){let a=t.currencies.find(i=>i.value===e.currencySlug)?.label;if(a){m(a);let i=l(u,a,n.managementFees);c.setValue("management.management_fee",i?.toString()||"")}}},[e.currencySlug,t.currencies,n.includeManagementFee,n.managementFees,e.management?.management_fee,c]),k(f.Provider,{value:{form:c,formId:p,costCalculatorBag:t},children:g(t)})},"CostCalculatorFlow");export{W as a};
2
+ //# sourceMappingURL=chunk-4RF6I3TT.js.map
@@ -1,2 +1,2 @@
1
- import{a as k}from"./chunk-XFD3ULUF.js";import{a as S}from"./chunk-DN6BXTAC.js";import{a as m,b as d,c as h,d as _}from"./chunk-DFJNVGK4.js";import{a as y}from"./chunk-TXSUZLOI.js";import{a as g}from"./chunk-OVJTJFYF.js";import{E as T,Z as b,c as D}from"./chunk-TNQKP2XT.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useQuery as v}from"@tanstack/react-query";var c=n(({employmentId:e,status:t,timeoffType:a,options:o})=>{let{client:r}=i();return v({queryKey:["timeoff",e,t],retry:!1,queryFn:n(()=>b({client:r,headers:{Authorization:""},query:{employment_id:e,status:t,timeoff_type:a}}),"queryFn"),select:n(({data:s})=>o?.select?.(s)??s,"select"),enabled:o?.enabled})},"useTimeOffQuery"),R=n((e,t)=>{let a=y(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),o=y(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return`${a} \u2192 ${o}`},"formatDateRange"),N=n(({employmentId:e,options:t})=>c({employmentId:e,timeoffType:"paid_time_off",options:{enabled:t?.enabled,select:n(a=>({bookedDays:a?.data?.timeoffs?.reduce((o,r)=>o+(r?.timeoff_days?.filter(s=>s.hours!=null&&s.hours>0).length||0),0)||0,timeoffs:a?.data?.timeoffs?.map(o=>{let r=o?.timeoff_days?.filter(s=>s.hours>0).length||0;return{status:o?.status,duration:r,startDate:o?.start_date,endDate:o?.end_date,formattedDate:R(o?.start_date,o?.end_date)}})||[]}),"select")}}),"usePaidTimeoffBreakdownQuery"),A=n(({employmentId:e})=>{let{client:t}=i();return v({queryKey:["timeoff-balance",e],retry:!1,queryFn:n(()=>T({client:t,headers:{Authorization:""},path:{employment_id:e}}),"queryFn"),select:n(({data:a})=>a,"select")})},"useTimeOffLeavePoliciesSummaryQuery");import{useMutation as E,useQuery as Q}from"@tanstack/react-query";function F(e){return Object.entries(e).reduce((t,[a,o])=>({...t,[a]:h(o)}),{})}n(F,"formatTimeoffValues");function q(e){let t=e?.contract_details?.available_pto,a=e?.contract_details?.available_pto_type;return e?.country?.code==="USA"&&a==="unlimited"?{value:t===0?20:t}:a==="unlimited"&&t>0?{value:t}:{value:t}}n(q,"getMinimumStatutoryDays");function U(e,t){let a=0,o=0;return e.forEach(r=>{r.timeoff_days?.forEach(s=>{new Date(s.day)<=t?a+=s.hours||0:o+=s.hours||0})}),{before:a,after:o}}n(U,"getAllTimeoffHoursBeforeDate");var V=n(({employmentId:e,date:t,options:a})=>c({employmentId:e,timeoffType:"paid_time_off",status:"approved",options:{enabled:a?.enabled,select:n(o=>{let{before:r,after:s}=U(o?.data?.timeoffs||[],new Date(t));return{bookedDaysBeforeTermination:d(r),bookedDaysAfterTermination:d(s)}},"select")}}),"useBookedTimeoffBeforeAndAfterTerminationQuery"),me=n(({employmentId:e,proposedTerminationDate:t,employment:a})=>{let{value:o=0}=q(a),r=A({employmentId:e}),s=V({employmentId:e,date:t}),p=r.data?.data?.[0].annual_entitlement.type==="limited"?{days:r.data?.data?.[0].annual_entitlement.days,hours:r.data?.data?.[0].annual_entitlement.hours}:{days:o,hours:0},u={days:r.data?.data?.[0].booked.days||0,hours:r.data?.data?.[0].booked.hours||0},f=r.data?.data?.[0].current_entitlement.type==="limited"?{days:r.data?.data?.[0].current_entitlement.days||0,hours:r.data?.data?.[0].current_entitlement.hours||0}:{days:o,hours:0},l={days:r.data?.data?.[0].used.days||0,hours:r.data?.data?.[0].used.hours||0},B=s.data?.bookedDaysBeforeTermination||{days:0,hours:0},C=s.data?.bookedDaysAfterTermination||{days:0,hours:0},x=m(f.days,f.hours),H=m(l.days,l.hours),P=m(u.days,u.hours),L=x-H-P,O=_(d(L));return{data:{...F({entitledDays:p,bookedDays:u,usedDays:l,approvedDaysBeforeTermination:B,approvedDaysAfterTermination:C,remainingDays:O,currentEntitlementDays:f}),isUnlimitedPto:a?.contract_details?.available_pto_type==="unlimited"},isLoading:r.isLoading||s.isLoading,isError:r.isError||s.isError,error:r.error||s.error}},"useSummaryTimeOffDataQuery"),de=n(()=>{let{client:e}=i();return E({mutationFn:n(t=>D({client:e,body:t}),"mutationFn")})},"useCreateTermination"),ue=n(({formValues:e,jsfModify:t,step:a})=>Q({queryKey:["rmt-flows-termination-schema",a],queryFn:n(()=>S[a]??k,"queryFn"),select:n(({data:o})=>{let r=o?.schema||{};return g(r,e||{},{jsfModify:t})},"select")}),"useTerminationSchema");export{c as a,N as b,A as c,V as d,me as e,de as f,ue as g};
2
- //# sourceMappingURL=chunk-UQ3H4S26.js.map
1
+ import{a as k}from"./chunk-XFD3ULUF.js";import{a as S}from"./chunk-DN6BXTAC.js";import{a as m,b as d,c as h,d as _}from"./chunk-DFJNVGK4.js";import{a as y}from"./chunk-TXSUZLOI.js";import{a as g}from"./chunk-K2SHDZBB.js";import{E as T,Z as b,c as D}from"./chunk-TNQKP2XT.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useQuery as v}from"@tanstack/react-query";var c=n(({employmentId:e,status:t,timeoffType:a,options:o})=>{let{client:r}=i();return v({queryKey:["timeoff",e,t],retry:!1,queryFn:n(()=>b({client:r,headers:{Authorization:""},query:{employment_id:e,status:t,timeoff_type:a}}),"queryFn"),select:n(({data:s})=>o?.select?.(s)??s,"select"),enabled:o?.enabled})},"useTimeOffQuery"),R=n((e,t)=>{let a=y(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),o=y(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return`${a} \u2192 ${o}`},"formatDateRange"),N=n(({employmentId:e,options:t})=>c({employmentId:e,timeoffType:"paid_time_off",options:{enabled:t?.enabled,select:n(a=>({bookedDays:a?.data?.timeoffs?.reduce((o,r)=>o+(r?.timeoff_days?.filter(s=>s.hours!=null&&s.hours>0).length||0),0)||0,timeoffs:a?.data?.timeoffs?.map(o=>{let r=o?.timeoff_days?.filter(s=>s.hours>0).length||0;return{status:o?.status,duration:r,startDate:o?.start_date,endDate:o?.end_date,formattedDate:R(o?.start_date,o?.end_date)}})||[]}),"select")}}),"usePaidTimeoffBreakdownQuery"),A=n(({employmentId:e})=>{let{client:t}=i();return v({queryKey:["timeoff-balance",e],retry:!1,queryFn:n(()=>T({client:t,headers:{Authorization:""},path:{employment_id:e}}),"queryFn"),select:n(({data:a})=>a,"select")})},"useTimeOffLeavePoliciesSummaryQuery");import{useMutation as E,useQuery as Q}from"@tanstack/react-query";function F(e){return Object.entries(e).reduce((t,[a,o])=>({...t,[a]:h(o)}),{})}n(F,"formatTimeoffValues");function q(e){let t=e?.contract_details?.available_pto,a=e?.contract_details?.available_pto_type;return e?.country?.code==="USA"&&a==="unlimited"?{value:t===0?20:t}:a==="unlimited"&&t>0?{value:t}:{value:t}}n(q,"getMinimumStatutoryDays");function U(e,t){let a=0,o=0;return e.forEach(r=>{r.timeoff_days?.forEach(s=>{new Date(s.day)<=t?a+=s.hours||0:o+=s.hours||0})}),{before:a,after:o}}n(U,"getAllTimeoffHoursBeforeDate");var V=n(({employmentId:e,date:t,options:a})=>c({employmentId:e,timeoffType:"paid_time_off",status:"approved",options:{enabled:a?.enabled,select:n(o=>{let{before:r,after:s}=U(o?.data?.timeoffs||[],new Date(t));return{bookedDaysBeforeTermination:d(r),bookedDaysAfterTermination:d(s)}},"select")}}),"useBookedTimeoffBeforeAndAfterTerminationQuery"),me=n(({employmentId:e,proposedTerminationDate:t,employment:a})=>{let{value:o=0}=q(a),r=A({employmentId:e}),s=V({employmentId:e,date:t}),p=r.data?.data?.[0].annual_entitlement.type==="limited"?{days:r.data?.data?.[0].annual_entitlement.days,hours:r.data?.data?.[0].annual_entitlement.hours}:{days:o,hours:0},u={days:r.data?.data?.[0].booked.days||0,hours:r.data?.data?.[0].booked.hours||0},f=r.data?.data?.[0].current_entitlement.type==="limited"?{days:r.data?.data?.[0].current_entitlement.days||0,hours:r.data?.data?.[0].current_entitlement.hours||0}:{days:o,hours:0},l={days:r.data?.data?.[0].used.days||0,hours:r.data?.data?.[0].used.hours||0},B=s.data?.bookedDaysBeforeTermination||{days:0,hours:0},C=s.data?.bookedDaysAfterTermination||{days:0,hours:0},x=m(f.days,f.hours),H=m(l.days,l.hours),P=m(u.days,u.hours),L=x-H-P,O=_(d(L));return{data:{...F({entitledDays:p,bookedDays:u,usedDays:l,approvedDaysBeforeTermination:B,approvedDaysAfterTermination:C,remainingDays:O,currentEntitlementDays:f}),isUnlimitedPto:a?.contract_details?.available_pto_type==="unlimited"},isLoading:r.isLoading||s.isLoading,isError:r.isError||s.isError,error:r.error||s.error}},"useSummaryTimeOffDataQuery"),de=n(()=>{let{client:e}=i();return E({mutationFn:n(t=>D({client:e,body:t}),"mutationFn")})},"useCreateTermination"),ue=n(({formValues:e,jsfModify:t,step:a})=>Q({queryKey:["rmt-flows-termination-schema",a],queryFn:n(()=>S[a]??k,"queryFn"),select:n(({data:o})=>{let r=o?.schema||{};return g(r,e||{},{jsfModify:t})},"select")}),"useTerminationSchema");export{c as a,N as b,A as c,V as d,me as e,de as f,ue as g};
2
+ //# sourceMappingURL=chunk-5X6JMXP6.js.map
@@ -1,2 +1,2 @@
1
- import{b as y}from"./chunk-Q3ALCPJN.js";import{d as p,e as v}from"./chunk-EU7WVCHQ.js";import{a as n,v as u}from"./chunk-RZCU2MT3.js";import{b as l}from"./chunk-H2O4CVKF.js";import{a as r}from"./chunk-P37U34EQ.js";import O from"lodash.omit";import{jsx as C}from"react/jsx-runtime";function T({onSubmit:f,onSuccess:i,onError:s,render:w,...o}){let{components:E}=l(),{contractorOnboardingBag:e}=y(),a=p(),m=v(),{mutateAsyncOrThrow:g}=n(a),{mutateAsyncOrThrow:I}=n(m),c=e.employment?.contractor_type==="cor"&&!e.isEmploymentReadOnly,R=r(async()=>{try{if(await f?.(),c&&e.employmentId){let t=await I({employment_slug:e.employmentId});if(t?.data){await i?.({data:t,employmentStatus:"created_awaiting_reserve"}),e.refetchEmployment();return}}else if(e.employmentId){let t=await g({employment_id:e.employmentId});t&&(await i?.({data:t,employmentStatus:"invited"}),e.refetchEmployment())}}catch(t){u(t)?s?.(O(t,"response")):s?.({error:t,rawError:t,fieldErrors:[]})}},"handleSubmit"),d=E?.button;if(!d)throw new Error("Button component not found");let b=a.isPending||m.isPending||!e.canInvite||o.disabled;return C(d,{...o,disabled:b,onClick:t=>{R(),o.onClick?.(t)},children:w({status:c?"create_reserve":"invite"})})}r(T,"OnboardingInvite");export{T as a};
2
- //# sourceMappingURL=chunk-IRLOG7MR.js.map
1
+ import{b as y}from"./chunk-Q3ALCPJN.js";import{d as p,e as v}from"./chunk-TSWZPJNS.js";import{a as n,v as u}from"./chunk-RZCU2MT3.js";import{b as l}from"./chunk-H2O4CVKF.js";import{a as r}from"./chunk-P37U34EQ.js";import O from"lodash.omit";import{jsx as C}from"react/jsx-runtime";function T({onSubmit:f,onSuccess:i,onError:s,render:w,...o}){let{components:E}=l(),{contractorOnboardingBag:e}=y(),a=p(),m=v(),{mutateAsyncOrThrow:g}=n(a),{mutateAsyncOrThrow:I}=n(m),c=e.employment?.contractor_type==="cor"&&!e.isEmploymentReadOnly,R=r(async()=>{try{if(await f?.(),c&&e.employmentId){let t=await I({employment_slug:e.employmentId});if(t?.data){await i?.({data:t,employmentStatus:"created_awaiting_reserve"}),e.refetchEmployment();return}}else if(e.employmentId){let t=await g({employment_id:e.employmentId});t&&(await i?.({data:t,employmentStatus:"invited"}),e.refetchEmployment())}}catch(t){u(t)?s?.(O(t,"response")):s?.({error:t,rawError:t,fieldErrors:[]})}},"handleSubmit"),d=E?.button;if(!d)throw new Error("Button component not found");let b=a.isPending||m.isPending||!e.canInvite||o.disabled;return C(d,{...o,disabled:b,onClick:t=>{R(),o.onClick?.(t)},children:w({status:c?"create_reserve":"invite"})})}r(T,"OnboardingInvite");export{T as a};
2
+ //# sourceMappingURL=chunk-75MI3G5H.js.map
@@ -1,2 +1,2 @@
1
- import{b as w}from"./chunk-PGWKJ6FK.js";import{d as v,e as y}from"./chunk-EU7WVCHQ.js";import{a as i}from"./chunk-RZCU2MT3.js";import{b as l}from"./chunk-H2O4CVKF.js";import{a as s}from"./chunk-P37U34EQ.js";import{jsx as _}from"react/jsx-runtime";function P({onSubmit:f,onSuccess:a,onError:t,render:E,...o}){let{components:R}=l(),{onboardingBag:r,setCreditScore:m}=w(),d=v(),u=y(),{mutateAsync:g}=i(d),{mutateAsync:S}=i(u),c=r.creditRiskStatus==="deposit_required"||r.onboardingReservesStatus==="deposit_required",I=s(async()=>{try{if(await f?.(),c&&r.employmentId&&r.employment?.status&&!r.isEmploymentReadOnly){let e=await S({employment_slug:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"created_awaiting_reserve"}),m?.(n=>({...n,showReserveInvoice:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}else if(r.employmentId){let e=await g({employment_id:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"invited"}),m?.(n=>({...n,showInviteSuccessful:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}}catch(e){t?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit"),b=c&&r.employment?.status&&!r.isEmploymentReadOnly,p=R?.button;if(!p)throw new Error("Button component not found");return _(p,{...o,disabled:d.isPending||u.isPending||o.disabled,onClick:e=>{I(),o.onClick?.(e)},children:E({employmentStatus:b?"created_awaiting_reserve":"invited"})})}s(P,"OnboardingInvite");export{P as a};
2
- //# sourceMappingURL=chunk-VCM32VB3.js.map
1
+ import{b as w}from"./chunk-PGWKJ6FK.js";import{d as v,e as y}from"./chunk-TSWZPJNS.js";import{a as i}from"./chunk-RZCU2MT3.js";import{b as l}from"./chunk-H2O4CVKF.js";import{a as s}from"./chunk-P37U34EQ.js";import{jsx as _}from"react/jsx-runtime";function P({onSubmit:f,onSuccess:a,onError:t,render:E,...o}){let{components:R}=l(),{onboardingBag:r,setCreditScore:m}=w(),d=v(),u=y(),{mutateAsync:g}=i(d),{mutateAsync:S}=i(u),c=r.creditRiskStatus==="deposit_required"||r.onboardingReservesStatus==="deposit_required",I=s(async()=>{try{if(await f?.(),c&&r.employmentId&&r.employment?.status&&!r.isEmploymentReadOnly){let e=await S({employment_slug:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"created_awaiting_reserve"}),m?.(n=>({...n,showReserveInvoice:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}else if(r.employmentId){let e=await g({employment_id:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"invited"}),m?.(n=>({...n,showInviteSuccessful:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}}catch(e){t?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit"),b=c&&r.employment?.status&&!r.isEmploymentReadOnly,p=R?.button;if(!p)throw new Error("Button component not found");return _(p,{...o,disabled:d.isPending||u.isPending||o.disabled,onClick:e=>{I(),o.onClick?.(e)},children:E({employmentStatus:b?"created_awaiting_reserve":"invited"})})}s(P,"OnboardingInvite");export{P as a};
2
+ //# sourceMappingURL=chunk-77WJNWIC.js.map
@@ -1,2 +1,2 @@
1
- import{a as Z}from"./chunk-V67RONRN.js";import{a as I}from"./chunk-VFRHMNLJ.js";import{a as Q,b as W,c as X,f as Y}from"./chunk-ICOGJLAL.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as G}from"./chunk-KFYWUBRS.js";import{c as ee}from"./chunk-WUSKSXW2.js";import{a as z}from"./chunk-OVJTJFYF.js";import{a as K,g as M}from"./chunk-RZCU2MT3.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Be,object as se}from"yup";import{useCallback as je,useEffect as te,useMemo as we,useRef as Re,useState as j}from"react";import{string as ne,ValidationError as re}from"yup";import{jsx as ie}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},Pe=o(t=>z(I.data.schema,void 0,t),"useStaticSchema");function xe(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(xe,"getSalaryTitle");var ze=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let u=Re({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,le]=j(),{data:_,isLoading:ue}=Q({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=W(),me=k||w?.value,{data:P,isLoading:de}=Y(me,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=X(),{mutateAsync:fe}=K(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=je(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,ge=we(()=>{let{from:e,to:r,shouldSwapOrder:c}=L(),g=xe(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ie(Z,{...y,shouldSwapOrder:c,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>ie(ee,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=Pe({jsfModify:{fields:{...n?.jsfModify?.fields,...ge?.fields}}});te(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),te(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ye(e){return fe(oe(e,s,a))}o(ye,"onSubmit");function pe(e){let r=_?.find(({value:c})=>c===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(pe,"onCountryChange");function Ce(e){h(e)}o(Ce,"onRegionChange");function _e(e){le(e.target.value)}o(_e,"onHiringBudgetChange");function be(e){let r=d?.find(c=>c.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(be,"onChangeCurrency");let E=f.fields.find(e=>e.name==="region");if(E){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];E.options=e,E.isVisible=e.length>0,E.required=e.length>0,E.onChange=Ce,E.schema=e.length>0?ne().transform(r=>typeof r=="string"?r:"").required("Region is required"):ne()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=be)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=_e),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=pe)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ae(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let c=await M(e,D);try{await N.validate(c,{abortEarly:!1}),r={formErrors:{},yupError:new re([],e)}}catch(S){let B=G(S);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:S}}let g=P?.handleValidation(c),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new re(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(async e=>{let{country:r,region:c,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:S,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=S);let he=await M({country:r,region:c,salary:V,salary_converted:y,salary_conversion:S,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Fe=await M(A,P?.fields||[]),Ve={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Fe,...Ve}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:ue&&ce&&de,onSubmit:ye,resetForm:Ee,currencies:d,meta:{fields:u.current?.fields}}},"useCostCalculator");function ae(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(u=>u===a.name,"is"),then:o(u=>u.required("Required field"),"then"),otherwise:o(u=>u.optional(),"otherwise")}):a.name==="management"?n[a.name]=se({management_fee:Be().transform(u=>isNaN(u)?void 0:u).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return se(s)}o(ae,"buildValidationSchema");function Te(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let u={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,u]},[])}o(Te,"formatBenefits");function Ae(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Te(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...Oe(t,l)}}o(Ae,"mapValueToEmployment");function Oe(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(Oe,"getSalaryFields");function oe(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Ae(n,i,l))}}o(oe,"buildPayload");export{ae as a,oe as b,O as c,ze as d};
2
- //# sourceMappingURL=chunk-AUIHRJIX.js.map
1
+ import{a as Z}from"./chunk-2P2OJKD4.js";import{a as I}from"./chunk-VFRHMNLJ.js";import{a as Q,b as W,c as X,f as Y}from"./chunk-PIGJNWPB.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as G}from"./chunk-KFYWUBRS.js";import{c as ee}from"./chunk-WUSKSXW2.js";import{a as z}from"./chunk-K2SHDZBB.js";import{a as K,g as M}from"./chunk-RZCU2MT3.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Be,object as se}from"yup";import{useCallback as je,useEffect as te,useMemo as we,useRef as Re,useState as j}from"react";import{string as ne,ValidationError as re}from"yup";import{jsx as ie}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},Pe=o(t=>z(I.data.schema,void 0,t),"useStaticSchema");function xe(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(xe,"getSalaryTitle");var ze=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let u=Re({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,le]=j(),{data:_,isLoading:ue}=Q({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=W(),me=k||w?.value,{data:P,isLoading:de}=Y(me,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=X(),{mutateAsync:fe}=K(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=je(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,ge=we(()=>{let{from:e,to:r,shouldSwapOrder:c}=L(),g=xe(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ie(Z,{...y,shouldSwapOrder:c,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>ie(ee,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=Pe({jsfModify:{fields:{...n?.jsfModify?.fields,...ge?.fields}}});te(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),te(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ye(e){return fe(oe(e,s,a))}o(ye,"onSubmit");function pe(e){let r=_?.find(({value:c})=>c===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(pe,"onCountryChange");function Ce(e){h(e)}o(Ce,"onRegionChange");function _e(e){le(e.target.value)}o(_e,"onHiringBudgetChange");function be(e){let r=d?.find(c=>c.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(be,"onChangeCurrency");let E=f.fields.find(e=>e.name==="region");if(E){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];E.options=e,E.isVisible=e.length>0,E.required=e.length>0,E.onChange=Ce,E.schema=e.length>0?ne().transform(r=>typeof r=="string"?r:"").required("Region is required"):ne()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=be)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=_e),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=pe)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ae(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let c=await M(e,D);try{await N.validate(c,{abortEarly:!1}),r={formErrors:{},yupError:new re([],e)}}catch(S){let B=G(S);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:S}}let g=P?.handleValidation(c),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new re(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(async e=>{let{country:r,region:c,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:S,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=S);let he=await M({country:r,region:c,salary:V,salary_converted:y,salary_conversion:S,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Fe=await M(A,P?.fields||[]),Ve={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Fe,...Ve}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:ue&&ce&&de,onSubmit:ye,resetForm:Ee,currencies:d,meta:{fields:u.current?.fields}}},"useCostCalculator");function ae(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(u=>u===a.name,"is"),then:o(u=>u.required("Required field"),"then"),otherwise:o(u=>u.optional(),"otherwise")}):a.name==="management"?n[a.name]=se({management_fee:Be().transform(u=>isNaN(u)?void 0:u).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return se(s)}o(ae,"buildValidationSchema");function Te(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let u={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,u]},[])}o(Te,"formatBenefits");function Ae(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Te(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...Oe(t,l)}}o(Ae,"mapValueToEmployment");function Oe(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(Oe,"getSalaryFields");function oe(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Ae(n,i,l))}}o(oe,"buildPayload");export{ae as a,oe as b,O as c,ze as d};
2
+ //# sourceMappingURL=chunk-AZZUFPQM.js.map
@@ -1,2 +1,2 @@
1
- import{a as d,b as w}from"./chunk-DIZ5Z4MN.js";import{a as g}from"./chunk-RWXZG4KO.js";import{a as E}from"./chunk-OVJTJFYF.js";import{Q as F,e as _,z as P}from"./chunk-TNQKP2XT.js";import{a as h,g as C}from"./chunk-RZCU2MT3.js";import{a as j}from"./chunk-TSPDJUGG.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
2
- //# sourceMappingURL=chunk-L4Q4ZT4L.js.map
1
+ import{a as d,b as w}from"./chunk-DIZ5Z4MN.js";import{a as g}from"./chunk-RWXZG4KO.js";import{a as E}from"./chunk-K2SHDZBB.js";import{Q as F,e as _,z as P}from"./chunk-TNQKP2XT.js";import{a as h,g as C}from"./chunk-RZCU2MT3.js";import{a as j}from"./chunk-TSPDJUGG.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
2
+ //# sourceMappingURL=chunk-CBPV2QLT.js.map
@@ -1,2 +1,2 @@
1
- import{a as p}from"./chunk-IFIJ7OVJ.js";import{a}from"./chunk-3OU6XE7X.js";import{a as m}from"./chunk-N5XWRUYE.js";import{a as e}from"./chunk-76ZDXC2T.js";import{a as r}from"./chunk-2SS3UU6K.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as y}from"react";import{jsx as d}from"react/jsx-runtime";var P=t(({render:n,countryCode:C,options:i,initialValues:s})=>{let o=r({options:i,countryCode:C,initialValues:s}),f=y();return d(e.Provider,{value:{createCompanyBag:o,formId:f},children:n({createCompanyBag:o,components:{CompanyBasicInformationStep:m,AddressDetailsStep:a,SubmitButton:p}})})},"CreateCompanyFlow");export{P as a};
2
- //# sourceMappingURL=chunk-PPJUUGKP.js.map
1
+ import{a}from"./chunk-3OU6XE7X.js";import{a as m}from"./chunk-N5XWRUYE.js";import{a as p}from"./chunk-IFIJ7OVJ.js";import{a as e}from"./chunk-76ZDXC2T.js";import{a as r}from"./chunk-IOVRTUOC.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as y}from"react";import{jsx as d}from"react/jsx-runtime";var P=t(({render:n,countryCode:C,options:i,initialValues:s})=>{let o=r({options:i,countryCode:C,initialValues:s}),f=y();return d(e.Provider,{value:{createCompanyBag:o,formId:f},children:n({createCompanyBag:o,components:{CompanyBasicInformationStep:m,AddressDetailsStep:a,SubmitButton:p}})})},"CreateCompanyFlow");export{P as a};
2
+ //# sourceMappingURL=chunk-CKJF6K4L.js.map
@@ -1,2 +1,2 @@
1
- import{m as J}from"./chunk-EU7WVCHQ.js";import{a as L}from"./chunk-U5T77DSF.js";import{c as B,n as G}from"./chunk-XG6ASTX5.js";import{d as A,e as k,f as M}from"./chunk-RZCU2MT3.js";import{b as H}from"./chunk-H2O4CVKF.js";import{a as n,b as d,c as qe}from"./chunk-P37U34EQ.js";var D=d((En,U)=>{"use strict";function we(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}n(we,"isObject");U.exports=we});var X=d((In,V)=>{"use strict";var Fe=typeof global=="object"&&global&&global.Object===Object&&global;V.exports=Fe});var _=d((qn,z)=>{"use strict";var Pe=X(),ke=typeof self=="object"&&self&&self.Object===Object&&self,Me=Pe||ke||Function("return this")();z.exports=Me});var Q=d((wn,K)=>{"use strict";var Le=_(),De=n(function(){return Le.Date.now()},"now");K.exports=De});var Z=d((Pn,Y)=>{"use strict";var _e=/\s/;function $e(e){for(var t=e.length;t--&&_e.test(e.charAt(t)););return t}n($e,"trimmedEndIndex");Y.exports=$e});var ne=d((Mn,ee)=>{"use strict";var Ne=Z(),We=/^\s+/;function Be(e){return e&&e.slice(0,Ne(e)+1).replace(We,"")}n(Be,"baseTrim");ee.exports=Be});var $=d((Dn,te)=>{"use strict";var Ae=_(),He=Ae.Symbol;te.exports=He});var se=d((_n,ie)=>{"use strict";var re=$(),oe=Object.prototype,Ge=oe.hasOwnProperty,Je=oe.toString,O=re?re.toStringTag:void 0;function Ue(e){var t=Ge.call(e,O),r=e[O];try{e[O]=void 0;var i=!0}catch{}var u=Je.call(e);return i&&(t?e[O]=r:delete e[O]),u}n(Ue,"getRawTag");ie.exports=Ue});var ce=d((Nn,ae)=>{"use strict";var Ve=Object.prototype,Xe=Ve.toString;function ze(e){return Xe.call(e)}n(ze,"objectToString");ae.exports=ze});var le=d((Bn,de)=>{"use strict";var ue=$(),Ke=se(),Qe=ce(),Ye="[object Null]",Ze="[object Undefined]",fe=ue?ue.toStringTag:void 0;function en(e){return e==null?e===void 0?Ze:Ye:fe&&fe in Object(e)?Ke(e):Qe(e)}n(en,"baseGetTag");de.exports=en});var pe=d((Hn,me)=>{"use strict";function nn(e){return e!=null&&typeof e=="object"}n(nn,"isObjectLike");me.exports=nn});var be=d((Jn,ge)=>{"use strict";var tn=le(),rn=pe(),on="[object Symbol]";function sn(e){return typeof e=="symbol"||rn(e)&&tn(e)==on}n(sn,"isSymbol");ge.exports=sn});var Ce=d((Vn,xe)=>{"use strict";var an=ne(),ve=D(),cn=be(),ye=NaN,un=/^[-+]0x[0-9a-f]+$/i,fn=/^0b[01]+$/i,dn=/^0o[0-7]+$/i,ln=parseInt;function mn(e){if(typeof e=="number")return e;if(cn(e))return ye;if(ve(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ve(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=an(e);var r=fn.test(e);return r||dn.test(e)?ln(e.slice(2),r?2:8):un.test(e)?ye:+e}n(mn,"toNumber");xe.exports=mn});var Se=d((zn,Te)=>{"use strict";var pn=D(),N=Q(),he=Ce(),gn="Expected a function",bn=Math.max,vn=Math.min;function yn(e,t,r){var i,u,b,l,s,a,p=0,E=!1,f=!1,x=!0;if(typeof e!="function")throw new TypeError(gn);t=he(t)||0,pn(r)&&(E=!!r.leading,f="maxWait"in r,b=f?bn(he(r.maxWait)||0,t):b,x="trailing"in r?!!r.trailing:x);function C(o){var g=i,y=u;return i=u=void 0,p=o,l=e.apply(y,g),l}n(C,"invokeFunc");function R(o){return p=o,s=setTimeout(m,t),E?C(o):l}n(R,"leadingEdge");function q(o){var g=o-a,y=o-p,c=t-g;return f?vn(c,b-y):c}n(q,"remainingWait");function T(o){var g=o-a,y=o-p;return a===void 0||g>=t||g<0||f&&y>=b}n(T,"shouldInvoke");function m(){var o=N();if(T(o))return S(o);s=setTimeout(m,q(o))}n(m,"timerExpired");function S(o){return s=void 0,x&&i?C(o):(i=u=void 0,l)}n(S,"trailingEdge");function I(){s!==void 0&&clearTimeout(s),p=0,i=a=u=s=void 0}n(I,"cancel");function w(){return s===void 0?l:S(N())}n(w,"flush");function j(){var o=N(),g=T(o);if(i=arguments,u=this,a=o,g){if(s===void 0)return R(a);if(f)return clearTimeout(s),s=setTimeout(m,t),C(a)}return s===void 0&&(s=setTimeout(m,t)),l}return n(j,"debounced"),j.cancel=I,j.flush=w,j}n(yn,"debounce");Te.exports=yn});import{useState as hn,useCallback as Tn,useEffect as Ee,useRef as Sn}from"react";var Oe=qe(Se(),1);import{useCallback as xn,useEffect as Cn,useRef as je}from"react";function W(e,t){let r=je(e);Cn(()=>{r.current=e},[e]);let i=je((0,Oe.default)(u=>{r.current(u)},t)).current;return xn(u=>{i(u)},[i])}n(W,"useDebounce");import{Fragment as On,jsx as h,jsxs as Re}from"react/jsx-runtime";var jn=n(({description:e,showConversion:t,targetCurrency:r,className:i,onClick:u})=>{let{components:b}=H(),l=t?`Hide ${r} conversion`:`Show ${r} conversion`,s=b?.button;if(!s)throw new Error("Button component not found");return Re("span",{className:i,children:[h(G,{as:"span",children:e})," ",h(s,{className:`${i.replace("-description","-button")}`,"data-type":"inline",onClick:u,children:l})]})},"DescriptionWithConversion"),ut=n(({sourceCurrency:e,targetCurrency:t,mainFieldName:r,conversionFieldName:i,conversionProperties:u,classNamePrefix:b,description:l,conversionType:s="spread",...a})=>{let[p,E]=hn(!1),{setValue:f,watch:x}=B(),C=x(r||a.name),R=Sn(!0),q=e&&t&&e!==t,{mutateAsync:T}=J({type:s}),m=`${a.name}_converted`;Ee(()=>{f(m,r||a.name)},[f,r,a.name,m]),Ee(()=>{if(R.current){R.current=!1;return}f(i,"")},[e,i,f]);let S=Tn(async(c,v,F)=>{if(!(!c||isNaN(c)||c<=0))return T({source_currency:v,target_currency:F,amount:c})},[T]),I=W(async c=>{let v=k(c),P=1/((await S(v,t,e))?.data?.data.conversion_data?.exchange_rate??1),Ie=A(Number(v)*P);f(i,M(Ie))},500),w=W(async c=>{let v=k(c),P=(await S(v,t,e))?.data?.data.conversion_data.target_amount;f(r||a.name,M(P))},500),j=n(c=>{f(m,r||a.name),p&&I(c.target.value)},"handleMainFieldChange"),o=n(c=>{f(m,i),w(c.target.value)},"handleConversionFieldChange"),g=n(c=>{c.preventDefault(),E(v=>!v),!p&&C&&I(C)},"toggleConversion"),y=q?h(jn,{targetCurrency:t,description:l,showConversion:p,className:`${b}-description`,onClick:g}):l;return Re(On,{children:[h(L,{...a,name:r||a.name,additionalProps:{currency:e},description:y,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:j}),p&&h(L,{additionalProps:{currency:t},name:i,label:u?.label||"Conversion",description:u?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:o}),h("input",{type:"hidden",name:m,value:x(m)||r||a.name})]})},"CurrencyConversionField");export{ut as a};
2
- //# sourceMappingURL=chunk-IBUAH6HC.js.map
1
+ import{m as J}from"./chunk-TSWZPJNS.js";import{a as L}from"./chunk-U5T77DSF.js";import{c as B,n as G}from"./chunk-XG6ASTX5.js";import{d as A,e as k,f as M}from"./chunk-RZCU2MT3.js";import{b as H}from"./chunk-H2O4CVKF.js";import{a as n,b as d,c as qe}from"./chunk-P37U34EQ.js";var D=d((En,U)=>{"use strict";function we(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}n(we,"isObject");U.exports=we});var X=d((In,V)=>{"use strict";var Fe=typeof global=="object"&&global&&global.Object===Object&&global;V.exports=Fe});var _=d((qn,z)=>{"use strict";var Pe=X(),ke=typeof self=="object"&&self&&self.Object===Object&&self,Me=Pe||ke||Function("return this")();z.exports=Me});var Q=d((wn,K)=>{"use strict";var Le=_(),De=n(function(){return Le.Date.now()},"now");K.exports=De});var Z=d((Pn,Y)=>{"use strict";var _e=/\s/;function $e(e){for(var t=e.length;t--&&_e.test(e.charAt(t)););return t}n($e,"trimmedEndIndex");Y.exports=$e});var ne=d((Mn,ee)=>{"use strict";var Ne=Z(),We=/^\s+/;function Be(e){return e&&e.slice(0,Ne(e)+1).replace(We,"")}n(Be,"baseTrim");ee.exports=Be});var $=d((Dn,te)=>{"use strict";var Ae=_(),He=Ae.Symbol;te.exports=He});var se=d((_n,ie)=>{"use strict";var re=$(),oe=Object.prototype,Ge=oe.hasOwnProperty,Je=oe.toString,O=re?re.toStringTag:void 0;function Ue(e){var t=Ge.call(e,O),r=e[O];try{e[O]=void 0;var i=!0}catch{}var u=Je.call(e);return i&&(t?e[O]=r:delete e[O]),u}n(Ue,"getRawTag");ie.exports=Ue});var ce=d((Nn,ae)=>{"use strict";var Ve=Object.prototype,Xe=Ve.toString;function ze(e){return Xe.call(e)}n(ze,"objectToString");ae.exports=ze});var le=d((Bn,de)=>{"use strict";var ue=$(),Ke=se(),Qe=ce(),Ye="[object Null]",Ze="[object Undefined]",fe=ue?ue.toStringTag:void 0;function en(e){return e==null?e===void 0?Ze:Ye:fe&&fe in Object(e)?Ke(e):Qe(e)}n(en,"baseGetTag");de.exports=en});var pe=d((Hn,me)=>{"use strict";function nn(e){return e!=null&&typeof e=="object"}n(nn,"isObjectLike");me.exports=nn});var be=d((Jn,ge)=>{"use strict";var tn=le(),rn=pe(),on="[object Symbol]";function sn(e){return typeof e=="symbol"||rn(e)&&tn(e)==on}n(sn,"isSymbol");ge.exports=sn});var Ce=d((Vn,xe)=>{"use strict";var an=ne(),ve=D(),cn=be(),ye=NaN,un=/^[-+]0x[0-9a-f]+$/i,fn=/^0b[01]+$/i,dn=/^0o[0-7]+$/i,ln=parseInt;function mn(e){if(typeof e=="number")return e;if(cn(e))return ye;if(ve(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ve(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=an(e);var r=fn.test(e);return r||dn.test(e)?ln(e.slice(2),r?2:8):un.test(e)?ye:+e}n(mn,"toNumber");xe.exports=mn});var Se=d((zn,Te)=>{"use strict";var pn=D(),N=Q(),he=Ce(),gn="Expected a function",bn=Math.max,vn=Math.min;function yn(e,t,r){var i,u,b,l,s,a,p=0,E=!1,f=!1,x=!0;if(typeof e!="function")throw new TypeError(gn);t=he(t)||0,pn(r)&&(E=!!r.leading,f="maxWait"in r,b=f?bn(he(r.maxWait)||0,t):b,x="trailing"in r?!!r.trailing:x);function C(o){var g=i,y=u;return i=u=void 0,p=o,l=e.apply(y,g),l}n(C,"invokeFunc");function R(o){return p=o,s=setTimeout(m,t),E?C(o):l}n(R,"leadingEdge");function q(o){var g=o-a,y=o-p,c=t-g;return f?vn(c,b-y):c}n(q,"remainingWait");function T(o){var g=o-a,y=o-p;return a===void 0||g>=t||g<0||f&&y>=b}n(T,"shouldInvoke");function m(){var o=N();if(T(o))return S(o);s=setTimeout(m,q(o))}n(m,"timerExpired");function S(o){return s=void 0,x&&i?C(o):(i=u=void 0,l)}n(S,"trailingEdge");function I(){s!==void 0&&clearTimeout(s),p=0,i=a=u=s=void 0}n(I,"cancel");function w(){return s===void 0?l:S(N())}n(w,"flush");function j(){var o=N(),g=T(o);if(i=arguments,u=this,a=o,g){if(s===void 0)return R(a);if(f)return clearTimeout(s),s=setTimeout(m,t),C(a)}return s===void 0&&(s=setTimeout(m,t)),l}return n(j,"debounced"),j.cancel=I,j.flush=w,j}n(yn,"debounce");Te.exports=yn});import{useState as hn,useCallback as Tn,useEffect as Ee,useRef as Sn}from"react";var Oe=qe(Se(),1);import{useCallback as xn,useEffect as Cn,useRef as je}from"react";function W(e,t){let r=je(e);Cn(()=>{r.current=e},[e]);let i=je((0,Oe.default)(u=>{r.current(u)},t)).current;return xn(u=>{i(u)},[i])}n(W,"useDebounce");import{Fragment as On,jsx as h,jsxs as Re}from"react/jsx-runtime";var jn=n(({description:e,showConversion:t,targetCurrency:r,className:i,onClick:u})=>{let{components:b}=H(),l=t?`Hide ${r} conversion`:`Show ${r} conversion`,s=b?.button;if(!s)throw new Error("Button component not found");return Re("span",{className:i,children:[h(G,{as:"span",children:e})," ",h(s,{className:`${i.replace("-description","-button")}`,"data-type":"inline",onClick:u,children:l})]})},"DescriptionWithConversion"),ut=n(({sourceCurrency:e,targetCurrency:t,mainFieldName:r,conversionFieldName:i,conversionProperties:u,classNamePrefix:b,description:l,conversionType:s="spread",...a})=>{let[p,E]=hn(!1),{setValue:f,watch:x}=B(),C=x(r||a.name),R=Sn(!0),q=e&&t&&e!==t,{mutateAsync:T}=J({type:s}),m=`${a.name}_converted`;Ee(()=>{f(m,r||a.name)},[f,r,a.name,m]),Ee(()=>{if(R.current){R.current=!1;return}f(i,"")},[e,i,f]);let S=Tn(async(c,v,F)=>{if(!(!c||isNaN(c)||c<=0))return T({source_currency:v,target_currency:F,amount:c})},[T]),I=W(async c=>{let v=k(c),P=1/((await S(v,t,e))?.data?.data.conversion_data?.exchange_rate??1),Ie=A(Number(v)*P);f(i,M(Ie))},500),w=W(async c=>{let v=k(c),P=(await S(v,t,e))?.data?.data.conversion_data.target_amount;f(r||a.name,M(P))},500),j=n(c=>{f(m,r||a.name),p&&I(c.target.value)},"handleMainFieldChange"),o=n(c=>{f(m,i),w(c.target.value)},"handleConversionFieldChange"),g=n(c=>{c.preventDefault(),E(v=>!v),!p&&C&&I(C)},"toggleConversion"),y=q?h(jn,{targetCurrency:t,description:l,showConversion:p,className:`${b}-description`,onClick:g}):l;return Re(On,{children:[h(L,{...a,name:r||a.name,additionalProps:{currency:e},description:y,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:j}),p&&h(L,{additionalProps:{currency:t},name:i,label:u?.label||"Conversion",description:u?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:o}),h("input",{type:"hidden",name:m,value:x(m)||r||a.name})]})},"CurrencyConversionField");export{ut as a};
2
+ //# sourceMappingURL=chunk-E3WR4SVV.js.map
@@ -1,2 +1,2 @@
1
- import{b as i,c as m,d as s,e as f}from"./chunk-UQ3H4S26.js";import{a as n}from"./chunk-TXSUZLOI.js";import{a}from"./chunk-P37U34EQ.js";import{useState as O}from"react";var B=a(({proposedTerminationDate:e,employeeName:y,employmentId:o,employment:r,render:d})=>{let[t,u]=O(!1),l=m({employmentId:o}),p=n(e).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"}),c=i({employmentId:o,options:{enabled:t}}),D=s({employmentId:o,date:e}),P=f({employmentId:o,proposedTerminationDate:e,employment:r});return d({leavePoliciesSummaryQuery:l,timeoffQuery:c||{data:{bookedDays:0,timeoffs:[]}},bookedTimeBeforeAndAfterTerminationQuery:D,formattedProposedTerminationDate:p,employeeName:y,proposedTerminationDate:e,summaryData:P??{data:{entitledDays:"0 days",bookedDays:"0 days",usedDays:"0 days",approvedDaysBeforeTermination:"0 days",approvedDaysAfterTermination:"0 days",remainingDays:"0 days",isUnlimitedPto:!1},isLoading:!1,isError:!1,error:null},employment:r,open:t,onOpenChange:a(()=>{u(T=>!T)},"onOpenChange")})},"PaidTimeOffContainer");export{B as a};
2
- //# sourceMappingURL=chunk-SGQ7FXWO.js.map
1
+ import{b as i,c as m,d as s,e as f}from"./chunk-5X6JMXP6.js";import{a as n}from"./chunk-TXSUZLOI.js";import{a}from"./chunk-P37U34EQ.js";import{useState as O}from"react";var B=a(({proposedTerminationDate:e,employeeName:y,employmentId:o,employment:r,render:d})=>{let[t,u]=O(!1),l=m({employmentId:o}),p=n(e).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"}),c=i({employmentId:o,options:{enabled:t}}),D=s({employmentId:o,date:e}),P=f({employmentId:o,proposedTerminationDate:e,employment:r});return d({leavePoliciesSummaryQuery:l,timeoffQuery:c||{data:{bookedDays:0,timeoffs:[]}},bookedTimeBeforeAndAfterTerminationQuery:D,formattedProposedTerminationDate:p,employeeName:y,proposedTerminationDate:e,summaryData:P??{data:{entitledDays:"0 days",bookedDays:"0 days",usedDays:"0 days",approvedDaysBeforeTermination:"0 days",approvedDaysAfterTermination:"0 days",remainingDays:"0 days",isUnlimitedPto:!1},isLoading:!1,isError:!1,error:null},employment:r,open:t,onOpenChange:a(()=>{u(T=>!T)},"onOpenChange")})},"PaidTimeOffContainer");export{B as a};
2
+ //# sourceMappingURL=chunk-GCQYAEZT.js.map
@@ -0,0 +1,2 @@
1
+ import{a as Qe}from"./chunk-VAIBLWOY.js";import{a as ze}from"./chunk-3UDWOREZ.js";import{a as We}from"./chunk-RWXZG4KO.js";import{a as Ae,b as Be,c as je,f as qe,g as ke,h as Ne,i as Je,j as Te,k as Ie,l as Ke,n as Ue,o as He,p as Ge}from"./chunk-TSWZPJNS.js";import{a as De,b as Pe,c as we,e as Le,f as Re}from"./chunk-TVBZT6FA.js";import{a as w,g as b,h as L,j as Y,t as h}from"./chunk-RZCU2MT3.js";import{a as $e}from"./chunk-TSPDJUGG.js";import{a as s}from"./chunk-P37U34EQ.js";import{useCallback as Nt,useEffect as tt,useMemo as f,useRef as Jt,useState as Z}from"react";import Tt from"lodash.mergewith";import{createContext as Lt,useContext as Rt,useMemo as At,useCallback as Bt,useRef as jt}from"react";import{jsx as qt}from"react/jsx-runtime";var Xe=Lt(void 0);function $t({children:o}){let p=jt({}),m=Bt(a=>{p.current={...p.current,...a}},[]),x=At(()=>({errorContextRef:p,updateContext:m}),[m]);return qt(Xe.Provider,{value:x,children:o})}s($t,"ErrorContextProvider");var Ye=s(()=>{let o=Rt(Xe);if(!o)throw new Error("useErrorContext must be used within ErrorContextProvider");return o},"useErrorContext");import{useEffect as Ze,useMemo as kt}from"react";function et(o){let{updateContext:p,errorContextRef:m}=Ye();return Ze(()=>{o&&(m.current=o)},[]),Ze(()=>()=>{m.current={}},[m]),{...kt(()=>({updateErrorContext:s(a=>{p(a)},"updateErrorContext"),clearErrorContext:s(()=>{m.current={}},"clearErrorContext")}),[]),errorContext:m}}s(et,"useErrorReporting");import{jsx as nt}from"react/jsx-runtime";var It={employment_basic_information:"basic_information",contract_details:"contract_details"},Kt={select_country:null,basic_information:"employment_basic_information",engagement_agreement_details:null,contract_details:"contract_details",benefits:null,review:null},Ut=s(({isLoadingBasicInformationForm:o,isLoadingContractDetailsForm:p,isLoadingEngagementAgreementDetails:m,isLoadingEmploymentEngagementAgreementDetails:x,isLoadingEmployment:a,isLoadingBenefitsOffersSchema:q,isLoadingBenefitOffers:R,isLoadingCompany:c,isLoadingCountries:k,employmentStatus:r,employmentId:H,currentStepName:i,basicInformationFields:N,contractDetailsFields:V})=>{let J=o||p||m||x||a||q||R||c||k,A=r&&Pe.includes(r),G=r&&!we.includes(r),T=!!(H&&A&&i!=="review"),W=J||T,y=!!(T&&!J&&N.length>0&&V.length>0);return{isLoading:W,isNavigatingToReview:y,isEmploymentReadOnly:A,canInvite:G}},"getLoadingStates"),_n=s(({employmentId:o,companyId:p,countryCode:m,type:x,options:a,skipSteps:q,externalId:R,initialValues:c})=>{let{updateErrorContext:k}=et({flow:"onboarding",metadata:{employmentId:o,companyId:p,isUpdating:!!o}}),[r,H]=Z(o),[i,N]=Z(m||null),[V,J]=Z(!1),A=a?.features?.includes("dynamic_steps")??!1,{steps:G,stepsArray:T}=f(()=>De({includeSelectCountry:!q?.includes("select_country"),includeEngagementAgreementDetails:V,useDynamicSteps:A}),[V,q,A]),W=Nt(e=>{k({step:e.name})},[k]),{fieldValues:y,stepState:t,setFieldValues:at,previousStep:rt,nextStep:st,goToStep:$,setStepValues:ee}=$e(G,W),{data:I,isLoading:te}=je(r,{enabled:!!(r&&a?.features?.includes("dynamic_steps"))}),ot=f(()=>({...c,...I,...t.values?.engagement_agreement_details,...y}),[I,c,t.values?.engagement_agreement_details,y]),{data:d,isLoading:ne}=Ge(i,ot,{jsfModify:a?.jsfModify,queryOptions:{enabled:!!(i&&a?.features?.includes("dynamic_steps"))}});tt(()=>{let e=!!(d?.fields&&d.fields.length>0);e!==V&&J(e)},[d?.fields,V]);let K=Jt({select_country:{},basic_information:{},contract_details:{},benefits:{},engagement_agreement_details:{}}),{data:g,isLoading:ae,refetch:it}=We({employmentId:r,queryParams:{exclude_files:!0}});o&&g?.country?.code&&!i&&N(g.country.code);let{data:re,isLoading:se}=Be(r),{data:U,isLoading:oe,refetch:lt}=Ae(p),ct=a?.features?.includes("onboarding_reserves")&&t.currentStep.name==="review"||!1,{data:mt}=He(p,r,ct),{selectCountryForm:B,isLoading:ie}=Ke({jsfModify:a?.jsfModify?.select_country,queryOptions:{enabled:t.currentStep.name==="select_country"}}),le=Ne(a),ce=Je(i,a),me=Ie(a),de=Te(),ue=Ue(),{mutateAsync:dt}=w(le),{mutateAsync:fe}=w(ce),{mutateAsync:ut}=w(me),{mutateAsync:ft}=w(de),{mutateAsync:pt}=w(ue),yt=Kt[t.currentStep.name]||"employment_basic_information",gt=It[yt],_t=g?.[gt]||{},pe=s(({form:e,options:l={},query:u={},jsonSchemaVersion:P})=>{let Q=Object.keys(y).length>0?{...c,...t.values?.[t.currentStep.name],...y}:{...c,..._t};return qe({countryCode:i,form:e,fieldValues:Q,query:u,options:{...l,queryOptions:{enabled:l.queryOptions?.enabled??!0}},jsonSchemaVersion:P})},"useJSONSchema"),St=!!(i&&(t.currentStep.name==="basic_information"||o)),bt=!!(i&&(t.currentStep.name==="contract_details"||o)),{data:_,isLoading:ye}=pe({form:"employment_basic_information",options:{jsfModify:a?.jsfModify?.basic_information,queryOptions:{enabled:St}},jsonSchemaVersion:Re(a)}),M=a?.jsfModify?.contract_details?.fields?.annual_gross_salary,z=M&&typeof M=="object"&&"presentation"in M?M.presentation:void 0,ge=a?.jsfModify?.contract_details?.fields?.equity_compensation,Et=f(()=>({fields:{annual_gross_salary:{...M,presentation:{annual_gross_salary_conversion_properties:{label:z?.annual_gross_salary_conversion_properties?.label,description:z?.annual_gross_salary_conversion_properties?.description},desiredCurrency:U?.desired_currency,Component:s(e=>nt(ze,{desiredCurrency:U?.desired_currency||"",...e}),"Component")}},equity_compensation:{...ge,presentation:{calculateDynamicProperties:s((e,l)=>{let u=e.equity_compensation?.offer_equity_compensation,P=l?.meta?.cost;return{extra:nt(Qe,{offerEquity:u,equityCost:P})}},"calculateDynamicProperties")}}}}),[M,z,U?.desired_currency,ge]),Ct=Le(a,i),{data:S,isLoading:_e}=pe({form:"contract_details",query:{employment_id:r},options:{jsfModify:{...a?.jsfModify?.contract_details,fields:{...a?.jsfModify?.contract_details?.fields,...Et.fields}},queryOptions:{enabled:bt}},jsonSchemaVersion:Ct}),{data:E,isLoading:Se}=ke(r,y,a),be=f(()=>{if(t.currentStep.name==="benefits"){let e={...t.values?.[t.currentStep.name],...y};return Tt({},re,e)}return{}},[t.currentStep.name,re,t.values,y]),n=f(()=>({select_country:B?.fields||[],basic_information:_?.fields||[],engagement_agreement_details:d?.fields||[],contract_details:S?.fields||[],benefits:E?.fields||[],review:[]}),[B?.fields,_?.fields,S?.fields,E?.fields,d?.fields]),Ft={select_country:null,basic_information:_?.meta["x-jsf-fieldsets"],engagement_agreement_details:d?.meta["x-jsf-fieldsets"],contract_details:S?.meta["x-jsf-fieldsets"],benefits:null,review:null},ht={select_country:B?.meta?.["x-jsf-presentation"],basic_information:_?.meta?.["x-jsf-presentation"],engagement_agreement_details:d?.meta?.["x-jsf-presentation"],contract_details:S?.meta?.["x-jsf-presentation"],benefits:E?.meta?.["x-jsf-presentation"],review:null},{country:Ee,basic_information:Ce={},contract_details:Fe={},status:he}=g||{},xe=Ee?.code,Ve=t.currentStep.name,v=f(()=>L(n.select_country,{country:i||xe||""}),[n.select_country,i,xe]),O=f(()=>{let e={...c,...Ce};return L(n.basic_information,e)},[n.basic_information,Ce,c]),j=f(()=>{let e={...c,...I};return L(n.engagement_agreement_details,e)},[n.engagement_agreement_details,c,I]),F=f(()=>{let e={...c,...Fe};return L(n.contract_details,e)},[n.contract_details,Fe,c]),D=f(()=>{let e={...c,...be};return L(n.benefits,e)},[n.benefits,be,c]),xt=f(()=>g?{select_country:v,basic_information:Y(n.basic_information,O),engagement_agreement_details:j,contract_details:g?.contract_details!==null?Y(n.contract_details,F):F,benefits:D}:{select_country:v,basic_information:O,contract_details:F,benefits:D},[v,O,j,F,D,g,n]),{isLoading:Vt,isNavigatingToReview:Me,isEmploymentReadOnly:Mt,canInvite:vt}=f(()=>Ut({isLoadingBasicInformationForm:ye,isLoadingContractDetailsForm:_e,isLoadingEngagementAgreementDetails:ne,isLoadingEmploymentEngagementAgreementDetails:te,isLoadingEmployment:ae,isLoadingBenefitsOffersSchema:Se,isLoadingBenefitOffers:se,isLoadingCompany:oe,isLoadingCountries:ie,employmentId:o,employmentStatus:he,basicInformationFields:n.basic_information,contractDetailsFields:n.contract_details,currentStepName:Ve}),[ye,_e,ne,te,ae,Se,se,oe,ie,o,he,n.basic_information,n.contract_details,Ve]);tt(()=>{Me&&(K.current={select_country:h(v,n.select_country,{skipMoneyConversion:!0}),basic_information:h(O,n.basic_information,{skipMoneyConversion:!0}),engagement_agreement_details:h(j,n.engagement_agreement_details,{skipMoneyConversion:!0}),contract_details:h(F,n.contract_details,{skipMoneyConversion:!0}),benefits:h(D,n.benefits,{skipMoneyConversion:!0})},ee({select_country:v,basic_information:O,contract_details:F,benefits:D,engagement_agreement_details:j,review:{}}),$("review"))},[O,D,F,j,$,Me,v,ee,n.basic_information,n.benefits,n.contract_details,n.select_country,n.engagement_agreement_details]);let ve=s(async e=>B&&t.currentStep.name==="select_country"?e:_&&t.currentStep.name==="basic_information"?await b(e,_?.fields,{isPartialValidation:!1}):d&&t.currentStep.name==="engagement_agreement_details"?await b(e,d?.fields,{isPartialValidation:!1}):S&&t.currentStep.name==="contract_details"?await b(e,S?.fields,{isPartialValidation:!1}):E&&t.currentStep.name==="benefits"?await b(e,E?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function Ot(e){let l=t.currentStep.name,u=await ve(e);switch(l in K.current&&(K.current[l]=h(u,n[l])),lt(),t.currentStep.name){case"select_country":return N(u.country),Promise.resolve({data:{countryCode:u.country}});case"basic_information":{let P=!r&&i,Oe=r&&i&&g?.country&&g?.country.code!==i;if(P||Oe){let Q={basic_information:u,type:x,country_code:i,external_id:R};try{let C=await dt(Q);if(C.error)return C;if(C.data){let X=C.data?.data?.employment?.id;return X&&(H(X),await pt({employmentId:X,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1})),C}}catch(C){throw console.error("Error creating onboarding:",C),C}}else if(r)return fe({employmentId:r,basic_information:u,pricing_plan_details:{frequency:"monthly"},external_id:R});return}case"engagement_agreement_details":return ft({employmentId:r,engagement_agreement_details:u});case"contract_details":return fe({employmentId:r,external_id:R,...{contract_details:u,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return ut({employmentId:r,...u})}}s(Ot,"onSubmit");function Dt(){rt()}s(Dt,"back");function Pt(){st()}s(Pt,"next");function wt(e){$(e)}return s(wt,"goTo"),{employmentId:r,creditRiskStatus:U?.default_legal_entity_credit_risk_status,onboardingReservesStatus:mt,fieldValues:y,stepState:t,fields:n[t.currentStep.name],isLoading:Vt,isSubmitting:le.isPending||ce.isPending||me.isPending||de.isPending||ue.isPending,initialValues:xt,handleValidation:s(async e=>{if(t.currentStep.name==="select_country")return B.handleValidation(e);if(t.currentStep.name==="benefits"&&E){let l=await b(e,E?.fields,{isPartialValidation:!1});return E?.handleValidation(l)}if(_&&t.currentStep.name==="basic_information"){let l=await b(e,_?.fields,{isPartialValidation:!1});return _?.handleValidation(l)}if(d&&t.currentStep.name==="engagement_agreement_details"){let l=await b(e,d?.fields,{isPartialValidation:!1});return d?.handleValidation(l)}if(S&&t.currentStep.name==="contract_details"){let l=await b(e,S?.fields,{isPartialValidation:!1});return S?.handleValidation(l)}return null},"handleValidation"),checkFieldUpdates:at,parseFormValues:ve,onSubmit:Ot,back:Dt,next:Pt,goTo:wt,meta:{fields:K.current,fieldsets:Ft[t.currentStep.name],presentation:ht[t.currentStep.name]},refetchEmployment:it,employment:g,isEmploymentReadOnly:Mt,canInvite:vt,steps:T,selectedCountry:i?{code:i,name:Ee?.name}:null}},"useOnboarding");export{Xe as a,$t as b,_n as c};
2
+ //# sourceMappingURL=chunk-HUAPBLSQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/hooks.tsx","../src/components/error-handling/ErrorContext.tsx","../src/components/error-handling/useErrorReporting.ts"],"sourcesContent":["import { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n Employment,\n EmploymentCreateParams,\n EmploymentFullParams,\n} from '@/src/client';\nimport { JSFFields, NestedMeta } from '@/src/types/remoteFlows';\nimport { useStepState, Step } from '@/src/flows/useStepState';\nimport {\n disabledInviteButtonEmploymentStatus,\n getContractDetailsSchemaVersion,\n getBasicInformationSchemaVersion,\n reviewStepAllowedEmploymentStatus,\n buildSteps,\n StepKeys,\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 { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport mergeWith from 'lodash.mergewith';\nimport {\n useBenefitOffers,\n useBenefitOffersSchema,\n useCompany,\n useCountriesSchemaField,\n useCreateEmployment,\n useEmploymentEngagementAgreementDetails,\n useEmploymentOnboardingReservesStatus,\n useEngagementAgreementDetailsSchema,\n useJSONSchemaForm,\n useUpdateBenefitsOffers,\n useUpdateEmployment,\n useUpdateEmploymentEngagementAgreementDetails,\n useUpsertContractEligibility,\n} from '@/src/flows/Onboarding/api';\nimport { JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { AnnualGrossSalary } from '@/src/flows/Onboarding/components/AnnualGrossSalary';\nimport { $TSFixMe, JSFField, JSFFieldset } from '@/src/types/remoteFlows';\nimport { EquityPriceDetails } from '@/src/flows/Onboarding/components/EquityPriceDetails';\nimport { useErrorReporting } from '@/src/components/error-handling/useErrorReporting';\nimport { useEmploymentQuery } from '@/src/common/api/employment';\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<StepKeys, JSONSchemaFormType | null> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n engagement_agreement_details: null,\n contract_details: 'contract_details',\n benefits: null,\n review: null,\n};\n\nconst getLoadingStates = ({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEngagementAgreementDetails,\n isLoadingEmploymentEngagementAgreementDetails,\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 isLoadingEngagementAgreementDetails: boolean;\n isLoadingEmploymentEngagementAgreementDetails: 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: JSFFields;\n contractDetailsFields: JSFFields;\n}) => {\n const initialLoading =\n isLoadingBasicInformationForm ||\n isLoadingContractDetailsForm ||\n isLoadingEngagementAgreementDetails ||\n isLoadingEmploymentEngagementAgreementDetails ||\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 { updateErrorContext } = useErrorReporting({\n flow: 'onboarding',\n metadata: {\n employmentId,\n companyId,\n isUpdating: Boolean(employmentId),\n },\n });\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 includeEngagementAgreementDetails,\n setIncludeEngagementAgreementDetails,\n ] = useState<boolean>(false);\n\n const useDynamicSteps = options?.features?.includes('dynamic_steps') ?? false;\n\n const { steps, stepsArray } = useMemo(\n () =>\n buildSteps({\n includeSelectCountry: !skipSteps?.includes('select_country'),\n includeEngagementAgreementDetails,\n useDynamicSteps,\n }),\n [includeEngagementAgreementDetails, skipSteps, useDynamicSteps],\n );\n\n const onStepChange = useCallback(\n (step: Step<StepKeys>) => {\n updateErrorContext({\n step: step.name,\n });\n },\n [updateErrorContext],\n );\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(steps, onStepChange);\n\n const {\n data: employmentEngagementAgreementDetails,\n isLoading: isLoadingEmploymentEngagementAgreementDetails,\n } = useEmploymentEngagementAgreementDetails(internalEmploymentId, {\n enabled: Boolean(\n !!internalEmploymentId && options?.features?.includes('dynamic_steps'),\n ),\n });\n\n const engagementAgreementDetailsFieldValues = useMemo(() => {\n return {\n ...onboardingInitialValues,\n ...employmentEngagementAgreementDetails,\n ...stepState.values?.engagement_agreement_details,\n ...fieldValues,\n };\n }, [\n employmentEngagementAgreementDetails,\n onboardingInitialValues,\n stepState.values?.engagement_agreement_details,\n fieldValues,\n ]);\n\n const {\n data: engagementAgreementDetailsSchema,\n isLoading: isLoadingEngagementAgreementDetails,\n } = useEngagementAgreementDetailsSchema(\n internalCountryCode as string,\n engagementAgreementDetailsFieldValues,\n {\n jsfModify: options?.jsfModify,\n queryOptions: {\n enabled: Boolean(\n !!internalCountryCode && options?.features?.includes('dynamic_steps'),\n ),\n },\n },\n );\n\n // logic to include the engagement agreement details step based on the schema fields\n useEffect(() => {\n const hasFields = Boolean(\n engagementAgreementDetailsSchema?.fields &&\n engagementAgreementDetailsSchema.fields.length > 0,\n );\n if (hasFields !== includeEngagementAgreementDetails) {\n setIncludeEngagementAgreementDetails(hasFields);\n }\n }, [\n engagementAgreementDetailsSchema?.fields,\n includeEngagementAgreementDetails,\n ]);\n\n const fieldsMetaRef = useRef<{\n select_country: NestedMeta;\n basic_information: NestedMeta;\n contract_details: NestedMeta;\n benefits: NestedMeta;\n engagement_agreement_details: NestedMeta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n benefits: {},\n engagement_agreement_details: {},\n });\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmploymentQuery({\n employmentId: internalEmploymentId as string,\n queryParams: { exclude_files: true },\n });\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\n const {\n data: company,\n isLoading: isLoadingCompany,\n refetch: refetchCompany,\n } = useCompany(companyId);\n\n const isOnboardingReservesEnabled =\n (options?.features?.includes('onboarding_reserves') &&\n stepState.currentStep.name === 'review') ||\n false;\n\n const { data: onboardingReservesStatus } =\n useEmploymentOnboardingReservesStatus(\n companyId,\n internalEmploymentId,\n isOnboardingReservesEnabled,\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(\n internalCountryCode as string,\n options,\n );\n const updateBenefitsOffersMutation = useUpdateBenefitsOffers(options);\n const updateEngagementAgreementMutation =\n useUpdateEmploymentEngagementAgreementDetails();\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 // TODO: refactor all uses in onboarding together to avoid having mixed behaviour\n const { mutateAsync: updateEngagementAgreementMutationAsync } =\n mutationToPromise(updateEngagementAgreementMutation);\n const { mutateAsync: updateContractEligibilityMutationAsync } =\n mutationToPromise(updateContractEligibilityMutation);\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 jsonSchemaVersion,\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n };\n query?: Record<string, string>;\n jsonSchemaVersion?: number | 'latest';\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 },\n jsonSchemaVersion,\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'employment_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n jsonSchemaVersion: getBasicInformationSchemaVersion(options),\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 contractDetailsCustomFields = 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, internalCountryCode);\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 ...contractDetailsCustomFields.fields,\n },\n },\n queryOptions: {\n enabled: isContractDetailsEnabled,\n },\n },\n jsonSchemaVersion: effectiveContractDetailsJsonSchemaVersion,\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 StepKeys], // 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<StepKeys, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n engagement_agreement_details:\n engagementAgreementDetailsSchema?.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 engagementAgreementDetailsSchema?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n StepKeys,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n engagement_agreement_details:\n engagementAgreementDetailsSchema?.meta['x-jsf-fieldsets'],\n contract_details: contractDetailsForm?.meta['x-jsf-fieldsets'],\n benefits: null,\n review: null,\n };\n\n const stepPresentation: Record<\n StepKeys,\n Record<string, unknown> | null | undefined\n > = {\n select_country: selectCountryForm?.meta?.['x-jsf-presentation'],\n basic_information: basicInformationForm?.meta?.['x-jsf-presentation'],\n engagement_agreement_details:\n engagementAgreementDetailsSchema?.meta?.['x-jsf-presentation'],\n contract_details: contractDetailsForm?.meta?.['x-jsf-presentation'],\n benefits: benefitOffersSchema?.meta?.['x-jsf-presentation'],\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 engagementAgreementDetailsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentEngagementAgreementDetails,\n };\n\n return getInitialValues(\n stepFields.engagement_agreement_details,\n initialValues,\n );\n }, [\n stepFields.engagement_agreement_details,\n onboardingInitialValues,\n employmentEngagementAgreementDetails,\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 engagement_agreement_details: engagementAgreementDetailsInitialValues,\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 engagementAgreementDetailsInitialValues,\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 isLoadingEngagementAgreementDetails,\n isLoadingEmploymentEngagementAgreementDetails,\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 isLoadingEngagementAgreementDetails,\n isLoadingEmploymentEngagementAgreementDetails,\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 { skipMoneyConversion: true },\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n { skipMoneyConversion: true },\n ),\n engagement_agreement_details: prettifyFormValues(\n engagementAgreementDetailsInitialValues,\n stepFields.engagement_agreement_details,\n { skipMoneyConversion: true },\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n { skipMoneyConversion: true },\n ),\n benefits: prettifyFormValues(\n benefitsInitialValues,\n stepFields.benefits,\n { skipMoneyConversion: true },\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n engagement_agreement_details: engagementAgreementDetailsInitialValues,\n review: {},\n });\n\n goToStep('review');\n }\n }, [\n basicInformationInitialValues,\n benefitsInitialValues,\n contractDetailsInitialValues,\n engagementAgreementDetailsInitialValues,\n goToStep,\n isNavigatingToReview,\n selectCountryInitialValues,\n setStepValues,\n stepFields.basic_information,\n stepFields.benefits,\n stepFields.contract_details,\n stepFields.select_country,\n stepFields.engagement_agreement_details,\n ]);\n\n const parseFormValues = async (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 await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n engagementAgreementDetailsSchema &&\n stepState.currentStep.name === 'engagement_agreement_details'\n ) {\n return await parseJSFToValidate(\n values,\n engagementAgreementDetailsSchema?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(values, contractDetailsForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (benefitOffersSchema && stepState.currentStep.name === 'benefits') {\n return await parseJSFToValidate(values, benefitOffersSchema?.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 const parsedValues = await parseFormValues(values);\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(parsedValues, stepFields[currentStepName]);\n }\n\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\n if (response.error) {\n return response;\n }\n\n if (response.data) {\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n if (employmentId) {\n setInternalEmploymentId(employmentId);\n await updateContractEligibilityMutationAsync({\n employmentId: employmentId,\n eligible_to_work_in_residing_country: 'citizen',\n employer_or_work_restrictions: false,\n });\n }\n\n return response;\n }\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 'engagement_agreement_details': {\n return updateEngagementAgreementMutationAsync({\n employmentId: internalEmploymentId as string,\n engagement_agreement_details: parsedValues,\n });\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 ...parsedValues,\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: StepKeys) {\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 * Onboarding reserves status for the employment\n * Returns 'deposit_required' if a deposit is required based on onboarding reserves policies\n */\n onboardingReservesStatus: onboardingReservesStatus,\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 updateEngagementAgreementMutation.isPending ||\n updateContractEligibilityMutation.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: async (\n values: FieldValues,\n ): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n if (stepState.currentStep.name === 'benefits' && benefitOffersSchema) {\n const parsedValues = await 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 = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n engagementAgreementDetailsSchema &&\n stepState.currentStep.name === 'engagement_agreement_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n engagementAgreementDetailsSchema?.fields,\n { isPartialValidation: false },\n );\n return engagementAgreementDetailsSchema?.handleValidation(parsedValues);\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await 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 presentation: stepPresentation[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 * Steps array for dynamic step navigation\n * When 'dynamic_steps' feature is enabled:\n * - Returns all steps including hidden ones with their original indices\n * - Consumers must filter by `visible` property\n * When disabled (default):\n * - Returns only visible steps with sequential indices\n * - Maintains backwards compatibility with existing implementations\n * @returns {Array<{name: string, visible: boolean, index: number, label: string}>}\n */\n steps: stepsArray,\n /**\n * Selected country for the onboarding\n * @returns {name: string, code: string} | null\n */\n selectedCountry: internalCountryCode\n ? {\n code: internalCountryCode,\n name: country?.name,\n }\n : null,\n };\n};\n","import {\n createContext,\n useContext,\n ReactNode,\n useMemo,\n useCallback,\n useRef,\n RefObject,\n} from 'react';\nimport type { ErrorContextData } from './types';\n\nexport type ErrorContextValue = {\n errorContextRef: RefObject<ErrorContextData>;\n updateContext: (updates: Partial<ErrorContextData>) => void;\n};\n\nexport const ErrorContext = createContext<ErrorContextValue | undefined>(\n undefined,\n);\n\nexport function ErrorContextProvider({ children }: { children: ReactNode }) {\n const errorContextRef = useRef<ErrorContextData>({});\n\n const updateContext = useCallback((updates: Partial<ErrorContextData>) => {\n errorContextRef.current = { ...errorContextRef.current, ...updates };\n }, []);\n\n // Memoize the value object to prevent unnecessary re-renders\n // Note: setContext is stable from useState and doesn't need to be in deps\n const value = useMemo(\n () => ({\n errorContextRef,\n updateContext,\n }),\n [updateContext],\n );\n\n return (\n <ErrorContext.Provider value={value}>{children}</ErrorContext.Provider>\n );\n}\n\nexport const useErrorContext = () => {\n const ctx = useContext(ErrorContext);\n if (!ctx) {\n throw new Error('useErrorContext must be used within ErrorContextProvider');\n }\n return ctx;\n};\n","import { useErrorContext } from '@/src/components/error-handling/ErrorContext';\nimport { ErrorContextData } from '@/src/components/error-handling/types';\nimport { useEffect, useMemo } from 'react';\n\nexport function useErrorReporting(initialContext: ErrorContextData) {\n const { updateContext, errorContextRef } = useErrorContext();\n\n // Set initial context on mount\n useEffect(() => {\n if (initialContext) {\n errorContextRef.current = initialContext;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Clear context on unmount\n useEffect(() => {\n return () => {\n errorContextRef.current = {};\n };\n }, [errorContextRef]);\n\n // Note: setContext and updateContext are stable, don't need to be in deps\n const handlers = useMemo(\n () => ({\n updateErrorContext: (updates: Partial<ErrorContextData>) => {\n updateContext(updates);\n },\n\n clearErrorContext: () => {\n errorContextRef.current = {};\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n return {\n ...handlers,\n /**\n * @internal For unit testing only - we access the errorContext in the error boundary directly\n * Use updateErrorContext() and clearErrorContext() handlers instead.\n */\n errorContext: errorContextRef,\n };\n}\n"],"mappings":"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","names":["useCallback","useEffect","useMemo","useRef","useState","mergeWith","createContext","useContext","useMemo","useCallback","useRef","jsx","ErrorContext","createContext","ErrorContextProvider","children","errorContextRef","useRef","updateContext","useCallback","updates","value","useMemo","__name","useErrorContext","ctx","useContext","useEffect","useMemo","useErrorReporting","initialContext","updateContext","errorContextRef","useErrorContext","useEffect","useMemo","__name","updates","jsx","jsonSchemaToEmployment","stepToFormSchemaMap","getLoadingStates","__name","isLoadingBasicInformationForm","isLoadingContractDetailsForm","isLoadingEngagementAgreementDetails","isLoadingEmploymentEngagementAgreementDetails","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","updateErrorContext","useErrorReporting","internalEmploymentId","setInternalEmploymentId","useState","internalCountryCode","setInternalCountryCode","includeEngagementAgreementDetails","setIncludeEngagementAgreementDetails","useDynamicSteps","steps","stepsArray","useMemo","buildSteps","onStepChange","useCallback","step","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employmentEngagementAgreementDetails","useEmploymentEngagementAgreementDetails","engagementAgreementDetailsFieldValues","engagementAgreementDetailsSchema","useEngagementAgreementDetailsSchema","useEffect","hasFields","fieldsMetaRef","useRef","employment","refetchEmployment","useEmploymentQuery","benefitOffers","useBenefitOffers","company","refetchCompany","useCompany","isOnboardingReservesEnabled","onboardingReservesStatus","useEmploymentOnboardingReservesStatus","selectCountryForm","useCountriesSchemaField","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","updateBenefitsOffersMutation","useUpdateBenefitsOffers","updateEngagementAgreementMutation","useUpdateEmploymentEngagementAgreementDetails","updateContractEligibilityMutation","useUpsertContractEligibility","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","updateEngagementAgreementMutationAsync","updateContractEligibilityMutationAsync","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","jsonSchemaVersion","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractDetailsEnabled","basicInformationForm","getBasicInformationSchemaVersion","annualGrossSalaryField","annualSalaryFieldPresentation","equityCompensationField","contractDetailsCustomFields","props","AnnualGrossSalary","values","field","offerEquity","equityCost","EquityPriceDetails","effectiveContractDetailsJsonSchemaVersion","getContractDetailsSchemaVersion","contractDetailsForm","benefitOffersSchema","useBenefitOffersSchema","initialValuesBenefitOffers","benefitsFormValues","mergeWith","stepFields","stepFieldsWithFlatFieldsets","stepPresentation","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","engagementAgreementDetailsInitialValues","contractDetailsInitialValues","benefitsInitialValues","enableAckFields","prettifyFormValues","parseFormValues","parseJSFToValidate","onSubmit","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","back","next","goTo"]}