kupos-ui-components-lib 9.9.2 → 9.9.4
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/KuposUIComponent.d.ts +0 -3
- package/dist/components/ServiceItem/PeruServiceItemDesktop.d.ts +1 -1
- package/dist/components/ServiceItem/PeruServiceItemDesktop.js +2 -2
- package/dist/components/ServiceItem/ServiceItemDesktop.d.ts +1 -1
- package/dist/components/ServiceItem/ServiceItemDesktop.js +31 -30
- package/dist/components/ServiceItem/ServiceItemMobile.d.ts +1 -1
- package/dist/components/ServiceItem/ServiceItemMobile.js +17 -43
- package/dist/components/ServiceItem/mobileTypes.d.ts +2 -48
- package/dist/components/ServiceItem/types.d.ts +9 -27
- package/dist/styles.css +6 -215
- package/dist/ui/ExpendedDropDown/ExpandedDropdown.d.ts +2 -1
- package/dist/ui/ExpendedDropDown/ExpandedDropdown.js +5 -3
- package/dist/ui/OfferBanner.d.ts +0 -2
- package/dist/ui/OfferBanner.js +14 -19
- package/dist/ui/SeatSection/SeatSection.d.ts +7 -1
- package/dist/ui/SeatSection/SeatSection.js +41 -12
- package/dist/ui/mobileweb/DateTimeSectionMobile.d.ts +2 -1
- package/dist/ui/mobileweb/DateTimeSectionMobile.js +7 -5
- package/dist/ui/mobileweb/ExpandedDropdownMobile.js +1 -1
- package/dist/ui/mobileweb/SeatSectionMobile.d.ts +2 -1
- package/dist/ui/mobileweb/SeatSectionMobile.js +15 -10
- package/dist/utils/CommonService.d.ts +1 -4
- package/dist/utils/CommonService.js +6 -19
- package/package.json +1 -1
- package/src/KuposUIComponent.tsx +0 -3
- package/src/components/ServiceItem/PeruServiceItemDesktop.tsx +24 -35
- package/src/components/ServiceItem/ServiceItemDesktop.tsx +53 -65
- package/src/components/ServiceItem/ServiceItemMobile.tsx +290 -387
- package/src/components/ServiceItem/mobileTypes.ts +8 -50
- package/src/components/ServiceItem/types.ts +25 -39
- package/src/styles.css +0 -15
- package/src/ui/ExpendedDropDown/ExpandedDropdown.tsx +5 -3
- package/src/ui/OfferBanner.tsx +10 -31
- package/src/ui/SeatSection/SeatSection.tsx +86 -21
- package/src/ui/mobileweb/DateTimeSectionMobile.tsx +38 -33
- package/src/ui/mobileweb/ExpandedDropdownMobile.tsx +1 -1
- package/src/ui/mobileweb/SeatSectionMobile.tsx +12 -7
- package/src/utils/CommonService.ts +8 -27
- package/src/assets/images/anims/service_list/flame_anim.json +0 -1
- package/src/assets/images/anims/service_list/thunder_icon.json +0 -1
- package/src/assets/images/anims/service_list/users_anim.json +0 -1
- package/src/ui/FeaturServiceUiMobile/FeatureServiceUiMobile.tsx +0 -575
- package/src/ui/FeatureServiceUI/FeatureServiceUi.tsx +0 -610
|
@@ -15,9 +15,6 @@ interface KuposUIComponentProps {
|
|
|
15
15
|
orignLabel?: string;
|
|
16
16
|
destinationLabel?: string;
|
|
17
17
|
t?: (key: string) => string;
|
|
18
|
-
ticketQuantity?: number;
|
|
19
|
-
onIncreaseTicketQuantity?: (serviceItem: any) => void;
|
|
20
|
-
onDecreaseTicketQuantity?: (serviceItem: any) => void;
|
|
21
18
|
id?: string;
|
|
22
19
|
name?: string;
|
|
23
20
|
description?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ServiceItemProps } from "./types";
|
|
3
|
-
declare function PeruServiceItemDesktop({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isSeatIcon, showAvailableSeats, isPeru, siteType, isAllinBus,
|
|
3
|
+
declare function PeruServiceItemDesktop({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isSeatIcon, showAvailableSeats, isPeru, siteType, isAllinBus, isFlores, t, }: ServiceItemProps & {
|
|
4
4
|
currencySign?: string;
|
|
5
5
|
}): React.ReactElement;
|
|
6
6
|
export default PeruServiceItemDesktop;
|
|
@@ -35,7 +35,7 @@ import PetBlock from "../../ui/PetBlock";
|
|
|
35
35
|
import FlexibleBlock from "../../ui/FlexibleBlock";
|
|
36
36
|
import AmenitiesBlock from "../../ui/AmenitiesBlock";
|
|
37
37
|
const SEAT_EXCEPTIONS = ["Asiento mascota"];
|
|
38
|
-
function PeruServiceItemDesktop({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isSeatIcon, showAvailableSeats, isPeru, siteType, isAllinBus,
|
|
38
|
+
function PeruServiceItemDesktop({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isSeatIcon, showAvailableSeats, isPeru, siteType, isAllinBus, isFlores, t = (key) => key, }) {
|
|
39
39
|
var _a, _b, _c, _d;
|
|
40
40
|
const animationMap = {
|
|
41
41
|
promoAnim: {
|
|
@@ -355,7 +355,7 @@ function PeruServiceItemDesktop({ serviceItem, onBookButtonPress, colors, metaDa
|
|
|
355
355
|
React.createElement("div", { className: "grid text-[#464647] w-full [grid-template-columns:14%_40%_0.5%_24%_13.5%] gap-x-[2%] items-center", style: { marginTop: showTopLabel ? "8px" : "" } },
|
|
356
356
|
React.createElement("div", { className: "flex items-center justify-center m-[auto]" },
|
|
357
357
|
React.createElement("div", { className: " " },
|
|
358
|
-
React.createElement("img", { src: serviceItem.operator_details[0], alt: "service logo", className: `
|
|
358
|
+
React.createElement("img", { src: serviceItem.operator_details[0], alt: "service logo", className: `h-auto object-contain ${isFlores ? "w-[80%]" : "w-full"} ${isSoldOut ? "grayscale" : ""}` })),
|
|
359
359
|
isCiva ? (React.createElement("div", { className: "text-[13.33px] black-text ml-2" }, serviceItem.operator_details[2])) : null),
|
|
360
360
|
React.createElement("div", { className: `min-h-[2.5rem] grid grid-cols-[0.8fr_auto_26%_1fr] gap-x-4 items-center text-[13.33px] ${isSoldOut ? "text-[#c0c0c0]" : ""}`, style: {
|
|
361
361
|
gridTemplateRows: "1fr",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ServiceItemProps } from "./types";
|
|
3
|
-
declare function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isPeruSites, showAvailableSeats, isSeatIcon, isLinatal, isPeru, t, siteType, isAllinBus, isExpand, setIsExpand, coachKey, viewersConfig,
|
|
3
|
+
declare function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isPeruSites, showAvailableSeats, isSeatIcon, isLinatal, isPeru, t, siteType, isAllinBus, isExpand, setIsExpand, coachKey, viewersConfig, showLoginModal, isLoggedIn, showLoginOption, isTrain, selectedSeatKey, onSeatSelect, onTrainButtonClick, showSeatSelectionError, onShowSeatSelectionError, onClearSeatSelectionError, isFlores, operatorLabel, }: ServiceItemProps & {
|
|
4
4
|
currencySign?: string;
|
|
5
5
|
}): React.ReactElement;
|
|
6
6
|
export default ServiceItemPB;
|
|
@@ -23,8 +23,6 @@ import bombAnimation from "../../assets/images/anims/service_list/bomb.json";
|
|
|
23
23
|
import dotAnimation from "../../assets/images/anims/service_list/dot_animation.json";
|
|
24
24
|
import starAnimation from "../../assets/images/anims/service_list/star_anim.json";
|
|
25
25
|
import femaleAnimation from "../../assets/images/anims/service_list/female_anim.json";
|
|
26
|
-
import usersAnimation from "../../assets/images/anims/service_list/users_anim.json";
|
|
27
|
-
import flameAnimation from "../../assets/images/anims/service_list/flame_anim.json";
|
|
28
26
|
import RatingBlock from "../../ui/RatingBlock";
|
|
29
27
|
import DurationBlock from "../../ui/DurationBlock";
|
|
30
28
|
import PetBlock from "../../ui/PetBlock";
|
|
@@ -34,8 +32,6 @@ import KuposButton from "../../ui/KuposButton/KuposButton";
|
|
|
34
32
|
import BottomAmenities from "../../ui/BottomAmenities/BottomAmenities";
|
|
35
33
|
import SeatSection from "../../ui/SeatSection/SeatSection";
|
|
36
34
|
import DateTimeSection from "../../ui/DateTimeSection/DateTimeSection";
|
|
37
|
-
import FeatureServiceUi from "../../ui/FeatureServiceUI/FeatureServiceUi";
|
|
38
|
-
import thunderAnimation from "../../assets/images/anims/service_list/thunder_icon.json";
|
|
39
35
|
import ServiceBadges from "../../ui/ServiceBadges/ServiceBadges";
|
|
40
36
|
const SEAT_EXCEPTIONS = ["Asiento mascota"];
|
|
41
37
|
const ANIMATION_MAP = {
|
|
@@ -68,9 +64,6 @@ const ANIMATION_MAP = {
|
|
|
68
64
|
bombAnimation: {
|
|
69
65
|
kupos: bombAnimation,
|
|
70
66
|
},
|
|
71
|
-
thunderAnimation: {
|
|
72
|
-
kupos: thunderAnimation,
|
|
73
|
-
},
|
|
74
67
|
dotAnimation: {
|
|
75
68
|
kupos: dotAnimation,
|
|
76
69
|
},
|
|
@@ -80,15 +73,13 @@ const ANIMATION_MAP = {
|
|
|
80
73
|
femaaleAnimation: {
|
|
81
74
|
kupos: femaleAnimation,
|
|
82
75
|
},
|
|
83
|
-
usersAnimation: {
|
|
84
|
-
kupos: usersAnimation,
|
|
85
|
-
},
|
|
86
|
-
flameAnimation: {
|
|
87
|
-
kupos: flameAnimation,
|
|
88
|
-
},
|
|
89
76
|
};
|
|
90
|
-
function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isPeruSites, showAvailableSeats, isSeatIcon, isLinatal, isPeru, t = (key) => key, siteType, isAllinBus, isExpand, setIsExpand, coachKey, viewersConfig,
|
|
91
|
-
var _a
|
|
77
|
+
function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, currencySign, isCiva, showRating, showLastSeats, removeArrivalTime, removeDuplicateSeats, isPeruSites, showAvailableSeats, isSeatIcon, isLinatal, isPeru, t = (key) => key, siteType, isAllinBus, isExpand, setIsExpand, coachKey, viewersConfig, showLoginModal, isLoggedIn, showLoginOption, isTrain, selectedSeatKey, onSeatSelect, onTrainButtonClick, showSeatSelectionError, onShowSeatSelectionError, onClearSeatSelectionError, isFlores, operatorLabel, }) {
|
|
78
|
+
var _a;
|
|
79
|
+
const handleSeatSelect = (key, price, seatKey, apiSeatType) => {
|
|
80
|
+
onClearSeatSelectionError === null || onClearSeatSelectionError === void 0 ? void 0 : onClearSeatSelectionError();
|
|
81
|
+
onSeatSelect === null || onSeatSelect === void 0 ? void 0 : onSeatSelect(key, price, seatKey, apiSeatType);
|
|
82
|
+
};
|
|
92
83
|
const getAnimationIcon = (icon) => {
|
|
93
84
|
var _a;
|
|
94
85
|
const animation = ANIMATION_MAP[icon];
|
|
@@ -123,9 +114,8 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
123
114
|
const isItemExpanded = serviceItem.id === isExpand || isExpand === true;
|
|
124
115
|
const grayscaleClass = isSoldOut ? "grayscale" : "";
|
|
125
116
|
const hasOfferText = Boolean(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text);
|
|
126
|
-
const isNewUiEnabled = ((_b = (_a = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.discounts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.new_ui_enabled) === true;
|
|
127
117
|
const seats = removeDuplicateSeats
|
|
128
|
-
? ((
|
|
118
|
+
? ((_a = serviceItem.seat_types) === null || _a === void 0 ? void 0 : _a.filter((seat, index, self) => index === self.findIndex((s) => s.label === seat.label))) || []
|
|
129
119
|
: serviceItem.seat_types || [];
|
|
130
120
|
const discountedSeats = seats.map((seat) => (Object.assign(Object.assign({}, seat), CommonService.calculateDiscountedPrice(seat.fare, serviceItem))));
|
|
131
121
|
const hasDiscount = discountedSeats.some((seat) => seat.originalPrice !== seat.discountedPrice);
|
|
@@ -134,7 +124,7 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
134
124
|
const hasDpEnabled = (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled) === true;
|
|
135
125
|
const offerGradient = `linear-gradient(90deg, ${colors.rightGradiantColor || "#ff5964"} 0%, ${colors.leftGradiantColor || "#ff8842"} 100%)`;
|
|
136
126
|
const offerGradientWithOpacity = `linear-gradient(90deg, ${colors.rightGradiantColor || "#ff5964"}80 0%, ${colors.leftGradiantColor || "#ff8842"}80 100%)`;
|
|
137
|
-
const serviceCardStyle =
|
|
127
|
+
const serviceCardStyle = hasOfferText || hasDpEnabled
|
|
138
128
|
? {
|
|
139
129
|
borderColor: "transparent",
|
|
140
130
|
borderStyle: "solid",
|
|
@@ -227,6 +217,16 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
227
217
|
});
|
|
228
218
|
return;
|
|
229
219
|
}
|
|
220
|
+
if (isTrain) {
|
|
221
|
+
if (!selectedSeatKey) {
|
|
222
|
+
onShowSeatSelectionError === null || onShowSeatSelectionError === void 0 ? void 0 : onShowSeatSelectionError(serviceItem.id);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (onTrainButtonClick) {
|
|
226
|
+
onTrainButtonClick();
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
230
|
onBookButtonPress();
|
|
231
231
|
};
|
|
232
232
|
const items = [
|
|
@@ -257,18 +257,13 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
257
257
|
},
|
|
258
258
|
];
|
|
259
259
|
const otherItems = items.filter((i) => i.key !== "pet" && i.key !== "flexible" && !!i.condition);
|
|
260
|
-
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,
|
|
261
|
-
setIsFeatureDropDownExpand(isFeatureDropDownExpand === serviceItem.id ||
|
|
262
|
-
isFeatureDropDownExpand === true
|
|
263
|
-
? null
|
|
264
|
-
: serviceItem.id), selectedTimeSlot: selectedTimeSlot, onTimeSlotChange: onTimeSlotChange, isTimeDropdownOpen: isTimeDropdownOpen, onTimeDropdownToggle: onTimeDropdownToggle, wowDealData: wowDealData })) : (React.createElement("div", { className: `relative hover:z-[150] ${hasOfferText || hasDpEnabled ? "mb-[55px]" : "mb-[10px]"} ${(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ||
|
|
260
|
+
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, isFlores: isFlores })) : (React.createElement("div", { className: `relative hover:z-[150] ${hasOfferText || hasDpEnabled ? "mb-[55px]" : "mb-[10px]"} ${(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ||
|
|
265
261
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" ||
|
|
266
262
|
showTopLabel
|
|
267
263
|
? "mt-[24px]"
|
|
268
264
|
: "mt-[20px]"} ` },
|
|
269
|
-
((serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || hasDpEnabled) && !isSoldOut && (React.createElement(OfferBanner, { offerGradient: offerGradient, isSoldOut: isSoldOut, serviceItem: serviceItem, renderIcon: renderIcon, isLoggedIn: isLoggedIn, showLoginModal: showLoginModal, viewersConfig: viewersConfig, getAnimationIcon: getAnimationIcon, showLoginOption: showLoginOption
|
|
270
|
-
React.createElement("div", { id: `service-card-${serviceItem.id}`, className: `bg-white mx-auto relative ${(hasOfferText
|
|
271
|
-
hasDpEnabled
|
|
265
|
+
((serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || hasDpEnabled) && !isSoldOut && (React.createElement(OfferBanner, { offerGradient: offerGradient, isSoldOut: isSoldOut, serviceItem: serviceItem, renderIcon: renderIcon, isLoggedIn: isLoggedIn, showLoginModal: showLoginModal, viewersConfig: viewersConfig, getAnimationIcon: getAnimationIcon, showLoginOption: showLoginOption })),
|
|
266
|
+
React.createElement("div", { id: `service-card-${serviceItem.id}`, className: `bg-white mx-auto relative ${(hasOfferText || hasDpEnabled) && !isSoldOut
|
|
272
267
|
? "z-[3] rounded-[18px]"
|
|
273
268
|
: "rounded-[10px] border border-[#ccc]"}`, style: serviceCardStyle },
|
|
274
269
|
React.createElement("div", { className: " pt-[20px]", style: {
|
|
@@ -294,9 +289,13 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
294
289
|
backgroundColor: "#ccc",
|
|
295
290
|
} }),
|
|
296
291
|
React.createElement("div", { className: "content-center" },
|
|
297
|
-
React.createElement(SeatSection, { seatTypes: serviceItem.seat_types, serviceItem: serviceItem, availableSeats: serviceItem.available_seats, isSoldOut: isSoldOut, priceColor: colors.priceColor, dpSeatColor: colors.seatPriceColor, currencySign: currencySign, removeDuplicateSeats: removeDuplicateSeats, isPeru: isPeru, renderIcon: renderIcon, discountSeatPriceColor: colors.discountSeatPriceColor })),
|
|
292
|
+
React.createElement(SeatSection, { seatTypes: serviceItem.seat_types, serviceItem: serviceItem, availableSeats: serviceItem.available_seats, isSoldOut: isSoldOut, priceColor: colors.priceColor, dpSeatColor: colors.seatPriceColor, currencySign: currencySign, removeDuplicateSeats: removeDuplicateSeats, isPeru: isPeru, renderIcon: renderIcon, discountSeatPriceColor: colors.discountSeatPriceColor, isTrain: isTrain, selectedSeatKey: selectedSeatKey, onSeatSelect: handleSeatSelect, topLabelColor: colors.topLabelColor })),
|
|
298
293
|
React.createElement("div", { className: "relative" },
|
|
299
294
|
React.createElement(KuposButton, { isSoldOut: isSoldOut, isLoading: serviceDetailsLoading, buttonColor: colors.kuposButtonColor, buyLabel: translation === null || translation === void 0 ? void 0 : translation.buyButton, soldOutLabel: translation === null || translation === void 0 ? void 0 : translation.soldOutButton, soldOutIcon: renderIcon("soldOutIcon", "14px"), onClick: checkMidnight }),
|
|
295
|
+
showSeatSelectionError === serviceItem.id && isTrain && (React.createElement("div", { className: "flex justify-center mr-[11px] w-[100%] right-[0px] absolute left-[0] top-[40px]" },
|
|
296
|
+
React.createElement("div", { className: "text-[9px] text-center whitespace-nowrap", style: {
|
|
297
|
+
color: colors.seatPriceColor,
|
|
298
|
+
} }, "Selecciona el tipo de servicio"))),
|
|
300
299
|
showLastSeats ? (React.createElement("div", { className: "flex justify-center mr-[11px] w-[100%] right-[0px] absolute left-[0] top-[40px]" }, (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) < 10 &&
|
|
301
300
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) > 0 && (React.createElement("div", { className: "text-[12px] mt-1 text-center", style: {
|
|
302
301
|
color: colors.seatPriceColor,
|
|
@@ -309,9 +308,11 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
309
308
|
transition: "grid-template-rows 0.3s ease-in-out, opacity 0.25s ease-in-out",
|
|
310
309
|
position: "relative",
|
|
311
310
|
zIndex: hasOfferText || hasDpEnabled ? 0 : -1,
|
|
312
|
-
marginTop: isItemExpanded ? "" : "-
|
|
311
|
+
// marginTop: isItemExpanded ? "" : "-6px",
|
|
313
312
|
} },
|
|
314
|
-
React.createElement("div", { style: Object.assign({ overflow: "hidden", minHeight: 0, marginTop: hasDpEnabled || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text)
|
|
313
|
+
React.createElement("div", { style: Object.assign({ overflow: "hidden", minHeight: 0, marginTop: isItemExpanded && !(hasDpEnabled || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text))
|
|
314
|
+
? "-10px"
|
|
315
|
+
: "" }, (hasOfferText || hasDpEnabled
|
|
315
316
|
? {
|
|
316
317
|
borderLeft: isSoldOut ? "" : "3px solid #ff5964",
|
|
317
318
|
borderRight: isSoldOut ? "" : "3px solid #ff8842",
|
|
@@ -319,7 +320,7 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
319
320
|
boxSizing: "border-box",
|
|
320
321
|
}
|
|
321
322
|
: {})) },
|
|
322
|
-
React.createElement(ExpandedDropdown, { serviceItem: serviceItem, isPeru: isPeru, translation: translation, getAnimationIcon: getAnimationIcon, isChangeTicket: serviceItem.is_change_ticket === true, isSoldOut: isSoldOut, ladiesBookedSeats: serviceItem.ladies_booked_seats, isDpEnabled: serviceItem.is_dp_enabled, renderIcon: renderIcon })))),
|
|
323
|
+
React.createElement(ExpandedDropdown, { serviceItem: serviceItem, isPeru: isPeru, translation: translation, getAnimationIcon: getAnimationIcon, isChangeTicket: serviceItem.is_change_ticket === true, isSoldOut: isSoldOut, ladiesBookedSeats: serviceItem.ladies_booked_seats, isDpEnabled: serviceItem.is_dp_enabled, renderIcon: renderIcon, operatorLabel: operatorLabel })))),
|
|
323
324
|
children,
|
|
324
325
|
React.createElement(ServiceBadges, { showTopLabel: showTopLabel, isSoldOut: isSoldOut, colors: colors, renderIcon: renderIcon, translation: translation, serviceItem: serviceItem })))));
|
|
325
326
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { MobileServiceItemProps } from "./mobileTypes";
|
|
3
|
-
declare function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, isExpanded, setIsExpanded, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, viewersConfig,
|
|
3
|
+
declare function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, isExpanded, setIsExpanded, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, viewersConfig, operatorLabel, isTrain, }: MobileServiceItemProps): React.ReactElement;
|
|
4
4
|
export default ServiceItemMobile;
|
|
@@ -5,7 +5,6 @@ import BottomAmenitiesMobile from "../../ui/mobileweb/BottomAmenitiesMobile";
|
|
|
5
5
|
import DateTimeSectionMobile from "../../ui/mobileweb/DateTimeSectionMobile";
|
|
6
6
|
import ExpandedDropdownMobile from "../../ui/mobileweb/ExpandedDropdownMobile";
|
|
7
7
|
import ServiceBadgesMobile from "../../ui/mobileweb/ServiceBadgesMobile";
|
|
8
|
-
import FeatureServiceUiMobile from "../../ui/FeaturServiceUiMobile/FeatureServiceUiMobile";
|
|
9
8
|
const SEAT_EXCEPTIONS = ["Asiento mascota"];
|
|
10
9
|
const exceptions = [
|
|
11
10
|
"gy",
|
|
@@ -18,22 +17,21 @@ const exceptions = [
|
|
|
18
17
|
"blanco",
|
|
19
18
|
"asiento_mascota",
|
|
20
19
|
];
|
|
21
|
-
function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, isExpanded, setIsExpanded, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, viewersConfig,
|
|
22
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
20
|
+
function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, isExpanded, setIsExpanded, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, viewersConfig, operatorLabel, isTrain, }) {
|
|
21
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
23
22
|
const isItemExpanded = serviceItem.id === isExpanded;
|
|
24
23
|
const isPetSeat = (Object.keys(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.pet_seat_info) || []).length > 0;
|
|
25
|
-
const isNewUiEnabled = ((_b = (_a = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.discounts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.new_ui_enabled) === true;
|
|
26
24
|
let isSoldOut = serviceItem.available_seats <= 0;
|
|
27
25
|
const seats = removeDuplicateSeats
|
|
28
|
-
? ((
|
|
26
|
+
? ((_a = serviceItem.seat_types) === null || _a === void 0 ? void 0 : _a.filter((seat, index, self) => index === self.findIndex((s) => s.label === seat.label))) || []
|
|
29
27
|
: serviceItem.seat_types || [];
|
|
30
28
|
const discountedSeats = seats.map((seat) => (Object.assign(Object.assign({}, seat), commonService.calculateDiscountedPrice(seat.fare, serviceItem))));
|
|
31
29
|
const hasDiscount = discountedSeats.some((seat) => seat.originalPrice !== seat.discountedPrice);
|
|
32
|
-
const isLongOfferText = (((
|
|
30
|
+
const isLongOfferText = (((_b = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) === null || _b === void 0 ? void 0 : _b.length) || 0) > 35;
|
|
33
31
|
const hasOfferText = Boolean(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text);
|
|
34
32
|
const offerGradient = `linear-gradient(90deg, ${colors.rightGradiantColor || "#ff5964"} 0%, ${colors.leftGradiantColor || "#ff8842"} 100%)`;
|
|
35
33
|
const offerGradientWithOpacity = `linear-gradient(90deg, ${colors.rightGradiantColor || "#ff5964"}80 0%, ${colors.leftGradiantColor || "#ff8842"}80 100%)`;
|
|
36
|
-
const serviceCardStyle =
|
|
34
|
+
const serviceCardStyle = hasOfferText || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled)
|
|
37
35
|
? {
|
|
38
36
|
borderColor: isSoldOut ? "#ccc" : "transparent",
|
|
39
37
|
borderStyle: "solid",
|
|
@@ -89,17 +87,13 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
89
87
|
if (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_transpordo) {
|
|
90
88
|
isConexion = true;
|
|
91
89
|
}
|
|
92
|
-
return (React.createElement(
|
|
93
|
-
setIsFeatureDropDownExpand(isFeatureDropDownExpand === serviceItem.id ||
|
|
94
|
-
isFeatureDropDownExpand === true
|
|
95
|
-
? null
|
|
96
|
-
: serviceItem.id), selectedTimeSlot: selectedTimeSlot, onTimeSlotChange: onTimeSlotChange, isTimeDropdownOpen: isTimeDropdownOpen, onTimeDropdownToggle: onTimeDropdownToggle, wowDealData: wowDealData })) : (React.createElement("div", { className: `relative ${!serviceItem.offer_text || !(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled) ? "mb-[14px]" : showTopLabel || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ? "mb-[20px]" : "mb-[12px]"} ${(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ||
|
|
90
|
+
return (React.createElement("div", { className: `relative ${!serviceItem.offer_text || !(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled) ? "mb-[14px]" : showTopLabel || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ? "mb-[20px]" : "mb-[12px]"} ${(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ||
|
|
97
91
|
isConexion ||
|
|
98
92
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" ||
|
|
99
93
|
showTopLabel
|
|
100
94
|
? "mt-[20px]"
|
|
101
95
|
: "mt-[10px]"} `, style: { zIndex: 1 } },
|
|
102
|
-
React.createElement("div", { className: `z-1 ${(
|
|
96
|
+
React.createElement("div", { className: `z-1 ${(hasOfferText || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled)) && !isSoldOut
|
|
103
97
|
? "rounded-[18px]"
|
|
104
98
|
: "rounded-[10px] border border-[#ccc]"}`, style: Object.assign(Object.assign({}, serviceCardStyle), { backgroundColor: "#fff" }) },
|
|
105
99
|
React.createElement("div", { style: { padding: "12px 12px 8px 12px" } },
|
|
@@ -107,49 +101,29 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
107
101
|
React.createElement("div", { className: "flex items-center justify-center gap-x-4", style: {
|
|
108
102
|
marginBottom: (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || hasDiscount ? "10px" : "",
|
|
109
103
|
} },
|
|
110
|
-
React.createElement("div", { className:
|
|
104
|
+
React.createElement("div", { className: "w-[115px] overflow-y-hidden h-[22px]" },
|
|
111
105
|
React.createElement("img", { src: serviceItem.operator_details[0], alt: "service logo", className: `w-[100px] h-auto object-contain ${isSoldOut ? "grayscale" : ""}` })),
|
|
112
106
|
isCiva ? (React.createElement("div", { className: "black-text min-[420]:text-[12px] text-[12px]" }, serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.operator_details[2])) : showRating ? (React.createElement("div", { className: "flex min-[420]:text-[13px] text-[12px] h-[22px] items-center" },
|
|
113
107
|
React.createElement("div", { className: "flex items-center" },
|
|
114
108
|
React.createElement("div", { className: "flex items-center" },
|
|
115
109
|
React.createElement("img", { src: serviceItem.icons.rating, alt: "origin", className: `w-[12px] h-[12px] mr-[4px] object-contain ${isSoldOut ? "grayscale" : ""}` }),
|
|
116
110
|
React.createElement("span", { style: { lineHeight: "normal" } }, getServiceStars(serviceItem))),
|
|
117
|
-
React.createElement("div", { className: "flex items-center cursor-pointer ", style: {
|
|
118
|
-
color: isSoldOut ? "#bbb" : "text-[#464647]",
|
|
119
|
-
} },
|
|
111
|
+
React.createElement("div", { className: "flex items-center cursor-pointer ", style: { color: isSoldOut ? "#bbb" : "text-[#464647]" } },
|
|
120
112
|
React.createElement("span", { className: "ml-[3px] min-[420]:text-[13px] text-[12px] text-ellipsis overflow-hidden whitespace-nowrap max-w-[120px]" }, serviceItem.operator_details[2]))))) : null)),
|
|
121
|
-
React.createElement(DateTimeSectionMobile, { onBookButtonPress: onBookButtonPress, isCiva: isCiva, isSoldOut: isSoldOut, isLinatal: isLinatal, isPeru: isPeru, orignLabel: orignLabel, destinationLabel: destinationLabel, originIcon: (
|
|
113
|
+
React.createElement(DateTimeSectionMobile, { onBookButtonPress: onBookButtonPress, isCiva: isCiva, isSoldOut: isSoldOut, isLinatal: isLinatal, isPeru: isPeru, orignLabel: orignLabel, destinationLabel: destinationLabel, originIcon: (_c = serviceItem.icons) === null || _c === void 0 ? void 0 : _c.origin, destinationIcon: (_d = serviceItem.icons) === null || _d === void 0 ? void 0 : _d.destination, travelDate: serviceItem.travel_date, arrivalDate: serviceItem.arrival_date, depTime: serviceItem.dep_time, arrTime: serviceItem.arr_time, seatTypes: serviceItem.seat_types, seatPriceColor: colors.seatPriceColor, tooltipBgColor: colors.tooltipBgColor, currencySign: currencySign, availableSeats: serviceItem.available_seats, removeDuplicateSeats: removeDuplicateSeats, serviceItem: serviceItem, showLastSeats: showLastSeats, discountSeatPriceColor: colors.discountSeatPriceColor, isTrain: isTrain }),
|
|
122
114
|
hasDiscount && (React.createElement("div", { className: "flex justify-end" }, isSoldOut ? (React.createElement("span", { className: "col-span-2 min-[420]:text-[13px] text-right text-[12px] text-[#ccc]" }, "Agotado")) : null)),
|
|
123
115
|
showLastSeats ? (React.createElement("div", { className: "flex justify-end " }, (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) < 10 &&
|
|
124
116
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) > 0 && (React.createElement("div", { className: "text-[10px] text-center", style: {
|
|
125
117
|
color: colors.tooltipBgColor,
|
|
126
118
|
} }, "\u00A1\u00DAltimos Asientos!")))) : null,
|
|
127
119
|
React.createElement("div", { className: "bg-[#E6E6E6] mt-[10px] mb-[8px] h-[1px]" }),
|
|
128
|
-
React.createElement(BottomAmenitiesMobile, { isSoldOut: isSoldOut, amenitiesNodes: amenities(), hoursIcon: renderIcon("hours", "14px"), duration: (
|
|
120
|
+
React.createElement(BottomAmenitiesMobile, { isSoldOut: isSoldOut, amenitiesNodes: amenities(), hoursIcon: renderIcon("hours", "14px"), duration: (_e = serviceItem.duration) === null || _e === void 0 ? void 0 : _e.toString(), isDirectTrip: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip, directoColor: colors.directoColor, directoAnim: serviceItem.icons.directoAnim, isChangeTicket: serviceItem.is_change_ticket, isPetSeat: isPetSeat, petSeatInfo: serviceItem.pet_seat_info, petFriendlyAnim: serviceItem.icons.petFriendlyAnim, flexibleAnim: serviceItem.icons.flexibleAnim, isTrackingEnabled: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_tracking_enabled, locationAnim: serviceItem.icons.locationAnim, downArrowIcon: serviceItem.icons.downArrow, showDropdown: isItemExpanded, setShowDropdown: () => setIsExpanded(isItemExpanded ? null : serviceItem.id), onDropdownToggle: () => {
|
|
129
121
|
setIsExpanded(isItemExpanded ? null : serviceItem.id);
|
|
130
122
|
}, isPeru: isPeru, femaleAnim: serviceItem.icons.femaleAnim, ladiesBookedSeats: serviceItem.ladies_booked_seats, isDpEnabled: serviceItem.is_dp_enabled })),
|
|
131
123
|
React.createElement(ServiceBadgesMobile, { showTopLabel: showTopLabel, isSoldOut: isSoldOut, colors: colors, renderIcon: renderIcon, serviceItem: serviceItem, isConexion: isConexion })),
|
|
132
|
-
((
|
|
124
|
+
((serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled)) &&
|
|
133
125
|
!isSoldOut && (React.createElement("div", { className: "px-[12px] pt-[22px] pb-[8px] relative -z-9 -mt-[15px]", style: {
|
|
134
|
-
background:
|
|
135
|
-
borderRadius: "0 0 14px 14px",
|
|
136
|
-
zIndex: -1,
|
|
137
|
-
} },
|
|
138
|
-
React.createElement("div", { className: "flex flex-col gap-[8px] text-[12px] min-[420px]:text-[12px] text-[#464647]", style: { lineHeight: 1.6 } },
|
|
139
|
-
React.createElement("div", { className: "flex justify-between items-center" },
|
|
140
|
-
React.createElement("div", { className: `flex ${((serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || "").length > 10 ? "items-start" : "items-center"}` },
|
|
141
|
-
React.createElement("div", { className: isLongOfferText ? "mt-[2px]" : "" },
|
|
142
|
-
React.createElement(LottiePlayer, { animationData: serviceItem.icons.promoAnim, width: "14px", height: "14px" })),
|
|
143
|
-
React.createElement("div", { className: `ml-[4px] flex-1 outline-none ${isLongOfferText ? "mt-[2px]" : ""}`, style: {
|
|
144
|
-
color: "#fff",
|
|
145
|
-
lineHeight: 1.4,
|
|
146
|
-
} },
|
|
147
|
-
React.createElement("span", { className: "whitespace-nowrap min-[380px]:text-[12px]" }, serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text))))))),
|
|
148
|
-
(((serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) && isNewUiEnabled) || (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled)) &&
|
|
149
|
-
!isSoldOut && (React.createElement("div", { className: "px-[12px] pt-[22px] pb-[8px] relative -z-9 -mt-[15px]", style: {
|
|
150
|
-
background: isSoldOut
|
|
151
|
-
? offerGradientWithOpacity
|
|
152
|
-
: offerGradient,
|
|
126
|
+
background: isSoldOut ? offerGradientWithOpacity : offerGradient,
|
|
153
127
|
// opacity: isSoldOut ? 0.5 : 1,
|
|
154
128
|
borderRadius: "0 0 14px 14px",
|
|
155
129
|
zIndex: -1,
|
|
@@ -157,9 +131,9 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
157
131
|
React.createElement("div", { className: "flex flex-col gap-[8px] text-[12px] min-[420px]:text-[12px] text-[#464647]", style: { lineHeight: 1.6 } },
|
|
158
132
|
React.createElement("div", { className: "flex justify-between items-center" },
|
|
159
133
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_dp_enabled) &&
|
|
160
|
-
Object.keys((
|
|
161
|
-
|
|
162
|
-
((
|
|
134
|
+
Object.keys((_f = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.dp_discount_percents) !== null && _f !== void 0 ? _f : {}).length ===
|
|
135
|
+
0 &&
|
|
136
|
+
((_g = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.dp_discounted_seats) !== null && _g !== void 0 ? _g : []).length === 0 ? (React.createElement("div", { className: "flex items-center gap-[6px]" },
|
|
163
137
|
React.createElement(LottiePlayer, { animationData: serviceItem.icons.starAnimation, width: "14px", height: "14px" }),
|
|
164
138
|
React.createElement("span", { className: "text-[#fff]" }, "M\u00E1s elegido"))) : (React.createElement("div", { className: `flex ${((serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || "").length > 10 ? "items-start" : "items-center"}` },
|
|
165
139
|
React.createElement("div", { className: isLongOfferText ? "mt-[2px]" : "" },
|
|
@@ -206,6 +180,6 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
206
180
|
zIndex: (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) ? -3 : undefined,
|
|
207
181
|
marginTop: (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) ? "-15px" : "-10px",
|
|
208
182
|
} },
|
|
209
|
-
React.createElement(ExpandedDropdownMobile, { serviceItem: serviceItem, isPeru: isPeru, petSeatInfo: serviceItem.pet_seat_info, petFriendlyAnim: serviceItem.icons.petFriendlyAnim, isSoldOut: isSoldOut, isChangeTicket: serviceItem.is_change_ticket === true, ladiesBookedSeats: serviceItem.ladies_booked_seats, isDpEnabled: serviceItem.is_dp_enabled, femaleAnim: serviceItem.icons.femaleAnim, flexibleAnim: serviceItem.icons.flexibleAnim, renderIcon: renderIcon })))))
|
|
183
|
+
React.createElement(ExpandedDropdownMobile, { serviceItem: serviceItem, isPeru: isPeru, petSeatInfo: serviceItem.pet_seat_info, petFriendlyAnim: serviceItem.icons.petFriendlyAnim, isSoldOut: isSoldOut, isChangeTicket: serviceItem.is_change_ticket === true, ladiesBookedSeats: serviceItem.ladies_booked_seats, isDpEnabled: serviceItem.is_dp_enabled, femaleAnim: serviceItem.icons.femaleAnim, flexibleAnim: serviceItem.icons.flexibleAnim, renderIcon: renderIcon, operatorLabel: operatorLabel })))));
|
|
210
184
|
}
|
|
211
185
|
export default ServiceItemMobile;
|
|
@@ -43,20 +43,6 @@ export interface MobileServiceItemProps {
|
|
|
43
43
|
dp_discount_percents?: Record<string, number>;
|
|
44
44
|
dp_discounted_seats?: string[];
|
|
45
45
|
dep_validation_text?: string;
|
|
46
|
-
discount_type?: string;
|
|
47
|
-
discount_value?: number;
|
|
48
|
-
max_discount?: number;
|
|
49
|
-
discounts?: Array<{
|
|
50
|
-
id?: number;
|
|
51
|
-
name?: string;
|
|
52
|
-
send_discount_to_api?: boolean;
|
|
53
|
-
new_ui_enabled?: boolean;
|
|
54
|
-
discount?: number;
|
|
55
|
-
seatwise_breakdown?: any;
|
|
56
|
-
seat_wise_discounts?: any;
|
|
57
|
-
total_amount?: number;
|
|
58
|
-
promotional_text?: string;
|
|
59
|
-
}>;
|
|
60
46
|
metaData?: {};
|
|
61
47
|
is_tracking_enabled?: boolean;
|
|
62
48
|
show_top_label?: boolean;
|
|
@@ -138,19 +124,6 @@ export interface MobileServiceItemProps {
|
|
|
138
124
|
directoIcon?: string;
|
|
139
125
|
whiteFireIcon?: string;
|
|
140
126
|
femaleAnim?: string;
|
|
141
|
-
thunderAnim?: string;
|
|
142
|
-
personsAnim?: string;
|
|
143
|
-
whiteOrigin?: string;
|
|
144
|
-
whiteDestination?: string;
|
|
145
|
-
userIcon?: string;
|
|
146
|
-
sheildIcon?: string;
|
|
147
|
-
busIcon?: string;
|
|
148
|
-
whiteDownArrow?: string;
|
|
149
|
-
empressaIcon?: string;
|
|
150
|
-
flexibleIcon?: string;
|
|
151
|
-
listoIcon?: string;
|
|
152
|
-
precioIcon?: string;
|
|
153
|
-
confirmarIcon?: string;
|
|
154
127
|
cancelTicketIcon?: string;
|
|
155
128
|
changeTicketIcon?: string;
|
|
156
129
|
petFriendlyIcon?: string;
|
|
@@ -160,7 +133,6 @@ export interface MobileServiceItemProps {
|
|
|
160
133
|
useLottieFor?: string[];
|
|
161
134
|
};
|
|
162
135
|
onBookButtonPress?: () => void;
|
|
163
|
-
onRemateUiButtonClick?: () => void;
|
|
164
136
|
terminals?: any[];
|
|
165
137
|
showDropdown?: boolean;
|
|
166
138
|
setShowDropdown?: (value: boolean) => void;
|
|
@@ -215,24 +187,6 @@ export interface MobileServiceItemProps {
|
|
|
215
187
|
label?: string;
|
|
216
188
|
icon?: string;
|
|
217
189
|
};
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
ticketQuantity?: number;
|
|
221
|
-
onIncreaseTicketQuantity?: (serviceItem: MobileServiceItemProps["serviceItem"]) => void;
|
|
222
|
-
onDecreaseTicketQuantity?: (serviceItem: MobileServiceItemProps["serviceItem"]) => void;
|
|
223
|
-
cityOrigin?: {
|
|
224
|
-
value: number;
|
|
225
|
-
label: string;
|
|
226
|
-
};
|
|
227
|
-
cityDestination?: {
|
|
228
|
-
value: number;
|
|
229
|
-
label: string;
|
|
230
|
-
};
|
|
231
|
-
isNewUi?: boolean;
|
|
232
|
-
selectedTimeSlot?: string;
|
|
233
|
-
onTimeSlotChange?: (slot: string) => void;
|
|
234
|
-
isTimeDropdownOpen?: string | number | null;
|
|
235
|
-
onTimeDropdownToggle?: (id?: string | number | null) => void;
|
|
236
|
-
wowDealData?: any;
|
|
237
|
-
isFlores?: boolean;
|
|
190
|
+
operatorLabel?: string;
|
|
191
|
+
isTrain?: boolean;
|
|
238
192
|
}
|
|
@@ -45,9 +45,6 @@ export interface ServiceItemProps {
|
|
|
45
45
|
discount_type?: string;
|
|
46
46
|
discount_value?: number;
|
|
47
47
|
max_discount?: number;
|
|
48
|
-
discounts?: Array<{
|
|
49
|
-
new_ui_enabled?: boolean;
|
|
50
|
-
}>;
|
|
51
48
|
is_transpordo?: boolean;
|
|
52
49
|
is_train_type?: boolean;
|
|
53
50
|
operator_service_name?: string;
|
|
@@ -132,23 +129,11 @@ export interface ServiceItemProps {
|
|
|
132
129
|
personIcon?: string;
|
|
133
130
|
whiteFireIcon?: string;
|
|
134
131
|
fireIcon?: string;
|
|
135
|
-
whiteOrigin?: string;
|
|
136
|
-
whiteDestination?: string;
|
|
137
|
-
userIcon?: string;
|
|
138
|
-
sheildIcon?: string;
|
|
139
|
-
busIcon?: string;
|
|
140
|
-
whiteDownArrow?: string;
|
|
141
|
-
empressaIcon?: string;
|
|
142
|
-
flexibleIcon?: string;
|
|
143
|
-
listoIcon?: string;
|
|
144
|
-
precioIcon?: string;
|
|
145
|
-
confirmarIcon?: string;
|
|
146
132
|
[key: string]: string | Record<string, string | undefined> | undefined;
|
|
147
133
|
};
|
|
148
134
|
useLottieFor?: string[];
|
|
149
135
|
};
|
|
150
136
|
onBookButtonPress?: () => void;
|
|
151
|
-
onRemateUiButtonClick?: () => void;
|
|
152
137
|
terminals?: any[];
|
|
153
138
|
t?: (key: string) => string;
|
|
154
139
|
serviceDetailsLoading?: boolean;
|
|
@@ -228,11 +213,6 @@ export interface ServiceItemProps {
|
|
|
228
213
|
isAllinBus?: boolean;
|
|
229
214
|
isExpand?: any;
|
|
230
215
|
setIsExpand?: (value: any) => void;
|
|
231
|
-
isFeatureDropDownExpand?: any;
|
|
232
|
-
setIsFeatureDropDownExpand?: (value: any) => void;
|
|
233
|
-
ticketQuantity?: number;
|
|
234
|
-
onIncreaseTicketQuantity?: (serviceItem: ServiceItemProps["serviceItem"]) => void;
|
|
235
|
-
onDecreaseTicketQuantity?: (serviceItem: ServiceItemProps["serviceItem"]) => void;
|
|
236
216
|
coachKey?: number;
|
|
237
217
|
viewersConfig?: {
|
|
238
218
|
min: number;
|
|
@@ -241,14 +221,16 @@ export interface ServiceItemProps {
|
|
|
241
221
|
label?: string;
|
|
242
222
|
icon?: string;
|
|
243
223
|
};
|
|
244
|
-
isNewUi?: boolean;
|
|
245
224
|
showLoginModal?: any;
|
|
246
225
|
isLoggedIn?: any;
|
|
247
226
|
showLoginOption?: boolean;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
227
|
+
isTrain?: boolean;
|
|
228
|
+
selectedSeatKey?: any;
|
|
229
|
+
onSeatSelect?: (key: any, price: number, seatKey: string, apiSeatType?: string) => void;
|
|
230
|
+
onTrainButtonClick?: any;
|
|
231
|
+
showSeatSelectionError?: string | null;
|
|
232
|
+
onShowSeatSelectionError?: (serviceId: string) => void;
|
|
233
|
+
onClearSeatSelectionError?: () => void;
|
|
234
|
+
isFlores?: boolean;
|
|
235
|
+
operatorLabel?: string;
|
|
254
236
|
}
|