@remoteoss/remote-flows 1.2.2 → 1.3.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.
- package/README.md +4 -80
- package/dist/{chunk-7RREQLI5.js → chunk-2FQ2KNP4.js} +2 -2
- package/dist/chunk-2Y3SXQ5B.js +2 -0
- package/dist/chunk-2Y3SXQ5B.js.map +1 -0
- package/dist/{chunk-KCXAXVC5.js → chunk-35RMJMSH.js} +2 -2
- package/dist/{chunk-OUI554QS.js → chunk-3CFU6LKQ.js} +2 -2
- package/dist/{chunk-2TILNBMK.js → chunk-3F77NXWU.js} +2 -2
- package/dist/{chunk-KY2JSZI3.js → chunk-3Z6AFLXW.js} +2 -2
- package/dist/{chunk-RNM46ZUE.js → chunk-44IOQYR2.js} +2 -2
- package/dist/chunk-5C3NU7R3.js +2 -0
- package/dist/chunk-5C3NU7R3.js.map +1 -0
- package/dist/{chunk-UTWP5CJZ.js → chunk-5DKNCKV7.js} +2 -2
- package/dist/{chunk-UTWP5CJZ.js.map → chunk-5DKNCKV7.js.map} +1 -1
- package/dist/{chunk-23OYALRY.js → chunk-5LSHRCAR.js} +2 -2
- package/dist/{chunk-GBZXVNGQ.js → chunk-6S6H4NAQ.js} +2 -2
- package/dist/{chunk-4STFNBEP.js → chunk-7COHIUGW.js} +2 -2
- package/dist/{chunk-5JLTIH7G.js → chunk-A3GZSC5Z.js} +2 -2
- package/dist/{chunk-3ALAJXRV.js → chunk-A65WMO6K.js} +2 -2
- package/dist/{chunk-2SO4LW7V.js → chunk-ARTSDUSS.js} +2 -2
- package/dist/chunk-ARTSDUSS.js.map +1 -0
- package/dist/{chunk-LJUHIEEZ.js → chunk-BL7OYWNX.js} +2 -2
- package/dist/{chunk-6SRDRMBU.js → chunk-C4DLDK36.js} +2 -2
- package/dist/{chunk-CDCKGIF5.js → chunk-DV6PCBAX.js} +2 -2
- package/dist/{chunk-5S66VYFD.js → chunk-EGRGQWIY.js} +2 -2
- package/dist/chunk-EGRGQWIY.js.map +1 -0
- package/dist/{chunk-CULOWG5X.js → chunk-EQOU2VPX.js} +2 -2
- package/dist/{chunk-MNSIBSAM.js → chunk-ETYRNQJJ.js} +2 -2
- package/dist/chunk-EYQ4PYUT.js +2 -0
- package/dist/chunk-EYQ4PYUT.js.map +1 -0
- package/dist/{chunk-OAPK6TR7.js → chunk-GCTHZSIN.js} +2 -2
- package/dist/{chunk-IOZFJ65G.js → chunk-GE5DH3UF.js} +2 -2
- package/dist/{chunk-XGVSEXYA.js → chunk-GHJBEQIR.js} +2 -2
- package/dist/{chunk-XQL5I2GC.js → chunk-GP6PRZVX.js} +2 -2
- package/dist/{chunk-A3K4Q2U6.js → chunk-HDNBZ6CB.js} +2 -2
- package/dist/{chunk-O37C4LZF.js → chunk-HZVYZQ3Z.js} +2 -2
- package/dist/{chunk-RVIGZOGF.js → chunk-IBHNWMMB.js} +2 -2
- package/dist/{chunk-FUMA5UUB.js → chunk-KKGRYDZA.js} +2 -2
- package/dist/{chunk-BAWJZ6MA.js → chunk-LG2LVO4C.js} +2 -2
- package/dist/{chunk-BEWGN2JK.js → chunk-LJVV6MMB.js} +2 -2
- package/dist/{chunk-E5PHO3SS.js → chunk-LKMPZJIW.js} +2 -2
- package/dist/chunk-LWGSXQKI.js +1 -0
- package/dist/chunk-LWGSXQKI.js.map +1 -0
- package/dist/{chunk-RTKKWC4M.js → chunk-MEZ7LYUK.js} +2 -2
- package/dist/{chunk-NS4FRCEH.js → chunk-N6BBMT7W.js} +2 -2
- package/dist/{chunk-QJ5MCAIN.js → chunk-NABPCULM.js} +2 -2
- package/dist/{chunk-3TZG2IN7.js → chunk-NDQ6UQFG.js} +2 -2
- package/dist/{chunk-QYWA5XM4.js → chunk-OFI5KLQ4.js} +2 -2
- package/dist/chunk-OKM7DRCF.js +2 -0
- package/dist/{chunk-FKLQBAJ5.js → chunk-OP72BS23.js} +2 -2
- package/dist/{chunk-ZPN5N6BA.js → chunk-OXL3QGHT.js} +2 -2
- package/dist/{chunk-HAV7FPRM.js → chunk-PZNXAOZH.js} +2 -2
- package/dist/{chunk-I4XJ764Y.js → chunk-QIVDIOJG.js} +2 -2
- package/dist/{chunk-JA7UP6GN.js → chunk-SXR333SU.js} +2 -2
- package/dist/{chunk-C74N2AWG.js → chunk-UA6MNQLD.js} +2 -2
- package/dist/{chunk-S2FD3J22.js → chunk-VBO75DXV.js} +2 -2
- package/dist/{chunk-5FYGD7NK.js → chunk-VXA6RPA5.js} +2 -2
- package/dist/{chunk-NFUP6BFU.js → chunk-W3YE53JN.js} +5 -5
- package/dist/chunk-W3YE53JN.js.map +1 -0
- package/dist/chunk-WCEHP5N7.js +2 -0
- package/dist/{chunk-E25DZ75Z.js.map → chunk-WCEHP5N7.js.map} +1 -1
- package/dist/{chunk-46FT5RHQ.js → chunk-Z2WV73EX.js} +2 -2
- package/dist/{chunk-BHYFPY64.js → chunk-Z6TCBVRG.js} +2 -2
- package/dist/{chunk-65HLULDL.js → chunk-ZYRGEEPU.js} +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +8 -8
- package/dist/flows/ContractorOnboarding/utils.d.ts +19 -1
- package/dist/flows/ContractorOnboarding/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -4
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/api.d.ts +5 -5
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +5 -5
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +5 -5
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +5 -5
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +5 -5
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/types.d.ts +2 -2
- package/dist/flows/utils.d.ts +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{mutations-CPqUOEmz.d.ts → mutations-C051uRcC.d.ts} +1 -1
- package/dist/{remoteFlows-CLgJcdkS.d.ts → remoteFlows-B9Nl1qjN.d.ts} +13 -5
- package/dist/styles.css +3 -0
- package/dist/styles.css.map +1 -0
- package/dist/styles.d.ts +2 -0
- package/dist/styles.js +2 -0
- package/dist/styles.js.map +1 -0
- package/dist/{types-B_ZvICFS.d.ts → types-Ci-EdBDb.d.ts} +2 -2
- package/dist/{types-BGV7PQbp.d.ts → types-DqaKYRUE.d.ts} +1 -1
- package/dist/{types-epJRqrJU.d.ts → types-Dx-2ocvG.d.ts} +5 -5
- package/dist/types-ZWIpiFgj.d.ts +4 -0
- package/package.json +13 -2
- package/dist/chunk-2SO4LW7V.js.map +0 -1
- package/dist/chunk-5S66VYFD.js.map +0 -1
- package/dist/chunk-DRGQQXWZ.js +0 -2
- package/dist/chunk-DRGQQXWZ.js.map +0 -1
- package/dist/chunk-E25DZ75Z.js +0 -2
- package/dist/chunk-NFUP6BFU.js.map +0 -1
- package/dist/chunk-XOA7GG4P.js +0 -2
- package/dist/chunk-ZOTFS35J.js +0 -2
- package/dist/chunk-ZOTFS35J.js.map +0 -1
- package/dist/chunk-ZP2BE7U6.js +0 -2
- package/dist/chunk-ZP2BE7U6.js.map +0 -1
- package/dist/types-Zg1n_9wh.d.ts +0 -3
- /package/dist/{chunk-7RREQLI5.js.map → chunk-2FQ2KNP4.js.map} +0 -0
- /package/dist/{chunk-KCXAXVC5.js.map → chunk-35RMJMSH.js.map} +0 -0
- /package/dist/{chunk-OUI554QS.js.map → chunk-3CFU6LKQ.js.map} +0 -0
- /package/dist/{chunk-2TILNBMK.js.map → chunk-3F77NXWU.js.map} +0 -0
- /package/dist/{chunk-KY2JSZI3.js.map → chunk-3Z6AFLXW.js.map} +0 -0
- /package/dist/{chunk-RNM46ZUE.js.map → chunk-44IOQYR2.js.map} +0 -0
- /package/dist/{chunk-23OYALRY.js.map → chunk-5LSHRCAR.js.map} +0 -0
- /package/dist/{chunk-GBZXVNGQ.js.map → chunk-6S6H4NAQ.js.map} +0 -0
- /package/dist/{chunk-4STFNBEP.js.map → chunk-7COHIUGW.js.map} +0 -0
- /package/dist/{chunk-5JLTIH7G.js.map → chunk-A3GZSC5Z.js.map} +0 -0
- /package/dist/{chunk-3ALAJXRV.js.map → chunk-A65WMO6K.js.map} +0 -0
- /package/dist/{chunk-LJUHIEEZ.js.map → chunk-BL7OYWNX.js.map} +0 -0
- /package/dist/{chunk-6SRDRMBU.js.map → chunk-C4DLDK36.js.map} +0 -0
- /package/dist/{chunk-CDCKGIF5.js.map → chunk-DV6PCBAX.js.map} +0 -0
- /package/dist/{chunk-CULOWG5X.js.map → chunk-EQOU2VPX.js.map} +0 -0
- /package/dist/{chunk-MNSIBSAM.js.map → chunk-ETYRNQJJ.js.map} +0 -0
- /package/dist/{chunk-OAPK6TR7.js.map → chunk-GCTHZSIN.js.map} +0 -0
- /package/dist/{chunk-IOZFJ65G.js.map → chunk-GE5DH3UF.js.map} +0 -0
- /package/dist/{chunk-XGVSEXYA.js.map → chunk-GHJBEQIR.js.map} +0 -0
- /package/dist/{chunk-XQL5I2GC.js.map → chunk-GP6PRZVX.js.map} +0 -0
- /package/dist/{chunk-A3K4Q2U6.js.map → chunk-HDNBZ6CB.js.map} +0 -0
- /package/dist/{chunk-O37C4LZF.js.map → chunk-HZVYZQ3Z.js.map} +0 -0
- /package/dist/{chunk-RVIGZOGF.js.map → chunk-IBHNWMMB.js.map} +0 -0
- /package/dist/{chunk-FUMA5UUB.js.map → chunk-KKGRYDZA.js.map} +0 -0
- /package/dist/{chunk-BAWJZ6MA.js.map → chunk-LG2LVO4C.js.map} +0 -0
- /package/dist/{chunk-BEWGN2JK.js.map → chunk-LJVV6MMB.js.map} +0 -0
- /package/dist/{chunk-E5PHO3SS.js.map → chunk-LKMPZJIW.js.map} +0 -0
- /package/dist/{chunk-RTKKWC4M.js.map → chunk-MEZ7LYUK.js.map} +0 -0
- /package/dist/{chunk-NS4FRCEH.js.map → chunk-N6BBMT7W.js.map} +0 -0
- /package/dist/{chunk-QJ5MCAIN.js.map → chunk-NABPCULM.js.map} +0 -0
- /package/dist/{chunk-3TZG2IN7.js.map → chunk-NDQ6UQFG.js.map} +0 -0
- /package/dist/{chunk-QYWA5XM4.js.map → chunk-OFI5KLQ4.js.map} +0 -0
- /package/dist/{chunk-XOA7GG4P.js.map → chunk-OKM7DRCF.js.map} +0 -0
- /package/dist/{chunk-FKLQBAJ5.js.map → chunk-OP72BS23.js.map} +0 -0
- /package/dist/{chunk-ZPN5N6BA.js.map → chunk-OXL3QGHT.js.map} +0 -0
- /package/dist/{chunk-HAV7FPRM.js.map → chunk-PZNXAOZH.js.map} +0 -0
- /package/dist/{chunk-I4XJ764Y.js.map → chunk-QIVDIOJG.js.map} +0 -0
- /package/dist/{chunk-JA7UP6GN.js.map → chunk-SXR333SU.js.map} +0 -0
- /package/dist/{chunk-C74N2AWG.js.map → chunk-UA6MNQLD.js.map} +0 -0
- /package/dist/{chunk-S2FD3J22.js.map → chunk-VBO75DXV.js.map} +0 -0
- /package/dist/{chunk-5FYGD7NK.js.map → chunk-VXA6RPA5.js.map} +0 -0
- /package/dist/{chunk-46FT5RHQ.js.map → chunk-Z2WV73EX.js.map} +0 -0
- /package/dist/{chunk-BHYFPY64.js.map → chunk-Z6TCBVRG.js.map} +0 -0
- /package/dist/{chunk-65HLULDL.js.map → chunk-ZYRGEEPU.js.map} +0 -0
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ npm install @remoteoss/remote-flows
|
|
|
34
34
|
|
|
35
35
|
```tsx
|
|
36
36
|
import { RemoteFlows, CostCalculator } from '@remoteoss/remote-flows';
|
|
37
|
-
import '@remoteoss/remote-flows/
|
|
37
|
+
import '@remoteoss/remote-flows/styles.css';
|
|
38
38
|
|
|
39
39
|
function App() {
|
|
40
40
|
const fetchToken = async () => {
|
|
@@ -100,85 +100,9 @@ The `errorBoundary` prop controls how the SDK handles runtime errors to prevent
|
|
|
100
100
|
|
|
101
101
|
### Custom Field Components
|
|
102
102
|
|
|
103
|
-
You can customize form field components to match your application's design system.
|
|
103
|
+
You can customize form field components to match your application's design system.
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
- `fieldState`: Field state including errors and touched status
|
|
107
|
-
- `fieldData`: Metadata from JSON schema with field configuration
|
|
108
|
-
|
|
109
|
-
> **Important**: All custom components are wrapped with React Hook Form's `Controller` component. You must bind the `field` props to your HTML elements to ensure proper form state management and validation.
|
|
110
|
-
|
|
111
|
-
For TypeScript users, we export component prop types to make it easier to create properly typed custom components:
|
|
112
|
-
|
|
113
|
-
```tsx
|
|
114
|
-
import {
|
|
115
|
-
FieldComponentProps,
|
|
116
|
-
ButtonComponentProps,
|
|
117
|
-
} from '@remoteoss/remote-flows';
|
|
118
|
-
|
|
119
|
-
const CustomInput = ({ field, fieldData, fieldState }: FieldComponentProps) => {
|
|
120
|
-
return (
|
|
121
|
-
<div>
|
|
122
|
-
<label htmlFor={field.name}>{fieldData.label}</label>
|
|
123
|
-
<input {...field} />
|
|
124
|
-
{fieldState.error && <p>{fieldState.error.message}</p>}
|
|
125
|
-
</div>
|
|
126
|
-
);
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
const CustomButton = ({ children, ...props }: ButtonComponentProps) => {
|
|
130
|
-
return <button {...props}>{children}</button>;
|
|
131
|
-
};
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Here's an example of custom field components implementation:
|
|
135
|
-
|
|
136
|
-
```tsx
|
|
137
|
-
<RemoteFlows
|
|
138
|
-
components={{
|
|
139
|
-
text: CustomInput,
|
|
140
|
-
button: CustomButton,
|
|
141
|
-
number: ({ field, fieldState, fieldData }) => (
|
|
142
|
-
<div>
|
|
143
|
-
<label>{fieldData.label}</label>
|
|
144
|
-
<input {...field} type='number' />
|
|
145
|
-
{fieldState.error && (
|
|
146
|
-
<span className='text-red-500'>{fieldState.error.message}</span>
|
|
147
|
-
)}
|
|
148
|
-
</div>
|
|
149
|
-
),
|
|
150
|
-
select: ({ field, fieldState, fieldData }) => (
|
|
151
|
-
<>
|
|
152
|
-
<select {...field} onChange={(ev) => field.onChange(ev.target.value)}>
|
|
153
|
-
{fieldData?.options?.map((option) => (
|
|
154
|
-
<option key={option.value} value={option.value}>
|
|
155
|
-
{option.label}
|
|
156
|
-
</option>
|
|
157
|
-
))}
|
|
158
|
-
</select>
|
|
159
|
-
{fieldState.error && (
|
|
160
|
-
<span className='text-red-500'>{fieldState.error.message}</span>
|
|
161
|
-
)}
|
|
162
|
-
</>
|
|
163
|
-
),
|
|
164
|
-
}}
|
|
165
|
-
auth={fetchToken}
|
|
166
|
-
>
|
|
167
|
-
{/* Your form components */}
|
|
168
|
-
</RemoteFlows>
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Available Component Prop Types
|
|
172
|
-
|
|
173
|
-
- `FieldComponentProps`: For all form field components (text, number, select, etc.)
|
|
174
|
-
- `ButtonComponentProps`: For custom button components
|
|
175
|
-
- `StatementComponentProps`: For custom statement components
|
|
176
|
-
|
|
177
|
-
Supported field types:
|
|
178
|
-
|
|
179
|
-
- `text`: Text input fields
|
|
180
|
-
- `number`: Numeric input fields
|
|
181
|
-
- `select`: Dropdown selection fields
|
|
105
|
+
> For detailed documentation on component customization including step-level and field-specific overrides, see the [Component Customization Guide](./docs/COMPONENT_CUSTOMIZATION.md).
|
|
182
106
|
|
|
183
107
|
## Available Flows
|
|
184
108
|
|
|
@@ -213,7 +137,7 @@ For a complete implementation, check our [example server implementation](https:/
|
|
|
213
137
|
Import the CSS file in your application:
|
|
214
138
|
|
|
215
139
|
```css
|
|
216
|
-
@import '@remoteoss/remote-flows/
|
|
140
|
+
@import '@remoteoss/remote-flows/styles.css';
|
|
217
141
|
```
|
|
218
142
|
|
|
219
143
|
### Theme Customization
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as u}from"./chunk-TOA3JILU.js";import{d as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as u}from"./chunk-TOA3JILU.js";import{d as m}from"./chunk-5LSHRCAR.js";import{a as d}from"./chunk-2YTBWEC7.js";import{a}from"./chunk-6GTRAHWJ.js";import{b as s}from"./chunk-KQPDXXG3.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as b}from"react/jsx-runtime";function k({onSubmit:c,onSuccess:p,onError:n,render:l,...o}){let{components:f}=s(),{contractorOnboardingBag:t}=u(),i=m(),{mutateAsync:y}=d(i),E=e(async()=>{try{if(await c?.(),t.employmentId){let r=await y({employment_id:t.employmentId});if(r.data){await p?.({data:r.data,employmentStatus:"invited"}),t.refetchEmployment();return}r.error&&n?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}}catch(r){n?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),v=f?.button||a;return b(v,{...o,disabled:i.isPending||o.disabled,onClick:r=>{E(),o.onClick?.(r)},children:l({employmentStatus:"invited"})})}e(k,"OnboardingInvite");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-2FQ2KNP4.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"./chunk-P37U34EQ.js";var r={select_country:{index:0,name:"select_country"},basic_information:{index:1,name:"basic_information"},contract_details:{index:2,name:"contract_details"},pricing_plan:{index:3,name:"pricing_plan"},contract_preview:{index:4,name:"contract_preview"},review:{index:5,name:"review"}},a={basic_information:{index:0,name:"basic_information"},contract_details:{index:1,name:"contract_details"},pricing_plan:{index:2,name:"pricing_plan"},contract_preview:{index:3,name:"contract_preview"},review:{index:4,name:"review"}},o=t((e,n)=>{if(e&&n&&e!==n)return`When the contractor will start providing service to your company. ${`This date does not match the date you provided in the Basic Information step - ${e} - and will override it only when both parties have signed the contract.`}`},"calculateProvisionalStartDateDescription"),d=t((e,n)=>({...e,fields:{...e?.fields,...n?{"service_duration.provisional_start_date":{description:n}}:{}}}),"buildContractDetailsJsfModify");export{r as a,a as b,o as c,d};
|
|
2
|
+
//# sourceMappingURL=chunk-2Y3SXQ5B.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/utils.ts"],"sourcesContent":["import { JSFModifyNext } from '@/src/flows/types';\nimport { Step } from '@/src/flows/useStepState';\n\ntype StepKeys =\n | 'select_country'\n | 'basic_information'\n | 'contract_details'\n | 'contract_preview'\n | 'pricing_plan'\n | 'review';\n\nexport const STEPS: Record<StepKeys, Step<StepKeys>> = {\n select_country: { index: 0, name: 'select_country' },\n basic_information: { index: 1, name: 'basic_information' },\n contract_details: { index: 2, name: 'contract_details' },\n pricing_plan: { index: 3, name: 'pricing_plan' },\n contract_preview: { index: 4, name: 'contract_preview' },\n review: { index: 5, name: 'review' },\n} as const;\n\nexport const STEPS_WITHOUT_SELECT_COUNTRY: Record<\n Exclude<StepKeys, 'select_country'>,\n Step<Exclude<StepKeys, 'select_country'>>\n> = {\n basic_information: { index: 0, name: 'basic_information' },\n contract_details: { index: 1, name: 'contract_details' },\n pricing_plan: { index: 2, name: 'pricing_plan' },\n contract_preview: { index: 3, name: 'contract_preview' },\n review: { index: 4, name: 'review' },\n} as const;\n\n/**\n * Calculates the description for the provisional start date field\n * based on whether the dates match between basic information and contract details steps\n */\nexport const calculateProvisionalStartDateDescription = (\n employmentProvisionalStartDate: string | undefined,\n fieldProvisionalStartDate: string | undefined,\n): string | undefined => {\n const datesNotMatching =\n employmentProvisionalStartDate &&\n fieldProvisionalStartDate &&\n employmentProvisionalStartDate !== fieldProvisionalStartDate;\n\n if (datesNotMatching) {\n const datesDontMatchWarning = `This date does not match the date you provided in the Basic Information step - ${\n employmentProvisionalStartDate\n } - and will override it only when both parties have signed the contract.`;\n return `When the contractor will start providing service to your company. ${datesDontMatchWarning}`;\n }\n return undefined;\n};\n\n/**\n * Merges internal jsfModify modifications with user-provided options for contract_details step\n * This abstracts the logic of applying internal field modifications (like dynamic descriptions)\n * while preserving user customizations\n */\nexport const buildContractDetailsJsfModify = (\n userJsfModify: JSFModifyNext | undefined,\n provisionalStartDateDescription: string | undefined,\n): JSFModifyNext => {\n return {\n ...userJsfModify,\n fields: {\n ...userJsfModify?.fields,\n ...(provisionalStartDateDescription\n ? {\n 'service_duration.provisional_start_date': {\n description: provisionalStartDateDescription,\n },\n }\n : {}),\n },\n };\n};\n"],"mappings":"wCAWO,IAAMA,EAA0C,CACrD,eAAgB,CAAE,MAAO,EAAG,KAAM,gBAAiB,EACnD,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,aAAc,CAAE,MAAO,EAAG,KAAM,cAAe,EAC/C,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAEaC,EAGT,CACF,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,aAAc,CAAE,MAAO,EAAG,KAAM,cAAe,EAC/C,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAMaC,EAA2CC,EAAA,CACtDC,EACAC,IACuB,CAMvB,GAJED,GACAC,GACAD,IAAmCC,EAMnC,MAAO,qEAHuB,kFAC5BD,CACF,0EACiG,EAGrG,EAhBwD,4CAuB3CE,EAAgCH,EAAA,CAC3CI,EACAC,KAEO,CACL,GAAGD,EACH,OAAQ,CACN,GAAGA,GAAe,OAClB,GAAIC,EACA,CACE,0CAA2C,CACzC,YAAaA,CACf,CACF,EACA,CAAC,CACP,CACF,GAhB2C","names":["STEPS","STEPS_WITHOUT_SELECT_COUNTRY","calculateProvisionalStartDateDescription","__name","employmentProvisionalStartDate","fieldProvisionalStartDate","buildContractDetailsJsfModify","userJsfModify","provisionalStartDateDescription"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-ZYRGEEPU.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{b as t}from"./chunk-2YTBWEC7.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function b({onSubmit:d,onSuccess:l,onError:n}){let{onboardingBag:r}=s(),f=a(async e=>{try{let i=await r.parseFormValues(e);await d?.(i);let o=await r.onSubmit(e);if(o?.data){await l?.(o?.data),r?.next();return}if(o?.error){let c=t(o?.fieldErrors||[],r.meta?.fields?.basic_information);n?.({error:o?.error,rawError:o?.rawError,fieldErrors:c})}}catch(i){n?.({error:i,rawError:i,fieldErrors:[]})}},"handleSubmit"),p=r.stepState.values?.basic_information||r.initialValues.basic_information;return E(m,{defaultValues:p,onSubmit:f})}a(b,"BasicInformationStep");export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-35RMJMSH.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-LQBVRVXH.js";import{a as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-LQBVRVXH.js";import{a as t}from"./chunk-HZVYZQ3Z.js";import{a as f}from"./chunk-NDQ6UQFG.js";import{a as e}from"./chunk-6S6H4NAQ.js";import{a as p}from"./chunk-EQOU2VPX.js";import{a as n}from"./chunk-M2TLNSTK.js";import{a}from"./chunk-Z2WV73EX.js";import{a as m}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as F}from"react/jsx-runtime";var k=i(({employmentId:l,render:T,options:d,initialValues:s})=>{let u=c(),o=t({employmentId:l,options:d,initialValues:s});return F(m.Provider,{value:{formId:u,terminationBag:o},children:T({terminationBag:o,components:{SubmitButton:r,Back:n,EmployeeComunicationStep:e,TerminationDetailsStep:a,PaidTimeOffStep:p,AdditionalDetailsStep:f}})})},"TerminationFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3CFU6LKQ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as h}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as h}from"./chunk-OKM7DRCF.js";import{a as g}from"./chunk-XFD3ULUF.js";import{a as m,b as d,c as T,d as b}from"./chunk-DFJNVGK4.js";import{b as p,d as D}from"./chunk-SXR333SU.js";import{c as y}from"./chunk-W3YE53JN.js";import{d as c}from"./chunk-KQPDXXG3.js";import{a as s}from"./chunk-P37U34EQ.js";import{createHeadlessForm as E,modify as C}from"@remoteoss/json-schema-form-old";import{useMutation as O,useQuery as P}from"@tanstack/react-query";function V(o){return Object.entries(o).reduce((t,[a,r])=>({...t,[a]:T(r)}),{})}s(V,"formatTimeoffValues");function x(o){let t=o?.contract_details?.available_pto,a=o?.contract_details?.available_pto_type;return o?.country?.code==="USA"&&a==="unlimited"?{value:t===0?20:t}:a==="unlimited"&&t>0?{value:t}:{value:t}}s(x,"getMinimumStatutoryDays");function F(o,t){let a=0,r=0;return o.forEach(e=>{e.timeoff_days?.forEach(n=>{new Date(n.day)<=t?a+=n.hours||0:r+=n.hours||0})}),{before:a,after:r}}s(F,"getAllTimeoffHoursBeforeDate");var Q=s(({employmentId:o,date:t,options:a})=>p({employmentId:o,timeoffType:"paid_time_off",status:"approved",options:{enabled:a?.enabled,select:s(r=>{let{before:e,after:n}=F(r?.data?.timeoffs||[],new Date(t));return{bookedDaysBeforeTermination:d(e),bookedDaysAfterTermination:d(n)}},"select")}}),"useBookedTimeoffBeforeAndAfterTerminationQuery"),G=s(({employmentId:o,proposedTerminationDate:t,employment:a})=>{let{value:r=0}=x(a),e=D({employmentId:o}),n=Q({employmentId:o,date:t}),i=e.data?.data?.[0].annual_entitlement.type==="limited"?{days:e.data?.data?.[0].annual_entitlement.days,hours:e.data?.data?.[0].annual_entitlement.hours}:{days:r,hours:0},u={days:e.data?.data?.[0].booked.days||0,hours:e.data?.data?.[0].booked.hours||0},f=e.data?.data?.[0].current_entitlement.type==="limited"?{days:e.data?.data?.[0].current_entitlement.days||0,hours:e.data?.data?.[0].current_entitlement.hours||0}:{days:r,hours:0},l={days:e.data?.data?.[0].used.days||0,hours:e.data?.data?.[0].used.hours||0},v=n.data?.bookedDaysBeforeTermination||{days:0,hours:0},_=n.data?.bookedDaysAfterTermination||{days:0,hours:0},k=m(f.days,f.hours),A=m(l.days,l.hours),B=m(u.days,u.hours),H=k-A-B,S=b(d(H));return{data:{...V({entitledDays:i,bookedDays:u,usedDays:l,approvedDaysBeforeTermination:v,approvedDaysAfterTermination:_,remainingDays:S,currentEntitlementDays:f}),isUnlimitedPto:a?.contract_details?.available_pto_type==="unlimited"},isLoading:e.isLoading||n.isLoading,isError:e.isError||n.isError,error:e.error||n.error}},"useSummaryTimeOffDataQuery"),W=s(()=>{let{client:o}=c();return O({mutationFn:s(t=>y({client:o,body:t}),"mutationFn")})},"useCreateTermination"),X=s(({formValues:o,jsfModify:t,step:a})=>P({queryKey:["rmt-flows-termination-schema",a],queryFn:s(()=>h[a]??g,"queryFn"),select:s(({data:r})=>{let e=r?.schema||{};if(t){let{schema:i}=C(e,t);e=i}return E(e||{},{initialValues:o||{}})},"select")}),"useTerminationSchema");export{Q as a,G as b,W as c,X as d};
|
|
2
|
+
//# sourceMappingURL=chunk-3F77NXWU.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-LG2LVO4C.js";import{a}from"./chunk-Y2NSR2N6.js";import{a as c}from"./chunk-DV6PCBAX.js";import{a as e}from"./chunk-F3KEIVSE.js";import{a as m}from"./chunk-KKGRYDZA.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3Z6AFLXW.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as R,b as x,c as N,d as A}from"./chunk-EC7QVRRX.js";import{a as C}from"./chunk-MXLQEDRJ.js";import{a as w,b as f}from"./chunk-E5PHO3SS.js";import{b as B}from"./chunk-LJGCFFAT.js";import{a as i,b as t,e as F}from"./chunk-L3Z2G32A.js";import{a as d}from"./chunk-P37U34EQ.js";import{MoreHorizontal as P}from"lucide-react";import{useState as U}from"react";import{Fragment as $,jsx as g,jsxs as T}from"react/jsx-runtime";function E({actions:e=[],className:n,label:l,"data-testid":a}){let[m,_]=U(!1);return T("div",{className:i("relative",n),children:[g(B,{"data-testid":a,variant:"ghost","aria-label":l,className:"h-8 w-8 p-0",onClick:()=>_(!m),children:g(P,{className:"h-4 w-4"})}),m&&T($,{children:[g("div",{className:"fixed inset-0 z-40",onClick:()=>_(!1)}),g("div",{className:"absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]",children:e.map((c,u)=>g("button",{"data-testid":`${a}-${c.label.toLowerCase().replace(" ","-")}`,className:i("w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100",c.disabled&&"opacity-50 cursor-not-allowed"),onClick:()=>{c.onClick(),_(!1)},disabled:c.disabled,children:c.label},u))})]})]})}d(E,"ActionsDropdown");import{ChevronDown as O,Info as Z}from"lucide-react";import K from"react-flagpack";import{useState as z}from"react";import{jsx as j,jsxs as L}from"react/jsx-runtime";var I=d(({children:e,content:n})=>L("div",{className:"relative inline-block group",children:[e,L("div",{className:"absolute bottom-full right-0 mb-2 px-3 py-2 bg-gray-900 text-white text-xs rounded-md opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 w-64 whitespace-normal break-words",children:[n,j("div",{className:"absolute top-full right-3 border-4 border-transparent border-t-gray-900"})]})]}),"BasicTooltip");import{Fragment as b,jsx as o,jsxs as r}from"react/jsx-runtime";var V={GB:"GB-UKM"},Y=d(({title:e,country:n,region:l,annualGrossSalary:a,onDelete:m,onExportPdf:_,onEdit:c})=>{let u=[{label:"Edit",onClick:c},{label:"Export",onClick:_},{label:"Delete",onClick:m}];return r("div",{className:"RemoteFlows__EstimationResults__Header flex justify-between",children:[r("div",{className:"flex flex-row items-center gap-6",children:[o("div",{className:"RemoteFlows__EstimationResultsHeader__FlagContainer flex h-16 w-16 items-center justify-center rounded-lg bg-[#F4F4F5]",children:o(K,{code:V[n.alpha_2_code]||n.alpha_2_code})}),r("div",{className:"space-y-1",children:[o("h2",{"data-testid":"estimation-results-header-title",className:"RemoteFlows__EstimationResultsHeader__Title text-lg font-medium leading-none text-[#181818]",children:e}),r("p",{className:"RemoteFlows__EstimationResultsHeader__Country text-xs text-[#71717A]",children:[n.name," ",l?` (${l.name})`:""]}),r("p",{"data-testid":"estimation-results-header-annual-gross-salary",className:"RemoteFlows__EstimationResultsHeader__AnnualGrossSalary text-xs text-[#71717A]",children:[o("span",{className:"text-[#181818]",children:"Employee annual gross salary:"})," ",a]})]})]}),o(E,{label:"Actions",className:"RemoteFlows__EstimationResults__ActionsDropdown",actions:u})]})},"EstimationResultsHeader"),q=d(()=>({steps:[{id:"add-employment-details",title:"Add employment details",description:"You add employee employments details."},{id:"invite-employee",title:"Invite employee",description:"Hire receives an email invitation from Remote to start the self-enrollment process."},{id:"verify-information",title:"Verify information",description:"Remote prepares the Employment Agreement and verifies all the information."},{id:"sign-contract",title:"Sign contract",description:"All parties sign the Employment Agreement and are ready to start. \u{1F389}"}],helpText:"For customers who accept Remote's Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrollment.",zendeskArticleId:w.employeeOnboardingTimeline}),"getOnboardingTimelineData");function J({minimumOnboardingDays:e,data:n,className:l}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__OnboardingTimeline w-full",l),children:r(x,{value:"timeline",className:"RemoteFlows__OnboardingTimeline__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__OnboardingTimeline__AccordionTrigger hover:no-underline px-0 py-4",children:r("div",{className:"flex items-center justify-between w-full",children:[o("span",{className:"RemoteFlows__OnboardingTimeline__Title text-base font-medium text-[#0F172A]",children:"Onboarding timeline"}),e!=null&&r("span",{className:"RemoteFlows__OnboardingTimeline__Description text-base text-muted-foreground mr-4",children:[e," days"]})]})}),r(A,{className:"px-0 pb-4",children:[o("ul",{className:"RemoteFlows__OnboardingTimeline__List list-disc list-inside space-y-2",children:n.steps.map(a=>r("li",{children:[o("strong",{className:"font-medium text-[#09090B]",children:a.title})," ","- ",a.description]},a.id))}),r("p",{className:"RemoteFlows__OnboardingTimeline__HelpText text-xs text-muted-foreground mt-4",children:[n.helpText,n.zendeskArticleId&&o(f,{zendeskId:n.zendeskArticleId,children:"Learn more"})]})]})]})})}d(J,"OnboardingTimeline");function Q({className:e,countryBenefitsUrl:n,countryGuideUrl:l,country:a}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__HiringSection w-full",e),children:r(x,{value:"timeline",className:"RemoteFlows__HiringSection__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__HiringSection__AccordionTrigger hover:no-underline px-0 py-4",children:o("div",{className:"flex items-center justify-between w-full",children:r("span",{className:"text-base font-medium text-[#0F172A]",children:["Hiring in ",a.name]})})}),o(A,{children:r("div",{className:"flex flex-col gap-1",children:[l&&o("a",{href:l,target:"_blank",className:"RemoteFlows__Link",children:"Explore our complete guide \u2197"}),n&&o("a",{href:n,target:"_blank",className:"RemoteFlows__Link",children:"Explore our available benefits \u2197"})]})})]})})}d(Q,"HiringSection");function W({isMultipleCurrency:e,className:n}){return r("div",{className:i("RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center",n),children:[o("span",{"aria-hidden":!0}),e?r(b,{children:[o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employee currency"}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employer currency"})]}):r(b,{children:[o("span",{}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Amount"})]})]})}d(W,"EstimationHeaders");function S({label:e,amounts:n,className:l,children:a}){let[m,_]=z(!0);return r("div",{className:i("RemoteFlows__EstimationResults__Row",l),children:[r("div",{className:"RemoteFlows__EstimationRow__Grid grid grid-cols-3 items-center",children:[r("div",{className:"RemoteFlows__EstimationRow__LabelContainer flex items-center gap-2",children:[o("span",{className:i("RemoteFlows__EstimationRow__Title min-w-[140px] font-medium text-[#09090B]"),children:e}),o("button",{onClick:()=>_(!m),className:"RemoteFlows__EstimationRow__CollapseButton p-1 hover:bg-gray-100 rounded",children:o(O,{className:`h-4 w-4 text-muted-foreground transition-transform ${m?"rotate-180":""}`})})]}),Array.isArray(n)?n.map((c,u)=>o("span",{className:i("RemoteFlows__EstimationRow__RegionalAmount text-right font-medium text-[#09090B]"),children:c},u)):r(b,{children:[o("span",{}),o("span",{className:i("RemoteFlows__EstimationRow__EmployerAmount text-right font-medium text-[#09090B]"),children:n})]})]}),m&&a&&o("div",{className:"RemoteFlows__EstimationRow__CollapsibleContent mt-4",children:a})]})}d(S,"EstimationRow");function X({item:e,isMultipleCurrency:n,level:l=0}){let[a,m]=z(!1),_=e.children&&e.children.length>0,c=l>0,u=e.isCollapsible||_;return r("li",{className:i("RemoteFlows__BreakdownList__Item pb-3",c&&"pb-1"),children:[r("div",{className:i(n?"RemoteFlows__BreakdownList__Grid grid grid-cols-3 items-center justify-between":"RemoteFlows__BreakdownList__Grid grid grid-cols-2 items-center justify-between"),children:[r("div",{className:i("RemoteFlows__BreakdownList__LabelContainer flex items-center gap-2",c&&"pl-3"),children:[!c&&o("span",{className:"RemoteFlows__BreakdownList__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0","aria-hidden":"true"}),u?r("button",{onClick:()=>m(!a),className:"RemoteFlows__BreakdownList__CollapseButton flex items-center gap-2 hover:bg-gray-100 rounded p-1",children:[o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B]"),children:e.label}),o(O,{className:`RemoteFlows__BreakdownList__ChevronDown h-3 w-3 text-muted-foreground transition-transform ${a?"rotate-180":""}`})]}):o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B] p-1"),children:e.label}),e.tooltip&&o(I,{content:r(b,{children:[o("span",{dangerouslySetInnerHTML:{__html:F(e.tooltip)}})," ",e.zendeskId&&o(f,{zendeskId:Number(e.zendeskId),children:"Learn more"})]}),children:o("button",{className:"RemoteFlows__BreakdownList__InfoButton p-1 hover:bg-gray-100 rounded",children:o(Z,{className:i("RemoteFlows__BreakdownList__InfoButton__Icon text-muted-foreground",c?"h-3 w-3":"h-4 w-4")})})})]}),n?r(b,{children:[o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employee-amount",className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"}),o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employer-amount",className:i("RemoteFlows__BreakdownList__EmployerAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__EmployerAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__EmployerAmountText--NotNested text-[#09090B]"),children:e.employerAmount||"\u2014"})]}):o("span",{"data-testid":e.dataSelector,className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"})]}),_&&a&&o("div",{className:"mt-1",children:o(h,{items:e.children,isMultipleCurrency:n,level:l+1})})]})}d(X,"BreakdownListItem");function h({items:e,isMultipleCurrency:n,className:l,level:a}){return o("ul",{className:i("RemoteFlows__BreakdownList list-none",l),children:e.map((m,_)=>o(X,{item:m,isMultipleCurrency:n,level:a},_))})}d(h,"BreakdownList");var Re=d(({estimation:e,title:n,components:l,onDelete:a,onExportPdf:m,onEdit:_})=>{let c=l?.HiringSection||Q,u=l?.OnboardingTimeline||J,H=l?.Header||Y,v=l?.Footer,D=q(),p=e.employer_currency_costs.currency.code!==e.regional_currency_costs.currency.code,k=e.employer_currency_costs.monthly_management_fee,M=e.region.code!==e.country.code,G=t(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol);return r(C,{className:"RemoteFlows__EstimationResults__Card p-10",children:[o("div",{className:"RemoteFlows__Separator",children:o(H,{title:n,annualGrossSalary:G,region:M?e.region:void 0,country:e.country,onDelete:a,onExportPdf:m,onEdit:_})}),r("div",{className:"RemoteFlows__Separator",children:[o(W,{isMultipleCurrency:p,className:"mb-3"}),o(S,{label:"Monthly total cost",amounts:p?[t(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),t(e.employer_currency_costs.monthly_total,e.employer_currency_costs.currency.symbol)]:t(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),children:o(h,{items:[{label:"Gross monthly salary",regionalAmount:t(e.regional_currency_costs.monthly_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_gross_salary,e.employer_currency_costs.currency.symbol),zendeskId:w.extraPayments.toString(),tooltip:"This country respects extra payments on top of the gross salary."},{label:"Mandatory employer costs",regionalAmount:t(e.regional_currency_costs.monthly_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.monthly_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:t(e.regional_currency_costs.monthly_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.monthly_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...k?[{label:"Monthly fee",regionalAmount:t(e.regional_currency_costs.monthly_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})]}),o("div",{className:"RemoteFlows__Separator",children:o(S,{label:"Annual total cost",amounts:p?[t(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),t(e.employer_currency_costs.annual_total,e.employer_currency_costs.currency.symbol)]:t(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),children:o(h,{items:[{label:"Gross annual salary",dataSelector:"annual-gross-salary",regionalAmount:t(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_gross_salary,e.employer_currency_costs.currency.symbol)},{label:"Mandatory employer costs",regionalAmount:t(e.regional_currency_costs.annual_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.annual_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:t(e.regional_currency_costs.annual_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.annual_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Extra statutory payments",regionalAmount:t(e.regional_currency_costs.extra_statutory_payments_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.extra_statutory_payments_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.extra_statutory_payments_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.extra_statutory_payments_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...k?[{label:"Annual fee",regionalAmount:t(e.regional_currency_costs.annual_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})}),o("div",{className:"RemoteFlows__Separator",children:o(u,{minimumOnboardingDays:e.minimum_onboarding_time,data:D})}),o(c,{countryBenefitsUrl:e.country_benefits_details_url,countryGuideUrl:e.country_guide_url,country:e.country}),v&&o(v,{})]})},"EstimationResults");export{Re as a};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as R,b as x,c as N,d as A}from"./chunk-EC7QVRRX.js";import{a as w,b as f}from"./chunk-LKMPZJIW.js";import{a as C}from"./chunk-MXLQEDRJ.js";import{b as B}from"./chunk-LJGCFFAT.js";import{a as i,b as t,e as F}from"./chunk-L3Z2G32A.js";import{a as d}from"./chunk-P37U34EQ.js";import{MoreHorizontal as P}from"lucide-react";import{useState as U}from"react";import{Fragment as $,jsx as g,jsxs as T}from"react/jsx-runtime";function E({actions:e=[],className:n,label:l,"data-testid":a}){let[m,_]=U(!1);return T("div",{className:i("relative",n),children:[g(B,{"data-testid":a,variant:"ghost","aria-label":l,className:"h-8 w-8 p-0",onClick:()=>_(!m),children:g(P,{className:"h-4 w-4"})}),m&&T($,{children:[g("div",{className:"fixed inset-0 z-40",onClick:()=>_(!1)}),g("div",{className:"absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]",children:e.map((c,u)=>g("button",{"data-testid":`${a}-${c.label.toLowerCase().replace(" ","-")}`,className:i("w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100",c.disabled&&"opacity-50 cursor-not-allowed"),onClick:()=>{c.onClick(),_(!1)},disabled:c.disabled,children:c.label},u))})]})]})}d(E,"ActionsDropdown");import{ChevronDown as O,Info as Z}from"lucide-react";import K from"react-flagpack";import{useState as z}from"react";import{jsx as j,jsxs as L}from"react/jsx-runtime";var I=d(({children:e,content:n})=>L("div",{className:"relative inline-block group",children:[e,L("div",{className:"absolute bottom-full right-0 mb-2 px-3 py-2 bg-gray-900 text-white text-xs rounded-md opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 w-64 whitespace-normal break-words",children:[n,j("div",{className:"absolute top-full right-3 border-4 border-transparent border-t-gray-900"})]})]}),"BasicTooltip");import{Fragment as b,jsx as o,jsxs as r}from"react/jsx-runtime";var V={GB:"GB-UKM"},Y=d(({title:e,country:n,region:l,annualGrossSalary:a,onDelete:m,onExportPdf:_,onEdit:c})=>{let u=[{label:"Edit",onClick:c},{label:"Export",onClick:_},{label:"Delete",onClick:m}];return r("div",{className:"RemoteFlows__EstimationResults__Header flex justify-between",children:[r("div",{className:"flex flex-row items-center gap-6",children:[o("div",{className:"RemoteFlows__EstimationResultsHeader__FlagContainer flex h-16 w-16 items-center justify-center rounded-lg bg-[#F4F4F5]",children:o(K,{code:V[n.alpha_2_code]||n.alpha_2_code})}),r("div",{className:"space-y-1",children:[o("h2",{"data-testid":"estimation-results-header-title",className:"RemoteFlows__EstimationResultsHeader__Title text-lg font-medium leading-none text-[#181818]",children:e}),r("p",{className:"RemoteFlows__EstimationResultsHeader__Country text-xs text-[#71717A]",children:[n.name," ",l?` (${l.name})`:""]}),r("p",{"data-testid":"estimation-results-header-annual-gross-salary",className:"RemoteFlows__EstimationResultsHeader__AnnualGrossSalary text-xs text-[#71717A]",children:[o("span",{className:"text-[#181818]",children:"Employee annual gross salary:"})," ",a]})]})]}),o(E,{label:"Actions",className:"RemoteFlows__EstimationResults__ActionsDropdown",actions:u})]})},"EstimationResultsHeader"),q=d(()=>({steps:[{id:"add-employment-details",title:"Add employment details",description:"You add employee employments details."},{id:"invite-employee",title:"Invite employee",description:"Hire receives an email invitation from Remote to start the self-enrollment process."},{id:"verify-information",title:"Verify information",description:"Remote prepares the Employment Agreement and verifies all the information."},{id:"sign-contract",title:"Sign contract",description:"All parties sign the Employment Agreement and are ready to start. \u{1F389}"}],helpText:"For customers who accept Remote's Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrollment.",zendeskArticleId:w.employeeOnboardingTimeline}),"getOnboardingTimelineData");function J({minimumOnboardingDays:e,data:n,className:l}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__OnboardingTimeline w-full",l),children:r(x,{value:"timeline",className:"RemoteFlows__OnboardingTimeline__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__OnboardingTimeline__AccordionTrigger hover:no-underline px-0 py-4",children:r("div",{className:"flex items-center justify-between w-full",children:[o("span",{className:"RemoteFlows__OnboardingTimeline__Title text-base font-medium text-[#0F172A]",children:"Onboarding timeline"}),e!=null&&r("span",{className:"RemoteFlows__OnboardingTimeline__Description text-base text-muted-foreground mr-4",children:[e," days"]})]})}),r(A,{className:"px-0 pb-4",children:[o("ul",{className:"RemoteFlows__OnboardingTimeline__List list-disc list-inside space-y-2",children:n.steps.map(a=>r("li",{children:[o("strong",{className:"font-medium text-[#09090B]",children:a.title})," ","- ",a.description]},a.id))}),r("p",{className:"RemoteFlows__OnboardingTimeline__HelpText text-xs text-muted-foreground mt-4",children:[n.helpText,n.zendeskArticleId&&o(f,{zendeskId:n.zendeskArticleId,children:"Learn more"})]})]})]})})}d(J,"OnboardingTimeline");function Q({className:e,countryBenefitsUrl:n,countryGuideUrl:l,country:a}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__HiringSection w-full",e),children:r(x,{value:"timeline",className:"RemoteFlows__HiringSection__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__HiringSection__AccordionTrigger hover:no-underline px-0 py-4",children:o("div",{className:"flex items-center justify-between w-full",children:r("span",{className:"text-base font-medium text-[#0F172A]",children:["Hiring in ",a.name]})})}),o(A,{children:r("div",{className:"flex flex-col gap-1",children:[l&&o("a",{href:l,target:"_blank",className:"RemoteFlows__Link",children:"Explore our complete guide \u2197"}),n&&o("a",{href:n,target:"_blank",className:"RemoteFlows__Link",children:"Explore our available benefits \u2197"})]})})]})})}d(Q,"HiringSection");function W({isMultipleCurrency:e,className:n}){return r("div",{className:i("RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center",n),children:[o("span",{"aria-hidden":!0}),e?r(b,{children:[o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employee currency"}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employer currency"})]}):r(b,{children:[o("span",{}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Amount"})]})]})}d(W,"EstimationHeaders");function S({label:e,amounts:n,className:l,children:a}){let[m,_]=z(!0);return r("div",{className:i("RemoteFlows__EstimationResults__Row",l),children:[r("div",{className:"RemoteFlows__EstimationRow__Grid grid grid-cols-3 items-center",children:[r("div",{className:"RemoteFlows__EstimationRow__LabelContainer flex items-center gap-2",children:[o("span",{className:i("RemoteFlows__EstimationRow__Title min-w-[140px] font-medium text-[#09090B]"),children:e}),o("button",{onClick:()=>_(!m),className:"RemoteFlows__EstimationRow__CollapseButton p-1 hover:bg-gray-100 rounded",children:o(O,{className:`h-4 w-4 text-muted-foreground transition-transform ${m?"rotate-180":""}`})})]}),Array.isArray(n)?n.map((c,u)=>o("span",{className:i("RemoteFlows__EstimationRow__RegionalAmount text-right font-medium text-[#09090B]"),children:c},u)):r(b,{children:[o("span",{}),o("span",{className:i("RemoteFlows__EstimationRow__EmployerAmount text-right font-medium text-[#09090B]"),children:n})]})]}),m&&a&&o("div",{className:"RemoteFlows__EstimationRow__CollapsibleContent mt-4",children:a})]})}d(S,"EstimationRow");function X({item:e,isMultipleCurrency:n,level:l=0}){let[a,m]=z(!1),_=e.children&&e.children.length>0,c=l>0,u=e.isCollapsible||_;return r("li",{className:i("RemoteFlows__BreakdownList__Item pb-3",c&&"pb-1"),children:[r("div",{className:i(n?"RemoteFlows__BreakdownList__Grid grid grid-cols-3 items-center justify-between":"RemoteFlows__BreakdownList__Grid grid grid-cols-2 items-center justify-between"),children:[r("div",{className:i("RemoteFlows__BreakdownList__LabelContainer flex items-center gap-2",c&&"pl-3"),children:[!c&&o("span",{className:"RemoteFlows__BreakdownList__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0","aria-hidden":"true"}),u?r("button",{onClick:()=>m(!a),className:"RemoteFlows__BreakdownList__CollapseButton flex items-center gap-2 hover:bg-gray-100 rounded p-1",children:[o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B]"),children:e.label}),o(O,{className:`RemoteFlows__BreakdownList__ChevronDown h-3 w-3 text-muted-foreground transition-transform ${a?"rotate-180":""}`})]}):o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B] p-1"),children:e.label}),e.tooltip&&o(I,{content:r(b,{children:[o("span",{dangerouslySetInnerHTML:{__html:F(e.tooltip)}})," ",e.zendeskId&&o(f,{zendeskId:Number(e.zendeskId),children:"Learn more"})]}),children:o("button",{className:"RemoteFlows__BreakdownList__InfoButton p-1 hover:bg-gray-100 rounded",children:o(Z,{className:i("RemoteFlows__BreakdownList__InfoButton__Icon text-muted-foreground",c?"h-3 w-3":"h-4 w-4")})})})]}),n?r(b,{children:[o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employee-amount",className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"}),o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employer-amount",className:i("RemoteFlows__BreakdownList__EmployerAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__EmployerAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__EmployerAmountText--NotNested text-[#09090B]"),children:e.employerAmount||"\u2014"})]}):o("span",{"data-testid":e.dataSelector,className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"})]}),_&&a&&o("div",{className:"mt-1",children:o(h,{items:e.children,isMultipleCurrency:n,level:l+1})})]})}d(X,"BreakdownListItem");function h({items:e,isMultipleCurrency:n,className:l,level:a}){return o("ul",{className:i("RemoteFlows__BreakdownList list-none",l),children:e.map((m,_)=>o(X,{item:m,isMultipleCurrency:n,level:a},_))})}d(h,"BreakdownList");var Re=d(({estimation:e,title:n,components:l,onDelete:a,onExportPdf:m,onEdit:_})=>{let c=l?.HiringSection||Q,u=l?.OnboardingTimeline||J,H=l?.Header||Y,v=l?.Footer,D=q(),p=e.employer_currency_costs.currency.code!==e.regional_currency_costs.currency.code,k=e.employer_currency_costs.monthly_management_fee,M=e.region.code!==e.country.code,G=t(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol);return r(C,{className:"RemoteFlows__EstimationResults__Card p-10",children:[o("div",{className:"RemoteFlows__Separator",children:o(H,{title:n,annualGrossSalary:G,region:M?e.region:void 0,country:e.country,onDelete:a,onExportPdf:m,onEdit:_})}),r("div",{className:"RemoteFlows__Separator",children:[o(W,{isMultipleCurrency:p,className:"mb-3"}),o(S,{label:"Monthly total cost",amounts:p?[t(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),t(e.employer_currency_costs.monthly_total,e.employer_currency_costs.currency.symbol)]:t(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),children:o(h,{items:[{label:"Gross monthly salary",regionalAmount:t(e.regional_currency_costs.monthly_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_gross_salary,e.employer_currency_costs.currency.symbol),zendeskId:w.extraPayments.toString(),tooltip:"This country respects extra payments on top of the gross salary."},{label:"Mandatory employer costs",regionalAmount:t(e.regional_currency_costs.monthly_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.monthly_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:t(e.regional_currency_costs.monthly_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.monthly_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...k?[{label:"Monthly fee",regionalAmount:t(e.regional_currency_costs.monthly_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})]}),o("div",{className:"RemoteFlows__Separator",children:o(S,{label:"Annual total cost",amounts:p?[t(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),t(e.employer_currency_costs.annual_total,e.employer_currency_costs.currency.symbol)]:t(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),children:o(h,{items:[{label:"Gross annual salary",dataSelector:"annual-gross-salary",regionalAmount:t(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_gross_salary,e.employer_currency_costs.currency.symbol)},{label:"Mandatory employer costs",regionalAmount:t(e.regional_currency_costs.annual_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.annual_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:t(e.regional_currency_costs.annual_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.annual_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Extra statutory payments",regionalAmount:t(e.regional_currency_costs.extra_statutory_payments_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.extra_statutory_payments_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.extra_statutory_payments_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.extra_statutory_payments_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...k?[{label:"Annual fee",regionalAmount:t(e.regional_currency_costs.annual_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})}),o("div",{className:"RemoteFlows__Separator",children:o(u,{minimumOnboardingDays:e.minimum_onboarding_time,data:D})}),o(c,{countryBenefitsUrl:e.country_benefits_details_url,countryGuideUrl:e.country_guide_url,country:e.country}),v&&o(v,{})]})},"EstimationResults");export{Re as a};
|
|
2
|
+
//# sourceMappingURL=chunk-44IOQYR2.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as ut,b as pt,c as ft,d as yt}from"./chunk-2Y3SXQ5B.js";import{a as at,b as it,c as st,e as ct,f as lt,g as dt,h as mt}from"./chunk-GCTHZSIN.js";import{a as ot,b as rt}from"./chunk-3UDG4IJO.js";import{a as X,f as Z,h as tt,k as et}from"./chunk-5LSHRCAR.js";import{c as z,d as Q}from"./chunk-H6YNMT4M.js";import{a as P}from"./chunk-2YTBWEC7.js";import{a as nt}from"./chunk-PJBAQZ6G.js";import{d as f,e as h}from"./chunk-ARTSDUSS.js";import{g as E}from"./chunk-L3Z2G32A.js";import{a as p}from"./chunk-P37U34EQ.js";import{useEffect as Qt,useMemo as c,useRef as Xt,useState as J}from"react";var Zt={select_country:null,basic_information:"employment_basic_information",contract_details:null,pricing_plan:null,contract_preview:null,review:null},te={employment_basic_information:"basic_information"},ee=new Date().toISOString().split("T")[0],fe=p(({countryCode:_t,externalId:St,employmentId:y,skipSteps:gt,options:_,initialValues:i})=>{let[a,A]=J(_t||null),[r,bt]=J(y),[T,Ct]=J(void 0),O=Xt({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{}}),ht=gt?.includes("select_country")?pt:ut,{fieldValues:m,stepState:e,setFieldValues:wt,previousStep:Vt,nextStep:vt,goToStep:I,setStepValues:B}=nt(ht),{data:s,isLoading:j,refetch:Ft}=X(r),{status:S}=s||{},R=S&&z.includes(S),Et=S&&!Q.includes(S),Pt=c(()=>S==="invited"?"invited":"not_invited",[S]),q=tt(),N=lt(),x=it(),Ot=ct(),{mutateAsync:Mt}=P(q),{mutateAsync:Dt}=P(N),{mutateAsync:Tt}=P(x),{mutateAsync:U}=P(Ot);y&&s?.country?.code&&!a&&A(s.country.code);let{selectCountryForm:M,isLoading:It}=et({jsfModify:_?.jsfModify?.select_country,queryOptions:{enabled:e.currentStep.name==="select_country"}}),{form:H,isLoading:jt}=mt(r,{jsonSchemaVersion:_?.jsonSchemaVersion,queryOptions:{enabled:e.currentStep.name==="pricing_plan"}}),Rt=Zt[e.currentStep.name]||"contractor_basic_information",Lt=te[Rt],kt=s?.[Lt]||{},Jt=p(({form:t,options:o={},query:b={}})=>{let C=Object.keys(m).length>0?{...i,...e.values?.[e.currentStep.name],...m}:{...i,...kt};return Z({countryCode:a,form:t,fieldValues:C,query:b,options:{...o,queryOptions:{enabled:o.queryOptions?.enabled??!0}}})},"useJSONSchema"),At=!!(a&&(e.currentStep.name==="basic_information"||y)),Bt=!!(a&&(e.currentStep.name==="contract_details"||y)),{data:l,isLoading:qt}=Jt({form:"contractor_basic_information",options:{jsfModify:_?.jsfModify?.basic_information,queryOptions:{enabled:At},jsonSchemaVersion:_?.jsonSchemaVersion}}),Nt=c(()=>ft(s?.basic_information?.provisional_start_date,m?.service_duration?.provisional_start_date),[s?.basic_information?.provisional_start_date,m?.service_duration?.provisional_start_date]),{data:d,isLoading:xt}=dt({countryCode:a,fieldValues:m,options:{queryOptions:{enabled:Bt},jsfModify:yt(_?.jsfModify?.contract_details,Nt),jsonSchemaVersion:_?.jsonSchemaVersion}}),{data:u}=at({fieldValues:m,options:{queryOptions:{enabled:e.currentStep.name==="contract_preview"}}}),{data:Ut,isLoading:Ht}=st({employmentId:r,contractDocumentId:T,options:{queryOptions:{enabled:!!T}}}),n=c(()=>({select_country:M?.fields||[],basic_information:l?.fields||[],pricing_plan:H?.fields||[],contract_details:d?.fields||[],contract_preview:u?.fields||[],review:[]}),[M?.fields,l?.fields,H?.fields,d?.fields,u?.fields]),Gt={select_country:null,basic_information:l?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:d?.meta["x-jsf-fieldsets"],contract_preview:null,review:null},{country:Wt,basic_information:D={},contract_details:g={}}=s||{},G=Wt?.code,w=c(()=>h(n.select_country,{country:a||G||""}),[n.select_country,a,G]),V=c(()=>{let t={provisional_start_date:ee,...i,...D};return h(n.basic_information,t)},[n.basic_information,D,i]),v=c(()=>{let o={...{service_duration:{provisional_start_date:D.provisional_start_date}},...i,...g};return h(n.contract_details,o)},[n.contract_details,g,i,D]),W=c(()=>{let t={...i,...g};return h(n.contract_preview,t)},[n.contract_preview,g,i]),$=c(()=>{let t={...i,...g};return h(n.pricing_plan,t?.pricing_plan??{})},[n.pricing_plan,g,i]),$t=c(()=>({select_country:w,basic_information:V,contract_details:v,contract_preview:W,pricing_plan:$}),[w,V,v,W,$]),K=c(()=>!!(!!(y&&R&&e.currentStep.name!=="review")&&!j&&n.basic_information.length>0&&n.contract_details.length>0),[y,R,j,n.basic_information.length,n.contract_details.length,e.currentStep.name]);Qt(()=>{K&&(O.current={select_country:E(w,n.select_country),basic_information:E(V,n.basic_information),contract_details:E(v,n.contract_details),contract_preview:{},pricing_plan:{}},B({select_country:w,basic_information:V,contract_details:v,contract_preview:{},pricing_plan:{},review:{}}),I("review"))},[K,I,w,V,v,B,n.select_country,n.basic_information,n.contract_details]);let Kt=p(t=>{I(t)},"goTo"),Y=p(async t=>M&&e.currentStep.name==="select_country"?t:l&&e.currentStep.name==="basic_information"?await f(t,l?.fields,{isPartialValidation:!1}):d&&e.currentStep.name==="contract_details"?await f(t,d?.fields,{isPartialValidation:!1}):u&&e.currentStep.name==="contract_preview"?await f(t,u?.fields,{isPartialValidation:!1}):e.currentStep.name==="pricing_plan"?t:{},"parseFormValues");async function Yt(t){let o=e.currentStep.name;o in O.current&&(O.current[o]=E(t,n[o]));let b=await Y(t);switch(e.currentStep.name){case"select_country":return A(b.country),Promise.resolve({data:{countryCode:b.country}});case"basic_information":{let L=!r&&a,C=r&&a&&s?.country&&s?.country.code!==a;if(L||C){let k={basic_information:b,type:"contractor",country_code:a,external_id:St};try{let F=await Mt(k),zt=F.data?.data?.employment?.id;return bt(zt),F}catch(F){throw console.error("Error creating onboarding:",F),F}}else if(r)return Promise.resolve({data:{employmentId:r}});return}case"contract_details":{let C=await Dt({employmentId:r,payload:{contract_document:b}}),k=C.data?.data?.contract_document?.id;return Ct(k),C}case"contract_preview":return Tt({employmentId:r,contractDocumentId:T,payload:{signature:t.signature}});case"pricing_plan":return t.subscription==ot?U({employmentId:r,payload:{operation:"downgrade"}}):t.subscription==rt?U({employmentId:r,payload:{operation:"upgrade"}}):Promise.reject({error:"invalid selection"});default:throw new Error("Invalid step state")}}return p(Yt,"onSubmit"),{isLoading:It||qt||j||xt||jt||Ht,fieldValues:m,stepState:e,checkFieldUpdates:wt,back:Vt,next:vt,goTo:Kt,onSubmit:Yt,fields:n[e.currentStep.name],meta:{fields:O.current,fieldsets:Gt[e.currentStep.name]},parseFormValues:Y,handleValidation:p(async t=>{if(e.currentStep.name==="select_country")return M.handleValidation(t);if(l&&e.currentStep.name==="basic_information"){let o=await f(t,l?.fields,{isPartialValidation:!1});return l?.handleValidation(o)}if(d&&e.currentStep.name==="contract_details"){let o=await f(t,d?.fields,{isPartialValidation:!1});return d?.handleValidation(o)}if(u&&e.currentStep.name==="contract_preview"){let o=await f(t,u?.fields,{isPartialValidation:!1});return u?.handleValidation(o)}return e.currentStep.name==="pricing_plan"?{formErrors:{}}:null},"handleValidation"),initialValues:$t,employmentId:r,refetchEmployment:Ft,isSubmitting:q.isPending||N.isPending||x.isPending,documentPreviewPdf:Ut,canInvite:Et,isEmploymentReadOnly:R,invitedStatus:Pt,employment:s}},"useContractorOnboarding");export{fe as a};
|
|
2
|
+
//# sourceMappingURL=chunk-5C3NU7R3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx"],"sourcesContent":["import { Fields } from '@remoteoss/json-schema-form-old';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n useContractorOnboardingDetailsSchema,\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n usePostManageContractorSubscriptions,\n useContractorSubscriptionSchemaField,\n useGetShowContractDocument,\n useSignContractDocument,\n} from '@/src/flows/ContractorOnboarding/api';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport {\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n calculateProvisionalStartDateDescription,\n buildContractDetailsJsfModify,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n} from '@/src/flows/Onboarding/api';\nimport {\n disabledInviteButtonEmploymentStatus,\n reviewStepAllowedEmploymentStatus,\n} from '@/src/flows/Onboarding/utils';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { Step, useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport { $TSFixMe, JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n} from '@/src/flows/ContractorOnboarding/constants';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render'\n>;\n\nconst stepToFormSchemaMap: Record<\n keyof typeof STEPS,\n JSONSchemaFormType | null\n> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nconst provisionalStartDate = new Date().toISOString().split('T')[0];\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n });\n\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const isInvited = employmentStatus === 'invited';\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment();\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const signContractDocumentMutation = useSignContractDocument();\n const manageContractorSubscriptionMutation =\n usePostManageContractorSubscriptions();\n\n const { mutateAsync: createEmploymentMutationAsync } = mutationToPromise(\n createEmploymentMutation,\n );\n\n const { mutateAsync: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsync: signContractDocumentMutationAsync } = mutationToPromise(\n signContractDocumentMutation,\n );\n\n const { mutateAsync: manageContractorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorSubscriptionMutation);\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 { 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 {\n form: selectContractorSubscriptionForm,\n isLoading: isLoadingContractorSubscriptions,\n } = useContractorSubscriptionSchemaField(internalEmploymentId as string, {\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: stepState.currentStep.name === 'pricing_plan',\n },\n });\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractorOnboardingDetailsEnabled = 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: 'contractor_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n jsonSchemaVersion: options?.jsonSchemaVersion,\n },\n });\n\n const descriptionProvisionalStartDate = useMemo(() => {\n return calculateProvisionalStartDateDescription(\n employment?.basic_information?.provisional_start_date as string,\n fieldValues?.service_duration?.provisional_start_date as string,\n );\n }, [\n employment?.basic_information?.provisional_start_date,\n fieldValues?.service_duration?.provisional_start_date,\n ]);\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorOnboardingDetailsSchema({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: buildContractDetailsJsfModify(\n options?.jsfModify?.contract_details,\n descriptionProvisionalStartDate,\n ),\n jsonSchemaVersion: options?.jsonSchemaVersion,\n },\n });\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: stepState.currentStep.name === 'contract_preview',\n },\n },\n });\n const { data: documentPreviewPdf, isLoading: isLoadingDocumentPreviewForm } =\n useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<keyof typeof STEPS, Fields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n pricing_plan: selectContractorSubscriptionForm?.fields || [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n selectContractorSubscriptionForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n keyof typeof STEPS,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n contract_preview: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\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 provisional_start_date: provisionalStartDate,\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n stepFields.basic_information,\n employmentBasicInformation,\n onboardingInitialValues,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const hardcodedValues = {\n service_duration: {\n provisional_start_date:\n employmentBasicInformation.provisional_start_date,\n },\n };\n const initialValues = {\n ...hardcodedValues,\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n employmentBasicInformation,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n // TODO: TBD not sure if contract preview needs to be populated with anything\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const pricingPlanInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(\n stepFields.pricing_plan,\n (initialValues?.pricing_plan ?? {}) as Record<string, unknown>,\n );\n }, [\n stepFields.pricing_plan,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n pricingPlanInitialValues,\n ]);\n\n const isNavigatingToReview = useMemo(() => {\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !isLoadingEmployment &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0,\n );\n }, [\n employmentId,\n isEmploymentReadOnly,\n isLoadingEmployment,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepState.currentStep.name,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n ),\n // TODO: TBD\n contract_preview: {},\n // TODO: TBD\n pricing_plan: {},\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: {},\n pricing_plan: {},\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n ]);\n\n const goTo = (step: keyof typeof STEPS) => {\n goToStep(step);\n };\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\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 contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return await parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (stepState.currentStep.name === 'pricing_plan') {\n return values;\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n const parsedValues = await parseFormValues(values);\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\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n setInternalEmploymentId(employmentId);\n\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n // TODO: Provisional it seems you cannot update a contractor employment\n // TODO: we'll need to check later if the provisional start date gets updated for the statement of work\n return Promise.resolve({\n data: { employmentId: internalEmploymentId },\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: CreateContractDocument = {\n contract_document: parsedValues,\n };\n const response: $TSFixMe =\n await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n\n const contractDocumentId = response.data?.data?.contract_document?.id;\n setInternalContractDocumentId(contractDocumentId);\n return response;\n }\n\n case 'contract_preview': {\n return signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: values.signature,\n },\n });\n }\n case 'pricing_plan': {\n if (values.subscription == contractorStandardProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'downgrade',\n },\n });\n } else if (values.subscription == contractorPlusProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'upgrade',\n },\n });\n }\n return Promise.reject({ error: 'invalid selection' });\n }\n\n default: {\n throw new Error('Invalid step state');\n }\n }\n }\n\n const isLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingContractorSubscriptions ||\n isLoadingDocumentPreviewForm;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\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 handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: nextStep,\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: goTo,\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 * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n },\n\n /**\n * Function to 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 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\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 contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: false },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (stepState.currentStep.name === 'pricing_plan') {\n // TODO: TBD\n return {\n formErrors: {},\n };\n }\n\n return null;\n },\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","stepToFormSchemaMap","jsonSchemaToEmployment","provisionalStartDate","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","useRef","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmployment","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","useMemo","createEmploymentMutation","useCreateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","createEmploymentMutationAsync","mutationToPromise","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","selectCountryForm","isLoadingCountries","useCountriesSchemaField","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","useContractorSubscriptionSchemaField","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractorOnboardingDetailsEnabled","basicInformationForm","isLoadingBasicInformationForm","descriptionProvisionalStartDate","calculateProvisionalStartDateDescription","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchema","buildContractDetailsJsfModify","signatureSchemaForm","useGetContractDocumentSignatureSchema","documentPreviewPdf","isLoadingDocumentPreviewForm","useGetShowContractDocument","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","pricingPlanInitialValues","isNavigatingToReview","useEffect","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","contractDocumentId","contractorStandardProductIdentifier","contractorPlusProductIdentifier"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n}from"./chunk-6P4DTWYK.js";import{a as f}from"./chunk-2FQ2KNP4.js";import{a as m}from"./chunk-ERRQIROU.js";import{a as p}from"./chunk-VBO75DXV.js";import{a as i}from"./chunk-BL7OYWNX.js";import{a as e}from"./chunk-NABPCULM.js";import{a as c}from"./chunk-HDNBZ6CB.js";import{a as d}from"./chunk-PZNXAOZH.js";import{a}from"./chunk-5C3NU7R3.js";import{a as t}from"./chunk-TOA3JILU.js";import{a as r}from"./chunk-P37U34EQ.js";import{useId as u}from"react";import{jsx as v}from"react/jsx-runtime";var A=r(({render:g,employmentId:C,externalId:S,countryCode:b,skipSteps:s,initialValues:O,options:l})=>{let o=a({options:l,employmentId:C,externalId:S,countryCode:b,skipSteps:s,initialValues:O}),P=u();return v(t.Provider,{value:{contractorOnboardingBag:o,formId:P},children:g({contractorOnboardingBag:o,components:{BasicInformationStep:e,SelectCountryStep:i,BackButton:n,SubmitButton:m,PricingPlanStep:p,ContractDetailsStep:c,ContractPreviewStep:d,OnboardingInvite:f}})})},"ContractorOnboardingFlow");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-5DKNCKV7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/ContractorOnboarding.tsx"],"sourcesContent":["import { OnboardingBack } from '@/src/flows/ContractorOnboarding/components/OnboardingBack';\nimport { SelectCountryStep } from '@/src/flows/ContractorOnboarding/components/SelectCountryStep';\nimport { ContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useContractorOnboarding } from '@/src/flows/ContractorOnboarding/hooks';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport { BasicInformationStep } from '@/src/flows/ContractorOnboarding/components/BasicInformationStep';\nimport { OnboardingSubmit } from '@/src/flows/ContractorOnboarding/components/OnboardingSubmit';\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/ContractorOnboarding.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { OnboardingBack } from '@/src/flows/ContractorOnboarding/components/OnboardingBack';\nimport { SelectCountryStep } from '@/src/flows/ContractorOnboarding/components/SelectCountryStep';\nimport { ContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useContractorOnboarding } from '@/src/flows/ContractorOnboarding/hooks';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport { BasicInformationStep } from '@/src/flows/ContractorOnboarding/components/BasicInformationStep';\nimport { OnboardingSubmit } from '@/src/flows/ContractorOnboarding/components/OnboardingSubmit';\nimport { PricingPlanStep } from '@/src/flows/ContractorOnboarding/components/PricingPlan';\nimport { ContractDetailsStep } from '@/src/flows/ContractorOnboarding/components/ContractDetailsStep';\nimport { ContractPreviewStep } from '@/src/flows/ContractorOnboarding/components/ContractPreviewStep';\nimport { OnboardingInvite } from '@/src/flows/ContractorOnboarding/components/OnboardingInvite';\n\nexport const ContractorOnboardingFlow = ({\n render,\n employmentId,\n externalId,\n countryCode,\n skipSteps,\n initialValues,\n options,\n}: ContractorOnboardingFlowProps) => {\n const contractorOnboardingBag = useContractorOnboarding({\n options,\n employmentId,\n externalId,\n countryCode,\n skipSteps,\n initialValues,\n });\n const formId = useId();\n return (\n <ContractorOnboardingContext.Provider\n value={{ contractorOnboardingBag, formId }}\n >\n {render({\n contractorOnboardingBag,\n components: {\n BasicInformationStep: BasicInformationStep,\n SelectCountryStep: SelectCountryStep,\n BackButton: OnboardingBack,\n SubmitButton: OnboardingSubmit,\n PricingPlanStep: PricingPlanStep,\n ContractDetailsStep: ContractDetailsStep,\n ContractPreviewStep: ContractPreviewStep,\n OnboardingInvite: OnboardingInvite,\n },\n })}\n </ContractorOnboardingContext.Provider>\n );\n};\n"],"mappings":"mbAAA,OAAS,SAAAA,MAAa,QAgClB,cAAAC,MAAA,oBAnBG,IAAMC,EAA2BC,EAAA,CAAC,CACvC,OAAAC,EACA,aAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,cAAAC,EACA,QAAAC,CACF,IAAqC,CACnC,IAAMC,EAA0BC,EAAwB,CACtD,QAAAF,EACA,aAAAL,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,cAAAC,CACF,CAAC,EACKI,EAASC,EAAM,EACrB,OACEb,EAACc,EAA4B,SAA5B,CACC,MAAO,CAAE,wBAAAJ,EAAyB,OAAAE,CAAO,EAExC,SAAAT,EAAO,CACN,wBAAAO,EACA,WAAY,CACV,qBAAsBK,EACtB,kBAAmBC,EACnB,WAAYC,EACZ,aAAcC,EACd,gBAAiBC,EACjB,oBAAqBC,EACrB,oBAAqBC,EACrB,iBAAkBC,CACpB,CACF,CAAC,EACH,CAEJ,EArCwC","names":["useId","jsx","ContractorOnboardingFlow","__name","render","employmentId","externalId","countryCode","skipSteps","initialValues","options","contractorOnboardingBag","useContractorOnboarding","formId","useId","ContractorOnboardingContext","BasicInformationStep","SelectCountryStep","OnboardingBack","OnboardingSubmit","PricingPlanStep","ContractDetailsStep","ContractPreviewStep","OnboardingInvite"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as V}from"./chunk-WVJDCDGZ.js";import{f as J}from"./chunk-H6YNMT4M.js";import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as V}from"./chunk-WVJDCDGZ.js";import{f as J}from"./chunk-H6YNMT4M.js";import{A as x,B as P,E as R,H as U,e as b,g as _,j as g,k as S,q as w,r as j,t as v,w as O,x as E,y as q}from"./chunk-W3YE53JN.js";import{b as N}from"./chunk-Z5WMKCRJ.js";import{d as a}from"./chunk-KQPDXXG3.js";import{b as C}from"./chunk-ARTSDUSS.js";import{a as r}from"./chunk-P37U34EQ.js";import{modify as d,createHeadlessForm as h}from"@remoteoss/remote-json-schema-form-kit";import{useMutation as m,useQuery as f}from"@tanstack/react-query";var te=r(t=>{let{client:n}=a();return f({queryKey:["employment",t],retry:!1,enabled:!!t,select:r(({data:e})=>e?.data.employment,"select"),queryFn:r(async()=>{let e=await E({client:n,headers:{Authorization:""},path:{employment_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn")})},"useEmployment"),re=r(t=>{let{client:n}=a();return f({queryKey:["company",t],retry:!1,enabled:!!t,queryFn:r(async()=>{let e=await j({client:n,headers:{Authorization:""},path:{company_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn"),select:r(({data:e})=>e.data.company,"select")})},"useCompany"),ne=r(t=>{let{client:n}=a();return f({queryKey:["benefit-offers",t],retry:!1,enabled:!!t,queryFn:r(async()=>g({client:n,path:{employment_id:t}}).then(e=>{if(e.error||!e.data)throw new Error("Failed to fetch benefit offers data");return e}),"queryFn"),select:r(({data:e})=>e?.data?.reduce((o,s)=>({...o,[s.benefit_group.slug]:{value:s.benefit_tier?.slug??"no",...s.benefit_group?.filter?.slug?{filter:s.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),oe=r(()=>{let{client:t}=a();return m({mutationFn:r(n=>U({client:t,headers:{Authorization:""},path:n}),"mutationFn")})},"useEmploymentInvite"),se=r(()=>{let{client:t}=a();return m({mutationFn:r(n=>w({client:t,body:n}),"mutationFn")})},"useCreateReserveInvoice"),ae=r(({countryCode:t,form:n,fieldValues:e,options:o,query:s={},jsonSchemaVersion:i})=>{let{client:l}=a(),p=i?{json_schema_version:i}:{};return f({queryKey:["onboarding-json-schema-form",t,n],retry:!1,queryFn:r(async()=>{let u=await v({client:l,headers:{Authorization:""},path:{country_code:t,form:n},query:{skip_benefits:!0,...s,...p}});if(u.error||!u.data)throw new Error("Failed to fetch onboarding schema");return u},"queryFn"),enabled:o?.queryOptions?.enabled,select:r(({data:u})=>{let c=u?.data||{};if(o&&o.jsfModify){let{schema:y}=d(c,o.jsfModify);c=y}let B=N(c.properties||{},"money").reduce((y,F)=>(y[F]=C(e[F]),y),{}),Q=JSON.parse(JSON.stringify({...e,...B}));return{meta:{"x-jsf-fieldsets":c["x-jsf-fieldsets"]},...h(c,{initialValues:Q})}},"select")})},"useJSONSchemaForm"),ie=r((t,n,e)=>{let o=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:s}=a();return f({queryKey:["benefit-offers-schema",t],retry:!1,enabled:!!t,queryFn:r(async()=>{let i=await O({client:s,path:{employment_id:t},query:o});if(i.error||!i.data)throw new Error("Failed to fetch benefit offers schema");return i},"queryFn"),select:r(({data:i})=>{let l=i?.data?.schema||{};if(e&&e.jsfModify?.benefits){let{schema:c}=d(l,e.jsfModify.benefits);l=c}let p=Object.keys(n).length>0;return h(l,{initialValues:p?{...n}:{}})},"select")})},"useBenefitOffersSchema"),le=r(()=>{let{client:t}=a(),n={json_schema_version:1};return m({mutationFn:r(e=>_({client:t,headers:{Authorization:""},body:e,query:{...n}}),"mutationFn")})},"useCreateEmployment"),ce=r((t,n)=>{let{client:e}=a(),o={employment_basic_information_json_schema_version:1,contract_details_json_schema_version:J(n,t)||1};return m({mutationFn:r(({employmentId:s,...i})=>q({client:e,headers:{Authorization:""},body:i,path:{employment_id:s},query:{skip_benefits:!0,...o}}),"mutationFn")})},"useUpdateEmployment"),me=r(t=>{let{client:n}=a();return m({mutationFn:r(({employmentId:e,...o})=>{let s=t?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:t.jsonSchemaVersion.benefit_offers_form_schema}:{};return S({client:n,body:o,path:{employment_id:e},query:{...s}})},"mutationFn")})},"useUpdateBenefitsOffers"),z=r(t=>{let{client:n}=a();return f({...t,queryKey:["countries"],retry:!1,queryFn:r(async()=>{let e=await P({client:n,headers:{Authorization:""}});if(e.error||!e.data)throw new Error("Failed to fetch supported countries");return e},"queryFn"),select:r(({data:e})=>e?.data?.filter(o=>o.eor_onboarding).map(o=>({label:o.name,value:o.code}))||[],"select")})},"useCountries"),ue=r(t=>{let{data:n,isLoading:e}=z(t?.queryOptions),{schema:o}=d(V.data.schema,t?.jsfModify||{}),s=h(o);if(n){let i=s.fields.find(l=>l.name==="country");i&&(i.options=n)}return{isLoading:e,selectCountryForm:s}},"useCountriesSchemaField"),fe=r(({type:t="spread"})=>{let{client:n}=a();return m({mutationFn:r(e=>(t==="no_spread"?b:R)({client:n,body:e}),"mutationFn")})},"useConvertCurrency"),ye=r(()=>{let{client:t}=a();return m({mutationFn:r(({employmentId:n,...e})=>x({client:t,path:{employment_id:n},body:e}),"mutationFn")})},"useUpsertContractEligibility");export{te as a,re as b,ne as c,oe as d,se as e,ae as f,ie as g,le as h,ce as i,me as j,ue as k,fe as l,ye as m};
|
|
2
|
+
//# sourceMappingURL=chunk-5LSHRCAR.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-ETYRNQJJ.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as m}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function p({onSubmit:n}){let{terminationBag:o}=e(),a=m(async t=>{let r=await o?.parseFormValues(t);await n?.(r),o?.next()},"handleSubmit");return u(i,{defaultValues:o.fieldValues,onSubmit:a})}m(p,"EmployeeCommunicationForm");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-6S6H4NAQ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as c}from"./chunk-TOA3JILU.js";import{a as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as c}from"./chunk-TOA3JILU.js";import{a as l}from"./chunk-EYQ4PYUT.js";import{b as s}from"./chunk-LNV36S6D.js";import{f as m,g as d}from"./chunk-66N57DKF.js";import{a as e}from"./chunk-P37U34EQ.js";import{useEffect as f}from"react";import{jsx as p}from"react/jsx-runtime";import{createElement as P}from"react";function B({defaultValues:i,onSubmit:F,components:u}){let{formId:y,contractorOnboardingBag:o}=c(),b=s(o.handleValidation),r=m({resolver:b,defaultValues:i,shouldUnregister:!1,mode:"onBlur"});f(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),f(()=>{let n=r?.watch(t=>{Object.keys(t).some(a=>t[a]!==i[a])&&o?.checkFieldUpdates(t)});return()=>n?.unsubscribe()},[]);let g=e(async n=>{F(n)},"handleSubmit");return P(d,{...r,key:`form-${o.stepState.currentStep.name}`},p("form",{id:y,onSubmit:r.handleSubmit(g),className:"space-y-4 RemoteFlows__OnboardingForm",children:p(l,{components:u,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}e(B,"ContractorOnboardingForm");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-7COHIUGW.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-ZYRGEEPU.js";import{b as a}from"./chunk-PGWKJ6FK.js";import{b as t}from"./chunk-2YTBWEC7.js";import{e as s}from"./chunk-ARTSDUSS.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function P({components:d,onSubmit:l,onError:i,onSuccess:f}){let{onboardingBag:o}=a(),p=o.fields??[],c=s(p,o.initialValues.benefits);return E(m,{defaultValues:c,components:d,onSubmit:e(async n=>{try{await l?.(n);let r=await o.onSubmit(n);if(r?.data){await f?.(r.data),o?.next();return}if(r?.error){let u=t(r?.fieldErrors||[],o.meta?.fields?.benefits);i?.({error:r.error,rawError:r.rawError,fieldErrors:u})}}catch(r){i?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit")})}e(P,"BenefitsStep");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-A3GZSC5Z.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-ZYRGEEPU.js";import{b as i}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function y({onSubmit:s,onSuccess:c,onError:t}){let{onboardingBag:o}=i(),u=e(async n=>{try{await s?.({countryCode:n.country});let r=await o.onSubmit(n);if(r?.data){await c?.(r?.data),o?.next();return}r?.error&&t?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}catch(r){t?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),l=o.stepState.values?.select_country||o.initialValues.select_country;return d(a,{defaultValues:l,onSubmit:u})}e(y,"SelectCountryStep");export{y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-A65WMO6K.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-P37U34EQ.js";var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-P37U34EQ.js";var x=i(e=>new Promise((n,r)=>{let a=new FileReader;a.readAsDataURL(e),a.onload=()=>n(a.result),a.onerror=t=>r(t)}),"toBase64"),V=i(async e=>await Promise.all(e.map(async r=>{let a=await x(r);return{...r,name:r.name,size:r.size,type:r.type,content:a.split(",")[1]}})),"convertFilesToBase64");import{addBusinessDays as h,isWeekend as N,nextMonday as L}from"date-fns";import A from"lodash.get";var C={TEXT:"text",TEXTAREA:"textarea",NUMBER:"number",SELECT:"select",COUNTRIES:"countries",TEL:"tel",EMAIL:"email",MONEY:"money",DATE:"date",DATE_RANGE:"date-range",CURRENCIES:"currencies",TIME:"time"},j={CHECKBOX:"checkbox",ACK_CHECK:"ack-check"},l={FILE:"file",RADIO:"radio",RADIO_CARD:"radio-card",GROUP_ARRAY:"group-array",EXTRA:"extra",STATEMENT:"statement",HIDDEN:"hidden",FIELDSET:"fieldset",FIELDSET_FLAT:"fieldset-flat",WORK_SCHEDULE:"work-schedule",WORK_WEEK_SCHEDULE:"work-week-schedule",BENEFITS:"benefits",SIGNATURE:"signature",SELECT_MULTIPLE:"select-multiple",...C,...j};function R(e){return Math.round((e+Number.EPSILON)*100)/100}i(R,"round");function I(e){return parseFloat(e.replace(/,/g,""))}i(I,"convertToValidCost");function B(e){if(e==null||e===""||Number.isNaN(e)||Array.isArray(e)||typeof e=="boolean")return null;let n;return typeof e=="string"?n=I(e):n=e,R(n*100)}i(B,"convertToCents");function M(e){if(e==null||Number.isNaN(e))return null;let n;return typeof e=="string"?n=I(e||"0"):n=e,R(n/100)}i(M,"convertFromCents");var g=i(e=>Object.entries(e||{}).reduce((n,[r,a])=>(Array.isArray(a)?n[r]=a.map(t=>typeof t=="object"&&t!==null?g(t):typeof t=="string"?t.trim():t):typeof a=="object"&&a!==null?n[r]=g(a):n[r]=typeof a=="string"?a.trim():a,n),{}),"trimStringValues");function D(e,n){let r={};return n.forEach(a=>{let t=a.name;if(!(!Object.prototype.hasOwnProperty.call(e,t)&&!(a.inputType===l.FIELDSET&&a.valueGroupingDisabled))){if(a.inputType===l.FIELDSET&&a.valueGroupingDisabled){Object.assign(r,D(e,a.fields));return}a.readOnly&&a.defaultValue?r[t]=a.defaultValue:r[t]=e[t]}}),r}i(D,"prefillReadOnlyFields");function O(e,n){return e.reduce((r,a)=>(a.inputType===l.FIELDSET&&a.valueGroupingDisabled?Object.assign(r,O(a.fields,n)):Object.prototype.hasOwnProperty.call(n,a.name)&&(r[a.name]=n[a.name]),r),{})}i(O,"extractFieldsetFieldsValues");var T={[l.COUNTRIES]:{transformValueToAPI:i(e=>n=>!e.multiple||typeof n=="string"?n:n.map(r=>typeof r=="string"?r:r.name),"transformValueToAPI"),transformValue:i(e=>{let n=i(r=>r?.name||r?.value||r?.label,"getCountryValue");return Array.isArray(e)?e.map(n):n(e)||""},"transformValue")},[l.NUMBER]:{transformValueToAPI:i(()=>e=>{let n=Number(e);return Number.isNaN(n)?e:n},"transformValueToAPI")},[l.MONEY]:{transformValueFromAPI:i(()=>e=>M(e)??"","transformValueFromAPI"),transformValueToAPI:i(()=>B,"transformValueToAPI")},[l.RADIO]:{transformValueToAPI:i(e=>n=>e.transformToBool?n==="yes":n,"transformValueToAPI")},[l.CHECKBOX]:{transformValueToAPI:i(e=>n=>n===void 0?!1:e.const&&n===!0?e.const:n,"transformValueToAPI")},[l.SELECT]:{transformValue:i(e=>Array.isArray(e)?e.map(n=>n.value):e?.value??"","transformValue")},[l.FILE]:{transformValueToAPI:i(()=>async e=>e?await V(e):null,"transformValueToAPI")}};async function p(e={},n){let r=n.filter(t=>e[t.name]||t.inputType===l.FIELDSET&&t.valueGroupingDisabled);return(await Promise.all(r.map(async t=>{let s={};switch(t.inputType){case l.FIELDSET:{let o=t;if(o.valueGroupingDisabled){let u=O(o.fields,e);Object.assign(s,await p(u,o.fields))}else{let u=e[t.name];if(u&&typeof u=="object"&&!Array.isArray(u)){let c=Object.fromEntries(Object.entries(u).filter(([,m])=>m!==""&&m!==null&&m!==void 0));s[t.name]=Object.keys(c).length>0?await p(c,o.fields):void 0}else s[t.name]=await p(u,o.fields)}break}case l.TEXTAREA:case l.TEXT:s[t.name]=e[t.name].replace(/\0/g,"");break;case l.GROUP_ARRAY:{let o=t?.fields?.().map(c=>({...c,name:c.nameKey||""})),u=await Promise.all(e[t.name]?.map(c=>p(c,o))||[]);s[t.name]=u;break}case l.EXTRA:{let o=t;if(o.includeValueToApi!==!1){let u=e[o.name],c=o?.transformValueToAPI||T[o.inputType]?.transformValueToAPI;if(c){let m=c(t)(u);s[o.name]=m instanceof Promise?await m:m;break}s[o.name]=u;break}s[o.name]=void 0;break}default:{let o=e[t.name],u=t?.transformValueToAPI||T[t.inputType]?.transformValueToAPI;if(u){let c=u(t)(o);s[t.name]=c instanceof Promise?await c:c;break}s[t.name]=o;break}}return t.forcedValue!==void 0&&(s[t.name]=t.forcedValue),s}))).reduce((t,s)=>({...t,...s}),{...e})}i(p,"parseFormValuesToAPI");function w(e,n){return e.visibilityCondition?e.visibilityCondition(n):typeof e.isVisible<"u"?!!e.isVisible:!0}i(w,"isFieldVisible");function F(e,n){return e.calculateDynamicProperties?{...e,...e.calculateDynamicProperties(n)||{}}:e}i(F,"applyFieldDynamicProperties");function b(e,n,r,a){let t={};return n.map(s=>F(s,e)).forEach(s=>{let o=s.name;a&&(o=o?`${a}.${s.name}`:a);let u=A(e,o);if(!(!w(s,e)&&!(r&&u))&&!s.meta?.ignoreValue)if(s.inputType==="fieldset"&&s.valueGroupingDisabled)Object.assign(t,b(e,s.fields,r,o));else if(Array.isArray(s.fields))t[s.name]=b(e,s.fields,r,o);else{if(u===void 0)return;t[s.name]=u}}),t}i(b,"excludeValuesInvisible");function U(e){return Object.fromEntries(Object.entries(e).filter(([,n])=>n!=null&&n!==""))}i(U,"removeEmptyValues");function E(e){return Array.isArray(e)?e.map(E):e&&typeof e=="object"?Object.entries(e).reduce((n,[r,a])=>(r.startsWith("_")||(n[r]=E(a)),n),{}):e}i(E,"cleanUnderscoreFields");async function G(e,n,r){let a=r?.keepInvisibleValues?e:b(e,n),t=await p(a,n),s=g(t),o=U(s),u=D(o,n);return E(u)}i(G,"parseSubmitValues");async function Y(e,n,r={isPartialValidation:!1}){return await G(e,n,{keepInvisibleValues:r?.isPartialValidation})}i(Y,"parseJSFToValidate");function W(e){switch(e){case l.FILE:return;default:return""}}i(W,"getDefaultValueForType");function P(e,n){let r=A(e,n.name),a=n?.transformValueFromAPI||T[n.inputType]?.transformValueFromAPI;if(a)return a(n)(r);let t=typeof n.value=="function"?n.value(r,e):null,s=typeof n.value!="function"?n.value:null,o=n.checkboxValue===!0?r||!1:null,u=i(c=>c===""?void 0:c,"excludeString");return u(t)??u(r)??u(s)??u(n.default)??o??W(n.inputType)}i(P,"getInitialDefaultValue");function S(e,n,r){let a={},t=e.name;r&&(t=t?`${r}.${t}`:r);let s=e.fields;if(Array.isArray(s)){let o={};s.forEach(u=>{Object.assign(o,S(u,n,t))}),e.inputType===l.FIELDSET&&e.valueGroupingDisabled?Object.assign(a,o):a[e.name]=o}else a[e.name]=P(n,{...e,name:t});return a}i(S,"getInitialSubFieldValues");function _(e,n){let r={},a=n;return e.map(t=>F(t,a)).forEach(t=>{switch(t.inputType){case l.FIELDSET:{if(t.valueGroupingDisabled)Object.assign(r,_(t.fields,a));else{let s=S(t,a);Object.assign(r,s)}break}default:{r[t.name]||(r[t.name]=P(a,t));break}}}),r}i(_,"getInitialValues");function z({fields:e=[],fieldsets:n={},values:r}){let a=Object.keys(n);if(!a?.length)return e;let t=new Set(a.flatMap(c=>n[c]?.propertiesByName??[]));return a.map(c=>{let{propertiesByName:m=[],...y}=n[c],f=m.map(d=>e.find(k=>k.name===d)).filter(d=>!!d);return{...y,name:c,type:"fieldset-flat",inputType:"fieldset-flat",fields:f,label:n[c].title,isVisible:f.map(d=>F(d,r)).some(d=>w(d,r))}}).reduce((c,m)=>{let y=[...c],f=m.fields[0]?c.findIndex(d=>d.name===m.fields[0].name):c.length;return y.splice(f,0,m),y},e).filter(c=>!t.has(c.name))}i(z,"getFieldsWithFlatFieldsets");function J(e,n){let r=n;return e.forEach(a=>{"const"in a&&(r=Object.fromEntries(Object.entries(n).map(([t,s])=>t===a.name?[t,a.const]:[t,s])))}),r}i(J,"enableAckFields");function q(e){let n=new Date;n.setDate(n.getUTCDate()),n.setHours(0,0,0,0);let r=h(n,e+1);return N(r)?L(r):r}i(q,"getMinStartDate");export{R as a,B as b,M as c,Y as d,_ as e,z as f,J as g,q as h};
|
|
2
|
+
//# sourceMappingURL=chunk-ARTSDUSS.js.map
|