@gusto/embedded-react-sdk 0.52.0 → 0.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/components/Base/Base.d.ts +2 -0
  3. package/dist/components/Base/Base.js.map +1 -1
  4. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +4 -1
  5. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -1
  6. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.js.map +1 -1
  7. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +1 -1
  8. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
  9. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +2 -2
  10. package/dist/components/Common/UI/DateRangePicker/DateRangePickerTypes.d.ts +3 -2
  11. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.d.ts +1 -1
  12. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.js.map +1 -1
  13. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +3 -3
  14. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  15. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +2 -2
  16. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +2 -2
  17. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
  18. package/dist/components/Common/UI/Select/SelectTypes.d.ts +2 -2
  19. package/dist/components/Common/UI/Table/TableTypes.d.ts +4 -4
  20. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  21. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +2 -2
  22. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -3
  23. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  24. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -3
  25. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  26. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -5
  27. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  28. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -3
  29. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  30. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  31. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  32. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -8
  33. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  34. package/dist/components/Company/Industry/Context.js +8 -6
  35. package/dist/components/Company/Industry/Context.js.map +1 -1
  36. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -3
  37. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  38. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -3
  39. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  40. package/dist/components/Company/OnboardingOverview/context.js +5 -3
  41. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  42. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -3
  43. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  44. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -3
  45. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  46. package/dist/components/Contractor/ContractorList/index.d.ts +2 -1
  47. package/dist/components/Contractor/ContractorList/index.js +121 -99
  48. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  49. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.d.ts +1 -1
  50. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.js.map +1 -1
  51. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.d.ts +2 -0
  52. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  53. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js +150 -80
  54. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  55. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.test.d.ts +1 -0
  56. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js +19 -18
  57. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +1 -1
  58. package/dist/components/Contractor/Profile/ContractorProfile.d.ts +1 -1
  59. package/dist/components/Contractor/Profile/ContractorProfile.js +114 -110
  60. package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
  61. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +27 -26
  62. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
  63. package/dist/components/Contractor/Submit/Submit.js +106 -63
  64. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  65. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  66. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  67. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.d.ts +2 -2
  68. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.js.map +1 -1
  69. package/dist/components/Payroll/usePreparedPayrollData.js +10 -8
  70. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  71. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +1 -1
  72. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  73. package/dist/contexts/GustoProvider/GustoProvider.d.ts +1 -0
  74. package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
  75. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +1 -0
  76. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  77. package/dist/contexts/ThemeProvider/types.d.ts +2 -2
  78. package/dist/i18n/en/Contractor.ContractorList.json.js +22 -20
  79. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  80. package/dist/i18n/en/Contractor.Submit.json.js +11 -11
  81. package/dist/i18n/types.d.ts +7 -3
  82. package/dist/models/WA_RISK_CODES.d.ts +1 -0
  83. package/dist/models/WA_RISK_CODES.js.map +1 -1
  84. package/dist/partner-hook-utils/composeErrorHandler.d.ts +4 -0
  85. package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
  86. package/dist/partner-hook-utils/form/SDKFormProvider.d.ts +1 -0
  87. package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
  88. package/dist/partner-hook-utils/form/composeSubmitHandler.d.ts +4 -0
  89. package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
  90. package/dist/partner-hook-utils/form/fields/CheckboxHookField.d.ts +1 -0
  91. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  92. package/dist/partner-hook-utils/form/fields/DatePickerHookField.d.ts +1 -0
  93. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
  94. package/dist/partner-hook-utils/form/fields/NumberInputHookField.d.ts +1 -0
  95. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  96. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.d.ts +1 -0
  97. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  98. package/dist/partner-hook-utils/form/fields/SelectHookField.d.ts +1 -0
  99. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  100. package/dist/partner-hook-utils/form/fields/SwitchHookField.d.ts +1 -0
  101. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  102. package/dist/partner-hook-utils/form/fields/TextInputHookField.d.ts +1 -0
  103. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  104. package/dist/partner-hook-utils/types.d.ts +9 -0
  105. package/dist/shared/constants.d.ts +10 -0
  106. package/dist/shared/constants.js +7 -6
  107. package/dist/shared/constants.js.map +1 -1
  108. package/dist/types/Helpers.d.ts +2 -0
  109. package/dist/types/hooks.d.ts +1 -0
  110. package/dist/types/observability.d.ts +1 -0
  111. package/docs/guides/endpoint-inventory.json +17 -1
  112. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingFlowComponents.js","sources":["../../../../src/components/Contractor/OnboardingFlow/OnboardingFlowComponents.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { ContractorList } from '../ContractorList'\nimport { ContractorProfile } from '../Profile'\nimport { Address } from '../Address'\nimport { PaymentMethod } from '../PaymentMethod/PaymentMethod'\nimport { NewHireReport } from '../NewHireReport/NewHireReport'\nimport { ContractorSubmit } from '../Submit/Submit'\nimport type { ContractorDetailsFormData } from '../Profile/shared'\nimport type { AddressDefaultValues } from '../Address'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\n\n/**\n * Default pre-fill values for the contractor onboarding flow.\n * At least one of `profile` or `address` must be provided.\n *\n * @public\n */\nexport type OnboardingFlowDefaultValues = RequireAtLeastOne<{\n profile?: Partial<ContractorDetailsFormData>\n address?: AddressDefaultValues\n}>\n/**\n * Props for {@link OnboardingFlow}.\n *\n * @public\n */\nexport interface OnboardingFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n /** Default values for individual flow step components — `profile` and/or `address` sub-objects. */\n defaultValues?: RequireAtLeastOne<OnboardingFlowDefaultValues>\n}\n/** @internal */\nexport interface OnboardingFlowContextInterface extends FlowContextInterface {\n /** The associated company identifier. */\n companyId: string\n /** The contractor currently being onboarded; populated once the profile step creates or selects one. */\n contractorId?: string\n /** Default values for individual flow step components. */\n defaultValues?: OnboardingFlowDefaultValues\n /** True when the contractor will be self-onboarding; switches the flow to the shorter self-onboarding path. */\n selfOnboarding?: boolean\n /** Success message to display on the contractor list when returning from a completed sub-flow. */\n successMessage?: string\n}\n\n/** @internal */\nexport function ContractorListContextual() {\n const { companyId, onEvent, successMessage } = useFlow<OnboardingFlowContextInterface>()\n return (\n <ContractorList\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n successMessage={successMessage}\n />\n )\n}\n\n/** @internal */\nexport function ProfileContextual() {\n const { companyId, onEvent, contractorId, defaultValues } =\n useFlow<OnboardingFlowContextInterface>()\n return (\n <ContractorProfile\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n contractorId={contractorId}\n defaultValues={defaultValues?.profile}\n />\n )\n}\n\n/** @internal */\nexport function AddressContextual() {\n const { onEvent, contractorId, defaultValues } = useFlow<OnboardingFlowContextInterface>()\n return (\n <Address\n onEvent={onEvent}\n contractorId={ensureRequired(contractorId)}\n defaultValues={defaultValues?.address}\n />\n )\n}\n/** @internal */\nexport function PaymentMethodContextual() {\n const { onEvent, contractorId } = useFlow<OnboardingFlowContextInterface>()\n return <PaymentMethod onEvent={onEvent} contractorId={ensureRequired(contractorId)} />\n}\n/** @internal */\nexport function NewHireReportContextual() {\n const { onEvent, contractorId, selfOnboarding } = useFlow<OnboardingFlowContextInterface>()\n return (\n <NewHireReport\n onEvent={onEvent}\n contractorId={ensureRequired(contractorId)}\n selfOnboarding={selfOnboarding}\n />\n )\n}\n/** @internal */\nexport function SubmitContextual() {\n const { onEvent, contractorId, selfOnboarding } = useFlow<OnboardingFlowContextInterface>()\n return (\n <ContractorSubmit\n onEvent={onEvent}\n contractorId={ensureRequired(contractorId)}\n selfOnboarding={selfOnboarding}\n />\n )\n}\n\n/** @internal */\nexport function ProgressBarCta() {\n const { onEvent } = useFlow<OnboardingFlowContextInterface>()\n const { Button } = useComponentContext()\n useI18n('Contractor.ContractorList')\n const { t } = useTranslation('Contractor.ContractorList')\n return (\n <Button\n onClick={() => {\n onEvent(componentEvents.CANCEL)\n }}\n variant=\"secondary\"\n >\n {t('progressBarCta')}\n </Button>\n )\n}\n"],"names":["ContractorListContextual","companyId","onEvent","successMessage","useFlow","jsx","ContractorList","ensureRequired","ProfileContextual","contractorId","defaultValues","ContractorProfile","AddressContextual","Address","PaymentMethodContextual","PaymentMethod","NewHireReportContextual","selfOnboarding","NewHireReport","SubmitContextual","ContractorSubmit","ProgressBarCta","Button","useComponentContext","useI18n","t","useTranslation","componentEvents"],"mappings":";;;;;;;;;;;;;AAqDO,SAASA,IAA2B;AACzC,QAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,gBAAAC,EAAA,IAAmBC,EAAA;AAC/C,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAJ;AAAA,MACA,WAAWK,EAAeN,CAAS;AAAA,MACnC,gBAAAE;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASK,IAAoB;AAClC,QAAM,EAAE,WAAAP,GAAW,SAAAC,GAAS,cAAAO,GAAc,eAAAC,EAAA,IACxCN,EAAA;AACF,SACE,gBAAAC;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,SAAAT;AAAA,MACA,WAAWK,EAAeN,CAAS;AAAA,MACnC,cAAAQ;AAAA,MACA,eAAeC,GAAe;AAAA,IAAA;AAAA,EAAA;AAGpC;AAGO,SAASE,IAAoB;AAClC,QAAM,EAAE,SAAAV,GAAS,cAAAO,GAAc,eAAAC,EAAA,IAAkBN,EAAA;AACjD,SACE,gBAAAC;AAAA,IAACQ;AAAA,IAAA;AAAA,MACC,SAAAX;AAAA,MACA,cAAcK,EAAeE,CAAY;AAAA,MACzC,eAAeC,GAAe;AAAA,IAAA;AAAA,EAAA;AAGpC;AAEO,SAASI,IAA0B;AACxC,QAAM,EAAE,SAAAZ,GAAS,cAAAO,EAAA,IAAiBL,EAAA;AAClC,2BAAQW,GAAA,EAAc,SAAAb,GAAkB,cAAcK,EAAeE,CAAY,GAAG;AACtF;AAEO,SAASO,IAA0B;AACxC,QAAM,EAAE,SAAAd,GAAS,cAAAO,GAAc,gBAAAQ,EAAA,IAAmBb,EAAA;AAClD,SACE,gBAAAC;AAAA,IAACa;AAAA,IAAA;AAAA,MACC,SAAAhB;AAAA,MACA,cAAcK,EAAeE,CAAY;AAAA,MACzC,gBAAAQ;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASE,IAAmB;AACjC,QAAM,EAAE,SAAAjB,GAAS,cAAAO,GAAc,gBAAAQ,EAAA,IAAmBb,EAAA;AAClD,SACE,gBAAAC;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,SAAAlB;AAAA,MACA,cAAcK,EAAeE,CAAY;AAAA,MACzC,gBAAAQ;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASI,IAAiB;AAC/B,QAAM,EAAE,SAAAnB,EAAA,IAAYE,EAAA,GACd,EAAE,QAAAkB,EAAA,IAAWC,EAAA;AACnB,EAAAC,EAAQ,2BAA2B;AACnC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,2BAA2B;AACxD,SACE,gBAAArB;AAAA,IAACiB;AAAA,IAAA;AAAA,MACC,SAAS,MAAM;AACb,QAAApB,EAAQyB,EAAgB,MAAM;AAAA,MAChC;AAAA,MACA,SAAQ;AAAA,MAEP,YAAE,gBAAgB;AAAA,IAAA;AAAA,EAAA;AAGzB;"}
