kupos-ui-components-lib 9.0.11 → 9.0.12
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/assets/images/anims/service_list/priority_stage.json +1 -1
- package/dist/components/ServiceItem/ServiceItemDesktop.js +78 -25
- package/dist/components/ServiceItem/ServiceItemMobile.js +59 -27
- package/dist/styles.css +9 -18
- package/dist/ui/AmenitiesBlock.js +25 -24
- package/dist/ui/DateTimeSection/DateTimeSection.js +2 -2
- package/dist/ui/DirectoBlock.js +2 -2
- package/dist/ui/DurationBlock.js +2 -2
- package/dist/ui/FlexibleBlock.js +3 -2
- package/dist/ui/RatingBlock.js +2 -2
- package/dist/ui/TopAmenities/TopAmenities.d.ts +2 -1
- package/dist/ui/TopAmenities/TopAmenities.js +6 -4
- package/dist/ui/mobileweb/TopAmenitieMobile.d.ts +2 -1
- package/dist/ui/mobileweb/TopAmenitieMobile.js +4 -4
- package/package.json +1 -1
- package/src/assets/images/anims/service_list/priority_stage.json +1 -1
- package/src/components/ServiceItem/ServiceItemDesktop.tsx +173 -20
- package/src/components/ServiceItem/ServiceItemMobile.tsx +81 -57
- package/src/ui/AmenitiesBlock.tsx +34 -34
- package/src/ui/DateTimeSection/DateTimeSection.tsx +2 -2
- package/src/ui/DirectoBlock.tsx +2 -2
- package/src/ui/DurationBlock.tsx +2 -2
- package/src/ui/FlexibleBlock.tsx +3 -2
- package/src/ui/RatingBlock.tsx +2 -2
- package/src/ui/TopAmenities/TopAmenities.tsx +39 -36
- package/src/ui/mobileweb/TopAmenitieMobile.tsx +30 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"nm":"Main Scene","ddd":0,"h":
|
|
1
|
+
{"nm":"Main Scene","ddd":0,"h":500,"w":500,"meta":{"g":"@lottiefiles/creator 1.25.0"},"layers":[{"ty":0,"nm":" Main Scene","sr":1,"st":0,"op":90,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[250,250]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[250,250]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"w":500,"h":500,"refId":"precomp_Main Scene_c6717324-fe11-4912-8421-1a94a5c0a552","ind":1}],"v":"5.7.0","fr":30,"op":90,"ip":0,"assets":[{"nm":"Main Scene","id":"precomp_Main Scene_c6717324-fe11-4912-8421-1a94a5c0a552","layers":[{"ty":4,"nm":"Shape Layer - SVG","sr":1,"st":0,"op":90,"ip":0,"hd":false,"ln":"Capa_1","ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[32.5,32.5]},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,0],"t":4},{"s":[619.0851,619.0851],"t":14}]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[249.94198808735723,248.20464459007883]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[100],"t":7}]}},"shapes":[{"ty":"gr","bm":0,"hd":false,"nm":"Group 1","it":[{"ty":"sh","bm":0,"hd":false,"nm":"Path 1","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[1.0100000000000051,0.14999999999999858],[0,0],[0,0],[1.0400000000000063,0],[0.46000000000000085,-0.9199999999999999],[0,0],[0,0],[0.3200000000000003,-0.9899999999999984],[-0.75,-0.740000000000002],[0,0],[0,0],[-0.8599999999999994,-0.6299999999999955],[-0.9000000000000004,0.480000000000004],[0,0],[0,0],[-0.4299999999999997,0],[-0.47000000000000597,0.3400000000000034],[0.14999999999999858,1.0300000000000011],[0,0],[0,0],[0.3299999999999983,0.990000000000002],[0,0]],"o":[[-0.3200000000000003,-0.9899999999999984],[0,0],[0,0],[-0.46999999999999886,-0.96],[-1.0400000000000063,0],[0,0],[0,0],[-1.0099999999999998,0.14999999999999858],[-0.32000000000000006,0.9899999999999984],[0,0],[0,0],[-0.17999999999999972,1.0300000000000011],[0.8300000000000001,0.6300000000000026],[0,0],[0,0],[0.3999999999999986,0.21999999999999886],[0.5399999999999991,0],[0.8299999999999983,-0.6300000000000026],[0,0],[0,0],[0.7199999999999989,-0.7399999999999984],[0,0],[0,0]],"v":[[62.9,25.51],[60.739999999999995,23.67],[42.89999999999999,21.020000000000003],[34.93999999999999,4.510000000000002],[32.52999999999999,3.0000000000000018],[30.119999999999987,4.510000000000002],[22.149999999999988,21.020000000000003],[4.309999999999988,23.67],[2.149999999999988,25.51],[2.829999999999988,28.310000000000002],[15.729999999999988,41.17],[12.669999999999987,59.34],[13.749999999999988,62.03],[16.559999999999988,62.25],[32.48999999999999,53.66],[48.41999999999999,62.25],[49.679999999999986,62.58],[51.26999999999999,62.059999999999995],[52.34999999999999,59.37],[49.289999999999985,41.199999999999996],[62.18999999999998,28.339999999999996],[62.86999999999998,25.539999999999996],[62.90999999999998,25.499999999999996]]}}},{"ty":"st","bm":0,"hd":false,"nm":"Stroke","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100},"w":{"a":0,"k":3.58},"c":{"a":0,"k":[0.9765,0.5373,0.2706]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":1}]}]}
|
|
@@ -27,7 +27,6 @@ import PetBlock from "../../ui/PetBlock";
|
|
|
27
27
|
import FlexibleBlock from "../../ui/FlexibleBlock";
|
|
28
28
|
import AmenitiesBlock from "../../ui/AmenitiesBlock";
|
|
29
29
|
import KuposButton from "../../ui/KuposButton/KuposButton";
|
|
30
|
-
import TopAmenities from "../../ui/TopAmenities/TopAmenities";
|
|
31
30
|
import BottomAmenities from "../../ui/BottomAmenities/BottomAmenities";
|
|
32
31
|
import SeatSection from "../../ui/SeatSection/SeatSection";
|
|
33
32
|
import DateTimeSection from "../../ui/DateTimeSection/DateTimeSection";
|
|
@@ -184,6 +183,30 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
184
183
|
onBookButtonPress();
|
|
185
184
|
};
|
|
186
185
|
const countdownSeconds = 7830;
|
|
186
|
+
const startCountdown = (node) => {
|
|
187
|
+
if (!node)
|
|
188
|
+
return;
|
|
189
|
+
const prevId = node.dataset.countdownId;
|
|
190
|
+
if (prevId)
|
|
191
|
+
clearInterval(Number(prevId));
|
|
192
|
+
let remaining = countdownSeconds;
|
|
193
|
+
const formatTime = (totalSecs) => {
|
|
194
|
+
const h = Math.floor(totalSecs / 3600);
|
|
195
|
+
const m = Math.floor((totalSecs % 3600) / 60);
|
|
196
|
+
const s = totalSecs % 60;
|
|
197
|
+
return `${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
|
198
|
+
};
|
|
199
|
+
node.textContent = formatTime(remaining);
|
|
200
|
+
const id = setInterval(() => {
|
|
201
|
+
remaining -= 1;
|
|
202
|
+
if (remaining <= 0) {
|
|
203
|
+
remaining = 0;
|
|
204
|
+
clearInterval(id);
|
|
205
|
+
}
|
|
206
|
+
node.textContent = formatTime(remaining);
|
|
207
|
+
}, 1000);
|
|
208
|
+
node.dataset.countdownId = String(id);
|
|
209
|
+
};
|
|
187
210
|
const items = [
|
|
188
211
|
{
|
|
189
212
|
key: "amenities",
|
|
@@ -200,7 +223,7 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
200
223
|
{
|
|
201
224
|
key: "directo",
|
|
202
225
|
width: "12%",
|
|
203
|
-
condition: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip,
|
|
226
|
+
condition: (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) === true,
|
|
204
227
|
render: (React.createElement(DirectoBlock, { translation: translation, getAnimationIcon: getAnimationIcon, colors: colors, isSoldOut: isSoldOut })),
|
|
205
228
|
},
|
|
206
229
|
{
|
|
@@ -213,31 +236,21 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
213
236
|
{
|
|
214
237
|
key: "flexible",
|
|
215
238
|
width: "20%",
|
|
216
|
-
condition: serviceItem.is_change_ticket,
|
|
239
|
+
condition: serviceItem.is_change_ticket === true,
|
|
217
240
|
render: (React.createElement(FlexibleBlock, { translation: translation, getAnimationIcon: getAnimationIcon, colors: colors, serviceItem: serviceItem, isSoldOut: isSoldOut })),
|
|
218
241
|
},
|
|
219
242
|
];
|
|
220
243
|
const otherItems = items.filter((i) => i.key !== "pet" && i.key !== "flexible" && !!i.condition);
|
|
221
|
-
return (React.createElement(React.Fragment, null, isPeruSites ? (React.createElement(PeruServiceItemDesktop, { serviceItem: serviceItem, onBookButtonPress: onBookButtonPress, colors: colors, metaData: metaData, children: children, busStage: busStage, serviceDetailsLoading: serviceDetailsLoading, cityOrigin: cityOrigin, cityDestination: cityDestination, translation: translation, orignLabel: orignLabel, destinationLabel: destinationLabel, currencySign: currencySign, isCiva: isCiva, showRating: showRating, showLastSeats: showLastSeats, removeArrivalTime: removeArrivalTime, removeDuplicateSeats: removeDuplicateSeats, isPeruSites: isPeruSites, t: (key) => t(key), showAvailableSeats: showAvailableSeats, isSeatIcon: isSeatIcon, isPeru: isPeru, siteType: siteType, isAllinBus: isAllinBus })) : (React.createElement("div", {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
React.createElement("div", { id: `service-card-${serviceItem.id}`, className: "bg-white mx-auto relative ", style: {
|
|
232
|
-
border: countdownSeconds > 0
|
|
233
|
-
? `1px solid ${colors.priceColor}`
|
|
234
|
-
: "1px solid #ccc",
|
|
235
|
-
borderRadius: showTopLabel
|
|
236
|
-
? "10px 0 10px 10px"
|
|
237
|
-
: countdownSeconds > 0
|
|
238
|
-
? "10px 0 10px 10px"
|
|
239
|
-
: "10px",
|
|
240
|
-
} },
|
|
244
|
+
return (React.createElement(React.Fragment, null, isPeruSites ? (React.createElement(PeruServiceItemDesktop, { serviceItem: serviceItem, onBookButtonPress: onBookButtonPress, colors: colors, metaData: metaData, children: children, busStage: busStage, serviceDetailsLoading: serviceDetailsLoading, cityOrigin: cityOrigin, cityDestination: cityDestination, translation: translation, orignLabel: orignLabel, destinationLabel: destinationLabel, currencySign: currencySign, isCiva: isCiva, showRating: showRating, showLastSeats: showLastSeats, removeArrivalTime: removeArrivalTime, removeDuplicateSeats: removeDuplicateSeats, isPeruSites: isPeruSites, t: (key) => t(key), showAvailableSeats: showAvailableSeats, isSeatIcon: isSeatIcon, isPeru: isPeru, siteType: siteType, isAllinBus: isAllinBus })) : (React.createElement("div", {
|
|
245
|
+
// className={`relative ${
|
|
246
|
+
// serviceItem.offer_text ? "mb-[55px]" : "mb-[10px]"
|
|
247
|
+
// } mt-[14px]`}
|
|
248
|
+
className: `relative ${serviceItem.offer_text ? "mb-[55px]" : "mb-[10px]"} ${(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ||
|
|
249
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" ||
|
|
250
|
+
showTopLabel
|
|
251
|
+
? "mt-[24px]"
|
|
252
|
+
: "mt-[20px]"} ` },
|
|
253
|
+
React.createElement("div", { id: `service-card-${serviceItem.id}`, className: "bg-white mx-auto relative rounded-[10px] border border-[#ccc]" },
|
|
241
254
|
React.createElement("div", {
|
|
242
255
|
// className="p-[15px] pt-[20px]"
|
|
243
256
|
className: " pt-[20px]", style: {
|
|
@@ -293,7 +306,47 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
293
306
|
backgroundColor: colors === null || colors === void 0 ? void 0 : colors.bottomStripColor,
|
|
294
307
|
opacity: isSoldOut ? 0.5 : 1,
|
|
295
308
|
} },
|
|
296
|
-
React.createElement(
|
|
297
|
-
|
|
309
|
+
React.createElement("div", { className: "flex justify-between items-center w-full" },
|
|
310
|
+
React.createElement("div", { className: "flex items-center" },
|
|
311
|
+
React.createElement(LottiePlayer, { animationData: getAnimationIcon("bombAnimation"), width: "18px", height: "18px" }),
|
|
312
|
+
React.createElement("span", { className: "bold-text ml-[8px]" },
|
|
313
|
+
" ",
|
|
314
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || "")),
|
|
315
|
+
React.createElement("div", null,
|
|
316
|
+
"Termina en\u00A0",
|
|
317
|
+
React.createElement("span", { className: "bold-text text-end", ref: startCountdown, style: {
|
|
318
|
+
fontVariantNumeric: "tabular-nums",
|
|
319
|
+
display: "inline-block",
|
|
320
|
+
// minWidth: "70px",
|
|
321
|
+
} }))))),
|
|
322
|
+
React.createElement("div", { className: "absolute -top-[11px] left-0 w-full flex items-center justify-end gap-[12px] pr-[15px] z-10 " },
|
|
323
|
+
showTopLabel && (React.createElement("div", { className: `flex items-center gap-[10px] py-[4px] px-[14px] rounded-[38px] text-[12.5px] z-10`, style: {
|
|
324
|
+
backgroundColor: isSoldOut
|
|
325
|
+
? "#ddd"
|
|
326
|
+
: colors.ratingBottomColor,
|
|
327
|
+
} },
|
|
328
|
+
React.createElement("div", { className: isSoldOut ? "grayscale" : "" },
|
|
329
|
+
React.createElement(LottiePlayer
|
|
330
|
+
// animationData={serviceItem.icons.priorityStageAnim}
|
|
331
|
+
, {
|
|
332
|
+
// animationData={serviceItem.icons.priorityStageAnim}
|
|
333
|
+
animationData: getAnimationIcon("priorityStageAnim"), width: "14px", height: "14px" })),
|
|
334
|
+
React.createElement("div", { className: isSoldOut ? "text-white" : `text-[${colors.topLabelColor}]` }, showTopLabel))),
|
|
335
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_transpordo) && (React.createElement("div", { className: `flex items-center gap-[10px] py-[4px] text-white px-[14px] rounded-[38px] text-[12.5px] z-20`, style: {
|
|
336
|
+
backgroundColor: isSoldOut ? "#ddd" : colors.tooltipColor,
|
|
337
|
+
} },
|
|
338
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.connectingServiceIcon,
|
|
339
|
+
// animationData={getAnimationIcon(connectingServiceIcon)}
|
|
340
|
+
width: "14px", height: "14px" }),
|
|
341
|
+
React.createElement("div", null, "Conexión"))),
|
|
342
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" && (React.createElement("div", { className: `flex items-center gap-[10px] py-[4px] text-white px-[14px] rounded-[38px] text-[12.5px] z-20 `, style: {
|
|
343
|
+
backgroundColor: isSoldOut ? "#ddd" : colors.tooltipColor,
|
|
344
|
+
} },
|
|
345
|
+
React.createElement(LottiePlayer
|
|
346
|
+
// animationData={serviceItem.icons.directoAnim}
|
|
347
|
+
, {
|
|
348
|
+
// animationData={serviceItem.icons.directoAnim}
|
|
349
|
+
animationData: getAnimationIcon("directoAnim"), width: "14px", height: "14px" }),
|
|
350
|
+
React.createElement("div", null, "Tren Express"))))))));
|
|
298
351
|
}
|
|
299
352
|
export default ServiceItemPB;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import LottiePlayer from "../../assets/LottiePlayer";
|
|
3
3
|
import commonService from "../../utils/CommonService";
|
|
4
|
-
import TopAmenitieMobile from "../../ui/mobileweb/TopAmenitieMobile";
|
|
5
4
|
import BottomAmenitiesMobile from "../../ui/mobileweb/BottomAmenitiesMobile";
|
|
6
5
|
import DateTimeSectionMobile from "../../ui/mobileweb/DateTimeSectionMobile";
|
|
7
6
|
import ExpandedDropdownMobile from "../../ui/mobileweb/ExpandedDropdownMobile";
|
|
@@ -24,6 +23,30 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
24
23
|
let isSoldOut = serviceItem.available_seats <= 0;
|
|
25
24
|
const showPromo = Math.random() > 0.5;
|
|
26
25
|
const countdownSeconds = 7830;
|
|
26
|
+
const startCountdown = (node) => {
|
|
27
|
+
if (!node)
|
|
28
|
+
return;
|
|
29
|
+
const prevId = node.dataset.countdownId;
|
|
30
|
+
if (prevId)
|
|
31
|
+
clearInterval(Number(prevId));
|
|
32
|
+
let remaining = countdownSeconds;
|
|
33
|
+
const formatTime = (totalSecs) => {
|
|
34
|
+
const h = Math.floor(totalSecs / 3600);
|
|
35
|
+
const m = Math.floor((totalSecs % 3600) / 60);
|
|
36
|
+
const s = totalSecs % 60;
|
|
37
|
+
return `${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
|
38
|
+
};
|
|
39
|
+
node.textContent = formatTime(remaining);
|
|
40
|
+
const id = setInterval(() => {
|
|
41
|
+
remaining -= 1;
|
|
42
|
+
if (remaining <= 0) {
|
|
43
|
+
remaining = 0;
|
|
44
|
+
clearInterval(id);
|
|
45
|
+
}
|
|
46
|
+
node.textContent = formatTime(remaining);
|
|
47
|
+
}, 1000);
|
|
48
|
+
node.dataset.countdownId = String(id);
|
|
49
|
+
};
|
|
27
50
|
const labelId = typeof serviceItem.boarding_stages === "string"
|
|
28
51
|
? serviceItem.boarding_stages.split("|")[0]
|
|
29
52
|
: "";
|
|
@@ -75,34 +98,16 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
75
98
|
isConexion ||
|
|
76
99
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" ||
|
|
77
100
|
showTopLabel
|
|
78
|
-
? "mt-[
|
|
101
|
+
? "mt-[20px]"
|
|
79
102
|
: "mt-[10px]"} `, style: { backgroundColor: "#fff", zIndex: 1 } },
|
|
80
|
-
React.createElement(TopAmenitieMobile, { showTopLabel: showTopLabel, isSoldOut: isSoldOut, seatPriceColor: colors.seatPriceColor, bombAnim: serviceItem.icons.bombAnim, priorityStageAnim: serviceItem.icons.priorityStageAnim, countdownSeconds: countdownSeconds, onCountdownEnd: () => {
|
|
81
|
-
const cardEl = document.getElementById(`service-card-${serviceItem.id}`);
|
|
82
|
-
if (!cardEl)
|
|
83
|
-
return;
|
|
84
|
-
cardEl.style.border = "1px solid #ccc";
|
|
85
|
-
if (!showTopLabel) {
|
|
86
|
-
cardEl.style.borderRadius = "10px";
|
|
87
|
-
}
|
|
88
|
-
} }),
|
|
89
103
|
React.createElement("div", { className: " rounded-[20px]", style: {
|
|
90
104
|
backgroundColor: "#fff",
|
|
91
105
|
zIndex: 1,
|
|
92
106
|
// borderRadius: showTopLabel ? "10px 0 10px 10px" : "10px",
|
|
93
|
-
borderRadius: "12px
|
|
94
|
-
border:
|
|
107
|
+
borderRadius: "12px",
|
|
108
|
+
border: "1px solid #ccc",
|
|
95
109
|
} },
|
|
96
|
-
React.createElement("div", {
|
|
97
|
-
// className={` ${
|
|
98
|
-
// serviceItem?.train_type_label === "Tren Express (Nuevo)" ||
|
|
99
|
-
// showTopLabel ||
|
|
100
|
-
// serviceItem?.is_direct_trip ||
|
|
101
|
-
// serviceItem?.is_transpordo
|
|
102
|
-
// ? "mt-[10px]"
|
|
103
|
-
// : ""
|
|
104
|
-
// }`}
|
|
105
|
-
style: { padding: "12px 12px 8px 12px" } },
|
|
110
|
+
React.createElement("div", { style: { padding: "12px 12px 8px 12px" } },
|
|
106
111
|
React.createElement("div", { className: "flex justify-between items-center mb-[10px]" },
|
|
107
112
|
React.createElement("div", { className: "flex items-center justify-between" },
|
|
108
113
|
React.createElement("div", { className: "w-[120px] overflow-y-hidden" },
|
|
@@ -113,7 +118,7 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
113
118
|
React.createElement("img", { src: serviceItem.icons.rating, alt: "origin", className: `w-[12px] h-[12px] mr-[4px] object-contain ${isSoldOut ? "grayscale" : ""}` }),
|
|
114
119
|
React.createElement("span", { style: { lineHeight: "normal" } }, getServiceStars(serviceItem))),
|
|
115
120
|
React.createElement("div", { className: "flex items-center cursor-pointer ", style: { color: isSoldOut ? "#bbb" : "text-[#464647]" } },
|
|
116
|
-
React.createElement("span", { className: "ml-[3px] min-[420]:text-[13px] text-[12px]" }, serviceItem.operator_details[2]))))) : null),
|
|
121
|
+
React.createElement("span", { className: "ml-[3px] min-[420]:text-[13px] text-[12px] text-ellipsis" }, serviceItem.operator_details[2]))))) : null),
|
|
117
122
|
showLastSeats ? (React.createElement("div", { className: "flex justify-end " }, (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) < 10 &&
|
|
118
123
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) > 0 && (React.createElement("div", { className: "text-[10px] text-[#464647] text-center" }, "\u00A1 \u00DAltimos Asientos!")))) : null),
|
|
119
124
|
React.createElement(DateTimeSectionMobile, { onBookButtonPress: onBookButtonPress, isCiva: isCiva, isSoldOut: isSoldOut, isLinatal: isLinatal, isPeru: isPeru, orignLabel: orignLabel, destinationLabel: destinationLabel, originIcon: (_a = serviceItem.icons) === null || _a === void 0 ? void 0 : _a.origin, destinationIcon: (_b = serviceItem.icons) === null || _b === void 0 ? void 0 : _b.destination, travelDate: serviceItem.travel_date, arrivalDate: serviceItem.arrival_date, depTime: serviceItem.dep_time, arrTime: serviceItem.arr_time, seatTypes: serviceItem.seat_types, seatPriceColor: colors.seatPriceColor, currencySign: currencySign, availableSeats: serviceItem.available_seats, removeDuplicateSeats: removeDuplicateSeats }),
|
|
@@ -136,9 +141,36 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
136
141
|
left: "0px",
|
|
137
142
|
opacity: isSoldOut ? 0.5 : 1,
|
|
138
143
|
} },
|
|
139
|
-
React.createElement(
|
|
140
|
-
|
|
141
|
-
|
|
144
|
+
React.createElement("div", { className: "flex justify-between items-center w-full" },
|
|
145
|
+
React.createElement("div", { className: "flex items-center" },
|
|
146
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.bombAnim, width: "18px", height: "18px" }),
|
|
147
|
+
React.createElement("span", { className: "bold-text ml-[8px]" },
|
|
148
|
+
" ",
|
|
149
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || "")),
|
|
150
|
+
React.createElement("div", null,
|
|
151
|
+
"Termina en\u00A0",
|
|
152
|
+
React.createElement("span", { className: "bold-text text-end", ref: startCountdown, style: {
|
|
153
|
+
fontVariantNumeric: "tabular-nums",
|
|
154
|
+
display: "inline-block",
|
|
155
|
+
// minWidth: "70px",
|
|
156
|
+
} }))))),
|
|
157
|
+
React.createElement("div", { className: "absolute -top-[14px] left-0 w-full flex items-center justify-end gap-[12px] pr-[13px] z-10 " },
|
|
158
|
+
showTopLabel && (React.createElement("div", { className: `flex items-center gap-[2px] py-[4px] px-[10px] rounded-[38px] min-[420]:text-[12px] text-[10px] z-20 `, style: {
|
|
159
|
+
backgroundColor: isSoldOut ? "#ccc" : colors.ratingBottomColor,
|
|
160
|
+
} },
|
|
161
|
+
React.createElement("div", { className: isSoldOut ? "grayscale" : "" },
|
|
162
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.priorityStageAnim, width: "18px", height: "18px" })),
|
|
163
|
+
React.createElement("div", { className: isSoldOut ? "text-[#bbb]" : `text-[${colors.topLabelColor}]` }, showTopLabel))),
|
|
164
|
+
isConexion && (React.createElement("div", { className: `flex items-center gap-[2px] py-[5px] text-white px-[10px] rounded-[38px] min-[420]:text-[12px] text-[11px] z-20 ${isSoldOut ? "text-white" : `text-[${colors.topLabelColor}]`}`, style: {
|
|
165
|
+
backgroundColor: !isSoldOut && colors.ratingBottomColor,
|
|
166
|
+
} },
|
|
167
|
+
renderIcon("airportIcon", "14px"),
|
|
168
|
+
React.createElement("div", null, "Conexi\u00F3n"))),
|
|
169
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" && (React.createElement("div", { className: `flex items-center gap-[2px] py-[5px] text-white px-[10px] rounded-[38px] min-[420]:text-[12px] text-[10px] z-20 `, style: {
|
|
170
|
+
backgroundColor: isSoldOut ? "#ddd" : colors.tooltipColor,
|
|
171
|
+
} },
|
|
172
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.directoAnim, width: "20px", height: "20px" }),
|
|
173
|
+
React.createElement("div", null, "Tren Express"))))),
|
|
142
174
|
React.createElement("div", { style: {
|
|
143
175
|
display: "grid",
|
|
144
176
|
gridTemplateRows: isItemExpanded ? "1fr" : "0fr",
|
package/dist/styles.css
CHANGED
|
@@ -126,9 +126,6 @@
|
|
|
126
126
|
.mx-auto {
|
|
127
127
|
margin-inline: auto;
|
|
128
128
|
}
|
|
129
|
-
.-mt-\[5px\] {
|
|
130
|
-
margin-top: calc(5px * -1);
|
|
131
|
-
}
|
|
132
129
|
.-mt-\[16px\] {
|
|
133
130
|
margin-top: calc(16px * -1);
|
|
134
131
|
}
|
|
@@ -180,9 +177,6 @@
|
|
|
180
177
|
.mr-\[11px\] {
|
|
181
178
|
margin-right: 11px;
|
|
182
179
|
}
|
|
183
|
-
.-mb-\[5px\] {
|
|
184
|
-
margin-bottom: calc(5px * -1);
|
|
185
|
-
}
|
|
186
180
|
.mb-\[2px\] {
|
|
187
181
|
margin-bottom: 2px;
|
|
188
182
|
}
|
|
@@ -225,6 +219,9 @@
|
|
|
225
219
|
.ml-\[5px\] {
|
|
226
220
|
margin-left: 5px;
|
|
227
221
|
}
|
|
222
|
+
.ml-\[8px\] {
|
|
223
|
+
margin-left: 8px;
|
|
224
|
+
}
|
|
228
225
|
.ml-\[10px\] {
|
|
229
226
|
margin-left: 10px;
|
|
230
227
|
}
|
|
@@ -656,9 +653,6 @@
|
|
|
656
653
|
.pt-\[4px\] {
|
|
657
654
|
padding-top: 4px;
|
|
658
655
|
}
|
|
659
|
-
.pt-\[5px\] {
|
|
660
|
-
padding-top: 5px;
|
|
661
|
-
}
|
|
662
656
|
.pt-\[6px\] {
|
|
663
657
|
padding-top: 6px;
|
|
664
658
|
}
|
|
@@ -680,15 +674,12 @@
|
|
|
680
674
|
.pt-\[50px\] {
|
|
681
675
|
padding-top: 50px;
|
|
682
676
|
}
|
|
677
|
+
.pr-\[13px\] {
|
|
678
|
+
padding-right: 13px;
|
|
679
|
+
}
|
|
683
680
|
.pr-\[15px\] {
|
|
684
681
|
padding-right: 15px;
|
|
685
682
|
}
|
|
686
|
-
.pr-\[20px\] {
|
|
687
|
-
padding-right: 20px;
|
|
688
|
-
}
|
|
689
|
-
.pb-\[5px\] {
|
|
690
|
-
padding-bottom: 5px;
|
|
691
|
-
}
|
|
692
683
|
.pb-\[7px\] {
|
|
693
684
|
padding-bottom: 7px;
|
|
694
685
|
}
|
|
@@ -704,12 +695,12 @@
|
|
|
704
695
|
.pl-\[6px\] {
|
|
705
696
|
padding-left: 6px;
|
|
706
697
|
}
|
|
707
|
-
.pl-\[15px\] {
|
|
708
|
-
padding-left: 15px;
|
|
709
|
-
}
|
|
710
698
|
.text-center {
|
|
711
699
|
text-align: center;
|
|
712
700
|
}
|
|
701
|
+
.text-end {
|
|
702
|
+
text-align: end;
|
|
703
|
+
}
|
|
713
704
|
.text-justify {
|
|
714
705
|
text-align: justify;
|
|
715
706
|
}
|
|
@@ -44,29 +44,30 @@ const AmenitiesBlock = ({ serviceItem, metaData, isSoldOut, colors, isPeru, getA
|
|
|
44
44
|
});
|
|
45
45
|
const shouldShowPlus = plusAmenities.length > 0;
|
|
46
46
|
const grayscaleClass = isSoldOut ? "grayscale" : "";
|
|
47
|
-
return (React.createElement("div", { className: "flex items-center gap-[6px]" },
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
React.createElement("div", {
|
|
54
|
-
React.createElement(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
47
|
+
return (React.createElement("div", { className: "relative flex items-center gap-[6px] group cursor-pointer" },
|
|
48
|
+
visibleAmenities.map((val, key) => {
|
|
49
|
+
const raw = metaData.amenities[val];
|
|
50
|
+
if (isWater(raw))
|
|
51
|
+
return null;
|
|
52
|
+
const baseName = getAmenityBaseName(raw);
|
|
53
|
+
return (React.createElement("div", { key: key },
|
|
54
|
+
React.createElement("div", { className: grayscaleClass },
|
|
55
|
+
React.createElement(SvgAmenities, { moreAnemities: false, name: baseName.toLowerCase() }))));
|
|
56
|
+
}),
|
|
57
|
+
React.createElement("div", { className: TOOLTIP_CLASS, style: {
|
|
58
|
+
backgroundColor: colors.bottomStripColor,
|
|
59
|
+
zIndex: 21,
|
|
60
|
+
padding: "12px",
|
|
61
|
+
} },
|
|
62
|
+
React.createElement(TooltipArrow, { color: colors.tooltipColor }),
|
|
63
|
+
React.createElement("div", { className: "flex flex-col gap-[10px]" }, amenities.map((id, i) => {
|
|
64
|
+
const rawItem = metaData.amenities[id];
|
|
65
|
+
if (isWater(rawItem))
|
|
66
|
+
return null;
|
|
67
|
+
const name = getAmenityBaseName(rawItem);
|
|
68
|
+
return (React.createElement("div", { key: i, className: "flex items-center gap-[5px] text-xs whitespace-nowrap" },
|
|
69
|
+
React.createElement(SvgAmenities, { moreAnemities: true, name: name.toUpperCase(), color: "white" }),
|
|
70
|
+
getAmenityName(name.split("_").join(" "))));
|
|
71
|
+
})))));
|
|
71
72
|
};
|
|
72
73
|
export default AmenitiesBlock;
|
|
@@ -50,9 +50,9 @@ function DateTimeSection({ serviceItem, isSoldOut, isCiva, isLinatal, removeArri
|
|
|
50
50
|
DateService.ampmOnly(serviceItem.dep_time))) : (DateService.formatTime(serviceItem.dep_time)))),
|
|
51
51
|
!isCiva && (React.createElement(StageTooltip, { stageData: serviceItem.dropoff_stages, direction: 2, terminals: busStage, serviceItem: serviceItem, metaData: metaData, colors: colors },
|
|
52
52
|
React.createElement("div", { className: "font-[900] bold-text" }, removeArrivalTime
|
|
53
|
-
?
|
|
53
|
+
? "\u00A0"
|
|
54
54
|
: serviceItem.arr_time
|
|
55
55
|
? DateService.formatTime(serviceItem.arr_time)
|
|
56
|
-
:
|
|
56
|
+
: "\u00A0"))))));
|
|
57
57
|
}
|
|
58
58
|
export default DateTimeSection;
|
package/dist/ui/DirectoBlock.js
CHANGED
|
@@ -5,7 +5,7 @@ const DirectoBlock = ({ translation, isSoldOut, colors, getAnimationIcon }) => (
|
|
|
5
5
|
React.createElement(LottiePlayer, { animationData: getAnimationIcon("directoAnim"), width: "14px", height: "14px" })),
|
|
6
6
|
React.createElement("div", { className: "group text-[13.33px] cursor-pointer" }, translation === null || translation === void 0 ? void 0 :
|
|
7
7
|
translation.directService,
|
|
8
|
-
React.createElement("div", { className: "hidden group-hover:block absolute top-[24px] left-1/2 -translate-x-1/2 text-white p-3 rounded-[14px] whitespace-nowrap w-fit z-10 mt-2.5 text-center shadow-service text-[12px]", style: { backgroundColor: colors.
|
|
9
|
-
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent", style: { borderBottomColor: colors.
|
|
8
|
+
React.createElement("div", { className: "hidden group-hover:block absolute top-[24px] left-1/2 -translate-x-1/2 text-white p-3 rounded-[14px] whitespace-nowrap w-fit z-10 mt-2.5 text-center shadow-service text-[12px]", style: { backgroundColor: colors.bottomStripColor } },
|
|
9
|
+
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent", style: { borderBottomColor: colors.bottomStripColor } }), translation === null || translation === void 0 ? void 0 :
|
|
10
10
|
translation.directServiceText))));
|
|
11
11
|
export default DirectoBlock;
|
package/dist/ui/DurationBlock.js
CHANGED
|
@@ -5,7 +5,7 @@ const DurationBlock = ({ serviceItem, translation, renderIcon, isSoldOut, colors
|
|
|
5
5
|
serviceItem.duration,
|
|
6
6
|
" ",
|
|
7
7
|
translation.hours,
|
|
8
|
-
React.createElement("div", { className: "hidden group-hover:block absolute top-[24px] left-1/2 -translate-x-1/2 text-white p-3 rounded-[14px] whitespace-normal z-10 mt-2.5 w-[188px] text-center break-normal shadow-service text-[12px]", style: { backgroundColor: colors.
|
|
9
|
-
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent", style: { borderBottomColor: colors.
|
|
8
|
+
React.createElement("div", { className: "hidden group-hover:block absolute top-[24px] left-1/2 -translate-x-1/2 text-white p-3 rounded-[14px] whitespace-normal z-10 mt-2.5 w-[188px] text-center break-normal shadow-service text-[12px]", style: { backgroundColor: colors.bottomStripColor } },
|
|
9
|
+
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent", style: { borderBottomColor: colors.bottomStripColor } }),
|
|
10
10
|
"Duraci\u00F3n estimada del viaje"))));
|
|
11
11
|
export default DurationBlock;
|
package/dist/ui/FlexibleBlock.js
CHANGED
|
@@ -12,10 +12,11 @@ const FlexibleBlock = ({ translation, getAnimationIcon, colors, serviceItem, isS
|
|
|
12
12
|
// animationData={serviceItem.icons.flexibleAnim}
|
|
13
13
|
animationData: getAnimationIcon("flexibleIcon"), width: "20px", height: "20px" }))),
|
|
14
14
|
React.createElement("div", { className: "hidden group-hover:block absolute top-[24px] left-1/2 -translate-x-1/2 text-white p-3 rounded-[14px] whitespace-normal z-10 mt-2.5 w-[230px] text-center break-normal shadow-service text-[12px]", style: {
|
|
15
|
-
backgroundColor: colors.
|
|
15
|
+
backgroundColor: colors.bottomStripColor,
|
|
16
16
|
lineHeight: "1.5",
|
|
17
|
+
zIndex: "1000",
|
|
17
18
|
} },
|
|
18
|
-
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent ", style: { borderBottomColor: colors.
|
|
19
|
+
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent ", style: { borderBottomColor: colors.bottomStripColor } }),
|
|
19
20
|
"Esta empresa permite cambios sin costo hasta (", (_a = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.change_ticket_hours) !== null && _a !== void 0 ? _a : 6,
|
|
20
21
|
") horas antes del viaje."))));
|
|
21
22
|
};
|
package/dist/ui/RatingBlock.js
CHANGED
|
@@ -7,7 +7,7 @@ const RatingBlock = ({ showRating, serviceItem, isSoldOut, colors, t, translatio
|
|
|
7
7
|
color: isSoldOut ? "#c0c0c0" : "#464647",
|
|
8
8
|
} },
|
|
9
9
|
React.createElement("span", { className: "block max-w-[120px] overflow-hidden text-ellipsis whitespace-nowrap cursor-pointer" }, serviceItem.operator_details[2]),
|
|
10
|
-
React.createElement("div", { className: "hidden group-hover:block absolute top-[24px] left-1/2 -translate-x-1/2 text-white p-3 rounded-[14px] whitespace-nowrap z-10 mt-2.5 w-max text-center shadow-service text-[12px]", style: { backgroundColor: colors.
|
|
11
|
-
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent ", style: { borderBottomColor: colors.
|
|
10
|
+
React.createElement("div", { className: "hidden group-hover:block absolute top-[24px] left-1/2 -translate-x-1/2 text-white p-3 rounded-[14px] whitespace-nowrap z-10 mt-2.5 w-max text-center shadow-service text-[12px]", style: { backgroundColor: colors.bottomStripColor, zIndex: "300" } },
|
|
11
|
+
React.createElement("div", { className: "tooltip-arrow absolute -top-[7px] left-1/2 -translate-x-1/2 w-0 h-0 border-l-8 border-r-8 border-b-8 border-l-transparent border-r-transparent ", style: { borderBottomColor: colors.bottomStripColor } }),
|
|
12
12
|
serviceItem.operator_details[2]))));
|
|
13
13
|
export default RatingBlock;
|
|
@@ -10,6 +10,7 @@ interface TopAmenitiesProps {
|
|
|
10
10
|
countdownSeconds?: number;
|
|
11
11
|
promoText?: string;
|
|
12
12
|
onCountdownEnd?: () => void;
|
|
13
|
+
offerText?: string;
|
|
13
14
|
}
|
|
14
|
-
declare function TopAmenities({ showPromo, showTopLabel, isSoldOut, priceColor, buttonColor, boardingIcon, getAnimationIcon, countdownSeconds, onCountdownEnd, }: TopAmenitiesProps): React.ReactElement;
|
|
15
|
+
declare function TopAmenities({ showPromo, showTopLabel, isSoldOut, priceColor, buttonColor, boardingIcon, getAnimationIcon, countdownSeconds, onCountdownEnd, offerText, }: TopAmenitiesProps): React.ReactElement;
|
|
15
16
|
export default TopAmenities;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import LottiePlayer from "../../assets/LottiePlayer";
|
|
3
|
-
function TopAmenities({ showPromo, showTopLabel, isSoldOut, priceColor, buttonColor, boardingIcon, getAnimationIcon, countdownSeconds = 0, onCountdownEnd, }) {
|
|
3
|
+
function TopAmenities({ showPromo, showTopLabel, isSoldOut, priceColor, buttonColor, boardingIcon, getAnimationIcon, countdownSeconds = 0, onCountdownEnd, offerText, }) {
|
|
4
4
|
const pad = (n) => String(n).padStart(2, "0");
|
|
5
5
|
const startCountdown = (el) => {
|
|
6
6
|
if (!el || el.dataset.timerStarted)
|
|
@@ -34,7 +34,7 @@ function TopAmenities({ showPromo, showTopLabel, isSoldOut, priceColor, buttonCo
|
|
|
34
34
|
position: "relative",
|
|
35
35
|
zIndex: "-1",
|
|
36
36
|
} },
|
|
37
|
-
React.createElement("div", { "data-promo-bar": true, style: {
|
|
37
|
+
offerText && (React.createElement("div", { "data-promo-bar": true, style: {
|
|
38
38
|
backgroundColor: priceColor,
|
|
39
39
|
position: "relative",
|
|
40
40
|
right: showTopLabel ? "-21px" : "",
|
|
@@ -45,13 +45,15 @@ function TopAmenities({ showPromo, showTopLabel, isSoldOut, priceColor, buttonCo
|
|
|
45
45
|
React.createElement("div", { style: { display: "flex", alignItems: "center" } },
|
|
46
46
|
React.createElement(LottiePlayer, { animationData: getAnimationIcon("bombAnimation"), width: "20px", height: "20px" }),
|
|
47
47
|
React.createElement("span", { className: "flex items-center py-[10px] pl-[6px] text-white text-[13.33px] z-20", style: { paddingRight: showTopLabel ? "18px" : "" } },
|
|
48
|
-
React.createElement("span", { className: "bold-text" },
|
|
48
|
+
React.createElement("span", { className: "bold-text" },
|
|
49
|
+
offerText,
|
|
50
|
+
"\u00A0"),
|
|
49
51
|
" | Termina en\u00A0",
|
|
50
52
|
React.createElement("span", { className: "bold-text", ref: startCountdown, style: {
|
|
51
53
|
fontVariantNumeric: "tabular-nums",
|
|
52
54
|
display: "inline-block",
|
|
53
55
|
minWidth: "70px",
|
|
54
|
-
} })))),
|
|
56
|
+
} }))))),
|
|
55
57
|
showTopLabel && (React.createElement("div", { className: "flex items-center py-[10px] px-[14px] text-[13.33px] z-20", style: {
|
|
56
58
|
backgroundColor: isSoldOut ? "#ddd" : buttonColor,
|
|
57
59
|
borderTopRightRadius: "10px",
|
|
@@ -8,6 +8,7 @@ interface TopAmenitieMobileProps {
|
|
|
8
8
|
countdownSeconds?: number;
|
|
9
9
|
promoText?: string;
|
|
10
10
|
onCountdownEnd?: () => void;
|
|
11
|
+
offerText?: string;
|
|
11
12
|
}
|
|
12
|
-
declare function TopAmenitieMobile({ showTopLabel, isSoldOut, seatPriceColor, bombAnim, priorityStageAnim, countdownSeconds, onCountdownEnd, }: TopAmenitieMobileProps): React.ReactElement;
|
|
13
|
+
declare function TopAmenitieMobile({ showTopLabel, isSoldOut, seatPriceColor, bombAnim, priorityStageAnim, countdownSeconds, onCountdownEnd, offerText, }: TopAmenitieMobileProps): React.ReactElement;
|
|
13
14
|
export default TopAmenitieMobile;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import LottiePlayer from "../../assets/LottiePlayer";
|
|
3
|
-
function TopAmenitieMobile({ showTopLabel, isSoldOut, seatPriceColor, bombAnim, priorityStageAnim, countdownSeconds = 0, onCountdownEnd, }) {
|
|
3
|
+
function TopAmenitieMobile({ showTopLabel, isSoldOut, seatPriceColor, bombAnim, priorityStageAnim, countdownSeconds = 0, onCountdownEnd, offerText, }) {
|
|
4
4
|
const pad = (n) => String(n).padStart(2, "0");
|
|
5
5
|
const startCountdown = (el) => {
|
|
6
6
|
if (!el || el.dataset.timerStarted)
|
|
@@ -34,7 +34,7 @@ function TopAmenitieMobile({ showTopLabel, isSoldOut, seatPriceColor, bombAnim,
|
|
|
34
34
|
position: "relative",
|
|
35
35
|
zIndex: "-1",
|
|
36
36
|
} },
|
|
37
|
-
React.createElement("div", { style: {
|
|
37
|
+
offerText && (React.createElement("div", { style: {
|
|
38
38
|
backgroundColor: seatPriceColor,
|
|
39
39
|
position: "relative",
|
|
40
40
|
right: showTopLabel ? "-21px" : "",
|
|
@@ -45,14 +45,14 @@ function TopAmenitieMobile({ showTopLabel, isSoldOut, seatPriceColor, bombAnim,
|
|
|
45
45
|
React.createElement("div", { style: { display: "flex", alignItems: "center", color: "#fff" } },
|
|
46
46
|
React.createElement(LottiePlayer, { animationData: bombAnim, width: "16px", height: "16px" }),
|
|
47
47
|
React.createElement("span", { className: "flex items-center gap-[5px] py-[6px] pl-[6px] text-[12px] z-20", style: { paddingRight: showTopLabel ? "20px" : "0" } },
|
|
48
|
-
React.createElement("span", { className: "bold-text" },
|
|
48
|
+
React.createElement("span", { className: "bold-text" }, offerText),
|
|
49
49
|
" |",
|
|
50
50
|
" ",
|
|
51
51
|
React.createElement("span", { ref: startCountdown, style: {
|
|
52
52
|
fontVariantNumeric: "tabular-nums",
|
|
53
53
|
display: "inline-block",
|
|
54
54
|
minWidth: "50px",
|
|
55
|
-
} })))),
|
|
55
|
+
} }))))),
|
|
56
56
|
showTopLabel && (React.createElement("div", { className: `flex items-center gap-[5px] py-[6px] px-[10px] text-[12px] z-20`, style: {
|
|
57
57
|
backgroundColor: isSoldOut ? "#ddd" : "#ff8f45",
|
|
58
58
|
borderTopRightRadius: "12px",
|