kupos-ui-components-lib 9.1.2 → 9.1.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.
Files changed (51) hide show
  1. package/README copy.md +67 -223
  2. package/dist/assets/images/anims/service_list/directo.json +1 -1
  3. package/dist/components/FilterBar/FilterBarDesktop.d.ts +1 -1
  4. package/dist/components/FilterBar/FilterBarDesktop.js +38 -3
  5. package/dist/components/FilterBar/tyoes.d.ts +1 -0
  6. package/dist/components/ServiceItem/PeruServiceItemDesktop.js +1 -1
  7. package/dist/components/ServiceItem/RatingHover.js +33 -32
  8. package/dist/components/ServiceItem/ServiceItemDesktop.d.ts +1 -1
  9. package/dist/components/ServiceItem/ServiceItemDesktop.js +267 -147
  10. package/dist/components/ServiceItem/ServiceItemMobile.d.ts +1 -1
  11. package/dist/components/ServiceItem/ServiceItemMobile.js +278 -87
  12. package/dist/components/ServiceItem/mobileTypes.d.ts +0 -5
  13. package/dist/components/ServiceItem/types.d.ts +0 -7
  14. package/dist/styles.css +32 -131
  15. package/dist/ui/AmenitiesBlock.js +30 -23
  16. package/dist/ui/DurationBlock.js +4 -4
  17. package/dist/ui/FlexibleBlock.js +6 -5
  18. package/dist/ui/PetBlock.js +3 -1
  19. package/dist/ui/RatingBlock.d.ts +1 -9
  20. package/dist/ui/RatingBlock.js +3 -7
  21. package/dist/utils/CommonService.d.ts +1 -1
  22. package/dist/utils/CommonService.js +0 -2
  23. package/package.json +1 -2
  24. package/src/assets/images/anims/service_list/directo.json +1 -1
  25. package/src/components/FilterBar/FilterBarDesktop.tsx +46 -3
  26. package/src/components/FilterBar/tyoes.ts +1 -0
  27. package/src/components/ServiceItem/PeruServiceItemDesktop.tsx +0 -1
  28. package/src/components/ServiceItem/RatingHover.tsx +45 -44
  29. package/src/components/ServiceItem/ServiceItemDesktop.tsx +537 -313
  30. package/src/components/ServiceItem/ServiceItemMobile.tsx +530 -213
  31. package/src/components/ServiceItem/mobileTypes.ts +0 -5
  32. package/src/components/ServiceItem/types.ts +0 -7
  33. package/src/ui/AmenitiesBlock.tsx +29 -50
  34. package/src/ui/DurationBlock.tsx +4 -4
  35. package/src/ui/FlexibleBlock.tsx +5 -6
  36. package/src/ui/PetBlock.tsx +2 -2
  37. package/src/ui/RatingBlock.tsx +6 -18
  38. package/src/utils/CommonService.ts +0 -2
  39. package/src/assets/images/anims/service_list/bomb.json +0 -1
  40. package/src/ui/BottomAmenities/BottomAmenities.tsx +0 -110
  41. package/src/ui/DateTimeSection/DateTimeSection.tsx +0 -207
  42. package/src/ui/DirectoBlock.tsx +0 -31
  43. package/src/ui/ExpendedDropDown/ExpandedDropdown.tsx +0 -103
  44. package/src/ui/KuposButton/KuposButton.tsx +0 -48
  45. package/src/ui/SeatSection/SeatSection.tsx +0 -207
  46. package/src/ui/TopAmenities/TopAmenities.tsx +0 -127
  47. package/src/ui/mobileweb/BottomAmenitiesMobile.tsx +0 -169
  48. package/src/ui/mobileweb/DateTimeSectionMobile.tsx +0 -192
  49. package/src/ui/mobileweb/ExpandedDropdownMobile.tsx +0 -56
  50. package/src/ui/mobileweb/SeatSectionMobile.tsx +0 -256
  51. package/src/ui/mobileweb/TopAmenitieMobile.tsx +0 -126
@@ -1,4 +1,4 @@
1
- import React, { useEffect } from "react";
1
+ import React from "react";
2
2
  import { FilterBarProps } from "./tyoes";
