@gusto/embedded-react-sdk 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/_virtual/dynamic-import-helper.js +8 -1
  3. package/dist/_virtual/dynamic-import-helper.js.map +1 -1
  4. package/dist/components/Base/Base.js +4 -4
  5. package/dist/components/Common/FieldDescription/FieldDescription.js +7 -14
  6. package/dist/components/Common/FieldDescription/FieldDescription.js.map +1 -1
  7. package/dist/components/Common/Fields/hooks/useField.d.ts +4 -1
  8. package/dist/components/Common/Fields/hooks/useField.js +31 -24
  9. package/dist/components/Common/Fields/hooks/useField.js.map +1 -1
  10. package/dist/components/Common/SignatureForm/SignatureForm.js +3 -4
  11. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  12. package/dist/components/Common/SignatureForm/SignatureFormActions.js +6 -7
  13. package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
  14. package/dist/components/Common/SignatureForm/SignatureFormFields.js +7 -8
  15. package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
  16. package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +1 -1
  17. package/dist/components/Common/UI/DatePicker/DatePicker.js +1 -1
  18. package/dist/components/Common/UI/Tabs/Tabs.d.ts +7 -0
  19. package/dist/components/Common/UI/Tabs/Tabs.js +25 -0
  20. package/dist/components/Common/UI/Tabs/Tabs.js.map +1 -0
  21. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js +8 -0
  22. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js.map +1 -0
  23. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +51 -0
  24. package/dist/components/Common/UI/Tabs/index.d.ts +3 -0
  25. package/dist/components/Common/hooks/useNumberFormatter.js +1 -1
  26. package/dist/components/Company/AssignSignatory/AssignSignatory.js +6 -7
  27. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  28. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +7 -8
  29. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  30. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +2 -3
  31. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  32. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +8 -3
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  34. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +9 -10
  35. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  36. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +9 -10
  37. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  38. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +8 -3
  39. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  40. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +10 -5
  41. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  42. package/dist/components/Company/BankAccount/BankAccount.js +1 -1
  43. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +2 -2
  44. package/dist/components/Company/BankAccount/BankAccountForm/context.js +8 -3
  45. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  46. package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js +1 -1
  47. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +2 -2
  48. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +10 -11
  49. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  50. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +8 -3
  51. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  52. package/dist/components/Company/DocumentSigner/DocumentSigner.js +1 -1
  53. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +9 -10
  54. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  55. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +8 -3
  56. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  57. package/dist/components/Company/FederalTaxes/FederalTaxes.js +15 -16
  58. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  59. package/dist/components/Company/FederalTaxes/Form.js +1 -1
  60. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +14 -9
  61. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  62. package/dist/components/Company/Industry/Context.js +11 -6
  63. package/dist/components/Company/Industry/Context.js.map +1 -1
  64. package/dist/components/Company/Industry/Industry.js +2 -2
  65. package/dist/components/Company/Locations/LocationForm/Form.js +4 -5
  66. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  67. package/dist/components/Company/Locations/LocationForm/LocationForm.js +13 -14
  68. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  69. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +8 -3
  70. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  71. package/dist/components/Company/Locations/LocationsList/LocationsList.js +7 -8
  72. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  73. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +8 -3
  74. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  75. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +3 -4
  76. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  77. package/dist/components/Company/OnboardingOverview/context.js +8 -3
  78. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  79. package/dist/components/Company/PaySchedule/PaySchedule.js +37 -38
  80. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  81. package/dist/components/Company/PaySchedule/_parts/Edit.js +2 -3
  82. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  83. package/dist/components/Company/PaySchedule/usePaySchedule.js +11 -6
  84. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  85. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +3 -3
  86. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +8 -3
  87. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  88. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +1 -1
  89. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +8 -3
  90. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  91. package/dist/components/Contractor/Address/Address.js +7 -8
  92. package/dist/components/Contractor/Address/Address.js.map +1 -1
  93. package/dist/components/Contractor/Address/Form.js +2 -3
  94. package/dist/components/Contractor/Address/Form.js.map +1 -1
  95. package/dist/components/Contractor/Address/useAddress.js +10 -5
  96. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  97. package/dist/components/Contractor/ContractorList/index.js +1 -1
  98. package/dist/components/Contractor/ContractorList/useContractorList.js +1 -1
  99. package/dist/components/Contractor/NewHireReport/NewHireReport.js +3 -3
  100. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +7 -7
  101. package/dist/components/Contractor/Profile/ContractorProfile.js +1 -1
  102. package/dist/components/Contractor/Profile/useContractorProfile.js +39 -34
  103. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  104. package/dist/components/Contractor/Submit/Submit.js +3 -3
  105. package/dist/components/Employee/Compensation/Compensation.js +10 -10
  106. package/dist/components/Employee/Deductions/Deductions.js +1 -1
  107. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +4 -4
  108. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +2 -2
  109. package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js +1 -1
  110. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +8 -9
  111. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  112. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +8 -3
  113. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  114. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +12 -13
  115. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  116. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +8 -3
  117. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  118. package/dist/components/Employee/EmployeeList/EmployeeList.js +4 -4
  119. package/dist/components/Employee/EmployeeList/useEmployeeList.js +8 -3
  120. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  121. package/dist/components/Employee/FederalTaxes/FederalTaxes.js +3 -3
  122. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +8 -3
  123. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  124. package/dist/components/Employee/Landing/Landing.js +2 -2
  125. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +2 -2
  126. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +8 -8
  127. package/dist/components/Employee/PaymentMethod/Split.js +1 -1
  128. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +14 -9
  129. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  130. package/dist/components/Employee/Profile/HomeAddress.js +4 -5
  131. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  132. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +20 -21
  133. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  134. package/dist/components/Employee/Profile/Profile.js +13 -13
  135. package/dist/components/Employee/Profile/useProfile.js +8 -3
  136. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  137. package/dist/components/Employee/StateTaxes/StateTaxes.js +3 -3
  138. package/dist/components/Employee/StateTaxes/useStateTaxes.js +8 -3
  139. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  140. package/dist/components/Employee/Taxes/Taxes.js +5 -5
  141. package/dist/components/Employee/Taxes/useTaxes.js +8 -3
  142. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  143. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +60 -65
  144. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  145. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +60 -57
  146. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  147. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +5 -2
  148. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +64 -13
  149. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  150. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +18 -2
  151. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +117 -19
  152. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  153. package/dist/components/Payroll/PayrollList/PayrollList.js +3 -3
  154. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +8 -8
  155. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  156. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +1 -1
  157. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +42 -36
  158. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  159. package/dist/components/Payroll/helpers.d.ts +7 -6
  160. package/dist/components/Payroll/helpers.js +44 -43
  161. package/dist/components/Payroll/helpers.js.map +1 -1
  162. package/dist/components/Payroll/usePreparedPayrollData.d.ts +14 -0
  163. package/dist/components/Payroll/usePreparedPayrollData.js +39 -0
  164. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -0
  165. package/dist/contexts/ApiProvider/ApiProvider.js +4 -4
  166. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +28 -26
  167. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  168. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +2 -0
  169. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  170. package/dist/i18n/I18n.js +5 -5
  171. package/dist/i18n/I18n.js.map +1 -1
  172. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +20 -18
  173. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js.map +1 -1
  174. package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +20 -0
  175. package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js.map +1 -0
  176. package/dist/i18n/en/Payroll.PayrollOverview.json.js +18 -0
  177. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -0
  178. package/dist/shared/constants.d.ts +6 -0
  179. package/dist/shared/constants.js +43 -34
  180. package/dist/shared/constants.js.map +1 -1
  181. package/dist/style.css +1 -1
  182. package/dist/types/i18next.d.ts +52 -1
  183. package/package.json +14 -13
