@gusto/embedded-react-sdk 0.51.2 → 0.52.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/CHANGELOG.md +28 -0
- package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes.d.ts +1 -1
- package/dist/components/Common/OnboardingStatusBadge/index.d.ts +1 -1
- package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.d.ts +9 -0
- package/dist/components/Common/UI/FormBox/FormBox.js +13 -0
- package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -0
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +14 -0
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -0
- package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +26 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.d.ts +9 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js +23 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js.map +1 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js +8 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js.map +1 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.d.ts +36 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js +7 -0
- package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js.map +1 -0
- package/dist/components/Common/UI/FormBoxHeader/index.d.ts +1 -0
- package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -0
- package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.d.ts +1 -2
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.d.ts +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.d.ts +1 -1
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/signCompanyFormSchema.d.ts +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.d.ts +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +3 -3
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +1 -1
- package/dist/components/Company/StateTaxes/StateTaxes.d.ts +10 -1
- package/dist/components/Company/StateTaxes/StateTaxes.js +23 -17
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js +17 -10
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +26 -26
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +9 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +24 -24
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
- package/dist/components/Contractor/Address/Address.d.ts +4 -3
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Address/shared/useContractorAddressForm/contractorAddressSchema.d.ts +2 -2
- package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.d.ts +1 -1
- package/dist/components/Contractor/ContractorList/index.js +95 -92
- package/dist/components/Contractor/ContractorList/index.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +22 -19
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.d.ts +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.d.ts +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountFormSchema.d.ts +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.d.ts +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.d.ts +2 -2
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +2 -2
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.d.ts +17 -5
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +32 -31
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.d.ts +16 -4
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +33 -29
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.d.ts +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +6 -6
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.d.ts +1 -1
- package/dist/components/Employee/Compensation/onboarding/Compensation.d.ts +0 -4
- package/dist/components/Employee/Compensation/onboarding/Compensation.js +38 -42
- package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +2 -2
- package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +1 -1
- package/dist/components/Employee/Dashboard/index.d.ts +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +1 -1
- package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +2 -2
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +2 -2
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +1 -4
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +2 -2
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js +27 -32
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -1
- package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +1 -2
- package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.d.ts +2 -2
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.d.ts +1 -1
- package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.d.ts +1 -1
- package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js +1 -3
- package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +55 -49
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +2 -2
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +1 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +1 -1
- package/dist/components/Employee/exports/employeeManagement.d.ts +1 -1
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +4 -5
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +101 -125
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +0 -5
- package/dist/components/InformationRequests/InformationRequestsComponents.js +12 -13
- package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js +4 -4
- package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
- package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +1 -1
- package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +8 -8
- package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
- package/dist/components/Payroll/OffCycle/index.d.ts +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +97 -92
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +2 -3
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +2 -2
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +57 -56
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +23 -6
- package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js +37 -33
- package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +2 -2
- package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js +6 -6
- package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +31 -31
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +9 -5
- package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
- package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +1 -1
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js +1 -1
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
- package/dist/components/Payroll/Transition/index.d.ts +1 -1
- package/dist/components/Payroll/helpers.d.ts +22 -8
- package/dist/components/Payroll/helpers.js +1 -1
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/index.d.ts +3 -2
- package/dist/components/Payroll/payrollTypes.d.ts +1 -1
- package/dist/components/Payroll/payrollTypes.js +1 -1
- package/dist/components/Payroll/payrollTypes.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.d.ts +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +19 -19
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.d.ts +5 -5
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ApiProvider/apiVersion.d.ts +2 -2
- package/dist/contexts/ApiProvider/apiVersion.js +1 -1
- package/dist/contexts/ApiProvider/apiVersion.js.map +1 -1
- package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +40 -36
- package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
- package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +2 -0
- package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +5 -0
- package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js +18 -16
- package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
- package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +6 -0
- package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProvider.d.ts +4 -5
- package/dist/contexts/GustoProvider/GustoProvider.js +6 -6
- package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +7 -7
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +8 -8
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/GustoProvider/index.d.ts +1 -1
- package/dist/contexts/index.d.ts +2 -6
- package/dist/i18n/en/Contractor.ContractorList.json.js +18 -16
- package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
- package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
- package/dist/i18n/en/Employee.OnboardingSummary.json.js +24 -20
- package/dist/i18n/en/Employee.OnboardingSummary.json.js.map +1 -1
- package/dist/i18n/types.d.ts +8 -0
- package/dist/index.d.ts +8 -7
- package/dist/index.js +121 -134
- package/dist/index.js.map +1 -1
- package/dist/models/WA_RISK_CODES.d.ts +5 -2
- package/dist/models/WA_RISK_CODES.js.map +1 -1
- package/dist/models/external.d.ts +67 -57
- package/dist/partner-hook-utils/composeErrorHandler.d.ts +9 -4
- package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
- package/dist/partner-hook-utils/form/SDKFormProvider.d.ts +10 -2
- package/dist/partner-hook-utils/form/SDKFormProvider.js +7 -1
- package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
- package/dist/partner-hook-utils/form/composeSubmitHandler.d.ts +7 -4
- package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/index.d.ts +1 -0
- package/dist/partner-hook-utils/form/index.d.ts +3 -3
- package/dist/partner-hook-utils/form/useHookFieldResolution.js.map +1 -1
- package/dist/partner-hook-utils/index.d.ts +1 -1
- package/dist/partner-hook-utils/types.d.ts +7 -3
- package/dist/shared/constants.d.ts +2 -2
- package/dist/shared/constants.js +4 -4
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/Helpers.d.ts +11 -0
- package/dist/types/hooks.d.ts +1 -1
- package/docs/guides/endpoint-inventory.json +379 -379
- package/package.json +7 -7
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { PaymentsListInternal as u } from "../PaymentsList/PaymentsList.js";
|
|
3
3
|
import { CreatePayment as y } from "../CreatePayment/CreatePayment.js";
|
|
4
4
|
import { PaymentHistory as c } from "../PaymentHistory/PaymentHistory.js";
|
|
5
5
|
import { PaymentStatement as i } from "../PaymentStatement/PaymentStatement.js";
|
|
6
|
+
import { PaymentSummaryInternal as p } from "../PaymentSummary/PaymentSummary.js";
|
|
6
7
|
import { useFlow as r } from "../../../Flow/useFlow.js";
|
|
7
8
|
import { ensureRequired as o } from "../../../../helpers/ensureRequired.js";
|
|
8
|
-
import { PaymentSummary as p } from "../PaymentSummary/PaymentSummary.js";
|
|
9
9
|
import { InformationRequestsFlow as s } from "../../../InformationRequests/InformationRequests.js";
|
|
10
10
|
function S() {
|
|
11
11
|
const { companyId: t, onEvent: n, alerts: m } = r();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentFlowComponents.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"PaymentFlowComponents.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.tsx"],"sourcesContent":["import { PaymentsListInternal } from '../PaymentsList/PaymentsList'\nimport { CreatePayment } from '../CreatePayment/CreatePayment'\nimport { PaymentHistory } from '../PaymentHistory/PaymentHistory'\nimport { PaymentStatement } from '../PaymentStatement/PaymentStatement'\nimport { PaymentSummaryInternal } from '../PaymentSummary/PaymentSummary'\nimport type { InternalAlert } from '../types'\nimport { InformationRequestsFlow } from '@/components/InformationRequests'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport type { BreadcrumbTrail } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\n/**\n * Props for {@link PaymentFlow}.\n *\n * @public\n */\nexport interface PaymentFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/** @internal */\nexport interface PaymentFlowContextInterface extends FlowContextInterface {\n companyId: string\n breadcrumbs?: BreadcrumbTrail\n currentPaymentId?: string\n currentContractorUuid?: string\n createdPaymentGroupId?: string\n alerts?: InternalAlert[]\n}\n\n/** @internal */\nexport function PaymentListContextual() {\n const { companyId, onEvent, alerts } = useFlow<PaymentFlowContextInterface>()\n return (\n <PaymentsListInternal onEvent={onEvent} companyId={ensureRequired(companyId)} alerts={alerts} />\n )\n}\n\n/** @internal */\nexport function CreatePaymentContextual() {\n const { companyId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return <CreatePayment onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n\n/** @internal */\nexport function PaymentHistoryContextual() {\n const { currentPaymentId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return <PaymentHistory onEvent={onEvent} paymentId={ensureRequired(currentPaymentId)} />\n}\n\n/** @internal */\nexport function PaymentStatementContextual() {\n const { currentPaymentId, currentContractorUuid, onEvent } =\n useFlow<PaymentFlowContextInterface>()\n return (\n <PaymentStatement\n onEvent={onEvent}\n paymentGroupId={ensureRequired(currentPaymentId)}\n contractorUuid={ensureRequired(currentContractorUuid)}\n />\n )\n}\n\n/** @internal */\nexport function PaymentSummaryContextual() {\n const { createdPaymentGroupId, companyId, onEvent, alerts } =\n useFlow<PaymentFlowContextInterface>()\n\n return (\n <PaymentSummaryInternal\n onEvent={onEvent}\n paymentGroupId={ensureRequired(createdPaymentGroupId)}\n companyId={ensureRequired(companyId)}\n alerts={alerts}\n />\n )\n}\n\n/** @internal */\nexport function InformationRequestsContextual() {\n const { companyId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return (\n <InformationRequestsFlow\n companyId={ensureRequired(companyId)}\n withAlert={false}\n onEvent={onEvent}\n />\n )\n}\n"],"names":["PaymentListContextual","companyId","onEvent","alerts","useFlow","PaymentsListInternal","ensureRequired","CreatePaymentContextual","CreatePayment","PaymentHistoryContextual","currentPaymentId","PaymentHistory","PaymentStatementContextual","currentContractorUuid","jsx","PaymentStatement","PaymentSummaryContextual","createdPaymentGroupId","PaymentSummaryInternal","InformationRequestsContextual","InformationRequestsFlow"],"mappings":";;;;;;;;;AAiCO,SAASA,IAAwB;AACtC,QAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,QAAAC,EAAA,IAAWC,EAAA;AACvC,2BACGC,GAAA,EAAqB,SAAAH,GAAkB,WAAWI,EAAeL,CAAS,GAAG,QAAAE,GAAgB;AAElG;AAGO,SAASI,IAA0B;AACxC,QAAM,EAAE,WAAAN,GAAW,SAAAC,EAAA,IAAYE,EAAA;AAC/B,2BAAQI,GAAA,EAAc,SAAAN,GAAkB,WAAWI,EAAeL,CAAS,GAAG;AAChF;AAGO,SAASQ,IAA2B;AACzC,QAAM,EAAE,kBAAAC,GAAkB,SAAAR,EAAA,IAAYE,EAAA;AACtC,2BAAQO,GAAA,EAAe,SAAAT,GAAkB,WAAWI,EAAeI,CAAgB,GAAG;AACxF;AAGO,SAASE,IAA6B;AAC3C,QAAM,EAAE,kBAAAF,GAAkB,uBAAAG,GAAuB,SAAAX,EAAA,IAC/CE,EAAA;AACF,SACE,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAb;AAAA,MACA,gBAAgBI,EAAeI,CAAgB;AAAA,MAC/C,gBAAgBJ,EAAeO,CAAqB;AAAA,IAAA;AAAA,EAAA;AAG1D;AAGO,SAASG,IAA2B;AACzC,QAAM,EAAE,uBAAAC,GAAuB,WAAAhB,GAAW,SAAAC,GAAS,QAAAC,EAAA,IACjDC,EAAA;AAEF,SACE,gBAAAU;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,SAAAhB;AAAA,MACA,gBAAgBI,EAAeW,CAAqB;AAAA,MACpD,WAAWX,EAAeL,CAAS;AAAA,MACnC,QAAAE;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASgB,IAAgC;AAC9C,QAAM,EAAE,WAAAlB,GAAW,SAAAC,EAAA,IAAYE,EAAA;AAC/B,SACE,gBAAAU;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,WAAWd,EAAeL,CAAS;AAAA,MACnC,WAAW;AAAA,MACX,SAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -12,10 +12,15 @@ export interface PaymentSummaryProps {
|
|
|
12
12
|
companyId: string;
|
|
13
13
|
/** Callback invoked when a flow event occurs, e.g. when the user exits. */
|
|
14
14
|
onEvent: (type: EventType, data?: unknown) => void;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Props for the flow-internal {@link PaymentSummaryInternal}, which layers
|
|
18
|
+
* flow-injected alerts on top of the public {@link PaymentSummaryProps}.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export interface PaymentSummaryInternalProps extends PaymentSummaryProps {
|
|
23
|
+
/** Flow-injected alerts (e.g. wire-transfer confirmation). */
|
|
19
24
|
alerts?: InternalAlert[];
|
|
20
25
|
}
|
|
21
26
|
/**
|
|
@@ -38,4 +43,11 @@ export interface PaymentSummaryProps {
|
|
|
38
43
|
* @returns The rendered payment summary, or `null` when the payment group cannot be loaded.
|
|
39
44
|
* @public
|
|
40
45
|
*/
|
|
41
|
-
export declare const PaymentSummary: (
|
|
46
|
+
export declare const PaymentSummary: (props: PaymentSummaryProps) => import("react").JSX.Element;
|
|
47
|
+
/**
|
|
48
|
+
* Flow-internal entry point for {@link PaymentSummary} that accepts flow-injected
|
|
49
|
+
* alerts. Partners use {@link PaymentSummary}; flows render this directly.
|
|
50
|
+
*
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
export declare const PaymentSummaryInternal: ({ paymentGroupId, companyId, onEvent, alerts, }: PaymentSummaryInternalProps) => import("react").JSX.Element | null;
|
|
@@ -1,51 +1,52 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useContractorPaymentGroupsGetSuspense as
|
|
3
|
-
import { useContractorsListSuspense as
|
|
4
|
-
import { useBankAccountsGet as
|
|
5
|
-
import { PaymentSummaryPresentation as
|
|
6
|
-
import { useI18n as
|
|
1
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { useContractorPaymentGroupsGetSuspense as l } from "@gusto/embedded-api/react-query/contractorPaymentGroupsGet";
|
|
3
|
+
import { useContractorsListSuspense as y } from "@gusto/embedded-api/react-query/contractorsList";
|
|
4
|
+
import { useBankAccountsGet as f } from "@gusto/embedded-api/react-query/bankAccountsGet";
|
|
5
|
+
import { PaymentSummaryPresentation as P } from "./PaymentSummaryPresentation.js";
|
|
6
|
+
import { useI18n as k } from "../../../../i18n/I18n.js";
|
|
7
7
|
import { componentEvents as b } from "../../../../shared/constants.js";
|
|
8
|
-
const A = (
|
|
9
|
-
const t =
|
|
8
|
+
const A = (o = []) => {
|
|
9
|
+
const t = o.find((r) => r.status === "unresolved");
|
|
10
10
|
if (!t?.unblockOptions)
|
|
11
11
|
return;
|
|
12
|
-
const
|
|
13
|
-
(
|
|
12
|
+
const n = t.unblockOptions.find(
|
|
13
|
+
(r) => r.unblockType === "submit_wire"
|
|
14
14
|
);
|
|
15
|
-
if (
|
|
16
|
-
return
|
|
17
|
-
},
|
|
18
|
-
paymentGroupId:
|
|
15
|
+
if (n && "metadata" in n)
|
|
16
|
+
return n.metadata.wireInRequestUuid;
|
|
17
|
+
}, B = (o) => /* @__PURE__ */ s(G, { ...o }), G = ({
|
|
18
|
+
paymentGroupId: o,
|
|
19
19
|
companyId: t,
|
|
20
|
-
onEvent:
|
|
21
|
-
alerts:
|
|
20
|
+
onEvent: n,
|
|
21
|
+
alerts: r
|
|
22
22
|
}) => {
|
|
23
|
-
|
|
24
|
-
const { data:
|
|
25
|
-
contractorPaymentGroupUuid:
|
|
26
|
-
}), e =
|
|
27
|
-
(
|
|
28
|
-
), { data:
|
|
23
|
+
k("Contractor.Payments.PaymentSummary");
|
|
24
|
+
const { data: c } = l({
|
|
25
|
+
contractorPaymentGroupUuid: o
|
|
26
|
+
}), e = c.contractorPaymentGroup, { data: u } = y({ companyUuid: t }), i = (u.contractors || []).filter(
|
|
27
|
+
(a) => a.isActive && a.onboardingStatus === "onboarding_completed"
|
|
28
|
+
), { data: m } = f({ companyId: t }), d = m?.companyBankAccounts?.[0];
|
|
29
29
|
if (!e)
|
|
30
30
|
return null;
|
|
31
|
-
const
|
|
32
|
-
return /* @__PURE__ */
|
|
33
|
-
|
|
31
|
+
const p = A(e.creditBlockers || []);
|
|
32
|
+
return /* @__PURE__ */ s(
|
|
33
|
+
P,
|
|
34
34
|
{
|
|
35
35
|
contractorPaymentGroup: e,
|
|
36
36
|
contractors: i,
|
|
37
|
-
bankAccount:
|
|
38
|
-
wireInRequestUuid:
|
|
37
|
+
bankAccount: d,
|
|
38
|
+
wireInRequestUuid: p,
|
|
39
39
|
onDone: () => {
|
|
40
|
-
|
|
40
|
+
n(b.CONTRACTOR_PAYMENT_EXIT);
|
|
41
41
|
},
|
|
42
|
-
onEvent:
|
|
42
|
+
onEvent: n,
|
|
43
43
|
companyId: t,
|
|
44
|
-
alerts:
|
|
44
|
+
alerts: r
|
|
45
45
|
}
|
|
46
46
|
);
|
|
47
47
|
};
|
|
48
48
|
export {
|
|
49
|
-
|
|
49
|
+
B as PaymentSummary,
|
|
50
|
+
G as PaymentSummaryInternal
|
|
50
51
|
};
|
|
51
52
|
//# sourceMappingURL=PaymentSummary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentSummary.js","sources":["../../../../../src/components/Contractor/Payments/PaymentSummary/PaymentSummary.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api/react-query/contractorsList'\nimport { useBankAccountsGet } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport type { PayrollCreditBlockerType } from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { InternalAlert } from '../types'\nimport { PaymentSummaryPresentation } from './PaymentSummaryPresentation'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link PaymentSummary}.\n *\n * @public\n */\nexport interface PaymentSummaryProps {\n /** UUID of the contractor payment group to summarize. */\n paymentGroupId: string\n /** UUID of the company that owns the payment group. */\n companyId: string\n /** Callback invoked when a flow event occurs, e.g. when the user exits. */\n onEvent: (type: EventType, data?: unknown) => void\n
|
|
1
|
+
{"version":3,"file":"PaymentSummary.js","sources":["../../../../../src/components/Contractor/Payments/PaymentSummary/PaymentSummary.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api/react-query/contractorsList'\nimport { useBankAccountsGet } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport type { PayrollCreditBlockerType } from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { InternalAlert } from '../types'\nimport { PaymentSummaryPresentation } from './PaymentSummaryPresentation'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link PaymentSummary}.\n *\n * @public\n */\nexport interface PaymentSummaryProps {\n /** UUID of the contractor payment group to summarize. */\n paymentGroupId: string\n /** UUID of the company that owns the payment group. */\n companyId: string\n /** Callback invoked when a flow event occurs, e.g. when the user exits. */\n onEvent: (type: EventType, data?: unknown) => void\n}\n\n/**\n * Props for the flow-internal {@link PaymentSummaryInternal}, which layers\n * flow-injected alerts on top of the public {@link PaymentSummaryProps}.\n *\n * @internal\n */\nexport interface PaymentSummaryInternalProps extends PaymentSummaryProps {\n /** Flow-injected alerts (e.g. wire-transfer confirmation). */\n alerts?: InternalAlert[]\n}\n\nconst findWireInRequestUuid = (\n creditBlockers: PayrollCreditBlockerType[] = [],\n): string | undefined => {\n const unresolvedCreditBlocker = creditBlockers.find(blocker => blocker.status === 'unresolved')\n\n if (!unresolvedCreditBlocker?.unblockOptions) {\n return undefined\n }\n\n const wireUnblockOption = unresolvedCreditBlocker.unblockOptions.find(\n option => option.unblockType === 'submit_wire',\n )\n\n if (wireUnblockOption && 'metadata' in wireUnblockOption) {\n return wireUnblockOption.metadata.wireInRequestUuid\n }\n\n return undefined\n}\n\n/**\n * Displays a summary of a created contractor payment group, including payment totals, debit information, contractor details, and wire transfer instructions when required.\n *\n * @remarks\n * Features:\n *\n * - **Success confirmation** — confirms the number of payments scheduled.\n * - **Payment summary** — total amount, debit amount, debit account, debit date, and contractor pay date, plus a per-contractor breakdown.\n * - **Debit account** — shows the company bank account used for the debit.\n * - **Wire transfer confirmation** — when a wire is required, surfaces the wire-details confirmation workflow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/payments/exit` | User completes the payment flow. | — |\n *\n * @param props - Component props.\n * @returns The rendered payment summary, or `null` when the payment group cannot be loaded.\n * @public\n */\nexport const PaymentSummary = (props: PaymentSummaryProps) => <PaymentSummaryInternal {...props} />\n\n/**\n * Flow-internal entry point for {@link PaymentSummary} that accepts flow-injected\n * alerts. Partners use {@link PaymentSummary}; flows render this directly.\n *\n * @internal\n */\nexport const PaymentSummaryInternal = ({\n paymentGroupId,\n companyId,\n onEvent,\n alerts,\n}: PaymentSummaryInternalProps) => {\n useI18n('Contractor.Payments.PaymentSummary')\n\n const { data: paymentGroupData } = useContractorPaymentGroupsGetSuspense({\n contractorPaymentGroupUuid: paymentGroupId,\n })\n const contractorPaymentGroup = paymentGroupData.contractorPaymentGroup\n\n const { data: contractorList } = useContractorsListSuspense({ companyUuid: companyId })\n const contractors = (contractorList.contractors || []).filter(\n contractor => contractor.isActive && contractor.onboardingStatus === 'onboarding_completed',\n )\n\n const { data: bankAccounts } = useBankAccountsGet({ companyId })\n const bankAccount = bankAccounts?.companyBankAccounts?.[0]\n\n if (!contractorPaymentGroup) {\n return null\n }\n\n const wireInRequestUuid = findWireInRequestUuid(contractorPaymentGroup.creditBlockers || [])\n\n const handleDone = () => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_EXIT)\n }\n\n return (\n <PaymentSummaryPresentation\n contractorPaymentGroup={contractorPaymentGroup}\n contractors={contractors}\n bankAccount={bankAccount}\n wireInRequestUuid={wireInRequestUuid}\n onDone={handleDone}\n onEvent={onEvent}\n companyId={companyId}\n alerts={alerts}\n />\n )\n}\n"],"names":["findWireInRequestUuid","creditBlockers","unresolvedCreditBlocker","blocker","wireUnblockOption","option","PaymentSummary","props","jsx","PaymentSummaryInternal","paymentGroupId","companyId","onEvent","alerts","useI18n","paymentGroupData","useContractorPaymentGroupsGetSuspense","contractorPaymentGroup","contractorList","useContractorsListSuspense","contractors","contractor","bankAccounts","useBankAccountsGet","bankAccount","wireInRequestUuid","PaymentSummaryPresentation","componentEvents"],"mappings":";;;;;;;AAkCA,MAAMA,IAAwB,CAC5BC,IAA6C,OACtB;AACvB,QAAMC,IAA0BD,EAAe,KAAK,CAAAE,MAAWA,EAAQ,WAAW,YAAY;AAE9F,MAAI,CAACD,GAAyB;AAC5B;AAGF,QAAME,IAAoBF,EAAwB,eAAe;AAAA,IAC/D,CAAAG,MAAUA,EAAO,gBAAgB;AAAA,EAAA;AAGnC,MAAID,KAAqB,cAAcA;AACrC,WAAOA,EAAkB,SAAS;AAItC,GAsBaE,IAAiB,CAACC,MAA+B,gBAAAC,EAACC,GAAA,EAAwB,GAAGF,EAAA,CAAO,GAQpFE,IAAyB,CAAC;AAAA,EACrC,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AACF,MAAmC;AACjC,EAAAC,EAAQ,oCAAoC;AAE5C,QAAM,EAAE,MAAMC,EAAA,IAAqBC,EAAsC;AAAA,IACvE,4BAA4BN;AAAA,EAAA,CAC7B,GACKO,IAAyBF,EAAiB,wBAE1C,EAAE,MAAMG,EAAA,IAAmBC,EAA2B,EAAE,aAAaR,GAAW,GAChFS,KAAeF,EAAe,eAAe,CAAA,GAAI;AAAA,IACrD,CAAAG,MAAcA,EAAW,YAAYA,EAAW,qBAAqB;AAAA,EAAA,GAGjE,EAAE,MAAMC,EAAA,IAAiBC,EAAmB,EAAE,WAAAZ,GAAW,GACzDa,IAAcF,GAAc,sBAAsB,CAAC;AAEzD,MAAI,CAACL;AACH,WAAO;AAGT,QAAMQ,IAAoBzB,EAAsBiB,EAAuB,kBAAkB,CAAA,CAAE;AAM3F,SACE,gBAAAT;AAAA,IAACkB;AAAA,IAAA;AAAA,MACC,wBAAAT;AAAA,MACA,aAAAG;AAAA,MACA,aAAAI;AAAA,MACA,mBAAAC;AAAA,MACA,QAVe,MAAM;AACvB,QAAAb,EAAQe,EAAgB,uBAAuB;AAAA,MACjD;AAAA,MASI,SAAAf;AAAA,MACA,WAAAD;AAAA,MACA,QAAAE;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -8,10 +8,15 @@ import { BaseComponentInterface } from '../../../Base';
|
|
|
8
8
|
export interface PaymentsListProps extends BaseComponentInterface<'Contractor.Payments.PaymentsList'> {
|
|
9
9
|
/** UUID of the company whose contractor payment groups should be listed. */
|
|
10
10
|
companyId: string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Props for the flow-internal {@link PaymentsListInternal}, which layers
|
|
14
|
+
* flow-injected alerts on top of the public {@link PaymentsListProps}.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export interface PaymentsListInternalProps extends PaymentsListProps {
|
|
19
|
+
/** Flow-injected alerts (e.g. wire-transfer confirmation, payment cancellation). */
|
|
15
20
|
alerts?: InternalAlert[];
|
|
16
21
|
}
|
|
17
22
|
/**
|
|
@@ -32,3 +37,10 @@ export interface PaymentsListProps extends BaseComponentInterface<'Contractor.Pa
|
|
|
32
37
|
* @public
|
|
33
38
|
*/
|
|
34
39
|
export declare function PaymentsList(props: PaymentsListProps): import("react").JSX.Element;
|
|
40
|
+
/**
|
|
41
|
+
* Flow-internal entry point for {@link PaymentsList} that accepts flow-injected
|
|
42
|
+
* alerts. Partners use {@link PaymentsList}; flows render this directly.
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export declare function PaymentsListInternal(props: PaymentsListInternalProps): import("react").JSX.Element;
|
|
@@ -1,48 +1,51 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
2
|
import { useState as b, useMemo as i, useCallback as k } from "react";
|
|
3
|
-
import { useContractorPaymentGroupsGetListSuspense as
|
|
4
|
-
import { useInformationRequestsGetInformationRequestsSuspense as
|
|
3
|
+
import { useContractorPaymentGroupsGetListSuspense as L } from "@gusto/embedded-api/react-query/contractorPaymentGroupsGetList";
|
|
4
|
+
import { useInformationRequestsGetInformationRequestsSuspense as B } from "@gusto/embedded-api/react-query/informationRequestsGetInformationRequests";
|
|
5
5
|
import { InformationRequestStatus as g } from "@gusto/embedded-api/models/components/informationrequest";
|
|
6
6
|
import { PaymentsListPresentation as E } from "./PaymentsListPresentation.js";
|
|
7
7
|
import { useComponentDictionary as G } from "../../../../i18n/I18n.js";
|
|
8
8
|
import { BaseComponent as v } from "../../../Base/Base.js";
|
|
9
9
|
import "../../../Base/useBase.js";
|
|
10
|
-
import { componentEvents as
|
|
10
|
+
import { componentEvents as p } from "../../../../shared/constants.js";
|
|
11
11
|
import { usePagination as U } from "../../../../hooks/usePagination/usePagination.js";
|
|
12
|
-
function
|
|
13
|
-
return /* @__PURE__ */
|
|
12
|
+
function tt(t) {
|
|
13
|
+
return /* @__PURE__ */ a(W, { ...t });
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
function W(t) {
|
|
16
|
+
return /* @__PURE__ */ a(v, { ...t, children: /* @__PURE__ */ a(x, { ...t, children: t.children }) });
|
|
17
|
+
}
|
|
18
|
+
const Y = (t = 3) => {
|
|
16
19
|
const o = /* @__PURE__ */ new Date(), e = /* @__PURE__ */ new Date();
|
|
17
20
|
return e.setMonth(e.getMonth() - t), o.setMonth(o.getMonth() + (12 - t)), {
|
|
18
21
|
startDate: e.toISOString().split("T")[0] || "",
|
|
19
22
|
endDate: o.toISOString().split("T")[0] || ""
|
|
20
23
|
};
|
|
21
|
-
},
|
|
24
|
+
}, x = ({ companyId: t, dictionary: o, onEvent: e, alerts: f }) => {
|
|
22
25
|
G("Contractor.Payments.PaymentsList", o);
|
|
23
|
-
const [
|
|
26
|
+
const [c, h] = b(3), { currentPage: C, itemsPerPage: D, getPaginationProps: T } = U(), { startDate: y, endDate: O } = i(() => Y(c), [c]), { data: R } = L({
|
|
24
27
|
companyId: t,
|
|
25
28
|
startDate: y,
|
|
26
29
|
endDate: O,
|
|
27
30
|
page: C,
|
|
28
31
|
per: D
|
|
29
|
-
}),
|
|
32
|
+
}), m = R.contractorPaymentGroupWithBlockers || [], A = T(R.httpMeta.response.headers), { data: M } = B({
|
|
30
33
|
companyUuid: t
|
|
31
|
-
}),
|
|
34
|
+
}), u = M.informationRequests ?? [], w = i(() => m.some((n) => (n.creditBlockers || []).some((r) => {
|
|
32
35
|
if (r.status !== "unresolved") return !1;
|
|
33
36
|
const s = r.unblockOptions?.find(
|
|
34
|
-
(
|
|
37
|
+
(_) => _.unblockType === "submit_wire"
|
|
35
38
|
);
|
|
36
39
|
return s && "metadata" in s && s.metadata.wireInRequestUuid;
|
|
37
|
-
})), [
|
|
38
|
-
e(
|
|
39
|
-
}, [e]),
|
|
40
|
-
const n = [],
|
|
40
|
+
})), [m]), l = k(() => {
|
|
41
|
+
e(p.CONTRACTOR_PAYMENT_RFI_RESPOND);
|
|
42
|
+
}, [e]), P = i(() => {
|
|
43
|
+
const n = [], d = u.some(
|
|
41
44
|
(s) => s.status === g.PendingResponse
|
|
42
|
-
), r =
|
|
45
|
+
), r = u.some(
|
|
43
46
|
(s) => s.status === g.PendingReview
|
|
44
47
|
);
|
|
45
|
-
return
|
|
48
|
+
return d ? n.push({
|
|
46
49
|
type: "error",
|
|
47
50
|
title: "rfiPendingResponseTitle",
|
|
48
51
|
content: "rfiPendingResponseDescription",
|
|
@@ -53,22 +56,22 @@ const W = (t = 3) => {
|
|
|
53
56
|
title: "rfiPendingReviewTitle",
|
|
54
57
|
content: "rfiPendingReviewDescription"
|
|
55
58
|
}), n;
|
|
56
|
-
}, [
|
|
57
|
-
e(
|
|
59
|
+
}, [u, l]), S = () => {
|
|
60
|
+
e(p.CONTRACTOR_PAYMENT_CREATE);
|
|
58
61
|
}, q = (n) => {
|
|
59
62
|
h(n);
|
|
60
|
-
},
|
|
61
|
-
e(
|
|
62
|
-
},
|
|
63
|
-
return /* @__PURE__ */
|
|
63
|
+
}, I = (n) => {
|
|
64
|
+
e(p.CONTRACTOR_PAYMENT_VIEW, { paymentId: n });
|
|
65
|
+
}, N = i(() => [...P, ...f || []], [P, f]);
|
|
66
|
+
return /* @__PURE__ */ a(
|
|
64
67
|
E,
|
|
65
68
|
{
|
|
66
|
-
contractorPayments:
|
|
67
|
-
numberOfMonths:
|
|
69
|
+
contractorPayments: m,
|
|
70
|
+
numberOfMonths: c,
|
|
68
71
|
onCreatePayment: S,
|
|
69
72
|
onDateRangeChange: q,
|
|
70
|
-
onViewPayment:
|
|
71
|
-
alerts:
|
|
73
|
+
onViewPayment: I,
|
|
74
|
+
alerts: N,
|
|
72
75
|
companyId: t,
|
|
73
76
|
hasUnresolvedWireInRequests: w,
|
|
74
77
|
onEvent: e,
|
|
@@ -77,6 +80,7 @@ const W = (t = 3) => {
|
|
|
77
80
|
);
|
|
78
81
|
};
|
|
79
82
|
export {
|
|
80
|
-
|
|
83
|
+
tt as PaymentsList,
|
|
84
|
+
W as PaymentsListInternal
|
|
81
85
|
};
|
|
82
86
|
//# sourceMappingURL=PaymentsList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentsList.js","sources":["../../../../../src/components/Contractor/Payments/PaymentsList/PaymentsList.tsx"],"sourcesContent":["import { useState, useMemo, useCallback } from 'react'\nimport { useContractorPaymentGroupsGetListSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGetList'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport { InformationRequestStatus } from '@gusto/embedded-api/models/components/informationrequest'\nimport type { InternalAlert } from '../types'\nimport { PaymentsListPresentation } from './PaymentsListPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { componentEvents } from '@/shared/constants'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\n/**\n * Props for {@link PaymentsList}.\n *\n * @public\n */\nexport interface PaymentsListProps extends BaseComponentInterface<'Contractor.Payments.PaymentsList'> {\n /** UUID of the company whose contractor payment groups should be listed. */\n companyId: string\n /**\n * @internal\n * Flow-injected alerts (e.g. wire-transfer confirmation, payment cancellation).\n */\n alerts?: InternalAlert[]\n}\n\n/**\n * Displays a list of contractor payment groups for a company.\n *\n * Supports viewing payment history, creating new payments, and filtering by date range.\n * Surfaces alerts for pending information requests and wire transfer requirements.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/payments/create` | User chooses to create a new payment | — |\n * | `contractor/payments/view` | User selects a payment group to view | `{ paymentId: string }` |\n * | `contractor/payments/rfi/respond` | User clicks to respond to an information request alert | — |\n *\n * @param props - Component props.\n * @returns The rendered payments list.\n * @public\n */\nexport function PaymentsList(props: PaymentsListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst calculateDateRange = (months: number = 3) => {\n const endDate = new Date()\n const startDate = new Date()\n\n startDate.setMonth(startDate.getMonth() - months)\n //Max range allowed by the API is 12 months\n endDate.setMonth(endDate.getMonth() + (12 - months))\n\n return {\n startDate: startDate.toISOString().split('T')[0] || '',\n endDate: endDate.toISOString().split('T')[0] || '',\n }\n}\n\nconst Root = ({ companyId, dictionary, onEvent, alerts }: PaymentsListProps) => {\n useComponentDictionary('Contractor.Payments.PaymentsList', dictionary)\n\n const [numberOfMonths, setNumberOfMonths] = useState(3)\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination()\n\n const { startDate, endDate } = useMemo(() => calculateDateRange(numberOfMonths), [numberOfMonths])\n\n const { data } = useContractorPaymentGroupsGetListSuspense({\n companyId,\n startDate,\n endDate,\n page: currentPage,\n per: itemsPerPage,\n })\n const contractorPayments = data.contractorPaymentGroupWithBlockers || []\n const paginationProps = getPaginationProps(data.httpMeta.response.headers)\n\n const { data: informationRequestsData } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n const informationRequests = informationRequestsData.informationRequests ?? []\n\n const hasUnresolvedWireInRequests = useMemo(() => {\n return contractorPayments.some(payment => {\n const creditBlockers = payment.creditBlockers || []\n return creditBlockers.some(blocker => {\n if (blocker.status !== 'unresolved') return false\n const wireOption = blocker.unblockOptions?.find(\n option => option.unblockType === 'submit_wire',\n )\n return wireOption && 'metadata' in wireOption && wireOption.metadata.wireInRequestUuid\n })\n })\n }, [contractorPayments])\n\n const handleRespondToRfi = useCallback(() => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_RFI_RESPOND)\n }, [onEvent])\n\n const rfiAlerts = useMemo(() => {\n const rfiAlertsArray: InternalAlert[] = []\n\n const hasPendingResponseRfis = informationRequests.some(\n request => request.status === InformationRequestStatus.PendingResponse,\n )\n const hasPendingReviewRfis = informationRequests.some(\n request => request.status === InformationRequestStatus.PendingReview,\n )\n\n if (hasPendingResponseRfis) {\n rfiAlertsArray.push({\n type: 'error',\n title: 'rfiPendingResponseTitle',\n content: 'rfiPendingResponseDescription',\n onAction: handleRespondToRfi,\n actionLabel: 'rfiRespondCta',\n })\n } else if (hasPendingReviewRfis) {\n rfiAlertsArray.push({\n type: 'info',\n title: 'rfiPendingReviewTitle',\n content: 'rfiPendingReviewDescription',\n })\n }\n\n return rfiAlertsArray\n }, [informationRequests, handleRespondToRfi])\n\n const onCreatePayment = () => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_CREATE)\n }\n\n const handleDateRangeChange = (numberOfMonths: number) => {\n setNumberOfMonths(numberOfMonths)\n }\n\n const onViewPayment = (paymentId: string) => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_VIEW, { paymentId })\n }\n\n const allAlerts = useMemo(() => {\n return [...rfiAlerts, ...(alerts || [])]\n }, [rfiAlerts, alerts])\n\n return (\n <PaymentsListPresentation\n contractorPayments={contractorPayments}\n numberOfMonths={numberOfMonths}\n onCreatePayment={onCreatePayment}\n onDateRangeChange={handleDateRangeChange}\n onViewPayment={onViewPayment}\n alerts={allAlerts}\n companyId={companyId}\n hasUnresolvedWireInRequests={hasUnresolvedWireInRequests}\n onEvent={onEvent}\n paginationProps={paginationProps}\n />\n )\n}\n"],"names":["PaymentsList","props","jsx","BaseComponent","Root","calculateDateRange","months","endDate","startDate","companyId","dictionary","onEvent","alerts","useComponentDictionary","numberOfMonths","setNumberOfMonths","useState","currentPage","itemsPerPage","getPaginationProps","usePagination","useMemo","data","useContractorPaymentGroupsGetListSuspense","contractorPayments","paginationProps","informationRequestsData","useInformationRequestsGetInformationRequestsSuspense","informationRequests","hasUnresolvedWireInRequests","payment","blocker","wireOption","option","handleRespondToRfi","useCallback","componentEvents","rfiAlerts","rfiAlertsArray","hasPendingResponseRfis","request","InformationRequestStatus","hasPendingReviewRfis","onCreatePayment","handleDateRangeChange","onViewPayment","paymentId","allAlerts","PaymentsListPresentation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaymentsList.js","sources":["../../../../../src/components/Contractor/Payments/PaymentsList/PaymentsList.tsx"],"sourcesContent":["import { useState, useMemo, useCallback } from 'react'\nimport { useContractorPaymentGroupsGetListSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGetList'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport { InformationRequestStatus } from '@gusto/embedded-api/models/components/informationrequest'\nimport type { InternalAlert } from '../types'\nimport { PaymentsListPresentation } from './PaymentsListPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { componentEvents } from '@/shared/constants'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\n/**\n * Props for {@link PaymentsList}.\n *\n * @public\n */\nexport interface PaymentsListProps extends BaseComponentInterface<'Contractor.Payments.PaymentsList'> {\n /** UUID of the company whose contractor payment groups should be listed. */\n companyId: string\n}\n\n/**\n * Props for the flow-internal {@link PaymentsListInternal}, which layers\n * flow-injected alerts on top of the public {@link PaymentsListProps}.\n *\n * @internal\n */\nexport interface PaymentsListInternalProps extends PaymentsListProps {\n /** Flow-injected alerts (e.g. wire-transfer confirmation, payment cancellation). */\n alerts?: InternalAlert[]\n}\n\n/**\n * Displays a list of contractor payment groups for a company.\n *\n * Supports viewing payment history, creating new payments, and filtering by date range.\n * Surfaces alerts for pending information requests and wire transfer requirements.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/payments/create` | User chooses to create a new payment | — |\n * | `contractor/payments/view` | User selects a payment group to view | `{ paymentId: string }` |\n * | `contractor/payments/rfi/respond` | User clicks to respond to an information request alert | — |\n *\n * @param props - Component props.\n * @returns The rendered payments list.\n * @public\n */\nexport function PaymentsList(props: PaymentsListProps) {\n return <PaymentsListInternal {...props} />\n}\n\n/**\n * Flow-internal entry point for {@link PaymentsList} that accepts flow-injected\n * alerts. Partners use {@link PaymentsList}; flows render this directly.\n *\n * @internal\n */\nexport function PaymentsListInternal(props: PaymentsListInternalProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst calculateDateRange = (months: number = 3) => {\n const endDate = new Date()\n const startDate = new Date()\n\n startDate.setMonth(startDate.getMonth() - months)\n //Max range allowed by the API is 12 months\n endDate.setMonth(endDate.getMonth() + (12 - months))\n\n return {\n startDate: startDate.toISOString().split('T')[0] || '',\n endDate: endDate.toISOString().split('T')[0] || '',\n }\n}\n\nconst Root = ({ companyId, dictionary, onEvent, alerts }: PaymentsListInternalProps) => {\n useComponentDictionary('Contractor.Payments.PaymentsList', dictionary)\n\n const [numberOfMonths, setNumberOfMonths] = useState(3)\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination()\n\n const { startDate, endDate } = useMemo(() => calculateDateRange(numberOfMonths), [numberOfMonths])\n\n const { data } = useContractorPaymentGroupsGetListSuspense({\n companyId,\n startDate,\n endDate,\n page: currentPage,\n per: itemsPerPage,\n })\n const contractorPayments = data.contractorPaymentGroupWithBlockers || []\n const paginationProps = getPaginationProps(data.httpMeta.response.headers)\n\n const { data: informationRequestsData } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n const informationRequests = informationRequestsData.informationRequests ?? []\n\n const hasUnresolvedWireInRequests = useMemo(() => {\n return contractorPayments.some(payment => {\n const creditBlockers = payment.creditBlockers || []\n return creditBlockers.some(blocker => {\n if (blocker.status !== 'unresolved') return false\n const wireOption = blocker.unblockOptions?.find(\n option => option.unblockType === 'submit_wire',\n )\n return wireOption && 'metadata' in wireOption && wireOption.metadata.wireInRequestUuid\n })\n })\n }, [contractorPayments])\n\n const handleRespondToRfi = useCallback(() => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_RFI_RESPOND)\n }, [onEvent])\n\n const rfiAlerts = useMemo(() => {\n const rfiAlertsArray: InternalAlert[] = []\n\n const hasPendingResponseRfis = informationRequests.some(\n request => request.status === InformationRequestStatus.PendingResponse,\n )\n const hasPendingReviewRfis = informationRequests.some(\n request => request.status === InformationRequestStatus.PendingReview,\n )\n\n if (hasPendingResponseRfis) {\n rfiAlertsArray.push({\n type: 'error',\n title: 'rfiPendingResponseTitle',\n content: 'rfiPendingResponseDescription',\n onAction: handleRespondToRfi,\n actionLabel: 'rfiRespondCta',\n })\n } else if (hasPendingReviewRfis) {\n rfiAlertsArray.push({\n type: 'info',\n title: 'rfiPendingReviewTitle',\n content: 'rfiPendingReviewDescription',\n })\n }\n\n return rfiAlertsArray\n }, [informationRequests, handleRespondToRfi])\n\n const onCreatePayment = () => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_CREATE)\n }\n\n const handleDateRangeChange = (numberOfMonths: number) => {\n setNumberOfMonths(numberOfMonths)\n }\n\n const onViewPayment = (paymentId: string) => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_VIEW, { paymentId })\n }\n\n const allAlerts = useMemo(() => {\n return [...rfiAlerts, ...(alerts || [])]\n }, [rfiAlerts, alerts])\n\n return (\n <PaymentsListPresentation\n contractorPayments={contractorPayments}\n numberOfMonths={numberOfMonths}\n onCreatePayment={onCreatePayment}\n onDateRangeChange={handleDateRangeChange}\n onViewPayment={onViewPayment}\n alerts={allAlerts}\n companyId={companyId}\n hasUnresolvedWireInRequests={hasUnresolvedWireInRequests}\n onEvent={onEvent}\n paginationProps={paginationProps}\n />\n )\n}\n"],"names":["PaymentsList","props","jsx","PaymentsListInternal","BaseComponent","Root","calculateDateRange","months","endDate","startDate","companyId","dictionary","onEvent","alerts","useComponentDictionary","numberOfMonths","setNumberOfMonths","useState","currentPage","itemsPerPage","getPaginationProps","usePagination","useMemo","data","useContractorPaymentGroupsGetListSuspense","contractorPayments","paginationProps","informationRequestsData","useInformationRequestsGetInformationRequestsSuspense","informationRequests","hasUnresolvedWireInRequests","payment","blocker","wireOption","option","handleRespondToRfi","useCallback","componentEvents","rfiAlerts","rfiAlertsArray","hasPendingResponseRfis","request","InformationRequestStatus","hasPendingReviewRfis","onCreatePayment","handleDateRangeChange","onViewPayment","paymentId","allAlerts","PaymentsListPresentation"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as t, jsxs as o } from "react/jsx-runtime";
|
|
2
2
|
import { useTranslation as N } from "react-i18next";
|
|
3
3
|
import u from "./PaymentsListPresentation.module.scss.js";
|
|
4
4
|
import { Flex as i } from "../../../Common/Flex/Flex.js";
|
|
@@ -76,7 +76,7 @@ export type ContractorDetailsFormOutputs = ContractorDetailsFormData;
|
|
|
76
76
|
*
|
|
77
77
|
* @public
|
|
78
78
|
*/
|
|
79
|
-
export type ContractorDetailsOptionalFieldsToRequire = { create?: ("
|
|
79
|
+
export type ContractorDetailsOptionalFieldsToRequire = { create?: ("ein" | "email" | "middleInitial" | "ssn")[] | undefined; update?: ("businessName" | "ein" | "email" | "firstName" | "hourlyRate" | "lastName" | "middleInitial" | "ssn" | "startDate" | "workState")[] | undefined; };
|
|
80
80
|
/** @internal */
|
|
81
81
|
interface ContractorDetailsSchemaOptions {
|
|
82
82
|
mode?: 'create' | 'update';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { z as e } from "zod";
|
|
2
|
-
import { ContractorType as N,
|
|
3
|
-
import { buildFormSchema as
|
|
2
|
+
import { ContractorType as N, ContractorWageType as c } from "@gusto/embedded-api/models/components/contractor";
|
|
3
|
+
import { buildFormSchema as E } from "../../../../../partner-hook-utils/form/buildFormSchema.js";
|
|
4
4
|
import { coerceNaN as d, coerceToISODate as p } from "../../../../../partner-hook-utils/form/preprocessors.js";
|
|
5
5
|
import { EIN_REGEX as u, SSN_REGEX as f, NAME_REGEX as I } from "../../../../../helpers/validations.js";
|
|
6
6
|
import { normalizeEin as D } from "../../../../../helpers/federalEin.js";
|
|
7
|
-
const o = N, n =
|
|
7
|
+
const o = N, n = c, t = {
|
|
8
8
|
REQUIRED: "REQUIRED",
|
|
9
9
|
INVALID_NAME: "INVALID_NAME",
|
|
10
10
|
INVALID_EMAIL: "INVALID_EMAIL",
|
|
@@ -44,9 +44,9 @@ const o = N, n = E, t = {
|
|
|
44
44
|
ein: "never",
|
|
45
45
|
email: (r) => r.selfOnboarding
|
|
46
46
|
};
|
|
47
|
-
function
|
|
47
|
+
function C(r = {}) {
|
|
48
48
|
const { mode: i = "create", optionalFieldsToRequire: s, hasSsn: l = !1, hasEin: m = !1 } = r, a = [];
|
|
49
|
-
return l && a.push("ssn"), m && a.push("ein"),
|
|
49
|
+
return l && a.push("ssn"), m && a.push("ein"), E(R, {
|
|
50
50
|
requiredFieldsConfig: g,
|
|
51
51
|
requiredErrorCode: t.REQUIRED,
|
|
52
52
|
mode: i,
|
|
@@ -67,7 +67,7 @@ export {
|
|
|
67
67
|
t as ContractorDetailsErrorCodes,
|
|
68
68
|
o as ContractorType,
|
|
69
69
|
n as WageType,
|
|
70
|
-
|
|
70
|
+
C as createContractorDetailsSchema,
|
|
71
71
|
A as getExcludedContractorFields
|
|
72
72
|
};
|
|
73
73
|
//# sourceMappingURL=contractorDetailsSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractorDetailsSchema.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n
|
|
1
|
+
{"version":3,"file":"contractorDetailsSchema.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ContractorWageType as ApiWageType,\n ContractorType as ApiContractorType,\n} from '@gusto/embedded-api/models/components/contractor'\nimport {\n buildFormSchema,\n type RequiredFieldConfig,\n type OptionalFieldsToRequire,\n} from '@/partner-hook-utils/form/buildFormSchema'\nimport { coerceNaN, coerceToISODate } from '@/partner-hook-utils/form/preprocessors'\nimport { SSN_REGEX, EIN_REGEX, NAME_REGEX } from '@/helpers/validations'\nimport { normalizeEin } from '@/helpers/federalEin'\n\n/**\n * Contractor type enum (`Individual` / `Business`) re-exported from the API model.\n *\n * @public\n */\nexport const ContractorType = ApiContractorType\n/**\n * Contractor wage type enum (`Fixed` / `Hourly`) re-exported from the API model.\n *\n * @public\n */\nexport const WageType = ApiWageType\n\n// ── Error codes ────────────────────────────────────────────────────────\n\n/**\n * Validation error codes emitted by the contractor details form schema. Map\n * these codes to localized copy in `validationMessages` when composing the\n * hook.\n *\n * @public\n */\nexport const ContractorDetailsErrorCodes = {\n REQUIRED: 'REQUIRED',\n INVALID_NAME: 'INVALID_NAME',\n INVALID_EMAIL: 'INVALID_EMAIL',\n INVALID_SSN: 'INVALID_SSN',\n INVALID_EIN: 'INVALID_EIN',\n} as const\n\n/**\n * Union of validation error code strings emitted by the contractor details\n * form schema.\n *\n * @public\n */\nexport type ContractorDetailsErrorCode =\n (typeof ContractorDetailsErrorCodes)[keyof typeof ContractorDetailsErrorCodes]\n\n// ── Field validators ───────────────────────────────────────────────────\n\nconst fieldValidators = {\n type: z.enum([ContractorType.Individual, ContractorType.Business]),\n wageType: z.enum([WageType.Hourly, WageType.Fixed]),\n startDate: z.preprocess(\n coerceToISODate,\n z.iso.date({ error: () => ContractorDetailsErrorCodes.REQUIRED }),\n ),\n hourlyRate: z.preprocess(coerceNaN(0), z.number().min(0)),\n selfOnboarding: z.boolean(),\n fileNewHireReport: z.boolean(),\n email: z.email({ error: () => ContractorDetailsErrorCodes.INVALID_EMAIL }),\n firstName: z\n .string()\n .min(1, { message: ContractorDetailsErrorCodes.REQUIRED })\n .regex(NAME_REGEX, { message: ContractorDetailsErrorCodes.INVALID_NAME }),\n lastName: z\n .string()\n .min(1, { message: ContractorDetailsErrorCodes.REQUIRED })\n .regex(NAME_REGEX, { message: ContractorDetailsErrorCodes.INVALID_NAME }),\n middleInitial: z.string(),\n businessName: z.string(),\n workState: z.string(),\n ssn: z\n .string({ error: () => ContractorDetailsErrorCodes.REQUIRED })\n .refine((v: string) => SSN_REGEX.test(v.replace(/\\D/g, '')), {\n message: ContractorDetailsErrorCodes.INVALID_SSN,\n }),\n ein: z\n .string({ error: () => ContractorDetailsErrorCodes.REQUIRED })\n .refine((v: string) => EIN_REGEX.test(normalizeEin(v)), {\n message: ContractorDetailsErrorCodes.INVALID_EIN,\n }),\n}\n\n/**\n * Shape of the values managed by the contractor details form.\n *\n * @public\n * @interface\n */\nexport type ContractorDetailsFormData = {\n [K in keyof typeof fieldValidators]: z.infer<(typeof fieldValidators)[K]>\n}\n\n/** @internal */\nexport type ContractorDetailsFormOutputs = ContractorDetailsFormData\n\n// ── Required fields config ─────────────────────────────────────────────\n//\n// Requiredness mirrors the contractor create/update API contract: fields the\n// API requires on create are `'create'` (optional on update), and fields the\n// API treats as optional are `'never'`. Type/wage *applicability* (does a field\n// apply to this contractor at all?) is handled separately by `excludeFields` —\n// see `getExcludedContractorFields` — not by requiredness. SSN/EIN are never\n// gated by `selfOnboarding`: each consumer decides whether to render and require\n// them (admins hide them when inviting; self-onboarding profiles collect them).\n//\n// `email` is the one genuinely value-conditional rule: it always applies but is\n// only required when self-onboarding is on (create and update, matching the\n// API's \"if self_onboarding is true, then email is required\"). A single-operand\n// predicate keeps `buildFormSchema`'s dependency-detecting Proxy accurate.\n\nconst requiredFieldsConfig = {\n startDate: 'create',\n firstName: 'create',\n lastName: 'create',\n businessName: 'create',\n hourlyRate: 'create',\n workState: 'create',\n middleInitial: 'never',\n ssn: 'never',\n ein: 'never',\n email: data => data.selfOnboarding,\n} satisfies RequiredFieldConfig<typeof fieldValidators>\n\n// ── Schema factory ─────────────────────────────────────────────────────\n\n/**\n * Keys of optional contractor details fields that can be promoted to required\n * via the hook's `optionalFieldsToRequire` option.\n *\n * @public\n */\nexport type ContractorDetailsOptionalFieldsToRequire = OptionalFieldsToRequire<\n typeof requiredFieldsConfig\n>\n\n/** @internal */\ninterface ContractorDetailsSchemaOptions {\n mode?: 'create' | 'update'\n optionalFieldsToRequire?: ContractorDetailsOptionalFieldsToRequire\n hasSsn?: boolean\n hasEin?: boolean\n}\n\n/** @internal */\nexport function createContractorDetailsSchema(options: ContractorDetailsSchemaOptions = {}) {\n const { mode = 'create', optionalFieldsToRequire, hasSsn = false, hasEin = false } = options\n\n const fieldsWithRedactedValues: Array<keyof typeof fieldValidators> = []\n if (hasSsn) fieldsWithRedactedValues.push('ssn')\n if (hasEin) fieldsWithRedactedValues.push('ein')\n\n return buildFormSchema(fieldValidators, {\n requiredFieldsConfig,\n requiredErrorCode: ContractorDetailsErrorCodes.REQUIRED,\n mode,\n optionalFieldsToRequire,\n fieldsWithRedactedValues,\n // Applicability gating: evaluated per-validation so a field's required\n // check is skipped while it doesn't apply to the current selection. The\n // field stays in the schema (validated as optional), keeping requiredness\n // static and fully promotable via `optionalFieldsToRequire`.\n excludeFields: getExcludedContractorFields,\n })\n}\n\n/** @internal */\nexport type ContractorDiscriminators = Partial<\n Pick<ContractorDetailsFormData, 'type' | 'wageType' | 'fileNewHireReport'>\n>\n\n/**\n * Fields that don't apply to the given contractor selection. Their required\n * check is skipped at validation time and they're never rendered. `email` is\n * never excluded — it always applies and its requiredness is governed by the\n * `selfOnboarding` predicate.\n *\n * @internal\n */\nexport function getExcludedContractorFields(\n values: ContractorDiscriminators,\n): Array<keyof typeof fieldValidators> {\n const isIndividual = values.type === ContractorType.Individual\n const excluded: Array<keyof typeof fieldValidators> = []\n\n if (values.wageType !== WageType.Hourly) excluded.push('hourlyRate')\n\n if (isIndividual) {\n excluded.push('businessName', 'ein')\n if (!values.fileNewHireReport) excluded.push('workState')\n } else {\n excluded.push('firstName', 'lastName', 'middleInitial', 'fileNewHireReport', 'ssn', 'workState')\n }\n\n return excluded\n}\n"],"names":["ContractorType","ApiContractorType","WageType","ApiWageType","ContractorDetailsErrorCodes","fieldValidators","z","coerceToISODate","coerceNaN","NAME_REGEX","v","SSN_REGEX","EIN_REGEX","normalizeEin","requiredFieldsConfig","data","createContractorDetailsSchema","options","mode","optionalFieldsToRequire","hasSsn","hasEin","fieldsWithRedactedValues","buildFormSchema","getExcludedContractorFields","values","isIndividual","excluded"],"mappings":";;;;;;AAmBO,MAAMA,IAAiBC,GAMjBC,IAAWC,GAWXC,IAA8B;AAAA,EACzC,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,aAAa;AACf,GAaMC,IAAkB;AAAA,EACtB,MAAMC,EAAE,KAAK,CAACN,EAAe,YAAYA,EAAe,QAAQ,CAAC;AAAA,EACjE,UAAUM,EAAE,KAAK,CAACJ,EAAS,QAAQA,EAAS,KAAK,CAAC;AAAA,EAClD,WAAWI,EAAE;AAAA,IACXC;AAAA,IACAD,EAAE,IAAI,KAAK,EAAE,OAAO,MAAMF,EAA4B,UAAU;AAAA,EAAA;AAAA,EAElE,YAAYE,EAAE,WAAWE,EAAU,CAAC,GAAGF,EAAE,OAAA,EAAS,IAAI,CAAC,CAAC;AAAA,EACxD,gBAAgBA,EAAE,QAAA;AAAA,EAClB,mBAAmBA,EAAE,QAAA;AAAA,EACrB,OAAOA,EAAE,MAAM,EAAE,OAAO,MAAMF,EAA4B,eAAe;AAAA,EACzE,WAAWE,EACR,OAAA,EACA,IAAI,GAAG,EAAE,SAASF,EAA4B,SAAA,CAAU,EACxD,MAAMK,GAAY,EAAE,SAASL,EAA4B,cAAc;AAAA,EAC1E,UAAUE,EACP,OAAA,EACA,IAAI,GAAG,EAAE,SAASF,EAA4B,SAAA,CAAU,EACxD,MAAMK,GAAY,EAAE,SAASL,EAA4B,cAAc;AAAA,EAC1E,eAAeE,EAAE,OAAA;AAAA,EACjB,cAAcA,EAAE,OAAA;AAAA,EAChB,WAAWA,EAAE,OAAA;AAAA,EACb,KAAKA,EACF,OAAO,EAAE,OAAO,MAAMF,EAA4B,UAAU,EAC5D,OAAO,CAACM,MAAcC,EAAU,KAAKD,EAAE,QAAQ,OAAO,EAAE,CAAC,GAAG;AAAA,IAC3D,SAASN,EAA4B;AAAA,EAAA,CACtC;AAAA,EACH,KAAKE,EACF,OAAO,EAAE,OAAO,MAAMF,EAA4B,SAAA,CAAU,EAC5D,OAAO,CAACM,MAAcE,EAAU,KAAKC,EAAaH,CAAC,CAAC,GAAG;AAAA,IACtD,SAASN,EAA4B;AAAA,EAAA,CACtC;AACL,GA8BMU,IAAuB;AAAA,EAC3B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,eAAe;AAAA,EACf,KAAK;AAAA,EACL,KAAK;AAAA,EACL,OAAO,OAAQC,EAAK;AACtB;AAuBO,SAASC,EAA8BC,IAA0C,IAAI;AAC1F,QAAM,EAAE,MAAAC,IAAO,UAAU,yBAAAC,GAAyB,QAAAC,IAAS,IAAO,QAAAC,IAAS,OAAUJ,GAE/EK,IAAgE,CAAA;AACtE,SAAIF,KAAQE,EAAyB,KAAK,KAAK,GAC3CD,KAAQC,EAAyB,KAAK,KAAK,GAExCC,EAAgBlB,GAAiB;AAAA,IACtC,sBAAAS;AAAA,IACA,mBAAmBV,EAA4B;AAAA,IAC/C,MAAAc;AAAA,IACA,yBAAAC;AAAA,IACA,0BAAAG;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAeE;AAAA,EAAA,CAChB;AACH;AAeO,SAASA,EACdC,GACqC;AACrC,QAAMC,IAAeD,EAAO,SAASzB,EAAe,YAC9C2B,IAAgD,CAAA;AAEtD,SAAIF,EAAO,aAAavB,EAAS,UAAQyB,EAAS,KAAK,YAAY,GAE/DD,KACFC,EAAS,KAAK,gBAAgB,KAAK,GAC9BF,EAAO,qBAAmBE,EAAS,KAAK,WAAW,KAExDA,EAAS,KAAK,aAAa,YAAY,iBAAiB,qBAAqB,OAAO,WAAW,GAG1FA;AACT;"}
|
|
@@ -196,4 +196,4 @@ export type UseContractorDetailsFormResult = HookLoadingResult | UseContractorDe
|
|
|
196
196
|
*
|
|
197
197
|
* @public
|
|
198
198
|
*/
|
|
199
|
-
export type ContractorDetailsFieldsMetadata = { type: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"Business" | "Individual">; wageType: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"Fixed" | "Hourly">; startDate: FieldMetadata; hourlyRate: FieldMetadata; selfOnboarding: FieldMetadata; fileNewHireReport: FieldMetadata; email: FieldMetadata; firstName: FieldMetadata; lastName: FieldMetadata; middleInitial: FieldMetadata; businessName: FieldMetadata; ssn: FieldMetadata; ein: FieldMetadata; workState: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"
|
|
199
|
+
export type ContractorDetailsFieldsMetadata = { type: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"Business" | "Individual">; wageType: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"Fixed" | "Hourly">; startDate: FieldMetadata; hourlyRate: FieldMetadata; selfOnboarding: FieldMetadata; fileNewHireReport: FieldMetadata; email: FieldMetadata; firstName: FieldMetadata; lastName: FieldMetadata; middleInitial: FieldMetadata; businessName: FieldMetadata; ssn: FieldMetadata; ein: FieldMetadata; workState: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"AK" | "AL" | "AR" | "AZ" | "CA" | "CO" | "CT" | "DC" | "DE" | "FL" | "GA" | "HI" | "IA" | "ID" | "IL" | "IN" | "KS" | "KY" | "LA" | "MA" | "MD" | "ME" | "MI" | "MN" | "MO" | "MS" | "MT" | "NC" | "ND" | "NE" | "NH" | "NJ" | "NM" | "NV" | "NY" | "OH" | "OK" | "OR" | "PA" | "RI" | "SC" | "SD" | "TN" | "TX" | "UT" | "VA" | "VT" | "WA" | "WI" | "WV" | "WY">; };
|
|
@@ -76,9 +76,5 @@ export interface CompensationProps extends BaseComponentInterface<'Employee.Comp
|
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
78
|
export declare function Compensation(props: CompensationProps): import("react").JSX.Element;
|
|
79
|
-
export declare namespace Compensation {
|
|
80
|
-
var JobsList: typeof import("./JobsList").JobsList;
|
|
81
|
-
var EditCompensation: typeof import("./EditCompensation").EditCompensation;
|
|
82
|
-
}
|
|
83
79
|
/** @internal */
|
|
84
80
|
export declare const CompensationContextual: () => import("react").JSX.Element;
|