@gusto/embedded-react-sdk 0.12.1 → 0.13.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 +139 -0
- package/dist/_virtual/dynamic-import-helper.js +1 -8
- package/dist/_virtual/dynamic-import-helper.js.map +1 -1
- package/dist/assets/icons/spinner_small.svg.js +10 -0
- package/dist/assets/icons/spinner_small.svg.js.map +1 -0
- package/dist/components/Base/Base.js +38 -36
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Base/useBase.d.ts +2 -0
- package/dist/components/Base/useBase.js.map +1 -1
- package/dist/components/Common/DataView/DataView.d.ts +2 -1
- package/dist/components/Common/DataView/DataView.js +20 -19
- package/dist/components/Common/DataView/DataView.js.map +1 -1
- package/dist/components/Common/DataView/useDataView.d.ts +3 -1
- package/dist/components/Common/DataView/useDataView.js +13 -11
- package/dist/components/Common/DataView/useDataView.js.map +1 -1
- package/dist/components/Common/EmptyData/EmptyData.module.scss.js +1 -1
- package/dist/components/Common/InlineSpinner/InlineSpinner.d.ts +6 -0
- package/dist/components/Common/InlineSpinner/InlineSpinner.js +25 -0
- package/dist/components/Common/InlineSpinner/InlineSpinner.js.map +1 -0
- package/dist/components/Common/InlineSpinner/InlineSpinner.module.scss.js +10 -0
- package/dist/components/Common/InlineSpinner/InlineSpinner.module.scss.js.map +1 -0
- package/dist/components/Common/InlineSpinner/index.d.ts +2 -0
- package/dist/components/Common/PaginationControl/PaginationControl.js +31 -28
- package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
- package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +1 -0
- package/dist/components/Common/ReorderableList/DropZone.js +1 -1
- package/dist/components/Common/ReorderableList/DropZone.js.map +1 -1
- package/dist/components/Common/ReorderableList/ReorderableItem.js +1 -1
- package/dist/components/Common/ReorderableList/ReorderableItem.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureForm.js +8 -5
- package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormActions.js +13 -10
- package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormFields.js +13 -10
- package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +1 -1
- package/dist/components/Common/UI/DatePicker/DatePicker.js +1 -1
- package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
- package/dist/components/Common/hooks/useNumberFormatter.js +1 -1
- package/dist/components/Common/index.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +8 -6
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +8 -6
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +10 -8
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +8 -7
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +14 -13
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.d.ts +2 -2
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +8 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +10 -9
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +11 -10
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +8 -7
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -10
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccount.js +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +9 -8
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +2 -2
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +11 -9
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -8
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +12 -10
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +13 -11
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +2 -2
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +6 -4
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +7 -5
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +14 -12
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -8
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentSigner.js +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +11 -9
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +5 -8
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +9 -7
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +20 -18
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +6 -4
- package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -13
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +7 -5
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +8 -11
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +12 -10
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Industry/Industry.js +2 -2
- package/dist/components/Company/Locations/LocationForm/Actions.js +8 -6
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +6 -5
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +16 -14
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -8
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +8 -6
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +4 -2
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +15 -13
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -8
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +14 -12
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +8 -6
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +5 -3
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +5 -8
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +40 -38
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Actions.js +12 -10
- package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Edit.js +17 -16
- package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Head.js +8 -6
- package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/List.js +15 -13
- package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
- package/dist/components/Company/PaySchedule/usePaySchedule.js +8 -11
- package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +7 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +3 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -8
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +8 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +7 -5
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -8
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +10 -8
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Address/Form.js +4 -3
- package/dist/components/Contractor/Address/Form.js.map +1 -1
- package/dist/components/Contractor/Address/useAddress.js +7 -10
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/ContractorList/index.js +26 -25
- package/dist/components/Contractor/ContractorList/index.js.map +1 -1
- package/dist/components/Contractor/ContractorList/useContractorList.js +1 -1
- package/dist/components/Contractor/NewHireReport/NewHireReport.js +58 -55
- package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
- package/dist/components/Contractor/NewHireReport/types.d.ts +1 -0
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js +19 -12
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js +6 -5
- package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +7 -5
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.d.ts +4 -4
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +87 -85
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +3 -2
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfile.js +1 -1
- package/dist/components/Contractor/Profile/ContractorProfileForm.js +13 -13
- package/dist/components/Contractor/Profile/useContractorProfile.d.ts +19 -19
- package/dist/components/Contractor/Profile/useContractorProfile.js +37 -41
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +28 -27
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Employee/Compensation/Actions.js +6 -5
- package/dist/components/Employee/Compensation/Actions.js.map +1 -1
- package/dist/components/Employee/Compensation/Compensation.js +10 -10
- package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
- package/dist/components/Employee/Compensation/Edit.js +15 -14
- package/dist/components/Employee/Compensation/Edit.js.map +1 -1
- package/dist/components/Employee/Compensation/List.js +25 -23
- package/dist/components/Employee/Compensation/List.js.map +1 -1
- package/dist/components/Employee/Compensation/useCompensation.js +1 -1
- package/dist/components/Employee/Compensation/useCompensation.js.map +1 -1
- package/dist/components/Employee/Deductions/Deductions.js +1 -1
- package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +15 -14
- package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +10 -9
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js.map +1 -1
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js +12 -11
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +8 -6
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +12 -10
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js +4 -2
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +5 -8
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +16 -14
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +5 -8
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Actions.js +6 -4
- package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
- package/dist/components/Employee/EmployeeList/EmployeeList.js +76 -62
- package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Head.js +7 -5
- package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
- package/dist/components/Employee/EmployeeList/List.js +30 -27
- package/dist/components/Employee/EmployeeList/List.js.map +1 -1
- package/dist/components/Employee/EmployeeList/useEmployeeList.d.ts +1 -0
- package/dist/components/Employee/EmployeeList/useEmployeeList.js +5 -8
- package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/Actions.d.ts +1 -0
- package/dist/components/Employee/FederalTaxes/Actions.js +15 -0
- package/dist/components/Employee/FederalTaxes/Actions.js.map +1 -0
- package/dist/components/Employee/FederalTaxes/FederalForm.d.ts +29 -0
- package/dist/components/Employee/FederalTaxes/FederalForm.js +110 -0
- package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -0
- package/dist/components/Employee/FederalTaxes/FederalTaxes.d.ts +6 -0
- package/dist/components/Employee/FederalTaxes/FederalTaxes.js +72 -0
- package/dist/components/Employee/FederalTaxes/FederalTaxes.js.map +1 -0
- package/dist/components/Employee/FederalTaxes/Head.d.ts +1 -0
- package/dist/components/Employee/FederalTaxes/Head.js +24 -0
- package/dist/components/Employee/FederalTaxes/Head.js.map +1 -0
- package/dist/components/Employee/FederalTaxes/index.d.ts +2 -0
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.d.ts +5 -0
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +17 -0
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -0
- package/dist/components/Employee/Landing/Landing.js +15 -14
- package/dist/components/Employee/Landing/Landing.js.map +1 -1
- package/dist/components/Employee/OnboardingFlow/OnboardingFlow.d.ts +1 -19
- package/dist/components/Employee/OnboardingFlow/OnboardingFlow.js.map +1 -1
- package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.d.ts +22 -0
- package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js +18 -0
- package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js.map +1 -0
- package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.d.ts +2 -1
- package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js +72 -63
- package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +9 -9
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/Actions.js +9 -7
- package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccount.d.ts +2 -2
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +6 -5
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js +10 -8
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentMethod.js +8 -8
- package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +3 -2
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/Split.js +12 -11
- package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.d.ts +8 -8
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +11 -14
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/Actions.js +9 -7
- package/dist/components/Employee/Profile/Actions.js.map +1 -1
- package/dist/components/Employee/Profile/AdminPersonalDetails.d.ts +2 -2
- package/dist/components/Employee/Profile/AdminPersonalDetails.js +10 -9
- package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
- package/dist/components/Employee/Profile/HomeAddress.js +6 -5
- package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
- package/dist/components/Employee/Profile/PersonalDetailsInputs.d.ts +2 -2
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js +22 -21
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
- package/dist/components/Employee/Profile/Profile.js +15 -13
- package/dist/components/Employee/Profile/Profile.js.map +1 -1
- package/dist/components/Employee/Profile/useProfile.js +5 -8
- package/dist/components/Employee/Profile/useProfile.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +2 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +37 -24
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.d.ts +2 -1
- package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.js +31 -19
- package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.js.map +1 -1
- package/dist/components/Employee/StateTaxes/Actions.d.ts +1 -0
- package/dist/components/Employee/StateTaxes/Actions.js +15 -0
- package/dist/components/Employee/StateTaxes/Actions.js.map +1 -0
- package/dist/components/Employee/StateTaxes/StateForm.d.ts +10 -0
- package/dist/components/Employee/StateTaxes/StateForm.js +34 -0
- package/dist/components/Employee/StateTaxes/StateForm.js.map +1 -0
- package/dist/components/Employee/StateTaxes/StateTaxes.d.ts +7 -0
- package/dist/components/Employee/StateTaxes/StateTaxes.js +90 -0
- package/dist/components/Employee/StateTaxes/StateTaxes.js.map +1 -0
- package/dist/components/Employee/StateTaxes/index.d.ts +2 -0
- package/dist/components/Employee/StateTaxes/useStateTaxes.d.ts +8 -0
- package/dist/components/Employee/StateTaxes/useStateTaxes.js +17 -0
- package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -0
- package/dist/components/Employee/Taxes/Actions.js +10 -8
- package/dist/components/Employee/Taxes/Actions.js.map +1 -1
- package/dist/components/Employee/Taxes/FederalForm.js +14 -12
- package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/Taxes/Taxes.d.ts +5 -0
- package/dist/components/Employee/Taxes/Taxes.js +73 -85
- package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
- package/dist/components/Employee/Taxes/useTaxes.js +5 -8
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/components/Employee/index.d.ts +3 -1
- package/dist/components/Employee/index.js +16 -12
- package/dist/components/Employee/index.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +4 -2
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +75 -34
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +10 -5
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +118 -50
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +14 -11
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.d.ts +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +24 -11
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +8 -6
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +36 -25
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +12 -9
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/RunPayrollFlow/RunPayroll.d.ts +2 -1
- package/dist/components/Payroll/RunPayrollFlow/RunPayroll.js +4 -4
- package/dist/components/Payroll/RunPayrollFlow/RunPayroll.js.map +1 -1
- package/dist/components/Payroll/helpers.d.ts +20 -0
- package/dist/components/Payroll/helpers.js +208 -0
- package/dist/components/Payroll/helpers.js.map +1 -0
- package/dist/components/Payroll/helpers.test.d.ts +1 -0
- package/dist/contexts/ApiProvider/ApiProvider.js +4 -4
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +8 -5
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/ThemeProvider/ThemeProvider.js +7 -7
- package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/helpers/formattedStrings.d.ts +9 -0
- package/dist/helpers/formattedStrings.js +55 -16
- package/dist/helpers/formattedStrings.js.map +1 -1
- package/dist/i18n/I18n.js +11 -11
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Employee.FederalTaxes.json.js +46 -0
- package/dist/i18n/en/Employee.FederalTaxes.json.js.map +1 -0
- package/dist/i18n/en/Employee.StateTaxes.json.js +6 -10
- package/dist/i18n/en/Employee.StateTaxes.json.js.map +1 -1
- package/dist/i18n/en/Employee.Taxes.json.js +7 -7
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +30 -0
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js.map +1 -0
- package/dist/i18n/en/Payroll.PayrollList.json.js +14 -0
- package/dist/i18n/en/Payroll.PayrollList.json.js.map +1 -0
- package/dist/i18n/en/common.json.d.ts +8 -0
- package/dist/i18n/en/common.json.js +15 -13
- package/dist/i18n/en/common.json.js.map +1 -1
- package/dist/shared/constants.d.ts +4 -2
- package/dist/shared/constants.js +10 -9
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +71 -4
- package/package.json +29 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunPayroll.js","sources":["../../../../src/components/Payroll/RunPayrollFlow/RunPayroll.tsx"],"sourcesContent":["import { useReducer } from 'react'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType, runPayrollEvents } from '@/shared/constants'\n\ntype PayrollFlowEvent = (typeof runPayrollEvents)[keyof typeof runPayrollEvents]\ntype PayrollFlowAction =\n | {\n type: Extract<\n PayrollFlowEvent,\n 'runPayroll/back' | 'runPayroll/edited' | 'runPayroll/calculated' | 'runPayroll/submitted'\n >\n }\n | {\n type: Extract<PayrollFlowEvent, 'runPayroll/selected'>\n payload: { payrollId: string }\n }\n\ninterface PayrollFlowState {\n currentPayrollId?: string\n isCalculated: boolean\n}\nconst createInitialPayrollFlowState: () => PayrollFlowState = () => ({\n currentPayrollId: undefined,\n isCalculated: false,\n})\n\nconst runPayrollFlowReducer: (\n state: PayrollFlowState,\n action: PayrollFlowAction,\n) => PayrollFlowState = (state, action) => {\n switch (action.type) {\n case 'runPayroll/back':\n return {\n ...state,\n currentPayrollId: undefined,\n }\n case 'runPayroll/edited':\n return {\n ...state,\n isCalculated: false,\n }\n case 'runPayroll/calculated':\n return {\n ...state,\n isCalculated: true,\n }\n case 'runPayroll/selected': {\n return {\n ...state,\n currentPayrollId: action.payload.payrollId,\n }\n }\n case 'runPayroll/submitted': {\n return {\n ...state,\n isCalculated: false,\n currentPayrollId: undefined,\n }\n }\n default:\n return state\n }\n}\n\ninterface RunPayrollProps extends Pick<BaseComponentInterface, 'onEvent'> {\n companyId: string\n Configuration: ({\n onEvent,\n payrollId,\n }: Pick<BaseComponentInterface, 'onEvent'> & {
|
|
1
|
+
{"version":3,"file":"RunPayroll.js","sources":["../../../../src/components/Payroll/RunPayrollFlow/RunPayroll.tsx"],"sourcesContent":["import { useReducer } from 'react'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType, runPayrollEvents } from '@/shared/constants'\n\ntype PayrollFlowEvent = (typeof runPayrollEvents)[keyof typeof runPayrollEvents]\ntype PayrollFlowAction =\n | {\n type: Extract<\n PayrollFlowEvent,\n 'runPayroll/back' | 'runPayroll/edited' | 'runPayroll/calculated' | 'runPayroll/submitted'\n >\n }\n | {\n type: Extract<PayrollFlowEvent, 'runPayroll/selected'>\n payload: { payrollId: string }\n }\n\ninterface PayrollFlowState {\n currentPayrollId?: string\n isCalculated: boolean\n}\nconst createInitialPayrollFlowState: () => PayrollFlowState = () => ({\n currentPayrollId: undefined,\n isCalculated: false,\n})\n\nconst runPayrollFlowReducer: (\n state: PayrollFlowState,\n action: PayrollFlowAction,\n) => PayrollFlowState = (state, action) => {\n switch (action.type) {\n case 'runPayroll/back':\n return {\n ...state,\n currentPayrollId: undefined,\n }\n case 'runPayroll/edited':\n return {\n ...state,\n isCalculated: false,\n }\n case 'runPayroll/calculated':\n return {\n ...state,\n isCalculated: true,\n }\n case 'runPayroll/selected': {\n return {\n ...state,\n currentPayrollId: action.payload.payrollId,\n }\n }\n case 'runPayroll/submitted': {\n return {\n ...state,\n isCalculated: false,\n currentPayrollId: undefined,\n }\n }\n default:\n return state\n }\n}\n\ninterface RunPayrollProps extends Pick<BaseComponentInterface, 'onEvent'> {\n companyId: string\n Configuration: ({\n onEvent,\n payrollId,\n companyId,\n }: Pick<BaseComponentInterface, 'onEvent'> & {\n payrollId: string\n companyId: string\n }) => React.JSX.Element\n List: ({\n companyId,\n onEvent,\n }: Pick<BaseComponentInterface, 'onEvent'> & { companyId: string }) => React.JSX.Element\n Overview: ({\n companyId,\n onEvent,\n payrollId,\n }: Pick<BaseComponentInterface, 'onEvent'> & {\n companyId: string\n payrollId: string\n }) => React.JSX.Element\n}\n\nexport const RunPayroll = ({\n companyId,\n Configuration,\n List,\n onEvent,\n Overview,\n}: RunPayrollProps) => {\n const [{ isCalculated, currentPayrollId }, dispatch] = useReducer(\n runPayrollFlowReducer,\n createInitialPayrollFlowState(),\n )\n\n const wrappedOnEvent: OnEventType<string, unknown> = (event, payload) => {\n dispatch({ type: event, payload } as PayrollFlowAction)\n onEvent(event as EventType, payload)\n }\n\n return currentPayrollId ? (\n isCalculated ? (\n <Overview companyId={companyId} onEvent={wrappedOnEvent} payrollId={currentPayrollId} />\n ) : (\n <Configuration onEvent={wrappedOnEvent} payrollId={currentPayrollId} companyId={companyId} />\n )\n ) : (\n <List companyId={companyId} onEvent={wrappedOnEvent} />\n )\n}\n"],"names":["createInitialPayrollFlowState","runPayrollFlowReducer","state","action","RunPayroll","companyId","Configuration","List","onEvent","Overview","isCalculated","currentPayrollId","dispatch","useReducer","wrappedOnEvent","event","payload","jsx"],"mappings":";;AAsBA,MAAMA,IAAwD,OAAO;AAAA,EACnE,kBAAkB;AAAA,EAClB,cAAc;AAChB,IAEMC,IAGkB,CAACC,GAAOC,MAAW;AACzC,UAAQA,EAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAO;AAAA,QACL,GAAGD;AAAA,QACH,kBAAkB;AAAA,MAAA;AAAA,IAEtB,KAAK;AACH,aAAO;AAAA,QACL,GAAGA;AAAA,QACH,cAAc;AAAA,MAAA;AAAA,IAElB,KAAK;AACH,aAAO;AAAA,QACL,GAAGA;AAAA,QACH,cAAc;AAAA,MAAA;AAAA,IAElB,KAAK;AACH,aAAO;AAAA,QACL,GAAGA;AAAA,QACH,kBAAkBC,EAAO,QAAQ;AAAA,MAAA;AAAA,IAGrC,KAAK;AACH,aAAO;AAAA,QACL,GAAGD;AAAA,QACH,cAAc;AAAA,QACd,kBAAkB;AAAA,MAAA;AAAA,IAGtB;AACE,aAAOA;AAAA,EAAA;AAEb,GA0BaE,IAAa,CAAC;AAAA,EACzB,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AACF,MAAuB;AACrB,QAAM,CAAC,EAAE,cAAAC,GAAc,kBAAAC,EAAA,GAAoBC,CAAQ,IAAIC;AAAA,IACrDZ;AAAA,IACAD,EAAA;AAAA,EAA8B,GAG1Bc,IAA+C,CAACC,GAAOC,MAAY;AACvE,IAAAJ,EAAS,EAAE,MAAMG,GAAO,SAAAC,EAAA,CAA8B,GACtDR,EAAQO,GAAoBC,CAAO;AAAA,EACrC;AAEA,SAAOL,IACLD,IACE,gBAAAO,EAACR,GAAA,EAAS,WAAAJ,GAAsB,SAASS,GAAgB,WAAWH,EAAA,CAAkB,IAEtF,gBAAAM,EAACX,KAAc,SAASQ,GAAgB,WAAWH,GAAkB,WAAAN,EAAA,CAAsB,IAG7F,gBAAAY,EAACV,GAAA,EAAK,WAAAF,GAAsB,SAASS,EAAA,CAAgB;AAEzD;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Employee } from '@gusto/embedded-api/models/components/employee';
|
|
2
|
+
import { EmployeeCompensations } from '@gusto/embedded-api/models/components/payrollshow';
|
|
3
|
+
import { TFunction } from 'i18next';
|
|
4
|
+
import { PayScheduleObject } from '@gusto/embedded-api/models/components/payscheduleobject';
|
|
5
|
+
export declare const formatEmployeePayRate: ({ employee, t, locale, }: {
|
|
6
|
+
employee?: Employee;
|
|
7
|
+
t: TFunction;
|
|
8
|
+
locale?: string;
|
|
9
|
+
}) => string | null;
|
|
10
|
+
export declare const useFormatEmployeePayRate: () => (employee?: Employee) => string | null;
|
|
11
|
+
export declare const getEmployeePayRateInfo: (employee: Employee | undefined) => {
|
|
12
|
+
rate: number;
|
|
13
|
+
paymentUnit: import('@gusto/embedded-api/models/components/compensation').PaymentUnit;
|
|
14
|
+
} | null;
|
|
15
|
+
export declare const getRegularHours: (compensation: EmployeeCompensations) => number;
|
|
16
|
+
export declare const getTotalPtoHours: (compensation: EmployeeCompensations) => number;
|
|
17
|
+
export declare const getAdditionalEarnings: (compensation: EmployeeCompensations) => number;
|
|
18
|
+
export declare const getReimbursements: (compensation: EmployeeCompensations) => number;
|
|
19
|
+
export declare const formatHoursDisplay: (hours: number) => string;
|
|
20
|
+
export declare const calculateGrossPay: (compensation: EmployeeCompensations, employee: Employee, compensationEffectiveDateString?: string, paySchedule?: PayScheduleObject, isOffCycle?: boolean) => number;
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { useCallback as b } from "react";
|
|
2
|
+
import { useTranslation as C } from "react-i18next";
|
|
3
|
+
import { formatPayRate as T } from "../../helpers/formattedStrings.js";
|
|
4
|
+
import { useLocale as v } from "../../contexts/LocaleProvider/useLocale.js";
|
|
5
|
+
const j = "regular hours", E = (t) => Math.round(t * 1e6) / 1e6, h = (t) => Math.round(t * 100) / 100, P = (t) => t.toLowerCase() === j, M = {
|
|
6
|
+
Daily: 8,
|
|
7
|
+
"Every week": 40,
|
|
8
|
+
"Every other week": 80,
|
|
9
|
+
"Twice per month": 86.666667,
|
|
10
|
+
Monthly: 173.333333,
|
|
11
|
+
Quarterly: 520,
|
|
12
|
+
Semiannually: 1040,
|
|
13
|
+
Annually: 2080
|
|
14
|
+
}, S = ({
|
|
15
|
+
employee: t,
|
|
16
|
+
t: e,
|
|
17
|
+
locale: r = "en-US"
|
|
18
|
+
}) => {
|
|
19
|
+
if (!t?.jobs)
|
|
20
|
+
return null;
|
|
21
|
+
const n = t.jobs.find((s) => s.primary) || t.jobs[0];
|
|
22
|
+
if (!n?.compensations)
|
|
23
|
+
return null;
|
|
24
|
+
const o = n.compensations[0];
|
|
25
|
+
if (!o || !o.rate || parseFloat(o.rate) === 0)
|
|
26
|
+
return null;
|
|
27
|
+
const a = parseFloat(o.rate), u = o.paymentUnit || "Hour";
|
|
28
|
+
return T({ rate: a, paymentUnit: u, t: e, locale: r });
|
|
29
|
+
}, z = () => {
|
|
30
|
+
const { t } = C("common"), { locale: e } = v();
|
|
31
|
+
return b(
|
|
32
|
+
(r) => S({ employee: r, t, locale: e }),
|
|
33
|
+
[t, e]
|
|
34
|
+
);
|
|
35
|
+
}, B = (t) => t.hourlyCompensations ? t.hourlyCompensations.filter((e) => e.name?.toLowerCase() === "regular hours").reduce((e, r) => e + parseFloat(r.hours || "0"), 0) : 0, x = (t) => t.paidTimeOff ? t.paidTimeOff.reduce((e, r) => e + parseFloat(r.hours || "0"), 0) : 0, U = (t) => t.fixedCompensations ? t.fixedCompensations.filter((e) => {
|
|
36
|
+
const r = e.name?.toLowerCase() || "", n = parseFloat(e.amount || "0");
|
|
37
|
+
return r !== "reimbursement" && r !== "minimum wage adjustment" && n > 0;
|
|
38
|
+
}).reduce((e, r) => e + parseFloat(r.amount || "0"), 0) : 0, K = (t) => {
|
|
39
|
+
if (!t.fixedCompensations)
|
|
40
|
+
return 0;
|
|
41
|
+
const e = t.fixedCompensations.find(
|
|
42
|
+
(r) => r.name?.toLowerCase() === "reimbursement"
|
|
43
|
+
);
|
|
44
|
+
return e ? parseFloat(e.amount || "0") : 0;
|
|
45
|
+
}, V = (t) => {
|
|
46
|
+
const e = h(t);
|
|
47
|
+
return e % 1 === 0 ? `${e}.0` : e.toString();
|
|
48
|
+
}, W = (t) => t.frequency && M[t.frequency] || 0, y = (t, e) => {
|
|
49
|
+
if (!t.length) return null;
|
|
50
|
+
const r = [...t].sort(
|
|
51
|
+
(n, o) => (n.effectiveDate ? new Date(n.effectiveDate).getTime() : 0) - (o.effectiveDate ? new Date(o.effectiveDate).getTime() : 0)
|
|
52
|
+
);
|
|
53
|
+
for (let n = r.length - 1; n >= 0; n--) {
|
|
54
|
+
const o = r[n]?.effectiveDate, a = o ? new Date(o) : null;
|
|
55
|
+
if (a && a <= e)
|
|
56
|
+
return r[n] || null;
|
|
57
|
+
}
|
|
58
|
+
return r[0] || null;
|
|
59
|
+
}, A = (t, e) => {
|
|
60
|
+
if (!t.length) return null;
|
|
61
|
+
const r = [...t].sort(
|
|
62
|
+
(n, o) => (n.effectiveDate ? new Date(n.effectiveDate).getTime() : 0) - (o.effectiveDate ? new Date(o.effectiveDate).getTime() : 0)
|
|
63
|
+
);
|
|
64
|
+
for (let n = r.length - 1; n >= 0; n--) {
|
|
65
|
+
const o = r[n]?.effectiveDate, a = o ? new Date(o) : null;
|
|
66
|
+
if (a && a <= e)
|
|
67
|
+
return r[n] || null;
|
|
68
|
+
}
|
|
69
|
+
return r[0] || null;
|
|
70
|
+
}, O = (t) => t.flsaStatus === "Exempt" || t.flsaStatus === "Salaried Nonexempt", L = (t) => t.length ? t.filter((e) => {
|
|
71
|
+
const r = e.name?.toLowerCase(), n = parseFloat(e.amount || "0");
|
|
72
|
+
return (r === "paycheck tips" || r === "cash tips") && n > 0;
|
|
73
|
+
}).reduce((e, r) => e + parseFloat(r.amount || "0"), 0) : 0, g = (t) => {
|
|
74
|
+
const e = parseFloat(t.rate || "0");
|
|
75
|
+
switch (t.paymentUnit || "Hour") {
|
|
76
|
+
case "Hour":
|
|
77
|
+
return e;
|
|
78
|
+
case "Year":
|
|
79
|
+
return e / 2080;
|
|
80
|
+
// 52 weeks * 40 hours
|
|
81
|
+
case "Month":
|
|
82
|
+
return e / 173.333333;
|
|
83
|
+
case "Week":
|
|
84
|
+
return e / 40;
|
|
85
|
+
case "Paycheck":
|
|
86
|
+
return 0;
|
|
87
|
+
// Paycheck rate is 0 for hourly calculation
|
|
88
|
+
default:
|
|
89
|
+
return e;
|
|
90
|
+
}
|
|
91
|
+
}, k = (t, e, r) => {
|
|
92
|
+
const n = t.jobs?.find((a) => a.uuid === e);
|
|
93
|
+
if (!n?.compensations)
|
|
94
|
+
return 0;
|
|
95
|
+
const o = y(n.compensations, r);
|
|
96
|
+
return o ? g(o) : 0;
|
|
97
|
+
}, H = (t, e) => {
|
|
98
|
+
const r = t.jobs?.find((o) => o.primary) || t.jobs?.[0];
|
|
99
|
+
if (!r?.compensations)
|
|
100
|
+
return 0;
|
|
101
|
+
const n = y(r.compensations, e);
|
|
102
|
+
return n ? g(n) : 0;
|
|
103
|
+
}, I = (t) => t.paidTimeOff ? t.paidTimeOff.reduce(
|
|
104
|
+
(e, r) => e + parseFloat(r.finalPayoutUnusedHoursInput || "0"),
|
|
105
|
+
0
|
|
106
|
+
) : 0, D = (t, e, r, n) => {
|
|
107
|
+
const o = x(t);
|
|
108
|
+
if (n) {
|
|
109
|
+
const a = I(t);
|
|
110
|
+
return o + a;
|
|
111
|
+
}
|
|
112
|
+
return e ? Math.min(r, o) : o;
|
|
113
|
+
}, _ = (t, e, r) => {
|
|
114
|
+
if (!t.adjustForMinimumWage) return 0;
|
|
115
|
+
const n = A(
|
|
116
|
+
t.minimumWages || [],
|
|
117
|
+
r
|
|
118
|
+
);
|
|
119
|
+
if (!n)
|
|
120
|
+
return 0;
|
|
121
|
+
const o = e.hourlyCompensations?.reduce(
|
|
122
|
+
(f, l) => f + parseFloat(l.hours || "0"),
|
|
123
|
+
0
|
|
124
|
+
) || 0, a = g(t), u = (parseFloat(n.wage || "0") - a) * o, s = L(e.fixedCompensations || []);
|
|
125
|
+
return Math.max(0, u - s);
|
|
126
|
+
}, J = (t, e, r, n, o, a, u) => {
|
|
127
|
+
if (!u && n)
|
|
128
|
+
return H(e, r) * (o - a);
|
|
129
|
+
if (!t.hourlyCompensations || !e.jobs)
|
|
130
|
+
return 0;
|
|
131
|
+
const s = t.hourlyCompensations.reduce((i, c) => {
|
|
132
|
+
const p = parseFloat(c.hours || "0"), d = k(e, c.jobUuid || "", r);
|
|
133
|
+
return i + p * d;
|
|
134
|
+
}, 0), f = t.hourlyCompensations.reduce((i, c) => i + parseFloat(c.hours || "0"), 0);
|
|
135
|
+
if (f === 0) return s;
|
|
136
|
+
const l = E(s / f), m = t.hourlyCompensations.filter((i) => !P(i.name || "")).reduce((i, c) => {
|
|
137
|
+
const p = parseFloat(c.hours || "0"), d = c.compensationMultiplier || 1;
|
|
138
|
+
return i + p * l * (d - 1);
|
|
139
|
+
}, 0);
|
|
140
|
+
return s + m;
|
|
141
|
+
}, G = (t, e, r, n, o, a) => {
|
|
142
|
+
const u = D(
|
|
143
|
+
t,
|
|
144
|
+
n,
|
|
145
|
+
o,
|
|
146
|
+
a
|
|
147
|
+
), s = H(e, r);
|
|
148
|
+
return u * s;
|
|
149
|
+
}, N = (t, e, r) => {
|
|
150
|
+
if (!e) return !1;
|
|
151
|
+
const n = t.hourlyCompensations?.find(
|
|
152
|
+
(a) => P(a.name || "")
|
|
153
|
+
);
|
|
154
|
+
return n ? parseFloat(n.hours || "0") === r : !1;
|
|
155
|
+
}, X = (t, e, r, n, o = !1) => {
|
|
156
|
+
if (t.excluded)
|
|
157
|
+
return 0;
|
|
158
|
+
const a = r ? new Date(r) : /* @__PURE__ */ new Date(), u = e.jobs?.find((F) => F.primary) || e.jobs?.[0];
|
|
159
|
+
if (!u?.compensations)
|
|
160
|
+
return 0;
|
|
161
|
+
const s = y(
|
|
162
|
+
u.compensations,
|
|
163
|
+
a
|
|
164
|
+
);
|
|
165
|
+
if (!s)
|
|
166
|
+
return 0;
|
|
167
|
+
const f = O(s), l = n ? W(n) : 0, m = N(
|
|
168
|
+
t,
|
|
169
|
+
f,
|
|
170
|
+
l
|
|
171
|
+
), i = D(
|
|
172
|
+
t,
|
|
173
|
+
m,
|
|
174
|
+
l,
|
|
175
|
+
o
|
|
176
|
+
), c = J(
|
|
177
|
+
t,
|
|
178
|
+
e,
|
|
179
|
+
a,
|
|
180
|
+
m,
|
|
181
|
+
l,
|
|
182
|
+
i,
|
|
183
|
+
o
|
|
184
|
+
), p = U(t), d = G(
|
|
185
|
+
t,
|
|
186
|
+
e,
|
|
187
|
+
a,
|
|
188
|
+
m,
|
|
189
|
+
l,
|
|
190
|
+
o
|
|
191
|
+
), R = _(
|
|
192
|
+
s,
|
|
193
|
+
t,
|
|
194
|
+
a
|
|
195
|
+
), w = c + p + d + R;
|
|
196
|
+
return h(w);
|
|
197
|
+
};
|
|
198
|
+
export {
|
|
199
|
+
X as calculateGrossPay,
|
|
200
|
+
S as formatEmployeePayRate,
|
|
201
|
+
V as formatHoursDisplay,
|
|
202
|
+
U as getAdditionalEarnings,
|
|
203
|
+
B as getRegularHours,
|
|
204
|
+
K as getReimbursements,
|
|
205
|
+
x as getTotalPtoHours,
|
|
206
|
+
z as useFormatEmployeePayRate
|
|
207
|
+
};
|
|
208
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../src/components/Payroll/helpers.ts"],"sourcesContent":["import type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type {\n EmployeeCompensations,\n PayrollShowFixedCompensations,\n} from '@gusto/embedded-api/models/components/payrollshow'\nimport { useCallback } from 'react'\nimport type { TFunction } from 'i18next'\nimport { useTranslation } from 'react-i18next'\nimport type { PayScheduleObject } from '@gusto/embedded-api/models/components/payscheduleobject'\nimport type { Compensation, MinimumWages } from '@gusto/embedded-api/models/components/compensation'\nimport { formatPayRate } from '@/helpers/formattedStrings'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\n\nconst REGULAR_HOURS_NAME = 'regular hours'\n\nconst roundToSixDecimals = (value: number): number => {\n return Math.round(value * 1_000_000) / 1_000_000\n}\n\nconst roundToTwoDecimals = (value: number): number => {\n return Math.round(value * 100) / 100\n}\n\nconst isRegularHours = (compensationName: string): boolean => {\n return compensationName.toLowerCase() === REGULAR_HOURS_NAME\n}\n\nconst PAY_PERIOD_HOURS_MAPPINGS: Record<string, number> = {\n Daily: 8.0,\n 'Every week': 40.0,\n 'Every other week': 80.0,\n 'Twice per month': 86.666667,\n Monthly: 173.333333,\n Quarterly: 520.0,\n Semiannually: 1040.0,\n Annually: 2080.0,\n}\n\nexport const formatEmployeePayRate = ({\n employee,\n t,\n locale = 'en-US',\n}: {\n employee?: Employee\n t: TFunction\n locale?: string\n}) => {\n if (!employee?.jobs) {\n return null\n }\n\n const primaryJob = employee.jobs.find(job => job.primary) || employee.jobs[0]\n if (!primaryJob?.compensations) {\n return null\n }\n\n const jobCompensation = primaryJob.compensations[0]\n if (!jobCompensation) {\n return null\n }\n if (!jobCompensation.rate || parseFloat(jobCompensation.rate) === 0) {\n return null\n }\n\n const rate = parseFloat(jobCompensation.rate)\n const paymentUnit = jobCompensation.paymentUnit || 'Hour'\n\n return formatPayRate({ rate, paymentUnit, t, locale })\n}\n\nexport const useFormatEmployeePayRate = () => {\n const { t } = useTranslation('common')\n const { locale } = useLocale()\n\n return useCallback(\n (employee?: Employee) => {\n return formatEmployeePayRate({ employee, t, locale })\n },\n [t, locale],\n )\n}\n\nexport const getEmployeePayRateInfo = (employee: Employee | undefined) => {\n if (!employee?.jobs) {\n return null\n }\n\n const primaryJob = employee.jobs.find(job => job.primary) || employee.jobs[0]\n if (!primaryJob?.compensations) {\n return null\n }\n\n const jobCompensation = primaryJob.compensations[0]\n if (!jobCompensation) {\n return null\n }\n if (!jobCompensation.rate || parseFloat(jobCompensation.rate) === 0) {\n return null\n }\n\n const rate = parseFloat(jobCompensation.rate)\n const paymentUnit = jobCompensation.paymentUnit || 'Hour'\n\n return { rate, paymentUnit }\n}\n\nexport const getRegularHours = (compensation: EmployeeCompensations) => {\n if (!compensation.hourlyCompensations) return 0\n\n return compensation.hourlyCompensations\n .filter(hourlyCompensation => hourlyCompensation.name?.toLowerCase() === 'regular hours')\n .reduce((sum, hourlyCompensation) => sum + parseFloat(hourlyCompensation.hours || '0'), 0)\n}\n\nexport const getTotalPtoHours = (compensation: EmployeeCompensations) => {\n if (!compensation.paidTimeOff) {\n return 0\n }\n return compensation.paidTimeOff.reduce((sum, pto) => sum + parseFloat(pto.hours || '0'), 0)\n}\n\nexport const getAdditionalEarnings = (compensation: EmployeeCompensations) => {\n if (!compensation.fixedCompensations) {\n return 0\n }\n\n return compensation.fixedCompensations\n .filter(fixedCompensation => {\n const name = fixedCompensation.name?.toLowerCase() || ''\n const amount = parseFloat(fixedCompensation.amount || '0')\n return name !== 'reimbursement' && name !== 'minimum wage adjustment' && amount > 0\n })\n .reduce((sum, fixedCompensation) => sum + parseFloat(fixedCompensation.amount || '0'), 0)\n}\n\nexport const getReimbursements = (compensation: EmployeeCompensations) => {\n if (!compensation.fixedCompensations) {\n return 0\n }\n\n const reimbursementComp = compensation.fixedCompensations.find(\n fixedCompensation => fixedCompensation.name?.toLowerCase() === 'reimbursement',\n )\n return reimbursementComp ? parseFloat(reimbursementComp.amount || '0') : 0\n}\n\nexport const formatHoursDisplay = (hours: number): string => {\n const rounded = roundToTwoDecimals(hours)\n\n if (rounded % 1 === 0) {\n return `${rounded}.0`\n }\n\n return rounded.toString()\n}\n\nconst getHoursInPayPeriod = (paySchedule: PayScheduleObject): number => {\n if (!paySchedule.frequency) {\n return 0\n }\n\n return PAY_PERIOD_HOURS_MAPPINGS[paySchedule.frequency] || 0\n}\n\nconst getEffectiveCompensation = (\n compensations: Compensation[],\n effectiveDate: Date,\n): Compensation | null => {\n if (!compensations.length) return null\n\n const sorted = [...compensations].sort(\n (a, b) =>\n (a.effectiveDate ? new Date(a.effectiveDate).getTime() : 0) -\n (b.effectiveDate ? new Date(b.effectiveDate).getTime() : 0),\n )\n\n for (let i = sorted.length - 1; i >= 0; i--) {\n const currentDateString = sorted[i]?.effectiveDate\n const currentDate = currentDateString ? new Date(currentDateString) : null\n if (currentDate && currentDate <= effectiveDate) {\n return sorted[i] || null\n }\n }\n\n return sorted[0] || null\n}\n\nconst getEffectiveMinimumWage = (\n minimumWages: MinimumWages[],\n effectiveDate: Date,\n): MinimumWages | null => {\n if (!minimumWages.length) return null\n\n const sorted = [...minimumWages].sort(\n (a, b) =>\n (a.effectiveDate ? new Date(a.effectiveDate).getTime() : 0) -\n (b.effectiveDate ? new Date(b.effectiveDate).getTime() : 0),\n )\n\n for (let i = sorted.length - 1; i >= 0; i--) {\n const currentDateString = sorted[i]?.effectiveDate\n const currentDate = currentDateString ? new Date(currentDateString) : null\n if (currentDate && currentDate <= effectiveDate) {\n return sorted[i] || null\n }\n }\n\n return sorted[0] || null\n}\n\nconst isSalaried = (compensation: Compensation): boolean => {\n return compensation.flsaStatus === 'Exempt' || compensation.flsaStatus === 'Salaried Nonexempt'\n}\n\nconst getTotalTipCompensations = (fixedCompensations: PayrollShowFixedCompensations[]): number => {\n if (!fixedCompensations.length) return 0\n\n return fixedCompensations\n .filter(fixedCompensation => {\n const name = fixedCompensation.name?.toLowerCase()\n const amount = parseFloat(fixedCompensation.amount || '0')\n return (name === 'paycheck tips' || name === 'cash tips') && amount > 0\n })\n .reduce((sum, fixedCompensation) => sum + parseFloat(fixedCompensation.amount || '0'), 0)\n}\n\nconst calculateHourlyRate = (compensation: Compensation): number => {\n const rate = parseFloat(compensation.rate || '0')\n const paymentUnit = compensation.paymentUnit || 'Hour'\n\n switch (paymentUnit) {\n case 'Hour':\n return rate\n case 'Year':\n return rate / 2080 // 52 weeks * 40 hours\n case 'Month':\n return rate / 173.333333\n case 'Week':\n return rate / 40\n case 'Paycheck':\n return 0 // Paycheck rate is 0 for hourly calculation\n default:\n return rate\n }\n}\n\nconst getHourlyRateForJob = (employee: Employee, jobUuid: string, effectiveDate: Date): number => {\n const job = employee.jobs?.find(j => j.uuid === jobUuid)\n if (!job?.compensations) {\n return 0\n }\n\n const compensation = getEffectiveCompensation(job.compensations, effectiveDate)\n return compensation ? calculateHourlyRate(compensation) : 0\n}\n\nconst getPrimaryHourlyRate = (employee: Employee, effectiveDate: Date): number => {\n const primaryJob = employee.jobs?.find(job => job.primary) || employee.jobs?.[0]\n if (!primaryJob?.compensations) {\n return 0\n }\n\n const compensation = getEffectiveCompensation(primaryJob.compensations, effectiveDate)\n return compensation ? calculateHourlyRate(compensation) : 0\n}\n\nconst getTotalOutstandingPtoHours = (compensation: EmployeeCompensations): number => {\n if (!compensation.paidTimeOff) {\n return 0\n }\n\n return compensation.paidTimeOff.reduce(\n (sum, paidTimeOff) => sum + parseFloat(paidTimeOff.finalPayoutUnusedHoursInput || '0'),\n 0,\n )\n}\n\nconst getPtoHours = (\n compensation: EmployeeCompensations,\n isSalariedWithExpectedHours: boolean,\n hoursInPayPeriod: number,\n offCycle: boolean,\n): number => {\n const regularPtoHours = getTotalPtoHours(compensation)\n\n if (offCycle) {\n const outstandingPtoHours = getTotalOutstandingPtoHours(compensation)\n return regularPtoHours + outstandingPtoHours\n }\n\n if (isSalariedWithExpectedHours) {\n return Math.min(hoursInPayPeriod, regularPtoHours)\n }\n\n return regularPtoHours\n}\n\nconst calculateMinimumWageAdjustment = (\n primaryCompensation: Compensation,\n compensation: EmployeeCompensations,\n effectiveDate: Date,\n): number => {\n if (!primaryCompensation.adjustForMinimumWage) return 0\n\n const effectiveMinWage = getEffectiveMinimumWage(\n primaryCompensation.minimumWages || [],\n effectiveDate,\n )\n if (!effectiveMinWage) {\n return 0\n }\n\n const totalHours =\n compensation.hourlyCompensations?.reduce(\n (sum, hourlyCompensation) => sum + parseFloat(hourlyCompensation.hours || '0'),\n 0,\n ) || 0\n\n const hourlyRate = calculateHourlyRate(primaryCompensation)\n\n const totalTipCredit = (parseFloat(effectiveMinWage.wage || '0') - hourlyRate) * totalHours\n const totalTips = getTotalTipCompensations(compensation.fixedCompensations || [])\n\n return Math.max(0, totalTipCredit - totalTips)\n}\n\nconst calculateRegularPlusOvertimePay = (\n compensation: EmployeeCompensations,\n employee: Employee,\n effectiveDate: Date,\n isSalariedWithExpectedHours: boolean,\n hoursInPayPeriod: number,\n ptoHours: number,\n isOffCycle: boolean,\n): number => {\n if (!isOffCycle && isSalariedWithExpectedHours) {\n const primaryHourlyRate = getPrimaryHourlyRate(employee, effectiveDate)\n return primaryHourlyRate * (hoursInPayPeriod - ptoHours)\n }\n\n if (!compensation.hourlyCompensations || !employee.jobs) {\n return 0\n }\n\n const regularRatePay = compensation.hourlyCompensations.reduce((sum, hc) => {\n const hours = parseFloat(hc.hours || '0')\n const hourlyRate = getHourlyRateForJob(employee, hc.jobUuid || '', effectiveDate)\n return sum + hours * hourlyRate\n }, 0)\n\n const totalHours = compensation.hourlyCompensations.reduce((sum, hc) => {\n return sum + parseFloat(hc.hours || '0')\n }, 0)\n\n if (totalHours === 0) return regularRatePay\n\n const overtimeWeightedRate = roundToSixDecimals(regularRatePay / totalHours)\n\n // Calculate overtime pay for non-regular hours\n const overtimePay = compensation.hourlyCompensations\n .filter(hc => !isRegularHours(hc.name || ''))\n .reduce((sum, hc) => {\n const hours = parseFloat(hc.hours || '0')\n const multiplier = hc.compensationMultiplier || 1\n return sum + hours * overtimeWeightedRate * (multiplier - 1)\n }, 0)\n\n return regularRatePay + overtimePay\n}\n\nconst calculatePtoPay = (\n compensation: EmployeeCompensations,\n employee: Employee,\n effectiveDate: Date,\n isSalariedWithExpectedHours: boolean,\n hoursInPayPeriod: number,\n offCycle: boolean,\n): number => {\n const ptoHours = getPtoHours(\n compensation,\n isSalariedWithExpectedHours,\n hoursInPayPeriod,\n offCycle,\n )\n const primaryHourlyRate = getPrimaryHourlyRate(employee, effectiveDate)\n return ptoHours * primaryHourlyRate\n}\n\nconst isSalariedWithPayPeriodExpectedHours = (\n compensation: EmployeeCompensations,\n isSalaried: boolean,\n hoursInPayPeriod: number,\n): boolean => {\n if (!isSalaried) return false\n\n const regularHourlyCompensation = compensation.hourlyCompensations?.find(hourlyCompensation =>\n isRegularHours(hourlyCompensation.name || ''),\n )\n\n if (!regularHourlyCompensation) return false\n\n const regularHours = parseFloat(regularHourlyCompensation.hours || '0')\n return regularHours === hoursInPayPeriod\n}\n\nexport const calculateGrossPay = (\n compensation: EmployeeCompensations,\n employee: Employee,\n compensationEffectiveDateString?: string,\n paySchedule?: PayScheduleObject,\n isOffCycle: boolean = false,\n): number => {\n if (compensation.excluded) {\n return 0\n }\n\n const compensationEffectiveDate = compensationEffectiveDateString\n ? new Date(compensationEffectiveDateString)\n : new Date()\n\n const primaryJob = employee.jobs?.find(job => job.primary) || employee.jobs?.[0]\n if (!primaryJob?.compensations) {\n return 0\n }\n\n const primaryCompensation = getEffectiveCompensation(\n primaryJob.compensations,\n compensationEffectiveDate,\n )\n\n if (!primaryCompensation) {\n return 0\n }\n\n const salaried = isSalaried(primaryCompensation)\n const hoursInPayPeriod = paySchedule ? getHoursInPayPeriod(paySchedule) : 0\n\n const isSalariedWithExpectedHours = isSalariedWithPayPeriodExpectedHours(\n compensation,\n salaried,\n hoursInPayPeriod,\n )\n\n const ptoHours = getPtoHours(\n compensation,\n isSalariedWithExpectedHours,\n hoursInPayPeriod,\n isOffCycle,\n )\n\n const regularPlusOvertimePay = calculateRegularPlusOvertimePay(\n compensation,\n employee,\n compensationEffectiveDate,\n isSalariedWithExpectedHours,\n hoursInPayPeriod,\n ptoHours,\n isOffCycle,\n )\n\n const fixedPay = getAdditionalEarnings(compensation)\n const ptoPay = calculatePtoPay(\n compensation,\n employee,\n compensationEffectiveDate,\n isSalariedWithExpectedHours,\n hoursInPayPeriod,\n isOffCycle,\n )\n const minimumWageAdjustment = calculateMinimumWageAdjustment(\n primaryCompensation,\n compensation,\n compensationEffectiveDate,\n )\n\n const total = regularPlusOvertimePay + fixedPay + ptoPay + minimumWageAdjustment\n return roundToTwoDecimals(total)\n}\n"],"names":["REGULAR_HOURS_NAME","roundToSixDecimals","value","roundToTwoDecimals","isRegularHours","compensationName","PAY_PERIOD_HOURS_MAPPINGS","formatEmployeePayRate","employee","t","locale","primaryJob","job","jobCompensation","rate","paymentUnit","formatPayRate","useFormatEmployeePayRate","useTranslation","useLocale","useCallback","getRegularHours","compensation","hourlyCompensation","sum","getTotalPtoHours","pto","getAdditionalEarnings","fixedCompensation","name","amount","getReimbursements","reimbursementComp","formatHoursDisplay","hours","rounded","getHoursInPayPeriod","paySchedule","getEffectiveCompensation","compensations","effectiveDate","sorted","a","b","i","currentDateString","currentDate","getEffectiveMinimumWage","minimumWages","isSalaried","getTotalTipCompensations","fixedCompensations","calculateHourlyRate","getHourlyRateForJob","jobUuid","j","getPrimaryHourlyRate","getTotalOutstandingPtoHours","paidTimeOff","getPtoHours","isSalariedWithExpectedHours","hoursInPayPeriod","offCycle","regularPtoHours","outstandingPtoHours","calculateMinimumWageAdjustment","primaryCompensation","effectiveMinWage","totalHours","hourlyRate","totalTipCredit","totalTips","calculateRegularPlusOvertimePay","ptoHours","isOffCycle","regularRatePay","hc","overtimeWeightedRate","overtimePay","multiplier","calculatePtoPay","primaryHourlyRate","isSalariedWithPayPeriodExpectedHours","regularHourlyCompensation","calculateGrossPay","compensationEffectiveDateString","compensationEffectiveDate","salaried","regularPlusOvertimePay","fixedPay","ptoPay","minimumWageAdjustment","total"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
-
import { QueryClient as p, QueryClientProvider as E } from "
|
|
3
|
-
import { GustoEmbeddedProvider as H } from "
|
|
4
|
-
import { GustoEmbeddedCore as b } from "
|
|
5
|
-
import { SDKHooks as R } from "
|
|
2
|
+
import { QueryClient as p, QueryClientProvider as E } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@tanstack/react-query/build/modern/index.js";
|
|
3
|
+
import { GustoEmbeddedProvider as H } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@gusto/embedded-api/esm/react-query/_context.js";
|
|
4
|
+
import { GustoEmbeddedCore as b } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@gusto/embedded-api/esm/core.js";
|
|
5
|
+
import { SDKHooks as R } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@gusto/embedded-api/esm/hooks/hooks.js";
|
|
6
6
|
import { useMemo as a } from "react";
|
|
7
7
|
function Q({ url: i, headers: s, hooks: e, children: u }) {
|
|
8
8
|
const d = a(() => {
|
|
@@ -6,10 +6,13 @@ import { ComponentsProvider as P } from "../ComponentAdapter/ComponentsProvider.
|
|
|
6
6
|
import { ApiProvider as I } from "../ApiProvider/ApiProvider.js";
|
|
7
7
|
import { LoadingIndicatorProvider as x } from "../LoadingIndicatorProvider/LoadingIndicatorProvider.js";
|
|
8
8
|
import { SDKI18next as t } from "./SDKI18next.js";
|
|
9
|
+
import "classnames";
|
|
10
|
+
import "../../shared/constants.js";
|
|
9
11
|
import { InternalError as y } from "../../components/Common/InternalError/InternalError.js";
|
|
10
12
|
import { LocaleProvider as C } from "../LocaleProvider/LocaleProvider.js";
|
|
13
|
+
import "../LocaleProvider/useLocale.js";
|
|
11
14
|
import { ThemeProvider as L } from "../ThemeProvider/ThemeProvider.js";
|
|
12
|
-
const
|
|
15
|
+
const T = (a) => {
|
|
13
16
|
const {
|
|
14
17
|
children: d,
|
|
15
18
|
config: e,
|
|
@@ -17,8 +20,8 @@ const G = (a) => {
|
|
|
17
20
|
lng: n = "en",
|
|
18
21
|
locale: c = "en-US",
|
|
19
22
|
currency: l = "USD",
|
|
20
|
-
theme:
|
|
21
|
-
components:
|
|
23
|
+
theme: p,
|
|
24
|
+
components: s,
|
|
22
25
|
LoaderComponent: f
|
|
23
26
|
} = a;
|
|
24
27
|
if (o)
|
|
@@ -35,9 +38,9 @@ const G = (a) => {
|
|
|
35
38
|
}
|
|
36
39
|
return g(() => {
|
|
37
40
|
(async () => await t.changeLanguage(n))();
|
|
38
|
-
}, [n]), /* @__PURE__ */ r(P, { value:
|
|
41
|
+
}, [n]), /* @__PURE__ */ r(P, { value: s, children: /* @__PURE__ */ r(x, { value: f, children: /* @__PURE__ */ r(h, { FallbackComponent: y, children: /* @__PURE__ */ r(L, { theme: p, children: /* @__PURE__ */ r(C, { locale: c, currency: l, children: /* @__PURE__ */ r(v, { i18n: t, children: /* @__PURE__ */ r(I, { url: e.baseUrl, headers: e.headers, hooks: e.hooks, children: d }) }, n) }) }) }) }) });
|
|
39
42
|
};
|
|
40
43
|
export {
|
|
41
|
-
|
|
44
|
+
T as GustoProviderCustomUIAdapter
|
|
42
45
|
};
|
|
43
46
|
//# 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 { LoadingIndicatorProvider } from '../LoadingIndicatorProvider/LoadingIndicatorProvider'\nimport type { LoadingIndicatorContextProps } from '../LoadingIndicatorProvider/useLoadingIndicator'\nimport { SDKI18next } from './SDKI18next'\nimport { InternalError } from '@/components/Common'\nimport { LocaleProvider } from '@/contexts/LocaleProvider'\nimport { ThemeProvider } from '@/contexts/ThemeProvider'\nimport type { GustoSDKTheme } from '@/contexts/ThemeProvider/theme'\nimport type { ResourceDictionary, SupportedLanguages } from '@/types/Helpers'\nimport type { SDKHooks } from '@/types/hooks'\n\nexport interface APIConfig {\n baseUrl: string\n headers?: HeadersInit\n hooks?: SDKHooks\n}\n\nexport interface GustoProviderProps {\n config: APIConfig\n dictionary?: ResourceDictionary\n lng?: string\n locale?: string\n currency?: string\n theme?: GustoSDKTheme\n queryClient?: QueryClient\n components: ComponentsContextType\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\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 LoaderComponent,\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 <LoadingIndicatorProvider value={LoaderComponent}>\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} hooks={config.hooks}>\n {children}\n </ApiProvider>\n </I18nextProvider>\n </LocaleProvider>\n </ThemeProvider>\n </ErrorBoundary>\n </LoadingIndicatorProvider>\n </ComponentsProvider>\n )\n}\n\nexport { GustoProviderCustomUIAdapter }\n"],"names":["GustoProviderCustomUIAdapter","props","children","config","dictionary","lng","locale","currency","theme","components","LoaderComponent","language","lang","ns","SDKI18next","useEffect","ComponentsProvider","jsx","LoadingIndicatorProvider","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 { LoadingIndicatorProvider } from '../LoadingIndicatorProvider/LoadingIndicatorProvider'\nimport type { LoadingIndicatorContextProps } from '../LoadingIndicatorProvider/useLoadingIndicator'\nimport { SDKI18next } from './SDKI18next'\nimport { InternalError } from '@/components/Common'\nimport { LocaleProvider } from '@/contexts/LocaleProvider'\nimport { ThemeProvider } from '@/contexts/ThemeProvider'\nimport type { GustoSDKTheme } from '@/contexts/ThemeProvider/theme'\nimport type { ResourceDictionary, SupportedLanguages } from '@/types/Helpers'\nimport type { SDKHooks } from '@/types/hooks'\n\nexport interface APIConfig {\n baseUrl: string\n headers?: HeadersInit\n hooks?: SDKHooks\n}\n\nexport interface GustoProviderProps {\n config: APIConfig\n dictionary?: ResourceDictionary\n lng?: string\n locale?: string\n currency?: string\n theme?: GustoSDKTheme\n queryClient?: QueryClient\n components: ComponentsContextType\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\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 LoaderComponent,\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 <LoadingIndicatorProvider value={LoaderComponent}>\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} hooks={config.hooks}>\n {children}\n </ApiProvider>\n </I18nextProvider>\n </LocaleProvider>\n </ThemeProvider>\n </ErrorBoundary>\n </LoadingIndicatorProvider>\n </ComponentsProvider>\n )\n}\n\nexport { GustoProviderCustomUIAdapter }\n"],"names":["GustoProviderCustomUIAdapter","props","children","config","dictionary","lng","locale","currency","theme","components","LoaderComponent","language","lang","ns","SDKI18next","useEffect","ComponentsProvider","jsx","LoadingIndicatorProvider","ErrorBoundary","InternalError","ThemeProvider","LocaleProvider","I18nextProvider","ApiProvider"],"mappings":";;;;;;;;;;;;;;AA2CA,MAAMA,IAA4E,CAAAC,MAAS;AACzF,QAAM;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,IACA,iBAAAC;AAAA,EAAA,IACET;AAGJ,MAAIG;AACF,eAAWO,KAAYP,GAAY;AACjC,YAAMQ,IAAOD;AACb,iBAAWE,KAAMT,EAAWQ,CAAI;AAE9B,QAAAE,EAAW;AAAA,UACTF;AAAA,UACAC;AAAA,UACCT,EAAWQ,CAAI,EAA8BC,CAAE;AAAA,UAChD;AAAA,UACA;AAAA,QAAA;AAAA,IAGN;AAIF,SAAAE,EAAU,MAAM;AACd,KAAM,YACJ,MAAMD,EAAW,eAAeT,CAAG;AAAA,EAEvC,GAAG,CAACA,CAAG,CAAC,qBAGLW,GAAA,EAAmB,OAAOP,GACzB,UAAA,gBAAAQ,EAACC,GAAA,EAAyB,OAAOR,GAC/B,UAAA,gBAAAO,EAACE,GAAA,EAAc,mBAAmBC,GAChC,UAAA,gBAAAH,EAACI,GAAA,EAAc,OAAAb,GACb,UAAA,gBAAAS,EAACK,GAAA,EAAe,QAAAhB,GAAgB,UAAAC,GAC9B,UAAA,gBAAAU,EAACM,GAAA,EAAgB,MAAMT,GACrB,UAAA,gBAAAG,EAACO,GAAA,EAAY,KAAKrB,EAAO,SAAS,SAASA,EAAO,SAAS,OAAOA,EAAO,OACtE,UAAAD,GACH,EAAA,GAHsCG,CAIxC,GACF,EAAA,CACF,GACF,GACF,EAAA,CACF;AAEJ;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
-
import { useRef as c, useEffect as
|
|
3
|
-
import { useTranslation as
|
|
2
|
+
import { useRef as c, useEffect as a } from "react";
|
|
3
|
+
import { useTranslation as i } from "react-i18next";
|
|
4
4
|
import { ThemeContext as d } from "./useTheme.js";
|
|
5
5
|
import { mergePartnerTheme as l } from "./theme.js";
|
|
6
6
|
/* empty css */
|
|
@@ -8,13 +8,13 @@ const D = ({
|
|
|
8
8
|
theme: n = {},
|
|
9
9
|
children: t
|
|
10
10
|
}) => {
|
|
11
|
-
const e = c(null), { t: r } =
|
|
12
|
-
return
|
|
13
|
-
const
|
|
11
|
+
const e = c(null), { t: r } = i(), o = c(null);
|
|
12
|
+
return a(() => {
|
|
13
|
+
const u = l(n);
|
|
14
14
|
e.current && e.current.remove(), e.current = document.createElement("style"), e.current.setAttribute("data-testid", "GSDK"), e.current.appendChild(
|
|
15
15
|
document.createTextNode(
|
|
16
16
|
`.GSDK{
|
|
17
|
-
${m(
|
|
17
|
+
${m(u).join(`
|
|
18
18
|
`)}
|
|
19
19
|
}`
|
|
20
20
|
)
|
|
@@ -24,7 +24,7 @@ ${m(i).join(`
|
|
|
24
24
|
}, m = (n, t) => {
|
|
25
25
|
const e = [];
|
|
26
26
|
for (const [r, o] of Object.entries(n))
|
|
27
|
-
typeof o == "object" ? e.push(...m(o, t ? t + "-" + r : r)) : e.push(`--g-${t ? t + "-" + r : r}: ${
|
|
27
|
+
typeof o == "object" ? e.push(...m(o, t ? t + "-" + r : r)) : e.push(`--g-${t ? t + "-" + r : r}: ${o};`);
|
|
28
28
|
return e;
|
|
29
29
|
};
|
|
30
30
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sources":["../../../src/contexts/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import type React from 'react'\nimport { useEffect, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { ThemeContext } from './useTheme'\nimport { mergePartnerTheme, type GustoSDKTheme } from './theme'\nimport '@/styles/sdk.scss'\n\nexport interface ThemeProviderProps {\n theme?: GustoSDKTheme\n children?: React.ReactNode\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme: partnerThemeOverrides = {},\n children,\n}) => {\n const GThemeVariables = useRef<HTMLStyleElement | null>(null)\n const { t } = useTranslation()\n const containerRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n const gustoSDKThemeWithOverrides = mergePartnerTheme(partnerThemeOverrides)\n\n if (GThemeVariables.current) {\n GThemeVariables.current.remove()\n }\n GThemeVariables.current = document.createElement('style')\n GThemeVariables.current.setAttribute('data-testid', 'GSDK')\n GThemeVariables.current.appendChild(\n document.createTextNode(\n `.GSDK{\\n${parseThemeToCSS(gustoSDKThemeWithOverrides).join('\\n')}\\n}`,\n ),\n )\n document.head.appendChild(GThemeVariables.current)\n }, [partnerThemeOverrides, t])\n\n return (\n // @ts-expect-error HACK fix mismatch where containerRef allows null\n <ThemeContext.Provider value={{ container: containerRef }}>\n <article className=\"GSDK\" data-testid=\"GSDK\" ref={containerRef}>\n {children}\n </article>\n </ThemeContext.Provider>\n )\n}\n\n/**\n * Recursive flattening of the theme object into css variable format\n */\nconst parseThemeToCSS = (theme: GustoSDKTheme, prefix?: string): string[] => {\n const cssProps: string[] = []\n for (const [key, value] of Object.entries(theme)) {\n if (typeof value === 'object') {\n cssProps.push(...parseThemeToCSS(value, prefix ? prefix + '-' + key : key))\n } else {\n cssProps.push(`--g-${prefix ? prefix + '-' + key : key}: ${
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","sources":["../../../src/contexts/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import type React from 'react'\nimport { useEffect, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { ThemeContext } from './useTheme'\nimport { mergePartnerTheme, type GustoSDKTheme } from './theme'\nimport '@/styles/sdk.scss'\n\nexport interface ThemeProviderProps {\n theme?: GustoSDKTheme\n children?: React.ReactNode\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme: partnerThemeOverrides = {},\n children,\n}) => {\n const GThemeVariables = useRef<HTMLStyleElement | null>(null)\n const { t } = useTranslation()\n const containerRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n const gustoSDKThemeWithOverrides = mergePartnerTheme(partnerThemeOverrides)\n\n if (GThemeVariables.current) {\n GThemeVariables.current.remove()\n }\n GThemeVariables.current = document.createElement('style')\n GThemeVariables.current.setAttribute('data-testid', 'GSDK')\n GThemeVariables.current.appendChild(\n document.createTextNode(\n `.GSDK{\\n${parseThemeToCSS(gustoSDKThemeWithOverrides).join('\\n')}\\n}`,\n ),\n )\n document.head.appendChild(GThemeVariables.current)\n }, [partnerThemeOverrides, t])\n\n return (\n // @ts-expect-error HACK fix mismatch where containerRef allows null\n <ThemeContext.Provider value={{ container: containerRef }}>\n <article className=\"GSDK\" data-testid=\"GSDK\" ref={containerRef}>\n {children}\n </article>\n </ThemeContext.Provider>\n )\n}\n\n/**\n * Recursive flattening of the theme object into css variable format\n */\nconst parseThemeToCSS = (theme: GustoSDKTheme, prefix?: string): string[] => {\n const cssProps: string[] = []\n for (const [key, value] of Object.entries(theme)) {\n if (typeof value === 'object') {\n cssProps.push(...parseThemeToCSS(value, prefix ? prefix + '-' + key : key))\n } else {\n cssProps.push(`--g-${prefix ? prefix + '-' + key : key}: ${value};`)\n }\n }\n return cssProps\n}\n"],"names":["ThemeProvider","partnerThemeOverrides","children","GThemeVariables","useRef","t","useTranslation","containerRef","useEffect","gustoSDKThemeWithOverrides","mergePartnerTheme","parseThemeToCSS","ThemeContext","jsx","theme","prefix","cssProps","key","value"],"mappings":";;;;;;AAYO,MAAMA,IAA8C,CAAC;AAAA,EAC1D,OAAOC,IAAwB,CAAA;AAAA,EAC/B,UAAAC;AACF,MAAM;AACJ,QAAMC,IAAkBC,EAAgC,IAAI,GACtD,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAeH,EAAoB,IAAI;AAE7C,SAAAI,EAAU,MAAM;AACd,UAAMC,IAA6BC,EAAkBT,CAAqB;AAE1E,IAAIE,EAAgB,WAClBA,EAAgB,QAAQ,OAAA,GAE1BA,EAAgB,UAAU,SAAS,cAAc,OAAO,GACxDA,EAAgB,QAAQ,aAAa,eAAe,MAAM,GAC1DA,EAAgB,QAAQ;AAAA,MACtB,SAAS;AAAA,QACP;AAAA,EAAWQ,EAAgBF,CAA0B,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA;AAAA,MAAA;AAAA,IACnE,GAEF,SAAS,KAAK,YAAYN,EAAgB,OAAO;AAAA,EACnD,GAAG,CAACF,GAAuBI,CAAC,CAAC;AAAA,oBAI1BO,EAAa,UAAb,EAAsB,OAAO,EAAE,WAAWL,EAAA,GACzC,UAAA,gBAAAM,EAAC,WAAA,EAAQ,WAAU,QAAO,eAAY,QAAO,KAAKN,GAC/C,UAAAL,GACH,EAAA,CACF;AAEJ,GAKMS,IAAkB,CAACG,GAAsBC,MAA8B;AAC3E,QAAMC,IAAqB,CAAA;AAC3B,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAK;AAC7C,IAAI,OAAOI,KAAU,WACnBF,EAAS,KAAK,GAAGL,EAAgBO,GAAOH,IAASA,IAAS,MAAME,IAAMA,CAAG,CAAC,IAE1ED,EAAS,KAAK,OAAOD,IAASA,IAAS,MAAME,IAAMA,CAAG,KAAKC,CAAK,GAAG;AAGvE,SAAOF;AACT;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Location } from '@gusto/embedded-api/models/components/location';
|
|
2
2
|
import { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress';
|
|
3
|
+
import { TFunction } from 'i18next';
|
|
3
4
|
export declare const firstLastName: ({ first_name, last_name, }: {
|
|
4
5
|
first_name?: string | null;
|
|
5
6
|
last_name?: string | null;
|
|
@@ -11,6 +12,14 @@ export declare const currentDateString: () => string;
|
|
|
11
12
|
export declare function isNumberKey({ which, keyCode }: KeyboardEvent): boolean;
|
|
12
13
|
export declare const booleanToString: (value: boolean) => "true" | "false";
|
|
13
14
|
export declare const amountStr: (amount: string, isPercentage: boolean) => string;
|
|
15
|
+
export declare const formatNumberAsCurrency: (amount: number, locale?: string) => string;
|
|
16
|
+
export declare const formatPayRate: ({ rate, paymentUnit, t, locale, }: {
|
|
17
|
+
rate: number;
|
|
18
|
+
paymentUnit: string;
|
|
19
|
+
t: TFunction;
|
|
20
|
+
locale?: string;
|
|
21
|
+
}) => string;
|
|
22
|
+
export declare const useFormatPayRate: () => (rate: number, paymentUnit: string) => string;
|
|
14
23
|
export declare function createMarkup(dirty: string): {
|
|
15
24
|
__html: string;
|
|
16
25
|
};
|
|
@@ -1,22 +1,61 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import m from "dompurify";
|
|
2
|
+
import "react-i18next";
|
|
3
|
+
import "react";
|
|
4
|
+
import "../contexts/LocaleProvider/useLocale.js";
|
|
5
|
+
const c = (t) => t.charAt(0).toLocaleUpperCase() + t.slice(1), h = ({
|
|
3
6
|
first_name: t,
|
|
4
|
-
last_name:
|
|
5
|
-
}) => `${t ?
|
|
6
|
-
const
|
|
7
|
-
return `${
|
|
8
|
-
},
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
last_name: e
|
|
8
|
+
}) => `${t ? c(t) : ""}${e ? n(c(e)) : ""}`, n = (t) => t ? ` ${t}` : "", i = (t) => {
|
|
9
|
+
const e = n(t.street1), r = n(t.street2);
|
|
10
|
+
return `${e},${r}`;
|
|
11
|
+
}, u = (t) => `${n(t.city)}, ${n(t.state)} ${n(t.zip)}`, C = (t) => `${i(t)} ${u(t)}`, p = (t, e) => e ? `${t}%` : `$${t}`, s = (t, e = "en-US") => {
|
|
12
|
+
const r = t.toLocaleString(e, {
|
|
13
|
+
minimumFractionDigits: 2,
|
|
14
|
+
maximumFractionDigits: 2
|
|
15
|
+
});
|
|
16
|
+
return p(r, !1);
|
|
17
|
+
}, S = ({
|
|
18
|
+
rate: t,
|
|
19
|
+
paymentUnit: e,
|
|
20
|
+
t: r,
|
|
21
|
+
locale: a = "en-US"
|
|
22
|
+
}) => {
|
|
23
|
+
const o = s(t, a);
|
|
24
|
+
switch (e) {
|
|
25
|
+
case "Hour":
|
|
26
|
+
return r("payRateFormats.hourly", { amount: o, ns: "common" });
|
|
27
|
+
case "Week":
|
|
28
|
+
return r("payRateFormats.weekly", {
|
|
29
|
+
amount: s(t * 52, a),
|
|
30
|
+
ns: "common"
|
|
31
|
+
});
|
|
32
|
+
case "Month":
|
|
33
|
+
return r("payRateFormats.monthly", {
|
|
34
|
+
amount: s(t * 12, a),
|
|
35
|
+
ns: "common"
|
|
36
|
+
});
|
|
37
|
+
case "Year":
|
|
38
|
+
return r("payRateFormats.yearly", { amount: o, ns: "common" });
|
|
39
|
+
case "Paycheck":
|
|
40
|
+
return r("payRateFormats.paycheck", { amount: o, ns: "common" });
|
|
41
|
+
default:
|
|
42
|
+
return o;
|
|
43
|
+
}
|
|
44
|
+
}, y = { ALLOWED_TAGS: ["a", "b", "strong"], ALLOWED_ATTR: ["href", "target"] };
|
|
45
|
+
function D(t) {
|
|
46
|
+
return t ? { __html: m.sanitize(t, y) } : { __html: "" };
|
|
11
47
|
}
|
|
12
|
-
const
|
|
48
|
+
const F = (t) => t.replace(/\D/g, ""), L = (t) => t.replace(/_([a-z])/g, (e, r) => r.toUpperCase());
|
|
13
49
|
export {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
50
|
+
C as addressInline,
|
|
51
|
+
p as amountStr,
|
|
52
|
+
D as createMarkup,
|
|
53
|
+
h as firstLastName,
|
|
54
|
+
s as formatNumberAsCurrency,
|
|
55
|
+
S as formatPayRate,
|
|
56
|
+
u as getCityStateZip,
|
|
18
57
|
i as getStreet,
|
|
19
|
-
|
|
20
|
-
|
|
58
|
+
F as removeNonDigits,
|
|
59
|
+
L as snakeCaseToCamelCase
|
|
21
60
|
};
|
|
22
61
|
//# sourceMappingURL=formattedStrings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formattedStrings.js","sources":["../../src/helpers/formattedStrings.ts"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\n\nconst capitalize = (word: string) => word.charAt(0).toLocaleUpperCase() + word.slice(1)\n\nexport const firstLastName = ({\n first_name,\n last_name,\n}: {\n first_name?: string | null\n last_name?: string | null\n}) =>\n `${first_name ? capitalize(first_name) : ''}${last_name ? maybeString(capitalize(last_name)) : ''}`\n\nconst maybeString = (str: string | null | undefined) => {\n return str ? ` ${str}` : ''\n}\n\nexport const getStreet = (address: EmployeeAddress | Location) => {\n const street1 = maybeString(address.street1)\n const street2 = maybeString(address.street2)\n\n return `${street1},${street2}`\n}\n\nexport const getCityStateZip = (address: EmployeeAddress | Location) =>\n `${maybeString(address.city)}, ${maybeString(address.state)} ${maybeString(address.zip)}`\n\nexport const addressInline = (address: EmployeeAddress | Location) =>\n `${getStreet(address)} ${getCityStateZip(address)}`\n\nexport const currentDateString = () => {\n const d = new Date()\n const dateString = `${String(d.getFullYear())}-${('0' + String(d.getMonth() + 1)).slice(-2)}-${('0' + String(d.getDate())).slice(-2)}`\n return dateString\n}\n\nexport function isNumberKey({ which, keyCode }: KeyboardEvent) {\n const charCode = which ? which : keyCode\n if (charCode > 31 && charCode != 46 && (charCode < 48 || charCode > 57)) return false\n return true\n}\n\nexport const booleanToString = (value: boolean) => (value ? 'true' : 'false')\n\nexport const amountStr = (amount: string, isPercentage: boolean) =>\n isPercentage ? `${amount}%` : `$${amount}`\n\nconst dompurifyConfig = { ALLOWED_TAGS: ['a', 'b', 'strong'], ALLOWED_ATTR: ['href', 'target'] }\nexport function createMarkup(dirty: string) {\n if (!dirty) return { __html: '' }\n return { __html: DOMPurify.sanitize(dirty, dompurifyConfig) }\n}\n\nexport const removeNonDigits = (value: string): string => {\n return value.replace(/\\D/g, '')\n}\n\nexport const snakeCaseToCamelCase = (s: string) => {\n return s.replace(/_([a-z])/g, (_: string, char: string) => char.toUpperCase())\n}\n\nexport const camelCaseToSnakeCase = (s: string) => {\n return s\n .replace(\n /([a-z0-9])([A-Z])/g,\n (_: string, group1: string, group2: string) => `${group1}_${group2.toLowerCase()}`,\n )\n .replace(\n /([A-Z])([A-Z])(?=[a-z])/g,\n (_: string, group1: string, group2: string) =>\n `${group1.toLowerCase()}_${group2.toLowerCase()}`,\n )\n .toLowerCase()\n}\n"],"names":["capitalize","word","firstLastName","first_name","last_name","maybeString","str","getStreet","address","street1","street2","getCityStateZip","addressInline","dompurifyConfig","createMarkup","dirty","DOMPurify","removeNonDigits","value","snakeCaseToCamelCase","s","_","char"],"mappings":"
|
|
1
|
+
{"version":3,"file":"formattedStrings.js","sources":["../../src/helpers/formattedStrings.ts"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport { type TFunction } from 'i18next'\nimport { useTranslation } from 'react-i18next'\nimport { useCallback } from 'react'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\n\nconst capitalize = (word: string) => word.charAt(0).toLocaleUpperCase() + word.slice(1)\n\nexport const firstLastName = ({\n first_name,\n last_name,\n}: {\n first_name?: string | null\n last_name?: string | null\n}) =>\n `${first_name ? capitalize(first_name) : ''}${last_name ? maybeString(capitalize(last_name)) : ''}`\n\nconst maybeString = (str: string | null | undefined) => {\n return str ? ` ${str}` : ''\n}\n\nexport const getStreet = (address: EmployeeAddress | Location) => {\n const street1 = maybeString(address.street1)\n const street2 = maybeString(address.street2)\n\n return `${street1},${street2}`\n}\n\nexport const getCityStateZip = (address: EmployeeAddress | Location) =>\n `${maybeString(address.city)}, ${maybeString(address.state)} ${maybeString(address.zip)}`\n\nexport const addressInline = (address: EmployeeAddress | Location) =>\n `${getStreet(address)} ${getCityStateZip(address)}`\n\nexport const currentDateString = () => {\n const d = new Date()\n const dateString = `${String(d.getFullYear())}-${('0' + String(d.getMonth() + 1)).slice(-2)}-${('0' + String(d.getDate())).slice(-2)}`\n return dateString\n}\n\nexport function isNumberKey({ which, keyCode }: KeyboardEvent) {\n const charCode = which ? which : keyCode\n if (charCode > 31 && charCode != 46 && (charCode < 48 || charCode > 57)) return false\n return true\n}\n\nexport const booleanToString = (value: boolean) => (value ? 'true' : 'false')\n\nexport const amountStr = (amount: string, isPercentage: boolean) =>\n isPercentage ? `${amount}%` : `$${amount}`\n\nexport const formatNumberAsCurrency = (amount: number, locale: string = 'en-US') => {\n const formattedNumber = amount.toLocaleString(locale, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n return amountStr(formattedNumber, false)\n}\n\nexport const formatPayRate = ({\n rate,\n paymentUnit,\n t,\n locale = 'en-US',\n}: {\n rate: number\n paymentUnit: string\n t: TFunction\n locale?: string\n}) => {\n const amount = formatNumberAsCurrency(rate, locale)\n\n switch (paymentUnit) {\n case 'Hour':\n return t('payRateFormats.hourly', { amount, ns: 'common' })\n case 'Week':\n return t('payRateFormats.weekly', {\n amount: formatNumberAsCurrency(rate * 52, locale),\n ns: 'common',\n })\n case 'Month':\n return t('payRateFormats.monthly', {\n amount: formatNumberAsCurrency(rate * 12, locale),\n ns: 'common',\n })\n case 'Year':\n return t('payRateFormats.yearly', { amount, ns: 'common' })\n case 'Paycheck':\n return t('payRateFormats.paycheck', { amount, ns: 'common' })\n default:\n return amount\n }\n}\n\nexport const useFormatPayRate = () => {\n const { t } = useTranslation('common')\n const { locale } = useLocale()\n\n return useCallback(\n (rate: number, paymentUnit: string) => {\n return formatPayRate({ rate, paymentUnit, t, locale })\n },\n [t, locale],\n )\n}\n\nconst dompurifyConfig = { ALLOWED_TAGS: ['a', 'b', 'strong'], ALLOWED_ATTR: ['href', 'target'] }\nexport function createMarkup(dirty: string) {\n if (!dirty) return { __html: '' }\n return { __html: DOMPurify.sanitize(dirty, dompurifyConfig) }\n}\n\nexport const removeNonDigits = (value: string): string => {\n return value.replace(/\\D/g, '')\n}\n\nexport const snakeCaseToCamelCase = (s: string) => {\n return s.replace(/_([a-z])/g, (_: string, char: string) => char.toUpperCase())\n}\n\nexport const camelCaseToSnakeCase = (s: string) => {\n return s\n .replace(\n /([a-z0-9])([A-Z])/g,\n (_: string, group1: string, group2: string) => `${group1}_${group2.toLowerCase()}`,\n )\n .replace(\n /([A-Z])([A-Z])(?=[a-z])/g,\n (_: string, group1: string, group2: string) =>\n `${group1.toLowerCase()}_${group2.toLowerCase()}`,\n )\n .toLowerCase()\n}\n"],"names":["capitalize","word","firstLastName","first_name","last_name","maybeString","str","getStreet","address","street1","street2","getCityStateZip","addressInline","amountStr","amount","isPercentage","formatNumberAsCurrency","locale","formattedNumber","formatPayRate","rate","paymentUnit","t","dompurifyConfig","createMarkup","dirty","DOMPurify","removeNonDigits","value","snakeCaseToCamelCase","s","_","char"],"mappings":";;;;AAQA,MAAMA,IAAa,CAACC,MAAiBA,EAAK,OAAO,CAAC,EAAE,sBAAsBA,EAAK,MAAM,CAAC,GAEzEC,IAAgB,CAAC;AAAA,EAC5B,YAAAC;AAAA,EACA,WAAAC;AACF,MAIE,GAAGD,IAAaH,EAAWG,CAAU,IAAI,EAAE,GAAGC,IAAYC,EAAYL,EAAWI,CAAS,CAAC,IAAI,EAAE,IAE7FC,IAAc,CAACC,MACZA,IAAM,IAAIA,CAAG,KAAK,IAGdC,IAAY,CAACC,MAAwC;AAChE,QAAMC,IAAUJ,EAAYG,EAAQ,OAAO,GACrCE,IAAUL,EAAYG,EAAQ,OAAO;AAE3C,SAAO,GAAGC,CAAO,IAAIC,CAAO;AAC9B,GAEaC,IAAkB,CAACH,MAC9B,GAAGH,EAAYG,EAAQ,IAAI,CAAC,KAAKH,EAAYG,EAAQ,KAAK,CAAC,IAAIH,EAAYG,EAAQ,GAAG,CAAC,IAE5EI,IAAgB,CAACJ,MAC5B,GAAGD,EAAUC,CAAO,CAAC,IAAIG,EAAgBH,CAAO,CAAC,IAgBtCK,IAAY,CAACC,GAAgBC,MACxCA,IAAe,GAAGD,CAAM,MAAM,IAAIA,CAAM,IAE7BE,IAAyB,CAACF,GAAgBG,IAAiB,YAAY;AAClF,QAAMC,IAAkBJ,EAAO,eAAeG,GAAQ;AAAA,IACpD,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,EAAA,CACxB;AACD,SAAOJ,EAAUK,GAAiB,EAAK;AACzC,GAEaC,IAAgB,CAAC;AAAA,EAC5B,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAAC;AAAA,EACA,QAAAL,IAAS;AACX,MAKM;AACJ,QAAMH,IAASE,EAAuBI,GAAMH,CAAM;AAElD,UAAQI,GAAA;AAAA,IACN,KAAK;AACH,aAAOC,EAAE,yBAAyB,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC5D,KAAK;AACH,aAAOQ,EAAE,yBAAyB;AAAA,QAChC,QAAQN,EAAuBI,IAAO,IAAIH,CAAM;AAAA,QAChD,IAAI;AAAA,MAAA,CACL;AAAA,IACH,KAAK;AACH,aAAOK,EAAE,0BAA0B;AAAA,QACjC,QAAQN,EAAuBI,IAAO,IAAIH,CAAM;AAAA,QAChD,IAAI;AAAA,MAAA,CACL;AAAA,IACH,KAAK;AACH,aAAOK,EAAE,yBAAyB,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC5D,KAAK;AACH,aAAOQ,EAAE,2BAA2B,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC9D;AACE,aAAOA;AAAA,EAAA;AAEb,GAcMS,IAAkB,EAAE,cAAc,CAAC,KAAK,KAAK,QAAQ,GAAG,cAAc,CAAC,QAAQ,QAAQ,EAAA;AACtF,SAASC,EAAaC,GAAe;AAC1C,SAAKA,IACE,EAAE,QAAQC,EAAU,SAASD,GAAOF,CAAe,EAAA,IADvC,EAAE,QAAQ,GAAA;AAE/B;AAEO,MAAMI,IAAkB,CAACC,MACvBA,EAAM,QAAQ,OAAO,EAAE,GAGnBC,IAAuB,CAACC,MAC5BA,EAAE,QAAQ,aAAa,CAACC,GAAWC,MAAiBA,EAAK,aAAa;"}
|