@gusto/embedded-react-sdk 0.9.0 → 0.10.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 +82 -2
- package/dist/components/Common/OnboardingStatusBadge/index.d.ts +21 -0
- package/dist/components/Common/OnboardingStatusBadge/index.js +17 -0
- package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -0
- package/dist/components/Common/SignatureForm/SignatureFormActions.js +8 -7
- package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormFields.js +5 -4
- package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
- package/dist/components/Common/TaxInputs/TaxInputs.js +42 -36
- package/dist/components/Common/TaxInputs/TaxInputs.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +7 -6
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +9 -8
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +7 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +3 -2
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +7 -6
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +8 -7
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +6 -5
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +7 -6
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +6 -5
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +11 -10
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +3 -2
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +3 -2
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +7 -6
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Actions.js +11 -10
- package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +6 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +7 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +6 -5
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Contractor/Address/Form.js +4 -4
- package/dist/components/Contractor/List/index.d.ts +25 -0
- package/dist/components/Contractor/List/index.js +84 -0
- package/dist/components/Contractor/List/index.js.map +1 -0
- package/dist/components/Contractor/List/useContractorList.d.ts +20 -0
- package/dist/components/Contractor/List/useContractorList.js +31 -0
- package/dist/components/Contractor/List/useContractorList.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.d.ts +2 -0
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +53 -0
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.d.ts +31 -0
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +108 -0
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.d.ts +11 -0
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +35 -0
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/types.d.ts +8 -0
- package/dist/components/Contractor/index.d.ts +2 -0
- package/dist/components/Contractor/index.js +6 -2
- package/dist/components/Contractor/index.js.map +1 -1
- package/dist/components/Employee/Compensation/Actions.js +1 -1
- package/dist/components/Employee/Compensation/Edit.js +59 -56
- package/dist/components/Employee/Compensation/Edit.js.map +1 -1
- package/dist/components/Employee/Compensation/List.js +6 -5
- package/dist/components/Employee/Compensation/List.js.map +1 -1
- package/dist/components/Employee/Compensation/useCompensation.d.ts +2 -0
- package/dist/components/Employee/Compensation/useCompensation.js +16 -14
- package/dist/components/Employee/Compensation/useCompensation.js.map +1 -1
- package/dist/components/Employee/Deductions/Actions.js +9 -8
- package/dist/components/Employee/Deductions/Actions.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionForm.js +14 -5
- package/dist/components/Employee/Deductions/DeductionForm.js.map +1 -1
- package/dist/components/Employee/Deductions/Deductions.js +25 -25
- package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsList.js +3 -2
- package/dist/components/Employee/Deductions/DeductionsList.js.map +1 -1
- package/dist/components/Employee/Deductions/IncludeDeductionsForm.js +3 -2
- package/dist/components/Employee/Deductions/IncludeDeductionsForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +5 -4
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Actions.js +5 -4
- package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
- package/dist/components/Employee/EmployeeList/List.js +58 -53
- package/dist/components/Employee/EmployeeList/List.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +48 -43
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/Actions.js +6 -5
- package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js +3 -2
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentMethod.js +3 -4
- package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/Split.js +88 -76
- package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.d.ts +2 -2
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +29 -25
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/Actions.js +7 -6
- package/dist/components/Employee/Profile/Actions.js.map +1 -1
- package/dist/components/Employee/Profile/AdminPersonalDetails.d.ts +49 -20
- package/dist/components/Employee/Profile/AdminPersonalDetails.js +27 -25
- package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js +10 -9
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
- package/dist/components/Employee/Profile/Profile.js +124 -120
- package/dist/components/Employee/Profile/Profile.js.map +1 -1
- package/dist/components/Employee/Taxes/Actions.js +8 -7
- package/dist/components/Employee/Taxes/Actions.js.map +1 -1
- package/dist/components/Employee/Taxes/FederalForm.js +5 -4
- package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/Taxes/StateForm.d.ts +1 -1
- package/dist/components/Employee/Taxes/StateForm.js +27 -25
- package/dist/components/Employee/Taxes/StateForm.js.map +1 -1
- package/dist/components/Employee/Taxes/Taxes.d.ts +1 -1
- package/dist/components/Employee/Taxes/Taxes.js +77 -73
- package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +8 -7
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/i18n/I18n.js +15 -15
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Contractor.ContractorList.json.js +25 -0
- package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -0
- package/dist/i18n/en/Contractor.PaymentMethod.json.js +35 -0
- package/dist/i18n/en/Contractor.PaymentMethod.json.js.map +1 -0
- package/dist/i18n/en/Employee.Compensation.json.js +22 -20
- package/dist/i18n/en/Employee.Compensation.json.js.map +1 -1
- package/dist/i18n/en/Employee.PaymentMethod.json.js +18 -17
- package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
- package/dist/i18n/en/common.json.d.ts +21 -9
- package/dist/i18n/en/common.json.js +35 -23
- package/dist/i18n/en/common.json.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/shared/constants.d.ts +14 -0
- package/dist/shared/constants.js +26 -15
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +52 -1
- package/package.json +4 -3
- package/dist/components/Employee/PaymentMethod/Constants.d.ts +0 -8
- package/dist/components/Employee/PaymentMethod/Constants.js +0 -6
- package/dist/components/Employee/PaymentMethod/Constants.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Profile.js","sources":["../../../../src/components/Employee/Profile/Profile.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { useRef } from 'react'\nimport type { SubmitHandler } from 'react-hook-form'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useLocationsGetSuspense } from '@gusto/embedded-api/react-query/locationsGet'\nimport { useEmployeesCreateMutation } from '@gusto/embedded-api/react-query/employeesCreate'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { useEmployeeAddressesGetSuspense } from '@gusto/embedded-api/react-query/employeeAddressesGet'\nimport { type EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport { useEmployeeAddressesCreateMutation } from '@gusto/embedded-api/react-query/employeeAddressesCreate'\nimport { useEmployeeAddressesUpdateMutation } from '@gusto/embedded-api/react-query/employeeAddressesUpdate'\nimport { useEmployeeAddressesUpdateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesUpdateWorkAddress'\nimport { useEmployeesUpdateMutation } from '@gusto/embedded-api/react-query/employeesUpdate'\nimport { useEmployeeAddressesGetWorkAddressesSuspense } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeAddressesCreateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesCreateWorkAddress'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus'\nimport { invalidateEmployeesList } from '@gusto/embedded-api/react-query/employeesList'\nimport { useQueryClient } from '@tanstack/react-query'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport { AdminPersonalDetails, AdminPersonalDetailsSchema } from './AdminPersonalDetails'\nimport { SelfPersonalDetails, SelfPersonalDetailsSchema } from './SelfPersonalDetails'\nimport { type PersonalDetailsPayload, type PersonalDetailsInputs } from './PersonalDetailsInputs'\nimport { Head } from './Head'\nimport { Actions } from './Actions'\nimport { HomeAddress, HomeAddressSchema, type HomeAddressInputs } from './HomeAddress'\nimport { WorkAddress } from './WorkAddress'\nimport { ProfileProvider } from './useProfile'\nimport { getEmployeeAddressForProfile } from './getEmployeeAddressForProfile'\nimport { Form } from '@/components/Common/Form'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport {\n componentEvents,\n EmployeeOnboardingStatus,\n EmployeeSelfOnboardingStatuses,\n} from '@/shared/constants'\nimport type { RequireAtLeastOne, WithRequired } from '@/types/Helpers'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nexport type ProfileDefaultValues = RequireAtLeastOne<{\n employee?: RequireAtLeastOne<{\n firstName?: string\n middleInitial?: string\n lastName?: string\n email?: string\n dateOfBirth?: string\n }>\n homeAddress?: RequireAtLeastOne<{\n street1?: string\n street2?: string\n city?: string\n state?: string\n zip?: string\n }>\n}>\ninterface ProfileProps extends CommonComponentInterface<'Employee.Profile'> {\n employeeId?: string\n companyId: string\n defaultValues?: ProfileDefaultValues\n isAdmin?: boolean\n isSelfOnboardingEnabled?: boolean\n}\n\ninterface ProfileConditionalProps {\n employee?: Employee\n homeAddresses?: EmployeeAddress[]\n workAddresses?: EmployeeWorkAddress[]\n}\n\nexport function Profile(props: ProfileProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n {props.employeeId ? (\n <RootWithEmployee {...props} employeeId={props.employeeId}>\n {props.children}\n </RootWithEmployee>\n ) : (\n <Root {...props}>{props.children}</Root>\n )}\n </BaseComponent>\n )\n}\n\n/**Accounting for conditional logic where employee data needs to be fetched only if employeeId is present */\nfunction RootWithEmployee({ employeeId, ...props }: WithRequired<ProfileProps, 'employeeId'>) {\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n const {\n data: { employeeAddressList },\n } = useEmployeeAddressesGetSuspense({ employeeId })\n const {\n data: { employeeWorkAddressesList },\n } = useEmployeeAddressesGetWorkAddressesSuspense({ employeeId })\n return (\n <Root\n {...props}\n employee={employee}\n homeAddresses={employeeAddressList}\n workAddresses={employeeWorkAddressesList}\n />\n )\n}\n\nconst Root = ({\n isAdmin = false,\n isSelfOnboardingEnabled = true,\n dictionary,\n ...props\n}: ProfileProps & ProfileConditionalProps) => {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n const {\n companyId,\n employee,\n homeAddresses,\n workAddresses,\n children,\n className = '',\n defaultValues,\n } = props\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data } = useLocationsGetSuspense({ companyId })\n const companyLocations = data.locationList!\n\n const { mutateAsync: createEmployee, isPending: isPendingCreateEmployee } =\n useEmployeesCreateMutation()\n const { mutateAsync: mutateEmployee, isPending: isPendingEmployeeUpdate } =\n useEmployeesUpdateMutation()\n\n const { mutateAsync: createEmployeeWorkAddress, isPending: isPendingCreateWA } =\n useEmployeeAddressesCreateWorkAddressMutation()\n const { mutateAsync: mutateEmployeeWorkAddress, isPending: isPendingWorkAddressUpdate } =\n useEmployeeAddressesUpdateWorkAddressMutation()\n\n const { mutateAsync: createEmployeeHomeAddress, isPending: isPendingAddHA } =\n useEmployeeAddressesCreateMutation()\n const { mutateAsync: mutateEmployeeHomeAddress, isPending: isPendingUpdateHA } =\n useEmployeeAddressesUpdateMutation()\n\n const {\n mutateAsync: updateEmployeeOnboardingStatus,\n isPending: isPendingUpdateOnboardingStatus,\n } = useEmployeesUpdateOnboardingStatusMutation({\n onSettled: () => invalidateEmployeesList(queryClient, [companyId]),\n })\n\n const existingData = { employee, workAddresses, homeAddresses }\n\n const currentHomeAddress = getEmployeeAddressForProfile(homeAddresses)\n\n const currentWorkAddress = existingData.workAddresses?.find(address => address.active)\n const mergedData = useRef({\n employee: existingData.employee,\n homeAddress: currentHomeAddress,\n workAddress: currentWorkAddress,\n })\n const initialValues = {\n firstName: mergedData.current.employee?.firstName ?? defaultValues?.employee?.firstName ?? '',\n middleInitial:\n mergedData.current.employee?.middleInitial ?? defaultValues?.employee?.middleInitial ?? '',\n lastName: mergedData.current.employee?.lastName ?? defaultValues?.employee?.lastName ?? '',\n workAddress: mergedData.current.workAddress?.locationUuid,\n startDate: mergedData.current.employee?.jobs?.[0]?.hireDate\n ? new Date(mergedData.current.employee.jobs[0].hireDate)\n : null, // By default employee response contains only current job - therefore jobs[0]\n email: mergedData.current.employee?.email ?? defaultValues?.employee?.email ?? '',\n dateOfBirth: mergedData.current.employee?.dateOfBirth\n ? new Date(mergedData.current.employee.dateOfBirth)\n : defaultValues?.employee?.dateOfBirth\n ? new Date(defaultValues.employee.dateOfBirth)\n : null,\n\n street1: mergedData.current.homeAddress?.street1 ?? defaultValues?.homeAddress?.street1 ?? '',\n street2: mergedData.current.homeAddress?.street2 ?? defaultValues?.homeAddress?.street2 ?? '',\n city: mergedData.current.homeAddress?.city ?? defaultValues?.homeAddress?.city ?? '',\n zip: mergedData.current.homeAddress?.zip ?? defaultValues?.homeAddress?.zip ?? '',\n state: mergedData.current.homeAddress?.state ?? defaultValues?.homeAddress?.state ?? '',\n courtesyWithholding: mergedData.current.homeAddress?.courtesyWithholding ?? false,\n }\n\n const adminDefaultValues =\n mergedData.current.employee?.onboarded ||\n mergedData.current.employee?.onboardingStatus ===\n EmployeeOnboardingStatus.ONBOARDING_COMPLETED ||\n (mergedData.current.employee?.onboardingStatus !== undefined &&\n mergedData.current.employee.onboardingStatus !==\n EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE)\n ? { ...initialValues, enableSsn: false, selfOnboarding: true }\n : {\n ...initialValues,\n selfOnboarding: isSelfOnboardingEnabled\n ? mergedData.current.employee?.onboardingStatus\n ? // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n EmployeeSelfOnboardingStatuses.has(mergedData.current.employee.onboarding_status)\n : false\n : false,\n enableSsn: !mergedData.current.employee?.hasSsn,\n ssn: '',\n } // In edit mode ssn is submitted only if it has been modified\n\n const selfDetaultValues = {\n ...initialValues,\n enableSsn: !mergedData.current.employee?.hasSsn,\n ssn: '',\n }\n\n const formMethods = useForm<\n PersonalDetailsInputs & HomeAddressInputs,\n unknown,\n PersonalDetailsPayload & HomeAddressInputs\n >({\n resolver: zodResolver(\n (isAdmin ? AdminPersonalDetailsSchema : SelfPersonalDetailsSchema).and(HomeAddressSchema),\n ),\n defaultValues: isAdmin ? adminDefaultValues : selfDetaultValues,\n })\n\n const { handleSubmit } = formMethods\n const watchedSelfOnboarding = useWatch({ control: formMethods.control, name: 'selfOnboarding' })\n\n const onSubmit: SubmitHandler<PersonalDetailsPayload & HomeAddressInputs> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { workAddress, startDate, selfOnboarding, ...body } = payload\n //create or update employee\n if (!mergedData.current.employee) {\n const { employee: employeeData } = await createEmployee({\n request: {\n companyId,\n requestBody: {\n ...body,\n selfOnboarding,\n dateOfBirth: body.dateOfBirth ? new RFCDate(body.dateOfBirth) : undefined,\n },\n },\n })\n mergedData.current = { ...mergedData.current, employee: employeeData }\n onEvent(componentEvents.EMPLOYEE_CREATED, employeeData)\n } else {\n // Updating self-onboarding status\n if (\n (selfOnboarding &&\n mergedData.current.employee.onboardingStatus ===\n EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE) ||\n (!selfOnboarding &&\n mergedData.current.employee.onboardingStatus ===\n EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE)\n ) {\n const { employeeOnboardingStatus } = await updateEmployeeOnboardingStatus({\n request: {\n employeeId: mergedData.current.employee.uuid,\n requestBody: {\n onboardingStatus: selfOnboarding\n ? EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n : EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n mergedData.current.employee = {\n ...mergedData.current.employee,\n onboardingStatus: employeeOnboardingStatus!\n .onboardingStatus as (typeof EmployeeOnboardingStatus)[keyof typeof EmployeeOnboardingStatus],\n }\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, employeeOnboardingStatus)\n }\n const { employee: employeeData } = await mutateEmployee({\n request: {\n employeeId: mergedData.current.employee.uuid,\n requestBody: { ...body, version: mergedData.current.employee.version as string },\n },\n })\n mergedData.current = { ...mergedData.current, employee: employeeData }\n onEvent(componentEvents.EMPLOYEE_UPDATED, employeeData)\n }\n if (typeof mergedData.current.employee?.uuid !== 'string') {\n throw new Error('Employee id is not available')\n }\n //create or update home address - only if not intended for self onboarding\n if (!watchedSelfOnboarding || !isAdmin) {\n //typeguard: in this scenario payload will contain address information\n if (!payload.selfOnboarding) {\n const { street1, street2, city, state, zip, courtesyWithholding } = payload\n if (!mergedData.current.homeAddress) {\n // Creating home address - for new employee effective_date is the same as work start date\n const { employeeAddress } = await createEmployeeHomeAddress({\n request: {\n employeeId: mergedData.current.employee.uuid,\n requestBody: {\n street1,\n street2,\n city,\n state,\n zip,\n courtesyWithholding,\n },\n },\n })\n mergedData.current = { ...mergedData.current, homeAddress: employeeAddress }\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, employeeAddress)\n } else {\n const { employeeAddress } = await mutateEmployeeHomeAddress({\n request: {\n homeAddressUuid: mergedData.current.homeAddress.uuid,\n requestBody: {\n version: mergedData.current.homeAddress.version,\n street1,\n street2,\n city,\n state,\n zip,\n courtesyWithholding,\n },\n },\n })\n mergedData.current = { ...mergedData.current, homeAddress: employeeAddress }\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, employeeAddress)\n }\n }\n }\n\n if (isAdmin) {\n //create or update workaddress\n if (!mergedData.current.workAddress) {\n const { employeeWorkAddress } = await createEmployeeWorkAddress({\n request: {\n employeeId: mergedData.current.employee?.uuid as string,\n requestBody: {\n locationUuid: workAddress,\n effectiveDate: new RFCDate(payload.startDate || new Date()),\n },\n },\n })\n\n mergedData.current = { ...mergedData.current, workAddress: employeeWorkAddress }\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, employeeWorkAddress)\n } else {\n //effective_date is excluded from update operation since it cannot be changed on initial work address\n const { employeeWorkAddress } = await mutateEmployeeWorkAddress({\n request: {\n workAddressUuid: mergedData.current.workAddress.uuid,\n requestBody: {\n version: mergedData.current.workAddress.version,\n locationUuid: workAddress,\n },\n },\n })\n mergedData.current = { ...mergedData.current, workAddress: employeeWorkAddress }\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, employeeWorkAddress)\n }\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, {\n ...mergedData.current.employee,\n startDate,\n })\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n return (\n <section className={className}>\n <ProfileProvider\n value={{\n companyLocations,\n workAddresses,\n employee: mergedData.current.employee ?? undefined,\n isSelfOnboardingIntended: watchedSelfOnboarding,\n handleCancel,\n isAdmin,\n isSelfOnboardingEnabled,\n isPending:\n isPendingEmployeeUpdate ||\n isPendingWorkAddressUpdate ||\n isPendingAddHA ||\n isPendingUpdateHA ||\n isPendingCreateEmployee ||\n isPendingCreateWA ||\n isPendingUpdateOnboardingStatus,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={handleSubmit(onSubmit)}>\n {children ? (\n children\n ) : (\n <>\n <Head />\n <AdminPersonalDetails />\n <SelfPersonalDetails />\n <HomeAddress />\n <WorkAddress />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </ProfileProvider>\n </section>\n )\n}\n\nProfile.Head = Head\nProfile.Actions = Actions\nProfile.AdminPersonalDetails = AdminPersonalDetails\nProfile.SelfPersonalDetails = SelfPersonalDetails\nProfile.HomeAddress = HomeAddress\nProfile.WorkAddress = WorkAddress\n\nexport const ProfileContextual = () => {\n const { companyId, employeeId, onEvent, isAdmin, defaultValues, isSelfOnboardingEnabled } =\n useFlow<OnboardingContextInterface>()\n\n return (\n <Profile\n companyId={ensureRequired(companyId)}\n employeeId={employeeId}\n onEvent={onEvent}\n isAdmin={isAdmin}\n defaultValues={defaultValues?.profile}\n isSelfOnboardingEnabled={isSelfOnboardingEnabled}\n />\n )\n}\n"],"names":["Profile","props","jsx","BaseComponent","RootWithEmployee","Root","employeeId","employee","useEmployeesGetSuspense","employeeAddressList","useEmployeeAddressesGetSuspense","employeeWorkAddressesList","useEmployeeAddressesGetWorkAddressesSuspense","isAdmin","isSelfOnboardingEnabled","dictionary","useI18n","useComponentDictionary","companyId","homeAddresses","workAddresses","children","className","defaultValues","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","data","useLocationsGetSuspense","companyLocations","createEmployee","isPendingCreateEmployee","useEmployeesCreateMutation","mutateEmployee","isPendingEmployeeUpdate","useEmployeesUpdateMutation","createEmployeeWorkAddress","isPendingCreateWA","useEmployeeAddressesCreateWorkAddressMutation","mutateEmployeeWorkAddress","isPendingWorkAddressUpdate","useEmployeeAddressesUpdateWorkAddressMutation","createEmployeeHomeAddress","isPendingAddHA","useEmployeeAddressesCreateMutation","mutateEmployeeHomeAddress","isPendingUpdateHA","useEmployeeAddressesUpdateMutation","updateEmployeeOnboardingStatus","isPendingUpdateOnboardingStatus","useEmployeesUpdateOnboardingStatusMutation","invalidateEmployeesList","existingData","currentHomeAddress","getEmployeeAddressForProfile","currentWorkAddress","address","mergedData","useRef","initialValues","adminDefaultValues","EmployeeOnboardingStatus","EmployeeSelfOnboardingStatuses","selfDetaultValues","formMethods","useForm","zodResolver","AdminPersonalDetailsSchema","SelfPersonalDetailsSchema","HomeAddressSchema","handleSubmit","watchedSelfOnboarding","useWatch","onSubmit","payload","workAddress","startDate","selfOnboarding","body","employeeOnboardingStatus","componentEvents","employeeData","RFCDate","street1","street2","city","state","zip","courtesyWithholding","employeeAddress","employeeWorkAddress","handleCancel","ProfileProvider","FormProvider","Form","jsxs","Fragment","Head","AdminPersonalDetails","SelfPersonalDetails","HomeAddress","WorkAddress","Actions","ProfileContextual","useFlow","ensureRequired"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Profile.js","sources":["../../../../src/components/Employee/Profile/Profile.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { useRef, useState, useEffect } from 'react'\nimport type { SubmitHandler } from 'react-hook-form'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useLocationsGetSuspense } from '@gusto/embedded-api/react-query/locationsGet'\nimport { useEmployeesCreateMutation } from '@gusto/embedded-api/react-query/employeesCreate'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { useEmployeeAddressesGetSuspense } from '@gusto/embedded-api/react-query/employeeAddressesGet'\nimport { type EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport { useEmployeeAddressesCreateMutation } from '@gusto/embedded-api/react-query/employeeAddressesCreate'\nimport { useEmployeeAddressesUpdateMutation } from '@gusto/embedded-api/react-query/employeeAddressesUpdate'\nimport { useEmployeeAddressesUpdateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesUpdateWorkAddress'\nimport { useEmployeesUpdateMutation } from '@gusto/embedded-api/react-query/employeesUpdate'\nimport { useEmployeeAddressesGetWorkAddressesSuspense } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeAddressesCreateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesCreateWorkAddress'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus'\nimport { invalidateEmployeesList } from '@gusto/embedded-api/react-query/employeesList'\nimport { useQueryClient } from '@tanstack/react-query'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport {\n AdminPersonalDetails,\n AdminPersonalDetailsSchema,\n AdminSelfOnboardingPersonalDetailsSchema,\n} from './AdminPersonalDetails'\nimport { SelfPersonalDetails, SelfPersonalDetailsSchema } from './SelfPersonalDetails'\nimport { type PersonalDetailsPayload, type PersonalDetailsInputs } from './PersonalDetailsInputs'\nimport { Head } from './Head'\nimport { Actions } from './Actions'\nimport { HomeAddress, HomeAddressSchema, type HomeAddressInputs } from './HomeAddress'\nimport { WorkAddress } from './WorkAddress'\nimport { ProfileProvider } from './useProfile'\nimport { getEmployeeAddressForProfile } from './getEmployeeAddressForProfile'\nimport { Form } from '@/components/Common/Form'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport {\n componentEvents,\n EmployeeOnboardingStatus,\n EmployeeSelfOnboardingStatuses,\n} from '@/shared/constants'\nimport type { RequireAtLeastOne, WithRequired } from '@/types/Helpers'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nexport type ProfileDefaultValues = RequireAtLeastOne<{\n employee?: RequireAtLeastOne<{\n firstName?: string\n middleInitial?: string\n lastName?: string\n email?: string\n dateOfBirth?: string\n }>\n homeAddress?: RequireAtLeastOne<{\n street1?: string\n street2?: string\n city?: string\n state?: string\n zip?: string\n }>\n}>\ninterface ProfileProps extends CommonComponentInterface<'Employee.Profile'> {\n employeeId?: string\n companyId: string\n defaultValues?: ProfileDefaultValues\n isAdmin?: boolean\n isSelfOnboardingEnabled?: boolean\n}\n\ninterface ProfileConditionalProps {\n employee?: Employee\n homeAddresses?: EmployeeAddress[]\n workAddresses?: EmployeeWorkAddress[]\n}\n\nexport function Profile(props: ProfileProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n {props.employeeId ? (\n <RootWithEmployee {...props} employeeId={props.employeeId}>\n {props.children}\n </RootWithEmployee>\n ) : (\n <Root {...props}>{props.children}</Root>\n )}\n </BaseComponent>\n )\n}\n\n/**Accounting for conditional logic where employee data needs to be fetched only if employeeId is present */\nfunction RootWithEmployee({ employeeId, ...props }: WithRequired<ProfileProps, 'employeeId'>) {\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n const {\n data: { employeeAddressList },\n } = useEmployeeAddressesGetSuspense({ employeeId })\n const {\n data: { employeeWorkAddressesList },\n } = useEmployeeAddressesGetWorkAddressesSuspense({ employeeId })\n return (\n <Root\n {...props}\n employee={employee}\n homeAddresses={employeeAddressList}\n workAddresses={employeeWorkAddressesList}\n />\n )\n}\n\nconst Root = ({\n isAdmin = false,\n isSelfOnboardingEnabled = true,\n dictionary,\n ...props\n}: ProfileProps & ProfileConditionalProps) => {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n const {\n companyId,\n employee,\n homeAddresses,\n workAddresses,\n children,\n className = '',\n defaultValues,\n } = props\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const [AdminSchema, setAdminSchema] = useState<\n typeof AdminPersonalDetailsSchema | typeof AdminSelfOnboardingPersonalDetailsSchema\n >(AdminPersonalDetailsSchema)\n\n const { data } = useLocationsGetSuspense({ companyId })\n const companyLocations = data.locationList!\n\n const { mutateAsync: createEmployee, isPending: isPendingCreateEmployee } =\n useEmployeesCreateMutation()\n const { mutateAsync: mutateEmployee, isPending: isPendingEmployeeUpdate } =\n useEmployeesUpdateMutation()\n\n const { mutateAsync: createEmployeeWorkAddress, isPending: isPendingCreateWA } =\n useEmployeeAddressesCreateWorkAddressMutation()\n const { mutateAsync: mutateEmployeeWorkAddress, isPending: isPendingWorkAddressUpdate } =\n useEmployeeAddressesUpdateWorkAddressMutation()\n\n const { mutateAsync: createEmployeeHomeAddress, isPending: isPendingAddHA } =\n useEmployeeAddressesCreateMutation()\n const { mutateAsync: mutateEmployeeHomeAddress, isPending: isPendingUpdateHA } =\n useEmployeeAddressesUpdateMutation()\n\n const {\n mutateAsync: updateEmployeeOnboardingStatus,\n isPending: isPendingUpdateOnboardingStatus,\n } = useEmployeesUpdateOnboardingStatusMutation({\n onSettled: () => invalidateEmployeesList(queryClient, [companyId]),\n })\n\n const existingData = { employee, workAddresses, homeAddresses }\n\n const currentHomeAddress = getEmployeeAddressForProfile(homeAddresses)\n\n const currentWorkAddress = existingData.workAddresses?.find(address => address.active)\n const mergedData = useRef({\n employee: existingData.employee,\n homeAddress: currentHomeAddress,\n workAddress: currentWorkAddress,\n })\n const initialValues = {\n firstName: mergedData.current.employee?.firstName ?? defaultValues?.employee?.firstName ?? '',\n middleInitial:\n mergedData.current.employee?.middleInitial ?? defaultValues?.employee?.middleInitial ?? '',\n lastName: mergedData.current.employee?.lastName ?? defaultValues?.employee?.lastName ?? '',\n workAddress: mergedData.current.workAddress?.locationUuid,\n startDate: mergedData.current.employee?.jobs?.[0]?.hireDate\n ? new Date(mergedData.current.employee.jobs[0].hireDate)\n : null, // By default employee response contains only current job - therefore jobs[0]\n email: mergedData.current.employee?.email ?? defaultValues?.employee?.email ?? '',\n dateOfBirth: mergedData.current.employee?.dateOfBirth\n ? new Date(mergedData.current.employee.dateOfBirth)\n : defaultValues?.employee?.dateOfBirth\n ? new Date(defaultValues.employee.dateOfBirth)\n : null,\n\n street1: mergedData.current.homeAddress?.street1 ?? defaultValues?.homeAddress?.street1 ?? '',\n street2: mergedData.current.homeAddress?.street2 ?? defaultValues?.homeAddress?.street2 ?? '',\n city: mergedData.current.homeAddress?.city ?? defaultValues?.homeAddress?.city ?? '',\n zip: mergedData.current.homeAddress?.zip ?? defaultValues?.homeAddress?.zip ?? '',\n state: mergedData.current.homeAddress?.state ?? defaultValues?.homeAddress?.state ?? '',\n courtesyWithholding: mergedData.current.homeAddress?.courtesyWithholding ?? false,\n }\n\n const adminDefaultValues =\n mergedData.current.employee?.onboarded ||\n mergedData.current.employee?.onboardingStatus ===\n EmployeeOnboardingStatus.ONBOARDING_COMPLETED ||\n (mergedData.current.employee?.onboardingStatus !== undefined &&\n mergedData.current.employee.onboardingStatus !==\n EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE)\n ? { ...initialValues, enableSsn: false, selfOnboarding: true }\n : {\n ...initialValues,\n selfOnboarding: isSelfOnboardingEnabled\n ? mergedData.current.employee?.onboardingStatus\n ? // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n EmployeeSelfOnboardingStatuses.has(mergedData.current.employee.onboarding_status)\n : false\n : false,\n enableSsn: !mergedData.current.employee?.hasSsn,\n ssn: '',\n } // In edit mode ssn is submitted only if it has been modified\n\n const selfDetaultValues = {\n ...initialValues,\n enableSsn: !mergedData.current.employee?.hasSsn,\n ssn: '',\n }\n\n const formMethods = useForm<\n PersonalDetailsInputs & HomeAddressInputs,\n unknown,\n PersonalDetailsPayload & HomeAddressInputs\n >({\n resolver: zodResolver(\n (isAdmin ? AdminSchema : SelfPersonalDetailsSchema).and(HomeAddressSchema),\n ),\n defaultValues: isAdmin ? adminDefaultValues : selfDetaultValues,\n })\n\n const { handleSubmit } = formMethods\n const watchedSelfOnboarding = useWatch({ control: formMethods.control, name: 'selfOnboarding' })\n\n useEffect(() => {\n if (isAdmin) {\n if (watchedSelfOnboarding) {\n setAdminSchema(AdminSelfOnboardingPersonalDetailsSchema)\n } else {\n setAdminSchema(AdminPersonalDetailsSchema)\n }\n }\n }, [watchedSelfOnboarding, isAdmin])\n\n const onSubmit: SubmitHandler<PersonalDetailsPayload & HomeAddressInputs> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { workAddress, startDate, selfOnboarding, ...body } = payload\n //create or update employee\n if (!mergedData.current.employee) {\n const { employee: employeeData } = await createEmployee({\n request: {\n companyId,\n requestBody: {\n ...body,\n selfOnboarding,\n dateOfBirth: body.dateOfBirth ? new RFCDate(body.dateOfBirth) : undefined,\n },\n },\n })\n mergedData.current = { ...mergedData.current, employee: employeeData }\n onEvent(componentEvents.EMPLOYEE_CREATED, employeeData)\n } else {\n // Updating self-onboarding status\n if (\n (selfOnboarding &&\n mergedData.current.employee.onboardingStatus ===\n EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE) ||\n (!selfOnboarding &&\n mergedData.current.employee.onboardingStatus ===\n EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE)\n ) {\n const { employeeOnboardingStatus } = await updateEmployeeOnboardingStatus({\n request: {\n employeeId: mergedData.current.employee.uuid,\n requestBody: {\n onboardingStatus: selfOnboarding\n ? EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n : EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n mergedData.current.employee = {\n ...mergedData.current.employee,\n onboardingStatus: employeeOnboardingStatus!\n .onboardingStatus as (typeof EmployeeOnboardingStatus)[keyof typeof EmployeeOnboardingStatus],\n }\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, employeeOnboardingStatus)\n }\n const { employee: employeeData } = await mutateEmployee({\n request: {\n employeeId: mergedData.current.employee.uuid,\n requestBody: { ...body, version: mergedData.current.employee.version as string },\n },\n })\n mergedData.current = { ...mergedData.current, employee: employeeData }\n onEvent(componentEvents.EMPLOYEE_UPDATED, employeeData)\n }\n if (typeof mergedData.current.employee?.uuid !== 'string') {\n throw new Error('Employee id is not available')\n }\n //create or update home address - only if not intended for self onboarding\n if (!watchedSelfOnboarding || !isAdmin) {\n //typeguard: in this scenario payload will contain address information\n if (!payload.selfOnboarding) {\n const { street1, street2, city, state, zip, courtesyWithholding } = payload\n if (!mergedData.current.homeAddress) {\n // Creating home address - for new employee effective_date is the same as work start date\n const { employeeAddress } = await createEmployeeHomeAddress({\n request: {\n employeeId: mergedData.current.employee.uuid,\n requestBody: {\n street1,\n street2,\n city,\n state,\n zip,\n courtesyWithholding,\n },\n },\n })\n mergedData.current = { ...mergedData.current, homeAddress: employeeAddress }\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, employeeAddress)\n } else {\n const { employeeAddress } = await mutateEmployeeHomeAddress({\n request: {\n homeAddressUuid: mergedData.current.homeAddress.uuid,\n requestBody: {\n version: mergedData.current.homeAddress.version,\n street1,\n street2,\n city,\n state,\n zip,\n courtesyWithholding,\n },\n },\n })\n mergedData.current = { ...mergedData.current, homeAddress: employeeAddress }\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, employeeAddress)\n }\n }\n }\n\n if (isAdmin) {\n //create or update workaddress\n if (!mergedData.current.workAddress) {\n const { employeeWorkAddress } = await createEmployeeWorkAddress({\n request: {\n employeeId: mergedData.current.employee?.uuid as string,\n requestBody: {\n locationUuid: workAddress,\n effectiveDate: new RFCDate(payload.startDate || new Date()),\n },\n },\n })\n\n mergedData.current = { ...mergedData.current, workAddress: employeeWorkAddress }\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, employeeWorkAddress)\n } else {\n //effective_date is excluded from update operation since it cannot be changed on initial work address\n const { employeeWorkAddress } = await mutateEmployeeWorkAddress({\n request: {\n workAddressUuid: mergedData.current.workAddress.uuid,\n requestBody: {\n version: mergedData.current.workAddress.version,\n locationUuid: workAddress,\n },\n },\n })\n mergedData.current = { ...mergedData.current, workAddress: employeeWorkAddress }\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, employeeWorkAddress)\n }\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, {\n ...mergedData.current.employee,\n startDate,\n })\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n return (\n <section className={className}>\n <ProfileProvider\n value={{\n companyLocations,\n workAddresses,\n employee: mergedData.current.employee ?? undefined,\n isSelfOnboardingIntended: watchedSelfOnboarding,\n handleCancel,\n isAdmin,\n isSelfOnboardingEnabled,\n isPending:\n isPendingEmployeeUpdate ||\n isPendingWorkAddressUpdate ||\n isPendingAddHA ||\n isPendingUpdateHA ||\n isPendingCreateEmployee ||\n isPendingCreateWA ||\n isPendingUpdateOnboardingStatus,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={handleSubmit(onSubmit)}>\n {children ? (\n children\n ) : (\n <>\n <Head />\n <AdminPersonalDetails />\n <SelfPersonalDetails />\n <HomeAddress />\n <WorkAddress />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </ProfileProvider>\n </section>\n )\n}\n\nProfile.Head = Head\nProfile.Actions = Actions\nProfile.AdminPersonalDetails = AdminPersonalDetails\nProfile.SelfPersonalDetails = SelfPersonalDetails\nProfile.HomeAddress = HomeAddress\nProfile.WorkAddress = WorkAddress\n\nexport const ProfileContextual = () => {\n const { companyId, employeeId, onEvent, isAdmin, defaultValues, isSelfOnboardingEnabled } =\n useFlow<OnboardingContextInterface>()\n\n return (\n <Profile\n companyId={ensureRequired(companyId)}\n employeeId={employeeId}\n onEvent={onEvent}\n isAdmin={isAdmin}\n defaultValues={defaultValues?.profile}\n isSelfOnboardingEnabled={isSelfOnboardingEnabled}\n />\n )\n}\n"],"names":["Profile","props","jsx","BaseComponent","RootWithEmployee","Root","employeeId","employee","useEmployeesGetSuspense","employeeAddressList","useEmployeeAddressesGetSuspense","employeeWorkAddressesList","useEmployeeAddressesGetWorkAddressesSuspense","isAdmin","isSelfOnboardingEnabled","dictionary","useI18n","useComponentDictionary","companyId","homeAddresses","workAddresses","children","className","defaultValues","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","AdminSchema","setAdminSchema","useState","AdminPersonalDetailsSchema","data","useLocationsGetSuspense","companyLocations","createEmployee","isPendingCreateEmployee","useEmployeesCreateMutation","mutateEmployee","isPendingEmployeeUpdate","useEmployeesUpdateMutation","createEmployeeWorkAddress","isPendingCreateWA","useEmployeeAddressesCreateWorkAddressMutation","mutateEmployeeWorkAddress","isPendingWorkAddressUpdate","useEmployeeAddressesUpdateWorkAddressMutation","createEmployeeHomeAddress","isPendingAddHA","useEmployeeAddressesCreateMutation","mutateEmployeeHomeAddress","isPendingUpdateHA","useEmployeeAddressesUpdateMutation","updateEmployeeOnboardingStatus","isPendingUpdateOnboardingStatus","useEmployeesUpdateOnboardingStatusMutation","invalidateEmployeesList","existingData","currentHomeAddress","getEmployeeAddressForProfile","currentWorkAddress","address","mergedData","useRef","initialValues","adminDefaultValues","EmployeeOnboardingStatus","EmployeeSelfOnboardingStatuses","selfDetaultValues","formMethods","useForm","zodResolver","SelfPersonalDetailsSchema","HomeAddressSchema","handleSubmit","watchedSelfOnboarding","useWatch","useEffect","AdminSelfOnboardingPersonalDetailsSchema","onSubmit","payload","workAddress","startDate","selfOnboarding","body","employeeOnboardingStatus","componentEvents","employeeData","RFCDate","street1","street2","city","state","zip","courtesyWithholding","employeeAddress","employeeWorkAddress","handleCancel","ProfileProvider","FormProvider","Form","jsxs","Fragment","Head","AdminPersonalDetails","SelfPersonalDetails","HomeAddress","WorkAddress","Actions","ProfileContextual","useFlow","ensureRequired"],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { useTaxes as
|
|
4
|
-
import
|
|
2
|
+
import { useTranslation as i } from "react-i18next";
|
|
3
|
+
import { useTaxes as r } from "./useTaxes.js";
|
|
4
|
+
import "../../../shared/constants.js";
|
|
5
|
+
import { ActionsLayout as e } from "../../Common/ActionsLayout/ActionsLayout.js";
|
|
5
6
|
import { useComponentContext as m } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
-
const
|
|
7
|
-
const { t } =
|
|
8
|
-
return /* @__PURE__ */ o(
|
|
7
|
+
const d = () => {
|
|
8
|
+
const { t } = i("Employee.Taxes"), { isPending: n } = r(), s = m();
|
|
9
|
+
return /* @__PURE__ */ o(e, { children: /* @__PURE__ */ o(s.Button, { type: "submit", isLoading: n, children: t("submitCta") }) });
|
|
9
10
|
};
|
|
10
11
|
export {
|
|
11
|
-
|
|
12
|
+
d as Actions
|
|
12
13
|
};
|
|
13
14
|
//# sourceMappingURL=Actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["../../../../src/components/Employee/Taxes/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useTaxes } from './useTaxes'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const Actions = () => {\n const { t } = useTranslation('Employee.Taxes')\n const { isPending } = useTaxes()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","useTaxes","Components","useComponentContext","jsx","ActionsLayout"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../../src/components/Employee/Taxes/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useTaxes } from './useTaxes'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const Actions = () => {\n const { t } = useTranslation('Employee.Taxes')\n const { isPending } = useTaxes()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","useTaxes","Components","useComponentContext","jsx","ActionsLayout"],"mappings":";;;;;;AAKO,MAAMA,IAAU,MAAM;AAC3B,QAAM,EAAE,EAAA,IAAMC,EAAe,gBAAgB,GACvC,EAAE,WAAAC,EAAU,IAAIC,EAAS,GACzBC,IAAaC,EAAoB;AAEvC,SACG,gBAAAC,EAAAC,GAAA,EACC,UAAC,gBAAAD,EAAAF,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWF,GACzC,UAAE,EAAA,WAAW,EAChB,CAAA,GACF;AAEJ;"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsxs as l, Fragment as a, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { useTranslation as s, Trans as m } from "react-i18next";
|
|
3
3
|
import { z as t } from "zod";
|
|
4
|
+
import "../../../shared/constants.js";
|
|
4
5
|
import { useComponentContext as u } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
5
6
|
import { SelectField as d } from "../../Common/Fields/SelectField/SelectField.js";
|
|
6
7
|
import { RadioGroupField as f } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
|
|
7
8
|
import { NumberInputField as i } from "../../Common/Fields/NumberInputField/NumberInputField.js";
|
|
8
|
-
const
|
|
9
|
+
const R = t.object({
|
|
9
10
|
filingStatus: t.string().min(1),
|
|
10
11
|
twoJobs: t.string().min(1),
|
|
11
12
|
dependentsAmount: t.number().transform(String),
|
|
@@ -14,7 +15,7 @@ const x = t.object({
|
|
|
14
15
|
extraWithholding: t.number().transform(String),
|
|
15
16
|
w4DataType: t.enum(["pre_2020_w4", "rev_2020_w4"])
|
|
16
17
|
});
|
|
17
|
-
function
|
|
18
|
+
function q() {
|
|
18
19
|
const { t: e } = s("Employee.Taxes"), o = u(), n = [
|
|
19
20
|
{ value: "Single", label: e("filingStatusSingle") },
|
|
20
21
|
{ value: "Married", label: e("filingStatusMarried") },
|
|
@@ -100,7 +101,7 @@ function R() {
|
|
|
100
101
|
] });
|
|
101
102
|
}
|
|
102
103
|
export {
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
q as FederalForm,
|
|
105
|
+
R as FederalFormSchema
|
|
105
106
|
};
|
|
106
107
|
//# sourceMappingURL=FederalForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FederalForm.js","sources":["../../../../src/components/Employee/Taxes/FederalForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { NumberInputField, RadioGroupField, SelectField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const FederalFormSchema = z.object({\n filingStatus: z.string().min(1),\n twoJobs: z.string().min(1),\n dependentsAmount: z.number().transform(String),\n otherIncome: z.number().transform(String),\n deductions: z.number().transform(String),\n extraWithholding: z.number().transform(String),\n w4DataType: z.enum(['pre_2020_w4', 'rev_2020_w4']),\n})\n\nexport type FederalFormInputs = z.input<typeof FederalFormSchema>\nexport type FederalFormPayload = z.output<typeof FederalFormSchema>\n\nexport function FederalForm() {\n const { t } = useTranslation('Employee.Taxes')\n const Components = useComponentContext()\n\n const filingStatusCategories = [\n { value: 'Single', label: t('filingStatusSingle') },\n { value: 'Married', label: t('filingStatusMarried') },\n { value: 'Head of Household', label: t('filingStatusHeadOfHousehold') },\n { value: 'Exempt from withholding', label: t('filingStatusExemptFromWithholding') },\n ]\n\n return (\n <>\n <SelectField\n name=\"filingStatus\"\n label={t('federalFilingStatus1c')}\n placeholder={t('federalFillingStatusPlaceholder')}\n options={filingStatusCategories}\n isRequired\n errorMessage={t('validations.federalFilingStatus')}\n />\n <RadioGroupField\n name=\"twoJobs\"\n label={t('multipleJobs2c')}\n errorMessage={t('validations.federalTwoJobs')}\n description={\n <Trans\n i18nKey={'includesSpouseExplanation'}\n t={t}\n components={{\n irs_link: <Components.Link />,\n }}\n />\n }\n options={[\n { value: 'true', label: t('twoJobYesLabel') },\n { value: 'false', label: t('twoJobNoLabel') },\n ]}\n />\n <NumberInputField\n name=\"dependentsAmount\"\n isRequired\n label={t('dependentsTotalIfApplicable')}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"otherIncome\"\n isRequired\n label={t('otherIncome')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"deductions\"\n isRequired\n label={t('deductions')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"extraWithholding\"\n isRequired\n label={t('extraWithholding')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n </>\n )\n}\n"],"names":["FederalFormSchema","z","FederalForm","t","useTranslation","Components","useComponentContext","filingStatusCategories","jsxs","Fragment","jsx","SelectField","RadioGroupField","Trans","NumberInputField"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FederalForm.js","sources":["../../../../src/components/Employee/Taxes/FederalForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { NumberInputField, RadioGroupField, SelectField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const FederalFormSchema = z.object({\n filingStatus: z.string().min(1),\n twoJobs: z.string().min(1),\n dependentsAmount: z.number().transform(String),\n otherIncome: z.number().transform(String),\n deductions: z.number().transform(String),\n extraWithholding: z.number().transform(String),\n w4DataType: z.enum(['pre_2020_w4', 'rev_2020_w4']),\n})\n\nexport type FederalFormInputs = z.input<typeof FederalFormSchema>\nexport type FederalFormPayload = z.output<typeof FederalFormSchema>\n\nexport function FederalForm() {\n const { t } = useTranslation('Employee.Taxes')\n const Components = useComponentContext()\n\n const filingStatusCategories = [\n { value: 'Single', label: t('filingStatusSingle') },\n { value: 'Married', label: t('filingStatusMarried') },\n { value: 'Head of Household', label: t('filingStatusHeadOfHousehold') },\n { value: 'Exempt from withholding', label: t('filingStatusExemptFromWithholding') },\n ]\n\n return (\n <>\n <SelectField\n name=\"filingStatus\"\n label={t('federalFilingStatus1c')}\n placeholder={t('federalFillingStatusPlaceholder')}\n options={filingStatusCategories}\n isRequired\n errorMessage={t('validations.federalFilingStatus')}\n />\n <RadioGroupField\n name=\"twoJobs\"\n label={t('multipleJobs2c')}\n errorMessage={t('validations.federalTwoJobs')}\n description={\n <Trans\n i18nKey={'includesSpouseExplanation'}\n t={t}\n components={{\n irs_link: <Components.Link />,\n }}\n />\n }\n options={[\n { value: 'true', label: t('twoJobYesLabel') },\n { value: 'false', label: t('twoJobNoLabel') },\n ]}\n />\n <NumberInputField\n name=\"dependentsAmount\"\n isRequired\n label={t('dependentsTotalIfApplicable')}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"otherIncome\"\n isRequired\n label={t('otherIncome')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"deductions\"\n isRequired\n label={t('deductions')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"extraWithholding\"\n isRequired\n label={t('extraWithholding')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n </>\n )\n}\n"],"names":["FederalFormSchema","z","FederalForm","t","useTranslation","Components","useComponentContext","filingStatusCategories","jsxs","Fragment","jsx","SelectField","RadioGroupField","Trans","NumberInputField"],"mappings":";;;;;;;;AAKa,MAAAA,IAAoBC,EAAE,OAAO;AAAA,EACxC,cAAcA,EAAE,SAAS,IAAI,CAAC;AAAA,EAC9B,SAASA,EAAE,SAAS,IAAI,CAAC;AAAA,EACzB,kBAAkBA,EAAE,SAAS,UAAU,MAAM;AAAA,EAC7C,aAAaA,EAAE,SAAS,UAAU,MAAM;AAAA,EACxC,YAAYA,EAAE,SAAS,UAAU,MAAM;AAAA,EACvC,kBAAkBA,EAAE,SAAS,UAAU,MAAM;AAAA,EAC7C,YAAYA,EAAE,KAAK,CAAC,eAAe,aAAa,CAAC;AACnD,CAAC;AAKM,SAASC,IAAc;AAC5B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,gBAAgB,GACvCC,IAAaC,EAAoB,GAEjCC,IAAyB;AAAA,IAC7B,EAAE,OAAO,UAAU,OAAOJ,EAAE,oBAAoB,EAAE;AAAA,IAClD,EAAE,OAAO,WAAW,OAAOA,EAAE,qBAAqB,EAAE;AAAA,IACpD,EAAE,OAAO,qBAAqB,OAAOA,EAAE,6BAA6B,EAAE;AAAA,IACtE,EAAE,OAAO,2BAA2B,OAAOA,EAAE,mCAAmC,EAAE;AAAA,EACpF;AAEA,SAEI,gBAAAK,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOR,EAAE,uBAAuB;AAAA,QAChC,aAAaA,EAAE,iCAAiC;AAAA,QAChD,SAASI;AAAA,QACT,YAAU;AAAA,QACV,cAAcJ,EAAE,iCAAiC;AAAA,MAAA;AAAA,IACnD;AAAA,IACA,gBAAAO;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOT,EAAE,gBAAgB;AAAA,QACzB,cAAcA,EAAE,4BAA4B;AAAA,QAC5C,aACE,gBAAAO;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,SAAS;AAAA,YACT,GAAAV;AAAA,YACA,YAAY;AAAA,cACV,UAAU,gBAAAO,EAACL,EAAW,MAAX,CAAgB,CAAA;AAAA,YAAA;AAAA,UAC7B;AAAA,QACF;AAAA,QAEF,SAAS;AAAA,UACP,EAAE,OAAO,QAAQ,OAAOF,EAAE,gBAAgB,EAAE;AAAA,UAC5C,EAAE,OAAO,SAAS,OAAOA,EAAE,eAAe,EAAE;AAAA,QAAA;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,gBAAAO;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,YAAU;AAAA,QACV,OAAOX,EAAE,6BAA6B;AAAA,QACtC,cAAcA,EAAE,iBAAiB;AAAA,MAAA;AAAA,IACnC;AAAA,IACA,gBAAAO;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,YAAU;AAAA,QACV,OAAOX,EAAE,aAAa;AAAA,QACtB,QAAO;AAAA,QACP,KAAK;AAAA,QACL,cAAcA,EAAE,iBAAiB;AAAA,MAAA;AAAA,IACnC;AAAA,IACA,gBAAAO;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,YAAU;AAAA,QACV,OAAOX,EAAE,YAAY;AAAA,QACrB,QAAO;AAAA,QACP,KAAK;AAAA,QACL,cAAcA,EAAE,iBAAiB;AAAA,MAAA;AAAA,IACnC;AAAA,IACA,gBAAAO;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,YAAU;AAAA,QACV,OAAOX,EAAE,kBAAkB;AAAA,QAC3B,QAAO;AAAA,QACP,KAAK;AAAA,QACL,cAAcA,EAAE,iBAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GACF;AAEJ;"}
|
|
@@ -7,4 +7,4 @@ export declare const StateFormSchema: z.ZodObject<{
|
|
|
7
7
|
states?: Record<string, Record<string, unknown>> | undefined;
|
|
8
8
|
}>;
|
|
9
9
|
export type StateFormPayload = z.output<typeof StateFormSchema>;
|
|
10
|
-
export declare const StateForm: () => import("react/jsx-runtime").JSX.Element[];
|
|
10
|
+
export declare const StateForm: () => (import("react/jsx-runtime").JSX.Element | null)[];
|
|
@@ -1,32 +1,34 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useTranslation as
|
|
1
|
+
import { jsxs as c, Fragment as y, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as m } from "react-i18next";
|
|
3
3
|
import { z as t } from "zod";
|
|
4
|
-
import { useTaxes as
|
|
5
|
-
import { snakeCaseToCamelCase as
|
|
6
|
-
import { QuestionInput as
|
|
7
|
-
import { useComponentContext as
|
|
8
|
-
const
|
|
4
|
+
import { useTaxes as f } from "./useTaxes.js";
|
|
5
|
+
import { snakeCaseToCamelCase as d } from "../../../helpers/formattedStrings.js";
|
|
6
|
+
import { QuestionInput as u } from "../../Common/TaxInputs/TaxInputs.js";
|
|
7
|
+
import { useComponentContext as x } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
8
|
+
const H = t.object({
|
|
9
9
|
states: t.record(t.string(), t.record(t.string(), t.unknown())).optional()
|
|
10
|
-
}),
|
|
11
|
-
const
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
}), Q = () => {
|
|
11
|
+
const a = x(), { employeeStateTaxes: i, isAdmin: n } = f(), { t: p } = m("Employee.Taxes"), { t: l } = m("common", { keyPrefix: "statesHash" });
|
|
12
|
+
return i.map(
|
|
13
|
+
({ state: o, questions: r }) => Array.isArray(r) && (n || r.find((e) => !e.isQuestionForAdminOnly)) ? /* @__PURE__ */ c(y, { children: [
|
|
14
|
+
/* @__PURE__ */ s(a.Heading, { as: "h2", children: p("stateTaxesTitle", { state: l(o) }) }),
|
|
15
|
+
r.map((e) => e.isQuestionForAdminOnly && !n ? null : /* @__PURE__ */ s(
|
|
16
|
+
u,
|
|
17
|
+
{
|
|
18
|
+
question: {
|
|
19
|
+
...e,
|
|
20
|
+
key: `states.${o}.${d(e.key)}`
|
|
21
|
+
// Its important not to convert state as it must maintain two capital letters
|
|
22
|
+
},
|
|
23
|
+
questionType: e.key === "fileNewHireReport" ? "Radio" : e.inputQuestionFormat.type
|
|
21
24
|
},
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
] }, o));
|
|
25
|
+
e.key
|
|
26
|
+
))
|
|
27
|
+
] }, o) : null
|
|
28
|
+
);
|
|
27
29
|
};
|
|
28
30
|
export {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
Q as StateForm,
|
|
32
|
+
H as StateFormSchema
|
|
31
33
|
};
|
|
32
34
|
//# sourceMappingURL=StateForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateForm.js","sources":["../../../../src/components/Employee/Taxes/StateForm.tsx"],"sourcesContent":["import { Fragment } from 'react/jsx-runtime'\nimport { useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { useTaxes } from './useTaxes'\nimport type { STATES_ABBR } from '@/shared/constants'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { QuestionInput } from '@/components/Common/TaxInputs/TaxInputs'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const StateFormSchema = z.object({\n states: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),\n})\n\nexport type StateFormPayload = z.output<typeof StateFormSchema>\n\nexport const StateForm = () => {\n const Components = useComponentContext()\n const { employeeStateTaxes, isAdmin } = useTaxes()\n const { t } = useTranslation('Employee.Taxes')\n const { t: statesHash } = useTranslation('common', { keyPrefix: 'statesHash' })\n\n return employeeStateTaxes.map(({ state, questions }) => (\n
|
|
1
|
+
{"version":3,"file":"StateForm.js","sources":["../../../../src/components/Employee/Taxes/StateForm.tsx"],"sourcesContent":["import { Fragment } from 'react/jsx-runtime'\nimport { useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { useTaxes } from './useTaxes'\nimport type { STATES_ABBR } from '@/shared/constants'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { QuestionInput } from '@/components/Common/TaxInputs/TaxInputs'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const StateFormSchema = z.object({\n states: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),\n})\n\nexport type StateFormPayload = z.output<typeof StateFormSchema>\n\nexport const StateForm = () => {\n const Components = useComponentContext()\n const { employeeStateTaxes, isAdmin } = useTaxes()\n const { t } = useTranslation('Employee.Taxes')\n const { t: statesHash } = useTranslation('common', { keyPrefix: 'statesHash' })\n\n return employeeStateTaxes.map(({ state, questions }) =>\n Array.isArray(questions) && (isAdmin || questions.find(q => !q.isQuestionForAdminOnly)) ? (\n <Fragment key={state}>\n <Components.Heading as=\"h2\">\n {t('stateTaxesTitle', { state: statesHash(state as (typeof STATES_ABBR)[number]) })}\n </Components.Heading>\n {questions.map(question => {\n if (question.isQuestionForAdminOnly && !isAdmin) return null\n return (\n <QuestionInput\n question={{\n ...question,\n key: `states.${state}.${snakeCaseToCamelCase(question.key)}`, // Its important not to convert state as it must maintain two capital letters\n }}\n questionType={\n question.key === 'fileNewHireReport' ? 'Radio' : question.inputQuestionFormat.type\n }\n key={question.key}\n />\n )\n })}\n </Fragment>\n ) : null,\n )\n}\n"],"names":["StateFormSchema","z","StateForm","Components","useComponentContext","employeeStateTaxes","isAdmin","useTaxes","t","useTranslation","statesHash","state","questions","q","Fragment","jsx","question","QuestionInput","snakeCaseToCamelCase"],"mappings":";;;;;;;AASa,MAAAA,IAAkBC,EAAE,OAAO;AAAA,EACtC,QAAQA,EAAE,OAAOA,EAAE,UAAUA,EAAE,OAAOA,EAAE,OAAA,GAAUA,EAAE,QAAS,CAAA,CAAC,EAAE,SAAS;AAC3E,CAAC,GAIYC,IAAY,MAAM;AAC7B,QAAMC,IAAaC,EAAoB,GACjC,EAAE,oBAAAC,GAAoB,SAAAC,EAAQ,IAAIC,EAAS,GAC3C,EAAE,GAAAC,EAAA,IAAMC,EAAe,gBAAgB,GACvC,EAAE,GAAGC,MAAeD,EAAe,UAAU,EAAE,WAAW,cAAc;AAE9E,SAAOJ,EAAmB;AAAA,IAAI,CAAC,EAAE,OAAAM,GAAO,WAAAC,QACtC,MAAM,QAAQA,CAAS,MAAMN,KAAWM,EAAU,KAAK,CAAKC,MAAA,CAACA,EAAE,sBAAsB,uBAClFC,GACC,EAAA,UAAA;AAAA,MAAA,gBAAAC,EAACZ,EAAW,SAAX,EAAmB,IAAG,MACpB,UAAAK,EAAE,mBAAmB,EAAE,OAAOE,EAAWC,CAAqC,EAAA,CAAG,EACpF,CAAA;AAAA,MACCC,EAAU,IAAI,CAAYI,MACrBA,EAAS,0BAA0B,CAACV,IAAgB,OAEtD,gBAAAS;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,YACR,GAAGD;AAAA,YACH,KAAK,UAAUL,CAAK,IAAIO,EAAqBF,EAAS,GAAG,CAAC;AAAA;AAAA,UAC5D;AAAA,UACA,cACEA,EAAS,QAAQ,sBAAsB,UAAUA,EAAS,oBAAoB;AAAA,QAAA;AAAA,QAE3EA,EAAS;AAAA,MAChB,CAEH;AAAA,IAAA,EAAA,GAlBYL,CAmBf,IACE;AAAA,EACN;AACF;"}
|
|
@@ -7,7 +7,7 @@ export declare function Taxes(props: TaxesProps & BaseComponentInterface): impor
|
|
|
7
7
|
export declare namespace Taxes {
|
|
8
8
|
var FederalHead: typeof import("./FederalHead").FederalHead;
|
|
9
9
|
var FederalForm: typeof import("./FederalForm").FederalForm;
|
|
10
|
-
var StateForm: () => import("react/jsx-runtime").JSX.Element[];
|
|
10
|
+
var StateForm: () => (import("react/jsx-runtime").JSX.Element | null)[];
|
|
11
11
|
var Actions: () => import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
}
|
|
13
13
|
export declare const TaxesContextual: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
import { jsx as t, jsxs as J, Fragment as X } from "react/jsx-runtime";
|
|
2
|
-
import { zodResolver as
|
|
3
|
-
import { useForm as
|
|
2
|
+
import { zodResolver as B } from "@hookform/resolvers/zod";
|
|
3
|
+
import { useForm as G, FormProvider as V } from "react-hook-form";
|
|
4
4
|
import { useTranslation as W } from "react-i18next";
|
|
5
5
|
import { useEffect as Y } from "react";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { useQueryClient as j } from "@tanstack/react-query";
|
|
7
|
+
import { useEmployeeTaxSetupGetFederalTaxesSuspense as Q, invalidateEmployeeTaxSetupGetFederalTaxes as z } from "@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes";
|
|
8
|
+
import { useEmployeeTaxSetupUpdateFederalTaxesMutation as K } from "@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes";
|
|
9
|
+
import { useEmployeeTaxSetupGetStateTaxesSuspense as Z } from "@gusto/embedded-api/react-query/employeeTaxSetupGetStateTaxes";
|
|
10
|
+
import { useEmployeeTaxSetupUpdateStateTaxesMutation as $ } from "@gusto/embedded-api/react-query/employeeTaxSetupUpdateStateTaxes";
|
|
10
11
|
import { Actions as g } from "./Actions.js";
|
|
11
|
-
import { FederalFormSchema as
|
|
12
|
-
import { FederalHead as
|
|
13
|
-
import { StateFormSchema as
|
|
14
|
-
import { TaxesProvider as
|
|
15
|
-
import { BaseComponent as
|
|
16
|
-
import { useBase as
|
|
17
|
-
import { useFlow as
|
|
18
|
-
import { useI18n as
|
|
12
|
+
import { FederalFormSchema as ee, FederalForm as P } from "./FederalForm.js";
|
|
13
|
+
import { FederalHead as b } from "./FederalHead.js";
|
|
14
|
+
import { StateFormSchema as te, StateForm as _ } from "./StateForm.js";
|
|
15
|
+
import { TaxesProvider as oe } from "./useTaxes.js";
|
|
16
|
+
import { BaseComponent as re } from "../../Base/Base.js";
|
|
17
|
+
import { useBase as se } from "../../Base/useBase.js";
|
|
18
|
+
import { useFlow as ae } from "../../Flow/useFlow.js";
|
|
19
|
+
import { useI18n as ne, useComponentDictionary as ie } from "../../../i18n/I18n.js";
|
|
19
20
|
import { componentEvents as S } from "../../../shared/constants.js";
|
|
20
|
-
import { snakeCaseToCamelCase as
|
|
21
|
-
import { Form as
|
|
22
|
-
const
|
|
23
|
-
function
|
|
24
|
-
return /* @__PURE__ */ t(
|
|
21
|
+
import { snakeCaseToCamelCase as w } from "../../../helpers/formattedStrings.js";
|
|
22
|
+
import { Form as me } from "../../Common/Form/Form.js";
|
|
23
|
+
const le = "2010-01-01";
|
|
24
|
+
function u(o) {
|
|
25
|
+
return /* @__PURE__ */ t(re, { ...o, children: /* @__PURE__ */ t(de, { ...o, children: o.children }) });
|
|
25
26
|
}
|
|
26
|
-
const
|
|
27
|
-
const { employeeId:
|
|
28
|
-
|
|
29
|
-
const { data:
|
|
30
|
-
employeeUuid:
|
|
31
|
-
}), e =
|
|
32
|
-
employeeUuid:
|
|
33
|
-
}), E = R.employeeStateTaxesList, { mutateAsync:
|
|
27
|
+
const de = (o) => {
|
|
28
|
+
const { employeeId: r, className: y, children: p, isAdmin: h = !1, dictionary: D } = o, { onEvent: T, fieldErrors: c, baseSubmitHandler: U } = se();
|
|
29
|
+
ne("Employee.Taxes"), ie("Employee.Taxes", D);
|
|
30
|
+
const N = j(), { data: k } = Q({
|
|
31
|
+
employeeUuid: r
|
|
32
|
+
}), e = k.employeeFederalTax, { mutateAsync: C, isPending: I } = K(), { data: R } = Z({
|
|
33
|
+
employeeUuid: r
|
|
34
|
+
}), E = R.employeeStateTaxesList, { mutateAsync: L, isPending: M } = $(), O = {
|
|
34
35
|
...e,
|
|
35
36
|
filingStatus: e.filingStatus ?? void 0,
|
|
36
37
|
twoJobs: e.twoJobs ? "true" : "false",
|
|
@@ -38,94 +39,97 @@ const me = (o) => {
|
|
|
38
39
|
dependentsAmount: e.dependentsAmount ? Number(e.dependentsAmount) : 0,
|
|
39
40
|
otherIncome: e.otherIncome ? Number(e.otherIncome) : 0,
|
|
40
41
|
extraWithholding: e.extraWithholding ? Number(e.extraWithholding) : 0,
|
|
41
|
-
states: E.reduce((s,
|
|
42
|
-
const d =
|
|
43
|
-
return m === "fileNewHireReport" ?
|
|
42
|
+
states: E.reduce((s, a) => (a.state && (s[a.state] = a.questions?.reduce((n, l) => {
|
|
43
|
+
const d = l.answers[0]?.value, m = w(l.key);
|
|
44
|
+
return m === "fileNewHireReport" ? n[m] = typeof d > "u" ? !0 : d : n[m] = d, n;
|
|
44
45
|
}, {})), s), {})
|
|
45
|
-
},
|
|
46
|
-
resolver:
|
|
47
|
-
defaultValues:
|
|
48
|
-
}), { handleSubmit:
|
|
46
|
+
}, v = G({
|
|
47
|
+
resolver: B(ee.merge(te)),
|
|
48
|
+
defaultValues: O
|
|
49
|
+
}), { handleSubmit: q, setError: A } = v;
|
|
49
50
|
return Y(() => {
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
51
|
+
c && c.length > 0 && c.forEach((s) => {
|
|
52
|
+
const a = s.key.replace(".value", "");
|
|
53
|
+
A(a, { type: "custom", message: s.message });
|
|
53
54
|
});
|
|
54
|
-
}, [
|
|
55
|
-
|
|
55
|
+
}, [c, A]), /* @__PURE__ */ t("section", { className: y, children: /* @__PURE__ */ t(
|
|
56
|
+
oe,
|
|
56
57
|
{
|
|
57
58
|
value: {
|
|
58
59
|
employeeStateTaxes: E,
|
|
59
|
-
isAdmin:
|
|
60
|
-
isPending: I ||
|
|
60
|
+
isAdmin: h,
|
|
61
|
+
isPending: I || M
|
|
61
62
|
},
|
|
62
|
-
children: /* @__PURE__ */ t(V, { ...
|
|
63
|
-
await U(s, async (
|
|
64
|
-
const { states:
|
|
63
|
+
children: /* @__PURE__ */ t(V, { ...v, children: /* @__PURE__ */ t(me, { onSubmit: q(async (s) => {
|
|
64
|
+
await U(s, async (a) => {
|
|
65
|
+
const { states: n, ...l } = a, d = await C({
|
|
65
66
|
request: {
|
|
66
|
-
employeeUuid:
|
|
67
|
+
employeeUuid: r,
|
|
67
68
|
requestBody: {
|
|
68
|
-
...
|
|
69
|
-
twoJobs:
|
|
69
|
+
...l,
|
|
70
|
+
twoJobs: l.twoJobs === "true",
|
|
70
71
|
version: e.version
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
});
|
|
74
|
-
if (T(S.EMPLOYEE_FEDERAL_TAXES_UPDATED, d),
|
|
75
|
+
if (await z(N, [r]), T(S.EMPLOYEE_FEDERAL_TAXES_UPDATED, d), n && Object.keys(n).length > 0) {
|
|
75
76
|
const m = [];
|
|
76
|
-
for (const
|
|
77
|
-
const
|
|
78
|
-
x && m.push({
|
|
79
|
-
state:
|
|
80
|
-
questions:
|
|
81
|
-
|
|
77
|
+
for (const x of E) {
|
|
78
|
+
const F = x.state;
|
|
79
|
+
F && x.questions !== void 0 && m.push({
|
|
80
|
+
state: F,
|
|
81
|
+
questions: x.questions.map((i) => {
|
|
82
|
+
if (i.isQuestionForAdminOnly && !h)
|
|
83
|
+
return null;
|
|
84
|
+
const f = n[F]?.[w(i.key)];
|
|
82
85
|
return {
|
|
83
|
-
key:
|
|
86
|
+
key: i.key,
|
|
84
87
|
answers: [
|
|
85
88
|
{
|
|
86
|
-
validFrom:
|
|
87
|
-
validUpTo:
|
|
89
|
+
validFrom: i.answers[0]?.validFrom ?? le,
|
|
90
|
+
validUpTo: i.answers[0]?.validUpTo ?? null,
|
|
88
91
|
value: f == null || typeof f == "number" && isNaN(f) ? "" : f
|
|
89
92
|
}
|
|
90
93
|
]
|
|
91
94
|
};
|
|
92
|
-
})
|
|
95
|
+
}).filter((i) => i !== null)
|
|
96
|
+
//Filtering out questions in non-admin setup
|
|
93
97
|
});
|
|
94
98
|
}
|
|
95
|
-
const H = await
|
|
96
|
-
request: { employeeUuid:
|
|
99
|
+
const H = await L({
|
|
100
|
+
request: { employeeUuid: r, employeeStateTaxesRequest: { states: m } }
|
|
97
101
|
});
|
|
98
102
|
T(S.EMPLOYEE_STATE_TAXES_UPDATED, H);
|
|
99
103
|
}
|
|
100
104
|
T(S.EMPLOYEE_TAXES_DONE);
|
|
101
105
|
});
|
|
102
|
-
}), children:
|
|
103
|
-
/* @__PURE__ */ t(P, {}),
|
|
104
|
-
/* @__PURE__ */ t(w, {}),
|
|
106
|
+
}), children: p || /* @__PURE__ */ J(X, { children: [
|
|
105
107
|
/* @__PURE__ */ t(b, {}),
|
|
108
|
+
/* @__PURE__ */ t(P, {}),
|
|
109
|
+
/* @__PURE__ */ t(_, {}),
|
|
106
110
|
/* @__PURE__ */ t(g, {})
|
|
107
111
|
] }) }) })
|
|
108
112
|
}
|
|
109
113
|
) });
|
|
110
114
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const
|
|
116
|
-
const { employeeId: o, onEvent:
|
|
115
|
+
u.FederalHead = b;
|
|
116
|
+
u.FederalForm = P;
|
|
117
|
+
u.StateForm = _;
|
|
118
|
+
u.Actions = g;
|
|
119
|
+
const Ie = () => {
|
|
120
|
+
const { employeeId: o, onEvent: r, isAdmin: y } = ae(), { t: p } = W();
|
|
117
121
|
if (!o)
|
|
118
122
|
throw new Error(
|
|
119
|
-
|
|
123
|
+
p("errors.missingParamsOrContext", {
|
|
120
124
|
component: "EmployeeTaxes",
|
|
121
125
|
param: "employeeId",
|
|
122
126
|
provider: "FlowProvider"
|
|
123
127
|
})
|
|
124
128
|
);
|
|
125
|
-
return /* @__PURE__ */ t(
|
|
129
|
+
return /* @__PURE__ */ t(u, { employeeId: o, onEvent: r, isAdmin: y ?? !1 });
|
|
126
130
|
};
|
|
127
131
|
export {
|
|
128
|
-
|
|
129
|
-
|
|
132
|
+
u as Taxes,
|
|
133
|
+
Ie as TaxesContextual
|
|
130
134
|
};
|
|
131
135
|
//# sourceMappingURL=Taxes.js.map
|