@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":"Taxes.js","sources":["../../../../src/components/Employee/Taxes/Taxes.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useEffect } from 'react'\nimport { useEmployeeTaxSetupGetFederalTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes'\nimport { useEmployeeTaxSetupUpdateFederalTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes'\nimport { useEmployeeTaxSetupGetStateTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetStateTaxes'\nimport { useEmployeeTaxSetupUpdateStateTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateStateTaxes'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport { Actions } from './Actions'\nimport {\n FederalForm,\n FederalFormSchema,\n type FederalFormInputs,\n type FederalFormPayload,\n} from './FederalForm'\nimport { FederalHead } from './FederalHead'\nimport { StateForm, StateFormSchema, type StateFormPayload } from './StateForm'\nimport { TaxesProvider } from './useTaxes'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst DEFAULT_TAX_VALID_FROM = '2010-01-01'\n\ninterface TaxesProps extends CommonComponentInterface<'Employee.Taxes'> {\n employeeId: string\n isAdmin?: boolean\n}\n\nexport function Taxes(props: TaxesProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = (props: TaxesProps) => {\n const { employeeId, className, children, isAdmin = false, dictionary } = props\n const { onEvent, fieldErrors, baseSubmitHandler } = useBase()\n useI18n('Employee.Taxes')\n useComponentDictionary('Employee.Taxes', dictionary)\n\n const { data: fedData } = useEmployeeTaxSetupGetFederalTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeFederalTax = fedData.employeeFederalTax!\n\n const { mutateAsync: updateFederalTaxes, isPending: isPendingFederalTaxes } =\n useEmployeeTaxSetupUpdateFederalTaxesMutation()\n\n const { data: stateData } = useEmployeeTaxSetupGetStateTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeStateTaxes = stateData.employeeStateTaxesList!\n const { mutateAsync: updateStateTaxes, isPending: isPendingStateTaxes } =\n useEmployeeTaxSetupUpdateStateTaxesMutation()\n\n const defaultValues = {\n ...employeeFederalTax,\n filingStatus: employeeFederalTax.filingStatus ?? undefined,\n twoJobs: employeeFederalTax.twoJobs ? 'true' : 'false',\n deductions: employeeFederalTax.deductions ? Number(employeeFederalTax.deductions) : 0,\n dependentsAmount: employeeFederalTax.dependentsAmount\n ? Number(employeeFederalTax.dependentsAmount)\n : 0,\n otherIncome: employeeFederalTax.otherIncome ? Number(employeeFederalTax.otherIncome) : 0,\n extraWithholding: employeeFederalTax.extraWithholding\n ? Number(employeeFederalTax.extraWithholding)\n : 0,\n states: employeeStateTaxes.reduce((acc: Record<string, unknown>, state) => {\n if (state.state) {\n acc[state.state] = state.questions?.reduce((acc: Record<string, unknown>, question) => {\n const value = question.answers[0]?.value\n const key = snakeCaseToCamelCase(question.key)\n // Default new hire report to true if not specified\n if (key === 'fileNewHireReport') {\n acc[key] = typeof value === 'undefined' ? true : value\n } else {\n acc[key] = value ?? ''\n }\n return acc\n }, {})\n }\n return acc\n }, {}),\n }\n\n const formMethods = useForm<FederalFormInputs, unknown, FederalFormPayload & StateFormPayload>({\n resolver: zodResolver(FederalFormSchema.merge(StateFormSchema)),\n defaultValues,\n })\n const { handleSubmit, setError: _setError } = formMethods\n\n useEffect(() => {\n //If list of field specific errors from API is present, mark corresponding fields as invalid\n if (fieldErrors && fieldErrors.length > 0) {\n fieldErrors.forEach(msgObject => {\n const key = msgObject.key.replace('.value', '')\n _setError(key as keyof FederalFormInputs, { type: 'custom', message: msgObject.message })\n })\n }\n }, [fieldErrors, _setError])\n\n const onSubmit: SubmitHandler<FederalFormPayload & StateFormPayload> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { states: statesPayload, ...federalPayload } = payload\n\n const federalTaxesResponse = await updateFederalTaxes({\n request: {\n employeeUuid: employeeId,\n requestBody: {\n ...federalPayload,\n twoJobs: federalPayload.twoJobs === 'true',\n version: employeeFederalTax.version,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_FEDERAL_TAXES_UPDATED, federalTaxesResponse)\n\n //State Taxes - only process if statesPayload exists\n if (statesPayload && Object.keys(statesPayload).length > 0) {\n const states = []\n\n for (const state of employeeStateTaxes) {\n const stateName = state.state\n\n if (stateName) {\n states.push({\n state: stateName,\n questions: state.questions?.map(question => {\n const formValue = statesPayload[stateName]?.[snakeCaseToCamelCase(question.key)]\n return {\n key: question.key,\n answers: [\n {\n validFrom: question.answers[0]?.validFrom ?? DEFAULT_TAX_VALID_FROM,\n validUpTo: question.answers[0]?.validUpTo ?? null,\n value:\n formValue == null || (typeof formValue === 'number' && isNaN(formValue))\n ? ''\n : (formValue as string | number | boolean),\n },\n ],\n }\n }),\n })\n }\n }\n\n const stateTaxesResponse = await updateStateTaxes({\n request: { employeeUuid: employeeId, employeeStateTaxesRequest: { states } },\n })\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_UPDATED, stateTaxesResponse)\n }\n\n onEvent(componentEvents.EMPLOYEE_TAXES_DONE)\n })\n }\n\n return (\n <section className={className}>\n <TaxesProvider\n value={{\n employeeStateTaxes,\n isAdmin: isAdmin,\n isPending: isPendingFederalTaxes || isPendingStateTaxes,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={handleSubmit(onSubmit)}>\n {children ? (\n children\n ) : (\n <>\n <FederalHead />\n <FederalForm />\n <StateForm />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </TaxesProvider>\n </section>\n )\n}\nTaxes.FederalHead = FederalHead\nTaxes.FederalForm = FederalForm\nTaxes.StateForm = StateForm\nTaxes.Actions = Actions\n\nexport const TaxesContextual = () => {\n const { employeeId, onEvent, isAdmin } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation()\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'EmployeeTaxes',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <Taxes employeeId={employeeId} onEvent={onEvent} isAdmin={isAdmin ?? false} />\n}\n"],"names":["DEFAULT_TAX_VALID_FROM","Taxes","props","jsx","BaseComponent","Root","employeeId","className","children","isAdmin","dictionary","onEvent","fieldErrors","baseSubmitHandler","useBase","useI18n","useComponentDictionary","fedData","useEmployeeTaxSetupGetFederalTaxesSuspense","employeeFederalTax","updateFederalTaxes","isPendingFederalTaxes","useEmployeeTaxSetupUpdateFederalTaxesMutation","stateData","useEmployeeTaxSetupGetStateTaxesSuspense","employeeStateTaxes","updateStateTaxes","isPendingStateTaxes","useEmployeeTaxSetupUpdateStateTaxesMutation","defaultValues","acc","state","question","value","key","snakeCaseToCamelCase","formMethods","useForm","zodResolver","FederalFormSchema","StateFormSchema","handleSubmit","_setError","useEffect","msgObject","TaxesProvider","FormProvider","Form","data","payload","statesPayload","federalPayload","federalTaxesResponse","componentEvents","states","stateName","formValue","stateTaxesResponse","jsxs","Fragment","FederalHead","FederalForm","StateForm","Actions","TaxesContextual","useFlow","t","useTranslation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Taxes.js","sources":["../../../../src/components/Employee/Taxes/Taxes.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useEffect } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n useEmployeeTaxSetupGetFederalTaxesSuspense,\n invalidateEmployeeTaxSetupGetFederalTaxes,\n} from '@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes'\nimport { useEmployeeTaxSetupUpdateFederalTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes'\nimport { useEmployeeTaxSetupGetStateTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetStateTaxes'\nimport { useEmployeeTaxSetupUpdateStateTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateStateTaxes'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport { Actions } from './Actions'\nimport {\n FederalForm,\n FederalFormSchema,\n type FederalFormInputs,\n type FederalFormPayload,\n} from './FederalForm'\nimport { FederalHead } from './FederalHead'\nimport { StateForm, StateFormSchema, type StateFormPayload } from './StateForm'\nimport { TaxesProvider } from './useTaxes'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst DEFAULT_TAX_VALID_FROM = '2010-01-01'\n\ninterface TaxesProps extends CommonComponentInterface<'Employee.Taxes'> {\n employeeId: string\n isAdmin?: boolean\n}\n\nexport function Taxes(props: TaxesProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = (props: TaxesProps) => {\n const { employeeId, className, children, isAdmin = false, dictionary } = props\n const { onEvent, fieldErrors, baseSubmitHandler } = useBase()\n useI18n('Employee.Taxes')\n useComponentDictionary('Employee.Taxes', dictionary)\n const queryClient = useQueryClient()\n\n const { data: fedData } = useEmployeeTaxSetupGetFederalTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeFederalTax = fedData.employeeFederalTax!\n\n const { mutateAsync: updateFederalTaxes, isPending: isPendingFederalTaxes } =\n useEmployeeTaxSetupUpdateFederalTaxesMutation()\n\n const { data: stateData } = useEmployeeTaxSetupGetStateTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeStateTaxes = stateData.employeeStateTaxesList!\n const { mutateAsync: updateStateTaxes, isPending: isPendingStateTaxes } =\n useEmployeeTaxSetupUpdateStateTaxesMutation()\n\n const defaultValues = {\n ...employeeFederalTax,\n filingStatus: employeeFederalTax.filingStatus ?? undefined,\n twoJobs: employeeFederalTax.twoJobs ? 'true' : 'false',\n deductions: employeeFederalTax.deductions ? Number(employeeFederalTax.deductions) : 0,\n dependentsAmount: employeeFederalTax.dependentsAmount\n ? Number(employeeFederalTax.dependentsAmount)\n : 0,\n otherIncome: employeeFederalTax.otherIncome ? Number(employeeFederalTax.otherIncome) : 0,\n extraWithholding: employeeFederalTax.extraWithholding\n ? Number(employeeFederalTax.extraWithholding)\n : 0,\n states: employeeStateTaxes.reduce((acc: Record<string, unknown>, state) => {\n if (state.state) {\n acc[state.state] = state.questions?.reduce((acc: Record<string, unknown>, question) => {\n const value = question.answers[0]?.value\n const key = snakeCaseToCamelCase(question.key)\n // Default new hire report to true if not specified\n if (key === 'fileNewHireReport') {\n acc[key] = typeof value === 'undefined' ? true : value\n } else {\n acc[key] = value\n }\n return acc\n }, {})\n }\n return acc\n }, {}),\n }\n\n const formMethods = useForm<FederalFormInputs, unknown, FederalFormPayload & StateFormPayload>({\n resolver: zodResolver(FederalFormSchema.merge(StateFormSchema)),\n defaultValues,\n })\n const { handleSubmit, setError: _setError } = formMethods\n\n useEffect(() => {\n //If list of field specific errors from API is present, mark corresponding fields as invalid\n if (fieldErrors && fieldErrors.length > 0) {\n fieldErrors.forEach(msgObject => {\n const key = msgObject.key.replace('.value', '')\n _setError(key as keyof FederalFormInputs, { type: 'custom', message: msgObject.message })\n })\n }\n }, [fieldErrors, _setError])\n\n const onSubmit: SubmitHandler<FederalFormPayload & StateFormPayload> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { states: statesPayload, ...federalPayload } = payload\n\n const federalTaxesResponse = await updateFederalTaxes({\n request: {\n employeeUuid: employeeId,\n requestBody: {\n ...federalPayload,\n twoJobs: federalPayload.twoJobs === 'true',\n version: employeeFederalTax.version,\n },\n },\n })\n await invalidateEmployeeTaxSetupGetFederalTaxes(queryClient, [employeeId])\n onEvent(componentEvents.EMPLOYEE_FEDERAL_TAXES_UPDATED, federalTaxesResponse)\n\n //State Taxes - only process if statesPayload exists\n if (statesPayload && Object.keys(statesPayload).length > 0) {\n const states = []\n\n for (const state of employeeStateTaxes) {\n const stateName = state.state\n\n if (stateName && state.questions !== undefined) {\n states.push({\n state: stateName,\n questions: state.questions\n .map(question => {\n if (question.isQuestionForAdminOnly && !isAdmin) {\n return null\n }\n const formValue = statesPayload[stateName]?.[snakeCaseToCamelCase(question.key)]\n return {\n key: question.key,\n answers: [\n {\n validFrom: question.answers[0]?.validFrom ?? DEFAULT_TAX_VALID_FROM,\n validUpTo: question.answers[0]?.validUpTo ?? null,\n value:\n formValue == null || (typeof formValue === 'number' && isNaN(formValue))\n ? ''\n : (formValue as string | number | boolean),\n },\n ],\n }\n })\n .filter(q => q !== null), //Filtering out questions in non-admin setup\n })\n }\n }\n\n const stateTaxesResponse = await updateStateTaxes({\n request: { employeeUuid: employeeId, employeeStateTaxesRequest: { states } },\n })\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_UPDATED, stateTaxesResponse)\n }\n\n onEvent(componentEvents.EMPLOYEE_TAXES_DONE)\n })\n }\n\n return (\n <section className={className}>\n <TaxesProvider\n value={{\n employeeStateTaxes,\n isAdmin: isAdmin,\n isPending: isPendingFederalTaxes || isPendingStateTaxes,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={handleSubmit(onSubmit)}>\n {children ? (\n children\n ) : (\n <>\n <FederalHead />\n <FederalForm />\n <StateForm />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </TaxesProvider>\n </section>\n )\n}\nTaxes.FederalHead = FederalHead\nTaxes.FederalForm = FederalForm\nTaxes.StateForm = StateForm\nTaxes.Actions = Actions\n\nexport const TaxesContextual = () => {\n const { employeeId, onEvent, isAdmin } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation()\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'EmployeeTaxes',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <Taxes employeeId={employeeId} onEvent={onEvent} isAdmin={isAdmin ?? false} />\n}\n"],"names":["DEFAULT_TAX_VALID_FROM","Taxes","props","jsx","BaseComponent","Root","employeeId","className","children","isAdmin","dictionary","onEvent","fieldErrors","baseSubmitHandler","useBase","useI18n","useComponentDictionary","queryClient","useQueryClient","fedData","useEmployeeTaxSetupGetFederalTaxesSuspense","employeeFederalTax","updateFederalTaxes","isPendingFederalTaxes","useEmployeeTaxSetupUpdateFederalTaxesMutation","stateData","useEmployeeTaxSetupGetStateTaxesSuspense","employeeStateTaxes","updateStateTaxes","isPendingStateTaxes","useEmployeeTaxSetupUpdateStateTaxesMutation","defaultValues","acc","state","question","value","key","snakeCaseToCamelCase","formMethods","useForm","zodResolver","FederalFormSchema","StateFormSchema","handleSubmit","_setError","useEffect","msgObject","TaxesProvider","FormProvider","Form","data","payload","statesPayload","federalPayload","federalTaxesResponse","invalidateEmployeeTaxSetupGetFederalTaxes","componentEvents","states","stateName","formValue","q","stateTaxesResponse","jsxs","Fragment","FederalHead","FederalForm","StateForm","Actions","TaxesContextual","useFlow","t","useTranslation"],"mappings":"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"}
|
|
@@ -5,10 +5,11 @@ import { useEffect as g } from "react";
|
|
|
5
5
|
import { ComponentsProvider as v } from "../ComponentAdapter/ComponentsProvider.js";
|
|
6
6
|
import { ApiProvider as P } from "../ApiProvider/ApiProvider.js";
|
|
7
7
|
import { SDKI18next as i } from "./SDKI18next.js";
|
|
8
|
+
import "../../shared/constants.js";
|
|
8
9
|
import { InternalError as x } from "../../components/Common/InternalError/InternalError.js";
|
|
9
10
|
import { LocaleProvider as y } from "../LocaleProvider/LocaleProvider.js";
|
|
10
11
|
import { ThemeProvider as I } from "../ThemeProvider/ThemeProvider.js";
|
|
11
|
-
const
|
|
12
|
+
const w = (c) => {
|
|
12
13
|
const {
|
|
13
14
|
children: a,
|
|
14
15
|
config: t,
|
|
@@ -16,12 +17,12 @@ const k = (c) => {
|
|
|
16
17
|
lng: e = "en",
|
|
17
18
|
locale: d = "en-US",
|
|
18
19
|
currency: l = "USD",
|
|
19
|
-
theme:
|
|
20
|
-
components:
|
|
20
|
+
theme: p,
|
|
21
|
+
components: s
|
|
21
22
|
} = c;
|
|
22
23
|
if (o)
|
|
23
|
-
for (const
|
|
24
|
-
const n =
|
|
24
|
+
for (const f in o) {
|
|
25
|
+
const n = f;
|
|
25
26
|
for (const m in o[n])
|
|
26
27
|
i.addResourceBundle(
|
|
27
28
|
n,
|
|
@@ -33,9 +34,9 @@ const k = (c) => {
|
|
|
33
34
|
}
|
|
34
35
|
return g(() => {
|
|
35
36
|
(async () => await i.changeLanguage(e))();
|
|
36
|
-
}, [e]), /* @__PURE__ */ r(v, { value:
|
|
37
|
+
}, [e]), /* @__PURE__ */ r(v, { value: s, children: /* @__PURE__ */ r(u, { FallbackComponent: x, children: /* @__PURE__ */ r(I, { theme: p, children: /* @__PURE__ */ r(y, { locale: d, currency: l, children: /* @__PURE__ */ r(h, { i18n: i, children: /* @__PURE__ */ r(P, { url: t.baseUrl, headers: t.headers, children: a }) }, e) }) }) }) });
|
|
37
38
|
};
|
|
38
39
|
export {
|
|
39
|
-
|
|
40
|
+
w as GustoProviderCustomUIAdapter
|
|
40
41
|
};
|
|
41
42
|
//# sourceMappingURL=GustoProviderCustomUIAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GustoProviderCustomUIAdapter.js","sources":["../../../src/contexts/GustoProvider/GustoProviderCustomUIAdapter.tsx"],"sourcesContent":["import type React from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { I18nextProvider } from 'react-i18next'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useEffect } from 'react'\nimport { ComponentsProvider } from '../ComponentAdapter/ComponentsProvider'\nimport type { ComponentsContextType } from '../ComponentAdapter/useComponentContext'\nimport { ApiProvider } from '../ApiProvider/ApiProvider'\nimport { SDKI18next } from './SDKI18next'\nimport { InternalError } from '@/components/Common'\nimport { LocaleProvider } from '@/contexts/LocaleProvider'\nimport { ThemeProvider } from '@/contexts/ThemeProvider'\nimport type { GTheme } from '@/types/GTheme'\nimport type { DeepPartial, ResourceDictionary, SupportedLanguages } from '@/types/Helpers'\n\ninterface APIConfig {\n baseUrl: string\n headers?: HeadersInit\n}\n\nexport interface GustoProviderProps {\n config: APIConfig\n dictionary?: ResourceDictionary\n lng?: string\n locale?: string\n currency?: string\n theme?: DeepPartial<GTheme>\n queryClient?: QueryClient\n components: ComponentsContextType\n}\n\nexport interface GustoProviderCustomUIAdapterProps extends GustoProviderProps {\n children?: React.ReactNode\n}\n\n/**\n * A provider that accepts UI component adapters through the components prop\n */\nconst GustoProviderCustomUIAdapter: React.FC<GustoProviderCustomUIAdapterProps> = props => {\n const {\n children,\n config,\n dictionary,\n lng = 'en',\n locale = 'en-US',\n currency = 'USD',\n theme,\n components,\n } = props\n\n // Handle dictionary resources\n if (dictionary) {\n for (const language in dictionary) {\n const lang = language as SupportedLanguages\n for (const ns in dictionary[lang]) {\n // Adding resources overrides to i18next instance - initial load will override common namespace and add component specific dictionaries provided by partners\n SDKI18next.addResourceBundle(\n lang,\n ns,\n (dictionary[lang] as Record<string, unknown>)[ns],\n true,\n true,\n )\n }\n }\n }\n\n // Handle language change\n useEffect(() => {\n void (async () => {\n await SDKI18next.changeLanguage(lng)\n })()\n }, [lng])\n\n return (\n <ComponentsProvider value={components}>\n <ErrorBoundary FallbackComponent={InternalError}>\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={locale} currency={currency}>\n <I18nextProvider i18n={SDKI18next} key={lng}>\n <ApiProvider url={config.baseUrl} headers={config.headers}>\n {children}\n </ApiProvider>\n </I18nextProvider>\n </LocaleProvider>\n </ThemeProvider>\n </ErrorBoundary>\n </ComponentsProvider>\n )\n}\n\nexport { GustoProviderCustomUIAdapter }\n"],"names":["GustoProviderCustomUIAdapter","props","children","config","dictionary","lng","locale","currency","theme","components","language","lang","ns","SDKI18next","useEffect","jsx","ComponentsProvider","ErrorBoundary","InternalError","ThemeProvider","LocaleProvider","I18nextProvider","ApiProvider"],"mappings":"
|
|
1
|
+
{"version":3,"file":"GustoProviderCustomUIAdapter.js","sources":["../../../src/contexts/GustoProvider/GustoProviderCustomUIAdapter.tsx"],"sourcesContent":["import type React from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { I18nextProvider } from 'react-i18next'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useEffect } from 'react'\nimport { ComponentsProvider } from '../ComponentAdapter/ComponentsProvider'\nimport type { ComponentsContextType } from '../ComponentAdapter/useComponentContext'\nimport { ApiProvider } from '../ApiProvider/ApiProvider'\nimport { SDKI18next } from './SDKI18next'\nimport { InternalError } from '@/components/Common'\nimport { LocaleProvider } from '@/contexts/LocaleProvider'\nimport { ThemeProvider } from '@/contexts/ThemeProvider'\nimport type { GTheme } from '@/types/GTheme'\nimport type { DeepPartial, ResourceDictionary, SupportedLanguages } from '@/types/Helpers'\n\ninterface APIConfig {\n baseUrl: string\n headers?: HeadersInit\n}\n\nexport interface GustoProviderProps {\n config: APIConfig\n dictionary?: ResourceDictionary\n lng?: string\n locale?: string\n currency?: string\n theme?: DeepPartial<GTheme>\n queryClient?: QueryClient\n components: ComponentsContextType\n}\n\nexport interface GustoProviderCustomUIAdapterProps extends GustoProviderProps {\n children?: React.ReactNode\n}\n\n/**\n * A provider that accepts UI component adapters through the components prop\n */\nconst GustoProviderCustomUIAdapter: React.FC<GustoProviderCustomUIAdapterProps> = props => {\n const {\n children,\n config,\n dictionary,\n lng = 'en',\n locale = 'en-US',\n currency = 'USD',\n theme,\n components,\n } = props\n\n // Handle dictionary resources\n if (dictionary) {\n for (const language in dictionary) {\n const lang = language as SupportedLanguages\n for (const ns in dictionary[lang]) {\n // Adding resources overrides to i18next instance - initial load will override common namespace and add component specific dictionaries provided by partners\n SDKI18next.addResourceBundle(\n lang,\n ns,\n (dictionary[lang] as Record<string, unknown>)[ns],\n true,\n true,\n )\n }\n }\n }\n\n // Handle language change\n useEffect(() => {\n void (async () => {\n await SDKI18next.changeLanguage(lng)\n })()\n }, [lng])\n\n return (\n <ComponentsProvider value={components}>\n <ErrorBoundary FallbackComponent={InternalError}>\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={locale} currency={currency}>\n <I18nextProvider i18n={SDKI18next} key={lng}>\n <ApiProvider url={config.baseUrl} headers={config.headers}>\n {children}\n </ApiProvider>\n </I18nextProvider>\n </LocaleProvider>\n </ThemeProvider>\n </ErrorBoundary>\n </ComponentsProvider>\n )\n}\n\nexport { GustoProviderCustomUIAdapter }\n"],"names":["GustoProviderCustomUIAdapter","props","children","config","dictionary","lng","locale","currency","theme","components","language","lang","ns","SDKI18next","useEffect","jsx","ComponentsProvider","ErrorBoundary","InternalError","ThemeProvider","LocaleProvider","I18nextProvider","ApiProvider"],"mappings":";;;;;;;;;;;AAsCA,MAAMA,IAA4E,CAASC,MAAA;AACnF,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,KAAAC,IAAM;AAAA,IACN,QAAAC,IAAS;AAAA,IACT,UAAAC,IAAW;AAAA,IACX,OAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACER;AAGJ,MAAIG;AACF,eAAWM,KAAYN,GAAY;AACjC,YAAMO,IAAOD;AACF,iBAAAE,KAAMR,EAAWO,CAAI;AAEnB,QAAAE,EAAA;AAAA,UACTF;AAAA,UACAC;AAAA,UACCR,EAAWO,CAAI,EAA8BC,CAAE;AAAA,UAChD;AAAA,UACA;AAAA,QACF;AAAA,IACF;AAKJ,SAAAE,EAAU,MAAM;AACd,KAAM,YACE,MAAAD,EAAW,eAAeR,CAAG;AAAA,EAClC,GACF,CAACA,CAAG,CAAC,GAGL,gBAAAU,EAAAC,GAAA,EAAmB,OAAOP,GACzB,4BAACQ,GAAc,EAAA,mBAAmBC,GAChC,UAAA,gBAAAH,EAACI,GAAc,EAAA,OAAAX,GACb,UAAC,gBAAAO,EAAAK,GAAA,EAAe,QAAAd,GAAgB,UAAAC,GAC9B,UAAA,gBAAAQ,EAACM,GAAgB,EAAA,MAAMR,GACrB,UAAA,gBAAAE,EAACO,GAAY,EAAA,KAAKnB,EAAO,SAAS,SAASA,EAAO,SAC/C,UAAAD,GACH,EAHsC,GAAAG,CAIxC,GACF,EAAA,CACF,EACF,CAAA,GACF;AAEJ;"}
|
package/dist/i18n/I18n.js
CHANGED
|
@@ -2,40 +2,40 @@ import p from "../_virtual/dynamic-import-helper.js";
|
|
|
2
2
|
import { useTranslation as m } from "react-i18next";
|
|
3
3
|
import { LRUCache as l } from "../helpers/LRUCache.js";
|
|
4
4
|
const g = "common", s = new l(50), c = ({ lng: n = "en", ns: o }) => {
|
|
5
|
-
let e = !0,
|
|
5
|
+
let e = !0, t = !1, r;
|
|
6
6
|
const i = (async () => {
|
|
7
7
|
try {
|
|
8
|
-
|
|
8
|
+
r = (await p(/* @__PURE__ */ Object.assign({ "./en/Company.AddBank.json": () => import("./en/Company.AddBank.json.js"), "./en/Company.Addresses.json": () => import("./en/Company.Addresses.json.js"), "./en/Company.AssignSignatory.json": () => import("./en/Company.AssignSignatory.json.js"), "./en/Company.BankAccount.json": () => import("./en/Company.BankAccount.json.js"), "./en/Company.DocumentList.json": () => import("./en/Company.DocumentList.json.js"), "./en/Company.FederalTaxes.json": () => import("./en/Company.FederalTaxes.json.js"), "./en/Company.Industry.json": () => import("./en/Company.Industry.json.js"), "./en/Company.Locations.json": () => import("./en/Company.Locations.json.js"), "./en/Company.OnboardingOverview.json": () => import("./en/Company.OnboardingOverview.json.js"), "./en/Company.PaySchedule.json": () => import("./en/Company.PaySchedule.json.js"), "./en/Company.SignatureForm.json": () => import("./en/Company.SignatureForm.json.js"), "./en/Company.StateTaxes.json": () => import("./en/Company.StateTaxes.json.js"), "./en/Contractor.Address.json": () => import("./en/Contractor.Address.json.js"), "./en/Contractor.ContractorList.json": () => import("./en/Contractor.ContractorList.json.js"), "./en/Contractor.PaymentMethod.json": () => import("./en/Contractor.PaymentMethod.json.js"), "./en/Employee.BankAccount.json": () => import("./en/Employee.BankAccount.json.js"), "./en/Employee.Compensation.json": () => import("./en/Employee.Compensation.json.js"), "./en/Employee.Deductions.json": () => import("./en/Employee.Deductions.json.js"), "./en/Employee.DocumentSigner.json": () => import("./en/Employee.DocumentSigner.json.js"), "./en/Employee.EmployeeList.json": () => import("./en/Employee.EmployeeList.json.js"), "./en/Employee.HomeAddress.json": () => import("./en/Employee.HomeAddress.json.js"), "./en/Employee.Landing.json": () => import("./en/Employee.Landing.json.js"), "./en/Employee.OnboardingSummary.json": () => import("./en/Employee.OnboardingSummary.json.js"), "./en/Employee.PaySchedules.json": () => import("./en/Employee.PaySchedules.json.js"), "./en/Employee.PaymentMethod.json": () => import("./en/Employee.PaymentMethod.json.js"), "./en/Employee.Profile.json": () => import("./en/Employee.Profile.json.js"), "./en/Employee.SplitPaycheck.json": () => import("./en/Employee.SplitPaycheck.json.js"), "./en/Employee.StateTaxes.json": () => import("./en/Employee.StateTaxes.json.js"), "./en/Employee.Taxes.json": () => import("./en/Employee.Taxes.json.js"), "./en/Payroll.PayrollHistoryList.json": () => import("./en/Payroll.PayrollHistoryList.json.js"), "./en/Payroll.PayrollSchedule.json": () => import("./en/Payroll.PayrollSchedule.json.js"), "./en/common.json": () => import("./en/common.json.js") }), `./${n}/${o}.json`, 3)).default, e = !1;
|
|
9
9
|
} catch {
|
|
10
|
-
|
|
10
|
+
t = !0, e = !1;
|
|
11
11
|
}
|
|
12
12
|
})();
|
|
13
13
|
return () => {
|
|
14
14
|
if (e)
|
|
15
15
|
throw i;
|
|
16
|
-
if (
|
|
16
|
+
if (t)
|
|
17
17
|
throw new Error(`Error loading translation for component: ${o}`);
|
|
18
|
-
return
|
|
18
|
+
return r;
|
|
19
19
|
};
|
|
20
|
-
},
|
|
20
|
+
}, C = (n) => {
|
|
21
21
|
const { i18n: o } = m();
|
|
22
22
|
if (!n) return;
|
|
23
23
|
const e = `${o.resolvedLanguage}:${n}`;
|
|
24
24
|
s.get(e) === null && s.put(e, c({ lng: o.resolvedLanguage, ns: n }));
|
|
25
|
-
const
|
|
26
|
-
if (
|
|
27
|
-
const
|
|
28
|
-
o.addResourceBundle(o.resolvedLanguage ?? "en", n,
|
|
25
|
+
const t = s.get(e);
|
|
26
|
+
if (t) {
|
|
27
|
+
const r = t();
|
|
28
|
+
o.addResourceBundle(o.resolvedLanguage ?? "en", n, r, !0, !1);
|
|
29
29
|
}
|
|
30
|
-
},
|
|
30
|
+
}, f = (n, o) => {
|
|
31
31
|
const { i18n: e } = m();
|
|
32
32
|
if (o)
|
|
33
|
-
for (const
|
|
34
|
-
e.addResourceBundle(
|
|
33
|
+
for (const t in o)
|
|
34
|
+
e.addResourceBundle(t, n, o[t], !0, !0);
|
|
35
35
|
};
|
|
36
36
|
export {
|
|
37
37
|
g as defaultNS,
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
f as useComponentDictionary,
|
|
39
|
+
C as useI18n
|
|
40
40
|
};
|
|
41
41
|
//# sourceMappingURL=I18n.js.map
|
package/dist/i18n/I18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport const defaultNS = 'common'\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n * @param lng(string): resource language\n * @param ns(string): Namespace/name of the component/resource\n * @returns Promise<Translation resource>\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const module = await import(`@/i18n/${lng}/${ns}.json`)\n\n resource = module.default\n isLoading = false\n } catch (err) {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n * @param @private {string} ns - Namespace - should match component name exactly - not exposed to consumers\n */\nexport const useI18n = (ns: keyof CustomTypeOptions['resources'] | null) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoApiProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!ns) return\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(i18nInstance.resolvedLanguage ?? 'en', ns, resource, true, false) //Last argument is set to false to prevent override of keys provided by partners on GustoApiProvider level through dictionary prop\n }\n}\n\n//Used by individual components to override their dictionaries with partner provided resources\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: keyof CustomTypeOptions['resources'],\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","resourceCache","LRUCache","loadResource","lng","ns","isLoading","isError","resource","promise","__variableDynamicImportRuntimeHelper","useI18n","i18nInstance","useTranslation","key","resourceGetter","useComponentDictionary","lang"],"mappings":";;;AAKO,MAAMA,IAAY,UAGnBC,IAAgB,IAAIC,EAAS,EAAE,GAO/BC,IAAe,CAAC,EAAE,KAAAC,IAAM,MAAM,IAAAC,QAAuC;AACzE,MAAIC,IAAY,IACZC,IAAU,IACVC;AAaJ,QAAMC,KAXkB,YAAY;AAC9B,QAAA;AAGF,MAAAD,KAFe,MAAME,
|
|
1
|
+
{"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport const defaultNS = 'common'\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n * @param lng(string): resource language\n * @param ns(string): Namespace/name of the component/resource\n * @returns Promise<Translation resource>\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const module = await import(`@/i18n/${lng}/${ns}.json`)\n\n resource = module.default\n isLoading = false\n } catch (err) {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n * @param @private {string} ns - Namespace - should match component name exactly - not exposed to consumers\n */\nexport const useI18n = (ns: keyof CustomTypeOptions['resources'] | null) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoApiProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!ns) return\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(i18nInstance.resolvedLanguage ?? 'en', ns, resource, true, false) //Last argument is set to false to prevent override of keys provided by partners on GustoApiProvider level through dictionary prop\n }\n}\n\n//Used by individual components to override their dictionaries with partner provided resources\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: keyof CustomTypeOptions['resources'],\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","resourceCache","LRUCache","loadResource","lng","ns","isLoading","isError","resource","promise","__variableDynamicImportRuntimeHelper","useI18n","i18nInstance","useTranslation","key","resourceGetter","useComponentDictionary","lang"],"mappings":";;;AAKO,MAAMA,IAAY,UAGnBC,IAAgB,IAAIC,EAAS,EAAE,GAO/BC,IAAe,CAAC,EAAE,KAAAC,IAAM,MAAM,IAAAC,QAAuC;AACzE,MAAIC,IAAY,IACZC,IAAU,IACVC;AAaJ,QAAMC,KAXkB,YAAY;AAC9B,QAAA;AAGF,MAAAD,KAFe,MAAME,+sFAEH,SACNJ,IAAA;AAAA,YACA;AACF,MAAAC,IAAA,IACED,IAAA;AAAA,IAAA;AAAA,EAEhB,GACgC;AAChC,SAAO,MAAM;AACX,QAAIA;AAEI,YAAAG;QACGF;AACT,YAAM,IAAI,MAAM,4CAA4CF,CAAE,EAAE;AAEzD,WAAAG;AAAA,EAEX;AACF,GAMaG,IAAU,CAACN,MAAoD;AAE1E,QAAM,EAAE,MAAMO,EAAa,IAAIC,EAAe;AAE9C,MAAI,CAACR,EAAI;AACT,QAAMS,IAAM,GAAGF,EAAa,gBAAgB,IAAIP,CAAE;AAElD,EAAIJ,EAAc,IAAIa,CAAG,MAAM,QAEfb,EAAA,IAAIa,GAAKX,EAAa,EAAE,KAAKS,EAAa,kBAAkB,IAAAP,EAAO,CAAC,CAAC;AAG/E,QAAAU,IAAiBd,EAAc,IAAIa,CAAG;AAC5C,MAAIC,GAAgB;AAClB,UAAMP,IAAWO,EAAe;AAChC,IAAAH,EAAa,kBAAkBA,EAAa,oBAAoB,MAAMP,GAAIG,GAAU,IAAM,EAAK;AAAA,EAAA;AAEnG,GAGaQ,IAAyB,CACpCX,GACAG,MACG;AACH,QAAM,EAAE,MAAMI,EAAa,IAAIC,EAAe;AAC9C,MAAIL;AACF,eAAWS,KAAQT;AACjB,MAAAI,EAAa,kBAAkBK,GAAMZ,GAAIG,EAASS,CAAI,GAAG,IAAM,EAAI;AAGzE;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const t = "Add a contractor", o = "+ Add another contractor", a = "A list of contractors", r = "Edit contractor", e = "Add contractors to get them setup for payroll.", c = "You haven't added any contractors yet", n = {
|
|
2
|
+
name: "Name",
|
|
3
|
+
status: "Status"
|
|
4
|
+
}, s = "Contractors", d = {
|
|
5
|
+
addContractorCTA: t,
|
|
6
|
+
addAnotherCTA: o,
|
|
7
|
+
contractorListLabel: a,
|
|
8
|
+
editCTA: r,
|
|
9
|
+
emptyTableDescription: e,
|
|
10
|
+
emptyTableTitle: c,
|
|
11
|
+
listHeaders: n,
|
|
12
|
+
title: s
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
o as addAnotherCTA,
|
|
16
|
+
t as addContractorCTA,
|
|
17
|
+
a as contractorListLabel,
|
|
18
|
+
d as default,
|
|
19
|
+
r as editCTA,
|
|
20
|
+
e as emptyTableDescription,
|
|
21
|
+
c as emptyTableTitle,
|
|
22
|
+
n as listHeaders,
|
|
23
|
+
s as title
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=Contractor.ContractorList.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Contractor.ContractorList.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const e = "Contractor payment details", t = "Select payment method", c = "Direct deposit", n = "We recommend direct deposit – we’ll deposit paychecks directly into your employee’s bank account.", o = "Check", i = "If you select check as the payment method, you’ll need to write a physical check to this employee each payday.", a = "Continue", r = {
|
|
2
|
+
nameLabel: "Account nickname",
|
|
3
|
+
routingNumberLabel: "Routing number",
|
|
4
|
+
routingNumberDescription: "9-digits",
|
|
5
|
+
accountNumberLabel: "Account number",
|
|
6
|
+
accountTypeLabel: "Account type",
|
|
7
|
+
accountTypeChecking: "Checking",
|
|
8
|
+
accountTypeSavings: "Savings",
|
|
9
|
+
validations: {
|
|
10
|
+
accountName: "Account nickname is required",
|
|
11
|
+
routingNumber: "Routing number is required (9-digits)",
|
|
12
|
+
accountNumber: "Please enter valid account number"
|
|
13
|
+
}
|
|
14
|
+
}, s = {
|
|
15
|
+
title: e,
|
|
16
|
+
paymentFieldsetLegend: t,
|
|
17
|
+
directDepositLabel: c,
|
|
18
|
+
directDepositDescription: n,
|
|
19
|
+
checkLabel: o,
|
|
20
|
+
checkDescription: i,
|
|
21
|
+
continueCta: a,
|
|
22
|
+
bankAccountForm: r
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
r as bankAccountForm,
|
|
26
|
+
i as checkDescription,
|
|
27
|
+
o as checkLabel,
|
|
28
|
+
a as continueCta,
|
|
29
|
+
s as default,
|
|
30
|
+
n as directDepositDescription,
|
|
31
|
+
c as directDepositLabel,
|
|
32
|
+
t as paymentFieldsetLegend,
|
|
33
|
+
e as title
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=Contractor.PaymentMethod.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Contractor.PaymentMethod.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -6,14 +6,14 @@ const e = "+ Add another job", t = "Adjust for minimum wage", o = "Determines wh
|
|
|
6
6
|
perColumn: "Per",
|
|
7
7
|
tableLabel: "List of all jobs for the employee",
|
|
8
8
|
typeColumn: "Pay type"
|
|
9
|
-
}, n = "Compensation amount", l = "Back", m = "Cancel", c = "Cancel", r = '<classificationCta href="https://support.gusto.com/team-management/team-payments/pay-rates/1001671771/Employee-classification-options.htm" target="_blank">Learn more about employee classifications.</classificationCta>',
|
|
9
|
+
}, n = "Compensation amount", l = "Back", m = "Cancel", c = "Cancel", r = '<classificationCta href="https://support.gusto.com/team-management/team-payments/pay-rates/1001671771/Employee-classification-options.htm" target="_blank">Learn more about employee classifications.</classificationCta>', p = "Employee type", d = {
|
|
10
10
|
"Commission Only Exempt": "Commission Only/No Overtime",
|
|
11
11
|
"Commission Only Nonexempt": "Commission Only/Eligible for overtime",
|
|
12
12
|
Exempt: "Salary/No overtime",
|
|
13
13
|
Nonexempt: "Paid by the hour",
|
|
14
14
|
Owner: "Owner's draw",
|
|
15
15
|
"Salaried Nonexempt": "Salary/Eligible for overtime"
|
|
16
|
-
}, u = "Job actions",
|
|
16
|
+
}, u = "Job actions", y = "Job Title", h = "The period over which the compensation amount is tracked (e.g., hourly, daily, weekly, monthly, annually).", C = "Per", b = {
|
|
17
17
|
Hour: "Hour",
|
|
18
18
|
Month: "Month",
|
|
19
19
|
Paycheck: "Paycheck",
|
|
@@ -24,13 +24,15 @@ const e = "+ Add another job", t = "Adjust for minimum wage", o = "Determines wh
|
|
|
24
24
|
exemptThreshold: "Most employees who make under {{limit}}/year should be eligible for overtime.",
|
|
25
25
|
paymentUnit: "Payment unit must be one of Hour, Week, Month, or Year",
|
|
26
26
|
rate: "Amount is a required field",
|
|
27
|
+
nonZeroRate: "Amount must be at least $1.00",
|
|
28
|
+
rateExemptThreshold: "FLSA Exempt employees must meet salary threshold of {{limit}}/year",
|
|
27
29
|
title: "Title is a required field",
|
|
28
30
|
minimumWage: "Please select minimum wage for adjustment",
|
|
29
31
|
stateWcClassCode: "Please select a risk class code"
|
|
30
32
|
}, j = "Workers' compensation coverage", L = "Washington administers <wcLink>workers’ compensation insurance</wcLink> to protect workers and employers from the financial impact of a work-related injury. Indicate here if this employee is exempt from the workers’ comp tax.", T = {
|
|
31
33
|
yes: "Yes, this employee is covered",
|
|
32
34
|
no: "No, this employee is not covered"
|
|
33
|
-
},
|
|
35
|
+
}, x = "Risk class code", D = "The risk class code associated with this employee’s job function. We need this to pay and file your taxes correctly.", N = "Select if employee is a 2% shareholder", O = {
|
|
34
36
|
addAnotherJobCta: e,
|
|
35
37
|
adjustForMinimumWage: t,
|
|
36
38
|
adjustForMinimumWageDescription: o,
|
|
@@ -42,12 +44,12 @@ const e = "+ Add another job", t = "Adjust for minimum wage", o = "Determines wh
|
|
|
42
44
|
cancelCta: m,
|
|
43
45
|
cancelNewJobCta: c,
|
|
44
46
|
classificationCTA: r,
|
|
45
|
-
employeeClassification:
|
|
46
|
-
flsaStatusLabels:
|
|
47
|
+
employeeClassification: p,
|
|
48
|
+
flsaStatusLabels: d,
|
|
47
49
|
hamburgerTitle: u,
|
|
48
|
-
jobTitle:
|
|
49
|
-
paymentUnitDescription:
|
|
50
|
-
paymentUnitLabel:
|
|
50
|
+
jobTitle: y,
|
|
51
|
+
paymentUnitDescription: h,
|
|
52
|
+
paymentUnitLabel: C,
|
|
51
53
|
paymentUnitOptions: b,
|
|
52
54
|
saveNewJobCta: f,
|
|
53
55
|
submitCta: g,
|
|
@@ -58,9 +60,9 @@ const e = "+ Add another job", t = "Adjust for minimum wage", o = "Determines wh
|
|
|
58
60
|
stateWcCoveredLabel: j,
|
|
59
61
|
stateWcCoveredDescription: L,
|
|
60
62
|
stateWcCoveredOptions: T,
|
|
61
|
-
stateWcClassCodeLabel:
|
|
62
|
-
stateWcClassCodeDescription:
|
|
63
|
-
twoPercentStakeholderLabel:
|
|
63
|
+
stateWcClassCodeLabel: x,
|
|
64
|
+
stateWcClassCodeDescription: D,
|
|
65
|
+
twoPercentStakeholderLabel: N
|
|
64
66
|
};
|
|
65
67
|
export {
|
|
66
68
|
e as addAnotherJobCta,
|
|
@@ -73,26 +75,26 @@ export {
|
|
|
73
75
|
m as cancelCta,
|
|
74
76
|
c as cancelNewJobCta,
|
|
75
77
|
r as classificationCTA,
|
|
76
|
-
|
|
78
|
+
O as default,
|
|
77
79
|
w as editTitle,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
p as employeeClassification,
|
|
81
|
+
d as flsaStatusLabels,
|
|
80
82
|
u as hamburgerTitle,
|
|
81
|
-
|
|
83
|
+
y as jobTitle,
|
|
82
84
|
i as minimumWageDescription,
|
|
83
85
|
a as minimumWageLabel,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
h as paymentUnitDescription,
|
|
87
|
+
C as paymentUnitLabel,
|
|
86
88
|
b as paymentUnitOptions,
|
|
87
89
|
f as saveNewJobCta,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
D as stateWcClassCodeDescription,
|
|
91
|
+
x as stateWcClassCodeLabel,
|
|
90
92
|
L as stateWcCoveredDescription,
|
|
91
93
|
j as stateWcCoveredLabel,
|
|
92
94
|
T as stateWcCoveredOptions,
|
|
93
95
|
g as submitCta,
|
|
94
96
|
W as title,
|
|
95
|
-
|
|
97
|
+
N as twoPercentStakeholderLabel,
|
|
96
98
|
v as validations
|
|
97
99
|
};
|
|
98
100
|
//# sourceMappingURL=Employee.Compensation.json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Employee.Compensation.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Employee.Compensation.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
const t = "Account number", e = "Account type", n = "Account type", o = "Checking", c = "Savings", a = "Allocation", i = "Bank account actions", s = "+ Add another bank account",
|
|
1
|
+
const t = "Account number", e = "Account type", n = "Account type", o = "Checking", c = "Savings", a = "Allocation", i = "Bank account actions", s = "+ Add another bank account", r = "Add bank account", l = "List of employee bank accounts", u = "Back", p = "Save", m = "Cancel", d = "If you select check as the payment method, you'll need to write a physical check to this employee each payday.", b = "Check", y = "Delete", h = "We recommend direct deposit — we can deposit paychecks directly into your employees' bank accounts.", g = "Direct Deposit", k = "Bank account actions", L = "Account nickname", C = "Nickname", A = "Select payment method", f = "Routing number", T = "Routing number", D = "(9 digits)", N = "Split paycheck", _ = "Continue", v = "Employee payment details", B = "Fixed amount", S = "<p>You can split your paycheck into different accounts by percentage or flat dollar amounts.</p><p>When splitting by amount, you can reorder the priority of the bank accounts by clicking and dragging the list icon to the left of the bank account field. We’ll pay the amounts in the order specified until your salary has been fully distributed to the last “remainder” account.</p>", w = "Reorderable list of bank accounts", E = "Percentage", P = "{{name}} ({{account_number}})", R = "Split by", W = "Priority", x = "Remainder", F = "Split employee paycheck", q = "{{count}}st", I = "{{count}}nd", M = "{{count}}rd", Y = "{{count}}th", j = {
|
|
2
2
|
percentageError: "If payment method amount is split by Percentage, all split amounts must add up to exactly 100.",
|
|
3
|
+
percentageErrorWithTotal: "Splits must total 100%. Currently {{total}}%.",
|
|
3
4
|
amountError: "Please enter valid amount",
|
|
4
5
|
accountName: "Account name is required",
|
|
5
6
|
routingNumber: "Routing number should be a number (9 digits)",
|
|
@@ -13,8 +14,8 @@ const t = "Account number", e = "Account type", n = "Account type", o = "Checkin
|
|
|
13
14
|
allocationColumn: a,
|
|
14
15
|
actionColumn: i,
|
|
15
16
|
addAnotherCta: s,
|
|
16
|
-
addBankAccountCTA:
|
|
17
|
-
bankAccountsListLabel:
|
|
17
|
+
addBankAccountCTA: r,
|
|
18
|
+
bankAccountsListLabel: l,
|
|
18
19
|
cancelCta: u,
|
|
19
20
|
saveCta: p,
|
|
20
21
|
cancelAddCta: m,
|
|
@@ -36,12 +37,12 @@ const t = "Account number", e = "Account type", n = "Account type", o = "Checkin
|
|
|
36
37
|
amountLabel: B,
|
|
37
38
|
splitDescription: S,
|
|
38
39
|
draggableListLabel: w,
|
|
39
|
-
percentageLabel:
|
|
40
|
-
splitAmountLabel:
|
|
41
|
-
splitByLabel:
|
|
42
|
-
priorityLabel:
|
|
43
|
-
remainderLabel:
|
|
44
|
-
splitTitle:
|
|
40
|
+
percentageLabel: E,
|
|
41
|
+
splitAmountLabel: P,
|
|
42
|
+
splitByLabel: R,
|
|
43
|
+
priorityLabel: W,
|
|
44
|
+
remainderLabel: x,
|
|
45
|
+
splitTitle: F,
|
|
45
46
|
priority_one: q,
|
|
46
47
|
priority_two: I,
|
|
47
48
|
priority_few: M,
|
|
@@ -56,10 +57,10 @@ export {
|
|
|
56
57
|
c as accountTypeSavings,
|
|
57
58
|
i as actionColumn,
|
|
58
59
|
s as addAnotherCta,
|
|
59
|
-
|
|
60
|
+
r as addBankAccountCTA,
|
|
60
61
|
a as allocationColumn,
|
|
61
62
|
B as amountLabel,
|
|
62
|
-
|
|
63
|
+
l as bankAccountsListLabel,
|
|
63
64
|
m as cancelAddCta,
|
|
64
65
|
u as cancelCta,
|
|
65
66
|
d as checkDescription,
|
|
@@ -73,22 +74,22 @@ export {
|
|
|
73
74
|
L as nameLabel,
|
|
74
75
|
C as nicknameColumn,
|
|
75
76
|
A as paymentFieldsetLegend,
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
E as percentageLabel,
|
|
78
|
+
W as priorityLabel,
|
|
78
79
|
M as priority_few,
|
|
79
80
|
q as priority_one,
|
|
80
81
|
Y as priority_other,
|
|
81
82
|
I as priority_two,
|
|
82
|
-
|
|
83
|
+
x as remainderLabel,
|
|
83
84
|
f as routingNumberColumn,
|
|
84
85
|
D as routingNumberDescription,
|
|
85
86
|
T as routingNumberLabel,
|
|
86
87
|
p as saveCta,
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
P as splitAmountLabel,
|
|
89
|
+
R as splitByLabel,
|
|
89
90
|
N as splitCta,
|
|
90
91
|
S as splitDescription,
|
|
91
|
-
|
|
92
|
+
F as splitTitle,
|
|
92
93
|
_ as submitCta,
|
|
93
94
|
v as title,
|
|
94
95
|
j as validations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Employee.PaymentMethod.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Employee.PaymentMethod.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -33,15 +33,27 @@ declare const _default: {
|
|
|
33
33
|
"menuLabel": "Menu"
|
|
34
34
|
},
|
|
35
35
|
"onboardingStatus": {
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
"contractor": {
|
|
37
|
+
"undefined": "N/A",
|
|
38
|
+
"admin_onboarding_incomplete": "Admin-onboarding Incomplete",
|
|
39
|
+
"admin_onboarding_review": "Admin-onboarding review",
|
|
40
|
+
"onboarding_completed": "Completed",
|
|
41
|
+
"self_onboarding_not_invited": "Self-onboarding: Not Invited",
|
|
42
|
+
"self_onboarding_invited": "Self-onboarding: Invited",
|
|
43
|
+
"self_onboarding_started": "Self-onboarding started",
|
|
44
|
+
"self_onboarding_review": "Self-onboarding: Review"
|
|
45
|
+
},
|
|
46
|
+
"employee": {
|
|
47
|
+
"undefined": "N/A",
|
|
48
|
+
"admin_onboarding_incomplete": "Admin-onboarding Incomplete",
|
|
49
|
+
"onboarding_completed": "Completed",
|
|
50
|
+
"self_onboarding_pending_invite": "Self-onboarding: Pending Invite",
|
|
51
|
+
"self_onboarding_invited": "Self-onboarding: Invited",
|
|
52
|
+
"self_onboarding_invited_started": "Self-onboarding started",
|
|
53
|
+
"self_onboarding_invited_overdue": "Self-onboarding: Overdue",
|
|
54
|
+
"self_onboarding_completed_by_employee": "Self-onboarding: Completed",
|
|
55
|
+
"self_onboarding_awaiting_admin_review": "Self-onboarding: Admin review"
|
|
56
|
+
}
|
|
45
57
|
},
|
|
46
58
|
"inputs": {
|
|
47
59
|
"ssn": {
|