@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.
- package/esm2022/lib/components/action-card/action-card.component.mjs +3 -3
- package/esm2022/lib/components/add-note-dialog/add-note-dialog.component.mjs +3 -3
- package/esm2022/lib/components/almatar-aside/aside-back-button.service.mjs +24 -0
- package/esm2022/lib/components/almatar-aside/aside.component.mjs +122 -0
- package/esm2022/lib/components/booking-input/booking-input.component.mjs +4 -3
- package/esm2022/lib/components/cancel-dialog/cancel-dialog.component.mjs +53 -4
- package/esm2022/lib/components/data-search/data-search.component.mjs +3 -3
- package/esm2022/lib/components/hotel-cancel/almatar-hotel-auto-cancellation.component.mjs +544 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-method/almatar-hotel-auto-cancellation-refund-method.component.mjs +43 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-summary/almatar-hotel-auto-cancellation-refund-summary.component.mjs +296 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/almatar-hotel-auto-cancellation-select-rooms.component.mjs +88 -0
- 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
- 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
- package/esm2022/lib/components/hotel-cancel/components/hotel-content/hotel-content.component.mjs +129 -0
- package/esm2022/lib/components/hotel-cancel/components/hotel-refund-method-selector/hotel-refund-method-selector.component.mjs +321 -0
- package/esm2022/lib/components/hotel-cancel/components/result-overlay/result-overlay.component.mjs +52 -0
- package/esm2022/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-endpoints.enum.mjs +9 -0
- package/esm2022/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-step.enum.mjs +7 -0
- package/esm2022/lib/components/hotel-cancel/interfaces/i-almatar-hotel-auto-cancellation.interface.mjs +2 -0
- package/esm2022/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation-endpoints.service.mjs +457 -0
- package/esm2022/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation.service.mjs +55 -0
- package/esm2022/lib/components/hotel-itinerary-card/hotel-itinerary-card.component.mjs +48 -0
- package/esm2022/lib/components/reissue-dialog/reissue-dialog.component.mjs +135 -0
- package/esm2022/lib/components/reissue-dialog/reissue-upgrade.store.mjs +305 -0
- package/esm2022/lib/components/reissue-dialog/reissue.store.mjs +349 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-date-step/reissue-date-step.component.mjs +45 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-legs-step/reissue-legs-step.component.mjs +140 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-notice/reissue-notice.component.mjs +16 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-route-step/reissue-route-step.component.mjs +104 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-service-step/reissue-service-step.component.mjs +44 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-upgrade-confirm-step/reissue-upgrade-confirm-step.component.mjs +193 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-upgrade-step/reissue-upgrade-step.component.mjs +88 -0
- package/esm2022/lib/components/result-panel/result-panel.component.mjs +3 -3
- package/esm2022/lib/components/shared/components/confirm-modal/confirm-modal.component.mjs +75 -0
- package/esm2022/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.mjs +46 -0
- package/esm2022/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.mjs +9 -0
- package/esm2022/lib/components/shared/interfaces/i-flight-refund-details.mjs +86 -0
- package/esm2022/lib/components/shared/models/cancel-hotel-booking.model.mjs +7 -0
- package/esm2022/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.mjs +27 -0
- package/esm2022/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.mjs +17 -0
- package/esm2022/lib/components/workflow-actions/workflow-actions.component.mjs +5 -3
- package/esm2022/lib/config/dashboard.config.mjs +3 -1
- package/esm2022/lib/config/hotel-actions.config.mjs +21 -1
- package/esm2022/lib/models/booking.types.mjs +73 -2
- package/esm2022/lib/models/reissue.types.mjs +2 -0
- package/esm2022/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.mjs +31 -7
- package/esm2022/lib/services/booking.service.mjs +6 -2
- package/esm2022/lib/services/reissue.service.mjs +142 -0
- package/esm2022/lib/services/toast.service.mjs +15 -7
- package/esm2022/lib/shared/components/currency-code-icon/currency-code-icon.component.mjs +35 -0
- package/esm2022/lib/shared/enums/brand-enums.enum.mjs +7 -0
- package/esm2022/lib/shared/environments/environment.mjs +10 -0
- package/esm2022/lib/shared/models/index.mjs +6 -0
- package/esm2022/lib/shared/modules/almatar-icon/almatar-icon.module.mjs +36 -0
- package/esm2022/lib/shared/modules/loader/loader.module.mjs +43 -0
- package/esm2022/lib/shared/pipes/exchange.pipe.mjs +49 -0
- package/esm2022/lib/shared/services/api.service.mjs +42 -0
- package/esm2022/lib/shared/services/shared.service.mjs +34 -0
- package/esm2022/lib/shared/services/translation.service.mjs +61 -0
- package/esm2022/lib/shared/services/webengage-tracking.service.mjs +28 -0
- package/esm2022/lib/shared/store/selectors/currency.selectors.mjs +9 -0
- package/esm2022/lib/utils/reissue-format.mjs +64 -0
- package/esm2022/lib/utils/reissue-url.builder.mjs +314 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/almatar-smart-booking-dashboard.mjs +5387 -395
- package/fesm2022/almatar-smart-booking-dashboard.mjs.map +1 -1
- package/lib/components/action-dialog/action-dialog.component.d.ts +1 -1
- package/lib/components/almatar-aside/aside-back-button.service.d.ts +11 -0
- package/lib/components/almatar-aside/aside.component.d.ts +46 -0
- package/lib/components/cancel-dialog/cancel-dialog.component.d.ts +7 -0
- package/lib/components/hotel-cancel/almatar-hotel-auto-cancellation.component.d.ts +97 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-method/almatar-hotel-auto-cancellation-refund-method.component.d.ts +25 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-summary/almatar-hotel-auto-cancellation-refund-summary.component.d.ts +91 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/almatar-hotel-auto-cancellation-select-rooms.component.d.ts +39 -0
- 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
- 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
- package/lib/components/hotel-cancel/components/hotel-content/hotel-content.component.d.ts +38 -0
- package/lib/components/hotel-cancel/components/hotel-refund-method-selector/hotel-refund-method-selector.component.d.ts +142 -0
- package/lib/components/hotel-cancel/components/result-overlay/result-overlay.component.d.ts +23 -0
- package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-endpoints.enum.d.ts +7 -0
- package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-step.enum.d.ts +5 -0
- package/lib/components/hotel-cancel/interfaces/i-almatar-hotel-auto-cancellation.interface.d.ts +252 -0
- package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation-endpoints.service.d.ts +88 -0
- package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation.service.d.ts +21 -0
- package/lib/components/hotel-itinerary-card/hotel-itinerary-card.component.d.ts +16 -0
- package/lib/components/reissue-dialog/reissue-dialog.component.d.ts +34 -0
- package/lib/components/reissue-dialog/reissue-upgrade.store.d.ts +96 -0
- package/lib/components/reissue-dialog/reissue.store.d.ts +124 -0
- package/lib/components/reissue-dialog/steps/reissue-date-step/reissue-date-step.component.d.ts +11 -0
- package/lib/components/reissue-dialog/steps/reissue-legs-step/reissue-legs-step.component.d.ts +16 -0
- package/lib/components/reissue-dialog/steps/reissue-notice/reissue-notice.component.d.ts +8 -0
- package/lib/components/reissue-dialog/steps/reissue-route-step/reissue-route-step.component.d.ts +21 -0
- package/lib/components/reissue-dialog/steps/reissue-service-step/reissue-service-step.component.d.ts +17 -0
- package/lib/components/reissue-dialog/steps/reissue-upgrade-confirm-step/reissue-upgrade-confirm-step.component.d.ts +28 -0
- package/lib/components/reissue-dialog/steps/reissue-upgrade-step/reissue-upgrade-step.component.d.ts +13 -0
- package/lib/components/result-panel/result-panel.component.d.ts +1 -1
- package/lib/components/shared/components/confirm-modal/confirm-modal.component.d.ts +17 -0
- package/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.d.ts +10 -0
- package/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.d.ts +7 -0
- package/lib/components/shared/interfaces/i-flight-refund-details.d.ts +73 -0
- package/lib/components/shared/models/cancel-hotel-booking.model.d.ts +6 -0
- package/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.d.ts +11 -0
- package/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.d.ts +7 -0
- package/lib/components/workflow-actions/workflow-actions.component.d.ts +3 -1
- package/lib/config/dashboard.config.d.ts +29 -0
- package/lib/models/booking.types.d.ts +28 -0
- package/lib/models/reissue.types.d.ts +147 -0
- package/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.d.ts +5 -1
- package/lib/services/reissue.service.d.ts +45 -0
- package/lib/services/toast.service.d.ts +14 -1
- package/lib/shared/components/currency-code-icon/currency-code-icon.component.d.ts +13 -0
- package/lib/shared/enums/brand-enums.enum.d.ts +5 -0
- package/lib/shared/environments/environment.d.ts +7 -0
- package/lib/shared/models/index.d.ts +11 -0
- package/lib/shared/modules/almatar-icon/almatar-icon.module.d.ts +13 -0
- package/lib/shared/modules/loader/loader.module.d.ts +13 -0
- package/lib/shared/pipes/exchange.pipe.d.ts +17 -0
- package/lib/shared/services/api.service.d.ts +43 -0
- package/lib/shared/services/shared.service.d.ts +12 -0
- package/lib/shared/services/translation.service.d.ts +17 -0
- package/lib/shared/services/webengage-tracking.service.d.ts +8 -0
- package/lib/shared/store/selectors/currency.selectors.d.ts +2 -0
- package/lib/utils/reissue-format.d.ts +28 -0
- package/lib/utils/reissue-url.builder.d.ts +24 -0
- package/package.json +9 -24
- package/public-api.d.ts +5 -1
- package/LICENSE +0 -21
- package/README.md +0 -132
|
@@ -12,7 +12,7 @@ export declare class SbdActionDialogComponent {
|
|
|
12
12
|
preloadedData: import("@angular/core").InputSignal<any>;
|
|
13
13
|
closed: import("@angular/core").OutputEmitterRef<void>;
|
|
14
14
|
selectedAction: import("@angular/core").WritableSignal<ActionConfig>;
|
|
15
|
-
actionStatus: import("@angular/core").WritableSignal<"error" | "
|
|
15
|
+
actionStatus: import("@angular/core").WritableSignal<"error" | "success" | "idle" | "loading">;
|
|
16
16
|
actionData: import("@angular/core").WritableSignal<unknown>;
|
|
17
17
|
elapsedMs: import("@angular/core").WritableSignal<number>;
|
|
18
18
|
copying: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AsideBackButtonService {
|
|
4
|
+
showBackButton$: BehaviorSubject<boolean>;
|
|
5
|
+
backClicked$: Subject<void>;
|
|
6
|
+
show(): void;
|
|
7
|
+
hide(): void;
|
|
8
|
+
emitBack(): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AsideBackButtonService, never>;
|
|
10
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AsideBackButtonService>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { SharedService } from '../../shared/services/shared.service';
|
|
3
|
+
import { AsideBackButtonService } from './aside-back-button.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AsideComponent implements OnInit, OnDestroy {
|
|
6
|
+
private shared;
|
|
7
|
+
private document;
|
|
8
|
+
private backButtonService;
|
|
9
|
+
asideTitle: string;
|
|
10
|
+
showHeader: boolean;
|
|
11
|
+
headerTemplate: TemplateRef<any>;
|
|
12
|
+
/**
|
|
13
|
+
* Opt-in white header (instead of the default purple/lavender) — only
|
|
14
|
+
* takes effect on the Almatar brand, so other tenants/brands sharing this
|
|
15
|
+
* component keep their existing header regardless of this input.
|
|
16
|
+
*/
|
|
17
|
+
whiteHeader: boolean;
|
|
18
|
+
showAside: boolean;
|
|
19
|
+
/** Opt-in desktop width override (e.g. `'600px'`) — defaults to 490px, or 580px with the white header. */
|
|
20
|
+
width: string;
|
|
21
|
+
modal: boolean;
|
|
22
|
+
closable: boolean;
|
|
23
|
+
transitionOptions: string;
|
|
24
|
+
/**
|
|
25
|
+
* When true, the dialog's own close (the X, Esc) does NOT hide the aside; it only emits
|
|
26
|
+
* {@link closeRequested}, so the host can ask for confirmation and close the aside itself.
|
|
27
|
+
*/
|
|
28
|
+
interceptClose: boolean;
|
|
29
|
+
onClose: EventEmitter<any>;
|
|
30
|
+
closeRequested: EventEmitter<void>;
|
|
31
|
+
isInAppView: boolean;
|
|
32
|
+
selectedLang: string;
|
|
33
|
+
showBackButton: boolean;
|
|
34
|
+
get backIconClass(): string;
|
|
35
|
+
get isWhiteHeader(): boolean;
|
|
36
|
+
constructor(shared: SharedService, document: Document, backButtonService: AsideBackButtonService);
|
|
37
|
+
ngOnInit(): void;
|
|
38
|
+
/** Replaces the two-way `[(visible)]` so a host can veto the dialog's own close. */
|
|
39
|
+
onVisibleChange(visible: boolean): void;
|
|
40
|
+
onCloseModal(): void;
|
|
41
|
+
onBackIconClick(event: Event): void;
|
|
42
|
+
onDialogShow(): void;
|
|
43
|
+
ngOnDestroy(): void;
|
|
44
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AsideComponent, [null, null, { optional: true; }]>;
|
|
45
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AsideComponent, "almatar-aside", never, { "asideTitle": { "alias": "asideTitle"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "whiteHeader": { "alias": "whiteHeader"; "required": false; }; "showAside": { "alias": "showAside"; "required": false; }; "width": { "alias": "width"; "required": false; }; "modal": { "alias": "modal"; "required": false; }; "closable": { "alias": "closable"; "required": false; }; "transitionOptions": { "alias": "transitionOptions"; "required": false; }; "interceptClose": { "alias": "interceptClose"; "required": false; }; }, { "onClose": "onClose"; "closeRequested": "closeRequested"; }, never, ["*"], true, never>;
|
|
46
|
+
}
|
|
@@ -157,6 +157,13 @@ export declare class SbdCancelDialogComponent {
|
|
|
157
157
|
* other.
|
|
158
158
|
*/
|
|
159
159
|
hasGoldenGuaranteeGift: import("@angular/core").Signal<boolean>;
|
|
160
|
+
/**
|
|
161
|
+
* Fallback for environments whose refund response has no `hasGoldenGuaranteeGift`
|
|
162
|
+
* flag: scan every itemized add-on/ancillary/gift the refund preview exposes
|
|
163
|
+
* (root + per-leg, refundable + non-refundable) for a golden-guarantee
|
|
164
|
+
* category/type/name match.
|
|
165
|
+
*/
|
|
166
|
+
private hasGoldenGuaranteeAddOn;
|
|
160
167
|
isCreditShell: import("@angular/core").Signal<boolean>;
|
|
161
168
|
/**
|
|
162
169
|
* Refundable ancillaries (baggage, seats, …) that carry their own
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { HotelManageBookingService } from '../shared/services/hotel-manage-booking/hotel-manage-booking.service';
|
|
3
|
+
import { AlmatarHotelAutoCancellationStepEnum } from './enums/almatar-hotel-auto-cancellation-step.enum';
|
|
4
|
+
import { AlmatarHotelAutoCancellationService } from './services/almatar-hotel-auto-cancellation.service';
|
|
5
|
+
import { IAutoCancellationProcessResponse } from './services/almatar-hotel-auto-cancellation-endpoints.service';
|
|
6
|
+
import { IAlmatarHotelAutoCancellationRoom, IAlmatarHotelAutoCancellationHotelInfo, IAlmatarHotelAutoCancellationPackage } from './interfaces/i-almatar-hotel-auto-cancellation.interface';
|
|
7
|
+
import { IRefundDetailsData as IFlightRefundDetailsData, RefundPreferredMethod } from '../shared/interfaces/i-flight-refund-details';
|
|
8
|
+
import { IHotelBookingData } from '../../models/booking.types';
|
|
9
|
+
import { ResultOverlayData } from './components/result-overlay/result-overlay.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export declare class AlmatarHotelAutoCancellationComponent implements OnInit, OnDestroy {
|
|
12
|
+
private readonly hotelManageBookingService;
|
|
13
|
+
readonly autoCancellationService: AlmatarHotelAutoCancellationService;
|
|
14
|
+
HotelManageBookingService: HotelManageBookingService;
|
|
15
|
+
private readonly autoCancellationEndpointsService;
|
|
16
|
+
private readonly activatedRoute;
|
|
17
|
+
private readonly destroyRef;
|
|
18
|
+
private readonly store;
|
|
19
|
+
private readonly sharedService;
|
|
20
|
+
readonly selectedHotelBooking: import("@angular/core").InputSignal<IHotelBookingData>;
|
|
21
|
+
readonly closed: import("@angular/core").OutputEmitterRef<void>;
|
|
22
|
+
readonly cancellationSuccess: import("@angular/core").OutputEmitterRef<IAutoCancellationProcessResponse>;
|
|
23
|
+
readonly nonRefundableSubmitSuccess: import("@angular/core").OutputEmitterRef<string>;
|
|
24
|
+
readonly chatWithAgent: import("@angular/core").OutputEmitterRef<void>;
|
|
25
|
+
readonly showConfirmModal: import("@angular/core").WritableSignal<boolean>;
|
|
26
|
+
readonly showErrorModal: import("@angular/core").WritableSignal<boolean>;
|
|
27
|
+
readonly showAside: import("@angular/core").WritableSignal<boolean>;
|
|
28
|
+
readonly isLoading: import("@angular/core").WritableSignal<boolean>;
|
|
29
|
+
readonly isCancelling: import("@angular/core").WritableSignal<boolean>;
|
|
30
|
+
readonly hotelManageError: import("@angular/core").WritableSignal<string>;
|
|
31
|
+
readonly isNusk: import("@angular/core").WritableSignal<boolean>;
|
|
32
|
+
readonly showResultOverlay: import("@angular/core").WritableSignal<boolean>;
|
|
33
|
+
readonly resultOverlayData: import("@angular/core").WritableSignal<ResultOverlayData>;
|
|
34
|
+
readonly rooms: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationRoom[]>;
|
|
35
|
+
readonly packages: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationPackage[]>;
|
|
36
|
+
readonly hotelInfo: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationHotelInfo>;
|
|
37
|
+
readonly currentCurrency: import("@angular/core").WritableSignal<any>;
|
|
38
|
+
readonly refundDetailsData: import("@angular/core").WritableSignal<IFlightRefundDetailsData>;
|
|
39
|
+
readonly selectedPackageIds: import("@angular/core").WritableSignal<string[]>;
|
|
40
|
+
readonly refundMethod: import("@angular/core").WritableSignal<RefundPreferredMethod>;
|
|
41
|
+
readonly refundResponseData: import("@angular/core").WritableSignal<any>;
|
|
42
|
+
readonly stepEnum: typeof AlmatarHotelAutoCancellationStepEnum;
|
|
43
|
+
readonly currentStep: import("@angular/core").Signal<AlmatarHotelAutoCancellationStepEnum>;
|
|
44
|
+
readonly isSingleRoom: import("@angular/core").Signal<boolean>;
|
|
45
|
+
readonly isSinglePackage: import("@angular/core").Signal<boolean>;
|
|
46
|
+
readonly bookingSuppliers: import("@angular/core").Signal<any>;
|
|
47
|
+
readonly totalAdults: import("@angular/core").Signal<any>;
|
|
48
|
+
readonly totalChildren: import("@angular/core").Signal<any>;
|
|
49
|
+
readonly totalInfants: import("@angular/core").Signal<any>;
|
|
50
|
+
readonly asideTitle: import("@angular/core").Signal<"Select Refund Method" | "Confirm Cancellation" | "Select Rooms" | "Cancel Booking Request" | "Cancel Booking">;
|
|
51
|
+
constructor();
|
|
52
|
+
get closeIconName(): string;
|
|
53
|
+
ngOnInit(): void;
|
|
54
|
+
private initCurrency;
|
|
55
|
+
ngOnDestroy(): void;
|
|
56
|
+
private initializeQueryParams;
|
|
57
|
+
private loadBookingDataFromPackages;
|
|
58
|
+
private processBookingData;
|
|
59
|
+
private mapPackagesToRooms;
|
|
60
|
+
private mapBookingToPackages;
|
|
61
|
+
private calculateNights;
|
|
62
|
+
onContinueToCancel(selectedPackages: IAlmatarHotelAutoCancellationPackage[]): void;
|
|
63
|
+
onKeepRoom(): void;
|
|
64
|
+
onSelectRefundOption(data: {
|
|
65
|
+
packageIds: string[];
|
|
66
|
+
payout: any;
|
|
67
|
+
totalRefund: number;
|
|
68
|
+
responseData: any;
|
|
69
|
+
}): void;
|
|
70
|
+
/**
|
|
71
|
+
* Determines the payment method label based on totals/payout breakdown.
|
|
72
|
+
* Returns the appropriate gateway code for proper labeling.
|
|
73
|
+
*/
|
|
74
|
+
/**
|
|
75
|
+
* Determines the card/installment payment method for the card row label.
|
|
76
|
+
* Loyalty programs are handled separately by determineLoyaltyType().
|
|
77
|
+
*/
|
|
78
|
+
private determinePaymentMethod;
|
|
79
|
+
/**
|
|
80
|
+
* Determines the loyalty payment type for proper labeling in split refund rows.
|
|
81
|
+
* Returns the loyalty program code (e.g., 'QITAF', 'RAJHI') if applicable.
|
|
82
|
+
*/
|
|
83
|
+
private determineLoyaltyType;
|
|
84
|
+
onMethodSelected(method: RefundPreferredMethod): void;
|
|
85
|
+
onBackFromRefundMethod(): void;
|
|
86
|
+
onGoBack(): void;
|
|
87
|
+
canGoBack(): boolean;
|
|
88
|
+
confirmCancellation(): void;
|
|
89
|
+
onCloseModal(): void;
|
|
90
|
+
onNonRefundableSubmitSuccess(packageName: string): void;
|
|
91
|
+
onChatWithAgent(): void;
|
|
92
|
+
closeAllModals(): void;
|
|
93
|
+
onResultOverlayConfirm(): void;
|
|
94
|
+
onResultOverlayCancel(): void;
|
|
95
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationComponent, never>;
|
|
96
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlmatarHotelAutoCancellationComponent, "almatar-hotel-auto-cancellation", never, { "selectedHotelBooking": { "alias": "selectedHotelBooking"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "cancellationSuccess": "cancellationSuccess"; "nonRefundableSubmitSuccess": "nonRefundableSubmitSuccess"; "chatWithAgent": "chatWithAgent"; }, never, never, true, never>;
|
|
97
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IRefundDetailsData, RefundPreferredMethod } from '../../../shared/interfaces/i-flight-refund-details';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AlmatarHotelAutoCancellationRefundMethodComponent {
|
|
4
|
+
readonly refundDetailsData: import("@angular/core").InputSignal<IRefundDetailsData>;
|
|
5
|
+
readonly currencyObj: import("@angular/core").InputSignal<any>;
|
|
6
|
+
readonly refundMethod: import("@angular/core").InputSignal<RefundPreferredMethod>;
|
|
7
|
+
readonly bookingId: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly isCancelling: import("@angular/core").InputSignal<boolean>;
|
|
9
|
+
/** Show the selector's back arrow (off for hotel - train's cancel flow turns it on). */
|
|
10
|
+
readonly showBack: import("@angular/core").InputSignal<boolean>;
|
|
11
|
+
readonly methodSelected: import("@angular/core").OutputEmitterRef<RefundPreferredMethod>;
|
|
12
|
+
readonly backRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
13
|
+
readonly confirmRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
14
|
+
readonly closeModal: import("@angular/core").OutputEmitterRef<void>;
|
|
15
|
+
private animation;
|
|
16
|
+
private lottieLoaded;
|
|
17
|
+
readonly isNilRefund: import("@angular/core").Signal<boolean>;
|
|
18
|
+
constructor();
|
|
19
|
+
onMethodSelected(method: RefundPreferredMethod): void;
|
|
20
|
+
onBack(): void;
|
|
21
|
+
onConfirm(): void;
|
|
22
|
+
onClose(): void;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationRefundMethodComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlmatarHotelAutoCancellationRefundMethodComponent, "almatar-hotel-auto-cancellation-refund-method", never, { "refundDetailsData": { "alias": "refundDetailsData"; "required": true; "isSignal": true; }; "currencyObj": { "alias": "currencyObj"; "required": true; "isSignal": true; }; "refundMethod": { "alias": "refundMethod"; "required": true; "isSignal": true; }; "bookingId": { "alias": "bookingId"; "required": true; "isSignal": true; }; "isCancelling": { "alias": "isCancelling"; "required": false; "isSignal": true; }; "showBack": { "alias": "showBack"; "required": false; "isSignal": true; }; }, { "methodSelected": "methodSelected"; "backRequested": "backRequested"; "confirmRequested": "confirmRequested"; "closeModal": "closeModal"; }, never, never, true, never>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { IAlmatarHotelAutoCancellationRoom, IAlmatarHotelAutoCancellationRefundSummary, IAlmatarHotelAutoCancellationHotelInfo, IAlmatarHotelAutoCancellationRefundPackage, IAlmatarHotelAutoCancellationRefundPackageRoom, IGift } from '../../interfaces/i-almatar-hotel-auto-cancellation.interface';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class AlmatarHotelAutoCancellationRefundSummaryComponent implements OnInit {
|
|
5
|
+
private readonly endpointsService;
|
|
6
|
+
private readonly autoCancellationService;
|
|
7
|
+
private readonly store;
|
|
8
|
+
private readonly sharedService;
|
|
9
|
+
private readonly destroyRef;
|
|
10
|
+
private readonly translateService;
|
|
11
|
+
private readonly hotelManageBookingsEndpointsService;
|
|
12
|
+
private readonly hotelManageBookingService;
|
|
13
|
+
constructor();
|
|
14
|
+
readonly baseCurrencyCode: import("@angular/core").WritableSignal<string>;
|
|
15
|
+
readonly currentCurrency: import("@angular/core").WritableSignal<any>;
|
|
16
|
+
readonly paymentMethod: import("@angular/core").WritableSignal<any>;
|
|
17
|
+
readonly currentLang: import("@angular/core").WritableSignal<string>;
|
|
18
|
+
readonly selectedRooms: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationRoom[]>;
|
|
19
|
+
readonly bookingId: import("@angular/core").InputSignal<string | number>;
|
|
20
|
+
readonly hotelId: import("@angular/core").InputSignal<string | number>;
|
|
21
|
+
readonly hotelInfo: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationHotelInfo>;
|
|
22
|
+
readonly selectionSkipped: import("@angular/core").InputSignal<boolean>;
|
|
23
|
+
readonly keepRoom: import("@angular/core").OutputEmitterRef<void>;
|
|
24
|
+
readonly selectRefundOption: import("@angular/core").OutputEmitterRef<{
|
|
25
|
+
packageIds: string[];
|
|
26
|
+
payout: any;
|
|
27
|
+
totalRefund: number;
|
|
28
|
+
responseData: any;
|
|
29
|
+
}>;
|
|
30
|
+
readonly closeModal: import("@angular/core").OutputEmitterRef<void>;
|
|
31
|
+
readonly isCancelLoading: import("@angular/core").WritableSignal<boolean>;
|
|
32
|
+
readonly showConfirmModalFlag: import("@angular/core").WritableSignal<boolean>;
|
|
33
|
+
readonly showErrorModalFlag: import("@angular/core").WritableSignal<boolean>;
|
|
34
|
+
readonly hotelManageError: import("@angular/core").WritableSignal<string>;
|
|
35
|
+
backArrow: import("@angular/core").Signal<string>;
|
|
36
|
+
readonly expandedPackageIds: import("@angular/core").WritableSignal<Set<string>>;
|
|
37
|
+
readonly expandedAmountIds: import("@angular/core").WritableSignal<Set<string>>;
|
|
38
|
+
readonly isLoading: import("@angular/core").WritableSignal<boolean>;
|
|
39
|
+
readonly refundSummary: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationRefundSummary>;
|
|
40
|
+
readonly error: import("@angular/core").WritableSignal<string>;
|
|
41
|
+
readonly responseData: import("@angular/core").WritableSignal<any>;
|
|
42
|
+
readonly rooms: import("@angular/core").Signal<IAlmatarHotelAutoCancellationRoom[]>;
|
|
43
|
+
groupRoomsByName(rooms: IAlmatarHotelAutoCancellationRefundPackageRoom[]): {
|
|
44
|
+
roomName: string;
|
|
45
|
+
count: number;
|
|
46
|
+
nights?: number;
|
|
47
|
+
adults?: number;
|
|
48
|
+
children?: number;
|
|
49
|
+
basis?: string;
|
|
50
|
+
}[];
|
|
51
|
+
readonly packages: import("@angular/core").Signal<IAlmatarHotelAutoCancellationRefundPackage[]>;
|
|
52
|
+
readonly currentRefundRoomsNumber: import("@angular/core").Signal<number>;
|
|
53
|
+
readonly totalPaid: import("@angular/core").Signal<number>;
|
|
54
|
+
readonly totalRefund: import("@angular/core").Signal<number>;
|
|
55
|
+
readonly alreadyRefunded: import("@angular/core").Signal<number>;
|
|
56
|
+
readonly summaries: import("@angular/core").Signal<import("../../interfaces/i-almatar-hotel-auto-cancellation.interface").IRefundSummaryItem[]>;
|
|
57
|
+
readonly payout: import("@angular/core").Signal<import("../../interfaces/i-almatar-hotel-auto-cancellation.interface").IRefundPayout>;
|
|
58
|
+
readonly packageIds: import("@angular/core").Signal<string[]>;
|
|
59
|
+
readonly totalPackagesCount: import("@angular/core").Signal<number>;
|
|
60
|
+
readonly couponAmount: import("@angular/core").Signal<number>;
|
|
61
|
+
readonly giftsTotal: import("@angular/core").Signal<number>;
|
|
62
|
+
readonly giftsDetails: import("@angular/core").Signal<IGift[]>;
|
|
63
|
+
readonly giftsHasRefundableEntity: import("@angular/core").Signal<boolean>;
|
|
64
|
+
readonly serviceFeeAmount: import("@angular/core").Signal<number>;
|
|
65
|
+
readonly surchargeAmount: import("@angular/core").Signal<number>;
|
|
66
|
+
readonly isGoldenGift: import("@angular/core").Signal<boolean>;
|
|
67
|
+
readonly payoutNote: import("@angular/core").Signal<string>;
|
|
68
|
+
readonly previousRooms: import("@angular/core").Signal<import("../../interfaces/i-almatar-hotel-auto-cancellation.interface").IRefundPreviousRoom[]>;
|
|
69
|
+
readonly hasDeductions: import("@angular/core").Signal<boolean>;
|
|
70
|
+
ngOnInit(): void;
|
|
71
|
+
private initLanguage;
|
|
72
|
+
private initCurrency;
|
|
73
|
+
loadRefundDetails(): void;
|
|
74
|
+
private calculateLocalRefundSummary;
|
|
75
|
+
togglePackageExpand(packageId: string): void;
|
|
76
|
+
toggleAmountExpand(packageId: string): void;
|
|
77
|
+
isPackageExpanded(packageId: string): boolean;
|
|
78
|
+
isAmountExpanded(packageId: string): boolean;
|
|
79
|
+
onKeepRoom(): void;
|
|
80
|
+
onSelectRefundOption(): void;
|
|
81
|
+
onClose(): void;
|
|
82
|
+
submitData(): void;
|
|
83
|
+
onConfirmSend(): void;
|
|
84
|
+
private onShowWhatsAppAgent;
|
|
85
|
+
private onShowConfirmModal;
|
|
86
|
+
closeAllModals(): void;
|
|
87
|
+
formatDate(date: string | undefined): string;
|
|
88
|
+
private determinePaymentMethod;
|
|
89
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationRefundSummaryComponent, never>;
|
|
90
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlmatarHotelAutoCancellationRefundSummaryComponent, "almatar-hotel-auto-cancellation-refund-summary", never, { "selectedRooms": { "alias": "selectedRooms"; "required": true; "isSignal": true; }; "bookingId": { "alias": "bookingId"; "required": false; "isSignal": true; }; "hotelId": { "alias": "hotelId"; "required": false; "isSignal": true; }; "hotelInfo": { "alias": "hotelInfo"; "required": false; "isSignal": true; }; "selectionSkipped": { "alias": "selectionSkipped"; "required": false; "isSignal": true; }; }, { "keepRoom": "keepRoom"; "selectRefundOption": "selectRefundOption"; "closeModal": "closeModal"; }, never, never, true, never>;
|
|
91
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { IAlmatarHotelAutoCancellationPackage, IAlmatarHotelAutoCancellationHotelInfo } from '../../interfaces/i-almatar-hotel-auto-cancellation.interface';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AlmatarHotelAutoCancellationSelectRoomsComponent {
|
|
4
|
+
private readonly sharedService;
|
|
5
|
+
private readonly endpointsService;
|
|
6
|
+
private readonly autoCancellationService;
|
|
7
|
+
private readonly destroyRef;
|
|
8
|
+
readonly packages: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationPackage[]>;
|
|
9
|
+
readonly isLoadingRefund: import("@angular/core").WritableSignal<boolean>;
|
|
10
|
+
constructor();
|
|
11
|
+
readonly hotelInfo: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationHotelInfo>;
|
|
12
|
+
readonly bookingId: import("@angular/core").InputSignal<string | number>;
|
|
13
|
+
readonly hotelId: import("@angular/core").InputSignal<string | number>;
|
|
14
|
+
readonly continueToCancel: import("@angular/core").OutputEmitterRef<IAlmatarHotelAutoCancellationPackage[]>;
|
|
15
|
+
readonly closeModal: import("@angular/core").OutputEmitterRef<void>;
|
|
16
|
+
readonly nonRefundableSubmitSuccess: import("@angular/core").OutputEmitterRef<string>;
|
|
17
|
+
readonly chatWithAgent: import("@angular/core").OutputEmitterRef<void>;
|
|
18
|
+
readonly currencyCode: import("@angular/core").InputSignal<string>;
|
|
19
|
+
readonly localPackages: import("@angular/core").WritableSignal<IAlmatarHotelAutoCancellationPackage[]>;
|
|
20
|
+
readonly displayPackages: import("@angular/core").Signal<IAlmatarHotelAutoCancellationPackage[]>;
|
|
21
|
+
readonly selectedPackagesCount: import("@angular/core").Signal<number>;
|
|
22
|
+
readonly hasSelectedPackages: import("@angular/core").Signal<boolean>;
|
|
23
|
+
readonly isSinglePackage: import("@angular/core").Signal<boolean>;
|
|
24
|
+
readonly totalRoomsCount: import("@angular/core").Signal<number>;
|
|
25
|
+
readonly allPackagesNonRefundable: import("@angular/core").Signal<boolean>;
|
|
26
|
+
togglePackage(packageId: string): void;
|
|
27
|
+
onContinue(): void;
|
|
28
|
+
onClose(): void;
|
|
29
|
+
onChatWithAgent(): void;
|
|
30
|
+
onNonRefundableSubmitSuccess(packageName: string): void;
|
|
31
|
+
formatDate(date: any): {
|
|
32
|
+
day: number;
|
|
33
|
+
month: string;
|
|
34
|
+
year: number;
|
|
35
|
+
dayName: string;
|
|
36
|
+
};
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationSelectRoomsComponent, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlmatarHotelAutoCancellationSelectRoomsComponent, "almatar-hotel-auto-cancellation-select-rooms", never, { "packages": { "alias": "packages"; "required": true; "isSignal": true; }; "hotelInfo": { "alias": "hotelInfo"; "required": true; "isSignal": true; }; "bookingId": { "alias": "bookingId"; "required": false; "isSignal": true; }; "hotelId": { "alias": "hotelId"; "required": false; "isSignal": true; }; "currencyCode": { "alias": "currencyCode"; "required": false; "isSignal": true; }; }, { "continueToCancel": "continueToCancel"; "closeModal": "closeModal"; "nonRefundableSubmitSuccess": "nonRefundableSubmitSuccess"; "chatWithAgent": "chatWithAgent"; }, never, never, true, never>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { IAlmatarHotelAutoCancellationPackage, IAlmatarHotelAutoCancellationHotelInfo, IAlmatarHotelAutoCancellationPackageRoom } from '../../../../interfaces/i-almatar-hotel-auto-cancellation.interface';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
interface IGroupedPackageRoom {
|
|
4
|
+
key: string;
|
|
5
|
+
bedTypeOrRoomType: string;
|
|
6
|
+
roomBasis: string;
|
|
7
|
+
count: number;
|
|
8
|
+
rooms: IAlmatarHotelAutoCancellationPackageRoom[];
|
|
9
|
+
}
|
|
10
|
+
export declare class AlmatarHotelAutoCancellationNonRefundableRoomComponent {
|
|
11
|
+
private readonly http;
|
|
12
|
+
private readonly destroyRef;
|
|
13
|
+
private readonly endpointsService;
|
|
14
|
+
private readonly translateService;
|
|
15
|
+
private readonly dialogService;
|
|
16
|
+
readonly package: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationPackage>;
|
|
17
|
+
readonly allPackages: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationPackage[]>;
|
|
18
|
+
readonly hotelInfo: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationHotelInfo>;
|
|
19
|
+
readonly hotelId: import("@angular/core").InputSignal<string | number>;
|
|
20
|
+
readonly currencyCode: import("@angular/core").InputSignal<string>;
|
|
21
|
+
readonly allPackagesNonRefundable: import("@angular/core").InputSignal<boolean>;
|
|
22
|
+
private readonly useLocalCancellationPolicies;
|
|
23
|
+
readonly closeModal: import("@angular/core").OutputEmitterRef<void>;
|
|
24
|
+
readonly nonRefundableSubmitSuccess: import("@angular/core").OutputEmitterRef<string>;
|
|
25
|
+
readonly uploadedFile: import("@angular/core").WritableSignal<File>;
|
|
26
|
+
readonly uploadedFileUrl: import("@angular/core").WritableSignal<string>;
|
|
27
|
+
readonly filePicked: import("@angular/core").WritableSignal<File>;
|
|
28
|
+
readonly uploadSuccess: import("@angular/core").WritableSignal<boolean>;
|
|
29
|
+
readonly uploadProgress: import("@angular/core").WritableSignal<number>;
|
|
30
|
+
readonly isUploading: import("@angular/core").WritableSignal<boolean>;
|
|
31
|
+
readonly isSubmitting: import("@angular/core").WritableSignal<boolean>;
|
|
32
|
+
readonly submitSuccess: import("@angular/core").WritableSignal<boolean>;
|
|
33
|
+
readonly submitError: import("@angular/core").WritableSignal<string>;
|
|
34
|
+
readonly groupedRooms: import("@angular/core").Signal<IGroupedPackageRoom[]>;
|
|
35
|
+
onFileSelected(event: Event): void;
|
|
36
|
+
private uploadFile;
|
|
37
|
+
onSubmitRequest(): void;
|
|
38
|
+
onRetry(): void;
|
|
39
|
+
onOpenCancellationPolicy(): void;
|
|
40
|
+
formatFileSize(bytes: number | undefined): string;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationNonRefundableRoomComponent, never>;
|
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlmatarHotelAutoCancellationNonRefundableRoomComponent, "almatar-hotel-auto-cancellation-non-refundable-room", never, { "package": { "alias": "package"; "required": true; "isSignal": true; }; "allPackages": { "alias": "allPackages"; "required": false; "isSignal": true; }; "hotelInfo": { "alias": "hotelInfo"; "required": false; "isSignal": true; }; "hotelId": { "alias": "hotelId"; "required": false; "isSignal": true; }; "currencyCode": { "alias": "currencyCode"; "required": false; "isSignal": true; }; "allPackagesNonRefundable": { "alias": "allPackagesNonRefundable"; "required": false; "isSignal": true; }; }, { "closeModal": "closeModal"; "nonRefundableSubmitSuccess": "nonRefundableSubmitSuccess"; }, never, never, true, never>;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IAlmatarHotelAutoCancellationPackage, IAlmatarHotelAutoCancellationPackageRoom } from '../../../../interfaces/i-almatar-hotel-auto-cancellation.interface';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
interface IGroupedPackageRoom {
|
|
4
|
+
key: string;
|
|
5
|
+
bedTypeOrRoomType: string;
|
|
6
|
+
roomBasis: string;
|
|
7
|
+
count: number;
|
|
8
|
+
rooms: IAlmatarHotelAutoCancellationPackageRoom[];
|
|
9
|
+
}
|
|
10
|
+
export declare class AlmatarHotelAutoCancellationRefundableRoomComponent {
|
|
11
|
+
readonly package: import("@angular/core").InputSignal<IAlmatarHotelAutoCancellationPackage>;
|
|
12
|
+
readonly hideCheckbox: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
readonly togglePackage: import("@angular/core").OutputEmitterRef<string>;
|
|
14
|
+
readonly groupedRooms: import("@angular/core").Signal<IGroupedPackageRoom[]>;
|
|
15
|
+
onTogglePackage(): void;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlmatarHotelAutoCancellationRefundableRoomComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlmatarHotelAutoCancellationRefundableRoomComponent, "almatar-hotel-auto-cancellation-refundable-room", never, { "package": { "alias": "package"; "required": true; "isSignal": true; }; "hideCheckbox": { "alias": "hideCheckbox"; "required": false; "isSignal": true; }; }, { "togglePackage": "togglePackage"; }, never, never, true, never>;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IHotelBookingData } from '../../../../models/booking.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class SbdHotelContentComponent {
|
|
4
|
+
bookingData: import("@angular/core").InputSignal<IHotelBookingData>;
|
|
5
|
+
bookingStatus: import("@angular/core").InputSignal<"error" | "success" | "idle" | "loading">;
|
|
6
|
+
bookingId: import("@angular/core").InputSignal<string>;
|
|
7
|
+
dataVerified: import("@angular/core").InputSignal<boolean>;
|
|
8
|
+
bookingNotes: import("@angular/core").InputSignal<any[]>;
|
|
9
|
+
bookingHistory: import("@angular/core").InputSignal<any[]>;
|
|
10
|
+
historyGroups: import("@angular/core").InputSignal<any[]>;
|
|
11
|
+
activeContextTab: import("@angular/core").InputSignal<"notes" | "changes">;
|
|
12
|
+
cancelBooking: import("@angular/core").OutputEmitterRef<void>;
|
|
13
|
+
addNoteRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
14
|
+
contextTabChanged: import("@angular/core").OutputEmitterRef<"notes" | "changes">;
|
|
15
|
+
detailDialogVisible: import("@angular/core").WritableSignal<boolean>;
|
|
16
|
+
selectedDetail: import("@angular/core").WritableSignal<{
|
|
17
|
+
title: string;
|
|
18
|
+
data: any;
|
|
19
|
+
type: string;
|
|
20
|
+
}>;
|
|
21
|
+
fmtNoteDate(date: {
|
|
22
|
+
sec: number;
|
|
23
|
+
usec?: number;
|
|
24
|
+
}): string;
|
|
25
|
+
formatField(field: string): string;
|
|
26
|
+
fmtDate(dt: string): string;
|
|
27
|
+
onCancelBooking(): void;
|
|
28
|
+
onAddNote(): void;
|
|
29
|
+
onTabChange(tab: 'notes' | 'changes'): void;
|
|
30
|
+
formatDate(date: string | undefined): string;
|
|
31
|
+
formatPrice(price: number | undefined): string;
|
|
32
|
+
showDetailDialog(title: string, data: any, type: string): void;
|
|
33
|
+
closeDetailDialog(): void;
|
|
34
|
+
showPackagesDetail(): void;
|
|
35
|
+
formatDetailValue(value: any): string;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SbdHotelContentComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SbdHotelContentComponent, "app-sbd-hotel-content", never, { "bookingData": { "alias": "bookingData"; "required": true; "isSignal": true; }; "bookingStatus": { "alias": "bookingStatus"; "required": true; "isSignal": true; }; "bookingId": { "alias": "bookingId"; "required": true; "isSignal": true; }; "dataVerified": { "alias": "dataVerified"; "required": true; "isSignal": true; }; "bookingNotes": { "alias": "bookingNotes"; "required": true; "isSignal": true; }; "bookingHistory": { "alias": "bookingHistory"; "required": true; "isSignal": true; }; "historyGroups": { "alias": "historyGroups"; "required": true; "isSignal": true; }; "activeContextTab": { "alias": "activeContextTab"; "required": true; "isSignal": true; }; }, { "cancelBooking": "cancelBooking"; "addNoteRequested": "addNoteRequested"; "contextTabChanged": "contextTabChanged"; }, never, never, true, never>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { CurrencySizeEnum } from '../../../../shared/components/currency-code-icon/currency-code-icon.component';
|
|
3
|
+
import { ICurrency } from '../../../../shared/models';
|
|
4
|
+
import { IRefundDetailsData, RefundPreferredMethod } from '../../../shared/interfaces/i-flight-refund-details';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export interface RefundMethodSplitRow {
|
|
7
|
+
label: string;
|
|
8
|
+
value: number;
|
|
9
|
+
instant: boolean;
|
|
10
|
+
isLoyalty: boolean;
|
|
11
|
+
isMada?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Hotel Refund-method selection screen ("You will get back … / Wallet / Card /
|
|
15
|
+
* Split Refund"). Takes the raw refund snapshot (`data`) as its single
|
|
16
|
+
* source of truth and derives every display/eligibility decision from it
|
|
17
|
+
* internally — which options are eligible, the split breakdown, gateway and
|
|
18
|
+
* loyalty-program label resolution — so callers don't need to replicate any
|
|
19
|
+
* of that logic themselves.
|
|
20
|
+
*/
|
|
21
|
+
export declare class HotelRefundMethodSelectorComponent {
|
|
22
|
+
private _data;
|
|
23
|
+
set data(value: IRefundDetailsData | null | undefined);
|
|
24
|
+
get data(): IRefundDetailsData | null | undefined;
|
|
25
|
+
/** Fallback booking id to display when `data.bookingId` isn't set yet. */
|
|
26
|
+
bookingId: string | number | null | undefined;
|
|
27
|
+
currencyObj: ICurrency | null;
|
|
28
|
+
refundMethod: RefundPreferredMethod;
|
|
29
|
+
/** Whether the header's Back button is shown at all — off by default; callers that want it opt in. */
|
|
30
|
+
showBack: boolean;
|
|
31
|
+
/** Whether the close button is shown — off by default; callers that want it opt in. */
|
|
32
|
+
readonly showCloseButton: import("@angular/core").InputSignal<boolean>;
|
|
33
|
+
/** Whether to show the loyalty points note explaining points are refunded as permanent wallet points. */
|
|
34
|
+
readonly showLoyaltyPointsNote: import("@angular/core").InputSignal<boolean>;
|
|
35
|
+
/** Left arrow — abandons the cancellation flow entirely (closes the whole manage-booking modal). */
|
|
36
|
+
closed: EventEmitter<void>;
|
|
37
|
+
/** Right ✕ — steps back to the Refund Details screen only (mirrors the native dialog close this screen's custom header replaced). */
|
|
38
|
+
backRequested: EventEmitter<void>;
|
|
39
|
+
methodSelected: EventEmitter<RefundPreferredMethod>;
|
|
40
|
+
currencySizeEnum: CurrencySizeEnum;
|
|
41
|
+
private translateService;
|
|
42
|
+
displayBookingId: import("@angular/core").Signal<string | number>;
|
|
43
|
+
totalRefundAmount: import("@angular/core").Signal<number>;
|
|
44
|
+
walletRefundAmount: import("@angular/core").Signal<number>;
|
|
45
|
+
private gatewayCode;
|
|
46
|
+
private isLoyaltyGateway;
|
|
47
|
+
/** Whether the customer paid via an installment gateway (Tamara, Tabby, …). */
|
|
48
|
+
isInstallmentMethod: import("@angular/core").Signal<boolean>;
|
|
49
|
+
/** Whether the customer paid via a loyalty-program gateway (Al Rajhi Mokafaa, …). */
|
|
50
|
+
isLoyaltyMethod: import("@angular/core").Signal<boolean>;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the payment was 100% loyalty points (no card portion).
|
|
53
|
+
* Used for description/badge when loyaltyPaymentType is set but no gateway code.
|
|
54
|
+
*/
|
|
55
|
+
isLoyaltyOnlyPayment: import("@angular/core").Signal<boolean>;
|
|
56
|
+
/** Whether to show loyalty-style description/badge (either loyalty gateway OR 100% loyalty payment). */
|
|
57
|
+
showAsLoyalty: import("@angular/core").Signal<boolean>;
|
|
58
|
+
/** Whether the original card was a Mada card — its refund row reads "Mada Card" instead of the generic gateway label. */
|
|
59
|
+
isMadaMethod: import("@angular/core").Signal<boolean>;
|
|
60
|
+
/** Any gateway that refunds somewhere other than a plain card — used for the wallet-style icon. */
|
|
61
|
+
isSpecialGatewayMethod: import("@angular/core").Signal<boolean>;
|
|
62
|
+
/** Settlement-time badge — differs per installment gateway (Tamara settles slower than Tabby). */
|
|
63
|
+
paymentBadgeKey: import("@angular/core").Signal<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Display label for `paymentMethodCustomerUsed`, localized. `loyaltyPaymentType`
|
|
66
|
+
* (once the backend sends it) wins when present — it names the specific
|
|
67
|
+
* loyalty program (e.g. Al Rajhi vs Qitaf) behind a gateway like STC that
|
|
68
|
+
* doesn't say which one on its own.
|
|
69
|
+
*/
|
|
70
|
+
customerPaymentLabel: import("@angular/core").Signal<string>;
|
|
71
|
+
/**
|
|
72
|
+
* Label for the standalone "Original Payment Method" option card (shown
|
|
73
|
+
* when the whole refund goes to one destination — no separate loyalty
|
|
74
|
+
* row exists here, so unlike `splitRefundRows`, the loyalty program name
|
|
75
|
+
* (e.g. "Wala") is still shown when that's what was used). Mada wins over
|
|
76
|
+
* everything else, reading "Mada Card" instead of the generic gateway
|
|
77
|
+
* name or the "Original Payment Method" fallback.
|
|
78
|
+
*/
|
|
79
|
+
originalPaymentLabel: import("@angular/core").Signal<string>;
|
|
80
|
+
/**
|
|
81
|
+
* "Almatar Wallet" row label — when the backend names a specific loyalty
|
|
82
|
+
* program via `loyaltyPaymentType` (e.g. Qitaf, Al Rajhi Mokafaa), that
|
|
83
|
+
* program's name replaces the generic "Almatar Wallet" label, since the
|
|
84
|
+
* amount is actually a loyalty-program redemption rather than a plain
|
|
85
|
+
* wallet balance.
|
|
86
|
+
*/
|
|
87
|
+
private walletOrLoyaltyLabel;
|
|
88
|
+
walletLabel: import("@angular/core").Signal<string>;
|
|
89
|
+
/**
|
|
90
|
+
* Part of the refund came from converting external loyalty points into
|
|
91
|
+
* wallet funds — surfaced as a note under the wallet destination so the
|
|
92
|
+
* customer knows those points land as permanent wallet balance, not cash.
|
|
93
|
+
*/
|
|
94
|
+
hasLoyaltyPointsRefund: import("@angular/core").Signal<boolean>;
|
|
95
|
+
/**
|
|
96
|
+
* `totalLoyaltyPoints` is normally the forfeited-at-booking points count
|
|
97
|
+
* (no refund destination of its own). But when the backend never
|
|
98
|
+
* populates `totalLoyaltyPointsRefundAmount` for a `loyaltyPaymentType`
|
|
99
|
+
* booking, this is the only signal that a loyalty program was involved,
|
|
100
|
+
* so it doubles as a split-refund row (alongside Card) rather than
|
|
101
|
+
* disappearing from the refund breakdown entirely.
|
|
102
|
+
*/
|
|
103
|
+
private forfeitedLoyaltyPointsFallback;
|
|
104
|
+
/** How many of {wallet, card, loyalty} the refund is actually split across. */
|
|
105
|
+
private splitPartsCount;
|
|
106
|
+
/**
|
|
107
|
+
* A portion of the refund is forced to the wallet (e.g. loyalty points used)
|
|
108
|
+
* — in that case offer a "Split Refund" option instead of a pure
|
|
109
|
+
* original-payment-method option, since the whole amount can't go to card.
|
|
110
|
+
*/
|
|
111
|
+
hasSplitRefund: import("@angular/core").Signal<boolean>;
|
|
112
|
+
/**
|
|
113
|
+
* Wallet covers the whole refund (no card or loyalty portion at all) — show
|
|
114
|
+
* the wallet option alone rather than a "split" with empty other sides.
|
|
115
|
+
*/
|
|
116
|
+
isWalletOnlyRefund: import("@angular/core").Signal<boolean>;
|
|
117
|
+
showWallet: import("@angular/core").Signal<boolean>;
|
|
118
|
+
showOriginal: import("@angular/core").Signal<boolean>;
|
|
119
|
+
showSplit: import("@angular/core").Signal<boolean>;
|
|
120
|
+
/**
|
|
121
|
+
* Only one refund-method card is eligible — there's nothing to choose
|
|
122
|
+
* between, so the radio button and active-selection highlight (which imply
|
|
123
|
+
* a choice) are hidden; the single card is used automatically.
|
|
124
|
+
*/
|
|
125
|
+
hasSingleOption: import("@angular/core").Signal<boolean>;
|
|
126
|
+
/**
|
|
127
|
+
* Split-refund destination rows — up to three: Almatar Wallet, the
|
|
128
|
+
* original payment method (card/installment gateway), and a separate
|
|
129
|
+
* loyalty-program row (Al Rajhi Mokafaa, Qitaf, …) when the refund is
|
|
130
|
+
* actually spread across a loyalty balance *and* something else.
|
|
131
|
+
*/
|
|
132
|
+
splitRefundRows: import("@angular/core").Signal<RefundMethodSplitRow[]>;
|
|
133
|
+
select(method: RefundPreferredMethod): void;
|
|
134
|
+
close(): void;
|
|
135
|
+
back(): void;
|
|
136
|
+
/** Format an amount without the currency suffix (for interpolated copy). */
|
|
137
|
+
fmtAmount(value: number | undefined): string;
|
|
138
|
+
/** Get the description for the original payment method */
|
|
139
|
+
getOriginalPaymentDescription(): string;
|
|
140
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HotelRefundMethodSelectorComponent, never>;
|
|
141
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HotelRefundMethodSelectorComponent, "almatar-hotel-refund-method-selector", never, { "data": { "alias": "data"; "required": false; }; "bookingId": { "alias": "bookingId"; "required": false; }; "currencyObj": { "alias": "currencyObj"; "required": false; }; "refundMethod": { "alias": "refundMethod"; "required": false; }; "showBack": { "alias": "showBack"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "showLoyaltyPointsNote": { "alias": "showLoyaltyPointsNote"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "backRequested": "backRequested"; "methodSelected": "methodSelected"; }, never, never, true, never>;
|
|
142
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export type ResultType = 'success' | 'error' | 'warning';
|
|
3
|
+
export interface ResultOverlayData {
|
|
4
|
+
type: ResultType;
|
|
5
|
+
title: string;
|
|
6
|
+
message: string;
|
|
7
|
+
confirmText?: string;
|
|
8
|
+
cancelText?: string;
|
|
9
|
+
showCancel?: boolean;
|
|
10
|
+
icon?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class ResultOverlayComponent {
|
|
13
|
+
readonly data: import("@angular/core").InputSignal<ResultOverlayData>;
|
|
14
|
+
readonly show: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
readonly confirm: import("@angular/core").OutputEmitterRef<void>;
|
|
16
|
+
readonly cancel: import("@angular/core").OutputEmitterRef<void>;
|
|
17
|
+
onConfirm(): void;
|
|
18
|
+
onCancel(): void;
|
|
19
|
+
getIcon(): string;
|
|
20
|
+
getIconClass(): string;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ResultOverlayComponent, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ResultOverlayComponent, "app-result-overlay", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; }, { "confirm": "confirm"; "cancel": "cancel"; }, never, never, true, never>;
|
|
23
|
+
}
|