@almatar/smart-booking-dashboard 0.0.1 → 0.0.2-alpha.3

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 (128) hide show
  1. package/esm2022/lib/components/action-card/action-card.component.mjs +3 -3
  2. package/esm2022/lib/components/add-note-dialog/add-note-dialog.component.mjs +3 -3
  3. package/esm2022/lib/components/almatar-aside/aside-back-button.service.mjs +24 -0
  4. package/esm2022/lib/components/almatar-aside/aside.component.mjs +122 -0
  5. package/esm2022/lib/components/booking-input/booking-input.component.mjs +4 -3
  6. package/esm2022/lib/components/cancel-dialog/cancel-dialog.component.mjs +53 -4
  7. package/esm2022/lib/components/data-search/data-search.component.mjs +3 -3
  8. package/esm2022/lib/components/hotel-cancel/almatar-hotel-auto-cancellation.component.mjs +544 -0
  9. package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-method/almatar-hotel-auto-cancellation-refund-method.component.mjs +43 -0
  10. package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-summary/almatar-hotel-auto-cancellation-refund-summary.component.mjs +296 -0
  11. package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/almatar-hotel-auto-cancellation-select-rooms.component.mjs +88 -0
  12. package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-non-refundable-room/almatar-hotel-auto-cancellation-non-refundable-room.component.mjs +242 -0
  13. package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-refundable-room/almatar-hotel-auto-cancellation-refundable-room.component.mjs +48 -0
  14. package/esm2022/lib/components/hotel-cancel/components/hotel-content/hotel-content.component.mjs +129 -0
  15. package/esm2022/lib/components/hotel-cancel/components/hotel-refund-method-selector/hotel-refund-method-selector.component.mjs +321 -0
  16. package/esm2022/lib/components/hotel-cancel/components/result-overlay/result-overlay.component.mjs +52 -0
  17. package/esm2022/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-endpoints.enum.mjs +9 -0
  18. package/esm2022/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-step.enum.mjs +7 -0
  19. package/esm2022/lib/components/hotel-cancel/interfaces/i-almatar-hotel-auto-cancellation.interface.mjs +2 -0
  20. package/esm2022/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation-endpoints.service.mjs +457 -0
  21. package/esm2022/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation.service.mjs +55 -0
  22. package/esm2022/lib/components/hotel-itinerary-card/hotel-itinerary-card.component.mjs +48 -0
  23. package/esm2022/lib/components/reissue-dialog/reissue-dialog.component.mjs +135 -0
  24. package/esm2022/lib/components/reissue-dialog/reissue-upgrade.store.mjs +305 -0
  25. package/esm2022/lib/components/reissue-dialog/reissue.store.mjs +349 -0
  26. package/esm2022/lib/components/reissue-dialog/steps/reissue-date-step/reissue-date-step.component.mjs +45 -0
  27. package/esm2022/lib/components/reissue-dialog/steps/reissue-legs-step/reissue-legs-step.component.mjs +140 -0
  28. package/esm2022/lib/components/reissue-dialog/steps/reissue-notice/reissue-notice.component.mjs +16 -0
  29. package/esm2022/lib/components/reissue-dialog/steps/reissue-route-step/reissue-route-step.component.mjs +104 -0
  30. package/esm2022/lib/components/reissue-dialog/steps/reissue-service-step/reissue-service-step.component.mjs +44 -0
  31. package/esm2022/lib/components/reissue-dialog/steps/reissue-upgrade-confirm-step/reissue-upgrade-confirm-step.component.mjs +193 -0
  32. package/esm2022/lib/components/reissue-dialog/steps/reissue-upgrade-step/reissue-upgrade-step.component.mjs +88 -0
  33. package/esm2022/lib/components/result-panel/result-panel.component.mjs +3 -3
  34. package/esm2022/lib/components/shared/components/confirm-modal/confirm-modal.component.mjs +75 -0
  35. package/esm2022/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.mjs +46 -0
  36. package/esm2022/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.mjs +9 -0
  37. package/esm2022/lib/components/shared/interfaces/i-flight-refund-details.mjs +86 -0
  38. package/esm2022/lib/components/shared/models/cancel-hotel-booking.model.mjs +7 -0
  39. package/esm2022/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.mjs +27 -0
  40. package/esm2022/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.mjs +17 -0
  41. package/esm2022/lib/components/workflow-actions/workflow-actions.component.mjs +5 -3
  42. package/esm2022/lib/config/dashboard.config.mjs +3 -1
  43. package/esm2022/lib/config/hotel-actions.config.mjs +21 -1
  44. package/esm2022/lib/models/booking.types.mjs +73 -2
  45. package/esm2022/lib/models/reissue.types.mjs +2 -0
  46. package/esm2022/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.mjs +31 -7
  47. package/esm2022/lib/services/booking.service.mjs +6 -2
  48. package/esm2022/lib/services/reissue.service.mjs +142 -0
  49. package/esm2022/lib/services/toast.service.mjs +15 -7
  50. package/esm2022/lib/shared/components/currency-code-icon/currency-code-icon.component.mjs +35 -0
  51. package/esm2022/lib/shared/enums/brand-enums.enum.mjs +7 -0
  52. package/esm2022/lib/shared/environments/environment.mjs +10 -0
  53. package/esm2022/lib/shared/models/index.mjs +6 -0
  54. package/esm2022/lib/shared/modules/almatar-icon/almatar-icon.module.mjs +36 -0
  55. package/esm2022/lib/shared/modules/loader/loader.module.mjs +43 -0
  56. package/esm2022/lib/shared/pipes/exchange.pipe.mjs +49 -0
  57. package/esm2022/lib/shared/services/api.service.mjs +42 -0
  58. package/esm2022/lib/shared/services/shared.service.mjs +34 -0
  59. package/esm2022/lib/shared/services/translation.service.mjs +61 -0
  60. package/esm2022/lib/shared/services/webengage-tracking.service.mjs +28 -0
  61. package/esm2022/lib/shared/store/selectors/currency.selectors.mjs +9 -0
  62. package/esm2022/lib/utils/reissue-format.mjs +64 -0
  63. package/esm2022/lib/utils/reissue-url.builder.mjs +314 -0
  64. package/esm2022/public-api.mjs +3 -1
  65. package/fesm2022/almatar-smart-booking-dashboard.mjs +5387 -395
  66. package/fesm2022/almatar-smart-booking-dashboard.mjs.map +1 -1
  67. package/lib/components/action-dialog/action-dialog.component.d.ts +1 -1
  68. package/lib/components/almatar-aside/aside-back-button.service.d.ts +11 -0
  69. package/lib/components/almatar-aside/aside.component.d.ts +46 -0
  70. package/lib/components/cancel-dialog/cancel-dialog.component.d.ts +7 -0
  71. package/lib/components/hotel-cancel/almatar-hotel-auto-cancellation.component.d.ts +97 -0
  72. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-method/almatar-hotel-auto-cancellation-refund-method.component.d.ts +25 -0
  73. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-summary/almatar-hotel-auto-cancellation-refund-summary.component.d.ts +91 -0
  74. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/almatar-hotel-auto-cancellation-select-rooms.component.d.ts +39 -0
  75. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-non-refundable-room/almatar-hotel-auto-cancellation-non-refundable-room.component.d.ts +44 -0
  76. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-refundable-room/almatar-hotel-auto-cancellation-refundable-room.component.d.ts +19 -0
  77. package/lib/components/hotel-cancel/components/hotel-content/hotel-content.component.d.ts +38 -0
  78. package/lib/components/hotel-cancel/components/hotel-refund-method-selector/hotel-refund-method-selector.component.d.ts +142 -0
  79. package/lib/components/hotel-cancel/components/result-overlay/result-overlay.component.d.ts +23 -0
  80. package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-endpoints.enum.d.ts +7 -0
  81. package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-step.enum.d.ts +5 -0
  82. package/lib/components/hotel-cancel/interfaces/i-almatar-hotel-auto-cancellation.interface.d.ts +252 -0
  83. package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation-endpoints.service.d.ts +88 -0
  84. package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation.service.d.ts +21 -0
  85. package/lib/components/hotel-itinerary-card/hotel-itinerary-card.component.d.ts +16 -0
  86. package/lib/components/reissue-dialog/reissue-dialog.component.d.ts +34 -0
  87. package/lib/components/reissue-dialog/reissue-upgrade.store.d.ts +96 -0
  88. package/lib/components/reissue-dialog/reissue.store.d.ts +124 -0
  89. package/lib/components/reissue-dialog/steps/reissue-date-step/reissue-date-step.component.d.ts +11 -0
  90. package/lib/components/reissue-dialog/steps/reissue-legs-step/reissue-legs-step.component.d.ts +16 -0
  91. package/lib/components/reissue-dialog/steps/reissue-notice/reissue-notice.component.d.ts +8 -0
  92. package/lib/components/reissue-dialog/steps/reissue-route-step/reissue-route-step.component.d.ts +21 -0
  93. package/lib/components/reissue-dialog/steps/reissue-service-step/reissue-service-step.component.d.ts +17 -0
  94. package/lib/components/reissue-dialog/steps/reissue-upgrade-confirm-step/reissue-upgrade-confirm-step.component.d.ts +28 -0
  95. package/lib/components/reissue-dialog/steps/reissue-upgrade-step/reissue-upgrade-step.component.d.ts +13 -0
  96. package/lib/components/result-panel/result-panel.component.d.ts +1 -1
  97. package/lib/components/shared/components/confirm-modal/confirm-modal.component.d.ts +17 -0
  98. package/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.d.ts +10 -0
  99. package/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.d.ts +7 -0
  100. package/lib/components/shared/interfaces/i-flight-refund-details.d.ts +73 -0
  101. package/lib/components/shared/models/cancel-hotel-booking.model.d.ts +6 -0
  102. package/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.d.ts +11 -0
  103. package/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.d.ts +7 -0
  104. package/lib/components/workflow-actions/workflow-actions.component.d.ts +3 -1
  105. package/lib/config/dashboard.config.d.ts +29 -0
  106. package/lib/models/booking.types.d.ts +28 -0
  107. package/lib/models/reissue.types.d.ts +147 -0
  108. package/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.d.ts +5 -1
  109. package/lib/services/reissue.service.d.ts +45 -0
  110. package/lib/services/toast.service.d.ts +14 -1
  111. package/lib/shared/components/currency-code-icon/currency-code-icon.component.d.ts +13 -0
  112. package/lib/shared/enums/brand-enums.enum.d.ts +5 -0
  113. package/lib/shared/environments/environment.d.ts +7 -0
  114. package/lib/shared/models/index.d.ts +11 -0
  115. package/lib/shared/modules/almatar-icon/almatar-icon.module.d.ts +13 -0
  116. package/lib/shared/modules/loader/loader.module.d.ts +13 -0
  117. package/lib/shared/pipes/exchange.pipe.d.ts +17 -0
  118. package/lib/shared/services/api.service.d.ts +43 -0
  119. package/lib/shared/services/shared.service.d.ts +12 -0
  120. package/lib/shared/services/translation.service.d.ts +17 -0
  121. package/lib/shared/services/webengage-tracking.service.d.ts +8 -0
  122. package/lib/shared/store/selectors/currency.selectors.d.ts +2 -0
  123. package/lib/utils/reissue-format.d.ts +28 -0
  124. package/lib/utils/reissue-url.builder.d.ts +24 -0
  125. package/package.json +9 -24
  126. package/public-api.d.ts +5 -1
  127. package/LICENSE +0 -21
  128. package/README.md +0 -132
