@dmsi/wedgekit-react 0.0.161 → 0.0.163
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/dist/{chunk-SBSHZ327.js → chunk-O4JGGMFE.js} +3 -7
- package/dist/{chunk-RLK4TBXR.js → chunk-UBU6IJML.js} +20 -4
- package/dist/components/DataGridCell.cjs +22 -10
- package/dist/components/DataGridCell.js +2 -2
- package/dist/components/HorizontalDivider.js +8 -3
- package/dist/components/Menu.cjs +20 -4
- package/dist/components/Menu.js +1 -1
- package/dist/components/Radio.js +133 -5
- package/dist/components/WorldpayIframe.js +6 -3
- package/dist/components/index.cjs +51 -1050
- package/dist/components/index.js +3 -18
- package/dist/index.css +0 -6
- package/package.json +1 -1
- package/src/components/DataGrid/ColumnSelectorHeaderCell/index.tsx +1 -0
- package/src/components/DataGridCell.tsx +1 -1
- package/src/components/Menu.tsx +25 -3
- package/src/components/index.ts +0 -1
- package/dist/chunk-BATIOCXB.js +0 -138
- package/dist/chunk-EPQLWHCL.js +0 -11
- package/dist/chunk-NT2ZKA4W.js +0 -266
- package/dist/chunk-WFGKIR5A.js +0 -9
- package/dist/chunk-WFLOAGEI.js +0 -112
- package/dist/components/PaymentOnAccountModal.cjs +0 -2381
- package/dist/components/PaymentOnAccountModal.js +0 -35
- package/dist/components/SelectPaymentMethod.cjs +0 -1355
- package/dist/components/SelectPaymentMethod.js +0 -22
- package/src/components/PaymentOnAccountModal.tsx +0 -121
- package/src/components/SelectPaymentMethod.tsx +0 -315
|
@@ -74,7 +74,6 @@ __export(components_exports, {
|
|
|
74
74
|
Menu: () => Menu,
|
|
75
75
|
MenuOption: () => MenuOption,
|
|
76
76
|
Paragraph: () => Paragraph,
|
|
77
|
-
PaymentOnAccountModal: () => PaymentOnAccountModal,
|
|
78
77
|
Search: () => Search,
|
|
79
78
|
Select: () => Select,
|
|
80
79
|
Subheader: () => Subheader,
|
|
@@ -1271,7 +1270,8 @@ var Menu = (_a) => {
|
|
|
1271
1270
|
mobileHide,
|
|
1272
1271
|
useDefaultMinWidth,
|
|
1273
1272
|
autoFocusOff,
|
|
1274
|
-
menuName
|
|
1273
|
+
menuName,
|
|
1274
|
+
calculateMinMaxHeight
|
|
1275
1275
|
} = _b, props = __objRest(_b, [
|
|
1276
1276
|
"id",
|
|
1277
1277
|
"testid",
|
|
@@ -1289,7 +1289,8 @@ var Menu = (_a) => {
|
|
|
1289
1289
|
"mobileHide",
|
|
1290
1290
|
"useDefaultMinWidth",
|
|
1291
1291
|
"autoFocusOff",
|
|
1292
|
-
"menuName"
|
|
1292
|
+
"menuName",
|
|
1293
|
+
"calculateMinMaxHeight"
|
|
1293
1294
|
]);
|
|
1294
1295
|
const internalRef = (0, import_react8.useRef)(null);
|
|
1295
1296
|
const actualRef = ref || internalRef;
|
|
@@ -1306,8 +1307,11 @@ var Menu = (_a) => {
|
|
|
1306
1307
|
}
|
|
1307
1308
|
);
|
|
1308
1309
|
(0, import_react8.useEffect)(() => {
|
|
1310
|
+
if (calculateMinMaxHeight) {
|
|
1311
|
+
return;
|
|
1312
|
+
}
|
|
1309
1313
|
const raf = requestAnimationFrame(() => {
|
|
1310
|
-
if (!actualRef
|
|
1314
|
+
if (!actualRef.current || customMaxHeight) {
|
|
1311
1315
|
return;
|
|
1312
1316
|
}
|
|
1313
1317
|
if (actualRef.current.childElementCount > 4) {
|
|
@@ -1325,7 +1329,18 @@ var Menu = (_a) => {
|
|
|
1325
1329
|
return () => {
|
|
1326
1330
|
cancelAnimationFrame(raf);
|
|
1327
1331
|
};
|
|
1328
|
-
}, [actualRef, customMaxHeight]);
|
|
1332
|
+
}, [actualRef.current, customMaxHeight, calculateMinMaxHeight]);
|
|
1333
|
+
(0, import_react8.useEffect)(() => {
|
|
1334
|
+
if (!calculateMinMaxHeight) {
|
|
1335
|
+
return;
|
|
1336
|
+
}
|
|
1337
|
+
if ((positionTo == null ? void 0 : positionTo.current) && actualRef.current) {
|
|
1338
|
+
const positionToRect = positionTo.current.getBoundingClientRect();
|
|
1339
|
+
const offsetInPx = 16;
|
|
1340
|
+
const calculatedMaxHeight = window.innerHeight - positionToRect.bottom - offsetInPx;
|
|
1341
|
+
setMaxHeight(`${calculatedMaxHeight}px`);
|
|
1342
|
+
}
|
|
1343
|
+
}, [actualRef.current, positionTo == null ? void 0 : positionTo.current, calculateMinMaxHeight]);
|
|
1329
1344
|
(0, import_react8.useEffect)(() => {
|
|
1330
1345
|
if (!show) {
|
|
1331
1346
|
return;
|
|
@@ -2004,7 +2019,7 @@ function DataCellHeader(_a) {
|
|
|
2004
2019
|
children: "Filter"
|
|
2005
2020
|
})
|
|
2006
2021
|
),
|
|
2007
|
-
!predeterminedPinned.current && header.column.getCanPin() && /* @__PURE__ */ (0, import_jsx_runtime8.
|
|
2022
|
+
!predeterminedPinned.current && header.column.getCanPin() && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2008
2023
|
MenuOption,
|
|
2009
2024
|
__spreadProps(__spreadValues({
|
|
2010
2025
|
onClick: () => {
|
|
@@ -2055,11 +2070,7 @@ function DataCellHeader(_a) {
|
|
|
2055
2070
|
})
|
|
2056
2071
|
);
|
|
2057
2072
|
},
|
|
2058
|
-
children: [
|
|
2059
|
-
"Freeze [",
|
|
2060
|
-
header.column.columnDef.header,
|
|
2061
|
-
"]"
|
|
2062
|
-
]
|
|
2073
|
+
children: `Freeze [${header.column.columnDef.header}]`
|
|
2063
2074
|
})
|
|
2064
2075
|
)
|
|
2065
2076
|
]
|
|
@@ -2633,6 +2644,7 @@ function ColumnSelectorHeaderCell({
|
|
|
2633
2644
|
position: "bottom-right",
|
|
2634
2645
|
show,
|
|
2635
2646
|
setShow,
|
|
2647
|
+
calculateMinMaxHeight: true,
|
|
2636
2648
|
children: [
|
|
2637
2649
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2638
2650
|
Button,
|
|
@@ -3703,461 +3715,32 @@ var Tooltip = ({
|
|
|
3703
3715
|
};
|
|
3704
3716
|
Tooltip.displayName = "Tooltip";
|
|
3705
3717
|
|
|
3706
|
-
// src/components/
|
|
3707
|
-
var
|
|
3708
|
-
var import_react19 = require("react");
|
|
3718
|
+
// src/components/Accordion.tsx
|
|
3719
|
+
var import_clsx21 = __toESM(require("clsx"), 1);
|
|
3709
3720
|
|
|
3710
|
-
// src/components/
|
|
3721
|
+
// src/components/Card.tsx
|
|
3711
3722
|
var import_clsx19 = __toESM(require("clsx"), 1);
|
|
3712
3723
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
className,
|
|
3716
|
-
children,
|
|
3717
|
-
as,
|
|
3718
|
-
color,
|
|
3719
|
-
align,
|
|
3720
|
-
variant = "heading1",
|
|
3721
|
-
id,
|
|
3722
|
-
testid
|
|
3723
|
-
} = _b, props = __objRest(_b, [
|
|
3724
|
-
"className",
|
|
3725
|
-
"children",
|
|
3726
|
-
"as",
|
|
3727
|
-
"color",
|
|
3728
|
-
"align",
|
|
3729
|
-
"variant",
|
|
3730
|
-
"id",
|
|
3731
|
-
"testid"
|
|
3732
|
-
]);
|
|
3733
|
-
const defaultElement = variant === "heading1" ? "h1" : variant === "heading2" ? "h2" : "h3";
|
|
3734
|
-
const Element = as != null ? as : defaultElement;
|
|
3724
|
+
function Card(props) {
|
|
3725
|
+
const _a = props, { children, selected, testid } = _a, rest = __objRest(_a, ["children", "selected", "testid"]);
|
|
3735
3726
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3736
|
-
|
|
3737
|
-
__spreadProps(__spreadValues({
|
|
3738
|
-
id,
|
|
3727
|
+
"div",
|
|
3728
|
+
__spreadProps(__spreadValues({}, rest), {
|
|
3739
3729
|
"data-testid": testid,
|
|
3740
3730
|
className: (0, import_clsx19.default)(
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
align === "center" && "text-center",
|
|
3745
|
-
align === "right" && "text-right"
|
|
3731
|
+
"rounded-sm p-desktop-layout-padding",
|
|
3732
|
+
selected ? "border-2 border-border-primary-focus" : "border border-border-primary-normal",
|
|
3733
|
+
rest.className
|
|
3746
3734
|
),
|
|
3747
|
-
style: __spreadProps(__spreadValues({}, props.style), {
|
|
3748
|
-
color: color ? `var(--color-${color})` : void 0
|
|
3749
|
-
})
|
|
3750
|
-
}, props), {
|
|
3751
3735
|
children
|
|
3752
3736
|
})
|
|
3753
3737
|
);
|
|
3754
|
-
};
|
|
3755
|
-
Heading.displayName = "Heading";
|
|
3756
|
-
var Heading1 = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Heading, __spreadProps(__spreadValues({}, props), { variant: "heading1" }));
|
|
3757
|
-
var Heading2 = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Heading, __spreadProps(__spreadValues({}, props), { variant: "heading2" }));
|
|
3758
|
-
var Heading3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Heading, __spreadProps(__spreadValues({}, props), { variant: "heading3" }));
|
|
3759
|
-
Heading1.displayName = "Heading1";
|
|
3760
|
-
Heading2.displayName = "Heading2";
|
|
3761
|
-
Heading3.displayName = "Heading3";
|
|
3762
|
-
|
|
3763
|
-
// src/components/ModalHeader.tsx
|
|
3764
|
-
var import_clsx20 = __toESM(require("clsx"), 1);
|
|
3765
|
-
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3766
|
-
var ModalHeader = ({
|
|
3767
|
-
title,
|
|
3768
|
-
hideCloseIcon,
|
|
3769
|
-
headerIcon,
|
|
3770
|
-
onClose,
|
|
3771
|
-
id,
|
|
3772
|
-
testid
|
|
3773
|
-
}) => {
|
|
3774
|
-
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3775
|
-
"div",
|
|
3776
|
-
{
|
|
3777
|
-
id,
|
|
3778
|
-
"data-testid": testid,
|
|
3779
|
-
className: (0, import_clsx20.default)(
|
|
3780
|
-
"flex justify-between items-center",
|
|
3781
|
-
layoutPaddding,
|
|
3782
|
-
layoutGroupGap
|
|
3783
|
-
),
|
|
3784
|
-
children: [
|
|
3785
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: (0, import_clsx20.default)("flex items-center", layoutGroupGap), children: [
|
|
3786
|
-
headerIcon,
|
|
3787
|
-
title && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Heading2, { id: id ? `${id}-title` : void 0, testid: testid ? `${testid}-title` : void 0, as: "p", children: title })
|
|
3788
|
-
] }),
|
|
3789
|
-
!hideCloseIcon && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3790
|
-
Button,
|
|
3791
|
-
{
|
|
3792
|
-
id: id ? `${id}-close-button` : void 0,
|
|
3793
|
-
testid: testid ? `${testid}-close-button` : void 0,
|
|
3794
|
-
iconOnly: true,
|
|
3795
|
-
variant: "tertiary",
|
|
3796
|
-
onClick: onClose,
|
|
3797
|
-
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "text-icon-primary-normal contents", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "close", size: 24 }) })
|
|
3798
|
-
}
|
|
3799
|
-
)
|
|
3800
|
-
]
|
|
3801
|
-
}
|
|
3802
|
-
);
|
|
3803
|
-
};
|
|
3804
|
-
ModalHeader.displayName = "ModalHeader";
|
|
3805
|
-
|
|
3806
|
-
// src/components/ModalContent.tsx
|
|
3807
|
-
var import_clsx21 = __toESM(require("clsx"), 1);
|
|
3808
|
-
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3809
|
-
function ModalContent({
|
|
3810
|
-
fixedHeightScrolling,
|
|
3811
|
-
children,
|
|
3812
|
-
id,
|
|
3813
|
-
testid
|
|
3814
|
-
}) {
|
|
3815
|
-
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3816
|
-
"div",
|
|
3817
|
-
{
|
|
3818
|
-
id,
|
|
3819
|
-
"data-testid": testid,
|
|
3820
|
-
className: (0, import_clsx21.default)(
|
|
3821
|
-
"flex-grow desktop:flex-grow-0",
|
|
3822
|
-
layoutPaddding,
|
|
3823
|
-
fixedHeightScrolling && "overflow-auto"
|
|
3824
|
-
),
|
|
3825
|
-
children
|
|
3826
|
-
}
|
|
3827
|
-
);
|
|
3828
3738
|
}
|
|
3829
|
-
ModalContent.displayName = "ModalContent";
|
|
3830
|
-
|
|
3831
|
-
// src/components/ModalButtons.tsx
|
|
3832
|
-
var import_clsx22 = __toESM(require("clsx"), 1);
|
|
3833
|
-
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3834
|
-
var ModalButtons = ({
|
|
3835
|
-
onClose,
|
|
3836
|
-
onContinue,
|
|
3837
|
-
customActions,
|
|
3838
|
-
id,
|
|
3839
|
-
testid
|
|
3840
|
-
}) => {
|
|
3841
|
-
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3842
|
-
"div",
|
|
3843
|
-
{
|
|
3844
|
-
id,
|
|
3845
|
-
"data-testid": testid,
|
|
3846
|
-
className: (0, import_clsx22.default)(
|
|
3847
|
-
"border-t border-neutral-300 flex justify-end",
|
|
3848
|
-
layoutPaddding,
|
|
3849
|
-
layoutGroupGap
|
|
3850
|
-
),
|
|
3851
|
-
children: customActions != null ? customActions : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
3852
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3853
|
-
Button,
|
|
3854
|
-
{
|
|
3855
|
-
id: id ? `${id}-close-button` : void 0,
|
|
3856
|
-
testid: testid ? `${testid}-close-button` : void 0,
|
|
3857
|
-
variant: "secondary",
|
|
3858
|
-
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "close", size: 24 }),
|
|
3859
|
-
onClick: onClose,
|
|
3860
|
-
className: "max-sm:w-full",
|
|
3861
|
-
children: "Close"
|
|
3862
|
-
}
|
|
3863
|
-
),
|
|
3864
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3865
|
-
Button,
|
|
3866
|
-
{
|
|
3867
|
-
id: id ? `${id}-continue-button` : void 0,
|
|
3868
|
-
testid: testid ? `${testid}-continue-button` : void 0,
|
|
3869
|
-
variant: "primary",
|
|
3870
|
-
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "check", size: 24 }),
|
|
3871
|
-
className: "max-sm:w-full",
|
|
3872
|
-
onClick: onContinue,
|
|
3873
|
-
children: "Continue"
|
|
3874
|
-
}
|
|
3875
|
-
)
|
|
3876
|
-
] })
|
|
3877
|
-
}
|
|
3878
|
-
);
|
|
3879
|
-
};
|
|
3880
|
-
ModalButtons.displayName = "ModalButtons";
|
|
3881
|
-
|
|
3882
|
-
// src/components/ModalScrim.tsx
|
|
3883
|
-
var import_clsx23 = __toESM(require("clsx"), 1);
|
|
3884
|
-
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
3885
|
-
var ModalScrim = ({
|
|
3886
|
-
show = false,
|
|
3887
|
-
size = "small",
|
|
3888
|
-
children,
|
|
3889
|
-
onClick,
|
|
3890
|
-
ref,
|
|
3891
|
-
id,
|
|
3892
|
-
testid
|
|
3893
|
-
}) => {
|
|
3894
|
-
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3895
|
-
"div",
|
|
3896
|
-
{
|
|
3897
|
-
id,
|
|
3898
|
-
"data-testid": testid,
|
|
3899
|
-
className: (0, import_clsx23.default)(
|
|
3900
|
-
"overflow-y-auto h-screen transition-[visibility,opacity,background] ease-in-out duration-100 grid place-content-center desktop:p-4 group bg-neutral-600/50 fixed opacity-0",
|
|
3901
|
-
!show && " pointer-events-none",
|
|
3902
|
-
size === "small" && "p-4",
|
|
3903
|
-
"inset-0 z-50"
|
|
3904
|
-
),
|
|
3905
|
-
onMouseDown: onClick,
|
|
3906
|
-
ref,
|
|
3907
|
-
children
|
|
3908
|
-
}
|
|
3909
|
-
);
|
|
3910
|
-
};
|
|
3911
|
-
ModalScrim.displayName = "ModalScrim";
|
|
3912
|
-
|
|
3913
|
-
// src/components/Modal.tsx
|
|
3914
|
-
var import_react_dom3 = require("react-dom");
|
|
3915
|
-
var import_react_use = require("react-use");
|
|
3916
|
-
|
|
3917
|
-
// src/components/useMounted.tsx
|
|
3918
|
-
var import_react18 = require("react");
|
|
3919
|
-
var useMounted = () => {
|
|
3920
|
-
const [isMounted, setIsMounted] = (0, import_react18.useState)(false);
|
|
3921
|
-
(0, import_react18.useEffect)(() => {
|
|
3922
|
-
setIsMounted(true);
|
|
3923
|
-
return () => setIsMounted(false);
|
|
3924
|
-
}, []);
|
|
3925
|
-
return isMounted;
|
|
3926
|
-
};
|
|
3927
|
-
|
|
3928
|
-
// src/components/Modal.tsx
|
|
3929
|
-
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3930
|
-
var fadeInScale = (element, duration = 300) => element.animate(
|
|
3931
|
-
[
|
|
3932
|
-
{ opacity: 0, transform: "scale(0.95)" },
|
|
3933
|
-
{ opacity: 1, transform: "scale(1)" }
|
|
3934
|
-
],
|
|
3935
|
-
{
|
|
3936
|
-
duration,
|
|
3937
|
-
easing: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
3938
|
-
fill: "both"
|
|
3939
|
-
}
|
|
3940
|
-
);
|
|
3941
|
-
var fadeOutScale = (element, duration = 200) => element.animate(
|
|
3942
|
-
[
|
|
3943
|
-
{ opacity: 1, transform: "scale(1)" },
|
|
3944
|
-
{ opacity: 0, transform: "scale(0.95)" }
|
|
3945
|
-
],
|
|
3946
|
-
{
|
|
3947
|
-
duration,
|
|
3948
|
-
easing: "ease-in-out",
|
|
3949
|
-
fill: "both"
|
|
3950
|
-
}
|
|
3951
|
-
);
|
|
3952
|
-
var bgFadeIn = (element, duration = 300) => element.animate([{ opacity: 0 }, { opacity: 1 }], {
|
|
3953
|
-
duration,
|
|
3954
|
-
easing: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
3955
|
-
fill: "both"
|
|
3956
|
-
});
|
|
3957
|
-
var bgFadeOut = (element, duration = 200) => element.animate([{ opacity: 1 }, { opacity: 0 }], {
|
|
3958
|
-
duration,
|
|
3959
|
-
easing: "ease-in-out",
|
|
3960
|
-
fill: "both"
|
|
3961
|
-
});
|
|
3962
|
-
var whenAllAnimationsFinish = (animations, callback) => {
|
|
3963
|
-
let finishedCount = 0;
|
|
3964
|
-
animations.forEach((animation) => {
|
|
3965
|
-
animation.onfinish = () => {
|
|
3966
|
-
finishedCount += 1;
|
|
3967
|
-
if (finishedCount === animations.length) {
|
|
3968
|
-
callback();
|
|
3969
|
-
}
|
|
3970
|
-
};
|
|
3971
|
-
});
|
|
3972
|
-
};
|
|
3973
|
-
var sizes = {
|
|
3974
|
-
small: {
|
|
3975
|
-
sizeClass: "max-h-screen desktop:max-w-120 rounded-sm"
|
|
3976
|
-
},
|
|
3977
|
-
medium: {
|
|
3978
|
-
sizeClass: "desktop:max-w-180 w-screen desktop:h-fit h-screen desktop:w-full max-w-240"
|
|
3979
|
-
},
|
|
3980
|
-
large: {
|
|
3981
|
-
sizeClass: "desktop:max-w-240 w-screen desktop:h-fit h-screen desktop:w-full max-w-240"
|
|
3982
|
-
},
|
|
3983
|
-
"x-large": {
|
|
3984
|
-
sizeClass: "desktop:max-w-300 w-screen desktop:h-fit h-screen desktop:w-full max-w-240"
|
|
3985
|
-
}
|
|
3986
|
-
};
|
|
3987
|
-
var Modal = ({
|
|
3988
|
-
id,
|
|
3989
|
-
testid,
|
|
3990
|
-
title,
|
|
3991
|
-
open = false,
|
|
3992
|
-
size = "small",
|
|
3993
|
-
className,
|
|
3994
|
-
children,
|
|
3995
|
-
onClose,
|
|
3996
|
-
onContinue,
|
|
3997
|
-
closeOnBackdropClick = true,
|
|
3998
|
-
showButtons = false,
|
|
3999
|
-
hideCloseIcon = false,
|
|
4000
|
-
headerIcon,
|
|
4001
|
-
fixedHeightScrolling = false,
|
|
4002
|
-
customActions
|
|
4003
|
-
}) => {
|
|
4004
|
-
var _a;
|
|
4005
|
-
const mounted = useMounted();
|
|
4006
|
-
const modalRef = (0, import_react19.useRef)(null);
|
|
4007
|
-
const bgRef = (0, import_react19.useRef)(null);
|
|
4008
|
-
const wasOpen = (0, import_react_use.usePrevious)(open);
|
|
4009
|
-
const isMobile = useMatchesMobile();
|
|
4010
|
-
const computedFixedHeightScrolling = isMobile || fixedHeightScrolling;
|
|
4011
|
-
(0, import_react19.useEffect)(() => {
|
|
4012
|
-
if (!mounted) return;
|
|
4013
|
-
if (!modalRef.current || !bgRef.current) {
|
|
4014
|
-
console.error("Modal or background reference is not set.");
|
|
4015
|
-
return;
|
|
4016
|
-
}
|
|
4017
|
-
if (wasOpen === void 0) return;
|
|
4018
|
-
if (wasOpen && !open) {
|
|
4019
|
-
const modalAnimation = fadeOutScale(modalRef.current);
|
|
4020
|
-
const bgAnimation = bgFadeOut(bgRef.current);
|
|
4021
|
-
whenAllAnimationsFinish([modalAnimation, bgAnimation], () => {
|
|
4022
|
-
if (onClose) {
|
|
4023
|
-
onClose();
|
|
4024
|
-
}
|
|
4025
|
-
});
|
|
4026
|
-
} else if (!wasOpen && open) {
|
|
4027
|
-
fadeInScale(modalRef.current);
|
|
4028
|
-
bgFadeIn(bgRef.current);
|
|
4029
|
-
}
|
|
4030
|
-
}, [mounted, open]);
|
|
4031
|
-
const handleKeyDown = (0, import_react19.useCallback)(
|
|
4032
|
-
(e) => {
|
|
4033
|
-
if (e.key === "Escape") {
|
|
4034
|
-
if (onClose) {
|
|
4035
|
-
e.preventDefault();
|
|
4036
|
-
onClose();
|
|
4037
|
-
}
|
|
4038
|
-
}
|
|
4039
|
-
},
|
|
4040
|
-
[onClose, bgRef, modalRef]
|
|
4041
|
-
);
|
|
4042
|
-
const handleClose = (0, import_react19.useCallback)(() => {
|
|
4043
|
-
if (onClose) {
|
|
4044
|
-
onClose();
|
|
4045
|
-
}
|
|
4046
|
-
}, [onClose]);
|
|
4047
|
-
(0, import_react19.useEffect)(() => {
|
|
4048
|
-
if (open) {
|
|
4049
|
-
document.addEventListener("keyup", handleKeyDown);
|
|
4050
|
-
}
|
|
4051
|
-
return () => {
|
|
4052
|
-
document.removeEventListener("keyup", handleKeyDown);
|
|
4053
|
-
};
|
|
4054
|
-
}, [open, handleKeyDown]);
|
|
4055
|
-
(0, import_react19.useEffect)(() => {
|
|
4056
|
-
if (!open) return;
|
|
4057
|
-
const scrollY = window.scrollY;
|
|
4058
|
-
const body = document.body;
|
|
4059
|
-
body.style.position = "fixed";
|
|
4060
|
-
body.style.top = `-${scrollY}px`;
|
|
4061
|
-
body.style.left = "0";
|
|
4062
|
-
body.style.right = "0";
|
|
4063
|
-
body.style.overflow = "hidden";
|
|
4064
|
-
body.style.width = "100%";
|
|
4065
|
-
return () => {
|
|
4066
|
-
body.style.position = "";
|
|
4067
|
-
body.style.top = "";
|
|
4068
|
-
body.style.left = "";
|
|
4069
|
-
body.style.right = "";
|
|
4070
|
-
body.style.overflow = "";
|
|
4071
|
-
body.style.width = "";
|
|
4072
|
-
window.scrollTo(0, scrollY);
|
|
4073
|
-
};
|
|
4074
|
-
}, [open]);
|
|
4075
|
-
const { sizeClass } = (_a = sizes[size]) != null ? _a : sizes.small;
|
|
4076
|
-
const backgroundClickHandler = (0, import_react19.useCallback)(
|
|
4077
|
-
(e) => {
|
|
4078
|
-
const target = e.target;
|
|
4079
|
-
const currentTarget = e.currentTarget;
|
|
4080
|
-
if (currentTarget.contains(target) && currentTarget !== target) {
|
|
4081
|
-
e.stopPropagation();
|
|
4082
|
-
return;
|
|
4083
|
-
}
|
|
4084
|
-
if (open && closeOnBackdropClick) {
|
|
4085
|
-
handleClose();
|
|
4086
|
-
}
|
|
4087
|
-
},
|
|
4088
|
-
[open, closeOnBackdropClick, handleClose]
|
|
4089
|
-
);
|
|
4090
|
-
if (!mounted) {
|
|
4091
|
-
return null;
|
|
4092
|
-
}
|
|
4093
|
-
return (0, import_react_dom3.createPortal)(
|
|
4094
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4095
|
-
ModalScrim,
|
|
4096
|
-
{
|
|
4097
|
-
id: id ? `${id}-scrim` : void 0,
|
|
4098
|
-
testid: testid ? `${testid}-scrim` : void 0,
|
|
4099
|
-
size,
|
|
4100
|
-
ref: bgRef,
|
|
4101
|
-
show: open,
|
|
4102
|
-
onClick: backgroundClickHandler,
|
|
4103
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
4104
|
-
"div",
|
|
4105
|
-
{
|
|
4106
|
-
id,
|
|
4107
|
-
"data-testid": testid,
|
|
4108
|
-
ref: modalRef,
|
|
4109
|
-
className: (0, import_clsx24.default)(
|
|
4110
|
-
"bg-white shadow-md rounded-sm flex flex-col overflow-hidden w-full opacity-0 h-fit",
|
|
4111
|
-
computedFixedHeightScrolling && "desktop:max-h-[calc(100vh-32px)] desktop:h-auto",
|
|
4112
|
-
className,
|
|
4113
|
-
sizeClass
|
|
4114
|
-
),
|
|
4115
|
-
onClick: (e) => e.stopPropagation(),
|
|
4116
|
-
children: [
|
|
4117
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4118
|
-
ModalHeader,
|
|
4119
|
-
{
|
|
4120
|
-
id: id ? `${id}-header` : void 0,
|
|
4121
|
-
testid: testid ? `${testid}-header` : void 0,
|
|
4122
|
-
title,
|
|
4123
|
-
onClose: handleClose,
|
|
4124
|
-
hideCloseIcon,
|
|
4125
|
-
headerIcon
|
|
4126
|
-
}
|
|
4127
|
-
),
|
|
4128
|
-
children && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4129
|
-
ModalContent,
|
|
4130
|
-
{
|
|
4131
|
-
id: id ? `${id}-content` : void 0,
|
|
4132
|
-
testid: testid ? `${testid}-content` : void 0,
|
|
4133
|
-
fixedHeightScrolling: computedFixedHeightScrolling,
|
|
4134
|
-
children
|
|
4135
|
-
}
|
|
4136
|
-
),
|
|
4137
|
-
showButtons && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4138
|
-
ModalButtons,
|
|
4139
|
-
{
|
|
4140
|
-
id: id ? `${id}-buttons` : void 0,
|
|
4141
|
-
testid: testid ? `${testid}-buttons` : void 0,
|
|
4142
|
-
onClose: handleClose,
|
|
4143
|
-
onContinue,
|
|
4144
|
-
customActions
|
|
4145
|
-
}
|
|
4146
|
-
)
|
|
4147
|
-
]
|
|
4148
|
-
}
|
|
4149
|
-
)
|
|
4150
|
-
}
|
|
4151
|
-
),
|
|
4152
|
-
findDocumentRoot(bgRef.current)
|
|
4153
|
-
);
|
|
4154
|
-
};
|
|
4155
|
-
Modal.displayName = "Modal";
|
|
4156
3739
|
|
|
4157
3740
|
// src/components/Stack.tsx
|
|
4158
|
-
var
|
|
4159
|
-
var
|
|
4160
|
-
var getFlexClassNames = ({ items, justify, grow }) => (0,
|
|
3741
|
+
var import_clsx20 = __toESM(require("clsx"), 1);
|
|
3742
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3743
|
+
var getFlexClassNames = ({ items, justify, grow }) => (0, import_clsx20.default)(
|
|
4161
3744
|
"flex",
|
|
4162
3745
|
items === "start" && "items-start",
|
|
4163
3746
|
grow && "grow",
|
|
@@ -4173,7 +3756,7 @@ var getFlexClassNames = ({ items, justify, grow }) => (0, import_clsx25.default)
|
|
|
4173
3756
|
justify === "around" && "justify-around"
|
|
4174
3757
|
);
|
|
4175
3758
|
var useGapClassNames = (sizing) => {
|
|
4176
|
-
return (0,
|
|
3759
|
+
return (0, import_clsx20.default)(
|
|
4177
3760
|
sizing === "layout-group" && "gap-mobile-layout-group-gap desktop:gap-desktop-layout-group-gap compact:gap-compact-layout-group-gap",
|
|
4178
3761
|
sizing === "layout" && "gap-mobile-layout-gap desktop:gap-desktop-layout-gap compact:gap-compact-layout-gap",
|
|
4179
3762
|
sizing === "container" && "gap-mobile-container-gap desktop:gap-desktop-container-gap compact:gap-compact-container-gap",
|
|
@@ -4258,7 +3841,7 @@ var Stack = (_a) => {
|
|
|
4258
3841
|
]);
|
|
4259
3842
|
const flexClassNames = getFlexClassNames({ items, justify, grow });
|
|
4260
3843
|
const gapClassNames = useGapClassNames(sizing);
|
|
4261
|
-
return /* @__PURE__ */ (0,
|
|
3844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4262
3845
|
"div",
|
|
4263
3846
|
__spreadProps(__spreadValues({
|
|
4264
3847
|
id,
|
|
@@ -4279,7 +3862,7 @@ var Stack = (_a) => {
|
|
|
4279
3862
|
top: top !== void 0 ? `${top}px` : void 0,
|
|
4280
3863
|
left: left !== void 0 ? `${left}px` : void 0
|
|
4281
3864
|
},
|
|
4282
|
-
className: (0,
|
|
3865
|
+
className: (0, import_clsx20.default)(
|
|
4283
3866
|
"scrollbar-thin",
|
|
4284
3867
|
"max-w-screen",
|
|
4285
3868
|
width !== "fit" && "w-full",
|
|
@@ -4324,44 +3907,18 @@ var Stack = (_a) => {
|
|
|
4324
3907
|
);
|
|
4325
3908
|
};
|
|
4326
3909
|
|
|
4327
|
-
// src/components/Card.tsx
|
|
4328
|
-
var import_clsx26 = __toESM(require("clsx"), 1);
|
|
4329
|
-
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
4330
|
-
function Card(props) {
|
|
4331
|
-
const _a = props, { children, selected, testid } = _a, rest = __objRest(_a, ["children", "selected", "testid"]);
|
|
4332
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4333
|
-
"div",
|
|
4334
|
-
__spreadProps(__spreadValues({}, rest), {
|
|
4335
|
-
"data-testid": testid,
|
|
4336
|
-
className: (0, import_clsx26.default)(
|
|
4337
|
-
"rounded-sm p-desktop-layout-padding",
|
|
4338
|
-
selected ? "border-2 border-border-primary-focus" : "border border-border-primary-normal",
|
|
4339
|
-
rest.className
|
|
4340
|
-
),
|
|
4341
|
-
children
|
|
4342
|
-
})
|
|
4343
|
-
);
|
|
4344
|
-
}
|
|
4345
|
-
|
|
4346
|
-
// src/components/PaymentOnAccountModal.tsx
|
|
4347
|
-
var import_react21 = require("react");
|
|
4348
|
-
|
|
4349
|
-
// src/components/SelectPaymentMethod.tsx
|
|
4350
|
-
var import_react20 = require("react");
|
|
4351
|
-
|
|
4352
3910
|
// src/components/Accordion.tsx
|
|
4353
|
-
var
|
|
4354
|
-
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3911
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
4355
3912
|
function Accordion(props) {
|
|
4356
3913
|
const { isOpen, onClick, className, disabled, testid } = props;
|
|
4357
3914
|
const {
|
|
4358
3915
|
title,
|
|
4359
3916
|
before,
|
|
4360
|
-
after = /* @__PURE__ */ (0,
|
|
3917
|
+
after = /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4361
3918
|
Icon,
|
|
4362
3919
|
{
|
|
4363
3920
|
name: "expand_more",
|
|
4364
|
-
className: (0,
|
|
3921
|
+
className: (0, import_clsx21.default)(
|
|
4365
3922
|
"text-icon-primary-normal transform transition-all duration-300 ease-in-out",
|
|
4366
3923
|
isOpen ? "rotate-180" : "rotate-0"
|
|
4367
3924
|
)
|
|
@@ -4374,10 +3931,10 @@ function Accordion(props) {
|
|
|
4374
3931
|
e.preventDefault();
|
|
4375
3932
|
onClick == null ? void 0 : onClick();
|
|
4376
3933
|
}
|
|
4377
|
-
return /* @__PURE__ */ (0,
|
|
3934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
4378
3935
|
Card,
|
|
4379
3936
|
{
|
|
4380
|
-
className: (0,
|
|
3937
|
+
className: (0, import_clsx21.default)(
|
|
4381
3938
|
"overflow-hidden select-none",
|
|
4382
3939
|
{ "cursor-pointer": !disabled },
|
|
4383
3940
|
className
|
|
@@ -4386,25 +3943,25 @@ function Accordion(props) {
|
|
|
4386
3943
|
onClick: handleClick,
|
|
4387
3944
|
testid,
|
|
4388
3945
|
children: [
|
|
4389
|
-
/* @__PURE__ */ (0,
|
|
4390
|
-
/* @__PURE__ */ (0,
|
|
3946
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Stack, { sizing: "component", horizontal: true, justify: "between", items: "center", children: [
|
|
3947
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Stack, { sizing: "layout-group", horizontal: true, items: "center", children: [
|
|
4391
3948
|
before,
|
|
4392
|
-
typeof title === "string" ? /* @__PURE__ */ (0,
|
|
3949
|
+
typeof title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Paragraph, { testid: testid ? `${testid}-title` : void 0, className: "text-text-primary-normal", children: title }) : title
|
|
4393
3950
|
] }),
|
|
4394
3951
|
after
|
|
4395
3952
|
] }),
|
|
4396
|
-
/* @__PURE__ */ (0,
|
|
3953
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4397
3954
|
"div",
|
|
4398
3955
|
{
|
|
4399
|
-
className: (0,
|
|
3956
|
+
className: (0, import_clsx21.default)("grid transition-all duration-300 ease-in-out"),
|
|
4400
3957
|
style: {
|
|
4401
3958
|
gridTemplateRows: isOpen ? "1fr" : "0fr"
|
|
4402
3959
|
},
|
|
4403
3960
|
"data-testid": testid ? `${testid}-content-container` : void 0,
|
|
4404
|
-
children: /* @__PURE__ */ (0,
|
|
3961
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4405
3962
|
"div",
|
|
4406
3963
|
{
|
|
4407
|
-
className: (0,
|
|
3964
|
+
className: (0, import_clsx21.default)(
|
|
4408
3965
|
typography.paragraph,
|
|
4409
3966
|
"text-text-primary-normal desktop:pt-desktop-layout-gap",
|
|
4410
3967
|
"flex flex-col gap-desktop-layout-gap"
|
|
@@ -4419,561 +3976,6 @@ function Accordion(props) {
|
|
|
4419
3976
|
}
|
|
4420
3977
|
);
|
|
4421
3978
|
}
|
|
4422
|
-
|
|
4423
|
-
// src/components/Radio.tsx
|
|
4424
|
-
var import_clsx28 = __toESM(require("clsx"), 1);
|
|
4425
|
-
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
4426
|
-
var Radio = (_a) => {
|
|
4427
|
-
var _b = _a, {
|
|
4428
|
-
className,
|
|
4429
|
-
label,
|
|
4430
|
-
error,
|
|
4431
|
-
disabled,
|
|
4432
|
-
checked,
|
|
4433
|
-
readOnly,
|
|
4434
|
-
id,
|
|
4435
|
-
testid
|
|
4436
|
-
} = _b, props = __objRest(_b, [
|
|
4437
|
-
"className",
|
|
4438
|
-
"label",
|
|
4439
|
-
"error",
|
|
4440
|
-
"disabled",
|
|
4441
|
-
"checked",
|
|
4442
|
-
"readOnly",
|
|
4443
|
-
"id",
|
|
4444
|
-
"testid"
|
|
4445
|
-
]);
|
|
4446
|
-
const radioId = id;
|
|
4447
|
-
const paragraphColor = disabled ? "text-primary-disabled" : error ? "text-primary-error" : "text-primary-normal";
|
|
4448
|
-
const defaultClassName = (0, import_clsx28.default)(
|
|
4449
|
-
!error && !disabled && "border-border-primary-normal peer-hover:border-border-action-hover peer-hover:bg-background-action-secondary-hover peer-focus:border-border-action-hover peer-focus:bg-background-action-secondary-hover peer-active:border-border-action-active peer-active:bg-background-action-secondary-active peer-checked:border-0 peer-checked:bg-background-action-secondary-hover"
|
|
4450
|
-
);
|
|
4451
|
-
const errorClassName = (0, import_clsx28.default)(
|
|
4452
|
-
error && !disabled && "border-border-action-critical-normal peer-hover:border-border-action-critical-hover peer-hover:bg-background-action-critical-secondary-hover peer-focus:border-border-action-critical-hover peer-focus:bg-background-action-critical-secondary-hover peer-active:border-border-action-critical-active peer-active:bg-background-action-secondary-active peer-checked:bg-background-action-critical-secondary-hover peer-checked:border-0 "
|
|
4453
|
-
);
|
|
4454
|
-
const disabledClassName = (0, import_clsx28.default)(
|
|
4455
|
-
disabled && "peer-disabled:bg-background-action-secondary-disabled peer-disabled:border-border-primary-normal peer-checked:border-0"
|
|
4456
|
-
);
|
|
4457
|
-
const readonlyClassName = (0, import_clsx28.default)(
|
|
4458
|
-
readOnly && "peer-read-only:bg-background-action-secondary-disabled peer-read-only:border-border-primary-normal peer-checked:border-0"
|
|
4459
|
-
);
|
|
4460
|
-
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
4461
|
-
"label",
|
|
4462
|
-
{
|
|
4463
|
-
htmlFor: radioId,
|
|
4464
|
-
className: (0, import_clsx28.default)(
|
|
4465
|
-
"flex items-center",
|
|
4466
|
-
componentGap,
|
|
4467
|
-
disabled ? "cursor-default" : "cursor-pointer",
|
|
4468
|
-
className
|
|
4469
|
-
),
|
|
4470
|
-
children: [
|
|
4471
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "relative", children: [
|
|
4472
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4473
|
-
"input",
|
|
4474
|
-
__spreadValues({
|
|
4475
|
-
id: radioId,
|
|
4476
|
-
"data-testid": testid,
|
|
4477
|
-
type: "radio",
|
|
4478
|
-
className: "sr-only peer",
|
|
4479
|
-
disabled,
|
|
4480
|
-
checked,
|
|
4481
|
-
readOnly
|
|
4482
|
-
}, props)
|
|
4483
|
-
),
|
|
4484
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4485
|
-
"div",
|
|
4486
|
-
{
|
|
4487
|
-
className: (0, import_clsx28.default)(
|
|
4488
|
-
"size-6 rounded-full border flex items-center justify-center",
|
|
4489
|
-
baseTransition,
|
|
4490
|
-
defaultClassName,
|
|
4491
|
-
errorClassName,
|
|
4492
|
-
disabledClassName,
|
|
4493
|
-
readonlyClassName
|
|
4494
|
-
),
|
|
4495
|
-
children: checked && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4496
|
-
RadioIcon,
|
|
4497
|
-
{
|
|
4498
|
-
className: (0, import_clsx28.default)(
|
|
4499
|
-
"transition-colors",
|
|
4500
|
-
!error && !disabled && "text-icon-on-action-secondary-normal hover:text-icon-on-action-secondary-hover active:text-icon-on-action-secondary-active peer-hover:text-icon-on-action-secondary-hover peer-focus:text-icon-on-action-secondary-hover peer-active:text-icon-on-action-secondary-active",
|
|
4501
|
-
error && !disabled && "text-icon-action-critical-secondary-normal hover:text-icon-action-critical-secondary-hover active:text-icon-action-critical-secondary-active peer-hover:text-icon-action-critical-secondary-hover peer-focus:text-icon-action-critical-secondary-hover peer-active:text-icon-action-critical-secondary-active",
|
|
4502
|
-
disabled && "text-icon-on-action-secondary-disabled",
|
|
4503
|
-
readOnly && "text-icon-on-action-secondary-disabled"
|
|
4504
|
-
)
|
|
4505
|
-
}
|
|
4506
|
-
)
|
|
4507
|
-
}
|
|
4508
|
-
)
|
|
4509
|
-
] }),
|
|
4510
|
-
label && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Paragraph, { id: radioId ? `${radioId}-label` : void 0, testid: testid ? `${testid}-label` : void 0, padded: true, color: paragraphColor, children: label })
|
|
4511
|
-
]
|
|
4512
|
-
}
|
|
4513
|
-
);
|
|
4514
|
-
};
|
|
4515
|
-
Radio.displayName = "Radio";
|
|
4516
|
-
var RadioIcon = ({ className }) => {
|
|
4517
|
-
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
4518
|
-
"svg",
|
|
4519
|
-
{
|
|
4520
|
-
className,
|
|
4521
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
4522
|
-
width: "24",
|
|
4523
|
-
height: "24",
|
|
4524
|
-
viewBox: "0 0 24 24",
|
|
4525
|
-
fill: "none",
|
|
4526
|
-
children: [
|
|
4527
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4528
|
-
"rect",
|
|
4529
|
-
{
|
|
4530
|
-
x: "1",
|
|
4531
|
-
y: "1",
|
|
4532
|
-
width: "22",
|
|
4533
|
-
height: "22",
|
|
4534
|
-
rx: "11",
|
|
4535
|
-
stroke: "currentColor",
|
|
4536
|
-
strokeWidth: "2"
|
|
4537
|
-
}
|
|
4538
|
-
),
|
|
4539
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("rect", { x: "4", y: "4", width: "16", height: "16", rx: "8", fill: "currentColor" })
|
|
4540
|
-
]
|
|
4541
|
-
}
|
|
4542
|
-
);
|
|
4543
|
-
};
|
|
4544
|
-
RadioIcon.displayName = "RadioIcon";
|
|
4545
|
-
|
|
4546
|
-
// src/components/HorizontalDivider.tsx
|
|
4547
|
-
var import_clsx29 = __toESM(require("clsx"), 1);
|
|
4548
|
-
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
4549
|
-
function HorizontalDivider({ id, testid, hideOnMobile }) {
|
|
4550
|
-
const hideOnMobileStyle = (0, import_clsx29.default)(hideOnMobile && "hidden desktop:block");
|
|
4551
|
-
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("hr", { id, "data-testid": testid, className: (0, import_clsx29.default)("w-full border-t border-border-primary-normal", hideOnMobileStyle) });
|
|
4552
|
-
}
|
|
4553
|
-
|
|
4554
|
-
// src/components/Spinner.tsx
|
|
4555
|
-
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
4556
|
-
var Spinner = ({ size = "small", testid }) => {
|
|
4557
|
-
const dimension = size === "large" ? 48 : 24;
|
|
4558
|
-
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
4559
|
-
"svg",
|
|
4560
|
-
{
|
|
4561
|
-
"data-testid": testid,
|
|
4562
|
-
width: dimension,
|
|
4563
|
-
height: dimension,
|
|
4564
|
-
viewBox: "0 0 24 24",
|
|
4565
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
4566
|
-
fill: "#1D1E1E",
|
|
4567
|
-
className: "animate-spin",
|
|
4568
|
-
"aria-label": "Loading",
|
|
4569
|
-
children: [
|
|
4570
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "12", cy: "4", r: "2", opacity: "1", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4571
|
-
"animate",
|
|
4572
|
-
{
|
|
4573
|
-
attributeName: "opacity",
|
|
4574
|
-
begin: "0s",
|
|
4575
|
-
dur: "1s",
|
|
4576
|
-
from: "1",
|
|
4577
|
-
to: "0",
|
|
4578
|
-
repeatCount: "indefinite"
|
|
4579
|
-
}
|
|
4580
|
-
) }),
|
|
4581
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "17.666", cy: "6.334", r: "2", opacity: "0.125", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4582
|
-
"animate",
|
|
4583
|
-
{
|
|
4584
|
-
attributeName: "opacity",
|
|
4585
|
-
begin: "-0.875s",
|
|
4586
|
-
dur: "1s",
|
|
4587
|
-
from: "1",
|
|
4588
|
-
to: "0",
|
|
4589
|
-
repeatCount: "indefinite"
|
|
4590
|
-
}
|
|
4591
|
-
) }),
|
|
4592
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "20", cy: "12", r: "2", opacity: "0.25", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4593
|
-
"animate",
|
|
4594
|
-
{
|
|
4595
|
-
attributeName: "opacity",
|
|
4596
|
-
begin: "-0.75s",
|
|
4597
|
-
dur: "1s",
|
|
4598
|
-
from: "1",
|
|
4599
|
-
to: "0",
|
|
4600
|
-
repeatCount: "indefinite"
|
|
4601
|
-
}
|
|
4602
|
-
) }),
|
|
4603
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "17.666", cy: "17.666", r: "2", opacity: "0.375", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4604
|
-
"animate",
|
|
4605
|
-
{
|
|
4606
|
-
attributeName: "opacity",
|
|
4607
|
-
begin: "-0.625s",
|
|
4608
|
-
dur: "1s",
|
|
4609
|
-
from: "1",
|
|
4610
|
-
to: "0",
|
|
4611
|
-
repeatCount: "indefinite"
|
|
4612
|
-
}
|
|
4613
|
-
) }),
|
|
4614
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "12", cy: "20", r: "2", opacity: "0.5", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4615
|
-
"animate",
|
|
4616
|
-
{
|
|
4617
|
-
attributeName: "opacity",
|
|
4618
|
-
begin: "-0.5s",
|
|
4619
|
-
dur: "1s",
|
|
4620
|
-
from: "1",
|
|
4621
|
-
to: "0",
|
|
4622
|
-
repeatCount: "indefinite"
|
|
4623
|
-
}
|
|
4624
|
-
) }),
|
|
4625
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "6.334", cy: "17.666", r: "2", opacity: "0.625", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4626
|
-
"animate",
|
|
4627
|
-
{
|
|
4628
|
-
attributeName: "opacity",
|
|
4629
|
-
begin: "-0.375s",
|
|
4630
|
-
dur: "1s",
|
|
4631
|
-
from: "1",
|
|
4632
|
-
to: "0",
|
|
4633
|
-
repeatCount: "indefinite"
|
|
4634
|
-
}
|
|
4635
|
-
) }),
|
|
4636
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "4", cy: "12", r: "2", opacity: "0.75", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4637
|
-
"animate",
|
|
4638
|
-
{
|
|
4639
|
-
attributeName: "opacity",
|
|
4640
|
-
begin: "-0.25s",
|
|
4641
|
-
dur: "1s",
|
|
4642
|
-
from: "1",
|
|
4643
|
-
to: "0",
|
|
4644
|
-
repeatCount: "indefinite"
|
|
4645
|
-
}
|
|
4646
|
-
) }),
|
|
4647
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("circle", { cx: "6.334", cy: "6.334", r: "2", opacity: "0.875", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4648
|
-
"animate",
|
|
4649
|
-
{
|
|
4650
|
-
attributeName: "opacity",
|
|
4651
|
-
begin: "-0.125s",
|
|
4652
|
-
dur: "1s",
|
|
4653
|
-
from: "1",
|
|
4654
|
-
to: "0",
|
|
4655
|
-
repeatCount: "indefinite"
|
|
4656
|
-
}
|
|
4657
|
-
) })
|
|
4658
|
-
]
|
|
4659
|
-
}
|
|
4660
|
-
);
|
|
4661
|
-
};
|
|
4662
|
-
Spinner.displayName = "Spinner";
|
|
4663
|
-
|
|
4664
|
-
// src/components/WorldpayIframe.tsx
|
|
4665
|
-
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
4666
|
-
function WorldpayIframe({ url }) {
|
|
4667
|
-
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("iframe", { src: url, style: { width: "100%", height: "100%", flex: 1 } });
|
|
4668
|
-
}
|
|
4669
|
-
|
|
4670
|
-
// src/components/SelectPaymentMethod.tsx
|
|
4671
|
-
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
4672
|
-
function SelectPaymentMethod(props) {
|
|
4673
|
-
const {
|
|
4674
|
-
amountToPay,
|
|
4675
|
-
selectedMethod,
|
|
4676
|
-
onSelectMethod,
|
|
4677
|
-
selectedCredits,
|
|
4678
|
-
allCredits,
|
|
4679
|
-
allowedMethods,
|
|
4680
|
-
selectedACHBankGuid,
|
|
4681
|
-
setSelectedACHBankGuid,
|
|
4682
|
-
customerBanks,
|
|
4683
|
-
onPay,
|
|
4684
|
-
isPayLoading,
|
|
4685
|
-
withCredits = false,
|
|
4686
|
-
isLoadingCCiframe,
|
|
4687
|
-
cardPaymentUrl,
|
|
4688
|
-
testid
|
|
4689
|
-
} = props;
|
|
4690
|
-
const payAllWithCredits = withCredits && amountToPay <= 0;
|
|
4691
|
-
(0, import_react20.useEffect)(() => {
|
|
4692
|
-
if (payAllWithCredits) {
|
|
4693
|
-
onSelectMethod("CreditsOnly");
|
|
4694
|
-
} else {
|
|
4695
|
-
onSelectMethod(null);
|
|
4696
|
-
}
|
|
4697
|
-
}, [onSelectMethod, payAllWithCredits]);
|
|
4698
|
-
function handleToggle(method) {
|
|
4699
|
-
onSelectMethod(method);
|
|
4700
|
-
}
|
|
4701
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Stack, { sizing: "layout-group", width: "full", minWidth: 400, children: [
|
|
4702
|
-
!!(allCredits == null ? void 0 : allCredits.length) && withCredits && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4703
|
-
CreditsSelector,
|
|
4704
|
-
{
|
|
4705
|
-
testid: testid ? `${testid}-credit-selector` : void 0,
|
|
4706
|
-
selectedCredits: selectedCredits || [],
|
|
4707
|
-
allCredits: allCredits || [],
|
|
4708
|
-
setSelectedCredits: props.setSelectedCredits || (() => {
|
|
4709
|
-
})
|
|
4710
|
-
}
|
|
4711
|
-
),
|
|
4712
|
-
(allowedMethods == null ? void 0 : allowedMethods.includes("ACHPayment")) && !!(customerBanks == null ? void 0 : customerBanks.length) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4713
|
-
ACHSelector,
|
|
4714
|
-
{
|
|
4715
|
-
testid: testid ? `${testid}-ach-selector` : void 0,
|
|
4716
|
-
selectedMethod,
|
|
4717
|
-
handleToggle,
|
|
4718
|
-
selectedBankGuid: selectedACHBankGuid || null,
|
|
4719
|
-
setSelectedBankGuid: setSelectedACHBankGuid || (() => {
|
|
4720
|
-
}),
|
|
4721
|
-
customerBanks: customerBanks || [],
|
|
4722
|
-
onPay,
|
|
4723
|
-
isPayLoading: isPayLoading || false,
|
|
4724
|
-
disabled: payAllWithCredits || !amountToPay
|
|
4725
|
-
}
|
|
4726
|
-
),
|
|
4727
|
-
(allowedMethods == null ? void 0 : allowedMethods.includes("CCPayment")) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4728
|
-
Accordion,
|
|
4729
|
-
{
|
|
4730
|
-
testid: testid ? `${testid}-cc-payment` : void 0,
|
|
4731
|
-
isOpen: !payAllWithCredits && selectedMethod === "CCPayment",
|
|
4732
|
-
title: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4733
|
-
Radio,
|
|
4734
|
-
{
|
|
4735
|
-
testid: testid ? `${testid}-cc-payment-radio` : void 0,
|
|
4736
|
-
label: "Pay by Credit/Debit Card",
|
|
4737
|
-
checked: !payAllWithCredits && selectedMethod === "CCPayment",
|
|
4738
|
-
onChange: (e) => e.stopPropagation(),
|
|
4739
|
-
disabled: payAllWithCredits || !amountToPay
|
|
4740
|
-
}
|
|
4741
|
-
),
|
|
4742
|
-
onClick: () => {
|
|
4743
|
-
if (payAllWithCredits || !amountToPay) return;
|
|
4744
|
-
handleToggle(selectedMethod === "CCPayment" ? null : "CCPayment");
|
|
4745
|
-
},
|
|
4746
|
-
disabled: payAllWithCredits || !amountToPay,
|
|
4747
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4748
|
-
Stack,
|
|
4749
|
-
{
|
|
4750
|
-
sizing: "layout-group",
|
|
4751
|
-
width: "full",
|
|
4752
|
-
items: "center",
|
|
4753
|
-
justify: "center",
|
|
4754
|
-
style: {
|
|
4755
|
-
flex: 1
|
|
4756
|
-
},
|
|
4757
|
-
minHeight: 245,
|
|
4758
|
-
children: !isLoadingCCiframe && cardPaymentUrl ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(WorldpayIframe, { url: cardPaymentUrl }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Spinner, {})
|
|
4759
|
-
}
|
|
4760
|
-
)
|
|
4761
|
-
}
|
|
4762
|
-
),
|
|
4763
|
-
selectedMethod === "ACHPayment" && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4764
|
-
Button,
|
|
4765
|
-
{
|
|
4766
|
-
block: true,
|
|
4767
|
-
onClick: onPay,
|
|
4768
|
-
disabled: isPayLoading || amountToPay <= 0,
|
|
4769
|
-
testid: testid ? `${testid}-submit-payment-button` : void 0,
|
|
4770
|
-
children: isPayLoading ? "Processing..." : "Submit Payment"
|
|
4771
|
-
}
|
|
4772
|
-
),
|
|
4773
|
-
payAllWithCredits && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4774
|
-
Button,
|
|
4775
|
-
{
|
|
4776
|
-
testid: testid ? `${testid}-submit-payment-button` : void 0,
|
|
4777
|
-
block: true,
|
|
4778
|
-
onClick: onPay,
|
|
4779
|
-
disabled: isPayLoading,
|
|
4780
|
-
children: isPayLoading ? "Processing..." : "Submit Payment"
|
|
4781
|
-
}
|
|
4782
|
-
)
|
|
4783
|
-
] });
|
|
4784
|
-
}
|
|
4785
|
-
function ACHSelector(props) {
|
|
4786
|
-
const {
|
|
4787
|
-
selectedMethod,
|
|
4788
|
-
handleToggle,
|
|
4789
|
-
selectedBankGuid,
|
|
4790
|
-
setSelectedBankGuid,
|
|
4791
|
-
customerBanks,
|
|
4792
|
-
disabled,
|
|
4793
|
-
testid
|
|
4794
|
-
} = props;
|
|
4795
|
-
function handleBankSelect(e, bankGuid) {
|
|
4796
|
-
if (disabled) return;
|
|
4797
|
-
e.stopPropagation();
|
|
4798
|
-
setSelectedBankGuid(bankGuid);
|
|
4799
|
-
handleToggle("ACHPayment");
|
|
4800
|
-
}
|
|
4801
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: customerBanks.map((bank) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4802
|
-
Card,
|
|
4803
|
-
{
|
|
4804
|
-
testid: testid ? `${testid}-bank-${bank.CustBankGUID}` : void 0,
|
|
4805
|
-
onClick: (e) => handleBankSelect(e, bank.CustBankGUID),
|
|
4806
|
-
selected: !disabled && selectedMethod === "ACHPayment" && selectedBankGuid === bank.CustBankGUID,
|
|
4807
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4808
|
-
Radio,
|
|
4809
|
-
{
|
|
4810
|
-
label: `Pay by ${bank.AccountDisplayString}`,
|
|
4811
|
-
checked: !disabled && selectedMethod === "ACHPayment" && selectedBankGuid === bank.CustBankGUID,
|
|
4812
|
-
disabled,
|
|
4813
|
-
onChange: (e) => e.stopPropagation()
|
|
4814
|
-
}
|
|
4815
|
-
)
|
|
4816
|
-
},
|
|
4817
|
-
bank.CustBankGUID
|
|
4818
|
-
)) });
|
|
4819
|
-
}
|
|
4820
|
-
function CreditsSelector(props) {
|
|
4821
|
-
const { selectedCredits, allCredits, setSelectedCredits, testid } = props;
|
|
4822
|
-
const [isOpen, setIsOpen] = (0, import_react20.useState)(true);
|
|
4823
|
-
const handleCreditSelect = (credit) => {
|
|
4824
|
-
if (setSelectedCredits) {
|
|
4825
|
-
setSelectedCredits(
|
|
4826
|
-
(prev) => prev.includes(credit) ? prev.filter((c) => c !== credit) : [...prev, credit]
|
|
4827
|
-
);
|
|
4828
|
-
}
|
|
4829
|
-
};
|
|
4830
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
4831
|
-
Accordion,
|
|
4832
|
-
{
|
|
4833
|
-
isOpen,
|
|
4834
|
-
title: "Available Credits",
|
|
4835
|
-
onClick: () => setIsOpen((prev) => !prev),
|
|
4836
|
-
testid,
|
|
4837
|
-
children: [
|
|
4838
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(HorizontalDivider, {}),
|
|
4839
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Stack, { sizing: "layout-group", width: "full", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4840
|
-
Stack,
|
|
4841
|
-
{
|
|
4842
|
-
sizing: "layout-group",
|
|
4843
|
-
width: "full",
|
|
4844
|
-
overflowY: "auto",
|
|
4845
|
-
maxHeight: 300,
|
|
4846
|
-
children: allCredits.map((credits) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
4847
|
-
Stack,
|
|
4848
|
-
{
|
|
4849
|
-
horizontal: true,
|
|
4850
|
-
justify: "between",
|
|
4851
|
-
items: "center",
|
|
4852
|
-
sizing: "layout-group",
|
|
4853
|
-
children: [
|
|
4854
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4855
|
-
Stack,
|
|
4856
|
-
{
|
|
4857
|
-
sizing: "layout-group",
|
|
4858
|
-
onClick: () => handleCreditSelect(credits),
|
|
4859
|
-
paddingY: true,
|
|
4860
|
-
flexGrow: 1,
|
|
4861
|
-
testid: testid ? `${testid}-credit-${credits.InvoiceNumber}` : void 0,
|
|
4862
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4863
|
-
Checkbox,
|
|
4864
|
-
{
|
|
4865
|
-
testid: testid ? `${testid}-credit-${credits.InvoiceNumber}-checkbox` : void 0,
|
|
4866
|
-
label: credits.InvoiceNumber,
|
|
4867
|
-
checked: selectedCredits == null ? void 0 : selectedCredits.includes(credits),
|
|
4868
|
-
onChange: () => handleCreditSelect(credits)
|
|
4869
|
-
}
|
|
4870
|
-
)
|
|
4871
|
-
}
|
|
4872
|
-
),
|
|
4873
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
4874
|
-
Subheader,
|
|
4875
|
-
{
|
|
4876
|
-
testid: testid ? `${testid}-credit-${credits.InvoiceNumber}-InvoiceBalanceDue` : void 0,
|
|
4877
|
-
className: " pr-desktop-component-padding",
|
|
4878
|
-
children: [
|
|
4879
|
-
"$",
|
|
4880
|
-
formatCurrencyDisplay(
|
|
4881
|
-
formatDecimalValue(Math.abs(credits.InvoiceBalanceDue), 2)
|
|
4882
|
-
)
|
|
4883
|
-
]
|
|
4884
|
-
}
|
|
4885
|
-
)
|
|
4886
|
-
]
|
|
4887
|
-
},
|
|
4888
|
-
credits.AROpenGUID
|
|
4889
|
-
))
|
|
4890
|
-
}
|
|
4891
|
-
) })
|
|
4892
|
-
]
|
|
4893
|
-
}
|
|
4894
|
-
);
|
|
4895
|
-
}
|
|
4896
|
-
|
|
4897
|
-
// src/components/PaymentOnAccountModal.tsx
|
|
4898
|
-
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4899
|
-
function PaymentOnAccountModal(props) {
|
|
4900
|
-
const {
|
|
4901
|
-
isOpen,
|
|
4902
|
-
paymentProps,
|
|
4903
|
-
onClose,
|
|
4904
|
-
onAmountChange,
|
|
4905
|
-
cardPaymentUrl,
|
|
4906
|
-
setCardPaymentUrl,
|
|
4907
|
-
isLoadingCCiframe,
|
|
4908
|
-
testid
|
|
4909
|
-
} = props;
|
|
4910
|
-
const [amount, setAmount] = (0, import_react21.useState)(paymentProps.amountToPay);
|
|
4911
|
-
const { creditCardSettings, selectedMethod } = paymentProps;
|
|
4912
|
-
(0, import_react21.useEffect)(() => {
|
|
4913
|
-
setAmount(paymentProps.amountToPay);
|
|
4914
|
-
}, [paymentProps.amountToPay]);
|
|
4915
|
-
function handleAmountChange(event) {
|
|
4916
|
-
const inputValue = event.target.value.replace(/[^0-9.-]+/g, "");
|
|
4917
|
-
const value = +inputValue || 0;
|
|
4918
|
-
setAmount(value);
|
|
4919
|
-
onAmountChange == null ? void 0 : onAmountChange(value);
|
|
4920
|
-
}
|
|
4921
|
-
const creditCardSurcharge = (0, import_react21.useMemo)(() => {
|
|
4922
|
-
const applySurcharge = (creditCardSettings == null ? void 0 : creditCardSettings.ApplySurcharge) || false;
|
|
4923
|
-
if (!applySurcharge || selectedMethod !== "CCPayment") {
|
|
4924
|
-
return 0;
|
|
4925
|
-
}
|
|
4926
|
-
const surchargeType = creditCardSettings == null ? void 0 : creditCardSettings.SurchargeBasisType;
|
|
4927
|
-
const surchargeRate = (creditCardSettings == null ? void 0 : creditCardSettings.SurchargeBasisAmount) || 0;
|
|
4928
|
-
if (surchargeType === "Percent") {
|
|
4929
|
-
return calculateSurcharge(amount, surchargeRate);
|
|
4930
|
-
}
|
|
4931
|
-
if (surchargeType === "Fixed") {
|
|
4932
|
-
return surchargeRate;
|
|
4933
|
-
}
|
|
4934
|
-
return 0;
|
|
4935
|
-
}, [creditCardSettings, amount, selectedMethod]);
|
|
4936
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Modal, { testid, open: isOpen, onClose, title: "Payment on Account", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Stack, { sizing: "layout-group", width: "full", children: [
|
|
4937
|
-
selectedMethod === "CCPayment" && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Stack, { horizontal: true, justify: "between", items: "center", children: [
|
|
4938
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Paragraph, { children: "Surcharge" }),
|
|
4939
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Paragraph, { testid: testid ? `${testid}-surcharge` : void 0, children: [
|
|
4940
|
-
"$",
|
|
4941
|
-
formatCurrencyDisplay(creditCardSurcharge.toFixed(2))
|
|
4942
|
-
] })
|
|
4943
|
-
] }),
|
|
4944
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Card, { className: "py-desktop-component-padding", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Stack, { sizing: "component", justify: "between", items: "center", horizontal: true, children: [
|
|
4945
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Paragraph, { className: "w-full", children: "Amount to Pay" }),
|
|
4946
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4947
|
-
Input,
|
|
4948
|
-
{
|
|
4949
|
-
testid: testid ? `${testid}-amount-to-pay` : void 0,
|
|
4950
|
-
type: "number",
|
|
4951
|
-
placeholder: "$0.00",
|
|
4952
|
-
align: "right",
|
|
4953
|
-
value: amount === 0 ? "" : amount,
|
|
4954
|
-
onChange: handleAmountChange,
|
|
4955
|
-
before: "$"
|
|
4956
|
-
}
|
|
4957
|
-
) })
|
|
4958
|
-
] }) }),
|
|
4959
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4960
|
-
SelectPaymentMethod,
|
|
4961
|
-
__spreadProps(__spreadValues({}, paymentProps), {
|
|
4962
|
-
testid: testid ? `${testid}-select-payment-method` : void 0,
|
|
4963
|
-
amountToPay: amount + creditCardSurcharge,
|
|
4964
|
-
cardPaymentUrl,
|
|
4965
|
-
setCardPaymentUrl,
|
|
4966
|
-
isLoadingCCiframe
|
|
4967
|
-
})
|
|
4968
|
-
)
|
|
4969
|
-
] }) });
|
|
4970
|
-
}
|
|
4971
|
-
function calculateSurcharge(amountInDollars, surchargeRate) {
|
|
4972
|
-
const amountInCents = amountInDollars * 100;
|
|
4973
|
-
const surchargeInCents = amountInCents * surchargeRate / 100;
|
|
4974
|
-
const roundedSurchargeInCents = Math.round(surchargeInCents);
|
|
4975
|
-
return roundedSurchargeInCents / 100;
|
|
4976
|
-
}
|
|
4977
3979
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4978
3980
|
0 && (module.exports = {
|
|
4979
3981
|
Accordion,
|
|
@@ -4991,7 +3993,6 @@ function calculateSurcharge(amountInDollars, surchargeRate) {
|
|
|
4991
3993
|
Menu,
|
|
4992
3994
|
MenuOption,
|
|
4993
3995
|
Paragraph,
|
|
4994
|
-
PaymentOnAccountModal,
|
|
4995
3996
|
Search,
|
|
4996
3997
|
Select,
|
|
4997
3998
|
Subheader,
|