@@ -1,7 +1,7 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { usePayrollsListSuspense as n } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@gusto/embedded-api/esm/react-query/payrollsList.js";
3
- import { usePaySchedulesGetAllSuspense as i } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@gusto/embedded-api/esm/react-query/paySchedulesGetAll.js";
4
- import { ProcessingStatuses as m } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@gusto/embedded-api/esm/models/operations/getv1companiescompanyidpayrolls.js";
2
+ import { usePayrollsListSuspense as n } from "@gusto/embedded-api/react-query/payrollsList";
3
+ import { usePaySchedulesGetAllSuspense as i } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
4
+ import { ProcessingStatuses as m } from "@gusto/embedded-api/models/operations/getv1companiescompanyidpayrolls";
5
5
  import { PayrollListPresentation as c } from "./PayrollListPresentation.js";
6
6
  import { BaseComponent as u } from "../../Base/Base.js";
7
7
  import "../../Base/useBase.js";
@@ -1,4 +1,4 @@
1
- import { jsx as r, jsxs as a } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
2
2
  import { useTranslation as u } from "react-i18next";
3
3
  import { Flex as c } from "../../Common/Flex/Flex.js";
4
4
  import "classnames";
@@ -6,8 +6,8 @@ import "../../../shared/constants.js";
6
6
  import { useComponentContext as p } from "../../../contexts/ComponentAdapter/useComponentContext.js";
7
7
  import { useI18n as f } from "../../../i18n/I18n.js";
8
8
  import { DataView as y } from "../../Common/DataView/DataView.js";
