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

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 (90) 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 +123 -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 +448 -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/result-panel/result-panel.component.mjs +3 -3
  24. package/esm2022/lib/components/shared/components/confirm-modal/confirm-modal.component.mjs +75 -0
  25. package/esm2022/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.mjs +46 -0
  26. package/esm2022/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.mjs +9 -0
  27. package/esm2022/lib/components/shared/interfaces/i-flight-refund-details.mjs +86 -0
  28. package/esm2022/lib/components/shared/models/cancel-hotel-booking.model.mjs +7 -0
  29. package/esm2022/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.mjs +27 -0
  30. package/esm2022/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.mjs +17 -0
  31. package/esm2022/lib/config/hotel-actions.config.mjs +21 -1
  32. package/esm2022/lib/models/booking.types.mjs +73 -2
  33. package/esm2022/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.mjs +25 -7
  34. package/esm2022/lib/services/booking.service.mjs +6 -2
  35. package/esm2022/lib/shared/components/currency-code-icon/currency-code-icon.component.mjs +35 -0
  36. package/esm2022/lib/shared/enums/brand-enums.enum.mjs +7 -0
  37. package/esm2022/lib/shared/environments/environment.mjs +10 -0
  38. package/esm2022/lib/shared/models/index.mjs +6 -0
  39. package/esm2022/lib/shared/modules/almatar-icon/almatar-icon.module.mjs +36 -0
  40. package/esm2022/lib/shared/modules/loader/loader.module.mjs +43 -0
  41. package/esm2022/lib/shared/pipes/exchange.pipe.mjs +49 -0
  42. package/esm2022/lib/shared/services/api.service.mjs +42 -0
  43. package/esm2022/lib/shared/services/shared.service.mjs +34 -0
  44. package/esm2022/lib/shared/services/translation.service.mjs +61 -0
  45. package/esm2022/lib/shared/services/webengage-tracking.service.mjs +28 -0
  46. package/esm2022/lib/shared/store/selectors/currency.selectors.mjs +9 -0
  47. package/fesm2022/almatar-smart-booking-dashboard.mjs +3278 -180
  48. package/fesm2022/almatar-smart-booking-dashboard.mjs.map +1 -1
  49. package/lib/components/almatar-aside/aside-back-button.service.d.ts +11 -0
  50. package/lib/components/almatar-aside/aside.component.d.ts +47 -0
  51. package/lib/components/cancel-dialog/cancel-dialog.component.d.ts +7 -0
  52. package/lib/components/hotel-cancel/almatar-hotel-auto-cancellation.component.d.ts +97 -0
  53. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-method/almatar-hotel-auto-cancellation-refund-method.component.d.ts +25 -0
  54. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-summary/almatar-hotel-auto-cancellation-refund-summary.component.d.ts +91 -0
  55. package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/almatar-hotel-auto-cancellation-select-rooms.component.d.ts +39 -0
  56. 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
  57. 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
  58. package/lib/components/hotel-cancel/components/hotel-content/hotel-content.component.d.ts +38 -0
  59. package/lib/components/hotel-cancel/components/hotel-refund-method-selector/hotel-refund-method-selector.component.d.ts +142 -0
  60. package/lib/components/hotel-cancel/components/result-overlay/result-overlay.component.d.ts +23 -0
  61. package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-endpoints.enum.d.ts +7 -0
  62. package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-step.enum.d.ts +5 -0
  63. package/lib/components/hotel-cancel/interfaces/i-almatar-hotel-auto-cancellation.interface.d.ts +252 -0
  64. package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation-endpoints.service.d.ts +82 -0
  65. package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation.service.d.ts +21 -0
  66. package/lib/components/hotel-itinerary-card/hotel-itinerary-card.component.d.ts +16 -0
  67. package/lib/components/shared/components/confirm-modal/confirm-modal.component.d.ts +17 -0
  68. package/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.d.ts +10 -0
  69. package/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.d.ts +7 -0
  70. package/lib/components/shared/interfaces/i-flight-refund-details.d.ts +73 -0
  71. package/lib/components/shared/models/cancel-hotel-booking.model.d.ts +6 -0
  72. package/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.d.ts +11 -0
  73. package/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.d.ts +7 -0
  74. package/lib/models/booking.types.d.ts +28 -0
  75. package/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.d.ts +1 -0
  76. package/lib/shared/components/currency-code-icon/currency-code-icon.component.d.ts +13 -0
  77. package/lib/shared/enums/brand-enums.enum.d.ts +5 -0
  78. package/lib/shared/environments/environment.d.ts +7 -0
  79. package/lib/shared/models/index.d.ts +11 -0
  80. package/lib/shared/modules/almatar-icon/almatar-icon.module.d.ts +13 -0
  81. package/lib/shared/modules/loader/loader.module.d.ts +13 -0
  82. package/lib/shared/pipes/exchange.pipe.d.ts +17 -0
  83. package/lib/shared/services/api.service.d.ts +43 -0
  84. package/lib/shared/services/shared.service.d.ts +12 -0
  85. package/lib/shared/services/translation.service.d.ts +17 -0
  86. package/lib/shared/services/webengage-tracking.service.d.ts +8 -0
  87. package/lib/shared/store/selectors/currency.selectors.d.ts +2 -0
  88. package/package.json +2 -19
  89. package/LICENSE +0 -21
  90. package/README.md +0 -132
