@gusto/embedded-react-sdk 0.10.1 → 0.10.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 +57 -51
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Common/InternalError/InternalError.js.map +1 -1
- package/dist/components/Common/UI/ComboBox/ComboBox.js +31 -33
- package/dist/components/Common/UI/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +1 -1
- package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccount.d.ts +2 -2
- package/dist/components/Company/BankAccount/BankAccount.js +25 -20
- package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +30 -28
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentSigner.d.ts +5 -7
- package/dist/components/Company/DocumentSigner/DocumentSigner.js +24 -24
- package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +7 -6
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +4 -3
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
- package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Contractor/Address/useAddress.js +6 -5
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/Deductions/useDeductions.js +6 -5
- package/dist/components/Employee/Deductions/useDeductions.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
- package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/useProfile.js +4 -3
- package/dist/components/Employee/Profile/useProfile.js.map +1 -1
- package/dist/components/Employee/Taxes/useTaxes.js +4 -3
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.2
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
|
|
7
|
+
- Fix bank account not found error
|
|
8
|
+
- Fix ComboBox focus ring
|
|
9
|
+
|
|
10
|
+
### Chores & Maintenance
|
|
11
|
+
|
|
12
|
+
- Add reset to InternalError and clean up error handling
|
|
13
|
+
- Add initial contractor onboarding documentation
|
|
14
|
+
- Add contractor address tests
|
|
15
|
+
|
|
3
16
|
## 0.10.1
|
|
4
17
|
|
|
5
18
|
- Fixed work address being stale when editing an existing employee in employee onboarding
|
|
@@ -1,78 +1,84 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { ErrorBoundary as
|
|
4
|
-
import { useTranslation as
|
|
5
|
-
import { APIError as
|
|
6
|
-
import { SDKValidationError as
|
|
7
|
-
import { UnprocessableEntityErrorObject as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
1
|
+
import { jsx as r, jsxs as u } from "react/jsx-runtime";
|
|
2
|
+
import { useState as y, useCallback as v, Suspense as A } from "react";
|
|
3
|
+
import { ErrorBoundary as R } from "react-error-boundary";
|
|
4
|
+
import { useTranslation as S } from "react-i18next";
|
|
5
|
+
import { APIError as E } from "@gusto/embedded-api/models/errors/apierror";
|
|
6
|
+
import { SDKValidationError as g } from "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
7
|
+
import { UnprocessableEntityErrorObject as h } from "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
|
|
8
|
+
import { QueryErrorResetBoundary as B } from "@tanstack/react-query";
|
|
9
|
+
import { FadeIn as T } from "../Common/FadeIn/FadeIn.js";
|
|
10
|
+
import { BaseContext as _ } from "./useBase.js";
|
|
11
|
+
import { componentEvents as j } from "../../shared/constants.js";
|
|
12
|
+
import { useAsyncError as I } from "../Common/hooks/useAsyncError.js";
|
|
13
|
+
import { Loading as K } from "../Common/Loading/Loading.js";
|
|
14
|
+
import { InternalError as P } from "../Common/InternalError/InternalError.js";
|
|
14
15
|
import { snakeCaseToCamelCase as w } from "../../helpers/formattedStrings.js";
|
|
15
16
|
import { useComponentContext as M } from "../../contexts/ComponentAdapter/useComponentContext.js";
|
|
16
|
-
const O = (
|
|
17
|
-
const
|
|
18
|
-
if (
|
|
17
|
+
const O = (e) => e.map((o) => o.message ? /* @__PURE__ */ r("li", { children: o.message }, o.key) : null), k = (e, o) => {
|
|
18
|
+
const m = o ? o + "." : "";
|
|
19
|
+
if (e.category === "invalid_attribute_value" || e.category === "invalid_operation")
|
|
19
20
|
return [
|
|
20
21
|
{
|
|
21
|
-
key: w(
|
|
22
|
-
message:
|
|
22
|
+
key: w(m + e.errorKey),
|
|
23
|
+
message: e.message ?? ""
|
|
23
24
|
}
|
|
24
25
|
];
|
|
25
|
-
if (
|
|
26
|
-
let
|
|
27
|
-
return
|
|
26
|
+
if (e.category === "nested_errors" && e.errors !== void 0) {
|
|
27
|
+
let n = "";
|
|
28
|
+
return e.metadata?.key && typeof e.metadata.key == "string" ? n = e.metadata.key : e.metadata?.state && typeof e.metadata.state == "string" ? n = e.metadata.state : e.errorKey && (n = e.errorKey), e.errors.flatMap((t) => k(t, m + n));
|
|
28
29
|
}
|
|
29
30
|
return [];
|
|
30
|
-
},
|
|
31
|
-
children:
|
|
32
|
-
FallbackComponent:
|
|
33
|
-
LoaderComponent:
|
|
34
|
-
onEvent:
|
|
31
|
+
}, $ = ({
|
|
32
|
+
children: e,
|
|
33
|
+
FallbackComponent: o = P,
|
|
34
|
+
LoaderComponent: m = K,
|
|
35
|
+
onEvent: n
|
|
35
36
|
}) => {
|
|
36
|
-
const [
|
|
37
|
-
|
|
38
|
-
},
|
|
39
|
-
async (
|
|
40
|
-
|
|
37
|
+
const [t, l] = y(null), [c, p] = y(null), d = I(), { t: x } = S(), f = M(), C = (s) => {
|
|
38
|
+
l(s), s instanceof h && Array.isArray(s.errors) && p(s.errors.flatMap((a) => k(a)));
|
|
39
|
+
}, b = v(
|
|
40
|
+
async (s, a) => {
|
|
41
|
+
l(null), p(null);
|
|
41
42
|
try {
|
|
42
|
-
await
|
|
43
|
-
} catch (
|
|
44
|
-
|
|
43
|
+
await a(s);
|
|
44
|
+
} catch (i) {
|
|
45
|
+
i instanceof E || i instanceof g || i instanceof h ? C(i) : d(i);
|
|
45
46
|
}
|
|
46
47
|
},
|
|
47
|
-
[
|
|
48
|
+
[l, d]
|
|
48
49
|
);
|
|
49
|
-
return /* @__PURE__ */
|
|
50
|
-
|
|
50
|
+
return /* @__PURE__ */ r(
|
|
51
|
+
_.Provider,
|
|
51
52
|
{
|
|
52
53
|
value: {
|
|
53
|
-
fieldErrors:
|
|
54
|
-
setError:
|
|
55
|
-
onEvent:
|
|
56
|
-
throwError:
|
|
57
|
-
baseSubmitHandler:
|
|
54
|
+
fieldErrors: c,
|
|
55
|
+
setError: l,
|
|
56
|
+
onEvent: n,
|
|
57
|
+
throwError: d,
|
|
58
|
+
baseSubmitHandler: b
|
|
58
59
|
},
|
|
59
|
-
children: /* @__PURE__ */
|
|
60
|
-
|
|
60
|
+
children: /* @__PURE__ */ r(B, { children: ({ reset: s }) => /* @__PURE__ */ u(
|
|
61
|
+
R,
|
|
61
62
|
{
|
|
62
|
-
FallbackComponent:
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
FallbackComponent: o,
|
|
64
|
+
onReset: s,
|
|
65
|
+
onError: (a) => {
|
|
66
|
+
n(j.ERROR, a);
|
|
65
67
|
},
|
|
66
68
|
children: [
|
|
67
|
-
(
|
|
68
|
-
|
|
69
|
+
(t || c) && /* @__PURE__ */ u(f.Alert, { label: x("status.errorEncountered"), status: "error", children: [
|
|
70
|
+
c && /* @__PURE__ */ r(f.UnorderedList, { items: O(c) }),
|
|
71
|
+
t && t instanceof E && /* @__PURE__ */ r(f.Text, { children: t.message }),
|
|
72
|
+
t && t instanceof g && /* @__PURE__ */ r(f.Text, { as: "pre", children: t.pretty() })
|
|
73
|
+
] }),
|
|
74
|
+
/* @__PURE__ */ r(A, { fallback: /* @__PURE__ */ r(m, {}), children: /* @__PURE__ */ r(T, { children: e }) })
|
|
69
75
|
]
|
|
70
76
|
}
|
|
71
|
-
)
|
|
77
|
+
) })
|
|
72
78
|
}
|
|
73
79
|
);
|
|
74
80
|
};
|
|
75
81
|
export {
|
|
76
|
-
|
|
82
|
+
$ as BaseComponent
|
|
77
83
|
};
|
|
78
84
|
//# sourceMappingURL=Base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX } from 'react'\nimport { Suspense, useState, useCallback } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { UnprocessableEntityErrorObject } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type FieldError, type KnownErrors, type OnEventType } from './useBase'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError, Loading, useAsyncError } from '@/components/Common'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<TResourceKey extends keyof Resources = keyof Resources>\n extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: () => JSX.Element\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**Traverses errorList and finds items with message properties */\nconst renderErrorList = (errorList: FieldError[]): React.ReactNode => {\n return errorList.map(errorFromList => {\n if (errorFromList.message) {\n return <li key={errorFromList.key}>{errorFromList.message}</li>\n }\n return null\n })\n}\n/**Recuresively parses error list and constructs an array of objects containing attribute value error messages associated with form fields. Nested errors construct '.' separated keys\n * metadata.state is a special case for state taxes validation errors\n */\nconst getFieldErrors = (\n error: EntityErrorObject,\n parentKey?: string,\n): { key: string; message: string }[] => {\n const keyPrefix = parentKey ? parentKey + '.' : ''\n if (error.category === 'invalid_attribute_value' || error.category === 'invalid_operation') {\n return [\n {\n key: snakeCaseToCamelCase(keyPrefix + error.errorKey),\n message: error.message ?? '',\n },\n ]\n }\n if (error.category === 'nested_errors' && error.errors !== undefined) {\n //TODO: clean this up once Metadata type is fixed in openapi spec\n let keySuffix = ''\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n if (error.metadata?.key && typeof error.metadata.key === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.key as string\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n } else if (error.metadata?.state && typeof error.metadata.state === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.state as string\n } else if (error.errorKey) {\n keySuffix = error.errorKey\n }\n return error.errors.flatMap(err => getFieldErrors(err, keyPrefix + keySuffix))\n }\n return []\n}\n\ntype SubmitHandler<T> = (data: T) => Promise<void>\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent = Loading,\n onEvent,\n}: BaseComponentInterface<TResourceKey>) => {\n const [error, setError] = useState<KnownErrors | null>(null)\n const [fieldErrors, setFieldErrors] = useState<FieldError[] | null>(null)\n const throwError = useAsyncError()\n const { t } = useTranslation()\n const Components = useComponentContext()\n\n const processError = (error: KnownErrors) => {\n setError(error)\n //422\tapplication/json - content relaited error\n if (error instanceof UnprocessableEntityErrorObject && Array.isArray(error.errors)) {\n setFieldErrors(error.errors.flatMap(err => getFieldErrors(err)))\n }\n }\n\n const baseSubmitHandler = useCallback(\n async <T,>(data: T, componentHandler: SubmitHandler<T>) => {\n setError(null)\n setFieldErrors(null)\n try {\n await componentHandler(data)\n } catch (err) {\n if (\n err instanceof APIError ||\n err instanceof SDKValidationError ||\n err instanceof UnprocessableEntityErrorObject\n ) {\n processError(err)\n } else throwError(err)\n }\n },\n [setError, throwError],\n )\n\n return (\n <BaseContext.Provider\n value={{\n fieldErrors,\n setError,\n onEvent,\n throwError,\n baseSubmitHandler,\n }}\n >\n <ErrorBoundary\n
|
|
1
|
+
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX } from 'react'\nimport { Suspense, useState, useCallback } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { UnprocessableEntityErrorObject } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type FieldError, type KnownErrors, type OnEventType } from './useBase'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError, Loading, useAsyncError } from '@/components/Common'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<TResourceKey extends keyof Resources = keyof Resources>\n extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: () => JSX.Element\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**Traverses errorList and finds items with message properties */\nconst renderErrorList = (errorList: FieldError[]): React.ReactNode[] => {\n return errorList.map(errorFromList => {\n if (errorFromList.message) {\n return <li key={errorFromList.key}>{errorFromList.message}</li>\n }\n return null\n })\n}\n/**Recuresively parses error list and constructs an array of objects containing attribute value error messages associated with form fields. Nested errors construct '.' separated keys\n * metadata.state is a special case for state taxes validation errors\n */\nconst getFieldErrors = (\n error: EntityErrorObject,\n parentKey?: string,\n): { key: string; message: string }[] => {\n const keyPrefix = parentKey ? parentKey + '.' : ''\n if (error.category === 'invalid_attribute_value' || error.category === 'invalid_operation') {\n return [\n {\n key: snakeCaseToCamelCase(keyPrefix + error.errorKey),\n message: error.message ?? '',\n },\n ]\n }\n if (error.category === 'nested_errors' && error.errors !== undefined) {\n //TODO: clean this up once Metadata type is fixed in openapi spec\n let keySuffix = ''\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n if (error.metadata?.key && typeof error.metadata.key === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.key as string\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n } else if (error.metadata?.state && typeof error.metadata.state === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.state as string\n } else if (error.errorKey) {\n keySuffix = error.errorKey\n }\n return error.errors.flatMap(err => getFieldErrors(err, keyPrefix + keySuffix))\n }\n return []\n}\n\ntype SubmitHandler<T> = (data: T) => Promise<void>\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent = Loading,\n onEvent,\n}: BaseComponentInterface<TResourceKey>) => {\n const [error, setError] = useState<KnownErrors | null>(null)\n const [fieldErrors, setFieldErrors] = useState<FieldError[] | null>(null)\n const throwError = useAsyncError()\n const { t } = useTranslation()\n const Components = useComponentContext()\n\n const processError = (error: KnownErrors) => {\n setError(error)\n //422\tapplication/json - content relaited error\n if (error instanceof UnprocessableEntityErrorObject && Array.isArray(error.errors)) {\n setFieldErrors(error.errors.flatMap(err => getFieldErrors(err)))\n }\n }\n\n const baseSubmitHandler = useCallback(\n async <T,>(data: T, componentHandler: SubmitHandler<T>) => {\n setError(null)\n setFieldErrors(null)\n try {\n await componentHandler(data)\n } catch (err) {\n if (\n err instanceof APIError ||\n err instanceof SDKValidationError ||\n err instanceof UnprocessableEntityErrorObject\n ) {\n processError(err)\n } else throwError(err)\n }\n },\n [setError, throwError],\n )\n\n return (\n <BaseContext.Provider\n value={{\n fieldErrors,\n setError,\n onEvent,\n throwError,\n baseSubmitHandler,\n }}\n >\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={err => {\n onEvent(componentEvents.ERROR, err)\n }}\n >\n {(error || fieldErrors) && (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {fieldErrors && <Components.UnorderedList items={renderErrorList(fieldErrors)} />}\n {error && error instanceof APIError && (\n <Components.Text>{error.message}</Components.Text>\n )}\n {error && error instanceof SDKValidationError && (\n <Components.Text as=\"pre\">{error.pretty()}</Components.Text>\n )}\n </Components.Alert>\n )}\n <Suspense fallback={<LoaderComponent />}>\n <FadeIn>{children}</FadeIn>\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n </BaseContext.Provider>\n )\n}\n"],"names":["renderErrorList","errorList","errorFromList","jsx","getFieldErrors","error","parentKey","keyPrefix","snakeCaseToCamelCase","keySuffix","err","BaseComponent","children","FallbackComponent","InternalError","LoaderComponent","Loading","onEvent","setError","useState","fieldErrors","setFieldErrors","throwError","useAsyncError","t","useTranslation","Components","useComponentContext","processError","UnprocessableEntityErrorObject","baseSubmitHandler","useCallback","data","componentHandler","APIError","SDKValidationError","BaseContext","QueryErrorResetBoundary","resetQueries","jsxs","ErrorBoundary","componentEvents","Suspense","FadeIn"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalError.js","sources":["../../../../src/components/Common/InternalError/InternalError.tsx"],"sourcesContent":["import type { FallbackProps } from 'react-error-boundary'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './InternalError.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const InternalError = ({ error, resetErrorBoundary }: FallbackProps) => {\n
|
|
1
|
+
{"version":3,"file":"InternalError.js","sources":["../../../../src/components/Common/InternalError/InternalError.tsx"],"sourcesContent":["import type { FallbackProps } from 'react-error-boundary'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './InternalError.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const InternalError = ({ error, resetErrorBoundary }: FallbackProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const errorMessage =\n typeof error === 'string'\n ? error\n : error instanceof Error\n ? error.message\n : t('errors.unknownError')\n return (\n <div className={styles.internalErrorCard} role=\"alert\" data-testid=\"internal-error-card\">\n <div>\n <Components.Heading className={styles.internalErrorCardTitle} as=\"h1\" styledAs=\"h3\">\n {t('errors.errorHeading')}\n </Components.Heading>\n <Components.Text className={styles.errorMessage}>\n <Trans\n t={t}\n i18nKey=\"errors.globalReactError\"\n values={{ error: errorMessage }}\n shouldUnescape={true}\n />\n </Components.Text>\n </div>\n <div>\n <Components.Button variant=\"secondary\" onClick={resetErrorBoundary}>\n {t('errors.resetGlobalError')}\n </Components.Button>\n </div>\n </div>\n )\n}\n"],"names":["InternalError","error","resetErrorBoundary","t","useTranslation","Components","useComponentContext","errorMessage","jsxs","styles","jsx","Trans"],"mappings":";;;;AAKO,MAAMA,IAAgB,CAAC,EAAE,OAAAC,GAAO,oBAAAC,QAAwC;AAC7E,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAoB,GACjCC,IACJ,OAAON,KAAU,WACbA,IACAA,aAAiB,QACfA,EAAM,UACNE,EAAE,qBAAqB;AAE7B,SAAA,gBAAAK,EAAC,SAAI,WAAWC,EAAO,mBAAmB,MAAK,SAAQ,eAAY,uBACjE,UAAA;AAAA,IAAA,gBAAAD,EAAC,OACC,EAAA,UAAA;AAAA,MAAA,gBAAAE,EAACL,EAAW,SAAX,EAAmB,WAAWI,EAAO,wBAAwB,IAAG,MAAK,UAAS,MAC5E,UAAEN,EAAA,qBAAqB,EAC1B,CAAA;AAAA,wBACCE,EAAW,MAAX,EAAgB,WAAWI,EAAO,cACjC,UAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,GAAAR;AAAA,UACA,SAAQ;AAAA,UACR,QAAQ,EAAE,OAAOI,EAAa;AAAA,UAC9B,gBAAgB;AAAA,QAAA;AAAA,MAAA,EAEpB,CAAA;AAAA,IAAA,GACF;AAAA,IACC,gBAAAG,EAAA,OAAA,EACC,UAAC,gBAAAA,EAAAL,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASH,GAC7C,UAAEC,EAAA,yBAAyB,GAC9B,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as o, jsxs as
|
|
1
|
+
import { jsx as o, jsxs as l } from "react/jsx-runtime";
|
|
2
2
|
import { ComboBox as A, Input as F, Button as j, Popover as D, ListBox as E, ListBoxItem as P } from "react-aria-components";
|
|
3
3
|
import { useTranslation as z } from "react-i18next";
|
|
4
4
|
import { useMemo as H } from "react";
|
|
5
5
|
import d from "classnames";
|
|
6
6
|
import { useFieldIds as K } from "../hooks/useFieldIds.js";
|
|
7
|
-
import
|
|
7
|
+
import e from "./ComboBox.module.scss.js";
|
|
8
8
|
import { FieldLayout as M } from "../../FieldLayout/FieldLayout.js";
|
|
9
9
|
import { useTheme as U } from "../../../../contexts/ThemeProvider/useTheme.js";
|
|
10
10
|
/* empty css */
|
|
@@ -12,68 +12,66 @@ import _ from "../../../../assets/icons/alert-circle.svg.js";
|
|
|
12
12
|
import $ from "../../../../assets/icons/caret-down.svg.js";
|
|
13
13
|
const rr = ({
|
|
14
14
|
className: p,
|
|
15
|
-
description:
|
|
16
|
-
errorMessage:
|
|
15
|
+
description: t,
|
|
16
|
+
errorMessage: i,
|
|
17
17
|
id: f,
|
|
18
18
|
isDisabled: u,
|
|
19
|
-
isInvalid:
|
|
19
|
+
isInvalid: m,
|
|
20
20
|
isRequired: h,
|
|
21
|
-
label:
|
|
21
|
+
label: a,
|
|
22
22
|
onChange: x,
|
|
23
23
|
onBlur: B,
|
|
24
|
-
options:
|
|
24
|
+
options: s,
|
|
25
25
|
placeholder: b,
|
|
26
|
-
value:
|
|
26
|
+
value: n,
|
|
27
27
|
inputRef: C,
|
|
28
28
|
shouldVisuallyHideLabel: g,
|
|
29
|
-
name:
|
|
30
|
-
...
|
|
29
|
+
name: I,
|
|
30
|
+
...v
|
|
31
31
|
}) => {
|
|
32
|
-
const { t: N } = z(), { inputId:
|
|
32
|
+
const { t: N } = z(), { inputId: c, errorMessageId: S, descriptionId: y, ariaDescribedBy: L } = K({
|
|
33
33
|
inputId: f,
|
|
34
|
-
errorMessage:
|
|
35
|
-
description:
|
|
36
|
-
}), { container: T } = U(), w = H(() =>
|
|
34
|
+
errorMessage: i,
|
|
35
|
+
description: t
|
|
36
|
+
}), { container: T } = U(), w = H(() => s.map((r) => ({ name: r.label, id: r.value })), [s]);
|
|
37
37
|
return /* @__PURE__ */ o(
|
|
38
38
|
M,
|
|
39
39
|
{
|
|
40
|
-
label:
|
|
41
|
-
htmlFor:
|
|
42
|
-
errorMessage:
|
|
40
|
+
label: a,
|
|
41
|
+
htmlFor: c,
|
|
42
|
+
errorMessage: i,
|
|
43
43
|
errorMessageId: S,
|
|
44
44
|
descriptionId: y,
|
|
45
45
|
isRequired: h,
|
|
46
|
-
description:
|
|
46
|
+
description: t,
|
|
47
47
|
shouldVisuallyHideLabel: g,
|
|
48
|
-
className: d(
|
|
48
|
+
className: d(e.root, p),
|
|
49
49
|
withErrorIcon: !1,
|
|
50
|
-
children: /* @__PURE__ */
|
|
50
|
+
children: /* @__PURE__ */ l(
|
|
51
51
|
A,
|
|
52
52
|
{
|
|
53
|
-
"aria-label":
|
|
53
|
+
"aria-label": a,
|
|
54
54
|
"aria-describedby": L,
|
|
55
55
|
className: "react-aria-ComboBox-root",
|
|
56
56
|
isDisabled: u,
|
|
57
|
-
isInvalid:
|
|
57
|
+
isInvalid: m,
|
|
58
58
|
menuTrigger: "focus",
|
|
59
59
|
onSelectionChange: (r) => {
|
|
60
60
|
r && x?.(r.toString());
|
|
61
61
|
},
|
|
62
|
-
id:
|
|
63
|
-
selectedKey:
|
|
64
|
-
name:
|
|
62
|
+
id: c,
|
|
63
|
+
selectedKey: n || void 0,
|
|
64
|
+
name: I,
|
|
65
65
|
children: [
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
] }) })
|
|
72
|
-
] }),
|
|
66
|
+
/* @__PURE__ */ o(F, { ref: C, placeholder: b, onBlur: B, ...v }),
|
|
67
|
+
/* @__PURE__ */ o(j, { children: /* @__PURE__ */ l("div", { "aria-hidden": "true", className: e.icons, children: [
|
|
68
|
+
m && /* @__PURE__ */ o(_, { fontSize: 16 }),
|
|
69
|
+
/* @__PURE__ */ o($, { title: N("icons.selectArrow") })
|
|
70
|
+
] }) }),
|
|
73
71
|
/* @__PURE__ */ o(
|
|
74
72
|
D,
|
|
75
73
|
{
|
|
76
|
-
className: d(
|
|
74
|
+
className: d(e.popover, "react-aria-Popover"),
|
|
77
75
|
UNSTABLE_portalContainer: T.current,
|
|
78
76
|
maxHeight: 320,
|
|
79
77
|
children: /* @__PURE__ */ o(E, { items: w, children: (r) => /* @__PURE__ */ o(P, { children: r.name }, r.id) })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","sources":["../../../../../src/components/Common/UI/ComboBox/ComboBox.tsx"],"sourcesContent":["import type { Key } from 'react-aria-components'\nimport {\n ComboBox as AriaComboBox,\n Button,\n Input,\n ListBox,\n ListBoxItem,\n Popover,\n} from 'react-aria-components'\nimport { useTranslation } from 'react-i18next'\nimport { useMemo } from 'react'\nimport classNames from 'classnames'\nimport { useFieldIds } from '../hooks/useFieldIds'\nimport styles from './ComboBox.module.scss'\nimport type { ComboBoxProps } from './ComboBoxTypes'\nimport { FieldLayout } from '@/components/Common/FieldLayout'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport AlertCircle from '@/assets/icons/alert-circle.svg?react'\nimport CaretDown from '@/assets/icons/caret-down.svg?react'\n\nexport const ComboBox = ({\n className,\n description,\n errorMessage,\n id,\n isDisabled,\n isInvalid,\n isRequired,\n label,\n onChange,\n onBlur,\n options,\n placeholder,\n value,\n inputRef,\n shouldVisuallyHideLabel,\n name,\n ...props\n}: ComboBoxProps) => {\n const { t } = useTranslation()\n const { inputId, errorMessageId, descriptionId, ariaDescribedBy } = useFieldIds({\n inputId: id,\n errorMessage,\n description,\n })\n const { container } = useTheme()\n\n const items = useMemo(() => {\n return options.map(option => ({ name: option.label, id: option.value }))\n }, [options])\n\n return (\n <FieldLayout\n label={label}\n htmlFor={inputId}\n errorMessage={errorMessage}\n errorMessageId={errorMessageId}\n descriptionId={descriptionId}\n isRequired={isRequired}\n description={description}\n shouldVisuallyHideLabel={shouldVisuallyHideLabel}\n className={classNames(styles.root, className)}\n withErrorIcon={false}\n >\n <AriaComboBox\n aria-label={label}\n aria-describedby={ariaDescribedBy}\n className={'react-aria-ComboBox-root'}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n menuTrigger=\"focus\"\n onSelectionChange={key => {\n if (key) {\n onChange?.(key.toString())\n }\n }}\n id={inputId}\n selectedKey={value ? (value as Key) : undefined}\n name={name}\n >\n <
|
|
1
|
+
{"version":3,"file":"ComboBox.js","sources":["../../../../../src/components/Common/UI/ComboBox/ComboBox.tsx"],"sourcesContent":["import type { Key } from 'react-aria-components'\nimport {\n ComboBox as AriaComboBox,\n Button,\n Input,\n ListBox,\n ListBoxItem,\n Popover,\n} from 'react-aria-components'\nimport { useTranslation } from 'react-i18next'\nimport { useMemo } from 'react'\nimport classNames from 'classnames'\nimport { useFieldIds } from '../hooks/useFieldIds'\nimport styles from './ComboBox.module.scss'\nimport type { ComboBoxProps } from './ComboBoxTypes'\nimport { FieldLayout } from '@/components/Common/FieldLayout'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport AlertCircle from '@/assets/icons/alert-circle.svg?react'\nimport CaretDown from '@/assets/icons/caret-down.svg?react'\n\nexport const ComboBox = ({\n className,\n description,\n errorMessage,\n id,\n isDisabled,\n isInvalid,\n isRequired,\n label,\n onChange,\n onBlur,\n options,\n placeholder,\n value,\n inputRef,\n shouldVisuallyHideLabel,\n name,\n ...props\n}: ComboBoxProps) => {\n const { t } = useTranslation()\n const { inputId, errorMessageId, descriptionId, ariaDescribedBy } = useFieldIds({\n inputId: id,\n errorMessage,\n description,\n })\n const { container } = useTheme()\n\n const items = useMemo(() => {\n return options.map(option => ({ name: option.label, id: option.value }))\n }, [options])\n\n return (\n <FieldLayout\n label={label}\n htmlFor={inputId}\n errorMessage={errorMessage}\n errorMessageId={errorMessageId}\n descriptionId={descriptionId}\n isRequired={isRequired}\n description={description}\n shouldVisuallyHideLabel={shouldVisuallyHideLabel}\n className={classNames(styles.root, className)}\n withErrorIcon={false}\n >\n <AriaComboBox\n aria-label={label}\n aria-describedby={ariaDescribedBy}\n className={'react-aria-ComboBox-root'}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n menuTrigger=\"focus\"\n onSelectionChange={key => {\n if (key) {\n onChange?.(key.toString())\n }\n }}\n id={inputId}\n selectedKey={value ? (value as Key) : undefined}\n name={name}\n >\n <Input ref={inputRef} placeholder={placeholder} onBlur={onBlur} {...props} />\n <Button>\n <div aria-hidden=\"true\" className={styles.icons}>\n {isInvalid && <AlertCircle fontSize={16} />}\n <CaretDown title={t('icons.selectArrow')} />\n </div>\n </Button>\n\n <Popover\n className={classNames(styles.popover, 'react-aria-Popover')}\n UNSTABLE_portalContainer={container.current}\n maxHeight={320}\n >\n <ListBox items={items}>\n {item => <ListBoxItem key={item.id}>{item.name}</ListBoxItem>}\n </ListBox>\n </Popover>\n </AriaComboBox>\n </FieldLayout>\n )\n}\n"],"names":["ComboBox","className","description","errorMessage","id","isDisabled","isInvalid","isRequired","label","onChange","onBlur","options","placeholder","value","inputRef","shouldVisuallyHideLabel","name","props","t","useTranslation","inputId","errorMessageId","descriptionId","ariaDescribedBy","useFieldIds","container","useTheme","items","useMemo","option","jsx","FieldLayout","classNames","styles","jsxs","AriaComboBox","key","Input","Button","AlertCircle","CaretDown","Popover","ListBox","item","ListBoxItem"],"mappings":";;;;;;;;;;;;AAoBO,MAAMA,KAAW,CAAC;AAAA,EACvB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,IAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,MAAqB;AACb,QAAA,EAAE,GAAAC,EAAE,IAAIC,EAAe,GACvB,EAAE,SAAAC,GAAS,gBAAAC,GAAgB,eAAAC,GAAe,iBAAAC,EAAA,IAAoBC,EAAY;AAAA,IAC9E,SAASpB;AAAA,IACT,cAAAD;AAAA,IACA,aAAAD;AAAA,EAAA,CACD,GACK,EAAE,WAAAuB,EAAU,IAAIC,EAAS,GAEzBC,IAAQC,EAAQ,MACbjB,EAAQ,IAAI,CAAAkB,OAAW,EAAE,MAAMA,EAAO,OAAO,IAAIA,EAAO,MAAQ,EAAA,GACtE,CAAClB,CAAO,CAAC;AAGV,SAAA,gBAAAmB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAvB;AAAA,MACA,SAASY;AAAA,MACT,cAAAjB;AAAA,MACA,gBAAAkB;AAAA,MACA,eAAAC;AAAA,MACA,YAAAf;AAAA,MACA,aAAAL;AAAA,MACA,yBAAAa;AAAA,MACA,WAAWiB,EAAWC,EAAO,MAAMhC,CAAS;AAAA,MAC5C,eAAe;AAAA,MAEf,UAAA,gBAAAiC;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,cAAY3B;AAAA,UACZ,oBAAkBe;AAAA,UAClB,WAAW;AAAA,UACX,YAAAlB;AAAA,UACA,WAAAC;AAAA,UACA,aAAY;AAAA,UACZ,mBAAmB,CAAO8B,MAAA;AACxB,YAAIA,KACS3B,IAAA2B,EAAI,UAAU;AAAA,UAE7B;AAAA,UACA,IAAIhB;AAAA,UACJ,aAAaP,KAAyB;AAAA,UACtC,MAAAG;AAAA,UAEA,UAAA;AAAA,YAAA,gBAAAc,EAACO,KAAM,KAAKvB,GAAU,aAAAF,GAA0B,QAAAF,GAAiB,GAAGO,GAAO;AAAA,YAC3E,gBAAAa,EAACQ,KACC,UAAC,gBAAAJ,EAAA,OAAA,EAAI,eAAY,QAAO,WAAWD,EAAO,OACvC,UAAA;AAAA,cAAa3B,KAAA,gBAAAwB,EAACS,GAAY,EAAA,UAAU,GAAI,CAAA;AAAA,cACxC,gBAAAT,EAAAU,GAAA,EAAU,OAAOtB,EAAE,mBAAmB,EAAG,CAAA;AAAA,YAAA,EAAA,CAC5C,EACF,CAAA;AAAA,YAEA,gBAAAY;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,WAAWT,EAAWC,EAAO,SAAS,oBAAoB;AAAA,gBAC1D,0BAA0BR,EAAU;AAAA,gBACpC,WAAW;AAAA,gBAEX,UAAA,gBAAAK,EAACY,GAAQ,EAAA,OAAAf,GACN,UAAQ,CAAAgB,MAAA,gBAAAb,EAACc,KAA2B,UAAKD,EAAA,KAAA,GAAfA,EAAK,EAAe,EACjD,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
|
|
@@ -5,14 +5,15 @@ import "react-i18next";
|
|
|
5
5
|
import "@gusto/embedded-api/models/errors/apierror";
|
|
6
6
|
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
7
7
|
import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
|
|
8
|
+
import "@tanstack/react-query";
|
|
8
9
|
import "../../../Base/useBase.js";
|
|
9
10
|
import "../../../../shared/constants.js";
|
|
10
11
|
import "dompurify";
|
|
11
12
|
import "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
12
13
|
import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
|
|
13
|
-
const [
|
|
14
|
+
const [c, d] = t("CreateSignatoryContext");
|
|
14
15
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
d as CreateSignatoryProvider,
|
|
17
|
+
c as useCreateSignatory
|
|
17
18
|
};
|
|
18
19
|
//# sourceMappingURL=useCreateSignatory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\nexport type CreateSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title' | 'phone' | 'birthday'> &\n Pick<\n NonNullable<Signatory['homeAddress']>,\n 'street1' | 'street2' | 'city' | 'state' | 'zip'\n > & {\n ssn?: string\n }\n>\ntype CreateSignatoryContextType = {\n isPending: boolean\n currentSignatory?: Signatory\n}\n\nconst [useCreateSignatory, CreateSignatoryProvider] =\n createCompoundContext<CreateSignatoryContextType>('CreateSignatoryContext')\n\nexport { useCreateSignatory, CreateSignatoryProvider }\n"],"names":["useCreateSignatory","CreateSignatoryProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCreateSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\nexport type CreateSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title' | 'phone' | 'birthday'> &\n Pick<\n NonNullable<Signatory['homeAddress']>,\n 'street1' | 'street2' | 'city' | 'state' | 'zip'\n > & {\n ssn?: string\n }\n>\ntype CreateSignatoryContextType = {\n isPending: boolean\n currentSignatory?: Signatory\n}\n\nconst [useCreateSignatory, CreateSignatoryProvider] =\n createCompoundContext<CreateSignatoryContextType>('CreateSignatoryContext')\n\nexport { useCreateSignatory, CreateSignatoryProvider }\n"],"names":["useCreateSignatory","CreateSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
|
|
@@ -5,14 +5,15 @@ import "react-i18next";
|
|
|
5
5
|
import "@gusto/embedded-api/models/errors/apierror";
|
|
6
6
|
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
7
7
|
import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
|
|
8
|
+
import "@tanstack/react-query";
|
|
8
9
|
import "../../../Base/useBase.js";
|
|
9
10
|
import "../../../../shared/constants.js";
|
|
10
11
|
import "dompurify";
|
|
11
12
|
import "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
12
13
|
import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
|
|
13
|
-
const [
|
|
14
|
+
const [I, S] = t("InviteSignatoryContext");
|
|
14
15
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
S as InviteSignatoryProvider,
|
|
17
|
+
I as useInviteSignatory
|
|
17
18
|
};
|
|
18
19
|
//# sourceMappingURL=useInviteSignatory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInviteSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\ntype InviteSignatoryContextType = {\n isPending: boolean\n}\n\nexport type InviteSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title'> & {\n confirmEmail: string\n }\n>\n\nconst [useInviteSignatory, InviteSignatoryProvider] =\n createCompoundContext<InviteSignatoryContextType>('InviteSignatoryContext')\n\nexport { useInviteSignatory, InviteSignatoryProvider }\n"],"names":["useInviteSignatory","InviteSignatoryProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useInviteSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\ntype InviteSignatoryContextType = {\n isPending: boolean\n}\n\nexport type InviteSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title'> & {\n confirmEmail: string\n }\n>\n\nconst [useInviteSignatory, InviteSignatoryProvider] =\n createCompoundContext<InviteSignatoryContextType>('InviteSignatoryContext')\n\nexport { useInviteSignatory, InviteSignatoryProvider }\n"],"names":["useInviteSignatory","InviteSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
|
|
@@ -5,18 +5,19 @@ import "react-i18next";
|
|
|
5
5
|
import "@gusto/embedded-api/models/errors/apierror";
|
|
6
6
|
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
7
7
|
import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
|
|
8
|
+
import "@tanstack/react-query";
|
|
8
9
|
import "../../Base/useBase.js";
|
|
9
10
|
import "../../../shared/constants.js";
|
|
10
11
|
import "dompurify";
|
|
11
12
|
import "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
12
13
|
import { createCompoundContext as t } from "../../Base/createCompoundContext.js";
|
|
13
|
-
const
|
|
14
|
+
const A = {
|
|
14
15
|
createSignatory: "createSignatory",
|
|
15
16
|
inviteSignatory: "inviteSignatory"
|
|
16
|
-
}, [
|
|
17
|
+
}, [d, v] = t("AssignSignatoryContext");
|
|
17
18
|
export {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
v as AssignSignatoryProvider,
|
|
20
|
+
A as SignatoryAssignmentMode,
|
|
21
|
+
d as useAssignSignatory
|
|
21
22
|
};
|
|
22
23
|
//# sourceMappingURL=useAssignSignatory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssignSignatory.js","sources":["../../../../src/components/Company/AssignSignatory/useAssignSignatory.ts"],"sourcesContent":["import { type CreateSignatoryDefaultValues } from './CreateSignatory'\nimport { type InviteSignatoryDefaultValues } from './InviteSignatory'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\nexport const SignatoryAssignmentMode = {\n createSignatory: 'createSignatory',\n inviteSignatory: 'inviteSignatory',\n} as const\n\nexport type AssignSignatoryDefaultValues = RequireAtLeastOne<{\n create?: CreateSignatoryDefaultValues\n invite?: InviteSignatoryDefaultValues\n}>\n\ntype AssignSignatoryContextType = {\n companyId: string\n signatoryId?: string\n defaultValues?: AssignSignatoryDefaultValues\n onSignatoryAssignmentModeChange: (mode: string) => void\n onSignatoryFormEvent: BaseComponentInterface['onEvent']\n}\n\nconst [useAssignSignatory, AssignSignatoryProvider] =\n createCompoundContext<AssignSignatoryContextType>('AssignSignatoryContext')\n\nexport { useAssignSignatory, AssignSignatoryProvider }\n"],"names":["SignatoryAssignmentMode","useAssignSignatory","AssignSignatoryProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAssignSignatory.js","sources":["../../../../src/components/Company/AssignSignatory/useAssignSignatory.ts"],"sourcesContent":["import { type CreateSignatoryDefaultValues } from './CreateSignatory'\nimport { type InviteSignatoryDefaultValues } from './InviteSignatory'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\nexport const SignatoryAssignmentMode = {\n createSignatory: 'createSignatory',\n inviteSignatory: 'inviteSignatory',\n} as const\n\nexport type AssignSignatoryDefaultValues = RequireAtLeastOne<{\n create?: CreateSignatoryDefaultValues\n invite?: InviteSignatoryDefaultValues\n}>\n\ntype AssignSignatoryContextType = {\n companyId: string\n signatoryId?: string\n defaultValues?: AssignSignatoryDefaultValues\n onSignatoryAssignmentModeChange: (mode: string) => void\n onSignatoryFormEvent: BaseComponentInterface['onEvent']\n}\n\nconst [useAssignSignatory, AssignSignatoryProvider] =\n createCompoundContext<AssignSignatoryContextType>('AssignSignatoryContext')\n\nexport { useAssignSignatory, AssignSignatoryProvider }\n"],"names":["SignatoryAssignmentMode","useAssignSignatory","AssignSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAMO,MAAMA,IAA0B;AAAA,EACrC,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GAeM,CAACC,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseComponentInterface } from '../../Base';
|
|
2
|
-
export interface
|
|
2
|
+
export interface BankAccountProps extends BaseComponentInterface<'Company.BankAccount'> {
|
|
3
3
|
companyId: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function BankAccount(
|
|
5
|
+
export declare function BankAccount(props: BankAccountProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export declare namespace BankAccount {
|
|
7
7
|
var BankAccountList: typeof import("./BankAccountList/BankAccountList").BankAccountList;
|
|
8
8
|
var BankAccountForm: typeof import("./BankAccountForm/BankAccountForm").BankAccountForm;
|
|
@@ -1,32 +1,37 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { createMachine as
|
|
3
|
-
import { useBankAccountsGetSuspense as
|
|
4
|
-
import { BankAccountListContextual as A, BankAccountFormContextual as
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { createMachine as k } from "robot3";
|
|
3
|
+
import { useBankAccountsGetSuspense as s } from "@gusto/embedded-api/react-query/bankAccountsGet";
|
|
4
|
+
import { BankAccountListContextual as A, BankAccountFormContextual as B } from "./BankAccountComponents.js";
|
|
5
5
|
import { bankAccountStateMachine as f } from "./stateMachine.js";
|
|
6
|
-
import { BankAccountList as
|
|
6
|
+
import { BankAccountList as p } from "./BankAccountList/BankAccountList.js";
|
|
7
7
|
import { BankAccountForm as l } from "./BankAccountForm/BankAccountForm.js";
|
|
8
|
-
import { BankAccountVerify as
|
|
9
|
-
import { Flow as
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
import { BankAccountVerify as h } from "./BankAccountVerify/BankAccountVerify.js";
|
|
9
|
+
import { Flow as y } from "../../Flow/Flow.js";
|
|
10
|
+
import { BaseComponent as C } from "../../Base/Base.js";
|
|
11
|
+
import "../../Base/useBase.js";
|
|
12
|
+
import { useComponentDictionary as F } from "../../../i18n/I18n.js";
|
|
13
|
+
function L({ companyId: n, onEvent: r, dictionary: m }) {
|
|
14
|
+
F("Company.BankAccount", m);
|
|
15
|
+
const { data: e } = s({ companyId: n }), a = e.companyBankAccountList, o = a.length > 0 ? a[0] : null, i = k(
|
|
14
16
|
o ? "viewBankAccount" : "addBankAccount",
|
|
15
17
|
f,
|
|
16
|
-
(
|
|
17
|
-
...
|
|
18
|
-
component: o ? A :
|
|
19
|
-
companyId:
|
|
18
|
+
(u) => ({
|
|
19
|
+
...u,
|
|
20
|
+
component: o ? A : B,
|
|
21
|
+
companyId: n,
|
|
20
22
|
bankAccount: o,
|
|
21
23
|
showVerifiedMessage: !1
|
|
22
24
|
})
|
|
23
25
|
);
|
|
24
|
-
return /* @__PURE__ */
|
|
26
|
+
return /* @__PURE__ */ t(y, { machine: i, onEvent: r });
|
|
25
27
|
}
|
|
26
|
-
n
|
|
27
|
-
n
|
|
28
|
-
|
|
28
|
+
function c(n) {
|
|
29
|
+
return /* @__PURE__ */ t(C, { ...n, children: /* @__PURE__ */ t(L, { ...n }) });
|
|
30
|
+
}
|
|
31
|
+
c.BankAccountList = p;
|
|
32
|
+
c.BankAccountForm = l;
|
|
33
|
+
c.BankAccountVerify = h;
|
|
29
34
|
export {
|
|
30
|
-
|
|
35
|
+
c as BankAccount
|
|
31
36
|
};
|
|
32
37
|
//# sourceMappingURL=BankAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BankAccount.js","sources":["../../../../src/components/Company/BankAccount/BankAccount.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport {\n BankAccountFormContextual,\n type BankAccountContextInterface,\n} from './BankAccountComponents'\nimport { bankAccountStateMachine } from './stateMachine'\nimport { BankAccountListContextual } from './BankAccountComponents'\nimport { BankAccountList } from './BankAccountList/BankAccountList'\nimport { BankAccountForm } from './BankAccountForm/BankAccountForm'\nimport { BankAccountVerify } from './BankAccountVerify/BankAccountVerify'\nimport { Flow } from '@/components/Flow/Flow'\nimport type
|
|
1
|
+
{"version":3,"file":"BankAccount.js","sources":["../../../../src/components/Company/BankAccount/BankAccount.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport {\n BankAccountFormContextual,\n type BankAccountContextInterface,\n} from './BankAccountComponents'\nimport { bankAccountStateMachine } from './stateMachine'\nimport { BankAccountListContextual } from './BankAccountComponents'\nimport { BankAccountList } from './BankAccountList/BankAccountList'\nimport { BankAccountForm } from './BankAccountForm/BankAccountForm'\nimport { BankAccountVerify } from './BankAccountVerify/BankAccountVerify'\nimport { Flow } from '@/components/Flow/Flow'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nexport interface BankAccountProps extends BaseComponentInterface<'Company.BankAccount'> {\n companyId: string\n}\n\nfunction BankAccountFlow({ companyId, onEvent, dictionary }: BankAccountProps) {\n useComponentDictionary('Company.BankAccount', dictionary)\n const { data } = useBankAccountsGetSuspense({ companyId })\n const companyBankAccountList = data.companyBankAccountList!\n //Currently, we only support a single default bank account per company.\n const bankAccount = companyBankAccountList.length > 0 ? companyBankAccountList[0]! : null\n\n const manageBankAccount = createMachine(\n bankAccount ? 'viewBankAccount' : 'addBankAccount',\n bankAccountStateMachine,\n (initialContext: BankAccountContextInterface) => ({\n ...initialContext,\n component: bankAccount ? BankAccountListContextual : BankAccountFormContextual,\n companyId,\n bankAccount,\n showVerifiedMessage: false,\n }),\n )\n return <Flow machine={manageBankAccount} onEvent={onEvent} />\n}\n\nexport function BankAccount(props: BankAccountProps) {\n return (\n <BaseComponent {...props}>\n <BankAccountFlow {...props} />\n </BaseComponent>\n )\n}\n\nBankAccount.BankAccountList = BankAccountList\nBankAccount.BankAccountForm = BankAccountForm\nBankAccount.BankAccountVerify = BankAccountVerify\n"],"names":["BankAccountFlow","companyId","onEvent","dictionary","useComponentDictionary","data","useBankAccountsGetSuspense","companyBankAccountList","bankAccount","manageBankAccount","createMachine","bankAccountStateMachine","initialContext","BankAccountListContextual","BankAccountFormContextual","jsx","Flow","BankAccount","props","BaseComponent","BankAccountList","BankAccountForm","BankAccountVerify"],"mappings":";;;;;;;;;;;;AAmBA,SAASA,EAAgB,EAAE,WAAAC,GAAW,SAAAC,GAAS,YAAAC,KAAgC;AAC7E,EAAAC,EAAuB,uBAAuBD,CAAU;AACxD,QAAM,EAAE,MAAAE,EAAK,IAAIC,EAA2B,EAAE,WAAAL,GAAW,GACnDM,IAAyBF,EAAK,wBAE9BG,IAAcD,EAAuB,SAAS,IAAIA,EAAuB,CAAC,IAAK,MAE/EE,IAAoBC;AAAA,IACxBF,IAAc,oBAAoB;AAAA,IAClCG;AAAA,IACA,CAACC,OAAiD;AAAA,MAChD,GAAGA;AAAA,MACH,WAAWJ,IAAcK,IAA4BC;AAAA,MACrD,WAAAb;AAAA,MACA,aAAAO;AAAA,MACA,qBAAqB;AAAA,IACvB;AAAA,EACF;AACA,SAAQ,gBAAAO,EAAAC,GAAA,EAAK,SAASP,GAAmB,SAAAP,EAAkB,CAAA;AAC7D;AAEO,SAASe,EAAYC,GAAyB;AAEjD,SAAA,gBAAAH,EAACI,KAAe,GAAGD,GACjB,4BAAClB,GAAiB,EAAA,GAAGkB,GAAO,EAC9B,CAAA;AAEJ;AAEAD,EAAY,kBAAkBG;AAC9BH,EAAY,kBAAkBI;AAC9BJ,EAAY,oBAAoBK;"}
|