@gusto/embedded-react-sdk 0.57.1 → 0.57.2
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 +13 -0
- package/dist/components/Base/Base.js +2 -3
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -10
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -11
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +8 -9
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +10 -12
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +11 -13
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -7
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +7 -9
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -7
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -9
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +10 -12
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +8 -10
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +6 -8
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +11 -13
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -6
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +80 -68
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +11 -13
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +5 -7
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -8
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +16 -17
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +8 -9
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +6 -8
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +26 -27
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +12 -13
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +12 -13
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +6 -8
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +3 -4
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +3 -4
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +22 -24
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +8 -9
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +14 -15
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +7 -8
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +7 -8
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +14 -16
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +6 -8
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +9 -11
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +74 -88
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
- package/dist/components/Payroll/helpers.js +52 -48
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +13 -16
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -4
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +6 -8
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -30
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/helpers/dateFormatting.js +47 -40
- package/dist/helpers/dateFormatting.js.map +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +20 -18
- package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +6 -4
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +5 -5
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +12 -14
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -15
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +10 -12
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +14 -16
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
- package/dist/src/components/Payroll/helpers.d.ts +20 -0
- package/dist/src/helpers/dateFormatting.d.ts +13 -0
- package/dist/src/i18n/types.d.ts +14 -2
- package/dist/style.css +1 -1
- package/package.json +7 -7
package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffCycleReasonSelectionPresentation.js","sources":["../../../../src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCycleReason } from './types'\nimport { RadioGroupField } from '@/components/Common'\n\ninterface OffCycleReasonSelectionPresentationProps {\n name: string\n onChange?: (value: OffCycleReason) => void\n /** CSS class name applied to the root element. */\n className?: string\n}\n\n/** @internal */\nexport function OffCycleReasonSelectionPresentation({\n name,\n onChange,\n className,\n}: OffCycleReasonSelectionPresentationProps) {\n const { t } = useTranslation('Payroll.OffCycleReasonSelection')\n\n const options = useMemo(\n () => [\n {\n value: 'correction' as OffCycleReason,\n label: t('options.correction.label'),\n description: t('options.correction.description'),\n },\n {\n value: 'bonus' as OffCycleReason,\n label: t('options.bonus.label'),\n description: t('options.bonus.description'),\n },\n ],\n [t],\n )\n\n return (\n <RadioGroupField<OffCycleReason>\n name={name}\n label={t('title')}\n options={options}\n isRequired\n onChange={onChange}\n className={className}\n />\n )\n}\n"],"names":["OffCycleReasonSelectionPresentation","name","onChange","className","t","useTranslation","options","useMemo","jsx","RadioGroupField"],"mappings":"
|
|
1
|
+
{"version":3,"file":"OffCycleReasonSelectionPresentation.js","sources":["../../../../src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCycleReason } from './types'\nimport { RadioGroupField } from '@/components/Common'\n\ninterface OffCycleReasonSelectionPresentationProps {\n name: string\n onChange?: (value: OffCycleReason) => void\n /** CSS class name applied to the root element. */\n className?: string\n}\n\n/** @internal */\nexport function OffCycleReasonSelectionPresentation({\n name,\n onChange,\n className,\n}: OffCycleReasonSelectionPresentationProps) {\n const { t } = useTranslation('Payroll.OffCycleReasonSelection')\n\n const options = useMemo(\n () => [\n {\n value: 'correction' as OffCycleReason,\n label: t('options.correction.label'),\n description: t('options.correction.description'),\n },\n {\n value: 'bonus' as OffCycleReason,\n label: t('options.bonus.label'),\n description: t('options.bonus.description'),\n },\n ],\n [t],\n )\n\n return (\n <RadioGroupField<OffCycleReason>\n name={name}\n label={t('title')}\n options={options}\n isRequired\n onChange={onChange}\n className={className}\n />\n )\n}\n"],"names":["OffCycleReasonSelectionPresentation","name","onChange","className","t","useTranslation","options","useMemo","jsx","RadioGroupField"],"mappings":";;;;AAaO,SAASA,EAAoC;AAAA,EAClD,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,GAA6C;AAC3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,iCAAiC,GAExDC,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,OAAOH,EAAE,0BAA0B;AAAA,QACnC,aAAaA,EAAE,gCAAgC;AAAA,MAAA;AAAA,MAEjD;AAAA,QACE,OAAO;AAAA,QACP,OAAOA,EAAE,qBAAqB;AAAA,QAC9B,aAAaA,EAAE,2BAA2B;AAAA,MAAA;AAAA,IAC5C;AAAA,IAEF,CAACA,CAAC;AAAA,EAAA;AAGJ,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAR;AAAA,MACA,OAAOG,EAAE,OAAO;AAAA,MAChB,SAAAE;AAAA,MACA,YAAU;AAAA,MACV,UAAAJ;AAAA,MACA,WAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -5,24 +5,22 @@ import { useTranslation as L } from "react-i18next";
|
|
|
5
5
|
import { WithholdingPayPeriod as N } from "@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls";
|
|
6
6
|
import { WITHHOLDING_PAY_PERIOD_I18N_KEY as p } from "../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js";
|
|
7
7
|
import t from "./OffCycleTaxWithholdingModal.module.scss.js";
|
|
8
|
-
import "classnames";
|
|
9
|
-
import "../../../shared/constants.js";
|
|
10
8
|
import { ActionsLayout as T } from "../../Common/ActionsLayout/ActionsLayout.js";
|
|
11
9
|
import { useComponentContext as W } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
12
10
|
import { useI18n as w } from "../../../i18n/I18n.js";
|
|
13
11
|
import { SelectField as D } from "../../Common/Fields/SelectField/SelectField.js";
|
|
14
12
|
import { RadioGroupField as H } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
|
|
15
|
-
function
|
|
13
|
+
function Y({
|
|
16
14
|
isOpen: h,
|
|
17
15
|
defaultConfig: f,
|
|
18
16
|
onDone: g,
|
|
19
|
-
onCancel:
|
|
17
|
+
onCancel: r
|
|
20
18
|
}) {
|
|
21
19
|
w("Payroll.OffCycleTaxWithholding");
|
|
22
|
-
const { t: e } = L("Payroll.OffCycleTaxWithholding"), { Modal: y, Heading: i, Text: a, Button: d } = W(), s = R(null),
|
|
20
|
+
const { t: e } = L("Payroll.OffCycleTaxWithholding"), { Modal: y, Heading: i, Text: a, Button: d } = W(), s = R(null), n = C({
|
|
23
21
|
defaultValues: f
|
|
24
22
|
}), S = x({
|
|
25
|
-
control:
|
|
23
|
+
control: n.control,
|
|
26
24
|
name: "withholdingPayPeriod"
|
|
27
25
|
}), b = u(
|
|
28
26
|
() => Object.values(N).map((m) => ({
|
|
@@ -48,18 +46,18 @@ function z({
|
|
|
48
46
|
}
|
|
49
47
|
],
|
|
50
48
|
[e, c]
|
|
51
|
-
), v =
|
|
49
|
+
), v = n.handleSubmit(g);
|
|
52
50
|
return /* @__PURE__ */ o(
|
|
53
51
|
y,
|
|
54
52
|
{
|
|
55
53
|
isOpen: h,
|
|
56
|
-
onClose:
|
|
54
|
+
onClose: r,
|
|
57
55
|
containerRef: s,
|
|
58
56
|
footer: /* @__PURE__ */ l(T, { children: [
|
|
59
|
-
/* @__PURE__ */ o(d, { variant: "secondary", onClick:
|
|
57
|
+
/* @__PURE__ */ o(d, { variant: "secondary", onClick: r, children: e("modal.cancelButton") }),
|
|
60
58
|
/* @__PURE__ */ o(d, { variant: "primary", onClick: v, children: e("modal.doneButton") })
|
|
61
59
|
] }),
|
|
62
|
-
children: /* @__PURE__ */ o(O, { ...
|
|
60
|
+
children: /* @__PURE__ */ o(O, { ...n, children: /* @__PURE__ */ l("div", { className: t.content, children: [
|
|
63
61
|
/* @__PURE__ */ o(i, { as: "h2", children: e("modal.title") }),
|
|
64
62
|
/* @__PURE__ */ l("div", { className: t.section, children: [
|
|
65
63
|
/* @__PURE__ */ o(i, { as: "h3", children: e("modal.regularSection.title") }),
|
|
@@ -98,6 +96,6 @@ function z({
|
|
|
98
96
|
);
|
|
99
97
|
}
|
|
100
98
|
export {
|
|
101
|
-
|
|
99
|
+
Y as OffCycleTaxWithholdingModal
|
|
102
100
|
};
|
|
103
101
|
//# sourceMappingURL=OffCycleTaxWithholdingModal.js.map
|
package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffCycleTaxWithholdingModal.js","sources":["../../../../src/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { WithholdingPayPeriod } from '@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls'\nimport { WITHHOLDING_PAY_PERIOD_I18N_KEY } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport styles from './OffCycleTaxWithholdingModal.module.scss'\nimport type { OffCycleTaxWithholdingModalProps } from './OffCycleTaxWithholdingModalTypes'\nimport { ActionsLayout, SelectField, RadioGroupField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\n/** @internal */\nexport function OffCycleTaxWithholdingModal({\n isOpen,\n defaultConfig,\n onDone,\n onCancel,\n}: OffCycleTaxWithholdingModalProps) {\n useI18n('Payroll.OffCycleTaxWithholding')\n const { t } = useTranslation('Payroll.OffCycleTaxWithholding')\n const { Modal, Heading, Text, Button } = useComponentContext()\n const modalContainerRef = useRef<HTMLDivElement>(null)\n\n const formHandlers = useForm<OffCycleTaxWithholdingConfig>({\n defaultValues: defaultConfig,\n })\n\n const currentWithholdingPayPeriod = useWatch({\n control: formHandlers.control,\n name: 'withholdingPayPeriod',\n })\n\n const frequencyOptions = useMemo(\n () =>\n Object.values(WithholdingPayPeriod).map(value => ({\n value,\n label: t(WITHHOLDING_PAY_PERIOD_I18N_KEY[value]),\n })),\n [t],\n )\n\n const frequencyDisplayText = t(\n WITHHOLDING_PAY_PERIOD_I18N_KEY[currentWithholdingPayPeriod],\n ).toLowerCase()\n\n const withholdingRateOptions = useMemo(\n () => [\n {\n value: 'supplemental' as const,\n label: t('modal.supplementalSection.useSupplementalRate'),\n description: t('modal.supplementalSection.useSupplementalRateDescription'),\n },\n {\n value: 'regular' as const,\n label: t('modal.supplementalSection.useRegularRate', {\n frequency: frequencyDisplayText,\n }),\n description: t('modal.supplementalSection.useRegularRateDescription'),\n },\n ],\n [t, frequencyDisplayText],\n )\n\n const handleSubmit = formHandlers.handleSubmit(onDone)\n\n return (\n <Modal\n isOpen={isOpen}\n onClose={onCancel}\n containerRef={modalContainerRef}\n footer={\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={onCancel}>\n {t('modal.cancelButton')}\n </Button>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {t('modal.doneButton')}\n </Button>\n </ActionsLayout>\n }\n >\n <FormProvider {...formHandlers}>\n <div className={styles.content}>\n <Heading as=\"h2\">{t('modal.title')}</Heading>\n\n <div className={styles.section}>\n <Heading as=\"h3\">{t('modal.regularSection.title')}</Heading>\n <Text variant=\"supporting\">{t('modal.regularSection.subtitle')}</Text>\n\n <div className={styles.rateInfo}>\n <Text weight=\"semibold\">{t('modal.regularSection.rateLabel')}</Text>\n <Text variant=\"supporting\">{t('modal.regularSection.rateDescription')}</Text>\n </div>\n\n <SelectField\n name=\"withholdingPayPeriod\"\n label={t('modal.regularSection.rateLabel')}\n placeholder={t('modal.regularSection.ratePlaceholder')}\n options={frequencyOptions}\n shouldVisuallyHideLabel\n portalContainer={modalContainerRef.current ?? undefined}\n />\n </div>\n\n <hr className={styles.divider} />\n\n <div className={styles.section}>\n <Heading as=\"h3\">{t('modal.supplementalSection.title')}</Heading>\n <RadioGroupField\n name=\"withholdingRate\"\n label={t('modal.supplementalSection.title')}\n options={withholdingRateOptions}\n shouldVisuallyHideLabel\n />\n </div>\n </div>\n </FormProvider>\n </Modal>\n )\n}\n"],"names":["OffCycleTaxWithholdingModal","isOpen","defaultConfig","onDone","onCancel","useI18n","t","useTranslation","Modal","Heading","Text","Button","useComponentContext","modalContainerRef","useRef","formHandlers","useForm","currentWithholdingPayPeriod","useWatch","frequencyOptions","useMemo","WithholdingPayPeriod","value","WITHHOLDING_PAY_PERIOD_I18N_KEY","frequencyDisplayText","withholdingRateOptions","handleSubmit","jsx","ActionsLayout","FormProvider","styles","jsxs","SelectField","RadioGroupField"],"mappings":"
|
|
1
|
+
{"version":3,"file":"OffCycleTaxWithholdingModal.js","sources":["../../../../src/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { WithholdingPayPeriod } from '@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls'\nimport { WITHHOLDING_PAY_PERIOD_I18N_KEY } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport styles from './OffCycleTaxWithholdingModal.module.scss'\nimport type { OffCycleTaxWithholdingModalProps } from './OffCycleTaxWithholdingModalTypes'\nimport { ActionsLayout, SelectField, RadioGroupField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\n/** @internal */\nexport function OffCycleTaxWithholdingModal({\n isOpen,\n defaultConfig,\n onDone,\n onCancel,\n}: OffCycleTaxWithholdingModalProps) {\n useI18n('Payroll.OffCycleTaxWithholding')\n const { t } = useTranslation('Payroll.OffCycleTaxWithholding')\n const { Modal, Heading, Text, Button } = useComponentContext()\n const modalContainerRef = useRef<HTMLDivElement>(null)\n\n const formHandlers = useForm<OffCycleTaxWithholdingConfig>({\n defaultValues: defaultConfig,\n })\n\n const currentWithholdingPayPeriod = useWatch({\n control: formHandlers.control,\n name: 'withholdingPayPeriod',\n })\n\n const frequencyOptions = useMemo(\n () =>\n Object.values(WithholdingPayPeriod).map(value => ({\n value,\n label: t(WITHHOLDING_PAY_PERIOD_I18N_KEY[value]),\n })),\n [t],\n )\n\n const frequencyDisplayText = t(\n WITHHOLDING_PAY_PERIOD_I18N_KEY[currentWithholdingPayPeriod],\n ).toLowerCase()\n\n const withholdingRateOptions = useMemo(\n () => [\n {\n value: 'supplemental' as const,\n label: t('modal.supplementalSection.useSupplementalRate'),\n description: t('modal.supplementalSection.useSupplementalRateDescription'),\n },\n {\n value: 'regular' as const,\n label: t('modal.supplementalSection.useRegularRate', {\n frequency: frequencyDisplayText,\n }),\n description: t('modal.supplementalSection.useRegularRateDescription'),\n },\n ],\n [t, frequencyDisplayText],\n )\n\n const handleSubmit = formHandlers.handleSubmit(onDone)\n\n return (\n <Modal\n isOpen={isOpen}\n onClose={onCancel}\n containerRef={modalContainerRef}\n footer={\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={onCancel}>\n {t('modal.cancelButton')}\n </Button>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {t('modal.doneButton')}\n </Button>\n </ActionsLayout>\n }\n >\n <FormProvider {...formHandlers}>\n <div className={styles.content}>\n <Heading as=\"h2\">{t('modal.title')}</Heading>\n\n <div className={styles.section}>\n <Heading as=\"h3\">{t('modal.regularSection.title')}</Heading>\n <Text variant=\"supporting\">{t('modal.regularSection.subtitle')}</Text>\n\n <div className={styles.rateInfo}>\n <Text weight=\"semibold\">{t('modal.regularSection.rateLabel')}</Text>\n <Text variant=\"supporting\">{t('modal.regularSection.rateDescription')}</Text>\n </div>\n\n <SelectField\n name=\"withholdingPayPeriod\"\n label={t('modal.regularSection.rateLabel')}\n placeholder={t('modal.regularSection.ratePlaceholder')}\n options={frequencyOptions}\n shouldVisuallyHideLabel\n portalContainer={modalContainerRef.current ?? undefined}\n />\n </div>\n\n <hr className={styles.divider} />\n\n <div className={styles.section}>\n <Heading as=\"h3\">{t('modal.supplementalSection.title')}</Heading>\n <RadioGroupField\n name=\"withholdingRate\"\n label={t('modal.supplementalSection.title')}\n options={withholdingRateOptions}\n shouldVisuallyHideLabel\n />\n </div>\n </div>\n </FormProvider>\n </Modal>\n )\n}\n"],"names":["OffCycleTaxWithholdingModal","isOpen","defaultConfig","onDone","onCancel","useI18n","t","useTranslation","Modal","Heading","Text","Button","useComponentContext","modalContainerRef","useRef","formHandlers","useForm","currentWithholdingPayPeriod","useWatch","frequencyOptions","useMemo","WithholdingPayPeriod","value","WITHHOLDING_PAY_PERIOD_I18N_KEY","frequencyDisplayText","withholdingRateOptions","handleSubmit","jsx","ActionsLayout","FormProvider","styles","jsxs","SelectField","RadioGroupField"],"mappings":"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"}
|
|
@@ -1,62 +1,47 @@
|
|
|
1
|
-
import { jsxs as d, jsx as
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { getPayPeriodOrCheckDateLabel as
|
|
1
|
+
import { jsxs as d, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as A } from "react-i18next";
|
|
3
|
+
import { getPayPeriodOrCheckDateLabel as p, getPayrollTypeLabel as w, calculateTotalPayroll as M, getCancelDeadlineValues as E, canCancelPayroll as H } from "../helpers.js";
|
|
4
4
|
import { Flex as c } from "../../Common/Flex/Flex.js";
|
|
5
|
-
import { EmptyData as
|
|
6
|
-
import { HamburgerMenu as
|
|
7
|
-
import { DateRangeFilter as
|
|
8
|
-
import { useComponentContext as
|
|
9
|
-
import { formatNumberAsCurrency as
|
|
10
|
-
import { useI18n as
|
|
11
|
-
import { useDateFormatter as
|
|
12
|
-
import
|
|
13
|
-
import
|
|
5
|
+
import { EmptyData as u } from "../../Common/EmptyData/EmptyData.js";
|
|
6
|
+
import { HamburgerMenu as T } from "../../Common/HamburgerMenu/HamburgerMenu.js";
|
|
7
|
+
import { DateRangeFilter as j } from "../../Common/DateRangeFilter/DateRangeFilter.js";
|
|
8
|
+
import { useComponentContext as O } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
9
|
+
import { formatNumberAsCurrency as U } from "../../../helpers/formattedStrings.js";
|
|
10
|
+
import { useI18n as V } from "../../../i18n/I18n.js";
|
|
11
|
+
import { useDateFormatter as q } from "../../../hooks/useDateFormatter.js";
|
|
12
|
+
import B from "../../../assets/icons/trashcan.svg.js";
|
|
13
|
+
import N from "../../../assets/icons/icon-file-outline.svg.js";
|
|
14
14
|
import W from "../../../assets/icons/icon-receipt-outline.svg.js";
|
|
15
|
-
import { PayrollStatusBadges as
|
|
15
|
+
import { PayrollStatusBadges as Y } from "../PayrollStatusBadges/PayrollStatusBadges.js";
|
|
16
16
|
import { DataView as z } from "../../Common/DataView/DataView.js";
|
|
17
|
-
const
|
|
18
|
-
className:
|
|
19
|
-
payrollHistory:
|
|
20
|
-
wireInRequests:
|
|
17
|
+
const oe = ({
|
|
18
|
+
className: y,
|
|
19
|
+
payrollHistory: D,
|
|
20
|
+
wireInRequests: f,
|
|
21
21
|
pagination: s,
|
|
22
|
-
onViewSummary:
|
|
22
|
+
onViewSummary: h,
|
|
23
23
|
onViewReceipt: C,
|
|
24
|
-
onCancelPayroll:
|
|
25
|
-
cancelDialogItem:
|
|
26
|
-
onCancelDialogOpen:
|
|
24
|
+
onCancelPayroll: P,
|
|
25
|
+
cancelDialogItem: r,
|
|
26
|
+
onCancelDialogOpen: b,
|
|
27
27
|
onCancelDialogClose: g,
|
|
28
|
-
isLoading:
|
|
29
|
-
dateRangeFilter:
|
|
28
|
+
isLoading: S = !1,
|
|
29
|
+
dateRangeFilter: i
|
|
30
30
|
}) => {
|
|
31
|
-
const { Heading: L, Text: m, Dialog: v } =
|
|
32
|
-
|
|
33
|
-
const { t: e } =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
day: "numeric",
|
|
40
|
-
timeZone: p
|
|
41
|
-
}), M = new Intl.DateTimeFormat("en-US", {
|
|
42
|
-
hour: "numeric",
|
|
43
|
-
minute: "2-digit",
|
|
44
|
-
timeZoneName: "short",
|
|
45
|
-
timeZone: p
|
|
46
|
-
}), E = T.format(n);
|
|
47
|
-
return `${M.format(n)} on ${E}`;
|
|
48
|
-
}, x = (t) => {
|
|
49
|
-
S(t);
|
|
50
|
-
}, k = () => {
|
|
51
|
-
a && b(a);
|
|
52
|
-
}, A = (t) => {
|
|
53
|
-
const i = t.payrollUuid || t.uuid, n = [
|
|
31
|
+
const { Heading: L, Text: m, Dialog: v } = O();
|
|
32
|
+
V("Payroll.PayrollHistory");
|
|
33
|
+
const { t: e } = A("Payroll.PayrollHistory"), l = q(), x = (t) => {
|
|
34
|
+
b(t);
|
|
35
|
+
}, F = () => {
|
|
36
|
+
r && P(r);
|
|
37
|
+
}, k = (t) => {
|
|
38
|
+
const o = t.payrollUuid || t.uuid, n = [
|
|
54
39
|
{
|
|
55
40
|
label: e("menu.viewSummary"),
|
|
56
|
-
icon: /* @__PURE__ */
|
|
41
|
+
icon: /* @__PURE__ */ a(N, { "aria-hidden": !0 }),
|
|
57
42
|
onClick: () => {
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
h(
|
|
44
|
+
o,
|
|
60
45
|
t.payPeriod?.startDate ?? void 0,
|
|
61
46
|
t.payPeriod?.endDate ?? void 0
|
|
62
47
|
);
|
|
@@ -64,36 +49,36 @@ const me = ({
|
|
|
64
49
|
},
|
|
65
50
|
{
|
|
66
51
|
label: e("menu.viewReceipt"),
|
|
67
|
-
icon: /* @__PURE__ */
|
|
52
|
+
icon: /* @__PURE__ */ a(W, { "aria-hidden": !0 }),
|
|
68
53
|
onClick: () => {
|
|
69
54
|
C(
|
|
70
|
-
|
|
55
|
+
o,
|
|
71
56
|
t.payPeriod?.startDate ?? void 0,
|
|
72
57
|
t.payPeriod?.endDate ?? void 0
|
|
73
58
|
);
|
|
74
59
|
}
|
|
75
60
|
}
|
|
76
61
|
];
|
|
77
|
-
return
|
|
62
|
+
return H(t) && n.push({
|
|
78
63
|
label: e("menu.cancelPayroll"),
|
|
79
|
-
icon: /* @__PURE__ */
|
|
64
|
+
icon: /* @__PURE__ */ a(B, { "aria-hidden": !0 }),
|
|
80
65
|
onClick: () => {
|
|
81
66
|
x(t);
|
|
82
67
|
},
|
|
83
68
|
"data-destructive": "true"
|
|
84
69
|
}), n;
|
|
85
70
|
};
|
|
86
|
-
return /* @__PURE__ */ d(c, { className:
|
|
71
|
+
return /* @__PURE__ */ d(c, { className: y, flexDirection: "column", gap: 16, children: [
|
|
87
72
|
/* @__PURE__ */ d(c, { justifyContent: "space-between", alignItems: "center", children: [
|
|
88
|
-
/* @__PURE__ */
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
|
|
73
|
+
/* @__PURE__ */ a(L, { as: "h2", children: e("title") }),
|
|
74
|
+
/* @__PURE__ */ a(
|
|
75
|
+
j,
|
|
91
76
|
{
|
|
92
|
-
startDate:
|
|
93
|
-
endDate:
|
|
94
|
-
onStartDateChange:
|
|
95
|
-
onEndDateChange:
|
|
96
|
-
onClear:
|
|
77
|
+
startDate: i.startDate,
|
|
78
|
+
endDate: i.endDate,
|
|
79
|
+
onStartDateChange: i.handleStartDateChange,
|
|
80
|
+
onEndDateChange: i.handleEndDateChange,
|
|
81
|
+
onClear: i.handleClearFilter,
|
|
97
82
|
startDateLabel: e("dateFilter.startDate"),
|
|
98
83
|
endDateLabel: e("dateFilter.endDate"),
|
|
99
84
|
applyLabel: e("dateFilter.apply"),
|
|
@@ -101,25 +86,25 @@ const me = ({
|
|
|
101
86
|
resetLabel: e("dateFilter.reset"),
|
|
102
87
|
selectDatesLabel: e("dateFilter.selectDates"),
|
|
103
88
|
triggerLabel: e("dateFilter.trigger"),
|
|
104
|
-
maxEndDate:
|
|
105
|
-
minStartDate:
|
|
89
|
+
maxEndDate: i.getMaxEndDate(),
|
|
90
|
+
minStartDate: i.getMinStartDate()
|
|
106
91
|
}
|
|
107
92
|
)
|
|
108
93
|
] }),
|
|
109
|
-
/* @__PURE__ */
|
|
94
|
+
/* @__PURE__ */ a(
|
|
110
95
|
z,
|
|
111
96
|
{
|
|
112
97
|
label: e("dataView.label"),
|
|
113
98
|
pagination: s,
|
|
114
99
|
isFetching: s.isFetching,
|
|
115
|
-
emptyState: () =>
|
|
116
|
-
|
|
100
|
+
emptyState: () => i.isModified ? /* @__PURE__ */ a(
|
|
101
|
+
u,
|
|
117
102
|
{
|
|
118
103
|
title: e("emptyState.filtered.title"),
|
|
119
104
|
description: e("emptyState.filtered.description")
|
|
120
105
|
}
|
|
121
|
-
) : /* @__PURE__ */
|
|
122
|
-
|
|
106
|
+
) : /* @__PURE__ */ a(
|
|
107
|
+
u,
|
|
123
108
|
{
|
|
124
109
|
title: e("emptyState.default.title"),
|
|
125
110
|
description: e("emptyState.default.description")
|
|
@@ -128,11 +113,11 @@ const me = ({
|
|
|
128
113
|
columns: [
|
|
129
114
|
{
|
|
130
115
|
title: e("columns.payPeriod"),
|
|
131
|
-
render: (t) =>
|
|
116
|
+
render: (t) => p(t, l)
|
|
132
117
|
},
|
|
133
118
|
{
|
|
134
119
|
title: e("columns.type"),
|
|
135
|
-
render: (t) =>
|
|
120
|
+
render: (t) => w(t)
|
|
136
121
|
},
|
|
137
122
|
{
|
|
138
123
|
title: e("columns.payDate"),
|
|
@@ -141,46 +126,47 @@ const me = ({
|
|
|
141
126
|
{
|
|
142
127
|
title: e("columns.status"),
|
|
143
128
|
render: (t) => {
|
|
144
|
-
const
|
|
129
|
+
const o = f.find(
|
|
145
130
|
(n) => n.paymentUuid === t.payrollUuid
|
|
146
131
|
);
|
|
147
|
-
return /* @__PURE__ */
|
|
132
|
+
return /* @__PURE__ */ a(Y, { payroll: t, wireInRequest: o });
|
|
148
133
|
}
|
|
149
134
|
},
|
|
150
135
|
{
|
|
151
136
|
title: e("columns.totalPayroll"),
|
|
152
137
|
justify: "end",
|
|
153
|
-
render: (t) =>
|
|
138
|
+
render: (t) => U(M(t))
|
|
154
139
|
}
|
|
155
140
|
],
|
|
156
|
-
data:
|
|
157
|
-
itemMenu: (t) => /* @__PURE__ */
|
|
141
|
+
data: D,
|
|
142
|
+
itemMenu: (t) => /* @__PURE__ */ a(T, { items: k(t) })
|
|
158
143
|
}
|
|
159
144
|
),
|
|
160
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ a(
|
|
161
146
|
v,
|
|
162
147
|
{
|
|
163
|
-
isOpen: !!
|
|
148
|
+
isOpen: !!r,
|
|
164
149
|
onClose: g,
|
|
165
|
-
onPrimaryActionClick:
|
|
150
|
+
onPrimaryActionClick: F,
|
|
166
151
|
isDestructive: !0,
|
|
167
|
-
isPrimaryActionLoading:
|
|
152
|
+
isPrimaryActionLoading: S,
|
|
168
153
|
primaryActionLabel: e("cancelDialog.primaryAction"),
|
|
169
154
|
closeActionLabel: e("cancelDialog.secondaryAction"),
|
|
170
|
-
title:
|
|
171
|
-
payPeriod:
|
|
155
|
+
title: r ? e("cancelDialog.title", {
|
|
156
|
+
payPeriod: p(r, l)
|
|
172
157
|
}) : "",
|
|
173
|
-
children:
|
|
174
|
-
/* @__PURE__ */
|
|
175
|
-
|
|
176
|
-
deadline
|
|
177
|
-
|
|
158
|
+
children: r && /* @__PURE__ */ d(c, { flexDirection: "column", gap: 16, children: [
|
|
159
|
+
/* @__PURE__ */ a(m, { children: e("cancelDialog.body") }),
|
|
160
|
+
r.payrollDeadline && /* @__PURE__ */ a(m, { children: e(
|
|
161
|
+
"cancelDialog.deadline",
|
|
162
|
+
E(r, l)
|
|
163
|
+
) })
|
|
178
164
|
] })
|
|
179
165
|
}
|
|
180
166
|
)
|
|
181
167
|
] });
|
|
182
168
|
};
|
|
183
169
|
export {
|
|
184
|
-
|
|
170
|
+
oe as PayrollHistoryPresentation
|
|
185
171
|
};
|
|
186
172
|
//# sourceMappingURL=PayrollHistoryPresentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollHistoryPresentation.js","sources":["../../../../src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport {\n getPayrollTypeLabel,\n calculateTotalPayroll,\n canCancelPayroll,\n getPayPeriodOrCheckDateLabel,\n} from '../helpers'\nimport type { MenuItem } from '@/components/Common/UI/Menu/MenuTypes'\nimport { DataView, Flex, DateRangeFilter } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport TrashcanIcon from '@/assets/icons/trashcan.svg?react'\nimport FileIcon from '@/assets/icons/icon-file-outline.svg?react'\nimport ReceiptIcon from '@/assets/icons/icon-receipt-outline.svg?react'\nimport { EmptyData } from '@/components/Common/'\n\ninterface PayrollHistoryPresentationProps {\n /** CSS class name applied to the root element. */\n className?: string\n payrollHistory: Payroll[]\n wireInRequests: WireInRequest[]\n pagination: PaginationControlProps\n onViewSummary: (payrollId: string, startDate?: string, endDate?: string) => void\n onViewReceipt: (payrollId: string, startDate?: string, endDate?: string) => void\n onCancelPayroll: (item: Payroll) => void\n cancelDialogItem: Payroll | null\n onCancelDialogOpen: (item: Payroll) => void\n onCancelDialogClose: () => void\n isLoading?: boolean\n dateRangeFilter: UseDateRangeFilterResult\n}\n\n/** @internal */\nexport const PayrollHistoryPresentation = ({\n className,\n payrollHistory,\n wireInRequests,\n pagination,\n onViewSummary,\n onViewReceipt,\n onCancelPayroll,\n cancelDialogItem,\n onCancelDialogOpen,\n onCancelDialogClose,\n isLoading = false,\n dateRangeFilter,\n}: PayrollHistoryPresentationProps) => {\n const { Heading, Text, Dialog } = useComponentContext()\n useI18n('Payroll.PayrollHistory')\n const { t } = useTranslation('Payroll.PayrollHistory')\n const dateFormatter = useDateFormatter()\n\n const formatDeadlineForDialog = (item: Payroll): string => {\n const deadline = item.payrollDeadline\n if (!deadline) return ''\n\n const deadlineDate = new Date(deadline)\n const timeZone = 'America/New_York'\n\n const formatter = new Intl.DateTimeFormat('en-US', {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n timeZone,\n })\n\n const timeFormatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n timeZoneName: 'short',\n timeZone,\n })\n\n const dateStr = formatter.format(deadlineDate)\n const timeStr = timeFormatter.format(deadlineDate)\n\n return `${timeStr} on ${dateStr}`\n }\n\n const handleCancelClick = (item: Payroll) => {\n onCancelDialogOpen(item)\n }\n\n const handleConfirmCancel = () => {\n if (cancelDialogItem) {\n onCancelPayroll(cancelDialogItem)\n }\n }\n\n const getMenuItems = (item: Payroll): MenuItem[] => {\n const payrollId = item.payrollUuid || item.uuid!\n const items: MenuItem[] = [\n {\n label: t('menu.viewSummary'),\n icon: <FileIcon aria-hidden />,\n onClick: () => {\n onViewSummary(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n {\n label: t('menu.viewReceipt'),\n icon: <ReceiptIcon aria-hidden />,\n onClick: () => {\n onViewReceipt(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n ]\n\n if (canCancelPayroll(item)) {\n items.push({\n label: t('menu.cancelPayroll'),\n icon: <TrashcanIcon aria-hidden />,\n onClick: () => {\n handleCancelClick(item)\n },\n 'data-destructive': 'true',\n })\n }\n\n return items\n }\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={16}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n label={t('dataView.label')}\n pagination={pagination}\n isFetching={pagination.isFetching}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData\n title={t('emptyState.default.title')}\n description={t('emptyState.default.description')}\n />\n )\n }\n columns={[\n {\n title: t('columns.payPeriod'),\n render: (item: Payroll) => getPayPeriodOrCheckDateLabel(item, dateFormatter),\n },\n {\n title: t('columns.type'),\n render: (item: Payroll) => getPayrollTypeLabel(item),\n },\n {\n title: t('columns.payDate'),\n render: (item: Payroll) => dateFormatter.formatShortWithYear(item.checkDate),\n },\n {\n title: t('columns.status'),\n render: (item: Payroll) => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === item.payrollUuid,\n )\n return <PayrollStatusBadges payroll={item} wireInRequest={wireInRequest} />\n },\n },\n {\n title: t('columns.totalPayroll'),\n justify: 'end',\n render: (item: Payroll) => formatNumberAsCurrency(calculateTotalPayroll(item)),\n },\n ]}\n data={payrollHistory}\n itemMenu={(item: Payroll) => <HamburgerMenu items={getMenuItems(item)} />}\n />\n\n <Dialog\n isOpen={!!cancelDialogItem}\n onClose={onCancelDialogClose}\n onPrimaryActionClick={handleConfirmCancel}\n isDestructive\n isPrimaryActionLoading={isLoading}\n primaryActionLabel={t('cancelDialog.primaryAction')}\n closeActionLabel={t('cancelDialog.secondaryAction')}\n title={\n cancelDialogItem\n ? t('cancelDialog.title', {\n payPeriod: getPayPeriodOrCheckDateLabel(cancelDialogItem, dateFormatter),\n })\n : ''\n }\n >\n {cancelDialogItem && (\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('cancelDialog.body')}</Text>\n {cancelDialogItem.payrollDeadline && (\n <Text>\n {t('cancelDialog.deadline', {\n deadline: formatDeadlineForDialog(cancelDialogItem),\n })}\n </Text>\n )}\n </Flex>\n )}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PayrollHistoryPresentation","className","payrollHistory","wireInRequests","pagination","onViewSummary","onViewReceipt","onCancelPayroll","cancelDialogItem","onCancelDialogOpen","onCancelDialogClose","isLoading","dateRangeFilter","Heading","Text","Dialog","useComponentContext","useI18n","t","useTranslation","dateFormatter","useDateFormatter","formatDeadlineForDialog","item","deadline","deadlineDate","timeZone","formatter","timeFormatter","dateStr","handleCancelClick","handleConfirmCancel","getMenuItems","payrollId","items","jsx","FileIcon","ReceiptIcon","canCancelPayroll","TrashcanIcon","Flex","jsxs","DateRangeFilter","DataView","EmptyData","getPayPeriodOrCheckDateLabel","getPayrollTypeLabel","wireInRequest","wire","PayrollStatusBadges","formatNumberAsCurrency","calculateTotalPayroll","HamburgerMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PayrollHistoryPresentation.js","sources":["../../../../src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport {\n getPayrollTypeLabel,\n calculateTotalPayroll,\n canCancelPayroll,\n getCancelDeadlineValues,\n getPayPeriodOrCheckDateLabel,\n} from '../helpers'\nimport type { MenuItem } from '@/components/Common/UI/Menu/MenuTypes'\nimport { DataView, Flex, DateRangeFilter } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport TrashcanIcon from '@/assets/icons/trashcan.svg?react'\nimport FileIcon from '@/assets/icons/icon-file-outline.svg?react'\nimport ReceiptIcon from '@/assets/icons/icon-receipt-outline.svg?react'\nimport { EmptyData } from '@/components/Common/'\n\ninterface PayrollHistoryPresentationProps {\n /** CSS class name applied to the root element. */\n className?: string\n payrollHistory: Payroll[]\n wireInRequests: WireInRequest[]\n pagination: PaginationControlProps\n onViewSummary: (payrollId: string, startDate?: string, endDate?: string) => void\n onViewReceipt: (payrollId: string, startDate?: string, endDate?: string) => void\n onCancelPayroll: (item: Payroll) => void\n cancelDialogItem: Payroll | null\n onCancelDialogOpen: (item: Payroll) => void\n onCancelDialogClose: () => void\n isLoading?: boolean\n dateRangeFilter: UseDateRangeFilterResult\n}\n\n/** @internal */\nexport const PayrollHistoryPresentation = ({\n className,\n payrollHistory,\n wireInRequests,\n pagination,\n onViewSummary,\n onViewReceipt,\n onCancelPayroll,\n cancelDialogItem,\n onCancelDialogOpen,\n onCancelDialogClose,\n isLoading = false,\n dateRangeFilter,\n}: PayrollHistoryPresentationProps) => {\n const { Heading, Text, Dialog } = useComponentContext()\n useI18n('Payroll.PayrollHistory')\n const { t } = useTranslation('Payroll.PayrollHistory')\n const dateFormatter = useDateFormatter()\n\n const handleCancelClick = (item: Payroll) => {\n onCancelDialogOpen(item)\n }\n\n const handleConfirmCancel = () => {\n if (cancelDialogItem) {\n onCancelPayroll(cancelDialogItem)\n }\n }\n\n const getMenuItems = (item: Payroll): MenuItem[] => {\n const payrollId = item.payrollUuid || item.uuid!\n const items: MenuItem[] = [\n {\n label: t('menu.viewSummary'),\n icon: <FileIcon aria-hidden />,\n onClick: () => {\n onViewSummary(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n {\n label: t('menu.viewReceipt'),\n icon: <ReceiptIcon aria-hidden />,\n onClick: () => {\n onViewReceipt(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n ]\n\n if (canCancelPayroll(item)) {\n items.push({\n label: t('menu.cancelPayroll'),\n icon: <TrashcanIcon aria-hidden />,\n onClick: () => {\n handleCancelClick(item)\n },\n 'data-destructive': 'true',\n })\n }\n\n return items\n }\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={16}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n label={t('dataView.label')}\n pagination={pagination}\n isFetching={pagination.isFetching}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData\n title={t('emptyState.default.title')}\n description={t('emptyState.default.description')}\n />\n )\n }\n columns={[\n {\n title: t('columns.payPeriod'),\n render: (item: Payroll) => getPayPeriodOrCheckDateLabel(item, dateFormatter),\n },\n {\n title: t('columns.type'),\n render: (item: Payroll) => getPayrollTypeLabel(item),\n },\n {\n title: t('columns.payDate'),\n render: (item: Payroll) => dateFormatter.formatShortWithYear(item.checkDate),\n },\n {\n title: t('columns.status'),\n render: (item: Payroll) => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === item.payrollUuid,\n )\n return <PayrollStatusBadges payroll={item} wireInRequest={wireInRequest} />\n },\n },\n {\n title: t('columns.totalPayroll'),\n justify: 'end',\n render: (item: Payroll) => formatNumberAsCurrency(calculateTotalPayroll(item)),\n },\n ]}\n data={payrollHistory}\n itemMenu={(item: Payroll) => <HamburgerMenu items={getMenuItems(item)} />}\n />\n\n <Dialog\n isOpen={!!cancelDialogItem}\n onClose={onCancelDialogClose}\n onPrimaryActionClick={handleConfirmCancel}\n isDestructive\n isPrimaryActionLoading={isLoading}\n primaryActionLabel={t('cancelDialog.primaryAction')}\n closeActionLabel={t('cancelDialog.secondaryAction')}\n title={\n cancelDialogItem\n ? t('cancelDialog.title', {\n payPeriod: getPayPeriodOrCheckDateLabel(cancelDialogItem, dateFormatter),\n })\n : ''\n }\n >\n {cancelDialogItem && (\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('cancelDialog.body')}</Text>\n {cancelDialogItem.payrollDeadline && (\n <Text>\n {t(\n 'cancelDialog.deadline',\n getCancelDeadlineValues(cancelDialogItem, dateFormatter),\n )}\n </Text>\n )}\n </Flex>\n )}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PayrollHistoryPresentation","className","payrollHistory","wireInRequests","pagination","onViewSummary","onViewReceipt","onCancelPayroll","cancelDialogItem","onCancelDialogOpen","onCancelDialogClose","isLoading","dateRangeFilter","Heading","Text","Dialog","useComponentContext","useI18n","t","useTranslation","dateFormatter","useDateFormatter","handleCancelClick","item","handleConfirmCancel","getMenuItems","payrollId","items","jsx","FileIcon","ReceiptIcon","canCancelPayroll","TrashcanIcon","Flex","jsxs","DateRangeFilter","DataView","EmptyData","getPayPeriodOrCheckDateLabel","getPayrollTypeLabel","wireInRequest","wire","PayrollStatusBadges","formatNumberAsCurrency","calculateTotalPayroll","HamburgerMenu","getCancelDeadlineValues"],"mappings":";;;;;;;;;;;;;;;;AA0CO,MAAMA,KAA6B,CAAC;AAAA,EACzC,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,iBAAAC;AACF,MAAuC;AACrC,QAAM,EAAE,SAAAC,GAAS,MAAAC,GAAM,QAAAC,EAAA,IAAWC,EAAA;AAClC,EAAAC,EAAQ,wBAAwB;AAChC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,wBAAwB,GAC/CC,IAAgBC,EAAA,GAEhBC,IAAoB,CAACC,MAAkB;AAC3C,IAAAd,EAAmBc,CAAI;AAAA,EACzB,GAEMC,IAAsB,MAAM;AAChC,IAAIhB,KACFD,EAAgBC,CAAgB;AAAA,EAEpC,GAEMiB,IAAe,CAACF,MAA8B;AAClD,UAAMG,IAAYH,EAAK,eAAeA,EAAK,MACrCI,IAAoB;AAAA,MACxB;AAAA,QACE,OAAOT,EAAE,kBAAkB;AAAA,QAC3B,MAAM,gBAAAU,EAACC,GAAA,EAAS,eAAW,GAAA,CAAC;AAAA,QAC5B,SAAS,MAAM;AACb,UAAAxB;AAAA,YACEqB;AAAA,YACAH,EAAK,WAAW,aAAa;AAAA,YAC7BA,EAAK,WAAW,WAAW;AAAA,UAAA;AAAA,QAE/B;AAAA,MAAA;AAAA,MAEF;AAAA,QACE,OAAOL,EAAE,kBAAkB;AAAA,QAC3B,MAAM,gBAAAU,EAACE,GAAA,EAAY,eAAW,GAAA,CAAC;AAAA,QAC/B,SAAS,MAAM;AACb,UAAAxB;AAAA,YACEoB;AAAA,YACAH,EAAK,WAAW,aAAa;AAAA,YAC7BA,EAAK,WAAW,WAAW;AAAA,UAAA;AAAA,QAE/B;AAAA,MAAA;AAAA,IACF;AAGF,WAAIQ,EAAiBR,CAAI,KACvBI,EAAM,KAAK;AAAA,MACT,OAAOT,EAAE,oBAAoB;AAAA,MAC7B,MAAM,gBAAAU,EAACI,GAAA,EAAa,eAAW,GAAA,CAAC;AAAA,MAChC,SAAS,MAAM;AACb,QAAAV,EAAkBC,CAAI;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,IAAA,CACrB,GAGII;AAAA,EACT;AAEA,2BACGM,GAAA,EAAK,WAAAhC,GAAsB,eAAc,UAAS,KAAK,IACtD,UAAA;AAAA,IAAA,gBAAAiC,EAACD,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAC9C,UAAA;AAAA,MAAA,gBAAAL,EAACf,GAAA,EAAQ,IAAG,MAAM,UAAAK,EAAE,OAAO,GAAE;AAAA,MAC7B,gBAAAU;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,WAAWvB,EAAgB;AAAA,UAC3B,SAASA,EAAgB;AAAA,UACzB,mBAAmBA,EAAgB;AAAA,UACnC,iBAAiBA,EAAgB;AAAA,UACjC,SAASA,EAAgB;AAAA,UACzB,gBAAgBM,EAAE,sBAAsB;AAAA,UACxC,cAAcA,EAAE,oBAAoB;AAAA,UACpC,YAAYA,EAAE,kBAAkB;AAAA,UAChC,aAAaA,EAAE,mBAAmB;AAAA,UAClC,YAAYA,EAAE,kBAAkB;AAAA,UAChC,kBAAkBA,EAAE,wBAAwB;AAAA,UAC5C,cAAcA,EAAE,oBAAoB;AAAA,UACpC,YAAYN,EAAgB,cAAA;AAAA,UAC5B,cAAcA,EAAgB,gBAAA;AAAA,QAAgB;AAAA,MAAA;AAAA,IAChD,GACF;AAAA,IAEA,gBAAAgB;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,OAAOlB,EAAE,gBAAgB;AAAA,QACzB,YAAAd;AAAA,QACA,YAAYA,EAAW;AAAA,QACvB,YAAY,MACVQ,EAAgB,aACd,gBAAAgB;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,OAAOnB,EAAE,2BAA2B;AAAA,YACpC,aAAaA,EAAE,iCAAiC;AAAA,UAAA;AAAA,QAAA,IAGlD,gBAAAU;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,OAAOnB,EAAE,0BAA0B;AAAA,YACnC,aAAaA,EAAE,gCAAgC;AAAA,UAAA;AAAA,QAAA;AAAA,QAIrD,SAAS;AAAA,UACP;AAAA,YACE,OAAOA,EAAE,mBAAmB;AAAA,YAC5B,QAAQ,CAACK,MAAkBe,EAA6Bf,GAAMH,CAAa;AAAA,UAAA;AAAA,UAE7E;AAAA,YACE,OAAOF,EAAE,cAAc;AAAA,YACvB,QAAQ,CAACK,MAAkBgB,EAAoBhB,CAAI;AAAA,UAAA;AAAA,UAErD;AAAA,YACE,OAAOL,EAAE,iBAAiB;AAAA,YAC1B,QAAQ,CAACK,MAAkBH,EAAc,oBAAoBG,EAAK,SAAS;AAAA,UAAA;AAAA,UAE7E;AAAA,YACE,OAAOL,EAAE,gBAAgB;AAAA,YACzB,QAAQ,CAACK,MAAkB;AACzB,oBAAMiB,IAAgBrC,EAAe;AAAA,gBACnC,CAAAsC,MAAQA,EAAK,gBAAgBlB,EAAK;AAAA,cAAA;AAEpC,qBAAO,gBAAAK,EAACc,GAAA,EAAoB,SAASnB,GAAM,eAAAiB,EAAA,CAA8B;AAAA,YAC3E;AAAA,UAAA;AAAA,UAEF;AAAA,YACE,OAAOtB,EAAE,sBAAsB;AAAA,YAC/B,SAAS;AAAA,YACT,QAAQ,CAACK,MAAkBoB,EAAuBC,EAAsBrB,CAAI,CAAC;AAAA,UAAA;AAAA,QAC/E;AAAA,QAEF,MAAMrB;AAAA,QACN,UAAU,CAACqB,MAAkB,gBAAAK,EAACiB,KAAc,OAAOpB,EAAaF,CAAI,EAAA,CAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IAGzE,gBAAAK;AAAA,MAACb;AAAA,MAAA;AAAA,QACC,QAAQ,CAAC,CAACP;AAAA,QACV,SAASE;AAAA,QACT,sBAAsBc;AAAA,QACtB,eAAa;AAAA,QACb,wBAAwBb;AAAA,QACxB,oBAAoBO,EAAE,4BAA4B;AAAA,QAClD,kBAAkBA,EAAE,8BAA8B;AAAA,QAClD,OACEV,IACIU,EAAE,sBAAsB;AAAA,UACtB,WAAWoB,EAA6B9B,GAAkBY,CAAa;AAAA,QAAA,CACxE,IACD;AAAA,QAGL,eACC,gBAAAc,EAACD,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,UAAA,gBAAAL,EAACd,GAAA,EAAM,UAAAI,EAAE,mBAAmB,EAAA,CAAE;AAAA,UAC7BV,EAAiB,mBAChB,gBAAAoB,EAACd,GAAA,EACE,UAAAI;AAAA,YACC;AAAA,YACA4B,EAAwBtC,GAAkBY,CAAa;AAAA,UAAA,EACzD,CACF;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,GACF;AAEJ;"}
|