@@ -0,0 +1,48 @@
1
+ import { Component, computed, input } from '@angular/core';
2
+ import { UpperCasePipe, LowerCasePipe } from '@angular/common';
3
+ import { TagModule } from 'primeng/tag';
4
+ import * as i0 from "@angular/core";
5
+ export class SbdHotelItineraryCardComponent {
6
+ constructor() {
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ this.data = input(null);
9
+ this.verified = input(false);
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ this.bi = computed(() => this.data()?.data?.booking_info);
12
+ this.hotelInfo = computed(() => this.data()?.data?.hotel_information);
13
+ this.checkinCheckout = computed(() => this.data()?.data?.checkin_checkout);
14
+ this.roomInfo = computed(() => this.data()?.data?.room_information);
15
+ this.passengers = computed(() =>
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ (this.bi()?.passenger_info?.passengers ?? []));
18
+ this.payment = computed(() => this.bi()?.payment_status);
19
+ this.typeLabel = { ADT: 'Adult', CNN: 'Child', INF: 'Infant' };
20
+ }
21
+ fmtTime(dt) {
22
+ if (!dt)
23
+ return '—';
24
+ try {
25
+ return new Date(dt).toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit' });
26
+ }
27
+ catch {
28
+ return dt;
29
+ }
30
+ }
31
+ fmtShortDate(dt) {
32
+ if (!dt)
33
+ return '—';
34
+ try {
35
+ return new Date(dt).toLocaleDateString('en-GB', { day: '2-digit', month: 'short' });
36
+ }
37
+ catch {
38
+ return dt;
39
+ }
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdHotelItineraryCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SbdHotelItineraryCardComponent, isStandalone: true, selector: "app-sbd-hotel-itinerary-card", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, verified: { classPropertyName: "verified", publicName: "verified", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"hic\">\n\n <!-- \u2500\u2500 Hotel Information \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (hotelInfo()) {\n <div class=\"hic__hotel-header\">\n <div class=\"hic__hotel-name\">{{ hotelInfo()?.hotel_name }}</div>\n @if (hotelInfo()?.star_rating) {\n <div class=\"hic__hotel-rating\">\n @for (star of [].constructor(hotelInfo()?.star_rating); track $index) {\n <i class=\"pi pi-star-fill\"></i>\n }\n </div>\n }\n @if (hotelInfo()?.address) {\n <div class=\"hic__hotel-address\">\n <i class=\"pi pi-map-marker\"></i>\n {{ hotelInfo()?.address }}\n </div>\n }\n </div>\n }\n\n <!-- \u2500\u2500 Check-in / Check-out \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (checkinCheckout()) {\n <div class=\"hic__hotel-dates\">\n <div class=\"hic__hotel-date\">\n <div class=\"hic__hotel-date-label\">\n <i class=\"pi pi-sign-in\"></i> Check-in\n </div>\n <div class=\"hic__hotel-date-value\">{{ fmtShortDate(checkinCheckout()?.check_in) }}</div>\n <div class=\"hic__hotel-date-time\">{{ fmtTime(checkinCheckout()?.check_in) }}</div>\n </div>\n <div class=\"hic__hotel-date-separator\">\n <i class=\"pi pi-arrow-right\"></i>\n @if (checkinCheckout()?.nights) {\n <span class=\"hic__hotel-nights\">{{ checkinCheckout()?.nights }} night{{ checkinCheckout()?.nights > 1 ? 's' : '' }}</span>\n }\n </div>\n <div class=\"hic__hotel-date\">\n <div class=\"hic__hotel-date-label\">\n <i class=\"pi pi-sign-out\"></i> Check-out\n </div>\n <div class=\"hic__hotel-date-value\">{{ fmtShortDate(checkinCheckout()?.check_out) }}</div>\n <div class=\"hic__hotel-date-time\">{{ fmtTime(checkinCheckout()?.check_out) }}</div>\n </div>\n </div>\n }\n\n <!-- \u2500\u2500 Room Information \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (roomInfo()) {\n <div class=\"hic__section\">\n <div class=\"hic__section-label\">\n <i class=\"pi pi-building\"></i> Room Details\n </div>\n <div class=\"hic__hotel-room\">\n @if (roomInfo()?.room_type) {\n <div class=\"hic__hotel-room-type\">{{ roomInfo()?.room_type }}</div>\n }\n @if (roomInfo()?.board_type) {\n <div class=\"hic__hotel-room-board\">\n <i class=\"pi pi-shopping-bag\"></i> {{ roomInfo()?.board_type }}\n </div>\n }\n </div>\n </div>\n }\n\n <!-- \u2500\u2500 Guests \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (passengers().length > 0) {\n <div class=\"hic__section\">\n <div class=\"hic__section-label\">\n <i class=\"pi pi-users\"></i> Guests\n <span class=\"hic__section-count\">{{ passengers().length }}</span>\n </div>\n <div class=\"hic__pax-list\">\n @for (p of passengers(); track p.passengerId) {\n <div class=\"hic__pax\">\n <div class=\"hic__pax-top\">\n <span class=\"hic__pax-badge hic__pax-badge--{{ p.type | lowercase }}\">{{ typeLabel[p.type] ?? p.type }}</span>\n <span class=\"hic__pax-name\">{{ p.name?.prefix }} {{ p.name?.givenName }} {{ p.name?.surName }}</span>\n </div>\n <div class=\"hic__pax-bottom\">\n @if (p.identity?.number) {\n <span class=\"hic__pax-doc\"><i class=\"pi pi-id-card\"></i> {{ p.identity?.number }}</span>\n }\n @if (p.email) {\n <span class=\"hic__pax-email\">{{ p.email }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- \u2500\u2500 Payment \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (payment()) {\n <div class=\"hic__payment\">\n <div class=\"hic__payment-main\">\n <i class=\"pi pi-credit-card hic__payment-icon\"></i>\n <span class=\"hic__payment-amount\">{{ payment()?.amount }} {{ payment()?.currency }}</span>\n <span class=\"hic__payment-status\" [class.hic__payment-status--ok]=\"payment()?.status?.key === 'SUCCESS'\">\n <i class=\"pi\" [class.pi-check-circle]=\"payment()?.status?.key === 'SUCCESS'\" [class.pi-clock]=\"payment()?.status?.key !== 'SUCCESS'\"></i>\n {{ payment()?.status?.name }}\n </span>\n </div>\n @if (payment()?.method || payment()?.date) {\n <div class=\"hic__payment-sub\">\n @if (payment()?.method) { <span>{{ payment()?.method }}</span> }\n @if (payment()?.method && payment()?.date) { <span class=\"hic__dot\">\u00B7</span> }\n @if (payment()?.date) { <span>{{ payment()?.date }}</span> }\n </div>\n }\n </div>\n }\n\n</div>\n", styles: [".hic{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;font-family:inherit}.hic__hotel-header{padding:18px 16px;border-bottom:1px solid #e2e8f0}.hic__hotel-name{font-size:16px;font-weight:700;color:#1e2e4a;margin-bottom:6px}.hic__hotel-rating{display:flex;gap:2px;margin-bottom:8px}.hic__hotel-rating .pi{font-size:12px;color:#f59e0b}.hic__hotel-address{display:flex;align-items:flex-start;gap:5px;font-size:12px;color:#64748b}.hic__hotel-address .pi{font-size:11px;color:#94a3b8;margin-top:2px;flex-shrink:0}.hic__hotel-dates{display:flex;align-items:center;justify-content:space-between;padding:16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.hic__hotel-date{display:flex;flex-direction:column;gap:3px}.hic__hotel-date-label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.hic__hotel-date-label .pi{font-size:10px}.hic__hotel-date-value{font-size:14px;font-weight:700;color:#1e2e4a}.hic__hotel-date-time{font-size:11px;color:#94a3b8}.hic__hotel-date-separator{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0 12px}.hic__hotel-date-separator .pi{font-size:12px;color:#cbd5e1}.hic__hotel-nights{font-size:10px;font-weight:600;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:10px}.hic__hotel-room{display:flex;flex-direction:column;gap:6px}.hic__hotel-room-type{font-size:13px;font-weight:600;color:#1e2e4a}.hic__hotel-room-board{display:flex;align-items:center;gap:5px;font-size:12px;color:#64748b}.hic__hotel-room-board .pi{font-size:11px;color:#94a3b8}.hic__section{padding:14px 16px;border-bottom:1px solid #e2e8f0}.hic__section-label{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#64748b;margin-bottom:10px}.hic__section-label .pi{font-size:11px}.hic__section-count{margin-left:auto;background:#f1f5f9;color:#475569;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px}.hic__pax-list{display:flex;flex-direction:column;gap:8px}.hic__pax{background:#f8fafc;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:5px}.hic__pax-top{display:flex;align-items:center;gap:7px}.hic__pax-badge{font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:10px;flex-shrink:0;text-transform:uppercase}.hic__pax-badge--adt{background:#dbeafe;color:#1d4ed8}.hic__pax-badge--cnn{background:#dcfce7;color:#15803d}.hic__pax-badge--inf{background:#fce7f3;color:#9d174d}.hic__pax-name{font-size:12.5px;font-weight:600;color:#1e2e4a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hic__pax-bottom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hic__pax-doc{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-family:monospace;color:#475569;background:#f1f5f9;padding:1px 6px;border-radius:4px}.hic__pax-doc .pi{font-size:10px}.hic__pax-email{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.hic__payment{padding:12px 16px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.hic__payment-main{display:flex;align-items:center;gap:8px}.hic__payment-icon{font-size:14px;color:#64748b}.hic__payment-amount{font-size:14px;font-weight:700;color:#1e2e4a}.hic__payment-status{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#64748b;margin-left:auto}.hic__payment-status .pi{font-size:12px}.hic__payment-status--ok{color:#16a34a}.hic__payment-sub{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#94a3b8;padding-left:22px}.hic__dot{color:#cbd5e1}\n"], dependencies: [{ kind: "ngmodule", type: TagModule }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }] }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdHotelItineraryCardComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'app-sbd-hotel-itinerary-card', standalone: true, imports: [TagModule, UpperCasePipe, LowerCasePipe], template: "<div class=\"hic\">\n\n <!-- \u2500\u2500 Hotel Information \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (hotelInfo()) {\n <div class=\"hic__hotel-header\">\n <div class=\"hic__hotel-name\">{{ hotelInfo()?.hotel_name }}</div>\n @if (hotelInfo()?.star_rating) {\n <div class=\"hic__hotel-rating\">\n @for (star of [].constructor(hotelInfo()?.star_rating); track $index) {\n <i class=\"pi pi-star-fill\"></i>\n }\n </div>\n }\n @if (hotelInfo()?.address) {\n <div class=\"hic__hotel-address\">\n <i class=\"pi pi-map-marker\"></i>\n {{ hotelInfo()?.address }}\n </div>\n }\n </div>\n }\n\n <!-- \u2500\u2500 Check-in / Check-out \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (checkinCheckout()) {\n <div class=\"hic__hotel-dates\">\n <div class=\"hic__hotel-date\">\n <div class=\"hic__hotel-date-label\">\n <i class=\"pi pi-sign-in\"></i> Check-in\n </div>\n <div class=\"hic__hotel-date-value\">{{ fmtShortDate(checkinCheckout()?.check_in) }}</div>\n <div class=\"hic__hotel-date-time\">{{ fmtTime(checkinCheckout()?.check_in) }}</div>\n </div>\n <div class=\"hic__hotel-date-separator\">\n <i class=\"pi pi-arrow-right\"></i>\n @if (checkinCheckout()?.nights) {\n <span class=\"hic__hotel-nights\">{{ checkinCheckout()?.nights }} night{{ checkinCheckout()?.nights > 1 ? 's' : '' }}</span>\n }\n </div>\n <div class=\"hic__hotel-date\">\n <div class=\"hic__hotel-date-label\">\n <i class=\"pi pi-sign-out\"></i> Check-out\n </div>\n <div class=\"hic__hotel-date-value\">{{ fmtShortDate(checkinCheckout()?.check_out) }}</div>\n <div class=\"hic__hotel-date-time\">{{ fmtTime(checkinCheckout()?.check_out) }}</div>\n </div>\n </div>\n }\n\n <!-- \u2500\u2500 Room Information \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (roomInfo()) {\n <div class=\"hic__section\">\n <div class=\"hic__section-label\">\n <i class=\"pi pi-building\"></i> Room Details\n </div>\n <div class=\"hic__hotel-room\">\n @if (roomInfo()?.room_type) {\n <div class=\"hic__hotel-room-type\">{{ roomInfo()?.room_type }}</div>\n }\n @if (roomInfo()?.board_type) {\n <div class=\"hic__hotel-room-board\">\n <i class=\"pi pi-shopping-bag\"></i> {{ roomInfo()?.board_type }}\n </div>\n }\n </div>\n </div>\n }\n\n <!-- \u2500\u2500 Guests \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (passengers().length > 0) {\n <div class=\"hic__section\">\n <div class=\"hic__section-label\">\n <i class=\"pi pi-users\"></i> Guests\n <span class=\"hic__section-count\">{{ passengers().length }}</span>\n </div>\n <div class=\"hic__pax-list\">\n @for (p of passengers(); track p.passengerId) {\n <div class=\"hic__pax\">\n <div class=\"hic__pax-top\">\n <span class=\"hic__pax-badge hic__pax-badge--{{ p.type | lowercase }}\">{{ typeLabel[p.type] ?? p.type }}</span>\n <span class=\"hic__pax-name\">{{ p.name?.prefix }} {{ p.name?.givenName }} {{ p.name?.surName }}</span>\n </div>\n <div class=\"hic__pax-bottom\">\n @if (p.identity?.number) {\n <span class=\"hic__pax-doc\"><i class=\"pi pi-id-card\"></i> {{ p.identity?.number }}</span>\n }\n @if (p.email) {\n <span class=\"hic__pax-email\">{{ p.email }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- \u2500\u2500 Payment \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (payment()) {\n <div class=\"hic__payment\">\n <div class=\"hic__payment-main\">\n <i class=\"pi pi-credit-card hic__payment-icon\"></i>\n <span class=\"hic__payment-amount\">{{ payment()?.amount }} {{ payment()?.currency }}</span>\n <span class=\"hic__payment-status\" [class.hic__payment-status--ok]=\"payment()?.status?.key === 'SUCCESS'\">\n <i class=\"pi\" [class.pi-check-circle]=\"payment()?.status?.key === 'SUCCESS'\" [class.pi-clock]=\"payment()?.status?.key !== 'SUCCESS'\"></i>\n {{ payment()?.status?.name }}\n </span>\n </div>\n @if (payment()?.method || payment()?.date) {\n <div class=\"hic__payment-sub\">\n @if (payment()?.method) { <span>{{ payment()?.method }}</span> }\n @if (payment()?.method && payment()?.date) { <span class=\"hic__dot\">\u00B7</span> }\n @if (payment()?.date) { <span>{{ payment()?.date }}</span> }\n </div>\n }\n </div>\n }\n\n</div>\n", styles: [".hic{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;font-family:inherit}.hic__hotel-header{padding:18px 16px;border-bottom:1px solid #e2e8f0}.hic__hotel-name{font-size:16px;font-weight:700;color:#1e2e4a;margin-bottom:6px}.hic__hotel-rating{display:flex;gap:2px;margin-bottom:8px}.hic__hotel-rating .pi{font-size:12px;color:#f59e0b}.hic__hotel-address{display:flex;align-items:flex-start;gap:5px;font-size:12px;color:#64748b}.hic__hotel-address .pi{font-size:11px;color:#94a3b8;margin-top:2px;flex-shrink:0}.hic__hotel-dates{display:flex;align-items:center;justify-content:space-between;padding:16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.hic__hotel-date{display:flex;flex-direction:column;gap:3px}.hic__hotel-date-label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.hic__hotel-date-label .pi{font-size:10px}.hic__hotel-date-value{font-size:14px;font-weight:700;color:#1e2e4a}.hic__hotel-date-time{font-size:11px;color:#94a3b8}.hic__hotel-date-separator{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0 12px}.hic__hotel-date-separator .pi{font-size:12px;color:#cbd5e1}.hic__hotel-nights{font-size:10px;font-weight:600;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:10px}.hic__hotel-room{display:flex;flex-direction:column;gap:6px}.hic__hotel-room-type{font-size:13px;font-weight:600;color:#1e2e4a}.hic__hotel-room-board{display:flex;align-items:center;gap:5px;font-size:12px;color:#64748b}.hic__hotel-room-board .pi{font-size:11px;color:#94a3b8}.hic__section{padding:14px 16px;border-bottom:1px solid #e2e8f0}.hic__section-label{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#64748b;margin-bottom:10px}.hic__section-label .pi{font-size:11px}.hic__section-count{margin-left:auto;background:#f1f5f9;color:#475569;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px}.hic__pax-list{display:flex;flex-direction:column;gap:8px}.hic__pax{background:#f8fafc;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:5px}.hic__pax-top{display:flex;align-items:center;gap:7px}.hic__pax-badge{font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:10px;flex-shrink:0;text-transform:uppercase}.hic__pax-badge--adt{background:#dbeafe;color:#1d4ed8}.hic__pax-badge--cnn{background:#dcfce7;color:#15803d}.hic__pax-badge--inf{background:#fce7f3;color:#9d174d}.hic__pax-name{font-size:12.5px;font-weight:600;color:#1e2e4a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hic__pax-bottom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hic__pax-doc{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-family:monospace;color:#475569;background:#f1f5f9;padding:1px 6px;border-radius:4px}.hic__pax-doc .pi{font-size:10px}.hic__pax-email{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.hic__payment{padding:12px 16px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.hic__payment-main{display:flex;align-items:center;gap:8px}.hic__payment-icon{font-size:14px;color:#64748b}.hic__payment-amount{font-size:14px;font-weight:700;color:#1e2e4a}.hic__payment-status{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#64748b;margin-left:auto}.hic__payment-status .pi{font-size:12px}.hic__payment-status--ok{color:#16a34a}.hic__payment-sub{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#94a3b8;padding-left:22px}.hic__dot{color:#cbd5e1}\n"] }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtaXRpbmVyYXJ5LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYm9va2luZy1kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL2hvdGVsLWl0aW5lcmFyeS1jYXJkL2hvdGVsLWl0aW5lcmFyeS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9ob3RlbC1pdGluZXJhcnktY2FyZC9ob3RlbC1pdGluZXJhcnktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVN4QyxNQUFNLE9BQU8sOEJBQThCO0lBUDNDO1FBUUUsOERBQThEO1FBQzlELFNBQUksR0FBRyxLQUFLLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4Qiw4REFBOEQ7UUFDdEQsT0FBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTdELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN0RSxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUUvRCxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6Qiw4REFBOEQ7UUFDOUQsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQVUsQ0FDdkQsQ0FBQztRQUVGLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRTNDLGNBQVMsR0FBMkIsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDO0tBYTVGO0lBWEMsT0FBTyxDQUFDLEVBQVU7UUFDaEIsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFBQyxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQ2hHLE1BQU0sQ0FBQztZQUFDLE9BQU8sRUFBRSxDQUFDO1FBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQVU7UUFDckIsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFBQyxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQzVGLE1BQU0sQ0FBQztZQUFDLE9BQU8sRUFBRSxDQUFDO1FBQUMsQ0FBQztJQUN0QixDQUFDOytHQS9CVSw4QkFBOEI7bUdBQTlCLDhCQUE4QiwwVkNYM0Msa3RLQXFIQSxpb0hEOUdZLFNBQVMsMEJBQWlCLGFBQWE7OzRGQUl0Qyw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsOEJBQThCLGNBQzVCLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVwcGVyQ2FzZVBpcGUsIExvd2VyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2JkLWhvdGVsLWl0aW5lcmFyeS1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RhZ01vZHVsZSwgVXBwZXJDYXNlUGlwZSwgTG93ZXJDYXNlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ob3RlbC1pdGluZXJhcnktY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ob3RlbC1pdGluZXJhcnktY2FyZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNiZEhvdGVsSXRpbmVyYXJ5Q2FyZENvbXBvbmVudCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGRhdGEgPSBpbnB1dDxhbnk+KG51bGwpO1xuICB2ZXJpZmllZCA9IGlucHV0KGZhbHNlKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcml2YXRlIGJpID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRhKCk/LmRhdGE/LmJvb2tpbmdfaW5mbyk7XG5cbiAgaG90ZWxJbmZvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRhKCk/LmRhdGE/LmhvdGVsX2luZm9ybWF0aW9uKTtcbiAgY2hlY2tpbkNoZWNrb3V0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRhKCk/LmRhdGE/LmNoZWNraW5fY2hlY2tvdXQpO1xuICByb29tSW5mbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF0YSgpPy5kYXRhPy5yb29tX2luZm9ybWF0aW9uKTtcblxuICBwYXNzZW5nZXJzID0gY29tcHV0ZWQoKCkgPT5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICh0aGlzLmJpKCk/LnBhc3Nlbmdlcl9pbmZvPy5wYXNzZW5nZXJzID8/IFtdKSBhcyBhbnlbXVxuICApO1xuXG4gIHBheW1lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJpKCk/LnBheW1lbnRfc3RhdHVzKTtcblxuICByZWFkb25seSB0eXBlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7IEFEVDogJ0FkdWx0JywgQ05OOiAnQ2hpbGQnLCBJTkY6ICdJbmZhbnQnIH07XG5cbiAgZm10VGltZShkdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWR0KSByZXR1cm4gJ+KAlCc7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBEYXRlKGR0KS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLUdCJywgeyBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyB9XG4gICAgY2F0Y2ggeyByZXR1cm4gZHQ7IH1cbiAgfVxuXG4gIGZtdFNob3J0RGF0ZShkdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWR0KSByZXR1cm4gJ+KAlCc7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBEYXRlKGR0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLUdCJywgeyBkYXk6ICcyLWRpZ2l0JywgbW9udGg6ICdzaG9ydCcgfSk7IH1cbiAgICBjYXRjaCB7IHJldHVybiBkdDsgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGljXCI+XG5cbiAgPCEtLSDilIDilIAgSG90ZWwgSW5mb3JtYXRpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICBAaWYgKGhvdGVsSW5mbygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGljX19ob3RlbC1uYW1lXCI+e3sgaG90ZWxJbmZvKCk/LmhvdGVsX25hbWUgfX08L2Rpdj5cbiAgICAgIEBpZiAoaG90ZWxJbmZvKCk/LnN0YXJfcmF0aW5nKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWNfX2hvdGVsLXJhdGluZ1wiPlxuICAgICAgICAgIEBmb3IgKHN0YXIgb2YgW10uY29uc3RydWN0b3IoaG90ZWxJbmZvKCk/LnN0YXJfcmF0aW5nKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXN0YXItZmlsbFwiPjwvaT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChob3RlbEluZm8oKT8uYWRkcmVzcykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiaGljX19ob3RlbC1hZGRyZXNzXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXAtbWFya2VyXCI+PC9pPlxuICAgICAgICAgIHt7IGhvdGVsSW5mbygpPy5hZGRyZXNzIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPCEtLSDilIDilIAgQ2hlY2staW4gLyBDaGVjay1vdXQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICBAaWYgKGNoZWNraW5DaGVja291dCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtZGF0ZXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoaWNfX2hvdGVsLWRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtZGF0ZS1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2lnbi1pblwiPjwvaT4gQ2hlY2staW5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWNfX2hvdGVsLWRhdGUtdmFsdWVcIj57eyBmbXRTaG9ydERhdGUoY2hlY2tpbkNoZWNrb3V0KCk/LmNoZWNrX2luKSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGljX19ob3RlbC1kYXRlLXRpbWVcIj57eyBmbXRUaW1lKGNoZWNraW5DaGVja291dCgpPy5jaGVja19pbikgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtZGF0ZS1zZXBhcmF0b3JcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1hcnJvdy1yaWdodFwiPjwvaT5cbiAgICAgICAgQGlmIChjaGVja2luQ2hlY2tvdXQoKT8ubmlnaHRzKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWNfX2hvdGVsLW5pZ2h0c1wiPnt7IGNoZWNraW5DaGVja291dCgpPy5uaWdodHMgfX0gbmlnaHR7eyBjaGVja2luQ2hlY2tvdXQoKT8ubmlnaHRzID4gMSA/ICdzJyA6ICcnIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoaWNfX2hvdGVsLWRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtZGF0ZS1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2lnbi1vdXRcIj48L2k+IENoZWNrLW91dFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtZGF0ZS12YWx1ZVwiPnt7IGZtdFNob3J0RGF0ZShjaGVja2luQ2hlY2tvdXQoKT8uY2hlY2tfb3V0KSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGljX19ob3RlbC1kYXRlLXRpbWVcIj57eyBmbXRUaW1lKGNoZWNraW5DaGVja291dCgpPy5jaGVja19vdXQpIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0g4pSA4pSAIFJvb20gSW5mb3JtYXRpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICBAaWYgKHJvb21JbmZvKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiaGljX19zZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGljX19zZWN0aW9uLWxhYmVsXCI+XG4gICAgICAgIDxpIGNsYXNzPVwicGkgcGktYnVpbGRpbmdcIj48L2k+IFJvb20gRGV0YWlsc1xuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGljX19ob3RlbC1yb29tXCI+XG4gICAgICAgIEBpZiAocm9vbUluZm8oKT8ucm9vbV90eXBlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtcm9vbS10eXBlXCI+e3sgcm9vbUluZm8oKT8ucm9vbV90eXBlIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChyb29tSW5mbygpPy5ib2FyZF90eXBlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhpY19faG90ZWwtcm9vbS1ib2FyZFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zaG9wcGluZy1iYWdcIj48L2k+IHt7IHJvb21JbmZvKCk/LmJvYXJkX3R5cGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8IS0tIOKUgOKUgCBHdWVzdHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICBAaWYgKHBhc3NlbmdlcnMoKS5sZW5ndGggPiAwKSB7XG4gICAgPGRpdiBjbGFzcz1cImhpY19fc2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhpY19fc2VjdGlvbi1sYWJlbFwiPlxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXVzZXJzXCI+PC9pPiBHdWVzdHNcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWNfX3NlY3Rpb24tY291bnRcIj57eyBwYXNzZW5nZXJzKCkubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGljX19wYXgtbGlzdFwiPlxuICAgICAgICBAZm9yIChwIG9mIHBhc3NlbmdlcnMoKTsgdHJhY2sgcC5wYXNzZW5nZXJJZCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWNfX3BheFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpY19fcGF4LXRvcFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhpY19fcGF4LWJhZGdlIGhpY19fcGF4LWJhZGdlLS17eyBwLnR5cGUgfCBsb3dlcmNhc2UgfX1cIj57eyB0eXBlTGFiZWxbcC50eXBlXSA/PyBwLnR5cGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGljX19wYXgtbmFtZVwiPnt7IHAubmFtZT8ucHJlZml4IH19IHt7IHAubmFtZT8uZ2l2ZW5OYW1lIH19IHt7IHAubmFtZT8uc3VyTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpY19fcGF4LWJvdHRvbVwiPlxuICAgICAgICAgICAgICBAaWYgKHAuaWRlbnRpdHk/Lm51bWJlcikge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGljX19wYXgtZG9jXCI+PGkgY2xhc3M9XCJwaSBwaS1pZC1jYXJkXCI+PC9pPiB7eyBwLmlkZW50aXR5Py5udW1iZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChwLmVtYWlsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWNfX3BheC1lbWFpbFwiPnt7IHAuZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0g4pSA4pSAIFBheW1lbnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICBAaWYgKHBheW1lbnQoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJoaWNfX3BheW1lbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoaWNfX3BheW1lbnQtbWFpblwiPlxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNyZWRpdC1jYXJkIGhpY19fcGF5bWVudC1pY29uXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImhpY19fcGF5bWVudC1hbW91bnRcIj57eyBwYXltZW50KCk/LmFtb3VudCB9fSB7eyBwYXltZW50KCk/LmN1cnJlbmN5IH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImhpY19fcGF5bWVudC1zdGF0dXNcIiBbY2xhc3MuaGljX19wYXltZW50LXN0YXR1cy0tb2tdPVwicGF5bWVudCgpPy5zdGF0dXM/LmtleSA9PT0gJ1NVQ0NFU1MnXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaVwiIFtjbGFzcy5waS1jaGVjay1jaXJjbGVdPVwicGF5bWVudCgpPy5zdGF0dXM/LmtleSA9PT0gJ1NVQ0NFU1MnXCIgW2NsYXNzLnBpLWNsb2NrXT1cInBheW1lbnQoKT8uc3RhdHVzPy5rZXkgIT09ICdTVUNDRVNTJ1wiPjwvaT5cbiAgICAgICAgICB7eyBwYXltZW50KCk/LnN0YXR1cz8ubmFtZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAocGF5bWVudCgpPy5tZXRob2QgfHwgcGF5bWVudCgpPy5kYXRlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWNfX3BheW1lbnQtc3ViXCI+XG4gICAgICAgICAgQGlmIChwYXltZW50KCk/Lm1ldGhvZCkgeyA8c3Bhbj57eyBwYXltZW50KCk/Lm1ldGhvZCB9fTwvc3Bhbj4gfVxuICAgICAgICAgIEBpZiAocGF5bWVudCgpPy5tZXRob2QgJiYgcGF5bWVudCgpPy5kYXRlKSB7IDxzcGFuIGNsYXNzPVwiaGljX19kb3RcIj7Ctzwvc3Bhbj4gfVxuICAgICAgICAgIEBpZiAocGF5bWVudCgpPy5kYXRlKSB7IDxzcGFuPnt7IHBheW1lbnQoKT8uZGF0ZSB9fTwvc3Bhbj4gfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG48L2Rpdj5cbiJdfQ==
@@ -23,7 +23,7 @@ export class SbdResultPanelComponent {
23
23
  navigator.clipboard.writeText(lines.join('\n')).then(() => this.toast.success('Copied to clipboard'));
24
24
  }