9
- const T = ({
10
- onRunPayroll: i,
9
+ const H = ({
10
+ onRunPayroll: a,
11
11
  payrolls: s,
12
12
  paySchedules: n
13
13
  }) => {
@@ -19,8 +19,8 @@ const T = ({
19
19
  {
20
20
  columns: [
21
21
  {
22
- render: ({ payPeriod: e }) => /* @__PURE__ */ a(c, { flexDirection: "column", children: [
23
- /* @__PURE__ */ a(l, { children: [
22
+ render: ({ payPeriod: e }) => /* @__PURE__ */ i(c, { flexDirection: "column", children: [
23
+ /* @__PURE__ */ i(l, { children: [
24
24
  e?.startDate,
25
25
  " - ",
26
26
  e?.endDate
@@ -44,9 +44,9 @@ const T = ({
44
44
  m,
45
45
  {
46
46
  onClick: () => {
47
- i({ payrollId: e });
47
+ a({ payrollId: e });
48
48
  },
49
- title: "Run payroll",
49
+ title: t("runPayrollTitle"),
50
50
  variant: "secondary",
51
51
  children: t("runPayrollTitle")
52
52
  }
@@ -55,6 +55,6 @@ const T = ({
55
55
  );
56
56
  };
57
57
  export {
58
- T as PayrollListPresentation
58
+ H as PayrollListPresentation
59
59
  };
60
60
  //# sourceMappingURL=PayrollListPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollListPresentation.js","sources":["../../../../src/components/Payroll/PayrollList/PayrollListPresentation.tsx"],"sourcesContent":["import type { Payroll } from '@gusto/embedded-api/models/components/payroll'\nimport type { PayScheduleList } from '@gusto/embedded-api/models/components/payschedulelist'\nimport { useTranslation } from 'react-i18next'\nimport { DataView, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\ninterface PayrollListPresentationProps {\n onRunPayroll: ({ payrollId }: { payrollId: NonNullable<Payroll['payrollUuid']> }) => void\n payrolls: Payroll[]\n paySchedules: PayScheduleList[]\n}\nexport const PayrollListPresentation = ({\n onRunPayroll,\n payrolls,\n paySchedules,\n}: PayrollListPresentationProps) => {\n const { Badge, Button, Text } = useComponentContext()\n useI18n('Payroll.PayrollList')\n const { t } = useTranslation('Payroll.PayrollList')\n\n return (\n <DataView\n columns={[\n {\n render: ({ payPeriod }) => (\n <Flex flexDirection=\"column\">\n <Text>\n {payPeriod?.startDate} - {payPeriod?.endDate}\n </Text>\n <Text>\n {paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.name ||\n paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.customName}\n </Text>\n </Flex>\n ),\n title: t('tableHeaders.0'),\n },\n {\n title: t('tableHeaders.1'),\n render: ({ payrollDeadline }) => <Text>{payrollDeadline?.toLocaleDateString()}</Text>,\n },\n {\n title: t('tableHeaders.2'),\n render: ({ processed }) => (\n <Badge>{processed ? t('status.processed') : t('status.unprocessed')}</Badge>\n ),\n },\n ]}\n data={payrolls}\n label={t('payrollsListLabel')}\n itemMenu={({ payrollUuid }) => (\n <Button\n onClick={() => {\n onRunPayroll({ payrollId: payrollUuid! })\n }}\n title=\"Run payroll\"\n variant=\"secondary\"\n >\n {t('runPayrollTitle')}\n </Button>\n )}\n />\n )\n}\n"],"names":["PayrollListPresentation","onRunPayroll","payrolls","paySchedules","Badge","Button","Text","useComponentContext","useI18n","useTranslation","jsx","DataView","payPeriod","jsxs","Flex","schedule","payrollDeadline","processed","payrollUuid"],"mappings":";;;;;;;;AAYO,MAAMA,IAA0B,CAAC;AAAA,EACtC,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AACF,MAAoC;AAClC,QAAM,EAAE,OAAAC,GAAO,QAAAC,GAAQ,MAAAC,EAAA,IAASC,EAAA;AAChC,EAAAC,EAAQ,qBAAqB;AAC7B,QAAM,EAAE,EAAA,IAAMC,EAAe,qBAAqB;AAElD,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,QACP;AAAA,UACE,QAAQ,CAAC,EAAE,WAAAC,QACT,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAClB,UAAA;AAAA,YAAA,gBAAAD,EAACP,GAAA,EACE,UAAA;AAAA,cAAAM,GAAW;AAAA,cAAU;AAAA,cAAIA,GAAW;AAAA,YAAA,GACvC;AAAA,8BACCN,GAAA,EACE,UAAAH,EAAa,KAAK,CAAAY,MAAYA,EAAS,SAASH,GAAW,eAAe,GACvE,QACFT,EAAa,KAAK,CAAAY,MAAYA,EAAS,SAASH,GAAW,eAAe,GACtE,WAAA,CACR;AAAA,UAAA,GACF;AAAA,UAEF,OAAO,EAAE,gBAAgB;AAAA,QAAA;AAAA,QAE3B;AAAA,UACE,OAAO,EAAE,gBAAgB;AAAA,UACzB,QAAQ,CAAC,EAAE,iBAAAI,EAAA,MAAsB,gBAAAN,EAACJ,GAAA,EAAM,UAAAU,GAAiB,qBAAmB,CAAE;AAAA,QAAA;AAAA,QAEhF;AAAA,UACE,OAAO,EAAE,gBAAgB;AAAA,UACzB,QAAQ,CAAC,EAAE,WAAAC,QACT,gBAAAP,EAACN,GAAA,EAAO,UAAY,EAAZa,IAAc,qBAAwB,oBAAN,EAA0B,CAAE;AAAA,QAAA;AAAA,MAExE;AAAA,MAEF,MAAMf;AAAA,MACN,OAAO,EAAE,mBAAmB;AAAA,MAC5B,UAAU,CAAC,EAAE,aAAAgB,EAAA,MACX,gBAAAR;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAAJ,EAAa,EAAE,WAAWiB,GAAc;AAAA,UAC1C;AAAA,UACA,OAAM;AAAA,UACN,SAAQ;AAAA,UAEP,YAAE,iBAAiB;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"PayrollListPresentation.js","sources":["../../../../src/components/Payroll/PayrollList/PayrollListPresentation.tsx"],"sourcesContent":["import type { Payroll } from '@gusto/embedded-api/models/components/payroll'\nimport type { PayScheduleList } from '@gusto/embedded-api/models/components/payschedulelist'\nimport { useTranslation } from 'react-i18next'\nimport { DataView, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\ninterface PayrollListPresentationProps {\n onRunPayroll: ({ payrollId }: { payrollId: NonNullable<Payroll['payrollUuid']> }) => void\n payrolls: Payroll[]\n paySchedules: PayScheduleList[]\n}\nexport const PayrollListPresentation = ({\n onRunPayroll,\n payrolls,\n paySchedules,\n}: PayrollListPresentationProps) => {\n const { Badge, Button, Text } = useComponentContext()\n useI18n('Payroll.PayrollList')\n const { t } = useTranslation('Payroll.PayrollList')\n\n return (\n <DataView\n columns={[\n {\n render: ({ payPeriod }) => (\n <Flex flexDirection=\"column\">\n <Text>\n {payPeriod?.startDate} - {payPeriod?.endDate}\n </Text>\n <Text>\n {paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.name ||\n paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.customName}\n </Text>\n </Flex>\n ),\n title: t('tableHeaders.0'),\n },\n {\n title: t('tableHeaders.1'),\n render: ({ payrollDeadline }) => <Text>{payrollDeadline?.toLocaleDateString()}</Text>,\n },\n {\n title: t('tableHeaders.2'),\n render: ({ processed }) => (\n <Badge>{processed ? t('status.processed') : t('status.unprocessed')}</Badge>\n ),\n },\n ]}\n data={payrolls}\n label={t('payrollsListLabel')}\n itemMenu={({ payrollUuid }) => (\n <Button\n onClick={() => {\n onRunPayroll({ payrollId: payrollUuid! })\n }}\n title={t('runPayrollTitle')}\n variant=\"secondary\"\n >\n {t('runPayrollTitle')}\n </Button>\n )}\n />\n )\n}\n"],"names":["PayrollListPresentation","onRunPayroll","payrolls","paySchedules","Badge","Button","Text","useComponentContext","useI18n","useTranslation","jsx","DataView","payPeriod","jsxs","Flex","schedule","payrollDeadline","processed","payrollUuid"],"mappings":";;;;;;;;AAYO,MAAMA,IAA0B,CAAC;AAAA,EACtC,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AACF,MAAoC;AAClC,QAAM,EAAE,OAAAC,GAAO,QAAAC,GAAQ,MAAAC,EAAA,IAASC,EAAA;AAChC,EAAAC,EAAQ,qBAAqB;AAC7B,QAAM,EAAE,EAAA,IAAMC,EAAe,qBAAqB;AAElD,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,QACP;AAAA,UACE,QAAQ,CAAC,EAAE,WAAAC,QACT,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAClB,UAAA;AAAA,YAAA,gBAAAD,EAACP,GAAA,EACE,UAAA;AAAA,cAAAM,GAAW;AAAA,cAAU;AAAA,cAAIA,GAAW;AAAA,YAAA,GACvC;AAAA,8BACCN,GAAA,EACE,UAAAH,EAAa,KAAK,CAAAY,MAAYA,EAAS,SAASH,GAAW,eAAe,GACvE,QACFT,EAAa,KAAK,CAAAY,MAAYA,EAAS,SAASH,GAAW,eAAe,GACtE,WAAA,CACR;AAAA,UAAA,GACF;AAAA,UAEF,OAAO,EAAE,gBAAgB;AAAA,QAAA;AAAA,QAE3B;AAAA,UACE,OAAO,EAAE,gBAAgB;AAAA,UACzB,QAAQ,CAAC,EAAE,iBAAAI,EAAA,MAAsB,gBAAAN,EAACJ,GAAA,EAAM,UAAAU,GAAiB,qBAAmB,CAAE;AAAA,QAAA;AAAA,QAEhF;AAAA,UACE,OAAO,EAAE,gBAAgB;AAAA,UACzB,QAAQ,CAAC,EAAE,WAAAC,QACT,gBAAAP,EAACN,GAAA,EAAO,UAAY,EAAZa,IAAc,qBAAwB,oBAAN,EAA0B,CAAE;AAAA,QAAA;AAAA,MAExE;AAAA,MAEF,MAAMf;AAAA,MACN,OAAO,EAAE,mBAAmB;AAAA,MAC5B,UAAU,CAAC,EAAE,aAAAgB,EAAA,MACX,gBAAAR;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAAJ,EAAa,EAAE,WAAWiB,GAAc;AAAA,UAC1C;AAAA,UACA,OAAO,EAAE,iBAAiB;AAAA,UAC1B,SAAQ;AAAA,UAEP,YAAE,iBAAiB;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB;AAAA,EAAA;AAIR;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { usePayrollsSubmitMutation as u } from "/home/runner/work/embedded-react-sdk/embedded-react-sdk/node_modules/@gusto/embedded-api/esm/react-query/payrollsSubmit.js";
2
+ import { usePayrollsSubmitMutation as u } from "@gusto/embedded-api/react-query/payrollsSubmit";
3
3
  import { PayrollOverviewPresentation as a } from "./PayrollOverviewPresentation.js";
4
4
  import { componentEvents as r } from "../../../shared/constants.js";
5
5
  import { BaseComponent as c } from "../../Base/Base.js";
@@ -1,63 +1,69 @@
1
- import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
- import { Flex as l } from "../../Common/Flex/Flex.js";
1
+ import { jsxs as l, jsx as t } from "react/jsx-runtime";
2
+ import { useTranslation as c } from "react-i18next";
3
+ import { Flex as i } from "../../Common/Flex/Flex.js";
3
4
  import "classnames";
4
5
  import "../../../shared/constants.js";
5
- import "react-i18next";
6
- import { useComponentContext as m } from "../../../contexts/ComponentAdapter/useComponentContext.js";
7
- import { DataView as s } from "../../Common/DataView/DataView.js";
8
- const x = ({ onEdit: a, onSubmit: d }) => {
9
- const { Alert: i, Button: n, Heading: o, Text: t } = m();
10
- return /* @__PURE__ */ r(l, { flexDirection: "column", alignItems: "stretch", children: [
11
- /* @__PURE__ */ r(l, { justifyContent: "space-between", children: [
12
- /* @__PURE__ */ e(o, { as: "h1", children: "Review payroll for Jul 5 - Jul 18, 2025" }),
13
- /* @__PURE__ */ r(l, { justifyContent: "flex-end", children: [
14
- /* @__PURE__ */ e(n, { title: "Edit", onClick: a, variant: "secondary", children: "Edit" }),
15
- /* @__PURE__ */ e(n, { title: "Submit", onClick: d, children: "Submit" })
6
+ import { useComponentContext as u } from "../../../contexts/ComponentAdapter/useComponentContext.js";
7
+ import { useI18n as b } from "../../../i18n/I18n.js";
8
+ import { DataView as o } from "../../Common/DataView/DataView.js";
9
+ const w = ({ onEdit: d, onSubmit: m }) => {
10
+ const { Alert: n, Button: a, Heading: s, Text: r } = u();
11
+ b("Payroll.PayrollOverview");
12
+ const { t: e } = c("Payroll.PayrollOverview");
13
+ return /* @__PURE__ */ l(i, { flexDirection: "column", alignItems: "stretch", children: [
14
+ /* @__PURE__ */ l(i, { justifyContent: "space-between", children: [
15
+ /* @__PURE__ */ t(s, { as: "h1", children: e("pageTitle", { startDate: "Jul 5", endDate: "Jul 18, 2025" }) }),
16
+ /* @__PURE__ */ l(i, { justifyContent: "flex-end", children: [
17
+ /* @__PURE__ */ t(a, { title: e("buttons.editTitle"), onClick: d, variant: "secondary", children: e("buttons.edit") }),
18
+ /* @__PURE__ */ t(a, { title: e("buttons.submitTitle"), onClick: m, children: e("buttons.submit") })
16
19
  ] })
17
20
  ] }),
18
- /* @__PURE__ */ e(i, { label: "Your progress has been saved", status: "success" }),
19
- /* @__PURE__ */ e(
20
- i,
21
+ /* @__PURE__ */ t(n, { label: e("alerts.progressSaved"), status: "success" }),
22
+ /* @__PURE__ */ t(
23
+ n,
21
24
  {
22
- label: "To pay your employees with direct deposit on Fri, Jul 25, you'll need to run payroll by 7:00 PM EDT on Wed, Jul 23",
25
+ label: e("alerts.directDepositDeadline", {
26
+ payDate: "Fri, Jul 25",
27
+ deadline: "7:00 PM EDT on Wed, Jul 23"
28
+ }),
23
29
  status: "warning",
24
- children: "If you miss this deadline, your employees' direct deposit will be delayed."
30
+ children: e("alerts.missedDeadlineWarning")
25
31
  }
26
32
  ),
27
- /* @__PURE__ */ e(o, { as: "h3", children: "Payroll Summary" }),
28
- /* @__PURE__ */ e(
29
- s,
33
+ /* @__PURE__ */ t(s, { as: "h3", children: e("sections.payrollSummary") }),
34
+ /* @__PURE__ */ t(
35
+ o,
30
36
  {
31
- label: "Summary",
37
+ label: e("dataViews.summary"),
32
38
  columns: [
33
39
  {
34
- title: "Total payroll",
35
- render: () => /* @__PURE__ */ e(t, { children: "$32,161.22" })
40
+ title: e("tableHeaders.totalPayroll"),
41
+ render: () => /* @__PURE__ */ t(r, { children: "$32,161.22" })
36
42
  },
37
43
  {
38
- title: "Debit amount",
39
- render: () => /* @__PURE__ */ e(t, { children: "$28,896.27" })
44
+ title: e("tableHeaders.debitAmount"),
45
+ render: () => /* @__PURE__ */ t(r, { children: "$28,896.27" })
40
46
  }
41
47
  ],
42
48
  data: [{}]
43
49
  }
44
50
  ),
45
- /* @__PURE__ */ e(
46
- s,
51
+ /* @__PURE__ */ t(
52
+ o,
47
53
  {
48
- label: "Configuration",
54
+ label: e("dataViews.configuration"),
49
55
  columns: [
50
56
  {
51
- title: "Employees",
52
- render: () => /* @__PURE__ */ e(t, { children: "John Smith" })
57
+ title: e("tableHeaders.employees"),
58
+ render: () => /* @__PURE__ */ t(r, { children: "John Smith" })
53
59
  },
54
60
  {
55
- title: "Gross Pay",
56
- render: () => /* @__PURE__ */ e(t, { children: "$2,345.16" })
61
+ title: e("tableHeaders.grossPay"),
62
+ render: () => /* @__PURE__ */ t(r, { children: "$2,345.16" })
57
63
  },
58
64
  {
59
- title: "Reimbursements",
60
- render: () => /* @__PURE__ */ e(t, { children: "$0.00" })
65
+ title: e("tableHeaders.reimbursements"),
66
+ render: () => /* @__PURE__ */ t(r, { children: "$0.00" })
61
67
  }
62
68
  ],
63
69
  data: [{}]
@@ -66,6 +72,6 @@ const x = ({ onEdit: a, onSubmit: d }) => {
66
72
  ] });
67
73
  };
68
74
  export {
69
- x as PayrollOverviewPresentation
75
+ w as PayrollOverviewPresentation
70
76
  };
71
77
  //# sourceMappingURL=PayrollOverviewPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollOverviewPresentation.js","sources":["../../../../src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.tsx"],"sourcesContent":["import { DataView, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ninterface PayrollOverviewProps {\n onEdit: () => void\n onSubmit: () => void\n}\n\nexport const PayrollOverviewPresentation = ({ onEdit, onSubmit }: PayrollOverviewProps) => {\n const { Alert, Button, Heading, Text } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" alignItems=\"stretch\">\n <Flex justifyContent=\"space-between\">\n <Heading as=\"h1\">Review payroll for Jul 5 - Jul 18, 2025</Heading>\n <Flex justifyContent=\"flex-end\">\n <Button title=\"Edit\" onClick={onEdit} variant=\"secondary\">\n Edit\n </Button>\n <Button title=\"Submit\" onClick={onSubmit}>\n Submit\n </Button>\n </Flex>\n </Flex>\n <Alert label=\"Your progress has been saved\" status=\"success\"></Alert>\n <Alert\n label=\"To pay your employees with direct deposit on Fri, Jul 25, you'll need to run payroll by 7:00 PM EDT on Wed, Jul 23\"\n status=\"warning\"\n >\n {\"If you miss this deadline, your employees' direct deposit will be delayed.\"}\n </Alert>\n <Heading as=\"h3\">Payroll Summary</Heading>\n <DataView\n label=\"Summary\"\n columns={[\n {\n title: 'Total payroll',\n render: () => <Text>$32,161.22</Text>,\n },\n {\n title: 'Debit amount',\n render: () => <Text>$28,896.27</Text>,\n },\n ]}\n data={[{}]}\n />\n <DataView\n label=\"Configuration\"\n columns={[\n {\n title: 'Employees',\n render: () => <Text>John Smith</Text>,\n },\n {\n title: 'Gross Pay',\n render: () => <Text>$2,345.16</Text>,\n },\n {\n title: 'Reimbursements',\n render: () => <Text>$0.00</Text>,\n },\n ]}\n data={[{}]}\n />\n </Flex>\n )\n}\n"],"names":["PayrollOverviewPresentation","onEdit","onSubmit","Alert","Button","Heading","Text","useComponentContext","jsxs","Flex","jsx","DataView"],"mappings":";;;;;;;AAQO,MAAMA,IAA8B,CAAC,EAAE,QAAAC,GAAQ,UAAAC,QAAqC;AACzF,QAAM,EAAE,OAAAC,GAAO,QAAAC,GAAQ,SAAAC,GAAS,MAAAC,EAAA,IAASC,EAAA;AAEzC,SACE,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,YAAW,WACtC,UAAA;AAAA,IAAA,gBAAAD,EAACC,GAAA,EAAK,gBAAe,iBACnB,UAAA;AAAA,MAAA,gBAAAC,EAACL,GAAA,EAAQ,IAAG,MAAK,UAAA,2CAAuC;AAAA,MACxD,gBAAAG,EAACC,GAAA,EAAK,gBAAe,YACnB,UAAA;AAAA,QAAA,gBAAAC,EAACN,KAAO,OAAM,QAAO,SAASH,GAAQ,SAAQ,aAAY,UAAA,OAAA,CAE1D;AAAA,0BACCG,GAAA,EAAO,OAAM,UAAS,SAASF,GAAU,UAAA,SAAA,CAE1C;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAQ,EAACP,GAAA,EAAM,OAAM,gCAA+B,QAAO,WAAU;AAAA,IAC7D,gBAAAO;AAAA,MAACP;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAO;AAAA,QAEN,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEH,gBAAAO,EAACL,GAAA,EAAQ,IAAG,MAAK,UAAA,mBAAe;AAAA,IAChC,gBAAAK;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS;AAAA,UACP;AAAA,YACE,OAAO;AAAA,YACP,QAAQ,MAAM,gBAAAD,EAACJ,GAAA,EAAK,UAAA,aAAA,CAAU;AAAA,UAAA;AAAA,UAEhC;AAAA,YACE,OAAO;AAAA,YACP,QAAQ,MAAM,gBAAAI,EAACJ,GAAA,EAAK,UAAA,aAAA,CAAU;AAAA,UAAA;AAAA,QAChC;AAAA,QAEF,MAAM,CAAC,CAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,IAEX,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS;AAAA,UACP;AAAA,YACE,OAAO;AAAA,YACP,QAAQ,MAAM,gBAAAD,EAACJ,GAAA,EAAK,UAAA,aAAA,CAAU;AAAA,UAAA;AAAA,UAEhC;AAAA,YACE,OAAO;AAAA,YACP,QAAQ,MAAM,gBAAAI,EAACJ,GAAA,EAAK,UAAA,YAAA,CAAS;AAAA,UAAA;AAAA,UAE/B;AAAA,YACE,OAAO;AAAA,YACP,QAAQ,MAAM,gBAAAI,EAACJ,GAAA,EAAK,UAAA,QAAA,CAAK;AAAA,UAAA;AAAA,QAC3B;AAAA,QAEF,MAAM,CAAC,CAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GACF;AAEJ;"}
1
+ {"version":3,"file":"PayrollOverviewPresentation.js","sources":["../../../../src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { DataView, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\ninterface PayrollOverviewProps {\n onEdit: () => void\n onSubmit: () => void\n}\n\nexport const PayrollOverviewPresentation = ({ onEdit, onSubmit }: PayrollOverviewProps) => {\n const { Alert, Button, Heading, Text } = useComponentContext()\n useI18n('Payroll.PayrollOverview')\n const { t } = useTranslation('Payroll.PayrollOverview')\n\n return (\n <Flex flexDirection=\"column\" alignItems=\"stretch\">\n <Flex justifyContent=\"space-between\">\n <Heading as=\"h1\">{t('pageTitle', { startDate: 'Jul 5', endDate: 'Jul 18, 2025' })}</Heading>\n <Flex justifyContent=\"flex-end\">\n <Button title={t('buttons.editTitle')} onClick={onEdit} variant=\"secondary\">\n {t('buttons.edit')}\n </Button>\n <Button title={t('buttons.submitTitle')} onClick={onSubmit}>\n {t('buttons.submit')}\n </Button>\n </Flex>\n </Flex>\n <Alert label={t('alerts.progressSaved')} status=\"success\"></Alert>\n <Alert\n label={t('alerts.directDepositDeadline', {\n payDate: 'Fri, Jul 25',\n deadline: '7:00 PM EDT on Wed, Jul 23',\n })}\n status=\"warning\"\n >\n {t('alerts.missedDeadlineWarning')}\n </Alert>\n <Heading as=\"h3\">{t('sections.payrollSummary')}</Heading>\n <DataView\n label={t('dataViews.summary')}\n columns={[\n {\n title: t('tableHeaders.totalPayroll'),\n render: () => <Text>$32,161.22</Text>,\n },\n {\n title: t('tableHeaders.debitAmount'),\n render: () => <Text>$28,896.27</Text>,\n },\n ]}\n data={[{}]}\n />\n <DataView\n label={t('dataViews.configuration')}\n columns={[\n {\n title: t('tableHeaders.employees'),\n render: () => <Text>John Smith</Text>,\n },\n {\n title: t('tableHeaders.grossPay'),\n render: () => <Text>$2,345.16</Text>,\n },\n {\n title: t('tableHeaders.reimbursements'),\n render: () => <Text>$0.00</Text>,\n },\n ]}\n data={[{}]}\n />\n </Flex>\n )\n}\n"],"names":["PayrollOverviewPresentation","onEdit","onSubmit","Alert","Button","Heading","Text","useComponentContext","useI18n","t","useTranslation","jsxs","Flex","jsx","DataView"],"mappings":";;;;;;;;AAUO,MAAMA,IAA8B,CAAC,EAAE,QAAAC,GAAQ,UAAAC,QAAqC;AACzF,QAAM,EAAE,OAAAC,GAAO,QAAAC,GAAQ,SAAAC,GAAS,MAAAC,EAAA,IAASC,EAAA;AACzC,EAAAC,EAAQ,yBAAyB;AACjC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB;AAEtD,SACE,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,YAAW,WACtC,UAAA;AAAA,IAAA,gBAAAD,EAACC,GAAA,EAAK,gBAAe,iBACnB,UAAA;AAAA,MAAA,gBAAAC,EAACR,GAAA,EAAQ,IAAG,MAAM,UAAAI,EAAE,aAAa,EAAE,WAAW,SAAS,SAAS,eAAA,CAAgB,EAAA,CAAE;AAAA,MAClF,gBAAAE,EAACC,GAAA,EAAK,gBAAe,YACnB,UAAA;AAAA,QAAA,gBAAAC,EAACT,GAAA,EAAO,OAAOK,EAAE,mBAAmB,GAAG,SAASR,GAAQ,SAAQ,aAC7D,UAAAQ,EAAE,cAAc,EAAA,CACnB;AAAA,QACA,gBAAAI,EAACT,GAAA,EAAO,OAAOK,EAAE,qBAAqB,GAAG,SAASP,GAC/C,UAAAO,EAAE,gBAAgB,EAAA,CACrB;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,sBACCN,GAAA,EAAM,OAAOM,EAAE,sBAAsB,GAAG,QAAO,WAAU;AAAA,IAC1D,gBAAAI;AAAA,MAACV;AAAA,MAAA;AAAA,QACC,OAAOM,EAAE,gCAAgC;AAAA,UACvC,SAAS;AAAA,UACT,UAAU;AAAA,QAAA,CACX;AAAA,QACD,QAAO;AAAA,QAEN,YAAE,8BAA8B;AAAA,MAAA;AAAA,IAAA;AAAA,sBAElCJ,GAAA,EAAQ,IAAG,MAAM,UAAAI,EAAE,yBAAyB,GAAE;AAAA,IAC/C,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAOL,EAAE,mBAAmB;AAAA,QAC5B,SAAS;AAAA,UACP;AAAA,YACE,OAAOA,EAAE,2BAA2B;AAAA,YACpC,QAAQ,MAAM,gBAAAI,EAACP,GAAA,EAAK,UAAA,aAAA,CAAU;AAAA,UAAA;AAAA,UAEhC;AAAA,YACE,OAAOG,EAAE,0BAA0B;AAAA,YACnC,QAAQ,MAAM,gBAAAI,EAACP,GAAA,EAAK,UAAA,aAAA,CAAU;AAAA,UAAA;AAAA,QAChC;AAAA,QAEF,MAAM,CAAC,CAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,IAEX,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAOL,EAAE,yBAAyB;AAAA,QAClC,SAAS;AAAA,UACP;AAAA,YACE,OAAOA,EAAE,wBAAwB;AAAA,YACjC,QAAQ,MAAM,gBAAAI,EAACP,GAAA,EAAK,UAAA,aAAA,CAAU;AAAA,UAAA;AAAA,UAEhC;AAAA,YACE,OAAOG,EAAE,uBAAuB;AAAA,YAChC,QAAQ,MAAM,gBAAAI,EAACP,GAAA,EAAK,UAAA,YAAA,CAAS;AAAA,UAAA;AAAA,UAE/B;AAAA,YACE,OAAOG,EAAE,6BAA6B;AAAA,YACtC,QAAQ,MAAM,gBAAAI,EAACP,GAAA,EAAK,UAAA,QAAA,CAAK;AAAA,UAAA;AAAA,QAC3B;AAAA,QAEF,MAAM,CAAC,CAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GACF;AAEJ;"}
@@ -1,7 +1,8 @@
1
1
  import { Employee } from '@gusto/embedded-api/models/components/employee';
2
- import { EmployeeCompensations } from '@gusto/embedded-api/models/components/payrollshow';
3
2
  import { TFunction } from 'i18next';
4
3
  import { PayScheduleObject } from '@gusto/embedded-api/models/components/payscheduleobject';
4
+ import { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype';
5
+ export declare const getPrimaryJob: (employee: Employee) => import('@gusto/embedded-api/models/components/job.js').Job | null;
5
6
  export declare const formatEmployeePayRate: ({ employee, t, locale, }: {
6
7
  employee?: Employee;
7
8
  t: TFunction;
@@ -12,9 +13,9 @@ export declare const getEmployeePayRateInfo: (employee: Employee | undefined) =>
12
13
  rate: number;
13
14
  paymentUnit: import('@gusto/embedded-api/models/components/compensation').PaymentUnit;
14
15
  } | 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;
16
+ export declare const getRegularHours: (compensation: PayrollEmployeeCompensationsType) => number;
17
+ export declare const getTotalPtoHours: (compensation: PayrollEmployeeCompensationsType) => number;
18
+ export declare const getAdditionalEarnings: (compensation: PayrollEmployeeCompensationsType) => number;
19
+ export declare const getReimbursements: (compensation: PayrollEmployeeCompensationsType) => number;
19
20
  export declare const formatHoursDisplay: (hours: number) => string;
20
- export declare const calculateGrossPay: (compensation: EmployeeCompensations, employee: Employee, compensationEffectiveDateString?: string, paySchedule?: PayScheduleObject, isOffCycle?: boolean) => number;
21
+ export declare const calculateGrossPay: (compensation: PayrollEmployeeCompensationsType, employee: Employee, compensationEffectiveDateString?: string, paySchedule?: PayScheduleObject, isOffCycle?: boolean) => number;
@@ -1,8 +1,8 @@
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 = {
1
+ import { useCallback as C } from "react";
2
+ import { useTranslation as T } from "react-i18next";
3
+ import { formatPayRate as v } from "../../helpers/formattedStrings.js";
4
+ import { useLocale as b } from "../../contexts/LocaleProvider/useLocale.js";
5
+ const E = "regular hours", y = (t) => t.jobs?.find((e) => e.primary) || t.jobs?.[0] || null, M = (t) => Math.round(t * 1e6) / 1e6, P = (t) => Math.round(t * 100) / 100, H = (t) => t.toLowerCase() === E, j = {
6
6
  Daily: 8,
7
7
  "Every week": 40,
8
8
  "Every other week": 80,
@@ -18,17 +18,17 @@ const j = "regular hours", E = (t) => Math.round(t * 1e6) / 1e6, h = (t) => Math
18
18
  }) => {
19
19
  if (!t?.jobs)
20
20
  return null;
21
- const n = t.jobs.find((s) => s.primary) || t.jobs[0];
21
+ const n = y(t);
22
22
  if (!n?.compensations)
23
23
  return null;
24
24
  const o = n.compensations[0];
25
25
  if (!o || !o.rate || parseFloat(o.rate) === 0)
26
26
  return null;
27
27
  const a = parseFloat(o.rate), u = o.paymentUnit || "Hour";
28
- return T({ rate: a, paymentUnit: u, t: e, locale: r });
28
+ return v({ rate: a, paymentUnit: u, t: e, locale: r });
29
29
  }, z = () => {
30
- const { t } = C("common"), { locale: e } = v();
31
- return b(
30
+ const { t } = T("common"), { locale: e } = b();
31
+ return C(
32
32
  (r) => S({ employee: r, t, locale: e }),
33
33
  [t, e]
34
34
  );
@@ -43,9 +43,9 @@ const j = "regular hours", E = (t) => Math.round(t * 1e6) / 1e6, h = (t) => Math
43
43
  );
44
44
  return e ? parseFloat(e.amount || "0") : 0;
45
45
  }, V = (t) => {
46
- const e = h(t);
46
+ const e = P(t);
47
47
  return e % 1 === 0 ? `${e}.0` : e.toString();
48
- }, W = (t) => t.frequency && M[t.frequency] || 0, y = (t, e) => {
48
+ }, W = (t) => t.frequency && j[t.frequency] || 0, g = (t, e) => {
49
49
  if (!t.length) return null;
50
50
  const r = [...t].sort(
51
51
  (n, o) => (n.effectiveDate ? new Date(n.effectiveDate).getTime() : 0) - (o.effectiveDate ? new Date(o.effectiveDate).getTime() : 0)
@@ -70,7 +70,7 @@ const j = "regular hours", E = (t) => Math.round(t * 1e6) / 1e6, h = (t) => Math
70
70
  }, O = (t) => t.flsaStatus === "Exempt" || t.flsaStatus === "Salaried Nonexempt", L = (t) => t.length ? t.filter((e) => {
71
71
  const r = e.name?.toLowerCase(), n = parseFloat(e.amount || "0");
72
72
  return (r === "paycheck tips" || r === "cash tips") && n > 0;
73
- }).reduce((e, r) => e + parseFloat(r.amount || "0"), 0) : 0, g = (t) => {
73
+ }).reduce((e, r) => e + parseFloat(r.amount || "0"), 0) : 0, h = (t) => {
74
74
  const e = parseFloat(t.rate || "0");
75
75
  switch (t.paymentUnit || "Hour") {
76
76
  case "Hour":
@@ -92,25 +92,25 @@ const j = "regular hours", E = (t) => Math.round(t * 1e6) / 1e6, h = (t) => Math
92
92
  const n = t.jobs?.find((a) => a.uuid === e);
93
93
  if (!n?.compensations)
94
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];
95
+ const o = g(n.compensations, r);
96
+ return o ? h(o) : 0;
97
+ }, D = (t, e) => {
98
+ const r = y(t);
99
99
  if (!r?.compensations)
100
100
  return 0;
101
- const n = y(r.compensations, e);
102
- return n ? g(n) : 0;
101
+ const n = g(r.compensations, e);
102
+ return n ? h(n) : 0;
103
103
  }, I = (t) => t.paidTimeOff ? t.paidTimeOff.reduce(
104
104
  (e, r) => e + parseFloat(r.finalPayoutUnusedHoursInput || "0"),
105
105
  0
106
- ) : 0, D = (t, e, r, n) => {
106
+ ) : 0, R = (t, e, r, n) => {
107
107
  const o = x(t);
108
108
  if (n) {
109
109
  const a = I(t);
110
110
  return o + a;
111
111
  }
112
112
  return e ? Math.min(r, o) : o;
113
- }, _ = (t, e, r) => {
113
+ }, J = (t, e, r) => {
114
114
  if (!t.adjustForMinimumWage) return 0;
115
115
  const n = A(
116
116
  t.minimumWages || [],
@@ -119,65 +119,65 @@ const j = "regular hours", E = (t) => Math.round(t * 1e6) / 1e6, h = (t) => Math
119
119
  if (!n)
120
120
  return 0;
121
121
  const o = e.hourlyCompensations?.reduce(
122
- (f, l) => f + parseFloat(l.hours || "0"),
122
+ (m, l) => m + parseFloat(l.hours || "0"),
123
123
  0
124
- ) || 0, a = g(t), u = (parseFloat(n.wage || "0") - a) * o, s = L(e.fixedCompensations || []);
124
+ ) || 0, a = h(t), u = (parseFloat(n.wage || "0") - a) * o, s = L(e.fixedCompensations || []);
125
125
  return Math.max(0, u - s);
126
- }, J = (t, e, r, n, o, a, u) => {
126
+ }, _ = (t, e, r, n, o, a, u) => {
127
127
  if (!u && n)
128
- return H(e, r) * (o - a);
128
+ return D(e, r) * (o - a);
129
129
  if (!t.hourlyCompensations || !e.jobs)
130
130
  return 0;
131
131
  const s = t.hourlyCompensations.reduce((i, c) => {
132
132
  const p = parseFloat(c.hours || "0"), d = k(e, c.jobUuid || "", r);
133
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) => {
134
+ }, 0), m = t.hourlyCompensations.reduce((i, c) => i + parseFloat(c.hours || "0"), 0);
135
+ if (m === 0) return s;
136
+ const l = M(s / m), f = t.hourlyCompensations.filter((i) => !H(i.name || "")).reduce((i, c) => {
137
137
  const p = parseFloat(c.hours || "0"), d = c.compensationMultiplier || 1;
138
138
  return i + p * l * (d - 1);
139
139
  }, 0);
140
- return s + m;
140
+ return s + f;
141
141
  }, G = (t, e, r, n, o, a) => {
142
- const u = D(
142
+ const u = R(
143
143
  t,
144
144
  n,
145
145
  o,
146
146
  a
147
- ), s = H(e, r);
147
+ ), s = D(e, r);
148
148
  return u * s;
149
149
  }, N = (t, e, r) => {
150
150
  if (!e) return !1;
151
151
  const n = t.hourlyCompensations?.find(
152
- (a) => P(a.name || "")
152
+ (a) => H(a.name || "")
153
153
  );
154
154
  return n ? parseFloat(n.hours || "0") === r : !1;
155
155
  }, X = (t, e, r, n, o = !1) => {
156
156
  if (t.excluded)
157
157
  return 0;
158
- const a = r ? new Date(r) : /* @__PURE__ */ new Date(), u = e.jobs?.find((F) => F.primary) || e.jobs?.[0];
158
+ const a = r ? new Date(r) : /* @__PURE__ */ new Date(), u = y(e);
159
159
  if (!u?.compensations)
160
160
  return 0;
161
- const s = y(
161
+ const s = g(
162
162
  u.compensations,
163
163
  a
164
164
  );
165
165
  if (!s)
166
166
  return 0;
167
- const f = O(s), l = n ? W(n) : 0, m = N(
167
+ const m = O(s), l = n ? W(n) : 0, f = N(
168
168
  t,
169
- f,
169
+ m,
170
170
  l
171
- ), i = D(
171
+ ), i = R(
172
172
  t,
173
- m,
173
+ f,
174
174
  l,
175
175
  o
176
- ), c = J(
176
+ ), c = _(
177
177
  t,
178
178
  e,
179
179
  a,
180
- m,
180
+ f,
181
181
  l,
182
182
  i,
183
183
  o
@@ -185,21 +185,22 @@ const j = "regular hours", E = (t) => Math.round(t * 1e6) / 1e6, h = (t) => Math
185
185
  t,
186
186
  e,
187
187
  a,
188
- m,
188
+ f,
189
189
  l,
190
190
  o
191
- ), R = _(
191
+ ), w = J(
192
192
  s,
193
193
  t,
194
194
  a
195
- ), w = c + p + d + R;
196
- return h(w);
195
+ ), F = c + p + d + w;
196
+ return P(F);
197
197
  };
198
198
  export {
199
199
  X as calculateGrossPay,
200
200
  S as formatEmployeePayRate,
201
201
  V as formatHoursDisplay,
202
202
  U as getAdditionalEarnings,
203
+ y as getPrimaryJob,
203
204
  B as getRegularHours,
204
205
  K as getReimbursements,
205
206
  x as getTotalPtoHours,
@@ -1 +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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"}
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 { PayrollShowFixedCompensations } 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 type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport { formatPayRate } from '@/helpers/formattedStrings'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\n\nconst REGULAR_HOURS_NAME = 'regular hours'\n\n// Utility to get the primary job from an employee\nexport const getPrimaryJob = (employee: Employee) => {\n return employee.jobs?.find(job => job.primary) || employee.jobs?.[0] || null\n}\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 = getPrimaryJob(employee)\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 = getPrimaryJob(employee)\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: PayrollEmployeeCompensationsType) => {\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: PayrollEmployeeCompensationsType) => {\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: PayrollEmployeeCompensationsType) => {\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: PayrollEmployeeCompensationsType) => {\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 = getPrimaryJob(employee)\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: PayrollEmployeeCompensationsType): 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: PayrollEmployeeCompensationsType,\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: PayrollEmployeeCompensationsType,\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: PayrollEmployeeCompensationsType,\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: PayrollEmployeeCompensationsType,\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: PayrollEmployeeCompensationsType,\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: PayrollEmployeeCompensationsType,\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 = getPrimaryJob(employee)\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","getPrimaryJob","employee","job","roundToSixDecimals","value","roundToTwoDecimals","isRegularHours","compensationName","PAY_PERIOD_HOURS_MAPPINGS","formatEmployeePayRate","t","locale","primaryJob","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,14 @@
1
+ import { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollprepared';
2
+ import { PayScheduleObject } from '@gusto/embedded-api/models/components/payscheduleobject';
3
+ interface UsePreparedPayrollDataParams {
4
+ companyId: string;
5
+ payrollId: string;
6
+ }
7
+ interface UsePreparedPayrollDataReturn {
8
+ handlePreparePayroll: () => Promise<void>;
9
+ preparedPayroll: PayrollPrepared | undefined;
10
+ paySchedule: PayScheduleObject | undefined;
11
+ isLoading: boolean;
12
+ }
13
+ export declare const usePreparedPayrollData: ({ companyId, payrollId, }: UsePreparedPayrollDataParams) => UsePreparedPayrollDataReturn;
14
+ export {};