1
+ {"version":3,"file":"OnboardingFlowComponents.js","sources":["../../../../src/components/Contractor/OnboardingFlow/OnboardingFlowComponents.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { ContractorList } from '../ContractorList'\nimport { ContractorProfile } from '../Profile'\nimport { Address } from '../Address'\nimport { PaymentMethod } from '../PaymentMethod/PaymentMethod'\nimport { NewHireReport } from '../NewHireReport/NewHireReport'\nimport { ContractorSubmit } from '../Submit/Submit'\nimport type { ContractorDetailsFormData } from '../Profile/shared'\nimport type { AddressDefaultValues } from '../Address'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\n\n/**\n * Default pre-fill values for the contractor onboarding flow.\n * At least one of `profile` or `address` must be provided.\n *\n * @public\n */\nexport type OnboardingFlowDefaultValues = RequireAtLeastOne<{\n profile?: Partial<ContractorDetailsFormData>\n address?: AddressDefaultValues\n}>\n/**\n * Props for {@link OnboardingFlow}.\n *\n * @public\n */\nexport interface OnboardingFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n /** Default values for individual flow step components — `profile` and/or `address` sub-objects. */\n defaultValues?: RequireAtLeastOne<OnboardingFlowDefaultValues>\n}\n/** @internal */\nexport interface OnboardingFlowContextInterface extends FlowContextInterface {\n /** The associated company identifier. */\n companyId: string\n /** The contractor currently being onboarded; populated once the profile step creates or selects one. */\n contractorId?: string\n /** Default values for individual flow step components. */\n defaultValues?: OnboardingFlowDefaultValues\n /** True when the contractor will be self-onboarding; switches the flow to the shorter self-onboarding path. */\n selfOnboarding?: boolean\n /** True while the new hire report step should be shown; false once the contractor has advanced past the admin's initial onboarding pass. */\n showNewHireReport?: boolean\n /** Success message to display on the contractor list when returning from a completed sub-flow. */\n successMessage?: string\n}\n\n/** @internal */\nexport function ContractorListContextual() {\n const { companyId, onEvent, successMessage } = useFlow<OnboardingFlowContextInterface>()\n return (\n <ContractorList\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n successMessage={successMessage}\n />\n )\n}\n\n/** @internal */\nexport function ProfileContextual() {\n const { companyId, onEvent, contractorId, defaultValues } =\n useFlow<OnboardingFlowContextInterface>()\n return (\n <ContractorProfile\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n contractorId={contractorId}\n defaultValues={defaultValues?.profile}\n />\n )\n}\n\n/** @internal */\nexport function AddressContextual() {\n const { onEvent, contractorId, defaultValues } = useFlow<OnboardingFlowContextInterface>()\n return (\n <Address\n onEvent={onEvent}\n contractorId={ensureRequired(contractorId)}\n defaultValues={defaultValues?.address}\n />\n )\n}\n/** @internal */\nexport function PaymentMethodContextual() {\n const { onEvent, contractorId } = useFlow<OnboardingFlowContextInterface>()\n return <PaymentMethod onEvent={onEvent} contractorId={ensureRequired(contractorId)} />\n}\n/** @internal */\nexport function NewHireReportContextual() {\n const { onEvent, contractorId, selfOnboarding } = useFlow<OnboardingFlowContextInterface>()\n return (\n <NewHireReport\n onEvent={onEvent}\n contractorId={ensureRequired(contractorId)}\n selfOnboarding={selfOnboarding}\n />\n )\n}\n/** @internal */\nexport function SubmitContextual() {\n const { onEvent, contractorId, selfOnboarding } = useFlow<OnboardingFlowContextInterface>()\n return (\n <ContractorSubmit\n onEvent={onEvent}\n contractorId={ensureRequired(contractorId)}\n selfOnboarding={selfOnboarding}\n />\n )\n}\n\n/** @internal */\nexport function ProgressBarCta() {\n const { onEvent } = useFlow<OnboardingFlowContextInterface>()\n const { Button } = useComponentContext()\n useI18n('Contractor.ContractorList')\n const { t } = useTranslation('Contractor.ContractorList')\n return (\n <Button\n onClick={() => {\n onEvent(componentEvents.CANCEL)\n }}\n variant=\"secondary\"\n >\n {t('progressBarCta')}\n </Button>\n )\n}\n"],"names":["ContractorListContextual","companyId","onEvent","successMessage","useFlow","jsx","ContractorList","ensureRequired","ProfileContextual","contractorId","defaultValues","ContractorProfile","AddressContextual","Address","PaymentMethodContextual","PaymentMethod","NewHireReportContextual","selfOnboarding","NewHireReport","SubmitContextual","ContractorSubmit","ProgressBarCta","Button","useComponentContext","useI18n","t","useTranslation","componentEvents"],"mappings":";;;;;;;;;;;;;AAuDO,SAASA,IAA2B;AACzC,QAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,gBAAAC,EAAA,IAAmBC,EAAA;AAC/C,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAJ;AAAA,MACA,WAAWK,EAAeN,CAAS;AAAA,MACnC,gBAAAE;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASK,IAAoB;AAClC,QAAM,EAAE,WAAAP,GAAW,SAAAC,GAAS,cAAAO,GAAc,eAAAC,EAAA,IACxCN,EAAA;AACF,SACE,gBAAAC;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,SAAAT;AAAA,MACA,WAAWK,EAAeN,CAAS;AAAA,MACnC,cAAAQ;AAAA,MACA,eAAeC,GAAe;AAAA,IAAA;AAAA,EAAA;AAGpC;AAGO,SAASE,IAAoB;AAClC,QAAM,EAAE,SAAAV,GAAS,cAAAO,GAAc,eAAAC,EAAA,IAAkBN,EAAA;AACjD,SACE,gBAAAC;AAAA,IAACQ;AAAA,IAAA;AAAA,MACC,SAAAX;AAAA,MACA,cAAcK,EAAeE,CAAY;AAAA,MACzC,eAAeC,GAAe;AAAA,IAAA;AAAA,EAAA;AAGpC;AAEO,SAASI,IAA0B;AACxC,QAAM,EAAE,SAAAZ,GAAS,cAAAO,EAAA,IAAiBL,EAAA;AAClC,2BAAQW,GAAA,EAAc,SAAAb,GAAkB,cAAcK,EAAeE,CAAY,GAAG;AACtF;AAEO,SAASO,IAA0B;AACxC,QAAM,EAAE,SAAAd,GAAS,cAAAO,GAAc,gBAAAQ,EAAA,IAAmBb,EAAA;AAClD,SACE,gBAAAC;AAAA,IAACa;AAAA,IAAA;AAAA,MACC,SAAAhB;AAAA,MACA,cAAcK,EAAeE,CAAY;AAAA,MACzC,gBAAAQ;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASE,IAAmB;AACjC,QAAM,EAAE,SAAAjB,GAAS,cAAAO,GAAc,gBAAAQ,EAAA,IAAmBb,EAAA;AAClD,SACE,gBAAAC;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,SAAAlB;AAAA,MACA,cAAcK,EAAeE,CAAY;AAAA,MACzC,gBAAAQ;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASI,IAAiB;AAC/B,QAAM,EAAE,SAAAnB,EAAA,IAAYE,EAAA,GACd,EAAE,QAAAkB,EAAA,IAAWC,EAAA;AACnB,EAAAC,EAAQ,2BAA2B;AACnC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,2BAA2B;AACxD,SACE,gBAAArB;AAAA,IAACiB;AAAA,IAAA;AAAA,MACC,SAAS,MAAM;AACb,QAAApB,EAAQyB,EAAgB,MAAM;AAAA,MAChC;AAAA,MACA,SAAQ;AAAA,MAEP,YAAE,gBAAgB;AAAA,IAAA;AAAA,EAAA;AAGzB;"}
@@ -1,136 +1,206 @@
1
- import { state as a, transition as t, reduce as r, guard as i } from "robot3";
2
- import { ContractorListContextual as l, AddressContextual as T, NewHireReportContextual as O, ProfileContextual as p, ProgressBarCta as R, SubmitContextual as C, PaymentMethodContextual as m } from "./OnboardingFlowComponents.js";
3
- import { componentEvents as n } from "../../../shared/constants.js";
4
- const u = 5, E = 3, s = (o, e = u) => ({
5
- type: "progress",
6
- currentStep: o,
7
- totalSteps: e,
8
- cta: R
9
- }), d = (o) => (e) => ({
10
- ...e,
11
- ...o
12
- }), c = () => t(
1
+ import { state as d, transition as r, reduce as t, guard as i } from "robot3";
2
+ import { ContractorListContextual as f, SubmitContextual as l, NewHireReportContextual as R, PaymentMethodContextual as h, AddressContextual as g, ProfileContextual as N, ProgressBarCta as b } from "./OnboardingFlowComponents.js";
3
+ import { componentEvents as n, ContractorOnboardingStatus as u } from "../../../shared/constants.js";
4
+ const T = /* @__PURE__ */ new Set([
5
+ u.ADMIN_ONBOARDING_INCOMPLETE,
6
+ u.SELF_ONBOARDING_NOT_INVITED
7
+ ]), O = (e) => !e || T.has(e), m = (e, o) => {
8
+ const a = ["profile"];
9
+ return e || a.push("address", "paymentMethod"), o && a.push("newHireReport"), a.push("submit"), a;
10
+ }, s = (e, {
11
+ selfOnboarding: o = !1,
12
+ showNewHireReport: a = !0
13
+ } = {}) => {
14
+ const c = m(o, a);
15
+ return {
16
+ type: "progress",
17
+ currentStep: c.indexOf(e) + 1,
18
+ totalSteps: c.length,
19
+ cta: b
20
+ };
21
+ }, w = (e) => (o) => ({
22
+ ...o,
23
+ ...e
24
+ }), p = () => r(
13
25
  n.CANCEL,
14
26
  "list",
15
- r(
16
- d({
17
- component: l,
27
+ t(
28
+ w({
29
+ component: f,
18
30
  header: null,
19
31
  contractorId: void 0,
20
32
  successMessage: void 0
21
33
  })
22
34
  )
23
- ), g = {
24
- list: a(
25
- t(
35
+ ), H = {
36
+ list: d(
37
+ r(
26
38
  n.CONTRACTOR_CREATE,
27
39
  "profile",
28
- r(
29
- d({
30
- component: p,
31
- header: s(1),
40
+ t(
41
+ w({
42
+ component: N,
43
+ header: s("profile"),
32
44
  contractorId: void 0,
33
45
  successMessage: void 0
34
46
  })
35
47
  )
36
48
  ),
37
- t(
49
+ r(
38
50
  n.CONTRACTOR_UPDATE,
39
51
  "profile",
40
- r(
41
- (o, e) => ({
42
- ...o,
43
- component: p,
44
- header: s(1),
45
- contractorId: e.payload.contractorId,
52
+ t(
53
+ (e, o) => ({
54
+ ...e,
55
+ component: N,
56
+ header: s("profile"),
57
+ contractorId: o.payload.contractorId,
46
58
  successMessage: void 0
47
59
  })
48
60
  )
49
61
  )
50
62
  ),
51
- profile: a(
52
- c(),
53
- t(
63
+ profile: d(
64
+ p(),
65
+ r(
54
66
  n.CONTRACTOR_PROFILE_DONE,
55
67
  "address",
56
- r(
57
- (o, e) => ({
58
- ...o,
59
- component: T,
60
- header: s(2),
61
- contractorId: e.payload.contractorId,
62
- selfOnboarding: e.payload.selfOnboarding
63
- })
68
+ t(
69
+ (e, o) => {
70
+ const a = O(o.payload.onboardingStatus);
71
+ return {
72
+ ...e,
73
+ component: g,
74
+ header: s("address", {
75
+ selfOnboarding: o.payload.selfOnboarding,
76
+ showNewHireReport: a
77
+ }),
78
+ contractorId: o.payload.contractorId,
79
+ selfOnboarding: o.payload.selfOnboarding,
80
+ showNewHireReport: a
81
+ };
82
+ }
64
83
  ),
65
- i((o, e) => !e.payload.selfOnboarding)
84
+ i((e, o) => !o.payload.selfOnboarding)
66
85
  ),
67
- t(
86
+ r(
68
87
  n.CONTRACTOR_PROFILE_DONE,
69
88
  "newHireReport",
70
- r(
71
- (o, e) => ({
72
- ...o,
73
- component: O,
74
- header: s(2, E),
75
- contractorId: e.payload.contractorId,
76
- selfOnboarding: e.payload.selfOnboarding
89
+ t(
90
+ (e, o) => ({
91
+ ...e,
92
+ component: R,
93
+ header: s("newHireReport", {
94
+ selfOnboarding: o.payload.selfOnboarding,
95
+ showNewHireReport: !0
96
+ }),
97
+ contractorId: o.payload.contractorId,
98
+ selfOnboarding: o.payload.selfOnboarding,
99
+ showNewHireReport: !0
77
100
  })
78
101
  ),
79
- i((o, e) => e.payload.selfOnboarding)
102
+ i(
103
+ (e, o) => o.payload.selfOnboarding && O(o.payload.onboardingStatus)
104
+ )
105
+ ),
106
+ r(
107
+ n.CONTRACTOR_PROFILE_DONE,
108
+ "submit",
109
+ t(
110
+ (e, o) => ({
111
+ ...e,
112
+ component: l,
113
+ header: s("submit", {
114
+ selfOnboarding: o.payload.selfOnboarding,
115
+ showNewHireReport: !1
116
+ }),
117
+ contractorId: o.payload.contractorId,
118
+ selfOnboarding: o.payload.selfOnboarding,
119
+ showNewHireReport: !1
120
+ })
121
+ ),
122
+ i(
123
+ (e, o) => o.payload.selfOnboarding && !O(o.payload.onboardingStatus)
124
+ )
80
125
  )
81
126
  ),
82
- address: a(
83
- c(),
84
- t(
127
+ address: d(
128
+ p(),
129
+ r(
85
130
  n.CONTRACTOR_ADDRESS_DONE,
86
131
  "paymentMethod",
87
- r(d({ component: m, header: s(3) }))
132
+ t((e) => ({
133
+ ...e,
134
+ component: h,
135
+ header: s("paymentMethod", {
136
+ selfOnboarding: e.selfOnboarding,
137
+ showNewHireReport: e.showNewHireReport
138
+ })
139
+ }))
88
140
  )
89
141
  ),
90
- paymentMethod: a(
91
- c(),
92
- t(
142
+ paymentMethod: d(
143
+ p(),
144
+ r(
93
145
  n.CONTRACTOR_PAYMENT_METHOD_DONE,
94
146
  "newHireReport",
95
- r(
96
- d({
97
- component: O,
98
- header: s(4)
147
+ t((e) => ({
148
+ ...e,
149
+ component: R,
150
+ header: s("newHireReport", {
151
+ selfOnboarding: e.selfOnboarding,
152
+ showNewHireReport: e.showNewHireReport
99
153
  })
100
- )
154
+ })),
155
+ i((e) => e.showNewHireReport !== !1)
156
+ ),
157
+ r(
158
+ n.CONTRACTOR_PAYMENT_METHOD_DONE,
159
+ "submit",
160
+ t((e) => ({
161
+ ...e,
162
+ component: l,
163
+ header: s("submit", {
164
+ selfOnboarding: e.selfOnboarding,
165
+ showNewHireReport: e.showNewHireReport
166
+ })
167
+ })),
168
+ i((e) => e.showNewHireReport === !1)
101
169
  )
102
170
  ),
103
- newHireReport: a(
104
- c(),
105
- t(
171
+ newHireReport: d(
172
+ p(),
173
+ r(
106
174
  n.CONTRACTOR_NEW_HIRE_REPORT_DONE,
107
175
  "submit",
108
- r(
109
- d({
110
- component: C,
111
- header: s(5)
176
+ t((e) => ({
177
+ ...e,
178
+ component: l,
179
+ header: s("submit", {
180
+ selfOnboarding: e.selfOnboarding,
181
+ showNewHireReport: e.showNewHireReport
112
182
  })
113
- )
183
+ }))
114
184
  )
115
185
  ),
116
- submit: a(
117
- c(),
118
- t(
186
+ submit: d(
187
+ p(),
188
+ r(
119
189
  n.CONTRACTOR_SUBMIT_DONE,
120
190
  "list",
121
- r(
122
- (o, e) => ({
123
- ...o,
124
- component: l,
191
+ t(
192
+ (e, o) => ({
193
+ ...e,
194
+ component: f,
125
195
  header: null,
126
- successMessage: e.payload.message
196
+ successMessage: o.payload.message
127
197
  })
128
198
  )
129
199
  )
130
200
  ),
131
- final: a()
201
+ final: d()
132
202
  };
133
203
  export {
134
- g as onboardingMachine
204
+ H as onboardingMachine
135
205
  };
136
206
  //# sourceMappingURL=onboardingStateMachine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onboardingStateMachine.js","sources":["../../../../src/components/Contractor/OnboardingFlow/onboardingStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport {\n AddressContextual,\n ContractorListContextual,\n NewHireReportContextual,\n PaymentMethodContextual,\n ProfileContextual,\n ProgressBarCta,\n SubmitContextual,\n type OnboardingFlowContextInterface,\n} from './OnboardingFlowComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport type { FlowHeaderConfig } from '@/components/Flow/useFlow'\n\ntype EventPayloads = {\n [componentEvents.CONTRACTOR_UPDATE]: {\n contractorId: string\n }\n [componentEvents.CONTRACTOR_PROFILE_DONE]: { contractorId: string; selfOnboarding: boolean }\n [componentEvents.CONTRACTOR_SUBMIT_DONE]: { message?: string }\n}\n\nconst TOTAL_STEPS_DEFAULT = 5\nconst TOTAL_STEPS_SELF_ONBOARDING = 3\n\nconst progressHeader = (\n currentStep: number,\n totalSteps: number = TOTAL_STEPS_DEFAULT,\n): FlowHeaderConfig => ({\n type: 'progress',\n currentStep,\n totalSteps,\n cta: ProgressBarCta,\n})\n\nconst createReducer = (props: Partial<OnboardingFlowContextInterface>) => {\n return (ctx: OnboardingFlowContextInterface): OnboardingFlowContextInterface => ({\n ...ctx,\n ...props,\n })\n}\n\nconst cancelTransition = () =>\n transition(\n componentEvents.CANCEL,\n 'list',\n reduce(\n createReducer({\n component: ContractorListContextual,\n header: null,\n contractorId: undefined,\n successMessage: undefined,\n }),\n ),\n )\n\n/** @internal */\nexport const onboardingMachine = {\n list: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_CREATE,\n 'profile',\n reduce(\n createReducer({\n component: ProfileContextual,\n header: progressHeader(1),\n contractorId: undefined,\n successMessage: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CONTRACTOR_UPDATE,\n 'profile',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_UPDATE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: ProfileContextual,\n header: progressHeader(1),\n contractorId: ev.payload.contractorId,\n successMessage: undefined,\n }\n },\n ),\n ),\n ),\n profile: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_PROFILE_DONE,\n 'address',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PROFILE_DONE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: AddressContextual,\n header: progressHeader(2),\n contractorId: ev.payload.contractorId,\n selfOnboarding: ev.payload.selfOnboarding,\n }\n },\n ),\n guard((ctx, ev) => !ev.payload.selfOnboarding),\n ),\n transition(\n componentEvents.CONTRACTOR_PROFILE_DONE,\n 'newHireReport',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PROFILE_DONE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: NewHireReportContextual,\n header: progressHeader(2, TOTAL_STEPS_SELF_ONBOARDING),\n contractorId: ev.payload.contractorId,\n selfOnboarding: ev.payload.selfOnboarding,\n }\n },\n ),\n guard((ctx, ev) => ev.payload.selfOnboarding),\n ),\n ),\n address: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_ADDRESS_DONE,\n 'paymentMethod',\n reduce(createReducer({ component: PaymentMethodContextual, header: progressHeader(3) })),\n ),\n ),\n paymentMethod: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_METHOD_DONE,\n 'newHireReport',\n reduce(\n createReducer({\n component: NewHireReportContextual,\n header: progressHeader(4),\n }),\n ),\n ),\n ),\n newHireReport: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_NEW_HIRE_REPORT_DONE,\n 'submit',\n reduce(\n createReducer({\n component: SubmitContextual,\n header: progressHeader(5),\n }),\n ),\n ),\n ),\n submit: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_SUBMIT_DONE,\n 'list',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_SUBMIT_DONE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: ContractorListContextual,\n header: null,\n successMessage: ev.payload.message,\n }\n },\n ),\n ),\n ),\n final: state<MachineTransition>(),\n}\n"],"names":["TOTAL_STEPS_DEFAULT","TOTAL_STEPS_SELF_ONBOARDING","progressHeader","currentStep","totalSteps","ProgressBarCta","createReducer","props","ctx","cancelTransition","transition","componentEvents","reduce","ContractorListContextual","onboardingMachine","state","ProfileContextual","ev","AddressContextual","guard","NewHireReportContextual","PaymentMethodContextual","SubmitContextual"],"mappings":"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"}
1
+ {"version":3,"file":"onboardingStateMachine.js","sources":["../../../../src/components/Contractor/OnboardingFlow/onboardingStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport {\n AddressContextual,\n ContractorListContextual,\n NewHireReportContextual,\n PaymentMethodContextual,\n ProfileContextual,\n ProgressBarCta,\n SubmitContextual,\n type OnboardingFlowContextInterface,\n} from './OnboardingFlowComponents'\nimport { componentEvents, ContractorOnboardingStatus } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport type { FlowHeaderConfig } from '@/components/Flow/useFlow'\n\ntype EventPayloads = {\n [componentEvents.CONTRACTOR_UPDATE]: {\n contractorId: string\n }\n [componentEvents.CONTRACTOR_PROFILE_DONE]: {\n contractorId: string\n onboardingStatus?: Contractor['onboardingStatus']\n selfOnboarding: boolean\n }\n [componentEvents.CONTRACTOR_SUBMIT_DONE]: { message?: string }\n}\n\n// The new hire report belongs to the contractor's initial onboarding pass only.\n// These are the statuses where the admin still owns first-time setup; once the\n// contractor advances to admin review, an active self-onboarding stage, or\n// completion, the report is settled and the step is skipped. A missing status\n// (a just-created contractor) counts as initial. We read the post-save status\n// off the profile/done contractor because the API auto-advances to\n// admin_onboarding_review the instant the last required field is saved.\nconst INITIAL_ONBOARDING_STATUSES = new Set<Contractor['onboardingStatus']>([\n ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n ContractorOnboardingStatus.SELF_ONBOARDING_NOT_INVITED,\n])\n\nconst showNewHireReportForStatus = (status?: Contractor['onboardingStatus']): boolean =>\n !status || INITIAL_ONBOARDING_STATUSES.has(status)\n\ntype OnboardingStep = 'profile' | 'address' | 'paymentMethod' | 'newHireReport' | 'submit'\n\n// The flow is a linear list of steps. The admin-only steps (address, payment\n// method) drop out when the contractor self-onboards, and the new hire report\n// drops out once past the initial onboarding pass.\nconst stepsForPath = (selfOnboarding: boolean, showNewHireReport: boolean): OnboardingStep[] => {\n const steps: OnboardingStep[] = ['profile']\n if (!selfOnboarding) steps.push('address', 'paymentMethod')\n if (showNewHireReport) steps.push('newHireReport')\n steps.push('submit')\n return steps\n}\n\n// The defaults describe the profile step, which renders before the path is\n// known: assume the longest path so it reads \"1 of 5\".\nconst progressHeader = (\n currentStep: OnboardingStep,\n {\n selfOnboarding = false,\n showNewHireReport = true,\n }: { selfOnboarding?: boolean; showNewHireReport?: boolean } = {},\n): FlowHeaderConfig => {\n const steps = stepsForPath(selfOnboarding, showNewHireReport)\n return {\n type: 'progress',\n currentStep: steps.indexOf(currentStep) + 1,\n totalSteps: steps.length,\n cta: ProgressBarCta,\n }\n}\n\nconst createReducer = (props: Partial<OnboardingFlowContextInterface>) => {\n return (ctx: OnboardingFlowContextInterface): OnboardingFlowContextInterface => ({\n ...ctx,\n ...props,\n })\n}\n\nconst cancelTransition = () =>\n transition(\n componentEvents.CANCEL,\n 'list',\n reduce(\n createReducer({\n component: ContractorListContextual,\n header: null,\n contractorId: undefined,\n successMessage: undefined,\n }),\n ),\n )\n\n/** @internal */\nexport const onboardingMachine = {\n list: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_CREATE,\n 'profile',\n reduce(\n createReducer({\n component: ProfileContextual,\n header: progressHeader('profile'),\n contractorId: undefined,\n successMessage: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CONTRACTOR_UPDATE,\n 'profile',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_UPDATE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: ProfileContextual,\n header: progressHeader('profile'),\n contractorId: ev.payload.contractorId,\n successMessage: undefined,\n }\n },\n ),\n ),\n ),\n profile: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_PROFILE_DONE,\n 'address',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PROFILE_DONE>,\n ): OnboardingFlowContextInterface => {\n const showNewHireReport = showNewHireReportForStatus(ev.payload.onboardingStatus)\n return {\n ...ctx,\n component: AddressContextual,\n header: progressHeader('address', {\n selfOnboarding: ev.payload.selfOnboarding,\n showNewHireReport,\n }),\n contractorId: ev.payload.contractorId,\n selfOnboarding: ev.payload.selfOnboarding,\n showNewHireReport,\n }\n },\n ),\n guard((ctx, ev) => !ev.payload.selfOnboarding),\n ),\n transition(\n componentEvents.CONTRACTOR_PROFILE_DONE,\n 'newHireReport',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PROFILE_DONE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: NewHireReportContextual,\n header: progressHeader('newHireReport', {\n selfOnboarding: ev.payload.selfOnboarding,\n showNewHireReport: true,\n }),\n contractorId: ev.payload.contractorId,\n selfOnboarding: ev.payload.selfOnboarding,\n showNewHireReport: true,\n }\n },\n ),\n guard(\n (ctx, ev) =>\n ev.payload.selfOnboarding && showNewHireReportForStatus(ev.payload.onboardingStatus),\n ),\n ),\n transition(\n componentEvents.CONTRACTOR_PROFILE_DONE,\n 'submit',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PROFILE_DONE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: SubmitContextual,\n header: progressHeader('submit', {\n selfOnboarding: ev.payload.selfOnboarding,\n showNewHireReport: false,\n }),\n contractorId: ev.payload.contractorId,\n selfOnboarding: ev.payload.selfOnboarding,\n showNewHireReport: false,\n }\n },\n ),\n guard(\n (ctx, ev) =>\n ev.payload.selfOnboarding && !showNewHireReportForStatus(ev.payload.onboardingStatus),\n ),\n ),\n ),\n address: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_ADDRESS_DONE,\n 'paymentMethod',\n reduce((ctx: OnboardingFlowContextInterface): OnboardingFlowContextInterface => ({\n ...ctx,\n component: PaymentMethodContextual,\n header: progressHeader('paymentMethod', {\n selfOnboarding: ctx.selfOnboarding,\n showNewHireReport: ctx.showNewHireReport,\n }),\n })),\n ),\n ),\n paymentMethod: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_METHOD_DONE,\n 'newHireReport',\n reduce((ctx: OnboardingFlowContextInterface): OnboardingFlowContextInterface => ({\n ...ctx,\n component: NewHireReportContextual,\n header: progressHeader('newHireReport', {\n selfOnboarding: ctx.selfOnboarding,\n showNewHireReport: ctx.showNewHireReport,\n }),\n })),\n guard((ctx: OnboardingFlowContextInterface) => ctx.showNewHireReport !== false),\n ),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_METHOD_DONE,\n 'submit',\n reduce((ctx: OnboardingFlowContextInterface): OnboardingFlowContextInterface => ({\n ...ctx,\n component: SubmitContextual,\n header: progressHeader('submit', {\n selfOnboarding: ctx.selfOnboarding,\n showNewHireReport: ctx.showNewHireReport,\n }),\n })),\n guard((ctx: OnboardingFlowContextInterface) => ctx.showNewHireReport === false),\n ),\n ),\n newHireReport: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_NEW_HIRE_REPORT_DONE,\n 'submit',\n reduce((ctx: OnboardingFlowContextInterface): OnboardingFlowContextInterface => ({\n ...ctx,\n component: SubmitContextual,\n header: progressHeader('submit', {\n selfOnboarding: ctx.selfOnboarding,\n showNewHireReport: ctx.showNewHireReport,\n }),\n })),\n ),\n ),\n submit: state<MachineTransition>(\n cancelTransition(),\n transition(\n componentEvents.CONTRACTOR_SUBMIT_DONE,\n 'list',\n reduce(\n (\n ctx: OnboardingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_SUBMIT_DONE>,\n ): OnboardingFlowContextInterface => {\n return {\n ...ctx,\n component: ContractorListContextual,\n header: null,\n successMessage: ev.payload.message,\n }\n },\n ),\n ),\n ),\n final: state<MachineTransition>(),\n}\n"],"names":["INITIAL_ONBOARDING_STATUSES","ContractorOnboardingStatus","showNewHireReportForStatus","status","stepsForPath","selfOnboarding","showNewHireReport","steps","progressHeader","currentStep","ProgressBarCta","createReducer","props","ctx","cancelTransition","transition","componentEvents","reduce","ContractorListContextual","onboardingMachine","state","ProfileContextual","ev","AddressContextual","guard","NewHireReportContextual","SubmitContextual","PaymentMethodContextual"],"mappings":"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"}
@@ -1,48 +1,49 @@
1
- import { jsx as i, jsxs as o, Fragment as p } from "react/jsx-runtime";
1
+ import { jsx as i, jsxs as t, Fragment as p } from "react/jsx-runtime";
2
2
  import { useTranslation as g } from "react-i18next";
3
3
  import b from "classnames";
4
4
  import { useContractorDetailsForm as h } from "./shared/useContractorDetailsForm/useContractorDetailsForm.js";
5
5
  import D from "./ContractorProfile.module.scss.js";
6
- import { BaseLayout as m } from "../../Base/Base.js";
6
+ import { BaseLayout as d } from "../../Base/Base.js";
7
7
  import "../../Base/useBase.js";
8
8
  import { SDKFormProvider as E } from "../../../partner-hook-utils/form/SDKFormProvider.js";
9
9
  import { Form as O } from "../../Common/Form/Form.js";
10
10
  import { Flex as a } from "../../Common/Flex/Flex.js";
11
11
  import { useComponentContext as N } from "../../../contexts/ComponentAdapter/useComponentContext.js";
12
12
  import "react";
13
- import { componentEvents as d } from "../../../shared/constants.js";
13
+ import { componentEvents as m } from "../../../shared/constants.js";
14
14
  const R = {
15
15
  update: ["businessName", "ein"]
16
16
  };
17
17
  function A({
18
- contractorId: c,
18
+ contractorId: u,
19
19
  onEvent: l,
20
- className: u
20
+ className: c
21
21
  }) {
22
- const { t: e } = g("Contractor.Profile"), t = N(), n = h({
23
- contractorId: c,
22
+ const { t: e } = g("Contractor.Profile"), s = N(), n = h({
23
+ contractorId: u,
24
24
  withSelfOnboardingField: !1,
25
25
  defaultValues: { selfOnboarding: !0 },
26
26
  optionalFieldsToRequire: R
27
27
  });
28
28
  if (n.isLoading)
29
- return /* @__PURE__ */ i(m, { isLoading: !0, error: n.errorHandling.errors });
29
+ return /* @__PURE__ */ i(d, { isLoading: !0, error: n.errorHandling.errors });
30
30
  const { Fields: r } = n.form, f = async () => {
31
- const s = await n.actions.onSubmit();
32
- s && (l(d.CONTRACTOR_UPDATED, s.data), l(d.CONTRACTOR_PROFILE_DONE, {
33
- contractorId: s.data.uuid,
31
+ const o = await n.actions.onSubmit();
32
+ o && (l(m.CONTRACTOR_UPDATED, o.data), l(m.CONTRACTOR_PROFILE_DONE, {
33
+ contractorId: o.data.uuid,
34
+ onboardingStatus: o.data.onboardingStatus,
34
35
  selfOnboarding: !0
35
36
  }));
36
37
  };
37
- return /* @__PURE__ */ i("section", { className: b(D.root, u), children: /* @__PURE__ */ i(m, { error: n.errorHandling.errors, children: /* @__PURE__ */ i(E, { formHookResult: n, children: /* @__PURE__ */ o(O, { onSubmit: () => {
38
+ return /* @__PURE__ */ i("section", { className: b(D.root, c), children: /* @__PURE__ */ i(d, { error: n.errorHandling.errors, children: /* @__PURE__ */ i(E, { formHookResult: n, children: /* @__PURE__ */ t(O, { onSubmit: () => {
38
39
  f();
39
40
  }, children: [
40
- /* @__PURE__ */ o(a, { flexDirection: "column", gap: 20, alignItems: "stretch", children: [
41
- /* @__PURE__ */ i("header", { children: /* @__PURE__ */ o(a, { flexDirection: "column", gap: 4, children: [
42
- /* @__PURE__ */ i(t.Heading, { as: "h2", children: e("selfOnboarding.title") }),
43
- /* @__PURE__ */ i(t.Text, { variant: "supporting", children: e("selfOnboarding.businessDescription") })
41
+ /* @__PURE__ */ t(a, { flexDirection: "column", gap: 20, alignItems: "stretch", children: [
42
+ /* @__PURE__ */ i("header", { children: /* @__PURE__ */ t(a, { flexDirection: "column", gap: 4, children: [
43
+ /* @__PURE__ */ i(s.Heading, { as: "h2", children: e("selfOnboarding.title") }),
44
+ /* @__PURE__ */ i(s.Text, { variant: "supporting", children: e("selfOnboarding.businessDescription") })
44
45
  ] }) }),
45
- r.BusinessName && /* @__PURE__ */ o(p, { children: [
46
+ r.BusinessName && /* @__PURE__ */ t(p, { children: [
46
47
  /* @__PURE__ */ i(
47
48
  r.BusinessName,
48
49
  {
@@ -63,7 +64,7 @@ function A({
63
64
  ] })
64
65
  ] }),
65
66
  /* @__PURE__ */ i(a, { gap: 12, justifyContent: "flex-end", children: /* @__PURE__ */ i(
66
- t.Button,
67
+ s.Button,
67
68
  {
68
69
  type: "submit",
69
70
  variant: "primary",
@@ -1 +1 @@
1
- {"version":3,"file":"BusinessSelfOnboardingProfile.js","sources":["../../../../src/components/Contractor/Profile/BusinessSelfOnboardingProfile.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport {\n useContractorDetailsForm,\n type ContractorDetailsOptionalFieldsToRequire,\n} from './shared/useContractorDetailsForm'\nimport type { ContractorSelfOnboardingProfileProps } from './SelfOnboardingContractorProfile'\nimport styles from './ContractorProfile.module.scss'\nimport { BaseLayout } from '@/components/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { Form } from '@/components/Common/Form'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { componentEvents } from '@/shared/constants'\n\nconst BUSINESS_REQUIRED_FIELDS: ContractorDetailsOptionalFieldsToRequire = {\n update: ['businessName', 'ein'],\n}\n\n/**\n * Self-onboarding profile for a business contractor — collects business name\n * and EIN.\n *\n * @internal\n */\nexport function BusinessSelfOnboardingProfile({\n contractorId,\n onEvent,\n className,\n}: ContractorSelfOnboardingProfileProps) {\n const { t } = useTranslation('Contractor.Profile')\n const Components = useComponentContext()\n\n const contractor = useContractorDetailsForm({\n contractorId,\n withSelfOnboardingField: false,\n defaultValues: { selfOnboarding: true },\n optionalFieldsToRequire: BUSINESS_REQUIRED_FIELDS,\n })\n\n if (contractor.isLoading) {\n return <BaseLayout isLoading error={contractor.errorHandling.errors} />\n }\n\n const { Fields } = contractor.form\n\n const handleSubmit = async () => {\n const result = await contractor.actions.onSubmit()\n if (!result) return\n\n onEvent(componentEvents.CONTRACTOR_UPDATED, result.data)\n onEvent(componentEvents.CONTRACTOR_PROFILE_DONE, {\n contractorId: result.data.uuid,\n selfOnboarding: true,\n })\n }\n\n return (\n <section className={classNames(styles.root, className)}>\n <BaseLayout error={contractor.errorHandling.errors}>\n <SDKFormProvider formHookResult={contractor}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\" gap={20} alignItems=\"stretch\">\n <header>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('selfOnboarding.title')}</Components.Heading>\n <Components.Text variant=\"supporting\">\n {t('selfOnboarding.businessDescription')}\n </Components.Text>\n </Flex>\n </header>\n\n {Fields.BusinessName && (\n <>\n <Fields.BusinessName\n label={t('fields.businessName.label')}\n validationMessages={{ REQUIRED: t('validations.businessName') }}\n />\n {Fields.Ein && (\n <Fields.Ein\n label={t('fields.ein.label')}\n validationMessages={{\n INVALID_EIN: t('validations.einFormat'),\n REQUIRED: t('validations.ein'),\n }}\n />\n )}\n </>\n )}\n </Flex>\n\n <Flex gap={12} justifyContent=\"flex-end\">\n <Components.Button\n type=\"submit\"\n variant=\"primary\"\n isDisabled={contractor.status.isPending}\n >\n {contractor.status.isPending\n ? t('selfOnboarding.submitting')\n : t('selfOnboarding.continue')}\n </Components.Button>\n </Flex>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["BUSINESS_REQUIRED_FIELDS","BusinessSelfOnboardingProfile","contractorId","onEvent","className","t","useTranslation","Components","useComponentContext","contractor","useContractorDetailsForm","BaseLayout","Fields","handleSubmit","result","componentEvents","jsx","classNames","styles","SDKFormProvider","jsxs","Form","Flex","Fragment"],"mappings":";;;;;;;;;;;;;AAeA,MAAMA,IAAqE;AAAA,EACzE,QAAQ,CAAC,gBAAgB,KAAK;AAChC;AAQO,SAASC,EAA8B;AAAA,EAC5C,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AACF,GAAyC;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,oBAAoB,GAC3CC,IAAaC,EAAA,GAEbC,IAAaC,EAAyB;AAAA,IAC1C,cAAAR;AAAA,IACA,yBAAyB;AAAA,IACzB,eAAe,EAAE,gBAAgB,GAAA;AAAA,IACjC,yBAAyBF;AAAA,EAAA,CAC1B;AAED,MAAIS,EAAW;AACb,6BAAQE,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAW,cAAc,QAAQ;AAGvE,QAAM,EAAE,QAAAG,MAAWH,EAAW,MAExBI,IAAe,YAAY;AAC/B,UAAMC,IAAS,MAAML,EAAW,QAAQ,SAAA;AACxC,IAAKK,MAELX,EAAQY,EAAgB,oBAAoBD,EAAO,IAAI,GACvDX,EAAQY,EAAgB,yBAAyB;AAAA,MAC/C,cAAcD,EAAO,KAAK;AAAA,MAC1B,gBAAgB;AAAA,IAAA,CACjB;AAAA,EACH;AAEA,SACE,gBAAAE,EAAC,WAAA,EAAQ,WAAWC,EAAWC,EAAO,MAAMd,CAAS,GACnD,UAAA,gBAAAY,EAACL,GAAA,EAAW,OAAOF,EAAW,cAAc,QAC1C,UAAA,gBAAAO,EAACG,GAAA,EAAgB,gBAAgBV,GAC/B,UAAA,gBAAAW,EAACC,KAAK,UAAU,MAAA;AAAM,IAAKR,EAAA;AAAA,KACzB,UAAA;AAAA,IAAA,gBAAAO,EAACE,KAAK,eAAc,UAAS,KAAK,IAAI,YAAW,WAC/C,UAAA;AAAA,MAAA,gBAAAN,EAAC,YACC,UAAA,gBAAAI,EAACE,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,QAAA,gBAAAN,EAACT,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAF,EAAE,sBAAsB,GAAE;AAAA,QACvD,gBAAAW,EAACT,EAAW,MAAX,EAAgB,SAAQ,cACtB,UAAAF,EAAE,oCAAoC,EAAA,CACzC;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,MAECO,EAAO,gBACN,gBAAAQ,EAAAG,GAAA,EACE,UAAA;AAAA,QAAA,gBAAAP;AAAA,UAACJ,EAAO;AAAA,UAAP;AAAA,YACC,OAAOP,EAAE,2BAA2B;AAAA,YACpC,oBAAoB,EAAE,UAAUA,EAAE,0BAA0B,EAAA;AAAA,UAAE;AAAA,QAAA;AAAA,QAE/DO,EAAO,OACN,gBAAAI;AAAA,UAACJ,EAAO;AAAA,UAAP;AAAA,YACC,OAAOP,EAAE,kBAAkB;AAAA,YAC3B,oBAAoB;AAAA,cAClB,aAAaA,EAAE,uBAAuB;AAAA,cACtC,UAAUA,EAAE,iBAAiB;AAAA,YAAA;AAAA,UAC/B;AAAA,QAAA;AAAA,MACF,EAAA,CAEJ;AAAA,IAAA,GAEJ;AAAA,IAEA,gBAAAW,EAACM,GAAA,EAAK,KAAK,IAAI,gBAAe,YAC5B,UAAA,gBAAAN;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACC,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,YAAYE,EAAW,OAAO;AAAA,QAE7B,YAAW,OAAO,YACfJ,EAAE,2BAA2B,IAC7BA,EAAE,yBAAyB;AAAA,MAAA;AAAA,IAAA,EACjC,CACF;AAAA,EAAA,GACF,EAAA,CACF,GACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"BusinessSelfOnboardingProfile.js","sources":["../../../../src/components/Contractor/Profile/BusinessSelfOnboardingProfile.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport {\n useContractorDetailsForm,\n type ContractorDetailsOptionalFieldsToRequire,\n} from './shared/useContractorDetailsForm'\nimport type { ContractorSelfOnboardingProfileProps } from './SelfOnboardingContractorProfile'\nimport styles from './ContractorProfile.module.scss'\nimport { BaseLayout } from '@/components/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { Form } from '@/components/Common/Form'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { componentEvents } from '@/shared/constants'\n\nconst BUSINESS_REQUIRED_FIELDS: ContractorDetailsOptionalFieldsToRequire = {\n update: ['businessName', 'ein'],\n}\n\n/**\n * Self-onboarding profile for a business contractor — collects business name\n * and EIN.\n *\n * @internal\n */\nexport function BusinessSelfOnboardingProfile({\n contractorId,\n onEvent,\n className,\n}: ContractorSelfOnboardingProfileProps) {\n const { t } = useTranslation('Contractor.Profile')\n const Components = useComponentContext()\n\n const contractor = useContractorDetailsForm({\n contractorId,\n withSelfOnboardingField: false,\n defaultValues: { selfOnboarding: true },\n optionalFieldsToRequire: BUSINESS_REQUIRED_FIELDS,\n })\n\n if (contractor.isLoading) {\n return <BaseLayout isLoading error={contractor.errorHandling.errors} />\n }\n\n const { Fields } = contractor.form\n\n const handleSubmit = async () => {\n const result = await contractor.actions.onSubmit()\n if (!result) return\n\n onEvent(componentEvents.CONTRACTOR_UPDATED, result.data)\n onEvent(componentEvents.CONTRACTOR_PROFILE_DONE, {\n contractorId: result.data.uuid,\n onboardingStatus: result.data.onboardingStatus,\n selfOnboarding: true,\n })\n }\n\n return (\n <section className={classNames(styles.root, className)}>\n <BaseLayout error={contractor.errorHandling.errors}>\n <SDKFormProvider formHookResult={contractor}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\" gap={20} alignItems=\"stretch\">\n <header>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('selfOnboarding.title')}</Components.Heading>\n <Components.Text variant=\"supporting\">\n {t('selfOnboarding.businessDescription')}\n </Components.Text>\n </Flex>\n </header>\n\n {Fields.BusinessName && (\n <>\n <Fields.BusinessName\n label={t('fields.businessName.label')}\n validationMessages={{ REQUIRED: t('validations.businessName') }}\n />\n {Fields.Ein && (\n <Fields.Ein\n label={t('fields.ein.label')}\n validationMessages={{\n INVALID_EIN: t('validations.einFormat'),\n REQUIRED: t('validations.ein'),\n }}\n />\n )}\n </>\n )}\n </Flex>\n\n <Flex gap={12} justifyContent=\"flex-end\">\n <Components.Button\n type=\"submit\"\n variant=\"primary\"\n isDisabled={contractor.status.isPending}\n >\n {contractor.status.isPending\n ? t('selfOnboarding.submitting')\n : t('selfOnboarding.continue')}\n </Components.Button>\n </Flex>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["BUSINESS_REQUIRED_FIELDS","BusinessSelfOnboardingProfile","contractorId","onEvent","className","t","useTranslation","Components","useComponentContext","contractor","useContractorDetailsForm","BaseLayout","Fields","handleSubmit","result","componentEvents","jsx","classNames","styles","SDKFormProvider","jsxs","Form","Flex","Fragment"],"mappings":";;;;;;;;;;;;;AAeA,MAAMA,IAAqE;AAAA,EACzE,QAAQ,CAAC,gBAAgB,KAAK;AAChC;AAQO,SAASC,EAA8B;AAAA,EAC5C,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AACF,GAAyC;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,oBAAoB,GAC3CC,IAAaC,EAAA,GAEbC,IAAaC,EAAyB;AAAA,IAC1C,cAAAR;AAAA,IACA,yBAAyB;AAAA,IACzB,eAAe,EAAE,gBAAgB,GAAA;AAAA,IACjC,yBAAyBF;AAAA,EAAA,CAC1B;AAED,MAAIS,EAAW;AACb,6BAAQE,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAW,cAAc,QAAQ;AAGvE,QAAM,EAAE,QAAAG,MAAWH,EAAW,MAExBI,IAAe,YAAY;AAC/B,UAAMC,IAAS,MAAML,EAAW,QAAQ,SAAA;AACxC,IAAKK,MAELX,EAAQY,EAAgB,oBAAoBD,EAAO,IAAI,GACvDX,EAAQY,EAAgB,yBAAyB;AAAA,MAC/C,cAAcD,EAAO,KAAK;AAAA,MAC1B,kBAAkBA,EAAO,KAAK;AAAA,MAC9B,gBAAgB;AAAA,IAAA,CACjB;AAAA,EACH;AAEA,SACE,gBAAAE,EAAC,WAAA,EAAQ,WAAWC,EAAWC,EAAO,MAAMd,CAAS,GACnD,UAAA,gBAAAY,EAACL,GAAA,EAAW,OAAOF,EAAW,cAAc,QAC1C,UAAA,gBAAAO,EAACG,GAAA,EAAgB,gBAAgBV,GAC/B,UAAA,gBAAAW,EAACC,KAAK,UAAU,MAAA;AAAM,IAAKR,EAAA;AAAA,KACzB,UAAA;AAAA,IAAA,gBAAAO,EAACE,KAAK,eAAc,UAAS,KAAK,IAAI,YAAW,WAC/C,UAAA;AAAA,MAAA,gBAAAN,EAAC,YACC,UAAA,gBAAAI,EAACE,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,QAAA,gBAAAN,EAACT,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAF,EAAE,sBAAsB,GAAE;AAAA,QACvD,gBAAAW,EAACT,EAAW,MAAX,EAAgB,SAAQ,cACtB,UAAAF,EAAE,oCAAoC,EAAA,CACzC;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,MAECO,EAAO,gBACN,gBAAAQ,EAAAG,GAAA,EACE,UAAA;AAAA,QAAA,gBAAAP;AAAA,UAACJ,EAAO;AAAA,UAAP;AAAA,YACC,OAAOP,EAAE,2BAA2B;AAAA,YACpC,oBAAoB,EAAE,UAAUA,EAAE,0BAA0B,EAAA;AAAA,UAAE;AAAA,QAAA;AAAA,QAE/DO,EAAO,OACN,gBAAAI;AAAA,UAACJ,EAAO;AAAA,UAAP;AAAA,YACC,OAAOP,EAAE,kBAAkB;AAAA,YAC3B,oBAAoB;AAAA,cAClB,aAAaA,EAAE,uBAAuB;AAAA,cACtC,UAAUA,EAAE,iBAAiB;AAAA,YAAA;AAAA,UAC/B;AAAA,QAAA;AAAA,MACF,EAAA,CAEJ;AAAA,IAAA,GAEJ;AAAA,IAEA,gBAAAW,EAACM,GAAA,EAAK,KAAK,IAAI,gBAAe,YAC5B,UAAA,gBAAAN;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACC,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,YAAYE,EAAW,OAAO;AAAA,QAE7B,YAAW,OAAO,YACfJ,EAAE,2BAA2B,IAC7BA,EAAE,yBAAyB;AAAA,MAAA;AAAA,IAAA,EACjC,CACF;AAAA,EAAA,GACF,EAAA,CACF,GACF,GACF;AAEJ;"}
@@ -68,7 +68,7 @@ export type ContractorProfileProps = ContractorProfileAdminProps | ContractorPro
68
68
  * | ----- | ----------- | ---- |
69
69
  * | `contractor/created` | A new contractor was created successfully. | The created contractor entity |
70
70
  * | `contractor/updated` | An existing contractor was updated successfully. | The updated contractor entity |
71
- * | `contractor/profile/done` | The contractor profile step finished. | `{ contractorId: string, selfOnboarding: boolean }` |
71
+ * | `contractor/profile/done` | The contractor profile step finished. | `{ contractorId: string, onboardingStatus?: string, selfOnboarding: boolean }` |
72
72
  *
73
73
  * @param props - See {@link ContractorProfileProps}.
74
74
  * @returns The rendered contractor profile form.