25
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdResultPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SbdResultPanelComponent, isStandalone: true, selector: "app-sbd-result-panel", inputs: { actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null }, elapsedMs: { classPropertyName: "elapsedMs", publicName: "elapsedMs", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { feedbackGiven: "feedbackGiven" }, ngImport: i0, template: "<div class=\"sbd-result-panel\">\n @if (status() === 'loading') {\n <div class=\"sbd-result-panel__loading\">\n <div class=\"sbd-result-panel__loading-header\">\n <p-skeleton width=\"200px\" height=\"18px\" /><p-skeleton width=\"80px\" height=\"18px\" />\n </div>\n <p-skeleton width=\"60%\" height=\"28px\" styleClass=\"mt-3 mb-2\" />\n <p-skeleton width=\"40%\" height=\"16px\" styleClass=\"mb-4\" />\n <div class=\"sbd-result-panel__loading-points\">\n @for (i of [1,2,3,4]; track i) {\n <div class=\"sbd-result-panel__loading-row\">\n <p-skeleton width=\"100px\" height=\"13px\" /><p-skeleton width=\"160px\" height=\"13px\" />\n </div>\n }\n </div>\n </div>\n }\n @if (status() === 'success' && result()) {\n <div @fadeInUp>\n <div class=\"sbd-result-panel__header\">\n <div class=\"sbd-result-panel__header-left\">\n <i class=\"pi pi-check-circle sbd-result-panel__check-icon\"></i>\n <span class=\"sbd-result-panel__header-label\">Result \u00B7 {{ actionLabel() }}</span>\n </div>\n <span class=\"sbd-result-panel__elapsed\">Found in {{ elapsedSeconds }}s</span>\n </div>\n <div class=\"sbd-result-panel__body\">\n <h2 class=\"sbd-result-panel__title\">{{ result()!.title }}</h2>\n @if (result()!.subtitle) { <p class=\"sbd-result-panel__subtitle\">{{ result()!.subtitle }}</p> }\n\n <!-- Sectioned layout (refund breakdown etc.) -->\n @if (result()!.sections?.length) {\n <div class=\"sbd-result-panel__sections\">\n @for (section of result()!.sections!; track section.title) {\n <div class=\"sbd-result-panel__section\">\n <div class=\"sbd-result-panel__section-title\">{{ section.title }}</div>\n @for (row of section.rows; track row.label) {\n @if (row.value) {\n <div class=\"sbd-result-panel__section-row\">\n <span class=\"sbd-result-panel__section-row-label\">{{ row.label }}</span>\n <span class=\"sbd-result-panel__section-row-value sbd-result-panel__section-row-value--{{ row.valueClass ?? 'neutral' }}\">{{ row.value }}</span>\n </div>\n } @else {\n <div class=\"sbd-result-panel__section-divider\">{{ row.label }}</div>\n }\n }\n </div>\n }\n </div>\n }\n\n <!-- Flat points layout (all other actions) -->\n @else if (result()!.points?.length) {\n <ul class=\"sbd-result-panel__points\">\n @for (point of result()!.points!; track point.label) {\n <li class=\"sbd-result-panel__point\">\n <span class=\"sbd-result-panel__point-label\">{{ point.label }}</span>\n <span class=\"sbd-result-panel__point-value\">{{ point.value }}</span>\n </li>\n }\n </ul>\n }\n\n @if (result()!.callout) {\n <div class=\"sbd-result-panel__callout sbd-result-panel__callout--{{ result()!.callout!.type }}\">\n <i class=\"pi pi-info-circle\"></i><span>{{ result()!.callout!.message }}</span>\n </div>\n }\n </div>\n <div class=\"sbd-result-panel__footer\">\n <div class=\"sbd-result-panel__feedback\">\n <span class=\"sbd-result-panel__feedback-label\">Helpful?</span>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--up\" (click)=\"feedbackGiven.emit('up')\">\n <i class=\"pi pi-thumbs-up\"></i>\n </button>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--down\" (click)=\"feedbackGiven.emit('down')\">\n <i class=\"pi pi-thumbs-down\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n @if (status() === 'error') {\n <div class=\"sbd-result-panel__error\" @fadeInUp>\n <i class=\"pi pi-exclamation-triangle\"></i><span>Could not load this information. Please try again.</span>\n </div>\n }\n @if (status() === 'idle') {\n <div class=\"sbd-result-panel__idle\">\n <i class=\"pi pi-arrow-up-left\"></i><span>Select an action above to see results here</span>\n </div>\n }\n</div>\n", styles: [".sbd-result-panel{background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.sbd-result-panel__loading{padding:20px}.sbd-result-panel__loading-header{display:flex;justify-content:space-between;margin-bottom:14px}.sbd-result-panel__loading-points{display:flex;flex-direction:column;gap:10px}.sbd-result-panel__loading-row{display:flex;gap:24px}.sbd-result-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#00b67a12;border-bottom:1px solid rgba(0,182,122,.15)}.sbd-result-panel__header-left{display:flex;align-items:center;gap:8px}.sbd-result-panel__check-icon{color:#00b67a;font-size:15px}.sbd-result-panel__header-label{font-size:13px;font-weight:600;color:#1e2e4a}.sbd-result-panel__elapsed{font-size:11.5px;font-weight:600;color:#00b67a;background:#00b67a1a;border-radius:20px;padding:2px 10px}.sbd-result-panel__body{padding:20px}.sbd-result-panel__title{font-size:20px;font-weight:800;color:#1e2e4a;margin:0 0 4px}.sbd-result-panel__subtitle{font-size:13px;color:#94a3b8;margin:0 0 14px}.sbd-result-panel__points{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column}.sbd-result-panel__point{display:flex;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid #f1f5f9}.sbd-result-panel__point:last-child{border-bottom:none}.sbd-result-panel__point:before{content:\"\";width:6px;height:6px;border-radius:50%;background:#3b82f6;flex-shrink:0;margin-top:5px;align-self:flex-start}.sbd-result-panel__point-label{font-size:12px;color:#94a3b8;font-weight:500;width:140px;flex-shrink:0}.sbd-result-panel__point-value{font-size:13px;font-weight:600;color:#1e2e4a;flex:1}.sbd-result-panel__sections{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.sbd-result-panel__section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.sbd-result-panel__section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f8fafc;padding:7px 12px;border-bottom:1px solid #e2e8f0}.sbd-result-panel__section-row{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid #f1f5f9;font-size:13px}.sbd-result-panel__section-row:last-child{border-bottom:none}.sbd-result-panel__section-row-label{color:#64748b;font-size:12.5px}.sbd-result-panel__section-row-value{font-weight:600;font-size:13px}.sbd-result-panel__section-row-value--positive{color:#16a34a}.sbd-result-panel__section-row-value--negative{color:#ef4444}.sbd-result-panel__section-row-value--neutral{color:#1e2e4a}.sbd-result-panel__section-divider{padding:5px 12px;font-size:10.5px;font-weight:700;letter-spacing:.05em;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #f1f5f9;text-align:center}.sbd-result-panel__callout{display:flex;align-items:flex-start;gap:8px;padding:12px;border-radius:8px;font-size:12.5px;font-weight:500;border-left:3px solid #6366f1;background:#f8f9ff;color:#1e2e4a}.sbd-result-panel__callout--warning{border-left-color:#f97316;background:#f973160f}.sbd-result-panel__callout--tip{border-left-color:#0ea5e9;background:#0ea5e912}.sbd-result-panel__callout i{font-size:14px;margin-top:1px}.sbd-result-panel__footer{display:flex;align-items:center;justify-content:flex-end;padding:10px 20px;border-top:1px solid #f1f5f9;background:#f8fafc;gap:10px}.sbd-result-panel__feedback{display:flex;align-items:center;gap:6px}.sbd-result-panel__feedback-label{font-size:12px;color:#94a3b8;margin-right:2px}.sbd-result-panel__feedback-btn{background:none;border:1px solid #e2e8f0;border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.sbd-result-panel__feedback-btn .pi{font-size:14px;color:#94a3b8}.sbd-result-panel__feedback-btn:hover{border-color:#cbd5e1;background:#f1f5f9}.sbd-result-panel__feedback-btn:hover .pi{color:#475569}.sbd-result-panel__feedback-btn--up:hover{border-color:#86efac;background:#f0fdf4}.sbd-result-panel__feedback-btn--up:hover .pi{color:#16a34a}.sbd-result-panel__feedback-btn--down:hover{border-color:#fca5a5;background:#fef2f2}.sbd-result-panel__feedback-btn--down:hover .pi{color:#ef4444}.sbd-result-panel__error{display:flex;align-items:center;gap:8px;padding:24px;color:#ef4444;font-size:13.5px;font-weight:500}.sbd-result-panel__error i{font-size:18px}.sbd-result-panel__idle{display:flex;align-items:center;gap:8px;padding:24px;color:#94a3b8;font-size:13px}.sbd-result-panel__idle i{font-size:16px}\n"], dependencies: [{ kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i1.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: ButtonModule }], animations: [
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SbdResultPanelComponent, isStandalone: true, selector: "app-sbd-result-panel", inputs: { actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null }, elapsedMs: { classPropertyName: "elapsedMs", publicName: "elapsedMs", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { feedbackGiven: "feedbackGiven" }, ngImport: i0, template: "<div class=\"sbd-result-panel\">\n @if (status() === 'loading') {\n <div class=\"sbd-result-panel__loading\">\n <div class=\"sbd-result-panel__loading-header\">\n <p-skeleton width=\"200px\" height=\"18px\" /><p-skeleton width=\"80px\" height=\"18px\" />\n </div>\n <p-skeleton width=\"60%\" height=\"28px\" styleClass=\"mt-3 mb-2\" />\n <p-skeleton width=\"40%\" height=\"16px\" styleClass=\"mb-4\" />\n <div class=\"sbd-result-panel__loading-points\">\n @for (i of [1,2,3,4]; track i) {\n <div class=\"sbd-result-panel__loading-row\">\n <p-skeleton width=\"100px\" height=\"13px\" /><p-skeleton width=\"160px\" height=\"13px\" />\n </div>\n }\n </div>\n </div>\n }\n @if (status() === 'success' && result()) {\n <div @fadeInUp>\n <div class=\"sbd-result-panel__header\">\n <div class=\"sbd-result-panel__header-left\">\n <i class=\"pi pi-check-circle sbd-result-panel__check-icon\"></i>\n <span class=\"sbd-result-panel__header-label\">Result \u00B7 {{ actionLabel() }}</span>\n </div>\n <span class=\"sbd-result-panel__elapsed\">Found in {{ elapsedSeconds }}s</span>\n </div>\n <div class=\"sbd-result-panel__body\">\n <h2 class=\"sbd-result-panel__title\">{{ result()!.title }}</h2>\n @if (result()!.subtitle) { <p class=\"sbd-result-panel__subtitle\">{{ result()!.subtitle }}</p> }\n\n <!-- Sectioned layout (refund breakdown etc.) -->\n @if (result()!.sections?.length) {\n <div class=\"sbd-result-panel__sections\">\n @for (section of result()!.sections!; track section.title) {\n <div class=\"sbd-result-panel__section\">\n <div class=\"sbd-result-panel__section-title\">{{ section.title }}</div>\n @for (row of section.rows; track row.label) {\n @if (row.value) {\n <div class=\"sbd-result-panel__section-row\">\n <span class=\"sbd-result-panel__section-row-label\">{{ row.label }}</span>\n <span class=\"sbd-result-panel__section-row-value sbd-result-panel__section-row-value--{{ row.valueClass ?? 'neutral' }}\">{{ row.value }}</span>\n </div>\n } @else {\n <div class=\"sbd-result-panel__section-divider\">{{ row.label }}</div>\n }\n }\n </div>\n }\n </div>\n }\n\n <!-- Flat points layout (all other actions) -->\n @else if (result()!.points?.length) {\n <ul class=\"sbd-result-panel__points\">\n @for (point of result()!.points!; track point.label) {\n <li class=\"sbd-result-panel__point\">\n <span class=\"sbd-result-panel__point-label\">{{ point.label }}</span>\n <span class=\"sbd-result-panel__point-value\">{{ point.value }}</span>\n </li>\n }\n </ul>\n }\n\n @if (result()!.callout) {\n <div class=\"sbd-result-panel__callout sbd-result-panel__callout--{{ result()!.callout!.type }}\">\n <i class=\"pi pi-info-circle\"></i><span>{{ result()!.callout!.message }}</span>\n </div>\n }\n </div>\n <div class=\"sbd-result-panel__footer\">\n <div class=\"sbd-result-panel__feedback\">\n <span class=\"sbd-result-panel__feedback-label\">Helpful?</span>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--up\" (click)=\"feedbackGiven.emit('up')\">\n <i class=\"pi pi-thumbs-up\"></i>\n </button>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--down\" (click)=\"feedbackGiven.emit('down')\">\n <i class=\"pi pi-thumbs-down\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n @if (status() === 'error') {\n <div class=\"sbd-result-panel__error\" @fadeInUp>\n <i class=\"pi pi-exclamation-triangle\"></i><span>Could not load this information. Please try again.</span>\n </div>\n }\n @if (status() === 'idle') {\n <div class=\"sbd-result-panel__idle\">\n <i class=\"pi pi-arrow-up-left\"></i><span>Select an action above to see results here</span>\n </div>\n }\n</div>\n", styles: [".sbd-result-panel{background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.sbd-result-panel__loading{padding:20px}.sbd-result-panel__loading-header{display:flex;justify-content:space-between;margin-bottom:14px}.sbd-result-panel__loading-points{display:flex;flex-direction:column;gap:10px}.sbd-result-panel__loading-row{display:flex;gap:24px}.sbd-result-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#00b67a12;border-bottom:1px solid rgba(0,182,122,.15)}.sbd-result-panel__header-left{display:flex;align-items:center;gap:8px}.sbd-result-panel__check-icon{color:#00b67a;font-size:15px}.sbd-result-panel__header-label{font-size:13px;font-weight:600;color:#1e2e4a}.sbd-result-panel__elapsed{font-size:11.5px;font-weight:600;color:#00b67a;background:#00b67a1a;border-radius:20px;padding:2px 10px}.sbd-result-panel__body{padding:20px}.sbd-result-panel__title{font-size:20px;font-weight:800;color:#1e2e4a;margin:0 0 4px}.sbd-result-panel__subtitle{font-size:13px;color:#94a3b8;margin:0 0 14px}.sbd-result-panel__points{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column}.sbd-result-panel__point{display:flex;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid #f1f5f9}.sbd-result-panel__point:last-child{border-bottom:none}.sbd-result-panel__point:before{content:\"\";width:6px;height:6px;border-radius:50%;background:var(--sbd-primary, #3b82f6);flex-shrink:0;margin-top:5px;align-self:flex-start}.sbd-result-panel__point-label{font-size:12px;color:#94a3b8;font-weight:500;width:140px;flex-shrink:0}.sbd-result-panel__point-value{font-size:13px;font-weight:600;color:#1e2e4a;flex:1}.sbd-result-panel__sections{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.sbd-result-panel__section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.sbd-result-panel__section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f8fafc;padding:7px 12px;border-bottom:1px solid #e2e8f0}.sbd-result-panel__section-row{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid #f1f5f9;font-size:13px}.sbd-result-panel__section-row:last-child{border-bottom:none}.sbd-result-panel__section-row-label{color:#64748b;font-size:12.5px}.sbd-result-panel__section-row-value{font-weight:600;font-size:13px}.sbd-result-panel__section-row-value--positive{color:#16a34a}.sbd-result-panel__section-row-value--negative{color:#ef4444}.sbd-result-panel__section-row-value--neutral{color:#1e2e4a}.sbd-result-panel__section-divider{padding:5px 12px;font-size:10.5px;font-weight:700;letter-spacing:.05em;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #f1f5f9;text-align:center}.sbd-result-panel__callout{display:flex;align-items:flex-start;gap:8px;padding:12px;border-radius:8px;font-size:12.5px;font-weight:500;border-left:3px solid #6366f1;background:#f8f9ff;color:#1e2e4a}.sbd-result-panel__callout--warning{border-left-color:#f97316;background:#f973160f}.sbd-result-panel__callout--tip{border-left-color:#0ea5e9;background:#0ea5e912}.sbd-result-panel__callout i{font-size:14px;margin-top:1px}.sbd-result-panel__footer{display:flex;align-items:center;justify-content:flex-end;padding:10px 20px;border-top:1px solid #f1f5f9;background:#f8fafc;gap:10px}.sbd-result-panel__feedback{display:flex;align-items:center;gap:6px}.sbd-result-panel__feedback-label{font-size:12px;color:#94a3b8;margin-right:2px}.sbd-result-panel__feedback-btn{background:none;border:1px solid #e2e8f0;border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.sbd-result-panel__feedback-btn .pi{font-size:14px;color:#94a3b8}.sbd-result-panel__feedback-btn:hover{border-color:#cbd5e1;background:#f1f5f9}.sbd-result-panel__feedback-btn:hover .pi{color:#475569}.sbd-result-panel__feedback-btn--up:hover{border-color:#86efac;background:#f0fdf4}.sbd-result-panel__feedback-btn--up:hover .pi{color:#16a34a}.sbd-result-panel__feedback-btn--down:hover{border-color:#fca5a5;background:#fef2f2}.sbd-result-panel__feedback-btn--down:hover .pi{color:#ef4444}.sbd-result-panel__error{display:flex;align-items:center;gap:8px;padding:24px;color:#ef4444;font-size:13.5px;font-weight:500}.sbd-result-panel__error i{font-size:18px}.sbd-result-panel__idle{display:flex;align-items:center;gap:8px;padding:24px;color:#94a3b8;font-size:13px}.sbd-result-panel__idle i{font-size:16px}\n"], dependencies: [{ kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i1.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: ButtonModule }], animations: [
27
27
  trigger('fadeInUp', [
28
28
  transition(':enter', [
29
29
  style({ opacity: 0, transform: 'translateY(8px)' }),
@@ -41,6 +41,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
41
41
  animate('200ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),
42
42
  ]),
43
43
  ]),
44
- ], template: "<div class=\"sbd-result-panel\">\n @if (status() === 'loading') {\n <div class=\"sbd-result-panel__loading\">\n <div class=\"sbd-result-panel__loading-header\">\n <p-skeleton width=\"200px\" height=\"18px\" /><p-skeleton width=\"80px\" height=\"18px\" />\n </div>\n <p-skeleton width=\"60%\" height=\"28px\" styleClass=\"mt-3 mb-2\" />\n <p-skeleton width=\"40%\" height=\"16px\" styleClass=\"mb-4\" />\n <div class=\"sbd-result-panel__loading-points\">\n @for (i of [1,2,3,4]; track i) {\n <div class=\"sbd-result-panel__loading-row\">\n <p-skeleton width=\"100px\" height=\"13px\" /><p-skeleton width=\"160px\" height=\"13px\" />\n </div>\n }\n </div>\n </div>\n }\n @if (status() === 'success' && result()) {\n <div @fadeInUp>\n <div class=\"sbd-result-panel__header\">\n <div class=\"sbd-result-panel__header-left\">\n <i class=\"pi pi-check-circle sbd-result-panel__check-icon\"></i>\n <span class=\"sbd-result-panel__header-label\">Result \u00B7 {{ actionLabel() }}</span>\n </div>\n <span class=\"sbd-result-panel__elapsed\">Found in {{ elapsedSeconds }}s</span>\n </div>\n <div class=\"sbd-result-panel__body\">\n <h2 class=\"sbd-result-panel__title\">{{ result()!.title }}</h2>\n @if (result()!.subtitle) { <p class=\"sbd-result-panel__subtitle\">{{ result()!.subtitle }}</p> }\n\n <!-- Sectioned layout (refund breakdown etc.) -->\n @if (result()!.sections?.length) {\n <div class=\"sbd-result-panel__sections\">\n @for (section of result()!.sections!; track section.title) {\n <div class=\"sbd-result-panel__section\">\n <div class=\"sbd-result-panel__section-title\">{{ section.title }}</div>\n @for (row of section.rows; track row.label) {\n @if (row.value) {\n <div class=\"sbd-result-panel__section-row\">\n <span class=\"sbd-result-panel__section-row-label\">{{ row.label }}</span>\n <span class=\"sbd-result-panel__section-row-value sbd-result-panel__section-row-value--{{ row.valueClass ?? 'neutral' }}\">{{ row.value }}</span>\n </div>\n } @else {\n <div class=\"sbd-result-panel__section-divider\">{{ row.label }}</div>\n }\n }\n </div>\n }\n </div>\n }\n\n <!-- Flat points layout (all other actions) -->\n @else if (result()!.points?.length) {\n <ul class=\"sbd-result-panel__points\">\n @for (point of result()!.points!; track point.label) {\n <li class=\"sbd-result-panel__point\">\n <span class=\"sbd-result-panel__point-label\">{{ point.label }}</span>\n <span class=\"sbd-result-panel__point-value\">{{ point.value }}</span>\n </li>\n }\n </ul>\n }\n\n @if (result()!.callout) {\n <div class=\"sbd-result-panel__callout sbd-result-panel__callout--{{ result()!.callout!.type }}\">\n <i class=\"pi pi-info-circle\"></i><span>{{ result()!.callout!.message }}</span>\n </div>\n }\n </div>\n <div class=\"sbd-result-panel__footer\">\n <div class=\"sbd-result-panel__feedback\">\n <span class=\"sbd-result-panel__feedback-label\">Helpful?</span>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--up\" (click)=\"feedbackGiven.emit('up')\">\n <i class=\"pi pi-thumbs-up\"></i>\n </button>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--down\" (click)=\"feedbackGiven.emit('down')\">\n <i class=\"pi pi-thumbs-down\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n @if (status() === 'error') {\n <div class=\"sbd-result-panel__error\" @fadeInUp>\n <i class=\"pi pi-exclamation-triangle\"></i><span>Could not load this information. Please try again.</span>\n </div>\n }\n @if (status() === 'idle') {\n <div class=\"sbd-result-panel__idle\">\n <i class=\"pi pi-arrow-up-left\"></i><span>Select an action above to see results here</span>\n </div>\n }\n</div>\n", styles: [".sbd-result-panel{background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.sbd-result-panel__loading{padding:20px}.sbd-result-panel__loading-header{display:flex;justify-content:space-between;margin-bottom:14px}.sbd-result-panel__loading-points{display:flex;flex-direction:column;gap:10px}.sbd-result-panel__loading-row{display:flex;gap:24px}.sbd-result-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#00b67a12;border-bottom:1px solid rgba(0,182,122,.15)}.sbd-result-panel__header-left{display:flex;align-items:center;gap:8px}.sbd-result-panel__check-icon{color:#00b67a;font-size:15px}.sbd-result-panel__header-label{font-size:13px;font-weight:600;color:#1e2e4a}.sbd-result-panel__elapsed{font-size:11.5px;font-weight:600;color:#00b67a;background:#00b67a1a;border-radius:20px;padding:2px 10px}.sbd-result-panel__body{padding:20px}.sbd-result-panel__title{font-size:20px;font-weight:800;color:#1e2e4a;margin:0 0 4px}.sbd-result-panel__subtitle{font-size:13px;color:#94a3b8;margin:0 0 14px}.sbd-result-panel__points{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column}.sbd-result-panel__point{display:flex;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid #f1f5f9}.sbd-result-panel__point:last-child{border-bottom:none}.sbd-result-panel__point:before{content:\"\";width:6px;height:6px;border-radius:50%;background:#3b82f6;flex-shrink:0;margin-top:5px;align-self:flex-start}.sbd-result-panel__point-label{font-size:12px;color:#94a3b8;font-weight:500;width:140px;flex-shrink:0}.sbd-result-panel__point-value{font-size:13px;font-weight:600;color:#1e2e4a;flex:1}.sbd-result-panel__sections{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.sbd-result-panel__section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.sbd-result-panel__section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f8fafc;padding:7px 12px;border-bottom:1px solid #e2e8f0}.sbd-result-panel__section-row{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid #f1f5f9;font-size:13px}.sbd-result-panel__section-row:last-child{border-bottom:none}.sbd-result-panel__section-row-label{color:#64748b;font-size:12.5px}.sbd-result-panel__section-row-value{font-weight:600;font-size:13px}.sbd-result-panel__section-row-value--positive{color:#16a34a}.sbd-result-panel__section-row-value--negative{color:#ef4444}.sbd-result-panel__section-row-value--neutral{color:#1e2e4a}.sbd-result-panel__section-divider{padding:5px 12px;font-size:10.5px;font-weight:700;letter-spacing:.05em;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #f1f5f9;text-align:center}.sbd-result-panel__callout{display:flex;align-items:flex-start;gap:8px;padding:12px;border-radius:8px;font-size:12.5px;font-weight:500;border-left:3px solid #6366f1;background:#f8f9ff;color:#1e2e4a}.sbd-result-panel__callout--warning{border-left-color:#f97316;background:#f973160f}.sbd-result-panel__callout--tip{border-left-color:#0ea5e9;background:#0ea5e912}.sbd-result-panel__callout i{font-size:14px;margin-top:1px}.sbd-result-panel__footer{display:flex;align-items:center;justify-content:flex-end;padding:10px 20px;border-top:1px solid #f1f5f9;background:#f8fafc;gap:10px}.sbd-result-panel__feedback{display:flex;align-items:center;gap:6px}.sbd-result-panel__feedback-label{font-size:12px;color:#94a3b8;margin-right:2px}.sbd-result-panel__feedback-btn{background:none;border:1px solid #e2e8f0;border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.sbd-result-panel__feedback-btn .pi{font-size:14px;color:#94a3b8}.sbd-result-panel__feedback-btn:hover{border-color:#cbd5e1;background:#f1f5f9}.sbd-result-panel__feedback-btn:hover .pi{color:#475569}.sbd-result-panel__feedback-btn--up:hover{border-color:#86efac;background:#f0fdf4}.sbd-result-panel__feedback-btn--up:hover .pi{color:#16a34a}.sbd-result-panel__feedback-btn--down:hover{border-color:#fca5a5;background:#fef2f2}.sbd-result-panel__feedback-btn--down:hover .pi{color:#ef4444}.sbd-result-panel__error{display:flex;align-items:center;gap:8px;padding:24px;color:#ef4444;font-size:13.5px;font-weight:500}.sbd-result-panel__error i{font-size:18px}.sbd-result-panel__idle{display:flex;align-items:center;gap:8px;padding:24px;color:#94a3b8;font-size:13px}.sbd-result-panel__idle i{font-size:16px}\n"] }]
44
+ ], template: "<div class=\"sbd-result-panel\">\n @if (status() === 'loading') {\n <div class=\"sbd-result-panel__loading\">\n <div class=\"sbd-result-panel__loading-header\">\n <p-skeleton width=\"200px\" height=\"18px\" /><p-skeleton width=\"80px\" height=\"18px\" />\n </div>\n <p-skeleton width=\"60%\" height=\"28px\" styleClass=\"mt-3 mb-2\" />\n <p-skeleton width=\"40%\" height=\"16px\" styleClass=\"mb-4\" />\n <div class=\"sbd-result-panel__loading-points\">\n @for (i of [1,2,3,4]; track i) {\n <div class=\"sbd-result-panel__loading-row\">\n <p-skeleton width=\"100px\" height=\"13px\" /><p-skeleton width=\"160px\" height=\"13px\" />\n </div>\n }\n </div>\n </div>\n }\n @if (status() === 'success' && result()) {\n <div @fadeInUp>\n <div class=\"sbd-result-panel__header\">\n <div class=\"sbd-result-panel__header-left\">\n <i class=\"pi pi-check-circle sbd-result-panel__check-icon\"></i>\n <span class=\"sbd-result-panel__header-label\">Result \u00B7 {{ actionLabel() }}</span>\n </div>\n <span class=\"sbd-result-panel__elapsed\">Found in {{ elapsedSeconds }}s</span>\n </div>\n <div class=\"sbd-result-panel__body\">\n <h2 class=\"sbd-result-panel__title\">{{ result()!.title }}</h2>\n @if (result()!.subtitle) { <p class=\"sbd-result-panel__subtitle\">{{ result()!.subtitle }}</p> }\n\n <!-- Sectioned layout (refund breakdown etc.) -->\n @if (result()!.sections?.length) {\n <div class=\"sbd-result-panel__sections\">\n @for (section of result()!.sections!; track section.title) {\n <div class=\"sbd-result-panel__section\">\n <div class=\"sbd-result-panel__section-title\">{{ section.title }}</div>\n @for (row of section.rows; track row.label) {\n @if (row.value) {\n <div class=\"sbd-result-panel__section-row\">\n <span class=\"sbd-result-panel__section-row-label\">{{ row.label }}</span>\n <span class=\"sbd-result-panel__section-row-value sbd-result-panel__section-row-value--{{ row.valueClass ?? 'neutral' }}\">{{ row.value }}</span>\n </div>\n } @else {\n <div class=\"sbd-result-panel__section-divider\">{{ row.label }}</div>\n }\n }\n </div>\n }\n </div>\n }\n\n <!-- Flat points layout (all other actions) -->\n @else if (result()!.points?.length) {\n <ul class=\"sbd-result-panel__points\">\n @for (point of result()!.points!; track point.label) {\n <li class=\"sbd-result-panel__point\">\n <span class=\"sbd-result-panel__point-label\">{{ point.label }}</span>\n <span class=\"sbd-result-panel__point-value\">{{ point.value }}</span>\n </li>\n }\n </ul>\n }\n\n @if (result()!.callout) {\n <div class=\"sbd-result-panel__callout sbd-result-panel__callout--{{ result()!.callout!.type }}\">\n <i class=\"pi pi-info-circle\"></i><span>{{ result()!.callout!.message }}</span>\n </div>\n }\n </div>\n <div class=\"sbd-result-panel__footer\">\n <div class=\"sbd-result-panel__feedback\">\n <span class=\"sbd-result-panel__feedback-label\">Helpful?</span>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--up\" (click)=\"feedbackGiven.emit('up')\">\n <i class=\"pi pi-thumbs-up\"></i>\n </button>\n <button class=\"sbd-result-panel__feedback-btn sbd-result-panel__feedback-btn--down\" (click)=\"feedbackGiven.emit('down')\">\n <i class=\"pi pi-thumbs-down\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n @if (status() === 'error') {\n <div class=\"sbd-result-panel__error\" @fadeInUp>\n <i class=\"pi pi-exclamation-triangle\"></i><span>Could not load this information. Please try again.</span>\n </div>\n }\n @if (status() === 'idle') {\n <div class=\"sbd-result-panel__idle\">\n <i class=\"pi pi-arrow-up-left\"></i><span>Select an action above to see results here</span>\n </div>\n }\n</div>\n", styles: [".sbd-result-panel{background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.sbd-result-panel__loading{padding:20px}.sbd-result-panel__loading-header{display:flex;justify-content:space-between;margin-bottom:14px}.sbd-result-panel__loading-points{display:flex;flex-direction:column;gap:10px}.sbd-result-panel__loading-row{display:flex;gap:24px}.sbd-result-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#00b67a12;border-bottom:1px solid rgba(0,182,122,.15)}.sbd-result-panel__header-left{display:flex;align-items:center;gap:8px}.sbd-result-panel__check-icon{color:#00b67a;font-size:15px}.sbd-result-panel__header-label{font-size:13px;font-weight:600;color:#1e2e4a}.sbd-result-panel__elapsed{font-size:11.5px;font-weight:600;color:#00b67a;background:#00b67a1a;border-radius:20px;padding:2px 10px}.sbd-result-panel__body{padding:20px}.sbd-result-panel__title{font-size:20px;font-weight:800;color:#1e2e4a;margin:0 0 4px}.sbd-result-panel__subtitle{font-size:13px;color:#94a3b8;margin:0 0 14px}.sbd-result-panel__points{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column}.sbd-result-panel__point{display:flex;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid #f1f5f9}.sbd-result-panel__point:last-child{border-bottom:none}.sbd-result-panel__point:before{content:\"\";width:6px;height:6px;border-radius:50%;background:var(--sbd-primary, #3b82f6);flex-shrink:0;margin-top:5px;align-self:flex-start}.sbd-result-panel__point-label{font-size:12px;color:#94a3b8;font-weight:500;width:140px;flex-shrink:0}.sbd-result-panel__point-value{font-size:13px;font-weight:600;color:#1e2e4a;flex:1}.sbd-result-panel__sections{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.sbd-result-panel__section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.sbd-result-panel__section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f8fafc;padding:7px 12px;border-bottom:1px solid #e2e8f0}.sbd-result-panel__section-row{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid #f1f5f9;font-size:13px}.sbd-result-panel__section-row:last-child{border-bottom:none}.sbd-result-panel__section-row-label{color:#64748b;font-size:12.5px}.sbd-result-panel__section-row-value{font-weight:600;font-size:13px}.sbd-result-panel__section-row-value--positive{color:#16a34a}.sbd-result-panel__section-row-value--negative{color:#ef4444}.sbd-result-panel__section-row-value--neutral{color:#1e2e4a}.sbd-result-panel__section-divider{padding:5px 12px;font-size:10.5px;font-weight:700;letter-spacing:.05em;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #f1f5f9;text-align:center}.sbd-result-panel__callout{display:flex;align-items:flex-start;gap:8px;padding:12px;border-radius:8px;font-size:12.5px;font-weight:500;border-left:3px solid #6366f1;background:#f8f9ff;color:#1e2e4a}.sbd-result-panel__callout--warning{border-left-color:#f97316;background:#f973160f}.sbd-result-panel__callout--tip{border-left-color:#0ea5e9;background:#0ea5e912}.sbd-result-panel__callout i{font-size:14px;margin-top:1px}.sbd-result-panel__footer{display:flex;align-items:center;justify-content:flex-end;padding:10px 20px;border-top:1px solid #f1f5f9;background:#f8fafc;gap:10px}.sbd-result-panel__feedback{display:flex;align-items:center;gap:6px}.sbd-result-panel__feedback-label{font-size:12px;color:#94a3b8;margin-right:2px}.sbd-result-panel__feedback-btn{background:none;border:1px solid #e2e8f0;border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.sbd-result-panel__feedback-btn .pi{font-size:14px;color:#94a3b8}.sbd-result-panel__feedback-btn:hover{border-color:#cbd5e1;background:#f1f5f9}.sbd-result-panel__feedback-btn:hover .pi{color:#475569}.sbd-result-panel__feedback-btn--up:hover{border-color:#86efac;background:#f0fdf4}.sbd-result-panel__feedback-btn--up:hover .pi{color:#16a34a}.sbd-result-panel__feedback-btn--down:hover{border-color:#fca5a5;background:#fef2f2}.sbd-result-panel__feedback-btn--down:hover .pi{color:#ef4444}.sbd-result-panel__error{display:flex;align-items:center;gap:8px;padding:24px;color:#ef4444;font-size:13.5px;font-weight:500}.sbd-result-panel__error i{font-size:18px}.sbd-result-panel__idle{display:flex;align-items:center;gap:8px;padding:24px;color:#94a3b8;font-size:13px}.sbd-result-panel__idle i{font-size:16px}\n"] }]
45
45
  }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9yZXN1bHQtcGFuZWwvcmVzdWx0LXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9yZXN1bHQtcGFuZWwvcmVzdWx0LXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFpQi9ELE1BQU0sT0FBTyx1QkFBdUI7SUFmcEM7UUFnQlUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxLQUFLLENBQTJDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLFdBQU0sR0FBRyxLQUFLLENBQXVCLElBQUksQ0FBQyxDQUFDO1FBRTNDLGtCQUFhLEdBQUcsTUFBTSxFQUFpQixDQUFDO0tBVXpDO0lBUkMsSUFBSSxjQUFjLEtBQWEsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdFLElBQUk7UUFDRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBQ2YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9KLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7K0dBakJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDZvQkN0QnBDLG94SUE2RkEsKzhJRG5GWSxjQUFjLGtNQUFFLFlBQVksaUJBRzFCO1lBQ1YsT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztvQkFDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7aUJBQzdFLENBQUM7YUFDSCxDQUFDO1NBQ0g7OzRGQUVVLHVCQUF1QjtrQkFmbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxjQUczQjt3QkFDVixPQUFPLENBQUMsVUFBVSxFQUFFOzRCQUNsQixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO2dDQUNuRCxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs2QkFDN0UsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2tlbGV0b24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgUmVzdWx0Q29udGVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24udHlwZXMnO1xuaW1wb3J0IHsgU2JkVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zYmQtcmVzdWx0LXBhbmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1NrZWxldG9uTW9kdWxlLCBCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Jlc3VsdC1wYW5lbC5jb21wb25lbnQuc2NzcycsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdmYWRlSW5VcCcsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDhweCknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSkpLFxuICAgICAgXSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNiZFJlc3VsdFBhbmVsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChTYmRUb2FzdFNlcnZpY2UpO1xuXG4gIGFjdGlvbkxhYmVsID0gaW5wdXQoJycpO1xuICBlbGFwc2VkTXMgPSBpbnB1dCgwKTtcbiAgc3RhdHVzID0gaW5wdXQ8J2lkbGUnIHwgJ2xvYWRpbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJz4oJ2lkbGUnKTtcbiAgcmVzdWx0ID0gaW5wdXQ8UmVzdWx0Q29udGVudCB8IG51bGw+KG51bGwpO1xuXG4gIGZlZWRiYWNrR2l2ZW4gPSBvdXRwdXQ8J3VwJyB8ICdkb3duJz4oKTtcblxuICBnZXQgZWxhcHNlZFNlY29uZHMoKTogc3RyaW5nIHsgcmV0dXJuICh0aGlzLmVsYXBzZWRNcygpIC8gMTAwMCkudG9GaXhlZCgyKTsgfVxuXG4gIGNvcHkoKTogdm9pZCB7XG4gICAgY29uc3QgciA9IHRoaXMucmVzdWx0KCk7XG4gICAgaWYgKCFyKSByZXR1cm47XG4gICAgY29uc3QgbGluZXMgPSBbci50aXRsZSwgci5zdWJ0aXRsZSA/PyAnJywgJycsIC4uLnIucG9pbnRzLm1hcChwID0+IGAke3AubGFiZWx9OiAke3AudmFsdWV9YCksIHIuY2FsbG91dCA/IGBcXG5Ob3RlOiAke3IuY2FsbG91dC5tZXNzYWdlfWAgOiAnJ10uZmlsdGVyKEJvb2xlYW4pO1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGxpbmVzLmpvaW4oJ1xcbicpKS50aGVuKCgpID0+IHRoaXMudG9hc3Quc3VjY2VzcygnQ29waWVkIHRvIGNsaXBib2FyZCcpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxcIj5cbiAgQGlmIChzdGF0dXMoKSA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2xvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19sb2FkaW5nLWhlYWRlclwiPlxuICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjIwMHB4XCIgaGVpZ2h0PVwiMThweFwiIC8+PHAtc2tlbGV0b24gd2lkdGg9XCI4MHB4XCIgaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiNjAlXCIgaGVpZ2h0PVwiMjhweFwiIHN0eWxlQ2xhc3M9XCJtdC0zIG1iLTJcIiAvPlxuICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCI0MCVcIiBoZWlnaHQ9XCIxNnB4XCIgc3R5bGVDbGFzcz1cIm1iLTRcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2xvYWRpbmctcG9pbnRzXCI+XG4gICAgICAgIEBmb3IgKGkgb2YgWzEsMiwzLDRdOyB0cmFjayBpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2xvYWRpbmctcm93XCI+XG4gICAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEwMHB4XCIgaGVpZ2h0PVwiMTNweFwiIC8+PHAtc2tlbGV0b24gd2lkdGg9XCIxNjBweFwiIGhlaWdodD1cIjEzcHhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKHN0YXR1cygpID09PSAnc3VjY2VzcycgJiYgcmVzdWx0KCkpIHtcbiAgICA8ZGl2IEBmYWRlSW5VcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2hlYWRlci1sZWZ0XCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1jaGVjay1jaXJjbGUgc2JkLXJlc3VsdC1wYW5lbF9fY2hlY2staWNvblwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2hlYWRlci1sYWJlbFwiPlJlc3VsdCDCtyB7eyBhY3Rpb25MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19lbGFwc2VkXCI+Rm91bmQgaW4ge3sgZWxhcHNlZFNlY29uZHMgfX1zPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fYm9keVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX190aXRsZVwiPnt7IHJlc3VsdCgpIS50aXRsZSB9fTwvaDI+XG4gICAgICAgIEBpZiAocmVzdWx0KCkhLnN1YnRpdGxlKSB7IDxwIGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fc3VidGl0bGVcIj57eyByZXN1bHQoKSEuc3VidGl0bGUgfX08L3A+IH1cblxuICAgICAgICA8IS0tIFNlY3Rpb25lZCBsYXlvdXQgKHJlZnVuZCBicmVha2Rvd24gZXRjLikgLS0+XG4gICAgICAgIEBpZiAocmVzdWx0KCkhLnNlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fc2VjdGlvbnNcIj5cbiAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2YgcmVzdWx0KCkhLnNlY3Rpb25zITsgdHJhY2sgc2VjdGlvbi50aXRsZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19zZWN0aW9uLXRpdGxlXCI+e3sgc2VjdGlvbi50aXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBzZWN0aW9uLnJvd3M7IHRyYWNrIHJvdy5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgQGlmIChyb3cudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3NlY3Rpb24tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19zZWN0aW9uLXJvdy1sYWJlbFwiPnt7IHJvdy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3NlY3Rpb24tcm93LXZhbHVlIHNiZC1yZXN1bHQtcGFuZWxfX3NlY3Rpb24tcm93LXZhbHVlLS17eyByb3cudmFsdWVDbGFzcyA/PyAnbmV1dHJhbCcgfX1cIj57eyByb3cudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19zZWN0aW9uLWRpdmlkZXJcIj57eyByb3cubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBGbGF0IHBvaW50cyBsYXlvdXQgKGFsbCBvdGhlciBhY3Rpb25zKSAtLT5cbiAgICAgICAgQGVsc2UgaWYgKHJlc3VsdCgpIS5wb2ludHM/Lmxlbmd0aCkge1xuICAgICAgICAgIDx1bCBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3BvaW50c1wiPlxuICAgICAgICAgICAgQGZvciAocG9pbnQgb2YgcmVzdWx0KCkhLnBvaW50cyE7IHRyYWNrIHBvaW50LmxhYmVsKSB7XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3BvaW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19wb2ludC1sYWJlbFwiPnt7IHBvaW50LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fcG9pbnQtdmFsdWVcIj57eyBwb2ludC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXN1bHQoKSEuY2FsbG91dCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19jYWxsb3V0IHNiZC1yZXN1bHQtcGFuZWxfX2NhbGxvdXQtLXt7IHJlc3VsdCgpIS5jYWxsb3V0IS50eXBlIH19XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCI+PC9pPjxzcGFuPnt7IHJlc3VsdCgpIS5jYWxsb3V0IS5tZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mb290ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2ZlZWRiYWNrXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mZWVkYmFjay1sYWJlbFwiPkhlbHBmdWw/PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mZWVkYmFjay1idG4gc2JkLXJlc3VsdC1wYW5lbF9fZmVlZGJhY2stYnRuLS11cFwiIChjbGljayk9XCJmZWVkYmFja0dpdmVuLmVtaXQoJ3VwJylcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdGh1bWJzLXVwXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mZWVkYmFjay1idG4gc2JkLXJlc3VsdC1wYW5lbF9fZmVlZGJhY2stYnRuLS1kb3duXCIgKGNsaWNrKT1cImZlZWRiYWNrR2l2ZW4uZW1pdCgnZG93bicpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXRodW1icy1kb3duXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoc3RhdHVzKCkgPT09ICdlcnJvcicpIHtcbiAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fZXJyb3JcIiBAZmFkZUluVXA+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPjxzcGFuPkNvdWxkIG5vdCBsb2FkIHRoaXMgaW5mb3JtYXRpb24uIFBsZWFzZSB0cnkgYWdhaW4uPC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoc3RhdHVzKCkgPT09ICdpZGxlJykge1xuICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19pZGxlXCI+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLWFycm93LXVwLWxlZnRcIj48L2k+PHNwYW4+U2VsZWN0IGFuIGFjdGlvbiBhYm92ZSB0byBzZWUgcmVzdWx0cyBoZXJlPC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9yZXN1bHQtcGFuZWwvcmVzdWx0LXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9yZXN1bHQtcGFuZWwvcmVzdWx0LXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFpQi9ELE1BQU0sT0FBTyx1QkFBdUI7SUFmcEM7UUFnQlUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxLQUFLLENBQTJDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLFdBQU0sR0FBRyxLQUFLLENBQXVCLElBQUksQ0FBQyxDQUFDO1FBRTNDLGtCQUFhLEdBQUcsTUFBTSxFQUFpQixDQUFDO0tBVXpDO0lBUkMsSUFBSSxjQUFjLEtBQWEsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdFLElBQUk7UUFDRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBQ2YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9KLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7K0dBakJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDZvQkN0QnBDLG94SUE2RkEsbStJRG5GWSxjQUFjLGtNQUFFLFlBQVksaUJBRzFCO1lBQ1YsT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztvQkFDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7aUJBQzdFLENBQUM7YUFDSCxDQUFDO1NBQ0g7OzRGQUVVLHVCQUF1QjtrQkFmbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxjQUczQjt3QkFDVixPQUFPLENBQUMsVUFBVSxFQUFFOzRCQUNsQixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO2dDQUNuRCxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs2QkFDN0UsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2tlbGV0b24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgUmVzdWx0Q29udGVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24udHlwZXMnO1xuaW1wb3J0IHsgU2JkVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zYmQtcmVzdWx0LXBhbmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1NrZWxldG9uTW9kdWxlLCBCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Jlc3VsdC1wYW5lbC5jb21wb25lbnQuc2NzcycsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdmYWRlSW5VcCcsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDhweCknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSkpLFxuICAgICAgXSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNiZFJlc3VsdFBhbmVsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChTYmRUb2FzdFNlcnZpY2UpO1xuXG4gIGFjdGlvbkxhYmVsID0gaW5wdXQoJycpO1xuICBlbGFwc2VkTXMgPSBpbnB1dCgwKTtcbiAgc3RhdHVzID0gaW5wdXQ8J2lkbGUnIHwgJ2xvYWRpbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJz4oJ2lkbGUnKTtcbiAgcmVzdWx0ID0gaW5wdXQ8UmVzdWx0Q29udGVudCB8IG51bGw+KG51bGwpO1xuXG4gIGZlZWRiYWNrR2l2ZW4gPSBvdXRwdXQ8J3VwJyB8ICdkb3duJz4oKTtcblxuICBnZXQgZWxhcHNlZFNlY29uZHMoKTogc3RyaW5nIHsgcmV0dXJuICh0aGlzLmVsYXBzZWRNcygpIC8gMTAwMCkudG9GaXhlZCgyKTsgfVxuXG4gIGNvcHkoKTogdm9pZCB7XG4gICAgY29uc3QgciA9IHRoaXMucmVzdWx0KCk7XG4gICAgaWYgKCFyKSByZXR1cm47XG4gICAgY29uc3QgbGluZXMgPSBbci50aXRsZSwgci5zdWJ0aXRsZSA/PyAnJywgJycsIC4uLnIucG9pbnRzLm1hcChwID0+IGAke3AubGFiZWx9OiAke3AudmFsdWV9YCksIHIuY2FsbG91dCA/IGBcXG5Ob3RlOiAke3IuY2FsbG91dC5tZXNzYWdlfWAgOiAnJ10uZmlsdGVyKEJvb2xlYW4pO1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGxpbmVzLmpvaW4oJ1xcbicpKS50aGVuKCgpID0+IHRoaXMudG9hc3Quc3VjY2VzcygnQ29waWVkIHRvIGNsaXBib2FyZCcpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxcIj5cbiAgQGlmIChzdGF0dXMoKSA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2xvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19sb2FkaW5nLWhlYWRlclwiPlxuICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjIwMHB4XCIgaGVpZ2h0PVwiMThweFwiIC8+PHAtc2tlbGV0b24gd2lkdGg9XCI4MHB4XCIgaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiNjAlXCIgaGVpZ2h0PVwiMjhweFwiIHN0eWxlQ2xhc3M9XCJtdC0zIG1iLTJcIiAvPlxuICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCI0MCVcIiBoZWlnaHQ9XCIxNnB4XCIgc3R5bGVDbGFzcz1cIm1iLTRcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2xvYWRpbmctcG9pbnRzXCI+XG4gICAgICAgIEBmb3IgKGkgb2YgWzEsMiwzLDRdOyB0cmFjayBpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2xvYWRpbmctcm93XCI+XG4gICAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEwMHB4XCIgaGVpZ2h0PVwiMTNweFwiIC8+PHAtc2tlbGV0b24gd2lkdGg9XCIxNjBweFwiIGhlaWdodD1cIjEzcHhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKHN0YXR1cygpID09PSAnc3VjY2VzcycgJiYgcmVzdWx0KCkpIHtcbiAgICA8ZGl2IEBmYWRlSW5VcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2hlYWRlci1sZWZ0XCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1jaGVjay1jaXJjbGUgc2JkLXJlc3VsdC1wYW5lbF9fY2hlY2staWNvblwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2hlYWRlci1sYWJlbFwiPlJlc3VsdCDCtyB7eyBhY3Rpb25MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19lbGFwc2VkXCI+Rm91bmQgaW4ge3sgZWxhcHNlZFNlY29uZHMgfX1zPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fYm9keVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX190aXRsZVwiPnt7IHJlc3VsdCgpIS50aXRsZSB9fTwvaDI+XG4gICAgICAgIEBpZiAocmVzdWx0KCkhLnN1YnRpdGxlKSB7IDxwIGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fc3VidGl0bGVcIj57eyByZXN1bHQoKSEuc3VidGl0bGUgfX08L3A+IH1cblxuICAgICAgICA8IS0tIFNlY3Rpb25lZCBsYXlvdXQgKHJlZnVuZCBicmVha2Rvd24gZXRjLikgLS0+XG4gICAgICAgIEBpZiAocmVzdWx0KCkhLnNlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fc2VjdGlvbnNcIj5cbiAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2YgcmVzdWx0KCkhLnNlY3Rpb25zITsgdHJhY2sgc2VjdGlvbi50aXRsZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19zZWN0aW9uLXRpdGxlXCI+e3sgc2VjdGlvbi50aXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBzZWN0aW9uLnJvd3M7IHRyYWNrIHJvdy5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgQGlmIChyb3cudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3NlY3Rpb24tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19zZWN0aW9uLXJvdy1sYWJlbFwiPnt7IHJvdy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3NlY3Rpb24tcm93LXZhbHVlIHNiZC1yZXN1bHQtcGFuZWxfX3NlY3Rpb24tcm93LXZhbHVlLS17eyByb3cudmFsdWVDbGFzcyA/PyAnbmV1dHJhbCcgfX1cIj57eyByb3cudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19zZWN0aW9uLWRpdmlkZXJcIj57eyByb3cubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBGbGF0IHBvaW50cyBsYXlvdXQgKGFsbCBvdGhlciBhY3Rpb25zKSAtLT5cbiAgICAgICAgQGVsc2UgaWYgKHJlc3VsdCgpIS5wb2ludHM/Lmxlbmd0aCkge1xuICAgICAgICAgIDx1bCBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3BvaW50c1wiPlxuICAgICAgICAgICAgQGZvciAocG9pbnQgb2YgcmVzdWx0KCkhLnBvaW50cyE7IHRyYWNrIHBvaW50LmxhYmVsKSB7XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX3BvaW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19wb2ludC1sYWJlbFwiPnt7IHBvaW50LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fcG9pbnQtdmFsdWVcIj57eyBwb2ludC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXN1bHQoKSEuY2FsbG91dCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19jYWxsb3V0IHNiZC1yZXN1bHQtcGFuZWxfX2NhbGxvdXQtLXt7IHJlc3VsdCgpIS5jYWxsb3V0IS50eXBlIH19XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCI+PC9pPjxzcGFuPnt7IHJlc3VsdCgpIS5jYWxsb3V0IS5tZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mb290ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiZC1yZXN1bHQtcGFuZWxfX2ZlZWRiYWNrXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mZWVkYmFjay1sYWJlbFwiPkhlbHBmdWw/PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mZWVkYmFjay1idG4gc2JkLXJlc3VsdC1wYW5lbF9fZmVlZGJhY2stYnRuLS11cFwiIChjbGljayk9XCJmZWVkYmFja0dpdmVuLmVtaXQoJ3VwJylcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdGh1bWJzLXVwXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19mZWVkYmFjay1idG4gc2JkLXJlc3VsdC1wYW5lbF9fZmVlZGJhY2stYnRuLS1kb3duXCIgKGNsaWNrKT1cImZlZWRiYWNrR2l2ZW4uZW1pdCgnZG93bicpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXRodW1icy1kb3duXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoc3RhdHVzKCkgPT09ICdlcnJvcicpIHtcbiAgICA8ZGl2IGNsYXNzPVwic2JkLXJlc3VsdC1wYW5lbF9fZXJyb3JcIiBAZmFkZUluVXA+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPjxzcGFuPkNvdWxkIG5vdCBsb2FkIHRoaXMgaW5mb3JtYXRpb24uIFBsZWFzZSB0cnkgYWdhaW4uPC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoc3RhdHVzKCkgPT09ICdpZGxlJykge1xuICAgIDxkaXYgY2xhc3M9XCJzYmQtcmVzdWx0LXBhbmVsX19pZGxlXCI+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLWFycm93LXVwLWxlZnRcIj48L2k+PHNwYW4+U2VsZWN0IGFuIGFjdGlvbiBhYm92ZSB0byBzZWUgcmVzdWx0cyBoZXJlPC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,75 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ButtonModule } from 'primeng/button';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "primeng/button";
