@gusto/embedded-react-sdk 0.34.0 → 0.35.0-rc.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 +38 -0
- package/dist/components/Base/Base.d.ts +6 -2
- package/dist/components/Base/Base.js +105 -59
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Base/useBase.d.ts +1 -0
- package/dist/components/Base/useBase.js.map +1 -1
- package/dist/components/Base/useBaseSubmit.d.ts +1 -1
- package/dist/components/Base/useBaseSubmit.js +60 -33
- package/dist/components/Base/useBaseSubmit.js.map +1 -1
- package/dist/components/Common/HamburgerMenu/HamburgerMenu.d.ts +1 -1
- package/dist/components/Common/HamburgerMenu/HamburgerMenu.js +15 -13
- package/dist/components/Common/HamburgerMenu/HamburgerMenu.js.map +1 -1
- package/dist/components/Common/HamburgerMenu/HamburgerMenuTypes.d.ts +1 -0
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
- package/dist/components/Common/UI/Menu/Menu.js +26 -25
- package/dist/components/Common/UI/Menu/Menu.js.map +1 -1
- package/dist/components/Common/UI/Menu/Menu.module.scss.js +7 -7
- package/dist/components/Common/UI/Menu/MenuTypes.d.ts +5 -0
- package/dist/components/Common/UI/Menu/MenuTypes.js +4 -3
- package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +119 -113
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfileForm.js +15 -15
- package/dist/components/Employee/Compensation/Edit.js +70 -70
- package/dist/components/Employee/Compensation/Edit.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/Form.js +5 -5
- package/dist/components/Employee/DocumentSigner/SignatureForm/Form.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.js +8 -8
- package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.js.map +1 -1
- package/dist/components/Employee/StateTaxes/StateTaxes.js +69 -61
- package/dist/components/Employee/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.d.ts +2 -0
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +101 -0
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -0
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.module.scss.js +16 -0
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.module.scss.js.map +1 -0
- package/dist/components/Payroll/GrossUpModal/GrossUpModalTypes.d.ts +7 -0
- package/dist/components/Payroll/GrossUpModal/index.d.ts +3 -0
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +86 -67
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +83 -49
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +6 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +102 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.module.scss.js +14 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.module.scss.js.map +1 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js +52 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js.map +1 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.module.scss.js +16 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.module.scss.js.map +1 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +12 -2
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js +15 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/index.d.ts +2 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +212 -120
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +3 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +76 -64
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.d.ts +2 -0
- package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js +11 -0
- package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js.map +1 -0
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +67 -57
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +44 -43
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +2 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +58 -38
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/ObservabilityProvider/ObservabilityContext.d.ts +5 -0
- package/dist/contexts/ObservabilityProvider/ObservabilityContext.js +6 -0
- package/dist/contexts/ObservabilityProvider/ObservabilityContext.js.map +1 -0
- package/dist/contexts/ObservabilityProvider/ObservabilityProvider.d.ts +7 -0
- package/dist/contexts/ObservabilityProvider/ObservabilityProvider.js +11 -0
- package/dist/contexts/ObservabilityProvider/ObservabilityProvider.js.map +1 -0
- package/dist/contexts/ObservabilityProvider/index.d.ts +5 -0
- package/dist/contexts/ObservabilityProvider/observabilityUtils.d.ts +5 -0
- package/dist/contexts/ObservabilityProvider/observabilityUtils.js +45 -0
- package/dist/contexts/ObservabilityProvider/observabilityUtils.js.map +1 -0
- package/dist/contexts/ObservabilityProvider/sanitization.d.ts +19 -0
- package/dist/contexts/ObservabilityProvider/sanitization.js +95 -0
- package/dist/contexts/ObservabilityProvider/sanitization.js.map +1 -0
- package/dist/contexts/ObservabilityProvider/sanitization.test.d.ts +1 -0
- package/dist/contexts/ObservabilityProvider/useObservability.d.ts +2 -0
- package/dist/contexts/ObservabilityProvider/useObservability.js +11 -0
- package/dist/contexts/ObservabilityProvider/useObservability.js.map +1 -0
- package/dist/contexts/ObservabilityProvider/useSanitizedObservability.d.ts +8 -0
- package/dist/contexts/ObservabilityProvider/useSanitizedObservability.js +28 -0
- package/dist/contexts/ObservabilityProvider/useSanitizedObservability.js.map +1 -0
- package/dist/contexts/index.d.ts +2 -0
- package/dist/helpers/rem.d.ts +7 -3
- package/dist/helpers/rem.js +14 -10
- package/dist/helpers/rem.js.map +1 -1
- package/dist/helpers/rem.test.d.ts +1 -0
- package/dist/helpers/retryAsync.d.ts +7 -0
- package/dist/helpers/retryAsync.js +18 -0
- package/dist/helpers/retryAsync.js.map +1 -0
- package/dist/i18n/I18n.js +15 -15
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.PaySchedule.json.js +1 -1
- package/dist/i18n/en/Payroll.GrossUpModal.json.js +24 -0
- package/dist/i18n/en/Payroll.GrossUpModal.json.js.map +1 -0
- package/dist/i18n/en/Payroll.OffCycleTaxWithholding.json.js +13 -11
- package/dist/i18n/en/Payroll.OffCycleTaxWithholding.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +19 -13
- package/dist/index.js.map +1 -1
- package/dist/shared/constants.d.ts +5 -0
- package/dist/shared/constants.js +11 -8
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +26 -1
- package/dist/types/observability.d.ts +145 -0
- package/docs/reference/endpoint-inventory.json +10 -1
- package/package.json +21 -21
|
@@ -1,53 +1,54 @@
|
|
|
1
|
-
import { jsx as o, jsxs as
|
|
2
|
-
import { Popover as
|
|
1
|
+
import { jsx as o, jsxs as P } from "react/jsx-runtime";
|
|
2
|
+
import { Popover as b, Menu as v, MenuItem as x } from "react-aria-components";
|
|
3
3
|
import r from "./Menu.module.scss.js";
|
|
4
|
-
import { MenuDefaults as
|
|
5
|
-
import { applyMissingDefaults as
|
|
4
|
+
import { MenuDefaults as I } from "./MenuTypes.js";
|
|
5
|
+
import { applyMissingDefaults as O } from "../../../../helpers/applyMissingDefaults.js";
|
|
6
6
|
import "react";
|
|
7
|
-
import { useTheme as
|
|
7
|
+
import { useTheme as j } from "../../../../contexts/ThemeProvider/useTheme.js";
|
|
8
8
|
/* empty css */
|
|
9
|
-
function
|
|
10
|
-
const a =
|
|
9
|
+
function R(s) {
|
|
10
|
+
const a = O(s, I), {
|
|
11
11
|
triggerRef: i,
|
|
12
12
|
items: m,
|
|
13
13
|
isOpen: l,
|
|
14
|
-
onClose:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
onClose: n,
|
|
15
|
+
placement: p,
|
|
16
|
+
"aria-label": c,
|
|
17
|
+
...u
|
|
18
|
+
} = a, { container: f } = j(), h = (e) => {
|
|
19
|
+
e || n?.();
|
|
19
20
|
};
|
|
20
21
|
return /* @__PURE__ */ o(
|
|
21
|
-
|
|
22
|
+
b,
|
|
22
23
|
{
|
|
23
|
-
UNSTABLE_portalContainer:
|
|
24
|
-
onOpenChange:
|
|
24
|
+
UNSTABLE_portalContainer: f.current,
|
|
25
|
+
onOpenChange: h,
|
|
25
26
|
isOpen: l,
|
|
26
27
|
triggerRef: i,
|
|
27
|
-
placement:
|
|
28
|
+
placement: p,
|
|
28
29
|
offset: 8,
|
|
29
30
|
shouldUpdatePosition: !0,
|
|
30
|
-
children: /* @__PURE__ */ o(
|
|
31
|
-
|
|
31
|
+
children: /* @__PURE__ */ o(v, { onClose: n, "aria-label": c, className: r.root, ...u, children: m?.map(({ onClick: e, isDisabled: d, href: M, icon: t, label: g, ...C }, N) => /* @__PURE__ */ P(
|
|
32
|
+
x,
|
|
32
33
|
{
|
|
33
34
|
onAction: () => {
|
|
34
35
|
e();
|
|
35
36
|
},
|
|
36
|
-
isDisabled:
|
|
37
|
-
href:
|
|
37
|
+
isDisabled: d,
|
|
38
|
+
href: M,
|
|
38
39
|
className: r.menuItem,
|
|
39
|
-
...
|
|
40
|
+
...C,
|
|
40
41
|
children: [
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
t && /* @__PURE__ */ o("div", { className: r.menuIcon, children: t }),
|
|
43
|
+
g
|
|
43
44
|
]
|
|
44
45
|
},
|
|
45
|
-
|
|
46
|
+
N
|
|
46
47
|
)) })
|
|
47
48
|
}
|
|
48
49
|
);
|
|
49
50
|
}
|
|
50
51
|
export {
|
|
51
|
-
|
|
52
|
+
R as Menu
|
|
52
53
|
};
|
|
53
54
|
//# sourceMappingURL=Menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sources":["../../../../../src/components/Common/UI/Menu/Menu.tsx"],"sourcesContent":["import { Menu as AriaMenu, MenuItem as AriaMenuItem, Popover } from 'react-aria-components'\nimport styles from './Menu.module.scss'\nimport { type MenuProps, MenuDefaults } from './MenuTypes'\nimport { applyMissingDefaults } from '@/helpers/applyMissingDefaults'\nimport { useTheme } from '@/contexts/ThemeProvider'\n\nexport function Menu(rawProps: MenuProps) {\n const resolvedProps = applyMissingDefaults(rawProps, MenuDefaults)\n const {\n triggerRef,\n items,\n isOpen,\n onClose,\n 'aria-label': ariaLabel,\n ...otherProps\n } = resolvedProps\n const { container } = useTheme()\n\n const handleOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n onClose?.()\n }\n }\n\n return (\n <Popover\n UNSTABLE_portalContainer={container.current}\n onOpenChange={handleOpenChange}\n isOpen={isOpen}\n triggerRef={triggerRef}\n placement
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../../../src/components/Common/UI/Menu/Menu.tsx"],"sourcesContent":["import { Menu as AriaMenu, MenuItem as AriaMenuItem, Popover } from 'react-aria-components'\nimport styles from './Menu.module.scss'\nimport { type MenuProps, MenuDefaults } from './MenuTypes'\nimport { applyMissingDefaults } from '@/helpers/applyMissingDefaults'\nimport { useTheme } from '@/contexts/ThemeProvider'\n\nexport function Menu(rawProps: MenuProps) {\n const resolvedProps = applyMissingDefaults(rawProps, MenuDefaults)\n const {\n triggerRef,\n items,\n isOpen,\n onClose,\n placement,\n 'aria-label': ariaLabel,\n ...otherProps\n } = resolvedProps\n const { container } = useTheme()\n\n const handleOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n onClose?.()\n }\n }\n\n return (\n <Popover\n UNSTABLE_portalContainer={container.current}\n onOpenChange={handleOpenChange}\n isOpen={isOpen}\n triggerRef={triggerRef}\n placement={placement}\n offset={8}\n shouldUpdatePosition={true}\n >\n <AriaMenu onClose={onClose} aria-label={ariaLabel} className={styles.root} {...otherProps}>\n {items?.map(({ onClick, isDisabled, href, icon, label, ...itemProps }, index) => (\n <AriaMenuItem\n key={index}\n onAction={() => {\n onClick()\n }}\n isDisabled={isDisabled}\n href={href}\n className={styles.menuItem}\n {...itemProps}\n >\n {icon && <div className={styles.menuIcon}>{icon}</div>}\n {label}\n </AriaMenuItem>\n ))}\n </AriaMenu>\n </Popover>\n )\n}\n"],"names":["Menu","rawProps","resolvedProps","applyMissingDefaults","MenuDefaults","triggerRef","items","isOpen","onClose","placement","ariaLabel","otherProps","container","useTheme","handleOpenChange","jsx","Popover","AriaMenu","styles","onClick","isDisabled","href","icon","label","itemProps","index","jsxs","AriaMenuItem"],"mappings":";;;;;;;;AAMO,SAASA,EAAKC,GAAqB;AACxC,QAAMC,IAAgBC,EAAqBF,GAAUG,CAAY,GAC3D;AAAA,IACJ,YAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAcC;AAAA,IACd,GAAGC;AAAA,EAAA,IACDT,GACE,EAAE,WAAAU,EAAA,IAAcC,EAAA,GAEhBC,IAAmB,CAACP,MAAoB;AAC5C,IAAKA,KACHC,IAAA;AAAA,EAEJ;AAEA,SACE,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,0BAA0BJ,EAAU;AAAA,MACpC,cAAcE;AAAA,MACd,QAAAP;AAAA,MACA,YAAAF;AAAA,MACA,WAAAI;AAAA,MACA,QAAQ;AAAA,MACR,sBAAsB;AAAA,MAEtB,UAAA,gBAAAM,EAACE,KAAS,SAAAT,GAAkB,cAAYE,GAAW,WAAWQ,EAAO,MAAO,GAAGP,GAC5E,UAAAL,GAAO,IAAI,CAAC,EAAE,SAAAa,GAAS,YAAAC,GAAY,MAAAC,GAAM,MAAAC,GAAM,OAAAC,GAAO,GAAGC,EAAA,GAAaC,MACrE,gBAAAC;AAAA,QAACC;AAAAA,QAAA;AAAA,UAEC,UAAU,MAAM;AACd,YAAAR,EAAA;AAAA,UACF;AAAA,UACA,YAAAC;AAAA,UACA,MAAAC;AAAA,UACA,WAAWH,EAAO;AAAA,UACjB,GAAGM;AAAA,UAEH,UAAA;AAAA,YAAAF,KAAQ,gBAAAP,EAAC,OAAA,EAAI,WAAWG,EAAO,UAAW,UAAAI,GAAK;AAAA,YAC/CC;AAAA,UAAA;AAAA,QAAA;AAAA,QAVIE;AAAA,MAAA,CAYR,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const
|
|
2
|
-
root:
|
|
3
|
-
menuItem:
|
|
4
|
-
menuIcon:
|
|
1
|
+
const o = "_root_1t1om_1", t = "_menuItem_1t1om_13", n = "_menuIcon_1t1om_44", e = {
|
|
2
|
+
root: o,
|
|
3
|
+
menuItem: t,
|
|
4
|
+
menuIcon: n
|
|
5
5
|
};
|
|
6
6
|
export {
|
|
7
7
|
e as default,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
n as menuIcon,
|
|
9
|
+
t as menuItem,
|
|
10
|
+
o as root
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=Menu.module.scss.js.map
|
|
@@ -43,10 +43,15 @@ export interface MenuProps extends DataAttributes {
|
|
|
43
43
|
* Accessible label describing the menu's purpose
|
|
44
44
|
*/
|
|
45
45
|
'aria-label': string;
|
|
46
|
+
/**
|
|
47
|
+
* Controls the placement of the menu popover relative to the trigger
|
|
48
|
+
*/
|
|
49
|
+
placement?: 'top' | 'top start' | 'top end' | 'bottom' | 'bottom start' | 'bottom end' | 'left' | 'right';
|
|
46
50
|
}
|
|
47
51
|
/**
|
|
48
52
|
* Default prop values for Menu component.
|
|
49
53
|
*/
|
|
50
54
|
export declare const MenuDefaults: {
|
|
51
55
|
readonly isOpen: false;
|
|
56
|
+
readonly placement: "bottom start";
|
|
52
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTypes.js","sources":["../../../../../src/components/Common/UI/Menu/MenuTypes.ts"],"sourcesContent":["import type { ReactNode, RefObject } from 'react'\nimport type { DataAttributes } from '@/types/Helpers'\n\nexport interface MenuItem extends DataAttributes {\n /**\n * Text label for the menu item\n */\n label: string\n /**\n * Optional icon to display before the label\n */\n icon?: ReactNode\n /**\n * Callback function when the menu item is clicked\n */\n onClick: () => void\n /**\n * Disables the menu item and prevents interaction\n */\n isDisabled?: boolean\n /**\n * Optional URL to navigate to when clicked\n */\n href?: string\n}\n\nexport interface MenuProps extends DataAttributes {\n /**\n * Reference to the element that triggers the menu\n */\n triggerRef?: RefObject<Element | null>\n /**\n * Array of menu items to display\n */\n items?: MenuItem[]\n /**\n * Controls whether the menu is currently open\n */\n isOpen?: boolean\n /**\n * Callback when the menu is closed\n */\n onClose?: () => void\n /**\n * Accessible label describing the menu's purpose\n */\n 'aria-label': string\n}\n\n/**\n * Default prop values for Menu component.\n */\nexport const MenuDefaults = {\n isOpen: false,\n} as const satisfies Partial<MenuProps>\n"],"names":["MenuDefaults"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuTypes.js","sources":["../../../../../src/components/Common/UI/Menu/MenuTypes.ts"],"sourcesContent":["import type { ReactNode, RefObject } from 'react'\nimport type { DataAttributes } from '@/types/Helpers'\n\nexport interface MenuItem extends DataAttributes {\n /**\n * Text label for the menu item\n */\n label: string\n /**\n * Optional icon to display before the label\n */\n icon?: ReactNode\n /**\n * Callback function when the menu item is clicked\n */\n onClick: () => void\n /**\n * Disables the menu item and prevents interaction\n */\n isDisabled?: boolean\n /**\n * Optional URL to navigate to when clicked\n */\n href?: string\n}\n\nexport interface MenuProps extends DataAttributes {\n /**\n * Reference to the element that triggers the menu\n */\n triggerRef?: RefObject<Element | null>\n /**\n * Array of menu items to display\n */\n items?: MenuItem[]\n /**\n * Controls whether the menu is currently open\n */\n isOpen?: boolean\n /**\n * Callback when the menu is closed\n */\n onClose?: () => void\n /**\n * Accessible label describing the menu's purpose\n */\n 'aria-label': string\n /**\n * Controls the placement of the menu popover relative to the trigger\n */\n placement?:\n | 'top'\n | 'top start'\n | 'top end'\n | 'bottom'\n | 'bottom start'\n | 'bottom end'\n | 'left'\n | 'right'\n}\n\n/**\n * Default prop values for Menu component.\n */\nexport const MenuDefaults = {\n isOpen: false,\n placement: 'bottom start',\n} as const satisfies Partial<MenuProps>\n"],"names":["MenuDefaults"],"mappings":"AAgEO,MAAMA,IAAe;AAAA,EAC1B,QAAQ;AAAA,EACR,WAAW;AACb;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import c from "classnames";
|
|
3
|
-
import n from "
|
|
4
|
-
import
|
|
3
|
+
import { Flex as n } from "../../Flex/Flex.js";
|
|
4
|
+
import p from "./ProgressBar.module.scss.js";
|
|
5
5
|
import { VisuallyHidden as d } from "../../VisuallyHidden/VisuallyHidden.js";
|
|
6
6
|
function y({
|
|
7
7
|
className: i,
|
|
@@ -13,9 +13,9 @@ function y({
|
|
|
13
13
|
const s = Math.max(1, Math.min(m, e)), l = {
|
|
14
14
|
"--g-progress-bar-width": `${s * 100 / e}%`
|
|
15
15
|
};
|
|
16
|
-
return /* @__PURE__ */ t(
|
|
16
|
+
return /* @__PURE__ */ t(n, { flexDirection: "column", children: [
|
|
17
17
|
o && /* @__PURE__ */ r(o, {}),
|
|
18
|
-
/* @__PURE__ */ r("div", { className: c(
|
|
18
|
+
/* @__PURE__ */ r("div", { className: c(p.root, i), style: l, children: /* @__PURE__ */ r(d, { children: /* @__PURE__ */ r("progress", { "aria-label": a, value: s, max: e }) }) })
|
|
19
19
|
] });
|
|
20
20
|
}
|
|
21
21
|
export {
|
|
@@ -1,43 +1,49 @@
|
|
|
1
|
-
import { jsx as h, jsxs as
|
|
2
|
-
import { useContractorsListSuspense as
|
|
3
|
-
import { useContractorPaymentGroupsCreateMutation as
|
|
4
|
-
import { useContractorPaymentGroupsPreviewMutation as
|
|
5
|
-
import { useState as u, useMemo as
|
|
6
|
-
import
|
|
7
|
-
import { RFCDate as
|
|
8
|
-
import { useForm as
|
|
9
|
-
import { zodResolver as
|
|
10
|
-
import { useTranslation as
|
|
11
|
-
import { useBankAccountsGet as
|
|
12
|
-
import { usePaymentConfigsGet as
|
|
13
|
-
import { CreatePaymentPresentation as
|
|
14
|
-
import { EditContractorPaymentPresentation as
|
|
15
|
-
import { createEditContractorPaymentFormSchema as
|
|
16
|
-
import { PreviewPresentation as
|
|
17
|
-
import { payrollSubmitHandler as
|
|
18
|
-
import { useComponentDictionary as
|
|
19
|
-
import { BaseComponent as
|
|
20
|
-
import { useBase as
|
|
21
|
-
import { ContractorOnboardingStatus as
|
|
22
|
-
import { firstLastName as
|
|
23
|
-
function
|
|
24
|
-
return /* @__PURE__ */ h(
|
|
1
|
+
import { jsx as h, jsxs as Q, Fragment as X } from "react/jsx-runtime";
|
|
2
|
+
import { useContractorsListSuspense as Z } from "@gusto/embedded-api/react-query/contractorsList";
|
|
3
|
+
import { useContractorPaymentGroupsCreateMutation as $ } from "@gusto/embedded-api/react-query/contractorPaymentGroupsCreate";
|
|
4
|
+
import { useContractorPaymentGroupsPreviewMutation as tt } from "@gusto/embedded-api/react-query/contractorPaymentGroupsPreview";
|
|
5
|
+
import { useState as u, useRef as et, useEffect as ot, useMemo as B } from "react";
|
|
6
|
+
import rt from "dompurify";
|
|
7
|
+
import { RFCDate as G } from "@gusto/embedded-api/types/rfcdate";
|
|
8
|
+
import { useForm as nt } from "react-hook-form";
|
|
9
|
+
import { zodResolver as st } from "@hookform/resolvers/zod";
|
|
10
|
+
import { useTranslation as at } from "react-i18next";
|
|
11
|
+
import { useBankAccountsGet as ct } from "@gusto/embedded-api/react-query/bankAccountsGet";
|
|
12
|
+
import { usePaymentConfigsGet as it } from "@gusto/embedded-api/react-query/paymentConfigsGet";
|
|
13
|
+
import { CreatePaymentPresentation as mt } from "./CreatePaymentPresentation.js";
|
|
14
|
+
import { EditContractorPaymentPresentation as ut } from "./EditContractorPaymentPresentation.js";
|
|
15
|
+
import { createEditContractorPaymentFormSchema as lt } from "./EditContractorPaymentFormSchema.js";
|
|
16
|
+
import { PreviewPresentation as yt } from "./PreviewPresentation.js";
|
|
17
|
+
import { payrollSubmitHandler as pt } from "../../../Payroll/PayrollBlocker/payrollHelpers.js";
|
|
18
|
+
import { useComponentDictionary as dt } from "../../../../i18n/I18n.js";
|
|
19
|
+
import { BaseComponent as Pt } from "../../../Base/Base.js";
|
|
20
|
+
import { useBase as Ct } from "../../../Base/useBase.js";
|
|
21
|
+
import { ContractorOnboardingStatus as ft, componentEvents as p } from "../../../../shared/constants.js";
|
|
22
|
+
import { firstLastName as ht } from "../../../../helpers/formattedStrings.js";
|
|
23
|
+
function Jt(i) {
|
|
24
|
+
return /* @__PURE__ */ h(Pt, { ...i, componentName: "Contractor.Payments.CreatePayment", children: /* @__PURE__ */ h(bt, { ...i, children: i.children }) });
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
const { t: b } =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
} =
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
const bt = ({ companyId: i, dictionary: V, onEvent: l }) => {
|
|
27
|
+
dt("Contractor.Payments.CreatePayment", V);
|
|
28
|
+
const { t: b } = at("Contractor.Payments.CreatePayment"), [H, T] = u(!1), { baseSubmitHandler: M } = Ct(), [N, d] = u({}), [P, A] = u(null), [I, w] = u([]), [k, O] = u({}), { mutateAsync: L, isPending: R } = $(), {
|
|
29
|
+
mutateAsync: Y,
|
|
30
|
+
isPending: E
|
|
31
|
+
} = tt(), { data: F } = Z({ companyUuid: i }), a = (F.contractors || []).filter(
|
|
32
|
+
(t) => t.isActive && t.onboardingStatus === ft.ONBOARDING_COMPLETED
|
|
33
|
+
), { data: q } = ct({ companyId: i }), { data: x } = it({ companyUuid: i }), z = q?.companyBankAccounts?.[0], C = x?.paymentConfigs?.paymentSpeed, S = (t) => {
|
|
34
|
+
const o = /* @__PURE__ */ new Date();
|
|
35
|
+
let e = 0;
|
|
36
|
+
return t === "1-day" ? e = 1 : t === "2-day" ? e = 2 : t === "4-day" && (e = 4), o.setDate(o.getDate() + e), o.toISOString().split("T")[0] || "";
|
|
37
|
+
}, [D, U] = u(S(C)), _ = et(!1);
|
|
38
|
+
ot(() => {
|
|
39
|
+
C && !_.current && (U(S(C)), _.current = !0);
|
|
40
|
+
}, [C]);
|
|
41
|
+
const j = B(
|
|
36
42
|
() => a.map((t) => {
|
|
37
|
-
const
|
|
43
|
+
const o = t.paymentMethod ? t.paymentMethod : "Direct Deposit";
|
|
38
44
|
return {
|
|
39
45
|
contractorUuid: t.uuid,
|
|
40
|
-
paymentMethod:
|
|
46
|
+
paymentMethod: o,
|
|
41
47
|
wage: "0",
|
|
42
48
|
hours: "0",
|
|
43
49
|
bonus: "0",
|
|
@@ -46,22 +52,22 @@ const Pt = ({ companyId: c, dictionary: _, onEvent: l }) => {
|
|
|
46
52
|
};
|
|
47
53
|
}),
|
|
48
54
|
[a]
|
|
49
|
-
), [
|
|
50
|
-
() =>
|
|
51
|
-
(t,
|
|
52
|
-
const
|
|
55
|
+
), [y, W] = u(j), K = B(
|
|
56
|
+
() => y.reduce(
|
|
57
|
+
(t, o) => {
|
|
58
|
+
const e = a.find((J) => J.uuid === o.contractorUuid), c = e?.wageType === "Hourly", n = Number(o.hours || "0"), s = Number(o.wage || "0"), r = Number(o.bonus || "0"), m = Number(o.reimbursement || "0"), v = c ? n * Number(e.hourlyRate || "0") : 0, g = c ? 0 : s;
|
|
53
59
|
return {
|
|
54
|
-
wage: t.wage +
|
|
60
|
+
wage: t.wage + g,
|
|
55
61
|
bonus: t.bonus + r,
|
|
56
62
|
reimbursement: t.reimbursement + m,
|
|
57
|
-
total: t.total +
|
|
63
|
+
total: t.total + v + g + r + m
|
|
58
64
|
};
|
|
59
65
|
},
|
|
60
66
|
{ wage: 0, bonus: 0, reimbursement: 0, total: 0 }
|
|
61
67
|
),
|
|
62
|
-
[
|
|
63
|
-
),
|
|
64
|
-
resolver:
|
|
68
|
+
[y, a]
|
|
69
|
+
), f = nt({
|
|
70
|
+
resolver: st(lt()),
|
|
65
71
|
defaultValues: {
|
|
66
72
|
wageType: "Hourly",
|
|
67
73
|
hours: 0,
|
|
@@ -74,64 +80,64 @@ const Pt = ({ companyId: c, dictionary: _, onEvent: l }) => {
|
|
|
74
80
|
contractorPaymentMethod: void 0
|
|
75
81
|
}
|
|
76
82
|
});
|
|
77
|
-
return /* @__PURE__ */
|
|
83
|
+
return /* @__PURE__ */ Q(X, { children: [
|
|
78
84
|
P && /* @__PURE__ */ h(
|
|
79
|
-
|
|
85
|
+
yt,
|
|
80
86
|
{
|
|
81
87
|
contractorPaymentGroup: P,
|
|
82
88
|
contractors: a,
|
|
83
89
|
onBackToEdit: () => {
|
|
84
|
-
|
|
90
|
+
A(null), w([]), O({}), l(p.CONTRACTOR_PAYMENT_BACK_TO_EDIT);
|
|
85
91
|
},
|
|
86
92
|
onSubmit: async () => {
|
|
87
93
|
await M(null, async () => {
|
|
88
|
-
const t =
|
|
94
|
+
const t = y.filter((s) => s.isTouched);
|
|
89
95
|
if (t.length === 0 || !P?.creationToken)
|
|
90
96
|
return;
|
|
91
|
-
const
|
|
97
|
+
const o = P.creationToken, e = Object.entries(k).map(
|
|
92
98
|
([s, r]) => ({
|
|
93
99
|
blockerType: s,
|
|
94
100
|
selectedOption: r
|
|
95
101
|
})
|
|
96
|
-
),
|
|
97
|
-
checkDate: new
|
|
102
|
+
), c = {
|
|
103
|
+
checkDate: new G(D),
|
|
98
104
|
contractorPayments: t.map(({ isTouched: s, ...r }) => r),
|
|
99
|
-
creationToken:
|
|
100
|
-
...
|
|
101
|
-
}, n = await
|
|
105
|
+
creationToken: o,
|
|
106
|
+
...e.length > 0 && { submissionBlockers: e }
|
|
107
|
+
}, n = await L({
|
|
102
108
|
request: {
|
|
103
|
-
companyId:
|
|
104
|
-
requestBody:
|
|
109
|
+
companyId: i,
|
|
110
|
+
requestBody: c
|
|
105
111
|
}
|
|
106
112
|
});
|
|
107
|
-
l(
|
|
113
|
+
l(p.CONTRACTOR_PAYMENT_CREATED, n.contractorPaymentGroup || {});
|
|
108
114
|
});
|
|
109
115
|
},
|
|
110
|
-
isLoading:
|
|
111
|
-
bankAccount:
|
|
116
|
+
isLoading: R || E,
|
|
117
|
+
bankAccount: z,
|
|
112
118
|
selectedUnblockOptions: k,
|
|
113
|
-
onUnblockOptionChange: (t,
|
|
114
|
-
|
|
115
|
-
...
|
|
116
|
-
[t]:
|
|
119
|
+
onUnblockOptionChange: (t, o) => {
|
|
120
|
+
O((e) => ({
|
|
121
|
+
...e,
|
|
122
|
+
[t]: o
|
|
117
123
|
}));
|
|
118
124
|
},
|
|
119
|
-
paymentSpeed:
|
|
125
|
+
paymentSpeed: C
|
|
120
126
|
}
|
|
121
127
|
),
|
|
122
128
|
!P && /* @__PURE__ */ h(
|
|
123
|
-
|
|
129
|
+
mt,
|
|
124
130
|
{
|
|
125
131
|
contractors: a,
|
|
126
|
-
contractorPayments:
|
|
127
|
-
paymentDate:
|
|
128
|
-
onPaymentDateChange:
|
|
132
|
+
contractorPayments: y,
|
|
133
|
+
paymentDate: D,
|
|
134
|
+
onPaymentDateChange: U,
|
|
129
135
|
onSaveAndContinue: async () => {
|
|
130
136
|
await M(null, async () => {
|
|
131
|
-
const t =
|
|
137
|
+
const t = y.filter((e) => e.isTouched);
|
|
132
138
|
if (t.length === 0) {
|
|
133
139
|
d({
|
|
134
|
-
...
|
|
140
|
+
...N,
|
|
135
141
|
error: {
|
|
136
142
|
type: "error",
|
|
137
143
|
title: b("alerts.noContractorPayments")
|
|
@@ -140,75 +146,75 @@ const Pt = ({ companyId: c, dictionary: _, onEvent: l }) => {
|
|
|
140
146
|
return;
|
|
141
147
|
}
|
|
142
148
|
d({}), w([]);
|
|
143
|
-
const
|
|
144
|
-
const
|
|
149
|
+
const o = await pt(async () => {
|
|
150
|
+
const e = await Y({
|
|
145
151
|
request: {
|
|
146
|
-
companyId:
|
|
152
|
+
companyId: i,
|
|
147
153
|
requestBody: {
|
|
148
|
-
contractorPayments: t.map(({ isTouched:
|
|
149
|
-
checkDate: new
|
|
154
|
+
contractorPayments: t.map(({ isTouched: c, ...n }) => n),
|
|
155
|
+
checkDate: new G(D)
|
|
150
156
|
}
|
|
151
157
|
}
|
|
152
158
|
});
|
|
153
|
-
|
|
159
|
+
A(e.contractorPaymentGroupPreview || null), l(p.CONTRACTOR_PAYMENT_PREVIEW, e.contractorPaymentGroupPreview);
|
|
154
160
|
});
|
|
155
|
-
!
|
|
161
|
+
!o.success && o.blockers.length > 0 && w(o.blockers);
|
|
156
162
|
});
|
|
157
163
|
},
|
|
158
164
|
onEditContractor: (t) => {
|
|
159
|
-
const
|
|
165
|
+
const o = a.find((s) => s.uuid === t), e = y.find(
|
|
160
166
|
(s) => s.contractorUuid === t
|
|
161
|
-
),
|
|
162
|
-
|
|
167
|
+
), c = e?.paymentMethod || "Direct Deposit", n = ["Check", "Direct Deposit"].includes(c) ? c : "Check";
|
|
168
|
+
f.reset(
|
|
163
169
|
{
|
|
164
|
-
wageType:
|
|
165
|
-
hours: Number(
|
|
166
|
-
wage: Number(
|
|
167
|
-
bonus: Number(
|
|
168
|
-
reimbursement: Number(
|
|
170
|
+
wageType: o?.wageType || "Hourly",
|
|
171
|
+
hours: Number(e?.hours || "0"),
|
|
172
|
+
wage: Number(e?.wage || "0"),
|
|
173
|
+
bonus: Number(e?.bonus || "0"),
|
|
174
|
+
reimbursement: Number(e?.reimbursement || "0"),
|
|
169
175
|
paymentMethod: n,
|
|
170
|
-
hourlyRate: Number(
|
|
176
|
+
hourlyRate: Number(o?.hourlyRate || "0"),
|
|
171
177
|
contractorUuid: t,
|
|
172
|
-
contractorPaymentMethod:
|
|
178
|
+
contractorPaymentMethod: o?.paymentMethod || void 0
|
|
173
179
|
},
|
|
174
180
|
{ keepDirty: !1, keepValues: !1 }
|
|
175
|
-
), d({}),
|
|
181
|
+
), d({}), T(!0), l(p.CONTRACTOR_PAYMENT_EDIT);
|
|
176
182
|
},
|
|
177
|
-
totals:
|
|
178
|
-
alerts:
|
|
179
|
-
payrollBlockers:
|
|
183
|
+
totals: K,
|
|
184
|
+
alerts: N,
|
|
185
|
+
payrollBlockers: I,
|
|
180
186
|
onViewBlockers: () => {
|
|
181
|
-
l(
|
|
187
|
+
l(p.CONTRACTOR_PAYMENT_RFI_RESPOND);
|
|
182
188
|
},
|
|
183
|
-
isLoading:
|
|
189
|
+
isLoading: R || E
|
|
184
190
|
}
|
|
185
191
|
),
|
|
186
192
|
/* @__PURE__ */ h(
|
|
187
|
-
|
|
193
|
+
ut,
|
|
188
194
|
{
|
|
189
|
-
isOpen:
|
|
195
|
+
isOpen: H,
|
|
190
196
|
onClose: () => {
|
|
191
|
-
|
|
197
|
+
T(!1);
|
|
192
198
|
},
|
|
193
|
-
formMethods:
|
|
199
|
+
formMethods: f,
|
|
194
200
|
onSubmit: (t) => {
|
|
195
|
-
const
|
|
201
|
+
const e = a.find((r) => r.uuid === t.contractorUuid)?.paymentMethod;
|
|
196
202
|
if (!["Check", "Direct Deposit"].includes(t.paymentMethod)) {
|
|
197
|
-
|
|
203
|
+
f.setError("paymentMethod", {
|
|
198
204
|
type: "manual",
|
|
199
205
|
message: b("editContractorPayment.errors.unsupportedPaymentMethod")
|
|
200
206
|
});
|
|
201
207
|
return;
|
|
202
208
|
}
|
|
203
|
-
if (
|
|
204
|
-
|
|
209
|
+
if (e === "Check" && t.paymentMethod === "Direct Deposit") {
|
|
210
|
+
f.setError("paymentMethod", {
|
|
205
211
|
type: "manual",
|
|
206
212
|
message: b("editContractorPayment.errors.directDepositNotAvailable")
|
|
207
213
|
});
|
|
208
214
|
return;
|
|
209
215
|
}
|
|
210
|
-
const
|
|
211
|
-
|
|
216
|
+
const c = (t.wage ?? 0) > 0 || (t.hours ?? 0) > 0 || (t.bonus ?? 0) > 0 || (t.reimbursement ?? 0) > 0;
|
|
217
|
+
W(
|
|
212
218
|
(r) => r.map(
|
|
213
219
|
(m) => m.contractorUuid === t.contractorUuid ? {
|
|
214
220
|
contractorUuid: m.contractorUuid,
|
|
@@ -217,14 +223,14 @@ const Pt = ({ companyId: c, dictionary: _, onEvent: l }) => {
|
|
|
217
223
|
bonus: String(t.bonus ?? 0),
|
|
218
224
|
reimbursement: String(t.reimbursement ?? 0),
|
|
219
225
|
paymentMethod: t.paymentMethod,
|
|
220
|
-
isTouched:
|
|
226
|
+
isTouched: c
|
|
221
227
|
} : m
|
|
222
228
|
)
|
|
223
229
|
);
|
|
224
230
|
const n = a.find(
|
|
225
231
|
(r) => r.uuid === t.contractorUuid
|
|
226
|
-
), s =
|
|
227
|
-
n?.type === "Individual" ?
|
|
232
|
+
), s = rt.sanitize(
|
|
233
|
+
n?.type === "Individual" ? ht({
|
|
228
234
|
first_name: n.firstName,
|
|
229
235
|
last_name: n.lastName
|
|
230
236
|
}) : n?.businessName || ""
|
|
@@ -239,20 +245,20 @@ const Pt = ({ companyId: c, dictionary: _, onEvent: l }) => {
|
|
|
239
245
|
}),
|
|
240
246
|
onDismiss: () => {
|
|
241
247
|
d((m) => {
|
|
242
|
-
const { [t.contractorUuid]:
|
|
243
|
-
return
|
|
248
|
+
const { [t.contractorUuid]: v, ...g } = m;
|
|
249
|
+
return g;
|
|
244
250
|
});
|
|
245
251
|
}
|
|
246
252
|
}
|
|
247
|
-
})),
|
|
253
|
+
})), T(!1), l(p.CONTRACTOR_PAYMENT_UPDATE, t);
|
|
248
254
|
},
|
|
249
|
-
contractorPaymentMethod: a.find((t) => t.uuid ===
|
|
255
|
+
contractorPaymentMethod: a.find((t) => t.uuid === f.getValues("contractorUuid"))?.paymentMethod ?? void 0
|
|
250
256
|
}
|
|
251
257
|
)
|
|
252
258
|
] });
|
|
253
259
|
};
|
|
254
260
|
export {
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
Jt as CreatePayment,
|
|
262
|
+
bt as Root
|
|
257
263
|
};
|
|
258
264
|
//# sourceMappingURL=CreatePayment.js.map
|