@@ -0,0 +1,7 @@
1
+ export declare enum AlmatarHotelAutoCancellationEndpointsEnum {
2
+ getRefundDetails = "/api/v1/fcr/refund/backoffice/details",
3
+ processAutoCancellation = "/api/v1/fcr/refund/backoffice",
4
+ uploadAttachment = "/api/v1/fcr/refund/backoffice/upload-attachment",
5
+ nusukGetRefundDetails = "api/v1/nusuk/fcr/refund/details",
6
+ nusukProcessAutoCancellation = "api/v1/nusuk/fcr/refund"
7
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum AlmatarHotelAutoCancellationStepEnum {
2
+ selectRooms = "select_rooms",
3
+ refundSummary = "refund_summary",
4
+ refundMethod = "refund_method"
5
+ }
@@ -0,0 +1,252 @@
1
+ export interface IAlmatarHotelAutoCancellationRoom {
2
+ packageId: string;
3
+ roomName: string;
4
+ roomType?: string;
5
+ mealPlan?: string;
6
+ isRefundable?: boolean;
7
+ isSelected?: boolean;
8
+ nights?: number;
9
+ roomAmount: number;
10
+ cancellationFee: number;
11
+ refundAmount: number;
12
+ cancellationDate?: string;
13
+ currentCancellation?: boolean;
14
+ route?: string;
15
+ bedType?: string;
16
+ roomView?: string;
17
+ roomBasis?: string;
18
+ refundability?: boolean;
19
+ refundableUntil?: string;
20
+ cancelledBefore?: boolean;
21
+ roomId?: string | undefined;
22
+ manualRefundRequest?: boolean;
23
+ fee?: number;
24
+ adultsNum?: number;
25
+ childrenNum?: number;
26
+ infantsNum?: number;
27
+ passengerName?: string;
28
+ isCancelled?: boolean;
29
+ supplier?: string;
30
+ }
31
+ export interface IAlmatarHotelAutoCancellationPackageRoom {
32
+ roomId: string;
33
+ roomName: string;
34
+ roomType?: string;
35
+ bedType?: string;
36
+ roomBasis?: string;
37
+ }
38
+ export interface IAlmatarHotelAutoCancellationPackage {
39
+ packageId: string;
40
+ packageName: string;
41
+ boardBasis?: string;
42
+ isRefundable?: boolean;
43
+ isSelected?: boolean;
44
+ refundability?: boolean;
45
+ refundableUntil?: string;
46
+ rooms: IAlmatarHotelAutoCancellationPackageRoom[];
47
+ roomAmount: number;
48
+ cancellationFee: number;
49
+ refundAmount: number;
50
+ manualRefundRequest?: boolean;
51
+ cancelledBefore?: boolean;
52
+ cancellationPolicies?: IBookingPackageCancellationPolicy[];
53
+ fee?: number;
54
+ cancellationPoliciesRemarks?: {
55
+ mandatory?: string;
56
+ optional?: string;
57
+ };
58
+ isCancelled?: boolean;
59
+ supplier?: string;
60
+ }
61
+ export interface IBookingPackageRoom {
62
+ roomId: string;
63
+ roomName: string;
64
+ roomType: string;
65
+ roomView: string;
66
+ roomBasis: string;
67
+ bedType: string;
68
+ adultsNum?: number;
69
+ childrenNum?: number;
70
+ infantsNum?: number;
71
+ passengers?: {
72
+ name?: string;
73
+ };
74
+ }
75
+ export interface IBookingPackageCancellationPolicy {
76
+ fromDate: string;
77
+ toDate: string;
78
+ penaltyType: string;
79
+ penaltyValue: number;
80
+ }
81
+ export interface IBookingPackage {
82
+ id: string;
83
+ rooms: IBookingPackageRoom[];
84
+ cancellationPolicies: IBookingPackageCancellationPolicy[];
85
+ isRefundable: boolean;
86
+ refundableUntil: string;
87
+ refundability: boolean;
88
+ cancellationPoliciesRemarks?: {
89
+ mandatory?: string;
90
+ optional?: string;
91
+ };
92
+ isCancelled?: boolean;
93
+ supplier?: string;
94
+ }
95
+ export interface IAlmatarHotelAutoCancellationHotelInfo {
96
+ hotelName: string;
97
+ hotelImage?: string;
98
+ checkIn: any;
99
+ checkOut: any;
100
+ totalRooms: number;
101
+ nights: number;
102
+ checkInTime: string;
103
+ checkOutTime: string;
104
+ }
105
+ export interface IAlmatarHotelAutoCancellationRefundSummary {
106
+ totalPaid: number;
107
+ totalRefund: number;
108
+ rooms: IAlmatarHotelAutoCancellationRoom[];
109
+ packages?: IAlmatarHotelAutoCancellationRefundPackage[];
110
+ summaries?: IRefundSummaryItem[];
111
+ payout?: IRefundPayout;
112
+ totals?: any;
113
+ totalFees?: number;
114
+ coupon?: number;
115
+ giftsTotal?: number;
116
+ giftsDetails?: IGift[];
117
+ serviceFee?: number;
118
+ surcharge?: number;
119
+ goldenGift?: boolean;
120
+ previousRooms?: IRefundPreviousRoom[];
121
+ }
122
+ export interface IRefundRoomPax {
123
+ adults: number;
124
+ children: number;
125
+ total: number;
126
+ }
127
+ export interface IAlmatarHotelAutoCancellationRefundPackageRoom {
128
+ roomId: string;
129
+ roomName: string;
130
+ basis?: string;
131
+ nights?: number;
132
+ pax?: IRefundRoomPax;
133
+ adults?: number;
134
+ children?: number;
135
+ }
136
+ export interface IGroupedRoom {
137
+ roomName: string;
138
+ count: number;
139
+ nights?: number;
140
+ adults?: number;
141
+ basis?: string;
142
+ }
143
+ export interface IAlmatarHotelAutoCancellationRefundPackage {
144
+ packageId: string;
145
+ packageName: string;
146
+ rooms: IAlmatarHotelAutoCancellationRefundPackageRoom[];
147
+ amount: number;
148
+ fee: number;
149
+ serviceFee: number;
150
+ refund: number;
151
+ refundable: boolean;
152
+ route?: string;
153
+ cancellationDate?: string;
154
+ cancelledBefore?: boolean;
155
+ }
156
+ export interface IRefundDetailsApiResponse {
157
+ status: number;
158
+ data: IRefundDetailsData;
159
+ errors: any;
160
+ }
161
+ export interface IRefundDetailsData {
162
+ bookingId: number;
163
+ currency: string;
164
+ status: string;
165
+ message: string;
166
+ flags: IRefundFlags;
167
+ selection: IRefundSelection;
168
+ totals: IRefundTotals;
169
+ previous: IRefundPreviousRoom[];
170
+ current: IRefundCurrent;
171
+ payout: IRefundPayout;
172
+ summaries: IRefundSummaryItem[];
173
+ gifts: IGift[];
174
+ }
175
+ export interface IRefundFlags {
176
+ refundable: boolean;
177
+ partial: boolean;
178
+ goldenGift: boolean;
179
+ }
180
+ export interface IRefundSelection {
181
+ packageIds: string[];
182
+ }
183
+ export interface IRefundTotals {
184
+ paid: number;
185
+ beforeCoupon: number;
186
+ roomsBooked: number;
187
+ coupon: number;
188
+ gifts: number;
189
+ serviceFee: number;
190
+ wallet: number;
191
+ card: number;
192
+ tabby: number;
193
+ tamara: number;
194
+ mokafa: number;
195
+ qitaf: number;
196
+ }
197
+ export interface IRefundPreviousRoom {
198
+ packageId: string;
199
+ roomName: string;
200
+ amount: number;
201
+ fee: number;
202
+ refunded: number;
203
+ cancelledAt: string;
204
+ roomId?: string | undefined;
205
+ nights?: any;
206
+ }
207
+ export interface IRefundCurrentRoom {
208
+ packageId: string;
209
+ roomName: string;
210
+ amount: number;
211
+ fee: number;
212
+ refund: number;
213
+ refundable: boolean;
214
+ route: string;
215
+ roomId?: string | undefined;
216
+ nights?: any;
217
+ }
218
+ export interface IRefundCurrent {
219
+ rooms: IRefundCurrentRoom[];
220
+ amount: number;
221
+ fee: number;
222
+ surcharge: number;
223
+ refund: number;
224
+ }
225
+ export interface IRefundPayout {
226
+ alreadyRefunded: number;
227
+ current: number;
228
+ afterThis: number;
229
+ feesTotal: number;
230
+ wallet: number;
231
+ card: number;
232
+ tabby: number;
233
+ tamara: number;
234
+ loyaltyToWallet: number;
235
+ note: string | null;
236
+ }
237
+ export interface IRefundSummaryItem {
238
+ code: string;
239
+ label: string;
240
+ paid: number;
241
+ refund: number;
242
+ refundable: boolean;
243
+ gateway?: string;
244
+ }
245
+ export interface IGift {
246
+ id: number;
247
+ key: string | null;
248
+ name: string;
249
+ amount: number;
250
+ refundable: boolean;
251
+ refund: number;
252
+ }
@@ -0,0 +1,88 @@
1
+ import { Observable } from 'rxjs';
2
+ import { IAlmatarHotelAutoCancellationRoom, IAlmatarHotelAutoCancellationRefundSummary, IAlmatarHotelAutoCancellationRefundPackage, IRefundDetailsApiResponse, IRefundDetailsData } from '../interfaces/i-almatar-hotel-auto-cancellation.interface';
3
+ import * as i0 from "@angular/core";
4
+ export interface IRefundDetailsRequest {
5
+ bookingId: string;
6
+ product: 'hotels';
7
+ packageIds: string[];
8
+ }
9
+ export interface IProcessCancellationRequest {
10
+ bookingId: string;
11
+ product: 'hotels';
12
+ packageIds: string[];
13
+ preferredPaymentMethod?: string;
14
+ }
15
+ export interface IProcessNonRefundableCancellationRequest {
16
+ bookingId: string;
17
+ product: 'hotels';
18
+ packageIds: string[];
19
+ preferredPaymentMethod: string;
20
+ processedMode: 'auto';
21
+ language: string;
22
+ attachmentUrl: string;
23
+ }
24
+ export interface IAutoCancellationProcessResponse {
25
+ status: number;
26
+ data: {
27
+ error: string;
28
+ message: string;
29
+ bookingId: number;
30
+ preferredPaymentMethod: string;
31
+ isWhatsApp?: boolean;
32
+ cancel: {
33
+ status: string;
34
+ packageIds: string[];
35
+ };
36
+ refund: {
37
+ status: string;
38
+ bookingStatus: string;
39
+ amount: number;
40
+ currency: string;
41
+ breakdown: {
42
+ wallet: number;
43
+ mokafa: number;
44
+ qitaf: number;
45
+ card: number;
46
+ tabby: number;
47
+ tamara: number;
48
+ };
49
+ };
50
+ };
51
+ errors: any;
52
+ }
53
+ export declare class AlmatarHotelAutoCancellationEndpointsService {
54
+ private readonly api;
55
+ private readonly apiBase;
56
+ private readonly route;
57
+ private readonly hotelManageBookingService;
58
+ private readonly _almatarBookingId;
59
+ private readonly _confirmationNumber;
60
+ private readonly _isNusukFlow;
61
+ private readonly _selectedPackageIds;
62
+ readonly almatarBookingId: import("@angular/core").Signal<string>;
63
+ readonly confirmationNumber: import("@angular/core").Signal<string>;
64
+ readonly isNusukFlow: import("@angular/core").Signal<boolean>;
65
+ constructor();
66
+ private initializeBookingData;
67
+ /**
68
+ * Full URL of an endpoint from the enum. The enum paths start with `/api/`, which is the default `apiBase`; a host
69
+ * that serves the API somewhere else (Helix: its own API origin) sets `apiBase`, so that part is swapped for it.
70
+ */
71
+ resolveEndpoint(path: string): string;
72
+ getRefundDetails(packageIds?: string[]): Observable<IRefundDetailsApiResponse>;
73
+ mapApiResponseToRooms(data: IRefundDetailsData): IAlmatarHotelAutoCancellationRoom[];
74
+ mapApiResponseToRefundSummary(data: IRefundDetailsData): IAlmatarHotelAutoCancellationRefundSummary;
75
+ getAllPackages(data: IRefundDetailsData): IAlmatarHotelAutoCancellationRefundPackage[];
76
+ getAllRooms(data: IRefundDetailsData): IAlmatarHotelAutoCancellationRoom[];
77
+ processAutoCancellation(packageIds: string[], refundOption?: string): Observable<IAutoCancellationProcessResponse>;
78
+ processNonRefundableCancellation(packageId: string, attachmentUrl: string, language?: string): Observable<IAutoCancellationProcessResponse>;
79
+ calculateLocalRefundSummary(rooms: IAlmatarHotelAutoCancellationRoom[]): IAlmatarHotelAutoCancellationRefundSummary;
80
+ getSelectedPackageIds(): string[];
81
+ clearSelectedPackageIds(): void;
82
+ private getEntrySourceDeviceBrand;
83
+ private getEntrySource;
84
+ private getDevice;
85
+ private handleError;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationEndpointsService, never>;
87
+ static ɵprov: i0.ɵɵInjectableDeclaration<AlmatarHotelAutoCancellationEndpointsService>;
88
+ }
@@ -0,0 +1,21 @@
1
+ import { AlmatarHotelAutoCancellationStepEnum } from '../enums/almatar-hotel-auto-cancellation-step.enum';
2
+ import { IAlmatarHotelAutoCancellationRoom, IAlmatarHotelAutoCancellationHotelInfo, IAlmatarHotelAutoCancellationRefundSummary } from '../interfaces/i-almatar-hotel-auto-cancellation.interface';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AlmatarHotelAutoCancellationService {
5
+ readonly currentStep: import("@angular/core").WritableSignal<AlmatarHotelAutoCancellationStepEnum>;
6
+ readonly selectedRooms: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationRoom[]>;
7
+ readonly hotelInfo: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationHotelInfo>;
8
+ readonly refundSummary: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationRefundSummary>;
9
+ readonly selectedRoomsCount: import("@angular/core").Signal<number>;
10
+ readonly hasSelectedRooms: import("@angular/core").Signal<boolean>;
11
+ readonly totalRefundAmount: import("@angular/core").Signal<number>;
12
+ setCurrentStep(step: AlmatarHotelAutoCancellationStepEnum): void;
13
+ setSelectedRooms(rooms: IAlmatarHotelAutoCancellationRoom[]): void;
14
+ setHotelInfo(info: IAlmatarHotelAutoCancellationHotelInfo): void;
15
+ setRefundSummary(summary: IAlmatarHotelAutoCancellationRefundSummary): void;
16
+ toggleRoomSelection(packageId: string): void;
17
+ calculateRefundSummary(rooms: IAlmatarHotelAutoCancellationRoom[], totalPaid: number): IAlmatarHotelAutoCancellationRefundSummary;
18
+ reset(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationService, never>;
20
+ static ɵprov: i0.ɵɵInjectableDeclaration<AlmatarHotelAutoCancellationService>;
21
+ }
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SbdHotelItineraryCardComponent {
3
+ data: import("@angular/core").InputSignal<any>;
4
+ verified: import("@angular/core").InputSignal<boolean>;
5
+ private bi;
6
+ hotelInfo: import("@angular/core").Signal<any>;
7
+ checkinCheckout: import("@angular/core").Signal<any>;
8
+ roomInfo: import("@angular/core").Signal<any>;
9
+ passengers: import("@angular/core").Signal<any[]>;
10
+ payment: import("@angular/core").Signal<any>;
11
+ readonly typeLabel: Record<string, string>;
12
+ fmtTime(dt: string): string;
13
+ fmtShortDate(dt: string): string;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SbdHotelItineraryCardComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SbdHotelItineraryCardComponent, "app-sbd-hotel-itinerary-card", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "verified": { "alias": "verified"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,34 @@
1
+ import { ReissueServiceKey } from '../../models/reissue.types';
2
+ import { SbdReissueStore } from './reissue.store';
3
+ import { SbdReissueUpgradeStore } from './reissue-upgrade.store';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Reissue dialog shell: owns the p-dialog, the loading / error states and the footer, and swaps the step
7
+ * components. All state and rules live in `SbdReissueStore`; the steps only render and emit.
8
+ */
9
+ export declare class SbdReissueDialogComponent {
10
+ protected readonly store: SbdReissueStore;
11
+ protected readonly upgrade: SbdReissueUpgradeStore;
12
+ private readonly config;
13
+ private readonly injector;
14
+ visible: import("@angular/core").InputSignal<boolean>;
15
+ bookingId: import("@angular/core").InputSignal<string>;
16
+ bookingData: import("@angular/core").InputSignal<any>;
17
+ closed: import("@angular/core").OutputEmitterRef<void>;
18
+ /** Header title per screen, like the cancel dialog's "Select Leg to Cancel" / "Refund Method". */
19
+ protected readonly title: import("@angular/core").Signal<"Select Flight to Change" | "Choose New Date" | "Choose New Route" | "Select Flight to Upgrade" | "Choose New Class" | "Review Upgrade" | "Reissue Booking">;
20
+ /** Gray hint above the footer (cancel's "Select at least one flight to continue"), or why Search is disabled. */
21
+ protected readonly hint: import("@angular/core").Signal<string>;
22
+ constructor();
23
+ protected onServiceChosen(service: ReissueServiceKey): void;
24
+ /** Back from the options returns to "select leg" only when that step was shown (the upgrade store knows). */
25
+ protected onBack(): void;
26
+ /** The payment link expired: redo the whole reissue from the start (a new post-booking, the service list again). */
27
+ protected restartFlow(): void;
28
+ /** Redirects to the web search (new tab: the agent keeps the dashboard open next to the web flow). */
29
+ protected searchFlights(): Promise<void>;
30
+ /** The host's auth parameters for the web link; `{}` when it has none or it fails (the web then asks to log in). */
31
+ private redirectAuthParams;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<SbdReissueDialogComponent, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<SbdReissueDialogComponent, "app-sbd-reissue-dialog", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "bookingId": { "alias": "bookingId"; "required": false; "isSignal": true; }; "bookingData": { "alias": "bookingData"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
34
+ }
@@ -0,0 +1,96 @@
1
+ import { ReissuePaymentLink } from '../../models/reissue.types';
2
+ import { ReissueLegRow } from './reissue.store';
3
+ import * as i0 from "@angular/core";
4
+ /** View models for the Upgrade Class steps. */
5
+ export interface UpgradeOptionRow {
6
+ key: string;
7
+ name: string;
8
+ code: string;
9
+ extraLabel: string;
10
+ selected: boolean;
11
+ unavailable: boolean;
12
+ }
13
+ export interface UpgradeSectionRow {
14
+ id: string;
15
+ title: string;
16
+ current: string;
17
+ options: UpgradeOptionRow[];
18
+ }
19
+ export interface UpgradeSummaryRow {
20
+ title: string;
21
+ from: string;
22
+ to: string;
23
+ extraLabel: string;
24
+ }
25
+ /** What the primary button of the confirm step does. */
26
+ export type UpgradeAction = 'book' | 'link' | 'done';
27
+ /**
28
+ * Upgrade Class flow: pick the new class -> price it (choose-flight) -> confirm (book-now when nothing to pay,
29
+ * otherwise a backend-generated payment link). Reads the options the main store already loaded.
30
+ */
31
+ export declare class SbdReissueUpgradeStore {
32
+ private main;
33
+ private api;
34
+ private destroyRef;
35
+ readonly submitting: import("@angular/core").WritableSignal<boolean>;
36
+ readonly error: import("@angular/core").WritableSignal<string>;
37
+ readonly priceChanged: import("@angular/core").WritableSignal<boolean>;
38
+ /** `book-now` succeeded (nothing to pay): the reissue is being placed with the supplier. */
39
+ readonly booked: import("@angular/core").WritableSignal<boolean>;
40
+ readonly paymentLink: import("@angular/core").WritableSignal<ReissuePaymentLink>;
41
+ private selected;
42
+ private unavailableKeys;
43
+ /** Legs the agent chose to upgrade (the "select leg" step; a one-way preselects its only leg). */
44
+ private legIds;
45
+ /** Options fetched for a partial leg selection; `null` = the options loaded when the dialog opened (all legs) apply. */
46
+ private freshOptions;
47
+ private legsStepSkipped;
48
+ constructor();
49
+ readonly currency: import("@angular/core").Signal<string>;
50
+ /** The options to show: for a partial leg selection the fresh response, otherwise the one loaded with the dialog. */
51
+ private options;
52
+ /** A leg can be upgraded only if it is online AND has upgrade options (per leg for leg scope; booking scope applies to all). */
53
+ private legUpgradable;
54
+ readonly legRows: import("@angular/core").Signal<ReissueLegRow[]>;
55
+ readonly anyLegUpgradable: import("@angular/core").Signal<boolean>;
56
+ readonly canContinueFromLegs: import("@angular/core").Signal<boolean>;
57
+ /** Legs the options on screen were requested for (all of them, or just the selected ones after a partial fetch). */
58
+ private optionLegs;
59
+ private rawSections;
60
+ readonly sections: import("@angular/core").Signal<UpgradeSectionRow[]>;
61
+ private picks;
62
+ readonly canContinue: import("@angular/core").Signal<boolean>;
63
+ /**
64
+ * Amount to pay: the sum of the picked options' additional fare (same as the web's `getTotalToPay`).
65
+ * choose-flight's own `price` is deliberately not used — it is not known whether it is the difference or the full fare.
66
+ */
67
+ readonly total: import("@angular/core").Signal<number>;
68
+ readonly totalLabel: import("@angular/core").Signal<string>;
69
+ readonly summary: import("@angular/core").Signal<UpgradeSummaryRow[]>;
70
+ readonly action: import("@angular/core").Signal<UpgradeAction>;
71
+ /** Nothing can be changed any more once the upgrade is placed or a link was generated. */
72
+ readonly locked: import("@angular/core").Signal<boolean>;
73
+ /**
74
+ * Service picked: go to "select leg", unless there is nothing to choose (one-way with its only leg upgradable),
75
+ * which goes straight to the options like the web.
76
+ */
77
+ start(): void;
78
+ toggleLeg(legId: string): void;
79
+ /**
80
+ * Select leg -> options. All legs selected: reuse the options loaded with the dialog. A subset: fetch the options
81
+ * again for just those legs (the earlier response covers the whole booking, so it would price the wrong legs).
82
+ */
83
+ continueFromLegs(): void;
84
+ /** Back from the options: to "select leg" when that step was shown, otherwise to the service list. */
85
+ back(): void;
86
+ select(sectionId: string, key: string): void;
87
+ /** Options -> confirm: prices the pick(s) with choose-flight (same body the web sends). */
88
+ continue(): void;
89
+ /** Confirm step primary action: place the free upgrade, or generate the payment link. */
90
+ confirm(): void;
91
+ private reset;
92
+ /** Booking scope: one itinerary. Leg scope: each picked leg as onwardLeg / returnLeg (by the real leg direction). */
93
+ private chooseBody;
94
+ static ɵfac: i0.ɵɵFactoryDeclaration<SbdReissueUpgradeStore, never>;
95
+ static ɵprov: i0.ɵɵInjectableDeclaration<SbdReissueUpgradeStore>;
96
+ }
@@ -0,0 +1,124 @@
1
+ import { ReissueAirport, ReissueLeg, ReissueServiceKey, ReissueUpgradeOptionsResponse } from '../../models/reissue.types';
2
+ import * as i0 from "@angular/core";
3
+ /** `legs` + `edit` serve change date / route; `upgrade-legs` + `upgrade` + `confirm` serve Upgrade Class. */
4
+ export type ReissueStep = 'service' | 'legs' | 'edit' | 'upgrade-legs' | 'upgrade' | 'confirm';
5
+ export type AirportSide = 'origin' | 'destination';
6
+ export interface RouteEdit {
7
+ origin: ReissueAirport;
8
+ destination: ReissueAirport;
9
+ }
10
+ export type AirportOption = ReissueAirport & {
11
+ label: string;
12
+ };
13
+ /** View models: everything the templates need is computed here, so the templates call no methods. */
14
+ export interface ReissueLegRow {
15
+ leg: ReissueLeg;
16
+ direction: string;
17
+ from: string;
18
+ to: string;
19
+ dateLabel: string;
20
+ depTime: string;
21
+ arrTime: string;
22
+ stopsLabel: string;
23
+ airlineLine: string;
24
+ /** The leg already departed ("Used Flight"): never selectable. */
25
+ flown: boolean;
26
+ available: boolean;
27
+ /** Why a leg cannot be picked: it already flew, it is offline (no online reissue), or it has no upgrade options. */
28
+ reason: 'flown' | 'offline' | 'no-options' | null;
29
+ selected: boolean;
30
+ }
31
+ export declare function buildLegRow(leg: ReissueLeg, available: boolean, selected: boolean, unavailableReason?: 'offline' | 'no-options'): ReissueLegRow;
32
+ export interface ReissueDateRow {
33
+ leg: ReissueLeg;
34
+ title: string;
35
+ current: string;
36
+ value: string;
37
+ min: string;
38
+ max: string;
39
+ }
40
+ export interface ReissueRouteRow {
41
+ leg: ReissueLeg;
42
+ title: string;
43
+ current: string;
44
+ origin: ReissueAirport;
45
+ destination: ReissueAirport;
46
+ }
47
+ /**
48
+ * State + rules of the Reissue dialog (one instance per dialog, provided by the dialog component).
49
+ * The step components are presentational: they get view models from here through the dialog shell.
50
+ */
51
+ export declare class SbdReissueStore {
52
+ private api;
53
+ private config;
54
+ readonly today: string;
55
+ private booking;
56
+ readonly step: import("@angular/core").WritableSignal<ReissueStep>;
57
+ readonly loading: import("@angular/core").WritableSignal<boolean>;
58
+ readonly error: import("@angular/core").WritableSignal<string>;
59
+ readonly postBookingId: import("@angular/core").WritableSignal<string>;
60
+ readonly service: import("@angular/core").WritableSignal<ReissueServiceKey>;
61
+ /** Raw upgrade-class response; `null` when not loaded / not offered. Read by `SbdReissueUpgradeStore`. */
62
+ readonly upgradeOptions: import("@angular/core").WritableSignal<ReissueUpgradeOptionsResponse>;
63
+ readonly upgradeAvailable: import("@angular/core").Signal<boolean>;
64
+ private availableIds;
65
+ /** The availability call answered (so "no leg available" is a real answer, not "still loading"). */
66
+ private availabilityLoaded;
67
+ private selectedLegIds;
68
+ /** The "select flight" step was skipped (one-way): Back from the edit step returns to the service list. */
69
+ private legsStepSkipped;
70
+ private dateEdits;
71
+ private routeEdits;
72
+ private searchedAirports;
73
+ private load$;
74
+ private airportTerm$;
75
+ constructor();
76
+ readonly ctx: import("@angular/core").Signal<import("../../models/reissue.types").ReissueBookingContext>;
77
+ readonly legs: import("@angular/core").Signal<ReissueLeg[]>;
78
+ private selectedSet;
79
+ private selectedLegs;
80
+ readonly legRows: import("@angular/core").Signal<ReissueLegRow[]>;
81
+ /** The leg came back online from the availability check. */
82
+ isLegOnline(legId: string): boolean;
83
+ /** `false` = a round trip must be upgraded as a whole (availability's `allowCustomerToSelectSingleLeg`). */
84
+ readonly allowSingleLegSelection: import("@angular/core").WritableSignal<boolean>;
85
+ readonly anyAvailable: import("@angular/core").Signal<boolean>;
86
+ /**
87
+ * No leg can be reissued online (offline, or already flown): the dialog shows this message instead of the options,
88
+ * like the cancel dialog does for a booking it cannot auto-cancel. `null` while loading or when any leg is available.
89
+ */
90
+ readonly blocked: import("@angular/core").Signal<{
91
+ title: string;
92
+ text: string;
93
+ }>;
94
+ readonly canContinue: import("@angular/core").Signal<boolean>;
95
+ /** A leg's date after the change: the new one when the agent is changing it, the original otherwise. */
96
+ readonly dateRows: import("@angular/core").Signal<ReissueDateRow[]>;
97
+ readonly routeRows: import("@angular/core").Signal<ReissueRouteRow[]>;
98
+ readonly airportOptions: import("@angular/core").Signal<AirportOption[]>;
99
+ readonly validationError: import("@angular/core").Signal<string>;
100
+ /** (Re)starts the dialog for a booking: clears every choice, then loads post-booking + availability. */
101
+ open(data: unknown, id: string): void;
102
+ load(): void;
103
+ chooseService(service: ReissueServiceKey): void;
104
+ toggleLeg(legId: string): void;
105
+ /** Legs -> edit: seed each selected leg with its current date / airports. */
106
+ goToEdit(): void;
107
+ goTo(step: ReissueStep): void;
108
+ back(): void;
109
+ setDate(legId: string, date: string): void;
110
+ setAirport(legId: string, side: AirportSide, airport: ReissueAirport | null): void;
111
+ /** Swaps a leg's origin and destination (the arrow between the two pickers). */
112
+ swapAirports(legId: string): void;
113
+ searchAirports(term: string): void;
114
+ /** The web search URL for the current choices, or `null` when they are not valid yet. */
115
+ searchUrl(): string | null;
116
+ private loadFlow;
117
+ /**
118
+ * The upgrade-class options (same rule as the web for listing "Upgrade Class"): skipped for a one-way whose
119
+ * only leg is offline; a failing call just yields `null` (option hidden) instead of blocking the dialog.
120
+ */
121
+ private offersUpgrade;
122
+ static ɵfac: i0.ɵɵFactoryDeclaration<SbdReissueStore, never>;
123
+ static ɵprov: i0.ɵɵInjectableDeclaration<SbdReissueStore>;
124
+ }
@@ -0,0 +1,11 @@
1
+ import { ReissueDateRow } from '../../reissue.store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SbdReissueDateStepComponent {
4
+ rows: import("@angular/core").InputSignal<ReissueDateRow[]>;
5
+ changed: import("@angular/core").OutputEmitterRef<{
6
+ legId: string;
7
+ date: string;
8
+ }>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SbdReissueDateStepComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<SbdReissueDateStepComponent, "app-sbd-reissue-date-step", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
11
+ }