7
+ export class ConfirmModalComponent {
8
+ constructor() {
9
+ this.visible = false;
10
+ this.title = '';
11
+ this.message = '';
12
+ this.confirmLabel = 'Confirm';
13
+ this.cancelLabel = 'Cancel';
14
+ this.visibleChange = new EventEmitter();
15
+ this.confirm = new EventEmitter();
16
+ this.cancel = new EventEmitter();
17
+ }
18
+ onConfirm() {
19
+ this.confirm.emit();
20
+ this.close();
21
+ }
22
+ onCancel() {
23
+ this.cancel.emit();
24
+ this.close();
25
+ }
26
+ close() {
27
+ this.visible = false;
28
+ this.visibleChange.emit(false);
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfirmModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ConfirmModalComponent, isStandalone: true, selector: "confirm-modal", inputs: { visible: "visible", title: "title", message: "message", confirmLabel: "confirmLabel", cancelLabel: "cancelLabel" }, outputs: { visibleChange: "visibleChange", confirm: "confirm", cancel: "cancel" }, ngImport: i0, template: `
32
+ <div class="modal-overlay" *ngIf="visible" (click)="onCancel()">
33
+ <div class="modal-content" (click)="$event.stopPropagation()">
34
+ <h3>{{ title || 'Confirm' }}</h3>
35
+ <p>{{ message }}</p>
36
+ <div class="modal-actions">
37
+ <button pButton type="button" [label]="cancelLabel || 'Cancel'" class="p-button-secondary" (click)="onCancel()"></button>
38
+ <button pButton type="button" [label]="confirmLabel || 'Confirm'" (click)="onConfirm()"></button>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ `, isInline: true, styles: [".modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:#fff;padding:2rem;border-radius:8px;max-width:400px;width:90%}h3{margin-top:0}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfirmModalComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'confirm-modal', standalone: true, imports: [CommonModule, ButtonModule], template: `
47
+ <div class="modal-overlay" *ngIf="visible" (click)="onCancel()">
48
+ <div class="modal-content" (click)="$event.stopPropagation()">
49
+ <h3>{{ title || 'Confirm' }}</h3>
50
+ <p>{{ message }}</p>
51
+ <div class="modal-actions">
52
+ <button pButton type="button" [label]="cancelLabel || 'Cancel'" class="p-button-secondary" (click)="onCancel()"></button>
53
+ <button pButton type="button" [label]="confirmLabel || 'Confirm'" (click)="onConfirm()"></button>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ `, styles: [".modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:#fff;padding:2rem;border-radius:8px;max-width:400px;width:90%}h3{margin-top:0}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}\n"] }]
58
+ }], propDecorators: { visible: [{
59
+ type: Input
60
+ }], title: [{
61
+ type: Input
62
+ }], message: [{
63
+ type: Input
64
+ }], confirmLabel: [{
65
+ type: Input
66
+ }], cancelLabel: [{
67
+ type: Input
68
+ }], visibleChange: [{
69
+ type: Output
70
+ }], confirm: [{
71
+ type: Output
72
+ }], cancel: [{
73
+ type: Output
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1ib29raW5nLWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2NvbXBvbmVudHMvY29uZmlybS1tb2RhbC9jb25maXJtLW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFvRDlDLE1BQU0sT0FBTyxxQkFBcUI7SUFsRGxDO1FBbURXLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUN6QixnQkFBVyxHQUFHLFFBQVEsQ0FBQztRQUV0QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDNUMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbkMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FnQjdDO0lBZEMsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0F4QlUscUJBQXFCO21HQUFyQixxQkFBcUIsMFJBOUN0Qjs7Ozs7Ozs7Ozs7R0FXVCw4WkFaUyxZQUFZLGtJQUFFLFlBQVk7OzRGQStDekIscUJBQXFCO2tCQWxEakMsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUMzQjs7Ozs7Ozs7Ozs7R0FXVDs4QkFvQ1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29uZmlybS1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLW92ZXJsYXlcIiAqbmdJZj1cInZpc2libGVcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxoMz57eyB0aXRsZSB8fCAnQ29uZmlybScgfX08L2gzPlxuICAgICAgICA8cD57eyBtZXNzYWdlIH19PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2xhYmVsXT1cImNhbmNlbExhYmVsIHx8ICdDYW5jZWwnXCIgY2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2xhYmVsXT1cImNvbmZpcm1MYWJlbCB8fCAnQ29uZmlybSdcIiAoY2xpY2spPVwib25Db25maXJtKClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC5tb2RhbC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB6LWluZGV4OiAyMDAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICB3aWR0aDogOTAlO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWFjdGlvbnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogMXJlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgY29uZmlybUxhYmVsID0gJ0NvbmZpcm0nO1xuICBASW5wdXQoKSBjYW5jZWxMYWJlbCA9ICdDYW5jZWwnO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBvbkNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtLmVtaXQoKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ButtonModule } from 'primeng/button';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "primeng/button";
7
+ export class ManageBookingFailedModalComponent {
8
+ constructor() {
9
+ this.visible = false;
10
+ this.message = '';
11
+ this.visibleChange = new EventEmitter();
12
+ }
13
+ close() {
14
+ this.visible = false;
15
+ this.visibleChange.emit(false);
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ManageBookingFailedModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ManageBookingFailedModalComponent, isStandalone: true, selector: "manage-booking-failed-modal", inputs: { visible: "visible", message: "message" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: `
19
+ <div class="modal-overlay" *ngIf="visible" (click)="close()">
20
+ <div class="modal-content" (click)="$event.stopPropagation()">
21
+ <h3>Operation Failed</h3>
22
+ <p>{{ message || 'An error occurred. Please try again.' }}</p>
23
+ <button pButton type="button" label="Close" (click)="close()"></button>
24
+ </div>
25
+ </div>
26
+ `, isInline: true, styles: [".modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:#fff;padding:2rem;border-radius:8px;max-width:400px;width:90%}h3{margin-top:0;color:#d32f2f}p{margin:1rem 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ManageBookingFailedModalComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'manage-booking-failed-modal', standalone: true, imports: [CommonModule, ButtonModule], template: `
31
+ <div class="modal-overlay" *ngIf="visible" (click)="close()">
32
+ <div class="modal-content" (click)="$event.stopPropagation()">
33
+ <h3>Operation Failed</h3>
34
+ <p>{{ message || 'An error occurred. Please try again.' }}</p>
35
+ <button pButton type="button" label="Close" (click)="close()"></button>
36
+ </div>
37
+ </div>
38
+ `, styles: [".modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:#fff;padding:2rem;border-radius:8px;max-width:400px;width:90%}h3{margin-top:0;color:#d32f2f}p{margin:1rem 0}\n"] }]
39
+ }], propDecorators: { visible: [{
40
+ type: Input
41
+ }], message: [{
42
+ type: Input
43
+ }], visibleChange: [{
44
+ type: Output
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWJvb2tpbmctZmFpbGVkLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvY29tcG9uZW50cy9tYW5hZ2UtYm9va2luZy1mYWlsZWQtbW9kYWwvbWFuYWdlLWJvb2tpbmctZmFpbGVkLW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUErQzlDLE1BQU0sT0FBTyxpQ0FBaUM7SUE3QzlDO1FBOENXLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUVaLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQU12RDtJQUpDLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQVRVLGlDQUFpQzttR0FBakMsaUNBQWlDLHdMQXpDbEM7Ozs7Ozs7O0dBUVQsNFdBVFMsWUFBWSxrSUFBRSxZQUFZOzs0RkEwQ3pCLGlDQUFpQztrQkE3QzdDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBQzNCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsWUFDM0I7Ozs7Ozs7O0dBUVQ7OEJBa0NRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW5hZ2UtYm9va2luZy1mYWlsZWQtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1vdmVybGF5XCIgKm5nSWY9XCJ2aXNpYmxlXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICA8aDM+T3BlcmF0aW9uIEZhaWxlZDwvaDM+XG4gICAgICAgIDxwPnt7IG1lc3NhZ2UgfHwgJ0FuIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLicgfX08L3A+XG4gICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC5tb2RhbC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB6LWluZGV4OiAyMDAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICB3aWR0aDogOTAlO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBjb2xvcjogI2QzMmYyZjtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMXJlbSAwO1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlQm9va2luZ0ZhaWxlZE1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmlzaWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export var HotelManageBookingAsideTabEnum;
2
+ (function (HotelManageBookingAsideTabEnum) {
3
+ HotelManageBookingAsideTabEnum["DETAILS"] = "details";
4
+ HotelManageBookingAsideTabEnum["CANCELLATION"] = "cancellation";
5
+ HotelManageBookingAsideTabEnum["MODIFICATION"] = "modification";
6
+ HotelManageBookingAsideTabEnum["REFUND"] = "refund";
7
+ HotelManageBookingAsideTabEnum["whatsAppAgent"] = "whatsAppAgent";
8
+ })(HotelManageBookingAsideTabEnum || (HotelManageBookingAsideTabEnum = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtbWFuYWdlLWJvb2tpbmctYXNpZGUtdGFiLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1ib29raW5nLWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2VudW1zL2hvdGVsLW1hbmFnZS1ib29raW5nLWFzaWRlLXRhYi5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLDhCQU1YO0FBTkQsV0FBWSw4QkFBOEI7SUFDeEMscURBQW1CLENBQUE7SUFDbkIsK0RBQTZCLENBQUE7SUFDN0IsK0RBQTZCLENBQUE7SUFDN0IsbURBQWlCLENBQUE7SUFDakIsaUVBQStCLENBQUE7QUFDakMsQ0FBQyxFQU5XLDhCQUE4QixLQUE5Qiw4QkFBOEIsUUFNekMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBIb3RlbE1hbmFnZUJvb2tpbmdBc2lkZVRhYkVudW0ge1xuICBERVRBSUxTID0gJ2RldGFpbHMnLFxuICBDQU5DRUxMQVRJT04gPSAnY2FuY2VsbGF0aW9uJyxcbiAgTU9ESUZJQ0FUSU9OID0gJ21vZGlmaWNhdGlvbicsXG4gIFJFRlVORCA9ICdyZWZ1bmQnLFxuICB3aGF0c0FwcEFnZW50ID0gJ3doYXRzQXBwQWdlbnQnXG59XG4iXX0=
@@ -0,0 +1,86 @@
1
+ // Flight refund details interfaces
2
+ export var PaymentGatewayCode;
3
+ (function (PaymentGatewayCode) {
4
+ PaymentGatewayCode["MADA"] = "MADA";
5
+ PaymentGatewayCode["VISA"] = "VISA";
6
+ PaymentGatewayCode["MASTERCARD"] = "MASTERCARD";
7
+ PaymentGatewayCode["AMEX"] = "AMEX";
8
+ PaymentGatewayCode["APPLE_PAY"] = "APPLE_PAY";
9
+ PaymentGatewayCode["AlRajhiMokafaa"] = "RAJHI";
10
+ PaymentGatewayCode["Qitaf"] = "QITAF";
11
+ PaymentGatewayCode["Wala"] = "WALA";
12
+ PaymentGatewayCode["Tamara"] = "TM";
13
+ PaymentGatewayCode["Tabby"] = "TB";
14
+ PaymentGatewayCode["Stc"] = "STC";
15
+ PaymentGatewayCode["CH"] = "CH";
16
+ PaymentGatewayCode["HP"] = "HP";
17
+ PaymentGatewayCode["MF"] = "MF";
18
+ PaymentGatewayCode["WT"] = "WT";
19
+ PaymentGatewayCode["TM"] = "TM";
20
+ PaymentGatewayCode["TB"] = "TB";
21
+ PaymentGatewayCode["RAJHI"] = "RAJHI";
22
+ PaymentGatewayCode["STC"] = "STC";
23
+ PaymentGatewayCode["PPB"] = "PPB";
24
+ PaymentGatewayCode["PP"] = "PP";
25
+ PaymentGatewayCode["TAMAM"] = "TAMAM";
26
+ PaymentGatewayCode["QITAF"] = "QITAF";
27
+ PaymentGatewayCode["WALA"] = "WALA";
28
+ })(PaymentGatewayCode || (PaymentGatewayCode = {}));
29
+ /** Labels for `paymentMethodCustomerUsed` gateway codes returned by the backend. */
30
+ export const PAYMENT_GATEWAY_LABELS = {
31
+ CH: { en: 'Card', ar: 'البطاقة' },
32
+ HP: { en: 'Hyperpay', ar: 'هايبر باي' },
33
+ MF: { en: 'My Fatoora', ar: 'ماي فاتورة' },
34
+ WT: { en: 'Wire Transfer', ar: 'تحويل بنكي' },
35
+ STC: { en: 'STC', ar: 'STC' },
36
+ TM: { en: 'Tamara', ar: 'تمارا' },
37
+ TB: { en: 'Tabby', ar: 'تابي' },
38
+ RAJHI: { en: 'Al Rajhi Mokafaa', ar: 'الراجحي مكافآت' },
39
+ PPB: { en: 'Customer Balance', ar: 'رصيد العميل' },
40
+ PP: { en: 'Postpay', ar: 'بوست باي' },
41
+ TAMAM: { en: 'Tamam', ar: 'تمام' },
42
+ QITAF: { en: 'Qitaf', ar: 'قطاف' },
43
+ MIS: { en: 'MIS Pay', ar: 'MIS Pay' },
44
+ MATAR: { en: 'Almatar Pay', ar: 'المطار باي' },
45
+ CB: { en: 'Company Balance', ar: 'رصيد الشركة' },
46
+ ANB: { en: 'ANB', ar: 'العربي الوطني' },
47
+ AMWAL: { en: 'Amwal', ar: 'أموال' },
48
+ WALA: { en: 'Wala', ar: 'ولاء' },
49
+ YGG: { en: 'YGG', ar: 'YGG' },
50
+ };
51
+ /** Gateway codes that refund to an installment plan rather than the original card. */
52
+ export const INSTALLMENT_GATEWAY_CODES = ['TM', 'TB'];
53
+ /** Gateway codes that refund to a loyalty-program account rather than the original card. */
54
+ export const LOYALTY_GATEWAY_CODES = ['RAJHI', 'QITAF', 'STC', 'WALA'];
55
+ /**
56
+ * Internal payment-processor/gateway names, never customer-recognizable
57
+ * brands — must not be surfaced verbatim (e.g. a card refund processed
58
+ * through Hyperpay must read as "Card"/"Original Payment Method", never
59
+ * "Hyperpay"). Callers fall back to a generic label whenever the normalized
60
+ * lookup returns ''.
61
+ */
62
+ export const INTERNAL_GATEWAY_CODES = ['HP', 'MF', 'WT', 'PPB', 'PP', 'TAMAM'];
63
+ /**
64
+ * Result/confirmation-screen-only override: these gateways process card
65
+ * payments through Mada — shown specifically as "Mada Card" instead of
66
+ * falling back to the generic "Original Payment Method" label used
67
+ * everywhere else `INTERNAL_GATEWAY_CODES` applies.
68
+ */
69
+ export const MADA_GATEWAY_CODES = ['HP', 'CH'];
70
+ /**
71
+ * Normalizes a raw payment gateway code from the backend to a standardized code.
72
+ * Handles both uppercase codes (e.g. 'HP') and labels (e.g. 'Hyperpay').
73
+ */
74
+ export function normalizePaymentGatewayCode(raw) {
75
+ if (!raw)
76
+ return '';
77
+ const needle = raw.trim().toLowerCase();
78
+ const codes = Object.keys(PAYMENT_GATEWAY_LABELS);
79
+ const byCode = codes.find((code) => code.toLowerCase() === needle);
80
+ if (byCode)
81
+ return byCode;
82
+ const byLabel = codes.find((code) => PAYMENT_GATEWAY_LABELS[code].en.toLowerCase() === needle ||
83
+ PAYMENT_GATEWAY_LABELS[code].ar.toLowerCase() === needle);
84
+ return byLabel ? byLabel : '';
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mbGlnaHQtcmVmdW5kLWRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1ib29raW5nLWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2ludGVyZmFjZXMvaS1mbGlnaHQtcmVmdW5kLWRldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBa0NuQyxNQUFNLENBQU4sSUFBWSxrQkF5Qlg7QUF6QkQsV0FBWSxrQkFBa0I7SUFDNUIsbUNBQWEsQ0FBQTtJQUNiLG1DQUFhLENBQUE7SUFDYiwrQ0FBeUIsQ0FBQTtJQUN6QixtQ0FBYSxDQUFBO0lBQ2IsNkNBQXVCLENBQUE7SUFDdkIsOENBQXdCLENBQUE7SUFDeEIscUNBQWUsQ0FBQTtJQUNmLG1DQUFhLENBQUE7SUFDYixtQ0FBYSxDQUFBO0lBQ2Isa0NBQVksQ0FBQTtJQUNaLGlDQUFXLENBQUE7SUFDWCwrQkFBUyxDQUFBO0lBQ1QsK0JBQVMsQ0FBQTtJQUNULCtCQUFTLENBQUE7SUFDVCwrQkFBUyxDQUFBO0lBQ1QsK0JBQVMsQ0FBQTtJQUNULCtCQUFTLENBQUE7SUFDVCxxQ0FBZSxDQUFBO0lBQ2YsaUNBQVcsQ0FBQTtJQUNYLGlDQUFXLENBQUE7SUFDWCwrQkFBUyxDQUFBO0lBQ1QscUNBQWUsQ0FBQTtJQUNmLHFDQUFlLENBQUE7SUFDZixtQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQXpCVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBeUI3QjtBQUVELG9GQUFvRjtBQUNwRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBK0M7SUFDaEYsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFO0lBQ2pDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtJQUN2QyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUU7SUFDMUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFO0lBQzdDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtJQUM3QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUU7SUFDakMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFO0lBQy9CLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUU7SUFDdkQsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUU7SUFDbEQsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ3JDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRTtJQUNsQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDbEMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFO0lBQ3JDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRTtJQUM5QyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRTtJQUNoRCxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUU7SUFDdkMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0lBQ25DLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRTtJQUNoQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUU7Q0FDOUIsQ0FBQztBQUVGLHNGQUFzRjtBQUN0RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUV0RCw0RkFBNEY7QUFDNUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUV2RTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFL0U7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUUvQzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsR0FBbUI7SUFDN0QsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztJQUNuRSxJQUFJLE1BQU07UUFBRSxPQUFPLE1BQTRCLENBQUM7SUFDaEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2xDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNO1FBQ3hELHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQ3pELENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUUsT0FBOEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGbGlnaHQgcmVmdW5kIGRldGFpbHMgaW50ZXJmYWNlc1xuXG5leHBvcnQgaW50ZXJmYWNlIElSZWZ1bmREZXRhaWxzRGF0YSB7XG4gIGJvb2tpbmdJZD86IHN0cmluZyB8IG51bWJlcjtcbiAgcmVmdW5kQW1vdW50PzogbnVtYmVyO1xuICB0b3RhbFJlZnVuZEFtb3VudD86IG51bWJlcjtcbiAgd2FsbGV0UmVmdW5kQW1vdW50PzogbnVtYmVyO1xuICB0b3RhbENhcmRSZWZ1bmRBbW91bnQ/OiBudW1iZXI7XG4gIHRvdGFsTG95YWx0eVBvaW50c1JlZnVuZEFtb3VudD86IG51bWJlcjtcbiAgdG90YWxMb3lhbHR5UG9pbnRzPzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgcmVmdW5kTWV0aG9kPzogUmVmdW5kUHJlZmVycmVkTWV0aG9kIHwgc3RyaW5nO1xuICBwYXltZW50R2F0ZXdheT86IFBheW1lbnRHYXRld2F5Q29kZSB8IExveWFsdHlQYXltZW50VHlwZSB8IHN0cmluZztcbiAgbG95YWx0eVBheW1lbnRUeXBlPzogTG95YWx0eVBheW1lbnRUeXBlIHwgc3RyaW5nO1xuICBpc0Z1bGxXYWxsZXRSZWZ1bmRBbGxvd2VkPzogYm9vbGVhbjtcbiAgcGF5bWVudE1ldGhvZEN1c3RvbWVyVXNlZD86IHN0cmluZztcbiAgaXNSZWZ1bmRhYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUmVmdW5kUHJlZmVycmVkTWV0aG9kID1cbiAgfCAnT1JJR0lOQUxfUEFZTUVOVF9NRVRIT0QnXG4gIHwgJ1dBTExFVCdcbiAgfCAnd2FsbGV0J1xuICB8ICdvcmlnaW5hbFBheW1lbnRNZXRob2QnXG4gIHwgJ0JBTktfVFJBTlNGRVInXG4gIHwgJ0xPWUFMVFlfUE9JTlRTJztcblxuZXhwb3J0IHR5cGUgTG95YWx0eVBheW1lbnRUeXBlID1cbiAgfCAnQUxNQVRBUl9QT0lOVFMnXG4gIHwgJ0FMRlVSU0FOJ1xuICB8ICdBbFJhamhpTW9rYWZhYSdcbiAgfCAnUWl0YWYnXG4gIHwgJ1dhbGEnO1xuXG5leHBvcnQgZW51bSBQYXltZW50R2F0ZXdheUNvZGUge1xuICBNQURBID0gJ01BREEnLFxuICBWSVNBID0gJ1ZJU0EnLFxuICBNQVNURVJDQVJEID0gJ01BU1RFUkNBUkQnLFxuICBBTUVYID0gJ0FNRVgnLFxuICBBUFBMRV9QQVkgPSAnQVBQTEVfUEFZJyxcbiAgQWxSYWpoaU1va2FmYWEgPSAnUkFKSEknLFxuICBRaXRhZiA9ICdRSVRBRicsXG4gIFdhbGEgPSAnV0FMQScsXG4gIFRhbWFyYSA9ICdUTScsXG4gIFRhYmJ5ID0gJ1RCJyxcbiAgU3RjID0gJ1NUQycsXG4gIENIID0gJ0NIJyxcbiAgSFAgPSAnSFAnLFxuICBNRiA9ICdNRicsXG4gIFdUID0gJ1dUJyxcbiAgVE0gPSAnVE0nLFxuICBUQiA9ICdUQicsXG4gIFJBSkhJID0gJ1JBSkhJJyxcbiAgU1RDID0gJ1NUQycsXG4gIFBQQiA9ICdQUEInLFxuICBQUCA9ICdQUCcsXG4gIFRBTUFNID0gJ1RBTUFNJyxcbiAgUUlUQUYgPSAnUUlUQUYnLFxuICBXQUxBID0gJ1dBTEEnXG59XG5cbi8qKiBMYWJlbHMgZm9yIGBwYXltZW50TWV0aG9kQ3VzdG9tZXJVc2VkYCBnYXRld2F5IGNvZGVzIHJldHVybmVkIGJ5IHRoZSBiYWNrZW5kLiAqL1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfR0FURVdBWV9MQUJFTFM6IFJlY29yZDxzdHJpbmcsIHsgZW46IHN0cmluZzsgYXI6IHN0cmluZyB9PiA9IHtcbiAgQ0g6IHsgZW46ICdDYXJkJywgYXI6ICfYp9mE2KjYt9in2YLYqScgfSxcbiAgSFA6IHsgZW46ICdIeXBlcnBheScsIGFyOiAn2YfYp9mK2KjYsSDYqNin2YonIH0sXG4gIE1GOiB7IGVuOiAnTXkgRmF0b29yYScsIGFyOiAn2YXYp9mKINmB2KfYqtmI2LHYqScgfSxcbiAgV1Q6IHsgZW46ICdXaXJlIFRyYW5zZmVyJywgYXI6ICfYqtit2YjZitmEINio2YbZg9mKJyB9LFxuICBTVEM6IHsgZW46ICdTVEMnLCBhcjogJ1NUQycgfSxcbiAgVE06IHsgZW46ICdUYW1hcmEnLCBhcjogJ9iq2YXYp9ix2KcnIH0sXG4gIFRCOiB7IGVuOiAnVGFiYnknLCBhcjogJ9iq2KfYqNmKJyB9LFxuICBSQUpISTogeyBlbjogJ0FsIFJhamhpIE1va2FmYWEnLCBhcjogJ9in2YTYsdin2KzYrdmKINmF2YPYp9mB2KLYqicgfSxcbiAgUFBCOiB7IGVuOiAnQ3VzdG9tZXIgQmFsYW5jZScsIGFyOiAn2LHYtdmK2K8g2KfZhNi52YXZitmEJyB9LFxuICBQUDogeyBlbjogJ1Bvc3RwYXknLCBhcjogJ9io2YjYs9iqINio2KfZiicgfSxcbiAgVEFNQU06IHsgZW46ICdUYW1hbScsIGFyOiAn2KrZhdin2YUnIH0sXG4gIFFJVEFGOiB7IGVuOiAnUWl0YWYnLCBhcjogJ9mC2LfYp9mBJyB9LFxuICBNSVM6IHsgZW46ICdNSVMgUGF5JywgYXI6ICdNSVMgUGF5JyB9LFxuICBNQVRBUjogeyBlbjogJ0FsbWF0YXIgUGF5JywgYXI6ICfYp9mE2YXYt9in2LEg2KjYp9mKJyB9LFxuICBDQjogeyBlbjogJ0NvbXBhbnkgQmFsYW5jZScsIGFyOiAn2LHYtdmK2K8g2KfZhNi02LHZg9ipJyB9LFxuICBBTkI6IHsgZW46ICdBTkInLCBhcjogJ9in2YTYudix2KjZiiDYp9mE2YjYt9mG2YonIH0sXG4gIEFNV0FMOiB7IGVuOiAnQW13YWwnLCBhcjogJ9ij2YXZiNin2YQnIH0sXG4gIFdBTEE6IHsgZW46ICdXYWxhJywgYXI6ICfZiNmE2KfYoScgfSxcbiAgWUdHOiB7IGVuOiAnWUdHJywgYXI6ICdZR0cnIH0sXG59O1xuXG4vKiogR2F0ZXdheSBjb2RlcyB0aGF0IHJlZnVuZCB0byBhbiBpbnN0YWxsbWVudCBwbGFuIHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBjYXJkLiAqL1xuZXhwb3J0IGNvbnN0IElOU1RBTExNRU5UX0dBVEVXQVlfQ09ERVMgPSBbJ1RNJywgJ1RCJ107XG5cbi8qKiBHYXRld2F5IGNvZGVzIHRoYXQgcmVmdW5kIHRvIGEgbG95YWx0eS1wcm9ncmFtIGFjY291bnQgcmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIGNhcmQuICovXG5leHBvcnQgY29uc3QgTE9ZQUxUWV9HQVRFV0FZX0NPREVTID0gWydSQUpISScsICdRSVRBRicsICdTVEMnLCAnV0FMQSddO1xuXG4vKipcbiAqIEludGVybmFsIHBheW1lbnQtcHJvY2Vzc29yL2dhdGV3YXkgbmFtZXMsIG5ldmVyIGN1c3RvbWVyLXJlY29nbml6YWJsZVxuICogYnJhbmRzIOKAlCBtdXN0IG5vdCBiZSBzdXJmYWNlZCB2ZXJiYXRpbSAoZS5nLiBhIGNhcmQgcmVmdW5kIHByb2Nlc3NlZFxuICogdGhyb3VnaCBIeXBlcnBheSBtdXN0IHJlYWQgYXMgXCJDYXJkXCIvXCJPcmlnaW5hbCBQYXltZW50IE1ldGhvZFwiLCBuZXZlclxuICogXCJIeXBlcnBheVwiKS4gQ2FsbGVycyBmYWxsIGJhY2sgdG8gYSBnZW5lcmljIGxhYmVsIHdoZW5ldmVyIHRoZSBub3JtYWxpemVkXG4gKiBsb29rdXAgcmV0dXJucyAnJy5cbiAqL1xuZXhwb3J0IGNvbnN0IElOVEVSTkFMX0dBVEVXQVlfQ09ERVMgPSBbJ0hQJywgJ01GJywgJ1dUJywgJ1BQQicsICdQUCcsICdUQU1BTSddO1xuXG4vKipcbiAqIFJlc3VsdC9jb25maXJtYXRpb24tc2NyZWVuLW9ubHkgb3ZlcnJpZGU6IHRoZXNlIGdhdGV3YXlzIHByb2Nlc3MgY2FyZFxuICogcGF5bWVudHMgdGhyb3VnaCBNYWRhIOKAlCBzaG93biBzcGVjaWZpY2FsbHkgYXMgXCJNYWRhIENhcmRcIiBpbnN0ZWFkIG9mXG4gKiBmYWxsaW5nIGJhY2sgdG8gdGhlIGdlbmVyaWMgXCJPcmlnaW5hbCBQYXltZW50IE1ldGhvZFwiIGxhYmVsIHVzZWRcbiAqIGV2ZXJ5d2hlcmUgZWxzZSBgSU5URVJOQUxfR0FURVdBWV9DT0RFU2AgYXBwbGllcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BREFfR0FURVdBWV9DT0RFUyA9IFsnSFAnLCAnQ0gnXTtcblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcmF3IHBheW1lbnQgZ2F0ZXdheSBjb2RlIGZyb20gdGhlIGJhY2tlbmQgdG8gYSBzdGFuZGFyZGl6ZWQgY29kZS5cbiAqIEhhbmRsZXMgYm90aCB1cHBlcmNhc2UgY29kZXMgKGUuZy4gJ0hQJykgYW5kIGxhYmVscyAoZS5nLiAnSHlwZXJwYXknKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBheW1lbnRHYXRld2F5Q29kZShyYXc/OiBzdHJpbmcgfCBudWxsKTogUGF5bWVudEdhdGV3YXlDb2RlIHwgJycge1xuICBpZiAoIXJhdykgcmV0dXJuICcnO1xuICBjb25zdCBuZWVkbGUgPSByYXcudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGNvZGVzID0gT2JqZWN0LmtleXMoUEFZTUVOVF9HQVRFV0FZX0xBQkVMUyk7XG4gIGNvbnN0IGJ5Q29kZSA9IGNvZGVzLmZpbmQoKGNvZGUpID0+IGNvZGUudG9Mb3dlckNhc2UoKSA9PT0gbmVlZGxlKTtcbiAgaWYgKGJ5Q29kZSkgcmV0dXJuIGJ5Q29kZSBhcyBQYXltZW50R2F0ZXdheUNvZGU7XG4gIGNvbnN0IGJ5TGFiZWwgPSBjb2Rlcy5maW5kKChjb2RlKSA9PlxuICAgIFBBWU1FTlRfR0FURVdBWV9MQUJFTFNbY29kZV0uZW4udG9Mb3dlckNhc2UoKSA9PT0gbmVlZGxlIHx8XG4gICAgUEFZTUVOVF9HQVRFV0FZX0xBQkVMU1tjb2RlXS5hci50b0xvd2VyQ2FzZSgpID09PSBuZWVkbGVcbiAgKTtcbiAgcmV0dXJuIGJ5TGFiZWwgPyAoYnlMYWJlbCBhcyBQYXltZW50R2F0ZXdheUNvZGUpIDogJyc7XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export class CancelHotelBookingPayload {
2
+ // Add other properties as needed
3
+ constructor(data) {
4
+ Object.assign(this, data);
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLWhvdGVsLWJvb2tpbmcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1ib29raW5nLWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL21vZGVscy9jYW5jZWwtaG90ZWwtYm9va2luZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8seUJBQXlCO0lBSXBDLGlDQUFpQztJQUVqQyxZQUFZLElBQXlDO1FBQ25ELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDYW5jZWxIb3RlbEJvb2tpbmdQYXlsb2FkIHtcbiAgYm9va2luZ0lkPzogc3RyaW5nO1xuICByb29tSWRzPzogc3RyaW5nW107XG4gIHJlZnVuZE1ldGhvZD86IHN0cmluZztcbiAgLy8gQWRkIG90aGVyIHByb3BlcnRpZXMgYXMgbmVlZGVkXG5cbiAgY29uc3RydWN0b3IoZGF0YT86IFBhcnRpYWw8Q2FuY2VsSG90ZWxCb29raW5nUGF5bG9hZD4pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { Injectable, signal } from '@angular/core';
2
+ import { of, BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class HotelManageBookingService {
5
+ constructor() {
6
+ this.activeAsideTab = signal('details');
7
+ this.selectedHotelBooking = new BehaviorSubject(null);
8
+ }
9
+ getActiveAsideTab() {
10
+ return this.activeAsideTab();
11
+ }
12
+ setActiveAsideTab(tab) {
13
+ this.activeAsideTab.set(tab);
14
+ }
15
+ getBookingDetails(bookingId) {
16
+ return of(null);
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HotelManageBookingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
19
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HotelManageBookingService, providedIn: 'root' }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HotelManageBookingService, decorators: [{
22
+ type: Injectable,
23
+ args: [{
24
+ providedIn: 'root'
25
+ }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtbWFuYWdlLWJvb2tpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvaG90ZWwtbWFuYWdlLWJvb2tpbmcvaG90ZWwtbWFuYWdlLWJvb2tpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLHlCQUF5QjtJQUh0QztRQUlVLG1CQUFjLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO0tBYXZEO0lBWEMsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWlCO1FBQ2pDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7K0dBZFUseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIb3RlbE1hbmFnZUJvb2tpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhY3RpdmVBc2lkZVRhYiA9IHNpZ25hbDxzdHJpbmc+KCdkZXRhaWxzJyk7XG4gIHNlbGVjdGVkSG90ZWxCb29raW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXG4gIGdldEFjdGl2ZUFzaWRlVGFiKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlQXNpZGVUYWIoKTtcbiAgfVxuXG4gIHNldEFjdGl2ZUFzaWRlVGFiKHRhYjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVBc2lkZVRhYi5zZXQodGFiKTtcbiAgfVxuXG4gIGdldEJvb2tpbmdEZXRhaWxzKGJvb2tpbmdJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class HotelManageBookingEndpointsService {
5
+ cancelBookingRequest(payload) {
6
+ return of(null);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HotelManageBookingEndpointsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HotelManageBookingEndpointsService, providedIn: 'root' }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HotelManageBookingEndpointsService, decorators: [{
12
+ type: Injectable,
13
+ args: [{
14
+ providedIn: 'root'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtbWFuYWdlLWJvb2tpbmctZW5kcG9pbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1ib29raW5nLWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3NlcnZpY2VzL2hvdGVsLW1hbmFnZS1ib29raW5nLWVuZHBvaW50cy9ob3RlbC1tYW5hZ2UtYm9va2luZy1lbmRwb2ludHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0Msb0JBQW9CLENBQUMsT0FBWTtRQUMvQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDOytHQUhVLGtDQUFrQzttSEFBbEMsa0NBQWtDLGNBRmpDLE1BQU07OzRGQUVQLGtDQUFrQztrQkFIOUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIb3RlbE1hbmFnZUJvb2tpbmdFbmRwb2ludHNTZXJ2aWNlIHtcbiAgY2FuY2VsQm9va2luZ1JlcXVlc3QocGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cbn1cbiJdfQ==