mautourco-components 0.2.78 → 0.2.80

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.
@@ -28,6 +28,10 @@ var CarBookingCard = function (_a) {
28
28
  var _u = useState([]), selectedSupplements = _u[0], setSelectedSupplements = _u[1];
29
29
  var dropdownRef = useRef(null);
30
30
  var panelRef = useRef(null);
31
+ // Synchronize internal isSelected state with the state prop when it changes from parent
32
+ useEffect(function () {
33
+ setIsSelected(state === 'selected');
34
+ }, [state]);
31
35
  var resolvedShowSupplement = showSupplement !== null && showSupplement !== void 0 ? showSupplement : Boolean(supplements.length > 0 && transfers.length > 0);
32
36
  var hasSupplementsSelected = selectedSupplements.some(function (s) { return s.value > 0; });
33
37
  // Close dropdown when clicking outside
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mautourco-components",
3
- "version": "0.2.78",
3
+ "version": "0.2.80",
4
4
  "private": false,
5
5
  "description": "Bibliothèque de composants Mautourco pour le redesign",
6
6
  "main": "dist/index.js",
@@ -11,6 +11,7 @@
11
11
  "files": [
12
12
  "dist",
13
13
  "src/components",
14
+ "src/types",
14
15
  "src/styles",
15
16
  "README.md"
16
17
  ],
@@ -104,6 +104,11 @@ const CarBookingCard: React.FC<CarBookingCardProps> = ({
104
104
  const dropdownRef = useRef<HTMLDivElement>(null);
105
105
  const panelRef = useRef<HTMLDivElement>(null);
106
106
 
107
+ // Synchronize internal isSelected state with the state prop when it changes from parent
108
+ useEffect(() => {
109
+ setIsSelected(state === 'selected');
110
+ }, [state]);
111
+
107
112
  const resolvedShowSupplement =
108
113
  showSupplement ?? Boolean(supplements.length > 0 && transfers.length > 0);
109
114
 
@@ -0,0 +1,13 @@
1
+ import { ServiceDocket } from './services.types';
2
+
3
+ export interface DocketPrice {
4
+ currency: string;
5
+ amount: number;
6
+ }
7
+
8
+ export interface Docket {
9
+ id: number | string;
10
+ services: ServiceDocket[];
11
+ prices: DocketPrice[];
12
+ dockets?: Docket[];
13
+ }
@@ -0,0 +1,142 @@
1
+ import { CancellationPolicy, Offer } from '../table';
2
+
3
+ type ServiceType = 'accommodation' | 'transfer' | 'excursion' | 'otherService';
4
+ export interface ServiceDocket {
5
+ type: ServiceType;
6
+ }
7
+
8
+ export interface HotelAmenity {
9
+ AmenityIcon: string;
10
+ AmenityName: string;
11
+ }
12
+
13
+ export interface RoomDocket {
14
+ room_detail_id?: number;
15
+ Dates: string[];
16
+ RoomName?: string;
17
+ RoomPrice?: number;
18
+ RoomAmenities?: Record<string, any>;
19
+ RoomImage?: string;
20
+ AdultCount?: number;
21
+ TeenCount?: number;
22
+ ChildCount?: number;
23
+ InfantCount?: number;
24
+ MealPlan?: string;
25
+ Mealsupplement?: number;
26
+ quotationPrice?: number;
27
+ ClientType?: string;
28
+ cancellation_policy?: CancellationPolicy[];
29
+ Offers?: Offer[];
30
+ Status?: string;
31
+ Mandatory?: any[];
32
+ paxAge?: any[];
33
+ isEmpty?: boolean;
34
+ }
35
+
36
+ export interface AccomodationDocket extends ServiceDocket {
37
+ type: 'accommodation';
38
+ HotelName: string;
39
+ HotelId: number;
40
+ HotelAmenities: HotelAmenity[];
41
+ Dates: [string, string];
42
+ Images: string[];
43
+ Total: string;
44
+ Currency: string;
45
+ Description: string;
46
+ TitleDescription: string;
47
+ Rooms: RoomDocket[];
48
+ }
49
+
50
+ export interface TransferDocket extends ServiceDocket {
51
+ type: 'transfer';
52
+ IdTransfer: number;
53
+ TransferDate: string;
54
+ TransferTime: string;
55
+ TransferType: string;
56
+
57
+ LocationFromId: number;
58
+ LocationFromName: string;
59
+ LocationFromDetails: string;
60
+
61
+ LocationToId: number;
62
+ LocationToName: string;
63
+ LocationToDetails: string;
64
+
65
+ Currency: string;
66
+ TotalPrice: number;
67
+
68
+ AdultCount: number;
69
+ TeenCount: number;
70
+ ChildCount: number;
71
+ InfantCount: number;
72
+
73
+ VehicleTypeId: number;
74
+ VehicleTypeName: string;
75
+ vehicleTypeCategory: string;
76
+ Vehicle_type: string;
77
+ capacity: number;
78
+
79
+ CarCount: number;
80
+ Car_selected: boolean;
81
+ luggage: any[];
82
+ LuggageTruck: number;
83
+ LuggageCar: number;
84
+ baby_seat_count: number;
85
+
86
+ HandlingFee: string;
87
+ HandlingFeeAdult: number;
88
+ HandlingFeeChild: number;
89
+ HandlingFeeDetails: string | null;
90
+ HandlingType: string;
91
+
92
+ Remarks: string;
93
+ Flight: string;
94
+ Pic_url: string;
95
+
96
+ IsSearched: boolean;
97
+ IsFieldManually: boolean;
98
+
99
+ paxAge: any[];
100
+
101
+ otherServices: {
102
+ serviceDetailID: number;
103
+ serviceID: number;
104
+ clientRefs: any[];
105
+ }[];
106
+ }
107
+
108
+ export interface ExcursionDocket extends ServiceDocket {
109
+ type: 'excursion';
110
+ ExcursionID: number;
111
+ ExcursionName: string;
112
+ ServiceDate: string;
113
+ SelectedHotel?: string;
114
+ SelectedHotelDetails?: string;
115
+ Currency: string;
116
+ TotalPrice: string | number;
117
+ AdultCount: number;
118
+ TeenCount?: number;
119
+ ChildCount?: number;
120
+ InfantCount?: number;
121
+ Duration?: string;
122
+ MealIncluded?: boolean;
123
+ Meal?: string;
124
+ Accessibility?: string;
125
+ VehicleType?: string;
126
+ VehicleTypeName?: string;
127
+ paxAge?: any[];
128
+ }
129
+
130
+ export interface OtherServiceDocket extends ServiceDocket {
131
+ type: 'otherService';
132
+ service_detail_id: number;
133
+ service_for: string;
134
+ service_date?: string;
135
+ Currency: string;
136
+ TotalPrice: string | number;
137
+ AdultCount: number;
138
+ TeenCount?: number;
139
+ ChildCount?: number;
140
+ InfantCount?: number;
141
+ paxAge?: any[];
142
+ }
@@ -0,0 +1,6 @@
1
+ export enum ActionDropdownType {
2
+ ADD_ITEM = 'add_item',
3
+ SEND_VIA_MAIL = 'send_via_mail',
4
+ CANCEL_SERVICES = 'cancel_services',
5
+ DELETE_QUOTE = 'delete_quote',
6
+ }
@@ -0,0 +1,32 @@
1
+ import { TableRowData } from '../../components/organisms/Table/Table';
2
+
3
+ export interface BookingListItem extends TableRowData<BookingListItem> {
4
+ agency_name: string;
5
+ created_by: string;
6
+ created_date: string;
7
+ status: string;
8
+ file_name: string;
9
+ booking_id: number;
10
+ date: string[];
11
+ pax_details: {
12
+ adult: number;
13
+ teen: number;
14
+ child: number;
15
+ infant: number;
16
+ };
17
+ }
18
+
19
+ export interface BookingPaxAge {
20
+ age: string | number;
21
+ }
22
+
23
+ export interface BookingPax {
24
+ adult: BookingPaxAge[];
25
+ teen: BookingPaxAge[];
26
+ child: BookingPaxAge[];
27
+ infant: BookingPaxAge[];
28
+ }
29
+
30
+ export interface BookingPaxDetail {
31
+ pax: BookingPax[];
32
+ }
@@ -0,0 +1,172 @@
1
+ import { TableRowData } from '../../components/organisms/Table/Table';
2
+
3
+ export enum ServiceType {
4
+ ACCOMMODATION = 'accommodation',
5
+ TRANSFER = 'transfer',
6
+ EXCURSION = 'excursion',
7
+ OTHER_SERVICE = 'otherService',
8
+ }
9
+
10
+ export interface HotelAmenity {
11
+ AmenityIcon: string;
12
+ AmenityName: string;
13
+ }
14
+
15
+ export interface CancellationPolicy {
16
+ Description: string;
17
+ Value: number;
18
+ ValidFrom: string;
19
+ ValidTo: string;
20
+ }
21
+
22
+ export interface Offer {
23
+ OfferId: number;
24
+ OfferValue: number;
25
+ OfferName: string;
26
+ OfferType: string;
27
+ OfferDescription: string;
28
+ }
29
+
30
+ export interface RoomItem {
31
+ RoomDetailId: number;
32
+ Offers: Offer[];
33
+ Mandatory: any[];
34
+ RoomStatus: string;
35
+ RoomName: string;
36
+ RoomAmenities: Record<string, any>;
37
+ RoomImage: string;
38
+ AdultCount: number;
39
+ TeenCount: number;
40
+ ChildCount: number;
41
+ InfantCount: number;
42
+ MealPlanId: number;
43
+ MealPlan: string;
44
+ cancellation_policy: CancellationPolicy[];
45
+ ClientCategory: string;
46
+ Total: string;
47
+ GroupingUuid: string;
48
+ ClientDetails: any[];
49
+ ChildAge?: number[];
50
+ TeenAge?: number[];
51
+ InfantAge?: number[];
52
+ Dates: string[];
53
+ }
54
+
55
+ export interface Room extends TableRowData<DetailResumeItem>, RoomItem {}
56
+
57
+ export interface DetailResumeAccommodation
58
+ extends TableRowData<DetailResumeItem>, Partial<Room> {
59
+ Type: ServiceType;
60
+ HotelId: number;
61
+ HotelName: string;
62
+ HotelAmenities: HotelAmenity[];
63
+ MainImage: string;
64
+ Images: string[];
65
+ Total: string;
66
+ Currency: string;
67
+ Description: string;
68
+ TitleDescription: string;
69
+ Rooms: Room[];
70
+ }
71
+
72
+ export interface DetailResumeTransfer extends TableRowData<DetailResumeItem> {
73
+ Type: ServiceType;
74
+ ServiceId: number;
75
+ TransferType: 'ARV' | 'DEP' | string;
76
+ LocationFromId: number;
77
+ LocationToId: number;
78
+ Remarks: string | null;
79
+ Flight: any | null;
80
+ TransferCategoryId: number;
81
+ VehicleTypeId: number;
82
+ Currency: string;
83
+ TotalPrice: string;
84
+ TransferDate: string;
85
+ TransferTime: string;
86
+ AdultCount: number;
87
+ TeenCount: number;
88
+ ChildCount: number;
89
+ InfantCount: number;
90
+ BabySeat: number;
91
+ AirConditionning: boolean;
92
+ LuggageTruck: number;
93
+ LuggageCar: number;
94
+ CarCount: number;
95
+ ChildAge: number[];
96
+ TeenAge: number[];
97
+ InfantAge: number[];
98
+ HandlingFee: string;
99
+ VehicleImage: string;
100
+ MaxLuggage: string;
101
+ BabySeatId: number;
102
+ BabySeatDetailId: number;
103
+ TransferCategoryName: string;
104
+ VehicleTypeName: string;
105
+ LocationFromName: string;
106
+ LocationFromDetails: string;
107
+ LocationToName: string;
108
+ LocationToDetails: string;
109
+ }
110
+
111
+ export interface DetailResumeExcursion extends TableRowData<DetailResumeItem> {
112
+ Type: ServiceType;
113
+ ServiceId: number;
114
+ ExcursionID: number;
115
+ ExcursionCategoryID: number;
116
+ ServiceDate: string;
117
+ SelectedHotelId: number;
118
+ Currency: string;
119
+ SelectedHotel: string;
120
+ SelectedHotelDetails: string;
121
+ LocationToName: string;
122
+ LocationToDetails: string;
123
+ ToursType: string;
124
+ Remarks: string;
125
+ ClientDetails: any[];
126
+ AdultCount: number;
127
+ TeenCount: number;
128
+ ChildCount: number;
129
+ InfantCount: number;
130
+ TotalPrice: string;
131
+ Description: string;
132
+ TransferType: string;
133
+ AvailableLanguages: string[];
134
+ Duration: string;
135
+ ExcursionName: string;
136
+ MealIncluded: boolean;
137
+ ServiceName: string;
138
+ TransferIncluded: boolean;
139
+ Tagline: string;
140
+ Region: string;
141
+ MiniDescription: string;
142
+ CancellationPolicy: string;
143
+ MainExcursionImage: string;
144
+ Accessibility: string;
145
+ }
146
+
147
+ export interface DetailResumeOtherService extends TableRowData<DetailResumeItem> {
148
+ Type: ServiceType;
149
+ quote: number;
150
+ service_for: string;
151
+ service_detail_id: number;
152
+ service_date: string;
153
+ remarks: string;
154
+ currency: string;
155
+ unit: number;
156
+ adult_pax: number;
157
+ child_pax: number;
158
+ teen_pax: number;
159
+ infant_pax: number;
160
+ child_age: number[] | null;
161
+ teen_age: number[] | null;
162
+ infant_age: number[] | null;
163
+ total_price: string;
164
+ created_at: string;
165
+ active: number;
166
+ }
167
+
168
+ export type DetailResumeItem =
169
+ | DetailResumeAccommodation
170
+ | DetailResumeTransfer
171
+ | DetailResumeExcursion
172
+ | DetailResumeOtherService;
@@ -0,0 +1,3 @@
1
+ export * from './action-dropdown-type.types';
2
+ export * from './detail-resume.types';
3
+ export * from './quotation.types';
@@ -0,0 +1,24 @@
1
+ import { TableRowData } from '../../components/organisms/Table/Table';
2
+
3
+ export interface QuotationListItem extends TableRowData<QuotationListItem> {
4
+ agency_name: string;
5
+ client_type: string;
6
+ created_by: string;
7
+ created_date: string;
8
+ status: string;
9
+ file_name: string;
10
+ file_nb: string;
11
+ date: string[];
12
+ service_count: {
13
+ accom_count: number;
14
+ transfer_count: number;
15
+ tours_count: number;
16
+ others_count: number;
17
+ };
18
+ pax_details: {
19
+ adult: number;
20
+ teen: number;
21
+ child: number;
22
+ infant: number;
23
+ };
24
+ }