ublo-lib 1.37.11 → 1.37.13
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/es/common/components/cart-dialog/cart-dialog-inner.d.ts +17 -0
- package/es/common/components/cart-dialog/cart-dialog-inner.d.ts.map +1 -0
- package/es/common/components/cart-dialog/cart-dialog-inner.js +24 -0
- package/es/common/components/cart-dialog/cart-dialog-inner.module.css +173 -0
- package/es/common/components/cart-dialog/cart-dialog.d.ts +12 -0
- package/es/common/components/cart-dialog/cart-dialog.d.ts.map +1 -0
- package/es/common/components/cart-dialog/cart-dialog.js +43 -0
- package/es/common/components/cart-dialog/cart-dialog.module.css +4 -0
- package/es/common/components/cart-dialog/cross-selling-offers.d.ts +9 -0
- package/es/common/components/cart-dialog/cross-selling-offers.d.ts.map +1 -0
- package/es/common/components/cart-dialog/cross-selling-offers.js +54 -0
- package/es/common/components/cart-dialog/cross-selling-offers.module.css +31 -0
- package/es/common/components/cart-dialog/default.d.ts +11 -0
- package/es/common/components/cart-dialog/default.d.ts.map +1 -0
- package/es/common/components/cart-dialog/default.js +12 -0
- package/es/common/components/cart-dialog/esf-custom.d.ts +12 -0
- package/es/common/components/cart-dialog/esf-custom.d.ts.map +1 -0
- package/es/common/components/cart-dialog/esf-custom.js +19 -0
- package/es/common/components/cart-dialog/esf.d.ts +12 -0
- package/es/common/components/cart-dialog/esf.d.ts.map +1 -0
- package/es/common/components/cart-dialog/esf.js +23 -0
- package/es/common/components/cart-dialog/image-paths.json +13 -0
- package/es/common/components/cart-dialog/index.d.ts +3 -0
- package/es/common/components/cart-dialog/index.d.ts.map +1 -0
- package/es/common/components/cart-dialog/index.js +2 -0
- package/es/common/components/cart-dialog/lodging.d.ts +14 -0
- package/es/common/components/cart-dialog/lodging.d.ts.map +1 -0
- package/es/common/components/cart-dialog/lodging.js +48 -0
- package/es/common/components/cart-dialog/message.d.ts +5 -0
- package/es/common/components/cart-dialog/message.d.ts.map +1 -0
- package/es/common/components/cart-dialog/message.js +49 -0
- package/es/common/components/cart-dialog/ski-passes.d.ts +11 -0
- package/es/common/components/cart-dialog/ski-passes.d.ts.map +1 -0
- package/es/common/components/cart-dialog/ski-passes.js +22 -0
- package/es/common/components/cart-dialog/ski-rental.d.ts +12 -0
- package/es/common/components/cart-dialog/ski-rental.d.ts.map +1 -0
- package/es/common/components/cart-dialog/ski-rental.js +20 -0
- package/es/common/components/cart-dialog/vakario.d.ts +12 -0
- package/es/common/components/cart-dialog/vakario.d.ts.map +1 -0
- package/es/common/components/cart-dialog/vakario.js +19 -0
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default CartDialogInner;
|
|
2
|
+
declare function CartDialogInner({ kind, title, image, thumbnail, price, label, contentTitle, paxPlan, closeDialog, goToCart, cart, zoneId, zonePath, }: {
|
|
3
|
+
kind: any;
|
|
4
|
+
title: any;
|
|
5
|
+
image: any;
|
|
6
|
+
thumbnail: any;
|
|
7
|
+
price: any;
|
|
8
|
+
label: any;
|
|
9
|
+
contentTitle: any;
|
|
10
|
+
paxPlan: any;
|
|
11
|
+
closeDialog: any;
|
|
12
|
+
goToCart: any;
|
|
13
|
+
cart: any;
|
|
14
|
+
zoneId: any;
|
|
15
|
+
zonePath: any;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=cart-dialog-inner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart-dialog-inner.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/cart-dialog-inner.js"],"names":[],"mappings":";AAUA;;;;;;;;;;;;;;4CAoGC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Image from "next/image";
|
|
4
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
5
|
+
import Button from "dt-design-system/es/button";
|
|
6
|
+
import classNames from "classnames";
|
|
7
|
+
import * as Icons from "dt-design-system/es/icons";
|
|
8
|
+
import { message } from "./message";
|
|
9
|
+
import CrossSellingOffers from "./cross-selling-offers";
|
|
10
|
+
import styles from "./cart-dialog-inner.module.css";
|
|
11
|
+
const CartDialogInner = ({ kind, title, image, thumbnail, price, label, contentTitle, paxPlan, closeDialog, goToCart, cart, zoneId, zonePath, }) => {
|
|
12
|
+
const [stay, setStay] = React.useState({ from: "", to: "" });
|
|
13
|
+
const { lang } = useUbloContext();
|
|
14
|
+
React.useEffect(() => {
|
|
15
|
+
const sessionStay = sessionStorage.getItem("stay");
|
|
16
|
+
setStay(JSON.parse(sessionStay));
|
|
17
|
+
}, []);
|
|
18
|
+
const formatOptions = { day: "2-digit", month: "long", year: "numeric" };
|
|
19
|
+
const formattedStayFrom = new Date(stay.from).toLocaleDateString(lang, formatOptions);
|
|
20
|
+
const formattedStayTo = new Date(stay.to).toLocaleDateString(lang, formatOptions);
|
|
21
|
+
const buttonClasses = classNames(styles.contentButton, styles.contentButtonContinue);
|
|
22
|
+
return (_jsxs("div", { className: styles.inner, children: [_jsxs("div", { className: styles.title, children: [_jsx(Icons.CheckCircle, { className: styles.titleIcon }), _jsx("div", { className: styles.titleText, children: title })] }), _jsxs("div", { className: styles.content, children: [image && (_jsx("div", { className: styles.contentLeft, children: _jsx(Image, { className: styles.productImage, src: image, width: 320, height: 200, placeholder: thumbnail ? "blur" : undefined, blurDataURL: thumbnail, alt: "" }) })), _jsxs("div", { className: styles.contentRight, children: [_jsxs("div", { className: styles.wrapper, children: [label && (_jsx("div", { className: styles.contentLabel, dangerouslySetInnerHTML: { __html: label } })), price && _jsxs("div", { className: styles.price, children: [price, " \u20AC"] })] }), contentTitle && (_jsx("div", { className: styles.contentTitle, children: contentTitle })), _jsxs("div", { className: styles.stay, children: [formattedStayFrom, " \uA537 ", formattedStayTo] }), paxPlan && _jsx("div", { className: styles.paxPlan, children: paxPlan }), _jsxs("div", { className: styles.contentButtons, children: [_jsx(Button, { className: buttonClasses, variant: "secondary", onClick: closeDialog, children: message(lang, "cart-dialog-continue") }), _jsx(Button, { className: styles.contentButton, onClick: goToCart, children: message(lang, "cart-dialog-go-to-cart") })] })] })] }), kind && (_jsx(CrossSellingOffers, { kind: kind, cart: cart, closeDialog: closeDialog, zoneId: zoneId, zonePath: zonePath }))] }));
|
|
23
|
+
};
|
|
24
|
+
export default CartDialogInner;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
.inner {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: 40px;
|
|
5
|
+
padding: 14px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@media (min-width: 480px) {
|
|
9
|
+
.inner {
|
|
10
|
+
padding: 26px;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.title {
|
|
15
|
+
width: 520px;
|
|
16
|
+
max-width: 100%;
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
text-align: center;
|
|
22
|
+
gap: 10px;
|
|
23
|
+
margin: 0 auto;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.titleIcon {
|
|
27
|
+
width: 40px;
|
|
28
|
+
height: 40px;
|
|
29
|
+
fill: var(--ds-green-300, #4bde97);
|
|
30
|
+
animation: cart-dialog-check-scale-down 640ms var(--ds-transition-easing);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes cart-dialog-check-scale-down {
|
|
34
|
+
0%,
|
|
35
|
+
40% {
|
|
36
|
+
opacity: 0;
|
|
37
|
+
}
|
|
38
|
+
41% {
|
|
39
|
+
opacity: 0;
|
|
40
|
+
transform: scale(3);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.titleText {
|
|
45
|
+
color: var(--ds-primary, #002dcc);
|
|
46
|
+
line-height: 1.2;
|
|
47
|
+
letter-spacing: 1px;
|
|
48
|
+
font-size: 20px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@media (min-width: 480px) {
|
|
52
|
+
.titleText {
|
|
53
|
+
font-size: 22px;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@media (min-width: 992px) {
|
|
58
|
+
.titleText {
|
|
59
|
+
font-size: 29px;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.content {
|
|
64
|
+
display: flex;
|
|
65
|
+
flex-wrap: wrap;
|
|
66
|
+
gap: 32px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@media (min-width: 900px) {
|
|
70
|
+
.contentLeft {
|
|
71
|
+
display: none;
|
|
72
|
+
display: block;
|
|
73
|
+
margin: 0 auto;
|
|
74
|
+
flex: 0 1 auto;
|
|
75
|
+
width: 340px;
|
|
76
|
+
max-width: 100%;
|
|
77
|
+
text-align: center;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.productImage {
|
|
82
|
+
width: 100%;
|
|
83
|
+
border-radius: var(--ds-radius-200, 8px);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.contentRight {
|
|
87
|
+
flex: 1 1 auto;
|
|
88
|
+
position: relative;
|
|
89
|
+
max-width: 590px;
|
|
90
|
+
display: flex;
|
|
91
|
+
flex-direction: column;
|
|
92
|
+
align-items: flex-start;
|
|
93
|
+
gap: 4px;
|
|
94
|
+
margin: 0 auto;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.wrapper {
|
|
98
|
+
display: flex;
|
|
99
|
+
gap: 10px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@media (min-width: 480px) {
|
|
103
|
+
.wrapper {
|
|
104
|
+
gap: 20px;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.price {
|
|
109
|
+
color: var(--ds-primary, #002dcc);
|
|
110
|
+
line-height: 1.2;
|
|
111
|
+
letter-spacing: 1px;
|
|
112
|
+
font-size: 20px;
|
|
113
|
+
font-weight: 700;
|
|
114
|
+
white-space: nowrap;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@media (min-width: 480px) {
|
|
118
|
+
.price {
|
|
119
|
+
font-size: 22px;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@media (min-width: 992px) {
|
|
124
|
+
.price {
|
|
125
|
+
font-size: 29px;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.contentLabel {
|
|
130
|
+
max-width: calc(100% - 80px);
|
|
131
|
+
padding: 6px;
|
|
132
|
+
color: var(--ds-grey-000, #fff);
|
|
133
|
+
line-height: 1;
|
|
134
|
+
font-size: 14px;
|
|
135
|
+
font-weight: 700;
|
|
136
|
+
background-color: var(--ds-primary, #002dcc);
|
|
137
|
+
border-radius: var(--ds-radius-200, 8px);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.contentTitle {
|
|
141
|
+
max-width: 280px;
|
|
142
|
+
margin-bottom: 10px;
|
|
143
|
+
color: var(--ds-grey-800, #000);
|
|
144
|
+
font-size: 17px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.stay,
|
|
148
|
+
.paxPlan {
|
|
149
|
+
color: var(--ds-grey-800, #000);
|
|
150
|
+
line-height: 1;
|
|
151
|
+
font-size: 14px;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.contentButtons {
|
|
155
|
+
align-self: stretch;
|
|
156
|
+
display: flex;
|
|
157
|
+
align-items: flex-end;
|
|
158
|
+
justify-content: center;
|
|
159
|
+
flex-wrap: wrap;
|
|
160
|
+
gap: 20px;
|
|
161
|
+
margin-top: auto;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
button.contentButton {
|
|
165
|
+
flex: 1 1 auto;
|
|
166
|
+
padding: 16px 26px;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
button.contentButtonContinue,
|
|
170
|
+
button.contentButtonContinue:hover {
|
|
171
|
+
margin-top: 24px;
|
|
172
|
+
color: var(--ds-primary, #002dcc);
|
|
173
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default CartDialog;
|
|
2
|
+
declare function CartDialog({ cart, setCart, shortcuts, paxPlan, facet, zoneId, zonePath, hasImage, }: {
|
|
3
|
+
cart: any;
|
|
4
|
+
setCart: any;
|
|
5
|
+
shortcuts: any;
|
|
6
|
+
paxPlan: any;
|
|
7
|
+
facet: any;
|
|
8
|
+
zoneId: any;
|
|
9
|
+
zonePath: any;
|
|
10
|
+
hasImage: any;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=cart-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart-dialog.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/cart-dialog.js"],"names":[],"mappings":";AAoBA;;;;;;;;;4CA6DC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import Dialog from "dt-design-system/es/dialog";
|
|
3
|
+
import ESF from "./esf";
|
|
4
|
+
import ESFCustom from "./esf-custom";
|
|
5
|
+
import Default from "./default";
|
|
6
|
+
import Lodging from "./lodging";
|
|
7
|
+
import SkiPasses from "./ski-passes";
|
|
8
|
+
import SkiRental from "./ski-rental";
|
|
9
|
+
import Vakario from "./vakario";
|
|
10
|
+
import styles from "./cart-dialog.module.css";
|
|
11
|
+
const products = {
|
|
12
|
+
ESF,
|
|
13
|
+
ESF_CUSTOM: ESFCustom,
|
|
14
|
+
DEFAULT: Default,
|
|
15
|
+
HOT: Lodging,
|
|
16
|
+
LIFT: SkiPasses,
|
|
17
|
+
SKI_RENTAL: SkiRental,
|
|
18
|
+
VAKARIO: Vakario,
|
|
19
|
+
};
|
|
20
|
+
const CartDialog = ({ cart, setCart, shortcuts, paxPlan, facet, zoneId, zonePath, hasImage, }) => {
|
|
21
|
+
if (!cart)
|
|
22
|
+
return null;
|
|
23
|
+
const { cart: cartContent, kind, data } = cart;
|
|
24
|
+
const isSupported = Object.keys(products).includes(kind);
|
|
25
|
+
const convertedKind = kind === "VAKARIO" ? "STAND" : kind;
|
|
26
|
+
if (!cartContent?.cart?.orders?.[convertedKind]?.[0]) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const cartUrl = shortcuts.cartItem.path;
|
|
30
|
+
const orders = cartContent.cart.orders[convertedKind];
|
|
31
|
+
const { inscriptions } = orders[orders.length - 1];
|
|
32
|
+
const newItem = inscriptions[inscriptions.length - 1];
|
|
33
|
+
const closeDialog = () => {
|
|
34
|
+
setCart(undefined);
|
|
35
|
+
document.body.removeAttribute("style");
|
|
36
|
+
};
|
|
37
|
+
const goToCart = () => {
|
|
38
|
+
window.location.href = cartUrl;
|
|
39
|
+
};
|
|
40
|
+
const Component = isSupported ? products[kind] : products.DEFAULT;
|
|
41
|
+
return (_jsx(Dialog, { className: styles.cartDialog, isOpened: Boolean(cart), close: closeDialog, closeButtonVariant: "link", children: _jsx(Component, { kind: kind, item: newItem, data: data, closeDialog: closeDialog, goToCart: goToCart, cart: cart, paxPlan: paxPlan, facet: facet, zoneId: zoneId, zonePath: zonePath, hasImage: hasImage }) }));
|
|
42
|
+
};
|
|
43
|
+
export default CartDialog;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default CrossSellingOffers;
|
|
2
|
+
declare function CrossSellingOffers({ kind, cart, closeDialog, zoneId, zonePath }: {
|
|
3
|
+
kind: any;
|
|
4
|
+
cart: any;
|
|
5
|
+
closeDialog: any;
|
|
6
|
+
zoneId: any;
|
|
7
|
+
zonePath: any;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=cross-selling-offers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-selling-offers.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/cross-selling-offers.js"],"names":[],"mappings":";AAUA;;;;;;4CAwDC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Router from "next/router";
|
|
4
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
5
|
+
import useTunnelOffers from "../cross-selling-editor/hooks/use-tunnel-offers";
|
|
6
|
+
import * as Plausible from "../plausible";
|
|
7
|
+
import { message } from "./message";
|
|
8
|
+
import styles from "./cross-selling-offers.module.css";
|
|
9
|
+
const CrossSellingOffers = ({ kind, cart, closeDialog, zoneId, zonePath }) => {
|
|
10
|
+
const ref = React.useRef();
|
|
11
|
+
const { lang, path } = useUbloContext();
|
|
12
|
+
const currentCart = cart.cart.cart;
|
|
13
|
+
const offers = useTunnelOffers(zoneId, zonePath, currentCart);
|
|
14
|
+
const handleCrossSellingClick = (e) => {
|
|
15
|
+
closeDialog();
|
|
16
|
+
const sections = Array.from(ref.current.querySelectorAll("section"));
|
|
17
|
+
const section = e.target.closest("section");
|
|
18
|
+
const link = section.querySelector("a");
|
|
19
|
+
if (link) {
|
|
20
|
+
const currentPath = path.concat("/");
|
|
21
|
+
const href = link.getAttribute("href");
|
|
22
|
+
const offer = link.querySelector("[data-title]")?.textContent || "";
|
|
23
|
+
const position = sections.indexOf(section) + 1;
|
|
24
|
+
const details = `${kind} > ${offer}`;
|
|
25
|
+
Plausible.sendGoal("Add To Cart Cross Selling Offer: Click", {
|
|
26
|
+
Trigger: kind,
|
|
27
|
+
Clicked: offer,
|
|
28
|
+
Position: position,
|
|
29
|
+
Details: details,
|
|
30
|
+
"Details & Position": `${details} | ${position}`,
|
|
31
|
+
});
|
|
32
|
+
if (href === currentPath) {
|
|
33
|
+
Router.reload();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
if (!offers?.length || areOffersHidden(offers))
|
|
38
|
+
return null;
|
|
39
|
+
return (_jsxs("div", { className: styles.offers, children: [_jsx("div", { className: styles.title, dangerouslySetInnerHTML: {
|
|
40
|
+
__html: message(lang, "cross-selling-offers-title"),
|
|
41
|
+
} }), _jsx("div", { ref: ref, className: styles.list, onClick: handleCrossSellingClick, dangerouslySetInnerHTML: {
|
|
42
|
+
__html: offers
|
|
43
|
+
.map(({ elementHTML }) => elementHTML)
|
|
44
|
+
.slice(0, 4)
|
|
45
|
+
.join(""),
|
|
46
|
+
} })] }));
|
|
47
|
+
};
|
|
48
|
+
function areOffersHidden(offers) {
|
|
49
|
+
const visibleOffers = offers.filter(({ isHidden, elementHTML }) => {
|
|
50
|
+
return !isHidden && !elementHTML.includes("data-hidden");
|
|
51
|
+
});
|
|
52
|
+
return visibleOffers.length === 0;
|
|
53
|
+
}
|
|
54
|
+
export default CrossSellingOffers;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.offers {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: 22px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.title {
|
|
8
|
+
color: var(--ds-primary, #002dcc);
|
|
9
|
+
line-height: 1.2;
|
|
10
|
+
letter-spacing: 1px;
|
|
11
|
+
font-size: 20px;
|
|
12
|
+
text-align: center;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media (min-width: 480px) {
|
|
16
|
+
.title {
|
|
17
|
+
font-size: 22px;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@media (min-width: 992px) {
|
|
22
|
+
.title {
|
|
23
|
+
font-size: 29px;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.list {
|
|
28
|
+
display: grid;
|
|
29
|
+
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
30
|
+
gap: 12px;
|
|
31
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default Default;
|
|
2
|
+
declare function Default({ kind, closeDialog, goToCart, cart, facet, zoneId, zonePath, }: {
|
|
3
|
+
kind: any;
|
|
4
|
+
closeDialog: any;
|
|
5
|
+
goToCart: any;
|
|
6
|
+
cart: any;
|
|
7
|
+
facet: any;
|
|
8
|
+
zoneId: any;
|
|
9
|
+
zonePath: any;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/default.js"],"names":[],"mappings":";AAIA;;;;;;;;4CAgCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
3
|
+
import CartDialogInner from "./cart-dialog-inner";
|
|
4
|
+
import { message } from "./message";
|
|
5
|
+
const Default = ({ kind, closeDialog, goToCart, cart, facet, zoneId, zonePath, }) => {
|
|
6
|
+
const { lang } = useUbloContext();
|
|
7
|
+
const Title = () => {
|
|
8
|
+
return (_jsxs(_Fragment, { children: [_jsxs("b", { children: [message(lang, "cart-dialog-product-title"), " "] }), message(lang, "cart-dialog-title-suffix-singular")] }));
|
|
9
|
+
};
|
|
10
|
+
return (_jsx(CartDialogInner, { kind: kind, title: _jsx(Title, {}), closeDialog: closeDialog, goToCart: goToCart, cart: cart, facet: facet, zoneId: zoneId, zonePath: zonePath }));
|
|
11
|
+
};
|
|
12
|
+
export default Default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default ESFCustom;
|
|
2
|
+
declare function ESFCustom({ item, closeDialog, goToCart, cart, facet, zoneId, zonePath, hasImage, }: {
|
|
3
|
+
item: any;
|
|
4
|
+
closeDialog: any;
|
|
5
|
+
goToCart: any;
|
|
6
|
+
cart: any;
|
|
7
|
+
facet: any;
|
|
8
|
+
zoneId: any;
|
|
9
|
+
zonePath: any;
|
|
10
|
+
hasImage: any;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=esf-custom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esf-custom.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/esf-custom.js"],"names":[],"mappings":";AAKA;;;;;;;;;4CA6CC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
3
|
+
import CartDialogInner from "./cart-dialog-inner";
|
|
4
|
+
import { message } from "./message";
|
|
5
|
+
import imagePaths from "./image-paths.json";
|
|
6
|
+
const ESFCustom = ({ item, closeDialog, goToCart, cart, facet, zoneId, zonePath, hasImage, }) => {
|
|
7
|
+
const { lang } = useUbloContext();
|
|
8
|
+
const { activity, level, name, price } = item.product;
|
|
9
|
+
const kind = "ski-lessons";
|
|
10
|
+
let image = undefined;
|
|
11
|
+
if (hasImage) {
|
|
12
|
+
image = imagePaths[kind];
|
|
13
|
+
}
|
|
14
|
+
const Title = () => {
|
|
15
|
+
return (_jsxs(_Fragment, { children: [_jsxs("b", { children: [message(lang, "cart-dialog-esf-title"), " "] }), message(lang, "cart-dialog-title-suffix-singular")] }));
|
|
16
|
+
};
|
|
17
|
+
return (_jsx(CartDialogInner, { kind: kind, title: _jsx(Title, {}), image: image, price: price, contentTitle: name, label: activity.concat(" - ", level), closeDialog: closeDialog, goToCart: goToCart, cart: cart, facet: facet, zoneId: zoneId, zonePath: zonePath }));
|
|
18
|
+
};
|
|
19
|
+
export default ESFCustom;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default ESF;
|
|
2
|
+
declare function ESF({ item, closeDialog, goToCart, cart, facet, zoneId, zonePath, hasImage, }: {
|
|
3
|
+
item: any;
|
|
4
|
+
closeDialog: any;
|
|
5
|
+
goToCart: any;
|
|
6
|
+
cart: any;
|
|
7
|
+
facet: any;
|
|
8
|
+
zoneId: any;
|
|
9
|
+
zonePath: any;
|
|
10
|
+
hasImage: any;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=esf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esf.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/esf.js"],"names":[],"mappings":";AAKA;;;;;;;;;4CAoDC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
3
|
+
import CartDialogInner from "./cart-dialog-inner";
|
|
4
|
+
import { message } from "./message";
|
|
5
|
+
import imagePaths from "./image-paths.json";
|
|
6
|
+
const ESF = ({ item, closeDialog, goToCart, cart, facet, zoneId, zonePath, hasImage, }) => {
|
|
7
|
+
const { lang } = useUbloContext();
|
|
8
|
+
const { activity, level, name, price } = item.product;
|
|
9
|
+
const kind = "ski-lessons";
|
|
10
|
+
let image = undefined;
|
|
11
|
+
if (hasImage) {
|
|
12
|
+
image = imagePaths[kind];
|
|
13
|
+
}
|
|
14
|
+
const label = (activity && level && `${activity} - ${level}`) ||
|
|
15
|
+
activity ||
|
|
16
|
+
level ||
|
|
17
|
+
undefined;
|
|
18
|
+
const Title = () => {
|
|
19
|
+
return (_jsxs(_Fragment, { children: [_jsxs("b", { children: [message(lang, "cart-dialog-esf-title"), " "] }), message(lang, "cart-dialog-title-suffix-singular")] }));
|
|
20
|
+
};
|
|
21
|
+
return (_jsx(CartDialogInner, { kind: kind, title: _jsx(Title, {}), image: image, price: price, contentTitle: name, label: label, closeDialog: closeDialog, goToCart: goToCart, cart: cart, facet: facet, zoneId: zoneId, zonePath: zonePath }));
|
|
22
|
+
};
|
|
23
|
+
export default ESF;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ski-lessons": "/static/images/categories/cours-de-ski-winter.jpg",
|
|
3
|
+
"lodging": "/static/images/misc/default.jpg",
|
|
4
|
+
"ski-passes": {
|
|
5
|
+
"summer": "/static/images/categories/forfaits-summer.jpg",
|
|
6
|
+
"winter": "/static/images/categories/forfaits-winter.jpg"
|
|
7
|
+
},
|
|
8
|
+
"ski-rental": {
|
|
9
|
+
"summer": "/static/images/categories/materiel-summer.jpg",
|
|
10
|
+
"winter": "/static/images/categories/materiel-winter.jpg"
|
|
11
|
+
},
|
|
12
|
+
"vakario": "/static/images/misc/default.jpg"
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/index.js"],"names":[],"mappings":";uBAAuB,eAAe"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default Lodging;
|
|
2
|
+
declare function Lodging({ item, data, closeDialog, goToCart, cart, facet, paxPlan, zoneId, zonePath, hasImage, }: {
|
|
3
|
+
item: any;
|
|
4
|
+
data: any;
|
|
5
|
+
closeDialog: any;
|
|
6
|
+
goToCart: any;
|
|
7
|
+
cart: any;
|
|
8
|
+
facet: any;
|
|
9
|
+
paxPlan: any;
|
|
10
|
+
zoneId: any;
|
|
11
|
+
zonePath: any;
|
|
12
|
+
hasImage: any;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=lodging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lodging.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/lodging.js"],"names":[],"mappings":";AAiCA;;;;;;;;;;;4CA0DC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
3
|
+
import { message } from "./message";
|
|
4
|
+
import CartDialogInner from "./cart-dialog-inner";
|
|
5
|
+
import imagePaths from "./image-paths.json";
|
|
6
|
+
const getPaxPlanLabel = (lang, paxPlan) => {
|
|
7
|
+
if (!paxPlan?.adults || !paxPlan?.children)
|
|
8
|
+
return "";
|
|
9
|
+
const { adults, children } = paxPlan;
|
|
10
|
+
const adultsLabel = adults &&
|
|
11
|
+
`${adults} ${adults > 1
|
|
12
|
+
? message(lang, "search-filters-pax-plan-adults")
|
|
13
|
+
: message(lang, "search-filters-pax-plan-adult")}`;
|
|
14
|
+
const childrenLabel = children &&
|
|
15
|
+
`${children} ${children > 1
|
|
16
|
+
? message(lang, "search-filters-pax-plan-children")
|
|
17
|
+
: message(lang, "search-filters-pax-plan-child")}`;
|
|
18
|
+
if (adultsLabel && childrenLabel) {
|
|
19
|
+
return `${adultsLabel} ꔷ ${childrenLabel}`;
|
|
20
|
+
}
|
|
21
|
+
else if (adultsLabel && !childrenLabel) {
|
|
22
|
+
return adultsLabel;
|
|
23
|
+
}
|
|
24
|
+
else if (childrenLabel && !adultsLabel) {
|
|
25
|
+
return childrenLabel;
|
|
26
|
+
}
|
|
27
|
+
return "";
|
|
28
|
+
};
|
|
29
|
+
const Lodging = ({ item, data, closeDialog, goToCart, cart, facet, paxPlan, zoneId, zonePath, hasImage, }) => {
|
|
30
|
+
const { lang } = useUbloContext();
|
|
31
|
+
const { hotel, room, total } = item.description;
|
|
32
|
+
const { options = [] } = item.conciergerie || {};
|
|
33
|
+
const kind = "lodging";
|
|
34
|
+
const optionsTotal = options.reduce((acc, option) => acc + option.price, 0);
|
|
35
|
+
let image, thumbnail = undefined;
|
|
36
|
+
if (hasImage) {
|
|
37
|
+
const bareImage = data.images?.[0]?.src || imagePaths[kind];
|
|
38
|
+
image = bareImage.replace("huge", "large");
|
|
39
|
+
thumbnail = bareImage.replace("huge", "medium");
|
|
40
|
+
}
|
|
41
|
+
const formattedPaxPlan = getPaxPlanLabel(lang, paxPlan);
|
|
42
|
+
const price = total + optionsTotal;
|
|
43
|
+
const Title = () => {
|
|
44
|
+
return (_jsxs(_Fragment, { children: [_jsxs("b", { children: [message(lang, "cart-dialog-lodging-title"), " "] }), message(lang, "cart-dialog-title-suffix-singular")] }));
|
|
45
|
+
};
|
|
46
|
+
return (_jsx(CartDialogInner, { kind: kind, title: _jsx(Title, {}), image: image, thumbnail: thumbnail, price: price, label: room, contentTitle: hotel, paxPlan: formattedPaxPlan, closeDialog: closeDialog, goToCart: goToCart, cart: cart, facet: facet, zoneId: zoneId, zonePath: zonePath }));
|
|
47
|
+
};
|
|
48
|
+
export default Lodging;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/message.js"],"names":[],"mappings":"AA4CA,iDAIC;AAED;;QAGC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
2
|
+
const locales = {
|
|
3
|
+
fr: {
|
|
4
|
+
"cart-dialog-lodging-title": "Votre hébergement",
|
|
5
|
+
"cart-dialog-ski-passes-title": "Vos forfaits",
|
|
6
|
+
"cart-dialog-esf-title": "Votre cours de ski",
|
|
7
|
+
"cart-dialog-ski-rental-title": "Votre matériel",
|
|
8
|
+
"cart-dialog-product-title": "Votre produit",
|
|
9
|
+
"cart-dialog-title-suffix-singular": "a été ajouté au panier avec succès",
|
|
10
|
+
"cart-dialog-title-suffix-plural": "ont été ajoutés au panier avec succès",
|
|
11
|
+
"cart-dialog-continue": "Continuer sur le site",
|
|
12
|
+
"cart-dialog-go-to-cart": "Finaliser ma commande",
|
|
13
|
+
"search-filters-pax-plan-adult": "adulte",
|
|
14
|
+
"search-filters-pax-plan-adults": "adultes",
|
|
15
|
+
"search-filters-pax-plan-child": "enfant",
|
|
16
|
+
"search-filters-pax-plan-children": "enfants",
|
|
17
|
+
"cross-selling-offers-title": "<b>Nos prestations</b> qui pourraient vous intéresser",
|
|
18
|
+
person: "personne",
|
|
19
|
+
persons: "personnes",
|
|
20
|
+
},
|
|
21
|
+
en: {
|
|
22
|
+
"cart-dialog-lodging-title": "Your accommodation",
|
|
23
|
+
"cart-dialog-ski-passes-title": "Your ski passes",
|
|
24
|
+
"cart-dialog-esf-title": "Your ski lesson",
|
|
25
|
+
"cart-dialog-ski-rental-title": "Your gear",
|
|
26
|
+
"cart-dialog-product-title": "Your product",
|
|
27
|
+
"cart-dialog-title-suffix-singular": "has been successfully added to the cart",
|
|
28
|
+
"cart-dialog-title-suffix-plural": "have been successfully added to the cart",
|
|
29
|
+
"cart-dialog-continue": "Continue to site",
|
|
30
|
+
"cart-dialog-go-to-cart": "Finalize my order",
|
|
31
|
+
"search-filters-pax-plan-adult": "adult",
|
|
32
|
+
"search-filters-pax-plan-adults": "adults",
|
|
33
|
+
"search-filters-pax-plan-child": "child",
|
|
34
|
+
"search-filters-pax-plan-children": "children",
|
|
35
|
+
"cross-selling-offers-title": "<b>Our services</b> that might interest you",
|
|
36
|
+
person: "person",
|
|
37
|
+
persons: "persons",
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
export function message(lang, id) {
|
|
41
|
+
if (!locales || !locales[lang])
|
|
42
|
+
return id;
|
|
43
|
+
const messages = locales[lang];
|
|
44
|
+
return messages[id] || `??${id}??`;
|
|
45
|
+
}
|
|
46
|
+
export default function Message({ id }) {
|
|
47
|
+
const { lang } = useUbloContext();
|
|
48
|
+
return message(lang, id);
|
|
49
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default SkiPasses;
|
|
2
|
+
declare function SkiPasses({ item, facet, closeDialog, goToCart, cart, zoneId, zonePath, }: {
|
|
3
|
+
item: any;
|
|
4
|
+
facet: any;
|
|
5
|
+
closeDialog: any;
|
|
6
|
+
goToCart: any;
|
|
7
|
+
cart: any;
|
|
8
|
+
zoneId: any;
|
|
9
|
+
zonePath: any;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=ski-passes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ski-passes.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/ski-passes.js"],"names":[],"mappings":";AAUA;;;;;;;;4CAyCC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
3
|
+
import CartDialogInner from "./cart-dialog-inner";
|
|
4
|
+
import { message } from "./message";
|
|
5
|
+
import imagePaths from "./image-paths.json";
|
|
6
|
+
const getGroupLabel = (lang, tickets) => {
|
|
7
|
+
if (tickets.length === 1)
|
|
8
|
+
return `1 ${message(lang, "person")}`;
|
|
9
|
+
return `${tickets.length} ${message(lang, "persons")}`;
|
|
10
|
+
};
|
|
11
|
+
const SkiPasses = ({ item, facet, closeDialog, goToCart, cart, zoneId, zonePath, }) => {
|
|
12
|
+
const { lang } = useUbloContext();
|
|
13
|
+
const { label, price, tickets } = item;
|
|
14
|
+
const kind = "ski-passes";
|
|
15
|
+
const image = imagePaths[kind][facet];
|
|
16
|
+
const formattedPaxPlan = getGroupLabel(lang, tickets);
|
|
17
|
+
const Title = () => {
|
|
18
|
+
return (_jsxs(_Fragment, { children: [_jsxs("b", { children: [message(lang, "cart-dialog-ski-passes-title"), " "] }), message(lang, "cart-dialog-title-suffix-plural")] }));
|
|
19
|
+
};
|
|
20
|
+
return (_jsx(CartDialogInner, { kind: kind, title: _jsx(Title, {}), image: image, price: price, contentTitle: label, paxPlan: formattedPaxPlan, closeDialog: closeDialog, goToCart: goToCart, cart: cart, facet: facet, zoneId: zoneId, zonePath: zonePath }));
|
|
21
|
+
};
|
|
22
|
+
export default SkiPasses;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default SkiRental;
|
|
2
|
+
declare function SkiRental({ item, facet, closeDialog, goToCart, cart, zoneId, zonePath, hasImage, }: {
|
|
3
|
+
item: any;
|
|
4
|
+
facet: any;
|
|
5
|
+
closeDialog: any;
|
|
6
|
+
goToCart: any;
|
|
7
|
+
cart: any;
|
|
8
|
+
zoneId: any;
|
|
9
|
+
zonePath: any;
|
|
10
|
+
hasImage: any;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=ski-rental.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ski-rental.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/ski-rental.js"],"names":[],"mappings":";AAKA;;;;;;;;;4CAgDC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
3
|
+
import CartDialogInner from "./cart-dialog-inner";
|
|
4
|
+
import { message } from "./message";
|
|
5
|
+
import imagePaths from "./image-paths.json";
|
|
6
|
+
const SkiRental = ({ item, facet, closeDialog, goToCart, cart, zoneId, zonePath, hasImage, }) => {
|
|
7
|
+
const { lang } = useUbloContext();
|
|
8
|
+
const { rentDuration, price, products } = item;
|
|
9
|
+
const kind = "ski-rental";
|
|
10
|
+
const product = products.find((p) => p.type === "Mandatory");
|
|
11
|
+
let image = undefined;
|
|
12
|
+
if (hasImage) {
|
|
13
|
+
image = imagePaths[kind][facet];
|
|
14
|
+
}
|
|
15
|
+
const Title = () => {
|
|
16
|
+
return (_jsxs(_Fragment, { children: [_jsxs("b", { children: [message(lang, "cart-dialog-ski-rental-title"), " "] }), message(lang, "cart-dialog-title-suffix-singular")] }));
|
|
17
|
+
};
|
|
18
|
+
return (_jsx(CartDialogInner, { kind: "ski-rental", title: _jsx(Title, {}), image: image, price: price, contentTitle: rentDuration, label: product?.label, closeDialog: closeDialog, goToCart: goToCart, cart: cart, facet: facet, zoneId: zoneId, zonePath: zonePath }));
|
|
19
|
+
};
|
|
20
|
+
export default SkiRental;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default Vakario;
|
|
2
|
+
declare function Vakario({ item, closeDialog, goToCart, cart, facet, zoneId, zonePath, hasImage, }: {
|
|
3
|
+
item: any;
|
|
4
|
+
closeDialog: any;
|
|
5
|
+
goToCart: any;
|
|
6
|
+
cart: any;
|
|
7
|
+
facet: any;
|
|
8
|
+
zoneId: any;
|
|
9
|
+
zonePath: any;
|
|
10
|
+
hasImage: any;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=vakario.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vakario.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-dialog/vakario.js"],"names":[],"mappings":";AAKA;;;;;;;;;4CA4CC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useUbloContext } from "ublo/with-ublo";
|
|
3
|
+
import CartDialogInner from "./cart-dialog-inner";
|
|
4
|
+
import { message } from "./message";
|
|
5
|
+
import imagePaths from "./image-paths.json";
|
|
6
|
+
const Vakario = ({ item, closeDialog, goToCart, cart, facet, zoneId, zonePath, hasImage, }) => {
|
|
7
|
+
const { lang } = useUbloContext();
|
|
8
|
+
const { title, price } = item;
|
|
9
|
+
const kind = "vakario";
|
|
10
|
+
let image = undefined;
|
|
11
|
+
if (hasImage) {
|
|
12
|
+
image = imagePaths[kind];
|
|
13
|
+
}
|
|
14
|
+
const Title = () => {
|
|
15
|
+
return (_jsxs(_Fragment, { children: [_jsxs("b", { children: [message(lang, "cart-dialog-product-title"), " "] }), message(lang, "cart-dialog-title-suffix-singular")] }));
|
|
16
|
+
};
|
|
17
|
+
return (_jsx(CartDialogInner, { kind: kind, title: _jsx(Title, {}), image: image, price: price, contentTitle: title, closeDialog: closeDialog, goToCart: goToCart, cart: cart, facet: facet, zoneId: zoneId, zonePath: zonePath }));
|
|
18
|
+
};
|
|
19
|
+
export default Vakario;
|