@tapcart/mobile-components 0.12.15 → 0.12.16
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/components/hooks/use-order-details.d.ts.map +1 -1
- package/dist/components/ui/chip.d.ts.map +1 -1
- package/dist/components/ui/chip.js +12 -10
- package/dist/components/ui/selectors.d.ts.map +1 -1
- package/dist/components/ui/selectors.js +13 -11
- package/dist/components/ui/video-enhanced.d.ts.map +1 -1
- package/dist/components/ui/video-enhanced.js +12 -4
- package/dist/lib/variablesCart.util.test.js +6 -11
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-order-details.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-order-details.ts"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAClC,CAAA;AA0LD,eAAO,MAAM,qBAAqB,UACzB,OAAO,MAAM,EAAE,GAAG,CAAC;kBACT,OAAO,MAAM,EAAE,GAAG,CAAC;kBAAgB,OAAO,MAAM,EAAE,GAAG,CAAC;CA+NxE,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAY,GACb,EAAE,oBAAoB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"use-order-details.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-order-details.ts"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAClC,CAAA;AA0LD,eAAO,MAAM,qBAAqB,UACzB,OAAO,MAAM,EAAE,GAAG,CAAC;kBACT,OAAO,MAAM,EAAE,GAAG,CAAC;kBAAgB,OAAO,MAAM,EAAE,GAAG,CAAC;CA+NxE,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAY,GACb,EAAE,oBAAoB,GAAG,iBAAiB,CAiE1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../components/ui/chip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAI1D,QAAA,MAAM,YAAY;;;;mFAwBjB,CAAA;AAED,KAAK,SAAS,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GACpD,YAAY,CAAC,OAAO,YAAY,CAAC,GAAG;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAEH,QAAA,MAAM,IAAI;;;;;;;;;;yBALc,IAAI;yBACJ,IAAI;;wCAgF3B,CAAA;AAGD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAA;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;CAC9C,CAAA;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../components/ui/chip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAI1D,QAAA,MAAM,YAAY;;;;mFAwBjB,CAAA;AAED,KAAK,SAAS,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GACpD,YAAY,CAAC,OAAO,YAAY,CAAC,GAAG;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAEH,QAAA,MAAM,IAAI;;;;;;;;;;yBALc,IAAI;yBACJ,IAAI;;wCAgF3B,CAAA;AAGD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAA;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;CAC9C,CAAA;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqD/C,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAE,CAAA"}
|
|
@@ -60,20 +60,22 @@ Chip.displayName = "Chip";
|
|
|
60
60
|
const MultipleChips = ({ children, containerRef, style, }) => {
|
|
61
61
|
const [showFadeLeft, setShowFadeLeft] = useState(false);
|
|
62
62
|
const [showFadeRight, setShowFadeRight] = useState(false);
|
|
63
|
-
const checkOverflow = () => {
|
|
64
|
-
const
|
|
63
|
+
const checkOverflow = React.useCallback(() => {
|
|
64
|
+
const el = containerRef.current;
|
|
65
|
+
if (!el)
|
|
66
|
+
return;
|
|
67
|
+
const { scrollLeft, scrollWidth, clientWidth } = el;
|
|
65
68
|
setShowFadeLeft(scrollLeft > 0);
|
|
66
69
|
setShowFadeRight(scrollLeft + clientWidth < scrollWidth);
|
|
67
|
-
};
|
|
70
|
+
}, [containerRef]);
|
|
68
71
|
useEffect(() => {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
const el = containerRef.current;
|
|
73
|
+
if (!el)
|
|
74
|
+
return;
|
|
75
|
+
const ro = new ResizeObserver(() => checkOverflow());
|
|
76
|
+
ro.observe(el);
|
|
77
|
+
return () => ro.disconnect();
|
|
73
78
|
}, [checkOverflow]);
|
|
74
|
-
useEffect(() => {
|
|
75
|
-
checkOverflow();
|
|
76
|
-
}, [children, checkOverflow]);
|
|
77
79
|
return (_jsxs("div", Object.assign({ className: "relative no-scrollbar" }, { children: [_jsx("div", Object.assign({ ref: containerRef, className: "flex overflow-x-auto overflow-y-hidden", onScroll: checkOverflow, style: style }, { children: children.map((chip, index) => (_jsx("div", Object.assign({ className: cn("shrink-0", {
|
|
78
80
|
"mr-2": index < children.length - 1,
|
|
79
81
|
}) }, { children: chip }), index))) })), showFadeLeft && (_jsx("div", { className: "absolute top-0 left-0 w-8 h-full pointer-events-none bg-fade-left" })), showFadeRight && (_jsx("div", { className: "absolute top-0 right-0 w-8 h-full pointer-events-none bg-fade-right" }))] })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../components/ui/selectors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,iBAAiB;;;mFAiBtB,CAAA;AACD,KAAK,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAC5D,YAAY,CAAC,OAAO,iBAAiB,CAAC,GAAG;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAA;IACjE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAChC,CAAA;AAEH,QAAA,MAAM,SAAS;gIAYZ,cAAc,GAAG,aAAa,wBAAwB,CAAC;;CAyCzD,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EACJ,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,GACpC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;IACtC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AACD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../components/ui/selectors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,iBAAiB;;;mFAiBtB,CAAA;AACD,KAAK,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAC5D,YAAY,CAAC,OAAO,iBAAiB,CAAC,GAAG;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAA;IACjE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAChC,CAAA;AAEH,QAAA,MAAM,SAAS;gIAYZ,cAAc,GAAG,aAAa,wBAAwB,CAAC;;CAyCzD,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EACJ,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,GACpC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;IACtC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AACD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAgDvD,CAAA;AAID,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -55,20 +55,22 @@ const Selectors = (_a) => {
|
|
|
55
55
|
const SelectorContainer = ({ children, containerRef, className, height, }) => {
|
|
56
56
|
const [showFadeLeft, setShowFadeLeft] = React.useState(false);
|
|
57
57
|
const [showFadeRight, setShowFadeRight] = React.useState(false);
|
|
58
|
-
const checkOverflow = () => {
|
|
59
|
-
const
|
|
58
|
+
const checkOverflow = React.useCallback(() => {
|
|
59
|
+
const el = containerRef.current;
|
|
60
|
+
if (!el)
|
|
61
|
+
return;
|
|
62
|
+
const { scrollLeft, scrollWidth, clientWidth } = el;
|
|
60
63
|
setShowFadeLeft(scrollLeft > 0);
|
|
61
64
|
setShowFadeRight(scrollLeft + clientWidth < scrollWidth);
|
|
62
|
-
};
|
|
63
|
-
React.useEffect(() => {
|
|
64
|
-
const handleResize = () => checkOverflow();
|
|
65
|
-
window.addEventListener("resize", handleResize);
|
|
66
|
-
checkOverflow();
|
|
67
|
-
return () => window.removeEventListener("resize", handleResize);
|
|
68
|
-
}, []);
|
|
65
|
+
}, [containerRef]);
|
|
69
66
|
React.useEffect(() => {
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
const el = containerRef.current;
|
|
68
|
+
if (!el)
|
|
69
|
+
return;
|
|
70
|
+
const ro = new ResizeObserver(() => checkOverflow());
|
|
71
|
+
ro.observe(el);
|
|
72
|
+
return () => ro.disconnect();
|
|
73
|
+
}, [checkOverflow]);
|
|
72
74
|
return (_jsx("div", Object.assign({ className: "relative no-scrollbar" }, { children: _jsxs("div", Object.assign({ className: cn(`flex gap-2 p-1 items-center overflow-x-auto overflow-y-hidden no-scrollbar`, className), onScroll: checkOverflow, style: { maxHeight: height }, ref: containerRef }, { children: [children, showFadeLeft && (_jsx("div", { className: "absolute top-0 left-0 w-8 h-full pointer-events-none bg-fade-left" })), showFadeRight && (_jsx("div", { className: "absolute top-0 right-0 w-8 h-full pointer-events-none bg-fade-right" }))] })) })));
|
|
73
75
|
};
|
|
74
76
|
Selectors.displayName = "Selectors";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-enhanced.d.ts","sourceRoot":"","sources":["../../../components/ui/video-enhanced.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,UAAU,UAAW,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IACtE,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,eAAe,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"video-enhanced.d.ts","sourceRoot":"","sources":["../../../components/ui/video-enhanced.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,UAAU,UAAW,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IACtE,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,eAAe,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,KAAK,qFA4OV,CAAA;AAID,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,CAAA"}
|
|
@@ -132,18 +132,26 @@ const Video = React.forwardRef((_a, ref) => {
|
|
|
132
132
|
video.removeEventListener("timeupdate", handleTimeUpdate);
|
|
133
133
|
};
|
|
134
134
|
}, [videoRef]);
|
|
135
|
-
//
|
|
135
|
+
// Defer src assignment to useEffect so only committed elements trigger
|
|
136
|
+
// resource loads. React 19's concurrent renderer creates DOM elements
|
|
137
|
+
// during render passes that may be abandoned — setting src in JSX would
|
|
138
|
+
// cause every abandoned <video> to initiate a network request.
|
|
139
|
+
//
|
|
140
|
+
// After assigning src, kick off resource selection for environments that
|
|
136
141
|
// ignore `preload="metadata"` (e.g., iOS Safari / WebView, Low Power Mode).
|
|
137
|
-
//
|
|
142
|
+
// Gated on readyState so re-runs of this effect (e.g., from an unstable
|
|
138
143
|
// parent ref) don't abort an in-flight fetch and restart playback.
|
|
139
144
|
React.useEffect(() => {
|
|
140
145
|
const video = videoRef.current;
|
|
141
146
|
if (!video)
|
|
142
147
|
return;
|
|
148
|
+
if (video.getAttribute("src") !== src) {
|
|
149
|
+
video.src = src;
|
|
150
|
+
}
|
|
143
151
|
if (video.readyState === 0) {
|
|
144
152
|
video.load();
|
|
145
153
|
}
|
|
146
|
-
}, [videoRef]);
|
|
154
|
+
}, [src, videoRef]);
|
|
147
155
|
// metadata setup — uses native addEventListener instead of React's JSX
|
|
148
156
|
// onLoadedData because non-bubbling media events can fire in the gap
|
|
149
157
|
// between DOM element creation and React's event listener attachment,
|
|
@@ -187,7 +195,7 @@ const Video = React.forwardRef((_a, ref) => {
|
|
|
187
195
|
};
|
|
188
196
|
return (_jsxs("div", Object.assign({ className: "relative w-full" }, { children: [_jsx("video", Object.assign({ ref: videoRef, className: cn(videoVariants.base, videoAttributes.videoFit === "fill"
|
|
189
197
|
? videoVariants.fit.cover
|
|
190
|
-
: videoVariants.fit.contain, className), style: videoStyle, preload: "metadata", playsInline: true, loop: videoAttributes.enabled, controls: false
|
|
198
|
+
: videoVariants.fit.contain, className), style: videoStyle, preload: "metadata", playsInline: true, loop: videoAttributes.enabled, controls: false }, props)), isLoaded && !isPlaying && (_jsx("button", Object.assign({ onClick: handlePlayPause, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50\n w-16 h-16 rounded-full bg-black/75 \n flex items-center justify-center transition-all duration-300\n focus:outline-none focus:ring-2 focus:ring-white", "aria-label": "Play video" }, { children: _jsx("div", { className: "w-0 h-0 border-y-8 border-y-transparent \n border-l-[16px] border-l-white \n translate-x-[2px]" }) })))] })));
|
|
191
199
|
});
|
|
192
200
|
Video.displayName = "Video";
|
|
193
201
|
export { Video as VideoEnhanced };
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/* eslint-env jest */
|
|
2
|
-
import { getVariablesCalculatedCartData } from "./variablesCart.util";
|
|
2
|
+
import { getVariablesCalculatedCartData as _getVariablesCalculatedCartData } from "./variablesCart.util";
|
|
3
3
|
import { DiscountApplicationTargetType, } from "app-studio-types";
|
|
4
|
+
// Test wrapper: TestCart uses simplified shapes that aren't structurally assignable
|
|
5
|
+
// to CartState (e.g. appliedGiftCards omits Shopify's required `balance` field).
|
|
6
|
+
// The function under test uses `@ts-nocheck` and reads via `(cart as any)`, so the
|
|
7
|
+
// runtime shape is fine.
|
|
8
|
+
const getVariablesCalculatedCartData = (cart) => _getVariablesCalculatedCartData(cart);
|
|
4
9
|
const baseCartData = {
|
|
5
10
|
id: "cart123",
|
|
6
11
|
subtotal: 100.0,
|
|
@@ -9,16 +14,6 @@ const baseCartData = {
|
|
|
9
14
|
attributes: [],
|
|
10
15
|
note: "",
|
|
11
16
|
items: [],
|
|
12
|
-
cost: {
|
|
13
|
-
subtotalAmount: {
|
|
14
|
-
amount: 0,
|
|
15
|
-
currencyCode: "",
|
|
16
|
-
},
|
|
17
|
-
totalAmount: {
|
|
18
|
-
amount: 0,
|
|
19
|
-
currencyCode: "",
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
17
|
};
|
|
23
18
|
describe("cart-provider.util", () => {
|
|
24
19
|
describe("getData", () => {
|