3
3
  import commonService from "../../utils/CommonService";
4
4
  import ServiceFilter from "./ServiceFilter";
@@ -25,7 +25,50 @@ const FilterBarDesktop = ({
25
25
  hideOperator,
26
26
  setCoachLoading,
27
27
  setCoachKey,
28
+ isAllinBus,
28
29
  }: FilterBarProps) => {
30
+ const getEnrichedFilters = () => {
31
+ if (!isAllinBus || !allSchedules?.length) return filtersArray;
32
+
33
+ const hasSpecialDeparture = filtersArray.some(
34
+ (f: any) => f.type === "special_departure" && f.options?.length > 0,
35
+ );
36
+ if (hasSpecialDeparture) return filtersArray;
37
+
38
+ const stageMap = new Map<string, string>();
39
+ allSchedules.forEach((schedule: any) => {
40
+ if (schedule.stage_details_arr?.length) {
41
+ const stageObj = schedule.stage_details_arr[0];
42
+ const stageId = Object.keys(stageObj)[0];
43
+ const stageName = stageObj[stageId]?.[0]?.split(", ")[0];
44
+ if (stageId && stageName) {
45
+ stageMap.set(stageId, stageName);
46
+ }
47
+ }
48
+ });
49
+
50
+ if (stageMap.size === 0) return filtersArray;
51
+
52
+ const specialDeptOptions = Array.from(stageMap.entries()).map(
53
+ ([id, name]) => ({
54
+ label: name,
55
+ value: id,
56
+ active: false,
57
+ }),
58
+ );
59
+
60
+ return [
61
+ ...filtersArray,
62
+ {
63
+ type: "special_departure",
64
+ title: "SPECIAL_DEPARTURE",
65
+ options: specialDeptOptions,
66
+ },
67
+ ];
68
+ };
69
+
70
+ const enrichedFilters = getEnrichedFilters();
71
+
29
72
  const filterBy = (filters) => {
30
73
  try {
31
74
  let routes = allSchedules;
@@ -213,7 +256,7 @@ const FilterBarDesktop = ({
213
256
  const onFilterSelected = (key: number, i: number) => {
214
257
  setCoachLoading(null);
215
258
  setCoachKey(null);
216
- let filters = commonService.copyObject(filtersArray);
259
+ let filters = commonService.copyObject(enrichedFilters);
217
260
  filters[key].options[i].active = !filters[key].options[i].active;
218
261
  filterBy(filters);
219
262
  setFiltersArray(filters);
@@ -221,7 +264,7 @@ const FilterBarDesktop = ({
221
264
 
222
265
  return (
223
266
  <ServiceFilter
224
- filtersArray={filtersArray}
267
+ filtersArray={enrichedFilters}
225
268
  onFilterSelected={onFilterSelected}
226
269
  onFilterClear={(val) => {
227
270
  setFiltersArray(val);
@@ -34,5 +34,6 @@ export interface FilterBarProps {
34
34
  isPeru?: boolean;
35
35
  setCoachLoading?: any;
36
36
  setCoachKey?: any;
37
+ isAllinBus?: boolean;
37
38
 
38
39
  }
@@ -462,7 +462,6 @@ function PeruServiceItemDesktop({
462
462
  colors={colors}
463
463
  t={t}
464
464
  translation={translation}
465
- isPeru={isPeru}
466
465
  />
467
466
  ),
468
467
  },
@@ -18,7 +18,8 @@ const RatingHover: React.FC<RatingHoverProps> = ({
18
18
  translation,
19
19
  isPeru,
20
20
  }) => {
21
- const ratingIndex = isPeru ? 7 : 6;
21
+ const handleRating = isPeru ? 7 : 6;
22
+ const handleBottomRating = isPeru ? 6 : 5;
22
23
  return (
23
24
  <div className="flex items-center">
24
25
  <div className="w-[18px] h-auto mr-[4px] relative">
@@ -38,7 +39,7 @@ const RatingHover: React.FC<RatingHoverProps> = ({
38
39
  }}
39
40
  />
40
41
  <div
41
- className="hidden group-hover:block absolute left-[80px] -bottom-[160px] z-20 mt-2 w-[280px] rounded-lg shadow-service-2 bg-white overflow-hidden rounded-[14px] border-[2px]"
42
+ className="hidden group-hover:block absolute left-[80px] -bottom-[160px] z-20 mt-2 w-[320px] rounded-lg shadow-service-2 bg-white overflow-hidden rounded-[14px] border-[2px]"
42
43
  style={{
43
44
  borderColor: isSoldOut ? "#c0c0c0" : colors.ratingBorderColor,
44
45
  color: isSoldOut ? "#c0c0c0" : "",
@@ -62,26 +63,26 @@ const RatingHover: React.FC<RatingHoverProps> = ({
62
63
  <div className="px-3 py-2 flex flex-col gap-[10px] font9">
63
64
  <RatingItem
64
65
  rating={
65
- serviceItem.operator_details[ratingIndex] &&
66
- serviceItem.operator_details[ratingIndex][
66
+ serviceItem.operator_details[handleRating] &&
67
+ serviceItem.operator_details[handleRating][
67
68
  Object.keys(
68
- serviceItem.operator_details[ratingIndex] &&
69
- serviceItem.operator_details[ratingIndex],
69
+ serviceItem.operator_details[handleRating] &&
70
+ serviceItem.operator_details[handleRating],
70
71
  )[0]
71
72
  ] &&
72
73
  parseFloat(
73
- serviceItem.operator_details[ratingIndex][
74
+ serviceItem.operator_details[handleRating][
74
75
  Object.keys(
75
- serviceItem.operator_details[ratingIndex] &&
76
- serviceItem.operator_details[ratingIndex],
76
+ serviceItem.operator_details[handleRating] &&
77
+ serviceItem.operator_details[handleRating],
77
78
  )[0]
78
79
  ],
79
80
  ).toFixed(1)
80
81
  ? +parseFloat(
81
- serviceItem.operator_details[ratingIndex][
82
+ serviceItem.operator_details[handleRating][
82
83
  Object.keys(
83
- serviceItem.operator_details[ratingIndex] &&
84
- serviceItem.operator_details[ratingIndex],
84
+ serviceItem.operator_details[handleRating] &&
85
+ serviceItem.operator_details[handleRating],
85
86
  )[0]
86
87
  ],
87
88
  ).toFixed(1)
@@ -92,26 +93,26 @@ const RatingHover: React.FC<RatingHoverProps> = ({
92
93
  />
93
94
  <RatingItem
94
95
  rating={
95
- serviceItem.operator_details[ratingIndex] &&
96
- serviceItem.operator_details[ratingIndex][
96
+ serviceItem.operator_details[handleRating] &&
97
+ serviceItem.operator_details[handleRating][
97
98
  Object.keys(
98
- serviceItem.operator_details[ratingIndex] &&
99
- serviceItem.operator_details[ratingIndex],
99
+ serviceItem.operator_details[handleRating] &&
100
+ serviceItem.operator_details[handleRating],
100
101
  )[1]
101
102
  ] &&
102
103
  parseFloat(
103
- serviceItem.operator_details[ratingIndex][
104
+ serviceItem.operator_details[handleRating][
104
105
  Object.keys(
105
- serviceItem.operator_details[ratingIndex] &&
106
- serviceItem.operator_details[ratingIndex],
106
+ serviceItem.operator_details[handleRating] &&
107
+ serviceItem.operator_details[handleRating],
107
108
  )[1]
108
109
  ],
109
110
  ).toFixed(1)
110
111
  ? +parseFloat(
111
- serviceItem.operator_details[ratingIndex][
112
+ serviceItem.operator_details[handleRating][
112
113
  Object.keys(
113
- serviceItem.operator_details[ratingIndex] &&
114
- serviceItem.operator_details[ratingIndex],
114
+ serviceItem.operator_details[handleRating] &&
115
+ serviceItem.operator_details[handleRating],
115
116
  )[1]
116
117
  ],
117
118
  ).toFixed(1)
@@ -122,26 +123,26 @@ const RatingHover: React.FC<RatingHoverProps> = ({
122
123
  />
123
124
  <RatingItem
124
125
  rating={
125
- serviceItem.operator_details[ratingIndex] &&
126
- serviceItem.operator_details[ratingIndex][
126
+ serviceItem.operator_details[handleRating] &&
127
+ serviceItem.operator_details[handleRating][
127
128
  Object.keys(
128
- serviceItem.operator_details[ratingIndex] &&
129
- serviceItem.operator_details[ratingIndex],
129
+ serviceItem.operator_details[handleRating] &&
130
+ serviceItem.operator_details[handleRating],
130
131
  )[2]
131
132
  ] &&
132
133
  parseFloat(
133
- serviceItem.operator_details[ratingIndex][
134
+ serviceItem.operator_details[handleRating][
134
135
  Object.keys(
135
- serviceItem.operator_details[ratingIndex] &&
136
- serviceItem.operator_details[ratingIndex],
136
+ serviceItem.operator_details[handleRating] &&
137
+ serviceItem.operator_details[handleRating],
137
138
  )[2]
138
139
  ],
139
140
  ).toFixed(1)
140
141
  ? +parseFloat(
141
- serviceItem.operator_details[ratingIndex][
142
+ serviceItem.operator_details[handleRating][
142
143
  Object.keys(
143
- serviceItem.operator_details[ratingIndex] &&
144
- serviceItem.operator_details[ratingIndex],
144
+ serviceItem.operator_details[handleRating] &&
145
+ serviceItem.operator_details[handleRating],
145
146
  )[2]
146
147
  ],
147
148
  ).toFixed(1)
@@ -152,26 +153,26 @@ const RatingHover: React.FC<RatingHoverProps> = ({
152
153
  />
153
154
  <RatingItem
154
155
  rating={
155
- serviceItem.operator_details[ratingIndex] &&
156
- serviceItem.operator_details[ratingIndex][
156
+ serviceItem.operator_details[handleRating] &&
157
+ serviceItem.operator_details[handleRating][
157
158
  Object.keys(
158
- serviceItem.operator_details[ratingIndex] &&
159
- serviceItem.operator_details[ratingIndex],
159
+ serviceItem.operator_details[handleRating] &&
160
+ serviceItem.operator_details[handleRating],
160
161
  )[3]
161
162
  ] &&
162
163
  parseFloat(
163
- serviceItem.operator_details[ratingIndex][
164
+ serviceItem.operator_details[handleRating][
164
165
  Object.keys(
165
- serviceItem.operator_details[ratingIndex] &&
166
- serviceItem.operator_details[ratingIndex],
166
+ serviceItem.operator_details[handleRating] &&
167
+ serviceItem.operator_details[handleRating],
167
168
  )[3]
168
169
  ],
169
170
  ).toFixed(1)
170
171
  ? +parseFloat(
171
- serviceItem.operator_details[ratingIndex][
172
+ serviceItem.operator_details[handleRating][
172
173
  Object.keys(
173
- serviceItem.operator_details[ratingIndex] &&
174
- serviceItem.operator_details[ratingIndex],
174
+ serviceItem.operator_details[handleRating] &&
175
+ serviceItem.operator_details[handleRating],
175
176
  )[3]
176
177
  ],
177
178
  ).toFixed(1)
@@ -184,14 +185,14 @@ const RatingHover: React.FC<RatingHoverProps> = ({
184
185
 
185
186
  {/* Footer */}
186
187
  <div
187
- className="px-1 py-2 text-center text-[12px] font9"
188
+ className="px-3 py-2 text-center text-[12px] font9 text-wrap"
188
189
  style={{
189
190
  backgroundColor: isSoldOut ? "#f5f5f5" : colors.ratingBottomColor,
190
191
  color: isSoldOut ? "#c0c0c1" : "#ff8f45",
191
192
  }}
192
193
  >
193
194
  {`${translation?.ratingMouseOverCalculationText} ${
194
- Object.values(serviceItem.operator_details)[5]
195
+ Object.values(serviceItem.operator_details)[handleBottomRating]
195
196
  } ${translation?.ratingMouseOverCalculationUsers}`}
196
197
  </div>
197
198
  </div>