@gusto/embedded-react-sdk 0.56.6 → 0.56.7-rc.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.
- package/CHANGELOG.md +12 -0
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -7
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -4
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +70 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +30 -32
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +35 -27
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +52 -31
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +106 -66
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +36 -30
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js +7 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +81 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +46 -18
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -4
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.js +13 -13
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +49 -48
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +49 -47
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +2 -3
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.js +13 -12
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ApiProvider/createSdkQueryClient.js +4 -3
- package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -1
- package/dist/contexts/ApiProvider/payrollDeductionAmountHook.js +36 -0
- package/dist/contexts/ApiProvider/payrollDeductionAmountHook.js.map +1 -0
- package/dist/helpers/validations.js +1 -1
- package/dist/helpers/validations.js.map +1 -1
- package/dist/i18n/en/Company.AssignSignatory.json.js +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +24 -14
- package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +12 -10
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +15 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +3 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +7 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +20 -4
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +3 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +10 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +25 -0
- package/dist/src/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.test.d.ts +1 -0
- package/dist/src/components/Payroll/PayrollList/__fixtures__/payrollListMocks.d.ts +67 -0
- package/dist/src/contexts/ApiProvider/createSdkQueryClient.d.ts +2 -0
- package/dist/src/contexts/ApiProvider/createSdkQueryClient.test.d.ts +1 -0
- package/dist/src/contexts/ApiProvider/payrollDeductionAmountHook.d.ts +12 -0
- package/dist/src/contexts/ApiProvider/payrollDeductionAmountHook.test.d.ts +1 -0
- package/dist/src/helpers/validations.test.d.ts +1 -0
- package/dist/src/i18n/types.d.ts +38 -2
- package/dist/src/models/external.d.ts +7 -6
- package/docs/guides/endpoint-inventory.json +15 -0
- package/package.json +14 -14
|
@@ -1,34 +1,37 @@
|
|
|
1
|
-
import { jsx as t, jsxs as
|
|
2
|
-
import { z as
|
|
1
|
+
import { jsx as t, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { z as n } from "zod";
|
|
3
3
|
import { useForm as u, FormProvider as y } from "react-hook-form";
|
|
4
|
-
import { zodResolver as
|
|
5
|
-
import { useTranslation as
|
|
6
|
-
import { PayScheduleAssignmentBodyType as
|
|
7
|
-
import { Flex as
|
|
8
|
-
import { ActionsLayout as
|
|
4
|
+
import { zodResolver as S } from "@hookform/resolvers/zod";
|
|
5
|
+
import { useTranslation as h } from "react-i18next";
|
|
6
|
+
import { PayScheduleAssignmentBodyType as o } from "@gusto/embedded-api/models/components/payscheduleassignmentbody";
|
|
7
|
+
import { Flex as p } from "../../../../Common/Flex/Flex.js";
|
|
8
|
+
import { ActionsLayout as f } from "../../../../Common/ActionsLayout/ActionsLayout.js";
|
|
9
9
|
import { Form as g } from "../../../../Common/Form/Form.js";
|
|
10
10
|
import { useComponentContext as b } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
11
11
|
import { RadioGroupField as v } from "../../../../Common/Fields/RadioGroupField/RadioGroupField.js";
|
|
12
|
-
const x =
|
|
13
|
-
type:
|
|
12
|
+
const x = n.object({
|
|
13
|
+
type: n.union([
|
|
14
|
+
n.literal(o.Single),
|
|
15
|
+
n.literal(o.HourlySalaried)
|
|
16
|
+
])
|
|
14
17
|
});
|
|
15
18
|
function L({
|
|
16
|
-
defaultType:
|
|
17
|
-
onBack:
|
|
18
|
-
onContinue:
|
|
19
|
+
defaultType: a = o.Single,
|
|
20
|
+
onBack: s,
|
|
21
|
+
onContinue: m
|
|
19
22
|
}) {
|
|
20
|
-
const { t: e } =
|
|
21
|
-
resolver:
|
|
22
|
-
defaultValues: { type:
|
|
23
|
-
}),
|
|
24
|
-
|
|
23
|
+
const { t: e } = h("Company.Management.PayScheduleAssignment"), i = b(), l = u({
|
|
24
|
+
resolver: S(x),
|
|
25
|
+
defaultValues: { type: a }
|
|
26
|
+
}), d = l.handleSubmit(({ type: c }) => {
|
|
27
|
+
m(c);
|
|
25
28
|
});
|
|
26
|
-
return /* @__PURE__ */ t(y, { ...
|
|
27
|
-
|
|
28
|
-
}, children: /* @__PURE__ */
|
|
29
|
-
/* @__PURE__ */
|
|
30
|
-
/* @__PURE__ */ t(
|
|
31
|
-
/* @__PURE__ */ t(
|
|
29
|
+
return /* @__PURE__ */ t(y, { ...l, children: /* @__PURE__ */ t(g, { onSubmit: () => {
|
|
30
|
+
d();
|
|
31
|
+
}, children: /* @__PURE__ */ r(p, { flexDirection: "column", gap: 32, children: [
|
|
32
|
+
/* @__PURE__ */ r(p, { flexDirection: "column", gap: 4, children: [
|
|
33
|
+
/* @__PURE__ */ t(i.Heading, { as: "h2", children: e("typeStep.heading") }),
|
|
34
|
+
/* @__PURE__ */ t(i.Text, { variant: "supporting", children: e("typeStep.description") })
|
|
32
35
|
] }),
|
|
33
36
|
/* @__PURE__ */ t(
|
|
34
37
|
v,
|
|
@@ -38,16 +41,21 @@ function L({
|
|
|
38
41
|
shouldVisuallyHideLabel: !0,
|
|
39
42
|
options: [
|
|
40
43
|
{
|
|
41
|
-
value:
|
|
44
|
+
value: o.Single,
|
|
42
45
|
label: e("typeStep.options.single.label"),
|
|
43
46
|
description: e("typeStep.options.single.description")
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
value: o.HourlySalaried,
|
|
50
|
+
label: e("typeStep.options.hourlySalaried.label"),
|
|
51
|
+
description: e("typeStep.options.hourlySalaried.description")
|
|
44
52
|
}
|
|
45
53
|
]
|
|
46
54
|
}
|
|
47
55
|
),
|
|
48
|
-
/* @__PURE__ */
|
|
49
|
-
/* @__PURE__ */ t(
|
|
50
|
-
/* @__PURE__ */ t(
|
|
56
|
+
/* @__PURE__ */ r(f, { children: [
|
|
57
|
+
/* @__PURE__ */ t(i.Button, { variant: "secondary", onClick: s, children: e("backCta") }),
|
|
58
|
+
/* @__PURE__ */ t(i.Button, { variant: "primary", type: "submit", children: e("continueCta") })
|
|
51
59
|
] })
|
|
52
60
|
] }) }) });
|
|
53
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssignmentTypeStepPresentation.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { useForm, FormProvider } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useTranslation } from 'react-i18next'\nimport { PayScheduleAssignmentBodyType } from '@gusto/embedded-api/models/components/payscheduleassignmentbody'\nimport { Flex, RadioGroupField, ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport interface AssignmentTypeStepPresentationProps {\n defaultType?:
|
|
1
|
+
{"version":3,"file":"AssignmentTypeStepPresentation.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { useForm, FormProvider } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useTranslation } from 'react-i18next'\nimport { PayScheduleAssignmentBodyType } from '@gusto/embedded-api/models/components/payscheduleassignmentbody'\nimport type { SupportedAssignmentType } from './usePayScheduleAssignment'\nimport { Flex, RadioGroupField, ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport interface AssignmentTypeStepPresentationProps {\n defaultType?: SupportedAssignmentType\n onBack: () => void\n onContinue: (type: SupportedAssignmentType) => void\n}\n\nconst TypeStepSchema = z.object({\n type: z.union([\n z.literal(PayScheduleAssignmentBodyType.Single),\n z.literal(PayScheduleAssignmentBodyType.HourlySalaried),\n ]),\n})\n\ntype TypeStepInputs = z.infer<typeof TypeStepSchema>\n\n/** @internal */\nexport function AssignmentTypeStepPresentation({\n defaultType = PayScheduleAssignmentBodyType.Single,\n onBack,\n onContinue,\n}: AssignmentTypeStepPresentationProps) {\n const { t } = useTranslation('Company.Management.PayScheduleAssignment')\n const Components = useComponentContext()\n\n const formMethods = useForm<TypeStepInputs>({\n resolver: zodResolver(TypeStepSchema),\n defaultValues: { type: defaultType },\n })\n\n const handleSubmit = formMethods.handleSubmit(({ type }) => {\n onContinue(type)\n })\n\n return (\n <FormProvider {...formMethods}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('typeStep.heading')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('typeStep.description')}</Components.Text>\n </Flex>\n <RadioGroupField\n name=\"type\"\n label={t('typeStep.heading')}\n shouldVisuallyHideLabel\n options={[\n {\n value: PayScheduleAssignmentBodyType.Single,\n label: t('typeStep.options.single.label'),\n description: t('typeStep.options.single.description'),\n },\n {\n value: PayScheduleAssignmentBodyType.HourlySalaried,\n label: t('typeStep.options.hourlySalaried.label'),\n description: t('typeStep.options.hourlySalaried.description'),\n },\n ]}\n />\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={onBack}>\n {t('backCta')}\n </Components.Button>\n <Components.Button variant=\"primary\" type=\"submit\">\n {t('continueCta')}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n </Form>\n </FormProvider>\n )\n}\n"],"names":["TypeStepSchema","z","PayScheduleAssignmentBodyType","AssignmentTypeStepPresentation","defaultType","onBack","onContinue","t","useTranslation","Components","useComponentContext","formMethods","useForm","zodResolver","handleSubmit","type","FormProvider","jsx","Form","jsxs","Flex","RadioGroupField","ActionsLayout"],"mappings":";;;;;;;;;;;AAiBA,MAAMA,IAAiBC,EAAE,OAAO;AAAA,EAC9B,MAAMA,EAAE,MAAM;AAAA,IACZA,EAAE,QAAQC,EAA8B,MAAM;AAAA,IAC9CD,EAAE,QAAQC,EAA8B,cAAc;AAAA,EAAA,CACvD;AACH,CAAC;AAKM,SAASC,EAA+B;AAAA,EAC7C,aAAAC,IAAcF,EAA8B;AAAA,EAC5C,QAAAG;AAAA,EACA,YAAAC;AACF,GAAwC;AACtC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,0CAA0C,GACjEC,IAAaC,EAAA,GAEbC,IAAcC,EAAwB;AAAA,IAC1C,UAAUC,EAAYb,CAAc;AAAA,IACpC,eAAe,EAAE,MAAMI,EAAA;AAAA,EAAY,CACpC,GAEKU,IAAeH,EAAY,aAAa,CAAC,EAAE,MAAAI,QAAW;AAC1D,IAAAT,EAAWS,CAAI;AAAA,EACjB,CAAC;AAED,2BACGC,GAAA,EAAc,GAAGL,GAChB,UAAA,gBAAAM,EAACC,KAAK,UAAU,MAAA;AAAM,IAAKJ;KACzB,UAAA,gBAAAK,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAD,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAH,EAACR,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAF,EAAE,kBAAkB,GAAE;AAAA,MACnD,gBAAAU,EAACR,EAAW,MAAX,EAAgB,SAAQ,cAAc,UAAAF,EAAE,sBAAsB,EAAA,CAAE;AAAA,IAAA,GACnE;AAAA,IACA,gBAAAU;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOd,EAAE,kBAAkB;AAAA,QAC3B,yBAAuB;AAAA,QACvB,SAAS;AAAA,UACP;AAAA,YACE,OAAOL,EAA8B;AAAA,YACrC,OAAOK,EAAE,+BAA+B;AAAA,YACxC,aAAaA,EAAE,qCAAqC;AAAA,UAAA;AAAA,UAEtD;AAAA,YACE,OAAOL,EAA8B;AAAA,YACrC,OAAOK,EAAE,uCAAuC;AAAA,YAChD,aAAaA,EAAE,6CAA6C;AAAA,UAAA;AAAA,QAC9D;AAAA,MACF;AAAA,IAAA;AAAA,sBAEDe,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAL,EAACR,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASJ,GAC7C,UAAAE,EAAE,SAAS,EAAA,CACd;AAAA,MACA,gBAAAU,EAACR,EAAW,QAAX,EAAkB,SAAQ,WAAU,MAAK,UACvC,UAAAF,EAAE,aAAa,EAAA,CAClB;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;"}
|
|
@@ -1,46 +1,67 @@
|
|
|
1
1
|
import { jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import { createMachine as p } from "robot3";
|
|
3
|
-
import { useEffect as
|
|
4
|
-
import { useGustoEmbeddedContext as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
import { useEffect as f, useState as S, useMemo as h } from "react";
|
|
4
|
+
import { useGustoEmbeddedContext as y } from "@gusto/embedded-api/react-query/_context";
|
|
5
|
+
import { usePaySchedulesGetAssignmentsSuspense as g } from "@gusto/embedded-api/react-query/paySchedulesGetAssignments";
|
|
6
|
+
import { PayScheduleAssignmentType as a } from "@gusto/embedded-api/models/components/payscheduleassignment";
|
|
7
|
+
import { payScheduleAssignmentStateMachine as P } from "./payScheduleAssignmentStateMachine.js";
|
|
8
|
+
import { AssignmentTypeStep as A } from "./PayScheduleAssignmentComponents.js";
|
|
9
|
+
import { stripNullAssignmentPreviewFields as m } from "./stripNullAssignmentPreviewFields.js";
|
|
10
|
+
import { Flow as U } from "../../../../Flow/Flow.js";
|
|
11
|
+
import { BaseComponent as v } from "../../../../Base/Base.js";
|
|
12
|
+
import { useBase as C } from "../../../../Base/useBase.js";
|
|
13
|
+
import { useI18n as c, useComponentDictionary as k } from "../../../../../i18n/I18n.js";
|
|
14
|
+
import { useUnstableFeature as x } from "../../../../../contexts/UnstableFeaturesProvider/useUnstableFeature.js";
|
|
15
|
+
function M(e) {
|
|
16
|
+
switch (e) {
|
|
17
|
+
case a.Single:
|
|
18
|
+
case a.HourlySalaried:
|
|
19
|
+
return e;
|
|
20
|
+
default:
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function T(e) {
|
|
25
|
+
const t = M(e?.type);
|
|
26
|
+
return t ? {
|
|
27
|
+
assignmentType: t,
|
|
28
|
+
defaultPayScheduleUuid: e?.defaultPayScheduleUuid ?? void 0,
|
|
29
|
+
hourlyPayScheduleUuid: e?.hourlyPayScheduleUuid ?? void 0,
|
|
30
|
+
salariedPayScheduleUuid: e?.salariedPayScheduleUuid ?? void 0
|
|
31
|
+
} : {};
|
|
32
|
+
}
|
|
33
|
+
const I = ({
|
|
34
|
+
companyId: e,
|
|
15
35
|
dictionary: t,
|
|
16
36
|
...n
|
|
17
|
-
}) => (
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
const { onEvent: n } =
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
24
|
-
return
|
|
25
|
-
const
|
|
26
|
-
|
|
37
|
+
}) => (x("managePaySchedules", { throwIfDisabled: !0 }), /* @__PURE__ */ s(v, { ...n, children: /* @__PURE__ */ s(w, { companyId: e, dictionary: t }) }));
|
|
38
|
+
function w({ companyId: e, dictionary: t }) {
|
|
39
|
+
c("Company.Management.PayScheduleAssignment"), k("Company.Management.PayScheduleAssignment", t), c("Company.PaySchedule");
|
|
40
|
+
const { onEvent: n } = C(), r = y();
|
|
41
|
+
f(() => {
|
|
42
|
+
const o = r._options.hooks;
|
|
43
|
+
if (o)
|
|
44
|
+
return o.registerAfterSuccessHook(m), () => {
|
|
45
|
+
const u = o.afterSuccessHooks.indexOf(m);
|
|
46
|
+
u !== -1 && o.afterSuccessHooks.splice(u, 1);
|
|
27
47
|
};
|
|
28
48
|
}, [r]);
|
|
29
|
-
const
|
|
49
|
+
const { data: d } = g({ companyId: e }), [i] = S(() => T(d.payScheduleAssignment)), l = h(
|
|
30
50
|
() => p(
|
|
31
51
|
"assignmentType",
|
|
32
|
-
|
|
33
|
-
(
|
|
34
|
-
...
|
|
35
|
-
component:
|
|
36
|
-
companyId:
|
|
52
|
+
P,
|
|
53
|
+
(o) => ({
|
|
54
|
+
...o,
|
|
55
|
+
component: A,
|
|
56
|
+
companyId: e,
|
|
57
|
+
...i
|
|
37
58
|
})
|
|
38
59
|
),
|
|
39
|
-
[
|
|
60
|
+
[e, i]
|
|
40
61
|
);
|
|
41
|
-
return /* @__PURE__ */ s(
|
|
62
|
+
return /* @__PURE__ */ s(U, { machine: l, onEvent: n });
|
|
42
63
|
}
|
|
43
64
|
export {
|
|
44
|
-
|
|
65
|
+
I as PayScheduleAssignment
|
|
45
66
|
};
|
|
46
67
|
//# sourceMappingURL=PayScheduleAssignment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayScheduleAssignment.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useEffect, useMemo } from 'react'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { payScheduleAssignmentStateMachine } from './payScheduleAssignmentStateMachine'\nimport { AssignmentTypeStep } from './PayScheduleAssignmentComponents'\nimport type {
|
|
1
|
+
{"version":3,"file":"PayScheduleAssignment.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useEffect, useMemo, useState } from 'react'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { usePaySchedulesGetAssignmentsSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAssignments'\nimport { PayScheduleAssignmentType } from '@gusto/embedded-api/models/components/payscheduleassignment'\nimport type { PayScheduleAssignment as PayScheduleAssignmentEntity } from '@gusto/embedded-api/models/components/payscheduleassignment'\nimport { payScheduleAssignmentStateMachine } from './payScheduleAssignmentStateMachine'\nimport { AssignmentTypeStep } from './PayScheduleAssignmentComponents'\nimport type {\n PayScheduleAssignmentContextInterface,\n SupportedAssignmentType,\n} from './usePayScheduleAssignment'\nimport { stripNullAssignmentPreviewFields } from './stripNullAssignmentPreviewFields'\nimport { Flow } from '@/components/Flow/Flow'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport type { BaseComponentKeys } from '@/components/Base/Base'\nimport { useI18n } from '@/i18n'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { useUnstableFeature } from '@/contexts/UnstableFeaturesProvider/useUnstableFeature'\n\ntype AssignmentSeed = Pick<\n PayScheduleAssignmentContextInterface,\n 'assignmentType' | 'defaultPayScheduleUuid' | 'hourlyPayScheduleUuid' | 'salariedPayScheduleUuid'\n>\n\nfunction toSupportedType(\n type: PayScheduleAssignmentType | null | undefined,\n): SupportedAssignmentType | undefined {\n switch (type) {\n case PayScheduleAssignmentType.Single:\n case PayScheduleAssignmentType.HourlySalaried:\n return type\n default:\n // by_employee and by_department have no step implementations; start from the type step\n // with nothing preselected rather than seeding a type the flow can't render.\n return undefined\n }\n}\n\n/**\n * Builds the flow's starting context from the company's current assignment, so the flow opens\n * on what's already configured instead of proposing a change the user didn't ask for. The type\n * and the uuids have to travel together — without the type, the type step's first Continue\n * counts as a type change and clears the uuids.\n */\nfunction toAssignmentSeed(assignment: PayScheduleAssignmentEntity | undefined): AssignmentSeed {\n const assignmentType = toSupportedType(assignment?.type)\n\n if (!assignmentType) {\n return {}\n }\n\n return {\n assignmentType,\n defaultPayScheduleUuid: assignment?.defaultPayScheduleUuid ?? undefined,\n hourlyPayScheduleUuid: assignment?.hourlyPayScheduleUuid ?? undefined,\n salariedPayScheduleUuid: assignment?.salariedPayScheduleUuid ?? undefined,\n }\n}\n\n/**\n * Props for {@link PayScheduleAssignment}.\n *\n * @alpha\n */\nexport interface PayScheduleAssignmentProps extends BaseComponentInterface<'Company.Management.PayScheduleAssignment'> {\n /** Company whose pay schedule assignment is managed. */\n companyId: string\n}\n\n/**\n * Assigns a company's employees to a pay schedule.\n *\n * @remarks\n * Walks through choosing an assignment type, picking (or creating) a pay schedule, and reviewing\n * the employees and transition payrolls affected before submitting. Opens on the company's\n * current assignment, so submitting without changing anything is a no-op rather than a\n * reassignment. Two assignment types are\n * supported: one schedule for everyone (`single`), or separate schedules for hourly and salaried\n * employees (`hourly_salaried`). Picking the same schedule for both compensation types is\n * submitted as `single`. Can be mounted directly or launched from\n * `CompanyManagement.PaySchedule`'s Manage action.\n *\n * The internal step-to-step selection events (assignment type chosen, schedule picked) also\n * bubble through `onEvent` as a side effect of how the underlying `Flow` re-emits every event —\n * they carry no information a host needs mid-flow, since `assigned` reports the final outcome,\n * so they're intentionally left out of the table below.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `paySchedule/create` | The user chose to add a new pay schedule from the picker step | — |\n * | `paySchedule/created` | A new pay schedule was created from the picker step | `{ paySchedule: PayScheduleShow }` |\n * | `paySchedule/management/assignment/cancel` | The user backed out of the flow entirely, from the first step | — |\n * | `paySchedule/management/assignment/assigned` | The assignment was submitted successfully | `{ employeeChanges: PayScheduleAssignmentEmployeeChange[] }` plus either `{ type: 'single'; defaultPayScheduleUuid: string }` or `{ type: 'hourly_salaried'; hourlyPayScheduleUuid: string; salariedPayScheduleUuid: string }` |\n *\n * @alpha\n */\nexport const PayScheduleAssignment = ({\n companyId,\n dictionary,\n ...props\n}: PayScheduleAssignmentProps) => {\n useUnstableFeature('managePaySchedules', { throwIfDisabled: true })\n\n return (\n <BaseComponent {...props}>\n <Root companyId={companyId} dictionary={dictionary} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, dictionary }: Omit<PayScheduleAssignmentProps, BaseComponentKeys>) {\n useI18n('Company.Management.PayScheduleAssignment')\n useComponentDictionary('Company.Management.PayScheduleAssignment', dictionary)\n // AssignmentCreateScheduleStep reuses the onboarding PayScheduleForm, whose translations live\n // under its own namespace and are otherwise never loaded from this flow.\n useI18n('Company.PaySchedule')\n const { onEvent } = useBase()\n\n // Temporary: patch the assignment-preview response before the SDK validates it, and log\n // request/error details for debugging. See stripNullAssignmentPreviewFields for why —\n // remove both alongside it once the OAS is fixed upstream.\n const client = useGustoEmbeddedContext()\n useEffect(() => {\n const hooks = client._options.hooks\n if (!hooks) return\n hooks.registerAfterSuccessHook(stripNullAssignmentPreviewFields)\n\n return () => {\n // Remove only the single instance this effect registered — filtering the array would\n // also drop another concurrently-mounted instance's registration of the same hook.\n const index = hooks.afterSuccessHooks.indexOf(stripNullAssignmentPreviewFields)\n if (index !== -1) {\n hooks.afterSuccessHooks.splice(index, 1)\n }\n }\n }, [client])\n\n const { data: assignments } = usePaySchedulesGetAssignmentsSuspense({ companyId })\n\n /**\n * Freeze the company's current assignment as the flow's starting point. Submitting the flow\n * invalidates the whole SDK namespace, so this query refetches mid-submit — recomputing the\n * seed would re-seat the machine back to the first step and orphan its interpreter.\n */\n const [seed] = useState(() => toAssignmentSeed(assignments.payScheduleAssignment))\n\n const machine = useMemo(\n () =>\n createMachine(\n 'assignmentType',\n payScheduleAssignmentStateMachine,\n (initialContext: PayScheduleAssignmentContextInterface) => ({\n ...initialContext,\n component: AssignmentTypeStep,\n companyId,\n ...seed,\n }),\n ),\n [companyId, seed],\n )\n\n return <Flow machine={machine} onEvent={onEvent} />\n}\n"],"names":["toSupportedType","type","PayScheduleAssignmentType","toAssignmentSeed","assignment","assignmentType","PayScheduleAssignment","companyId","dictionary","props","useUnstableFeature","jsx","BaseComponent","Root","useI18n","useComponentDictionary","onEvent","useBase","client","useGustoEmbeddedContext","useEffect","hooks","stripNullAssignmentPreviewFields","index","assignments","usePaySchedulesGetAssignmentsSuspense","seed","useState","machine","useMemo","createMachine","payScheduleAssignmentStateMachine","initialContext","AssignmentTypeStep","Flow"],"mappings":";;;;;;;;;;;;;;AAyBA,SAASA,EACPC,GACqC;AACrC,UAAQA,GAAA;AAAA,IACN,KAAKC,EAA0B;AAAA,IAC/B,KAAKA,EAA0B;AAC7B,aAAOD;AAAA,IACT;AAGE;AAAA,EAAO;AAEb;AAQA,SAASE,EAAiBC,GAAqE;AAC7F,QAAMC,IAAiBL,EAAgBI,GAAY,IAAI;AAEvD,SAAKC,IAIE;AAAA,IACL,gBAAAA;AAAA,IACA,wBAAwBD,GAAY,0BAA0B;AAAA,IAC9D,uBAAuBA,GAAY,yBAAyB;AAAA,IAC5D,yBAAyBA,GAAY,2BAA2B;AAAA,EAAA,IAPzD,CAAA;AASX;AAwCO,MAAME,IAAwB,CAAC;AAAA,EACpC,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,OACEC,EAAmB,sBAAsB,EAAE,iBAAiB,GAAA,CAAM,GAGhE,gBAAAC,EAACC,KAAe,GAAGH,GACjB,4BAACI,GAAA,EAAK,WAAAN,GAAsB,YAAAC,GAAwB,EAAA,CACtD;AAIJ,SAASK,EAAK,EAAE,WAAAN,GAAW,YAAAC,KAAmE;AAC5F,EAAAM,EAAQ,0CAA0C,GAClDC,EAAuB,4CAA4CP,CAAU,GAG7EM,EAAQ,qBAAqB;AAC7B,QAAM,EAAE,SAAAE,EAAA,IAAYC,EAAA,GAKdC,IAASC,EAAA;AACf,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAQH,EAAO,SAAS;AAC9B,QAAKG;AACL,aAAAA,EAAM,yBAAyBC,CAAgC,GAExD,MAAM;AAGX,cAAMC,IAAQF,EAAM,kBAAkB,QAAQC,CAAgC;AAC9E,QAAIC,MAAU,MACZF,EAAM,kBAAkB,OAAOE,GAAO,CAAC;AAAA,MAE3C;AAAA,EACF,GAAG,CAACL,CAAM,CAAC;AAEX,QAAM,EAAE,MAAMM,EAAA,IAAgBC,EAAsC,EAAE,WAAAlB,GAAW,GAO3E,CAACmB,CAAI,IAAIC,EAAS,MAAMxB,EAAiBqB,EAAY,qBAAqB,CAAC,GAE3EI,IAAUC;AAAA,IACd,MACEC;AAAA,MACE;AAAA,MACAC;AAAA,MACA,CAACC,OAA2D;AAAA,QAC1D,GAAGA;AAAA,QACH,WAAWC;AAAA,QACX,WAAA1B;AAAA,QACA,GAAGmB;AAAA,MAAA;AAAA,IACL;AAAA,IAEJ,CAACnB,GAAWmB,CAAI;AAAA,EAAA;AAGlB,SAAO,gBAAAf,EAACuB,GAAA,EAAK,SAAAN,GAAkB,SAAAZ,EAAA,CAAkB;AACnD;"}
|
|
@@ -1,101 +1,141 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { usePaySchedulesGetAllSuspense as
|
|
4
|
-
import { usePaySchedulesPreviewAssignmentMutation as
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useState as C, useMemo as _, useEffect as U } from "react";
|
|
3
|
+
import { usePaySchedulesGetAllSuspense as T } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
|
|
4
|
+
import { usePaySchedulesPreviewAssignmentMutation as L } from "@gusto/embedded-api/react-query/paySchedulesPreviewAssignment";
|
|
5
5
|
import { usePaySchedulesAssignMutation as v } from "@gusto/embedded-api/react-query/paySchedulesAssign";
|
|
6
|
-
import { PayScheduleAssignmentBodyType as
|
|
7
|
-
import { AssignmentTypeStepPresentation as
|
|
8
|
-
import { AssignmentScheduleStepPresentation as
|
|
6
|
+
import { PayScheduleAssignmentBodyType as l } from "@gusto/embedded-api/models/components/payscheduleassignmentbody";
|
|
7
|
+
import { AssignmentTypeStepPresentation as D } from "./AssignmentTypeStepPresentation.js";
|
|
8
|
+
import { AssignmentScheduleStepPresentation as H } from "./AssignmentScheduleStepPresentation.js";
|
|
9
|
+
import { AssignmentCompensationStepPresentation as N } from "./AssignmentCompensationStepPresentation.js";
|
|
9
10
|
import { AssignmentReviewStepPresentation as I } from "./AssignmentReviewStepPresentation.js";
|
|
10
|
-
import { PayScheduleForm as
|
|
11
|
-
import { useFlow as
|
|
12
|
-
import { BaseLayout as
|
|
13
|
-
import { useBase as
|
|
14
|
-
import { ensureRequired as
|
|
15
|
-
import { componentEvents as
|
|
16
|
-
function
|
|
17
|
-
const { assignmentType:
|
|
18
|
-
return /* @__PURE__ */
|
|
19
|
-
|
|
11
|
+
import { PayScheduleForm as B } from "../../PayScheduleForm.js";
|
|
12
|
+
import { useFlow as A } from "../../../../Flow/useFlow.js";
|
|
13
|
+
import { BaseLayout as Y } from "../../../../Base/Base.js";
|
|
14
|
+
import { useBase as w } from "../../../../Base/useBase.js";
|
|
15
|
+
import { ensureRequired as i } from "../../../../../helpers/ensureRequired.js";
|
|
16
|
+
import { componentEvents as n } from "../../../../../shared/constants.js";
|
|
17
|
+
function X() {
|
|
18
|
+
const { assignmentType: t, onEvent: o } = A();
|
|
19
|
+
return /* @__PURE__ */ r(
|
|
20
|
+
D,
|
|
20
21
|
{
|
|
21
|
-
defaultType:
|
|
22
|
+
defaultType: t,
|
|
22
23
|
onBack: () => {
|
|
23
|
-
n
|
|
24
|
+
o(n.PAY_SCHEDULE_ASSIGNMENT_CANCEL);
|
|
24
25
|
},
|
|
25
|
-
onContinue: (
|
|
26
|
-
n
|
|
26
|
+
onContinue: (u) => {
|
|
27
|
+
o(n.PAY_SCHEDULE_ASSIGNMENT_TYPE_SELECTED, { type: u });
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
);
|
|
30
31
|
}
|
|
31
|
-
function
|
|
32
|
-
const {
|
|
33
|
-
companyId:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
function Z() {
|
|
33
|
+
const {
|
|
34
|
+
companyId: t,
|
|
35
|
+
assignmentType: o,
|
|
36
|
+
defaultPayScheduleUuid: u,
|
|
37
|
+
hourlyPayScheduleUuid: y,
|
|
38
|
+
salariedPayScheduleUuid: p,
|
|
39
|
+
onEvent: s
|
|
40
|
+
} = A(), { data: d } = T({
|
|
41
|
+
companyId: i(t)
|
|
42
|
+
}), a = d.payScheduleShowResponse ?? [], S = a.find((e) => e.active), c = (e) => a.some((h) => h.uuid === e) ? e : S?.uuid;
|
|
43
|
+
return o === l.HourlySalaried ? /* @__PURE__ */ r(
|
|
44
|
+
N,
|
|
37
45
|
{
|
|
38
|
-
schedules:
|
|
39
|
-
|
|
46
|
+
schedules: a,
|
|
47
|
+
hourlyPayScheduleUuid: c(y),
|
|
48
|
+
salariedPayScheduleUuid: c(p),
|
|
40
49
|
onBack: () => {
|
|
41
|
-
|
|
50
|
+
s(n.PAY_SCHEDULE_ASSIGNMENT_BACK);
|
|
42
51
|
},
|
|
43
52
|
onAddPaySchedule: () => {
|
|
44
|
-
|
|
53
|
+
s(n.PAY_SCHEDULE_CREATE);
|
|
45
54
|
},
|
|
46
|
-
onContinue: (
|
|
47
|
-
|
|
48
|
-
|
|
55
|
+
onContinue: (e) => {
|
|
56
|
+
s(n.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED, e);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
) : /* @__PURE__ */ r(
|
|
60
|
+
H,
|
|
61
|
+
{
|
|
62
|
+
schedules: a,
|
|
63
|
+
defaultPayScheduleUuid: c(u),
|
|
64
|
+
onBack: () => {
|
|
65
|
+
s(n.PAY_SCHEDULE_ASSIGNMENT_BACK);
|
|
66
|
+
},
|
|
67
|
+
onAddPaySchedule: () => {
|
|
68
|
+
s(n.PAY_SCHEDULE_CREATE);
|
|
69
|
+
},
|
|
70
|
+
onContinue: (e) => {
|
|
71
|
+
s(n.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED, {
|
|
72
|
+
defaultPayScheduleUuid: e
|
|
49
73
|
});
|
|
50
74
|
}
|
|
51
75
|
}
|
|
52
76
|
);
|
|
53
77
|
}
|
|
54
|
-
function
|
|
55
|
-
const { companyId:
|
|
56
|
-
return /* @__PURE__ */
|
|
78
|
+
function $() {
|
|
79
|
+
const { companyId: t, onEvent: o } = A();
|
|
80
|
+
return /* @__PURE__ */ r(B, { companyId: i(t), onEvent: o });
|
|
57
81
|
}
|
|
58
|
-
function
|
|
59
|
-
const {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
82
|
+
function ee() {
|
|
83
|
+
const {
|
|
84
|
+
companyId: t,
|
|
85
|
+
assignmentType: o,
|
|
86
|
+
defaultPayScheduleUuid: u,
|
|
87
|
+
hourlyPayScheduleUuid: y,
|
|
88
|
+
salariedPayScheduleUuid: p,
|
|
89
|
+
onEvent: s
|
|
90
|
+
} = A(), { baseSubmitHandler: d, error: a } = w(), [S, c] = C(null), { mutateAsync: e, isPending: h } = L(), { mutateAsync: f, isPending: g } = v(), E = _(() => {
|
|
91
|
+
if (o === l.HourlySalaried) {
|
|
92
|
+
const m = i(y), P = i(p);
|
|
93
|
+
return m === P ? {
|
|
94
|
+
type: l.Single,
|
|
95
|
+
defaultPayScheduleUuid: m
|
|
96
|
+
} : {
|
|
97
|
+
type: l.HourlySalaried,
|
|
98
|
+
hourlyPayScheduleUuid: m,
|
|
99
|
+
salariedPayScheduleUuid: P
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
type: l.Single,
|
|
104
|
+
defaultPayScheduleUuid: i(u)
|
|
105
|
+
};
|
|
106
|
+
}, [o, u, y, p]);
|
|
107
|
+
return U(() => {
|
|
108
|
+
d(void 0, async () => {
|
|
109
|
+
const m = await e({
|
|
110
|
+
request: { companyId: i(t), payScheduleAssignmentBody: E }
|
|
70
111
|
});
|
|
71
|
-
|
|
112
|
+
c(m.payScheduleAssignmentPreview?.employeeChanges ?? []);
|
|
72
113
|
});
|
|
73
|
-
}, [
|
|
114
|
+
}, [t, E, e, d]), a ? null : h || !S ? /* @__PURE__ */ r(Y, { isLoading: !0 }) : /* @__PURE__ */ r(
|
|
74
115
|
I,
|
|
75
116
|
{
|
|
76
|
-
employeeChanges:
|
|
77
|
-
isSubmitting:
|
|
117
|
+
employeeChanges: S,
|
|
118
|
+
isSubmitting: g,
|
|
78
119
|
onBack: () => {
|
|
79
|
-
|
|
120
|
+
s(n.PAY_SCHEDULE_ASSIGNMENT_BACK);
|
|
80
121
|
},
|
|
81
122
|
onSubmit: () => {
|
|
82
|
-
|
|
83
|
-
await
|
|
84
|
-
request: {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
});
|
|
123
|
+
d(void 0, async () => {
|
|
124
|
+
await f({
|
|
125
|
+
request: {
|
|
126
|
+
companyId: i(t),
|
|
127
|
+
payScheduleAssignmentBody: E
|
|
128
|
+
}
|
|
129
|
+
}), s(n.PAY_SCHEDULE_ASSIGNED, { ...E, employeeChanges: S });
|
|
90
130
|
});
|
|
91
131
|
}
|
|
92
132
|
}
|
|
93
133
|
);
|
|
94
134
|
}
|
|
95
135
|
export {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
136
|
+
$ as AssignmentCreateScheduleStep,
|
|
137
|
+
ee as AssignmentReviewStep,
|
|
138
|
+
Z as AssignmentScheduleStep,
|
|
139
|
+
X as AssignmentTypeStep
|
|
100
140
|
};
|
|
101
141
|
//# sourceMappingURL=PayScheduleAssignmentComponents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayScheduleAssignmentComponents.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePaySchedulesPreviewAssignmentMutation } from '@gusto/embedded-api/react-query/paySchedulesPreviewAssignment'\nimport { usePaySchedulesAssignMutation } from '@gusto/embedded-api/react-query/paySchedulesAssign'\nimport { PayScheduleAssignmentBodyType } from '@gusto/embedded-api/models/components/payscheduleassignmentbody'\nimport type { PayScheduleAssignmentBody } from '@gusto/embedded-api/models/components/payscheduleassignmentbody'\nimport type { PayScheduleAssignmentEmployeeChange } from '@gusto/embedded-api/models/components/payscheduleassignmentemployeechange'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { AssignmentTypeStepPresentation } from './AssignmentTypeStepPresentation'\nimport { AssignmentScheduleStepPresentation } from './AssignmentScheduleStepPresentation'\nimport { AssignmentReviewStepPresentation } from './AssignmentReviewStepPresentation'\nimport type { PayScheduleAssignmentContextInterface } from './usePayScheduleAssignment'\nimport { PayScheduleForm } from '@/components/Company/PaySchedule/PayScheduleForm'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useBase, BaseLayout } from '@/components/Base'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { componentEvents } from '@/shared/constants'\n\n/** @internal */\nexport type EventPayloads = {\n [componentEvents.PAY_SCHEDULE_ASSIGNMENT_TYPE_SELECTED]: { type: PayScheduleAssignmentBodyType }\n [componentEvents.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED]: { defaultPayScheduleUuid: string }\n [componentEvents.PAY_SCHEDULE_CREATED]: { paySchedule: PayScheduleShow }\n [componentEvents.PAY_SCHEDULE_ASSIGNED]: {\n type: PayScheduleAssignmentBodyType\n defaultPayScheduleUuid: string\n employeeChanges: PayScheduleAssignmentEmployeeChange[]\n }\n}\n\n/** @internal */\nexport function AssignmentTypeStep() {\n const { assignmentType, onEvent } = useFlow<PayScheduleAssignmentContextInterface>()\n\n return (\n <AssignmentTypeStepPresentation\n defaultType={\n assignmentType === PayScheduleAssignmentBodyType.Single ? assignmentType : undefined\n }\n onBack={() => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_CANCEL)\n }}\n onContinue={type => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_TYPE_SELECTED, { type })\n }}\n />\n )\n}\n\n/** @internal */\nexport function AssignmentScheduleStep() {\n const { companyId, defaultPayScheduleUuid, onEvent } =\n useFlow<PayScheduleAssignmentContextInterface>()\n const { data: paySchedules } = usePaySchedulesGetAllSuspense({\n companyId: ensureRequired(companyId),\n })\n const schedules = paySchedules.payScheduleShowResponse ?? []\n const activeSchedule = schedules.find(s => s.active)\n\n return (\n <AssignmentScheduleStepPresentation\n schedules={schedules}\n defaultPayScheduleUuid={defaultPayScheduleUuid ?? activeSchedule?.uuid}\n onBack={() => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_BACK)\n }}\n onAddPaySchedule={() => {\n onEvent(componentEvents.PAY_SCHEDULE_CREATE)\n }}\n onContinue={uuid => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED, {\n defaultPayScheduleUuid: uuid,\n })\n }}\n />\n )\n}\n\n/** @internal */\nexport function AssignmentCreateScheduleStep() {\n const { companyId, onEvent } = useFlow<PayScheduleAssignmentContextInterface>()\n\n return <PayScheduleForm companyId={ensureRequired(companyId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function AssignmentReviewStep() {\n const { companyId, assignmentType, defaultPayScheduleUuid, onEvent } =\n useFlow<PayScheduleAssignmentContextInterface>()\n const { baseSubmitHandler, error } = useBase()\n const [employeeChanges, setEmployeeChanges] = useState<\n PayScheduleAssignmentEmployeeChange[] | null\n >(null)\n const { mutateAsync: previewAssignment, isPending: isPreviewLoading } =\n usePaySchedulesPreviewAssignmentMutation()\n const { mutateAsync: assignSchedules, isPending: isAssigning } = usePaySchedulesAssignMutation()\n\n const payScheduleAssignmentBody: PayScheduleAssignmentBody = useMemo(\n () => ({\n type: assignmentType ?? PayScheduleAssignmentBodyType.Single,\n defaultPayScheduleUuid,\n }),\n [assignmentType, defaultPayScheduleUuid],\n )\n\n useEffect(() => {\n void baseSubmitHandler(undefined, async () => {\n const response = await previewAssignment({\n request: { companyId: ensureRequired(companyId), payScheduleAssignmentBody },\n })\n setEmployeeChanges(response.payScheduleAssignmentPreview?.employeeChanges ?? [])\n })\n }, [companyId, payScheduleAssignmentBody, previewAssignment, baseSubmitHandler])\n\n // The enclosing BaseComponent's own BaseLayout already renders `error` for this whole\n // component tree, so surface only the loading state here to avoid rendering it twice.\n if (error) {\n return null\n }\n if (isPreviewLoading || !employeeChanges) {\n return <BaseLayout isLoading />\n }\n\n return (\n <AssignmentReviewStepPresentation\n employeeChanges={employeeChanges}\n isSubmitting={isAssigning}\n onBack={() => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_BACK)\n }}\n onSubmit={() => {\n void baseSubmitHandler(undefined, async () => {\n await assignSchedules({\n request: { companyId: ensureRequired(companyId), payScheduleAssignmentBody },\n })\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNED, {\n type: payScheduleAssignmentBody.type,\n defaultPayScheduleUuid: ensureRequired(defaultPayScheduleUuid),\n employeeChanges,\n })\n })\n }}\n />\n )\n}\n"],"names":["AssignmentTypeStep","assignmentType","onEvent","useFlow","jsx","AssignmentTypeStepPresentation","PayScheduleAssignmentBodyType","componentEvents","type","AssignmentScheduleStep","companyId","defaultPayScheduleUuid","paySchedules","usePaySchedulesGetAllSuspense","ensureRequired","schedules","activeSchedule","s","AssignmentScheduleStepPresentation","uuid","AssignmentCreateScheduleStep","PayScheduleForm","AssignmentReviewStep","baseSubmitHandler","error","useBase","employeeChanges","setEmployeeChanges","useState","previewAssignment","isPreviewLoading","usePaySchedulesPreviewAssignmentMutation","assignSchedules","isAssigning","usePaySchedulesAssignMutation","payScheduleAssignmentBody","useMemo","useEffect","response","BaseLayout","AssignmentReviewStepPresentation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PayScheduleAssignmentComponents.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePaySchedulesPreviewAssignmentMutation } from '@gusto/embedded-api/react-query/paySchedulesPreviewAssignment'\nimport { usePaySchedulesAssignMutation } from '@gusto/embedded-api/react-query/paySchedulesAssign'\nimport { PayScheduleAssignmentBodyType } from '@gusto/embedded-api/models/components/payscheduleassignmentbody'\nimport type { PayScheduleAssignmentEmployeeChange } from '@gusto/embedded-api/models/components/payscheduleassignmentemployeechange'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { AssignmentTypeStepPresentation } from './AssignmentTypeStepPresentation'\nimport { AssignmentScheduleStepPresentation } from './AssignmentScheduleStepPresentation'\nimport { AssignmentCompensationStepPresentation } from './AssignmentCompensationStepPresentation'\nimport { AssignmentReviewStepPresentation } from './AssignmentReviewStepPresentation'\nimport type {\n PayScheduleAssignmentContextInterface,\n SupportedAssignmentType,\n} from './usePayScheduleAssignment'\nimport { PayScheduleForm } from '@/components/Company/PaySchedule/PayScheduleForm'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useBase, BaseLayout } from '@/components/Base'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { componentEvents } from '@/shared/constants'\n\n/**\n * The assignment the user built, already collapsed to the type that actually gets submitted.\n * Doubles as the request body and as the `assigned` event payload.\n *\n * @internal\n */\nexport type AssignmentSelection =\n | {\n type: typeof PayScheduleAssignmentBodyType.Single\n defaultPayScheduleUuid: string\n }\n | {\n type: typeof PayScheduleAssignmentBodyType.HourlySalaried\n hourlyPayScheduleUuid: string\n salariedPayScheduleUuid: string\n }\n\n/** @internal */\nexport type EventPayloads = {\n [componentEvents.PAY_SCHEDULE_ASSIGNMENT_TYPE_SELECTED]: { type: SupportedAssignmentType }\n [componentEvents.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED]:\n | { defaultPayScheduleUuid: string }\n | { hourlyPayScheduleUuid: string; salariedPayScheduleUuid: string }\n [componentEvents.PAY_SCHEDULE_CREATED]: { paySchedule: PayScheduleShow }\n [componentEvents.PAY_SCHEDULE_ASSIGNED]: AssignmentSelection & {\n employeeChanges: PayScheduleAssignmentEmployeeChange[]\n }\n}\n\n/** @internal */\nexport function AssignmentTypeStep() {\n const { assignmentType, onEvent } = useFlow<PayScheduleAssignmentContextInterface>()\n\n return (\n <AssignmentTypeStepPresentation\n defaultType={assignmentType}\n onBack={() => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_CANCEL)\n }}\n onContinue={type => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_TYPE_SELECTED, { type })\n }}\n />\n )\n}\n\n/** @internal */\nexport function AssignmentScheduleStep() {\n const {\n companyId,\n assignmentType,\n defaultPayScheduleUuid,\n hourlyPayScheduleUuid,\n salariedPayScheduleUuid,\n onEvent,\n } = useFlow<PayScheduleAssignmentContextInterface>()\n const { data: paySchedules } = usePaySchedulesGetAllSuspense({\n companyId: ensureRequired(companyId),\n })\n const schedules = paySchedules.payScheduleShowResponse ?? []\n const activeSchedule = schedules.find(s => s.active)\n /**\n * A uuid carried in from the company's existing assignment has no option to select if the\n * schedule is no longer in the company's list, which would leave the dropdown blank.\n */\n const preselect = (uuid: string | undefined) =>\n schedules.some(s => s.uuid === uuid) ? uuid : activeSchedule?.uuid\n\n if (assignmentType === PayScheduleAssignmentBodyType.HourlySalaried) {\n return (\n <AssignmentCompensationStepPresentation\n schedules={schedules}\n hourlyPayScheduleUuid={preselect(hourlyPayScheduleUuid)}\n salariedPayScheduleUuid={preselect(salariedPayScheduleUuid)}\n onBack={() => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_BACK)\n }}\n onAddPaySchedule={() => {\n onEvent(componentEvents.PAY_SCHEDULE_CREATE)\n }}\n onContinue={selection => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED, selection)\n }}\n />\n )\n }\n\n return (\n <AssignmentScheduleStepPresentation\n schedules={schedules}\n defaultPayScheduleUuid={preselect(defaultPayScheduleUuid)}\n onBack={() => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_BACK)\n }}\n onAddPaySchedule={() => {\n onEvent(componentEvents.PAY_SCHEDULE_CREATE)\n }}\n onContinue={uuid => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED, {\n defaultPayScheduleUuid: uuid,\n })\n }}\n />\n )\n}\n\n/** @internal */\nexport function AssignmentCreateScheduleStep() {\n const { companyId, onEvent } = useFlow<PayScheduleAssignmentContextInterface>()\n\n return <PayScheduleForm companyId={ensureRequired(companyId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function AssignmentReviewStep() {\n const {\n companyId,\n assignmentType,\n defaultPayScheduleUuid,\n hourlyPayScheduleUuid,\n salariedPayScheduleUuid,\n onEvent,\n } = useFlow<PayScheduleAssignmentContextInterface>()\n const { baseSubmitHandler, error } = useBase()\n const [employeeChanges, setEmployeeChanges] = useState<\n PayScheduleAssignmentEmployeeChange[] | null\n >(null)\n const { mutateAsync: previewAssignment, isPending: isPreviewLoading } =\n usePaySchedulesPreviewAssignmentMutation()\n const { mutateAsync: assignSchedules, isPending: isAssigning } = usePaySchedulesAssignMutation()\n\n const assignment: AssignmentSelection = useMemo(() => {\n if (assignmentType === PayScheduleAssignmentBodyType.HourlySalaried) {\n const hourly = ensureRequired(hourlyPayScheduleUuid)\n const salaried = ensureRequired(salariedPayScheduleUuid)\n\n // One schedule for both compensation types is a single-schedule assignment. Collapsing\n // here rather than at submit keeps the previewed changes identical to what gets sent.\n if (hourly === salaried) {\n return {\n type: PayScheduleAssignmentBodyType.Single,\n defaultPayScheduleUuid: hourly,\n }\n }\n\n return {\n type: PayScheduleAssignmentBodyType.HourlySalaried,\n hourlyPayScheduleUuid: hourly,\n salariedPayScheduleUuid: salaried,\n }\n }\n\n return {\n type: PayScheduleAssignmentBodyType.Single,\n defaultPayScheduleUuid: ensureRequired(defaultPayScheduleUuid),\n }\n }, [assignmentType, defaultPayScheduleUuid, hourlyPayScheduleUuid, salariedPayScheduleUuid])\n\n useEffect(() => {\n void baseSubmitHandler(undefined, async () => {\n const response = await previewAssignment({\n request: { companyId: ensureRequired(companyId), payScheduleAssignmentBody: assignment },\n })\n setEmployeeChanges(response.payScheduleAssignmentPreview?.employeeChanges ?? [])\n })\n }, [companyId, assignment, previewAssignment, baseSubmitHandler])\n\n // The enclosing BaseComponent's own BaseLayout already renders `error` for this whole\n // component tree, so surface only the loading state here to avoid rendering it twice.\n if (error) {\n return null\n }\n if (isPreviewLoading || !employeeChanges) {\n return <BaseLayout isLoading />\n }\n\n return (\n <AssignmentReviewStepPresentation\n employeeChanges={employeeChanges}\n isSubmitting={isAssigning}\n onBack={() => {\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNMENT_BACK)\n }}\n onSubmit={() => {\n void baseSubmitHandler(undefined, async () => {\n await assignSchedules({\n request: {\n companyId: ensureRequired(companyId),\n payScheduleAssignmentBody: assignment,\n },\n })\n onEvent(componentEvents.PAY_SCHEDULE_ASSIGNED, { ...assignment, employeeChanges })\n })\n }}\n />\n )\n}\n"],"names":["AssignmentTypeStep","assignmentType","onEvent","useFlow","jsx","AssignmentTypeStepPresentation","componentEvents","type","AssignmentScheduleStep","companyId","defaultPayScheduleUuid","hourlyPayScheduleUuid","salariedPayScheduleUuid","paySchedules","usePaySchedulesGetAllSuspense","ensureRequired","schedules","activeSchedule","s","preselect","uuid","PayScheduleAssignmentBodyType","AssignmentCompensationStepPresentation","selection","AssignmentScheduleStepPresentation","AssignmentCreateScheduleStep","PayScheduleForm","AssignmentReviewStep","baseSubmitHandler","error","useBase","employeeChanges","setEmployeeChanges","useState","previewAssignment","isPreviewLoading","usePaySchedulesPreviewAssignmentMutation","assignSchedules","isAssigning","usePaySchedulesAssignMutation","assignment","useMemo","hourly","salaried","useEffect","response","BaseLayout","AssignmentReviewStepPresentation"],"mappings":"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"}
|