@almatar/smart-booking-dashboard 0.0.1 → 0.0.2-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/action-card/action-card.component.mjs +3 -3
- package/esm2022/lib/components/add-note-dialog/add-note-dialog.component.mjs +3 -3
- package/esm2022/lib/components/almatar-aside/aside-back-button.service.mjs +24 -0
- package/esm2022/lib/components/almatar-aside/aside.component.mjs +122 -0
- package/esm2022/lib/components/booking-input/booking-input.component.mjs +4 -3
- package/esm2022/lib/components/cancel-dialog/cancel-dialog.component.mjs +53 -4
- package/esm2022/lib/components/data-search/data-search.component.mjs +3 -3
- package/esm2022/lib/components/hotel-cancel/almatar-hotel-auto-cancellation.component.mjs +544 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-method/almatar-hotel-auto-cancellation-refund-method.component.mjs +43 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-summary/almatar-hotel-auto-cancellation-refund-summary.component.mjs +296 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/almatar-hotel-auto-cancellation-select-rooms.component.mjs +88 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-non-refundable-room/almatar-hotel-auto-cancellation-non-refundable-room.component.mjs +242 -0
- package/esm2022/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-refundable-room/almatar-hotel-auto-cancellation-refundable-room.component.mjs +48 -0
- package/esm2022/lib/components/hotel-cancel/components/hotel-content/hotel-content.component.mjs +129 -0
- package/esm2022/lib/components/hotel-cancel/components/hotel-refund-method-selector/hotel-refund-method-selector.component.mjs +321 -0
- package/esm2022/lib/components/hotel-cancel/components/result-overlay/result-overlay.component.mjs +52 -0
- package/esm2022/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-endpoints.enum.mjs +9 -0
- package/esm2022/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-step.enum.mjs +7 -0
- package/esm2022/lib/components/hotel-cancel/interfaces/i-almatar-hotel-auto-cancellation.interface.mjs +2 -0
- package/esm2022/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation-endpoints.service.mjs +457 -0
- package/esm2022/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation.service.mjs +55 -0
- package/esm2022/lib/components/hotel-itinerary-card/hotel-itinerary-card.component.mjs +48 -0
- package/esm2022/lib/components/reissue-dialog/reissue-dialog.component.mjs +135 -0
- package/esm2022/lib/components/reissue-dialog/reissue-upgrade.store.mjs +305 -0
- package/esm2022/lib/components/reissue-dialog/reissue.store.mjs +349 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-date-step/reissue-date-step.component.mjs +45 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-legs-step/reissue-legs-step.component.mjs +140 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-notice/reissue-notice.component.mjs +16 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-route-step/reissue-route-step.component.mjs +104 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-service-step/reissue-service-step.component.mjs +44 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-upgrade-confirm-step/reissue-upgrade-confirm-step.component.mjs +193 -0
- package/esm2022/lib/components/reissue-dialog/steps/reissue-upgrade-step/reissue-upgrade-step.component.mjs +88 -0
- package/esm2022/lib/components/result-panel/result-panel.component.mjs +3 -3
- package/esm2022/lib/components/shared/components/confirm-modal/confirm-modal.component.mjs +75 -0
- package/esm2022/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.mjs +46 -0
- package/esm2022/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.mjs +9 -0
- package/esm2022/lib/components/shared/interfaces/i-flight-refund-details.mjs +86 -0
- package/esm2022/lib/components/shared/models/cancel-hotel-booking.model.mjs +7 -0
- package/esm2022/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.mjs +27 -0
- package/esm2022/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.mjs +17 -0
- package/esm2022/lib/components/workflow-actions/workflow-actions.component.mjs +5 -3
- package/esm2022/lib/config/dashboard.config.mjs +3 -1
- package/esm2022/lib/config/hotel-actions.config.mjs +21 -1
- package/esm2022/lib/models/booking.types.mjs +73 -2
- package/esm2022/lib/models/reissue.types.mjs +2 -0
- package/esm2022/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.mjs +31 -7
- package/esm2022/lib/services/booking.service.mjs +6 -2
- package/esm2022/lib/services/reissue.service.mjs +142 -0
- package/esm2022/lib/services/toast.service.mjs +15 -7
- package/esm2022/lib/shared/components/currency-code-icon/currency-code-icon.component.mjs +35 -0
- package/esm2022/lib/shared/enums/brand-enums.enum.mjs +7 -0
- package/esm2022/lib/shared/environments/environment.mjs +10 -0
- package/esm2022/lib/shared/models/index.mjs +6 -0
- package/esm2022/lib/shared/modules/almatar-icon/almatar-icon.module.mjs +36 -0
- package/esm2022/lib/shared/modules/loader/loader.module.mjs +43 -0
- package/esm2022/lib/shared/pipes/exchange.pipe.mjs +49 -0
- package/esm2022/lib/shared/services/api.service.mjs +42 -0
- package/esm2022/lib/shared/services/shared.service.mjs +34 -0
- package/esm2022/lib/shared/services/translation.service.mjs +61 -0
- package/esm2022/lib/shared/services/webengage-tracking.service.mjs +28 -0
- package/esm2022/lib/shared/store/selectors/currency.selectors.mjs +9 -0
- package/esm2022/lib/utils/reissue-format.mjs +64 -0
- package/esm2022/lib/utils/reissue-url.builder.mjs +314 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/almatar-smart-booking-dashboard.mjs +5387 -395
- package/fesm2022/almatar-smart-booking-dashboard.mjs.map +1 -1
- package/lib/components/action-dialog/action-dialog.component.d.ts +1 -1
- package/lib/components/almatar-aside/aside-back-button.service.d.ts +11 -0
- package/lib/components/almatar-aside/aside.component.d.ts +46 -0
- package/lib/components/cancel-dialog/cancel-dialog.component.d.ts +7 -0
- package/lib/components/hotel-cancel/almatar-hotel-auto-cancellation.component.d.ts +97 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-method/almatar-hotel-auto-cancellation-refund-method.component.d.ts +25 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-refund-summary/almatar-hotel-auto-cancellation-refund-summary.component.d.ts +91 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/almatar-hotel-auto-cancellation-select-rooms.component.d.ts +39 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-non-refundable-room/almatar-hotel-auto-cancellation-non-refundable-room.component.d.ts +44 -0
- package/lib/components/hotel-cancel/components/almatar-hotel-auto-cancellation-select-rooms/components/almatar-hotel-auto-cancellation-refundable-room/almatar-hotel-auto-cancellation-refundable-room.component.d.ts +19 -0
- package/lib/components/hotel-cancel/components/hotel-content/hotel-content.component.d.ts +38 -0
- package/lib/components/hotel-cancel/components/hotel-refund-method-selector/hotel-refund-method-selector.component.d.ts +142 -0
- package/lib/components/hotel-cancel/components/result-overlay/result-overlay.component.d.ts +23 -0
- package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-endpoints.enum.d.ts +7 -0
- package/lib/components/hotel-cancel/enums/almatar-hotel-auto-cancellation-step.enum.d.ts +5 -0
- package/lib/components/hotel-cancel/interfaces/i-almatar-hotel-auto-cancellation.interface.d.ts +252 -0
- package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation-endpoints.service.d.ts +88 -0
- package/lib/components/hotel-cancel/services/almatar-hotel-auto-cancellation.service.d.ts +21 -0
- package/lib/components/hotel-itinerary-card/hotel-itinerary-card.component.d.ts +16 -0
- package/lib/components/reissue-dialog/reissue-dialog.component.d.ts +34 -0
- package/lib/components/reissue-dialog/reissue-upgrade.store.d.ts +96 -0
- package/lib/components/reissue-dialog/reissue.store.d.ts +124 -0
- package/lib/components/reissue-dialog/steps/reissue-date-step/reissue-date-step.component.d.ts +11 -0
- package/lib/components/reissue-dialog/steps/reissue-legs-step/reissue-legs-step.component.d.ts +16 -0
- package/lib/components/reissue-dialog/steps/reissue-notice/reissue-notice.component.d.ts +8 -0
- package/lib/components/reissue-dialog/steps/reissue-route-step/reissue-route-step.component.d.ts +21 -0
- package/lib/components/reissue-dialog/steps/reissue-service-step/reissue-service-step.component.d.ts +17 -0
- package/lib/components/reissue-dialog/steps/reissue-upgrade-confirm-step/reissue-upgrade-confirm-step.component.d.ts +28 -0
- package/lib/components/reissue-dialog/steps/reissue-upgrade-step/reissue-upgrade-step.component.d.ts +13 -0
- package/lib/components/result-panel/result-panel.component.d.ts +1 -1
- package/lib/components/shared/components/confirm-modal/confirm-modal.component.d.ts +17 -0
- package/lib/components/shared/components/manage-booking-failed-modal/manage-booking-failed-modal.component.d.ts +10 -0
- package/lib/components/shared/enums/hotel-manage-booking-aside-tab.enum.d.ts +7 -0
- package/lib/components/shared/interfaces/i-flight-refund-details.d.ts +73 -0
- package/lib/components/shared/models/cancel-hotel-booking.model.d.ts +6 -0
- package/lib/components/shared/services/hotel-manage-booking/hotel-manage-booking.service.d.ts +11 -0
- package/lib/components/shared/services/hotel-manage-booking-endpoints/hotel-manage-booking-endpoints.service.d.ts +7 -0
- package/lib/components/workflow-actions/workflow-actions.component.d.ts +3 -1
- package/lib/config/dashboard.config.d.ts +29 -0
- package/lib/models/booking.types.d.ts +28 -0
- package/lib/models/reissue.types.d.ts +147 -0
- package/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.d.ts +5 -1
- package/lib/services/reissue.service.d.ts +45 -0
- package/lib/services/toast.service.d.ts +14 -1
- package/lib/shared/components/currency-code-icon/currency-code-icon.component.d.ts +13 -0
- package/lib/shared/enums/brand-enums.enum.d.ts +5 -0
- package/lib/shared/environments/environment.d.ts +7 -0
- package/lib/shared/models/index.d.ts +11 -0
- package/lib/shared/modules/almatar-icon/almatar-icon.module.d.ts +13 -0
- package/lib/shared/modules/loader/loader.module.d.ts +13 -0
- package/lib/shared/pipes/exchange.pipe.d.ts +17 -0
- package/lib/shared/services/api.service.d.ts +43 -0
- package/lib/shared/services/shared.service.d.ts +12 -0
- package/lib/shared/services/translation.service.d.ts +17 -0
- package/lib/shared/services/webengage-tracking.service.d.ts +8 -0
- package/lib/shared/store/selectors/currency.selectors.d.ts +2 -0
- package/lib/utils/reissue-format.d.ts +28 -0
- package/lib/utils/reissue-url.builder.d.ts +24 -0
- package/package.json +9 -24
- package/public-api.d.ts +5 -1
- package/LICENSE +0 -21
- package/README.md +0 -132
|
@@ -10,10 +10,10 @@ export class SbdActionCardComponent {
|
|
|
10
10
|
this.selected = output();
|
|
11
11
|
}
|
|
12
12
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdActionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SbdActionCardComponent, isStandalone: true, selector: "app-sbd-action-card", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: "<button class=\"sbd-action-card\" [class.sbd-action-card--active]=\"active()\"\n [class.sbd-action-card--loading]=\"loading()\" [pTooltip]=\"action().subtitle\"\n tooltipPosition=\"top\" (click)=\"selected.emit(action().key)\" type=\"button\">\n @if (active()) { <span class=\"sbd-action-card__dot\"></span> }\n <div class=\"sbd-action-card__icon-tile\">\n <i [class]=\"action().icon\"></i>\n </div>\n <div class=\"sbd-action-card__body\">\n <span class=\"sbd-action-card__label\">{{ action().label }}</span>\n <span class=\"sbd-action-card__sub\">{{ action().subtitle }}</span>\n </div>\n</button>\n", styles: [".sbd-action-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;text-align:left;width:100%;transition:transform .15s,box-shadow .15s,border-color .15s;font-family:inherit}.sbd-action-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#1e2e4a}.sbd-action-card--active{border-color
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SbdActionCardComponent, isStandalone: true, selector: "app-sbd-action-card", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: "<button class=\"sbd-action-card\" [class.sbd-action-card--active]=\"active()\"\n [class.sbd-action-card--loading]=\"loading()\" [pTooltip]=\"action().subtitle\"\n tooltipPosition=\"top\" (click)=\"selected.emit(action().key)\" type=\"button\">\n @if (active()) { <span class=\"sbd-action-card__dot\"></span> }\n <div class=\"sbd-action-card__icon-tile\">\n <i [class]=\"action().icon\"></i>\n </div>\n <div class=\"sbd-action-card__body\">\n <span class=\"sbd-action-card__label\">{{ action().label }}</span>\n <span class=\"sbd-action-card__sub\">{{ action().subtitle }}</span>\n </div>\n</button>\n", styles: [".sbd-action-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;text-align:left;width:100%;transition:transform .15s,box-shadow .15s,border-color .15s;font-family:inherit}.sbd-action-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#1e2e4a}.sbd-action-card--active{border-color:var(--sbd-primary, #3b82f6)!important;background:var(--sbd-primary-soft, #eff6ff)!important}.sbd-action-card--active .sbd-action-card__icon-tile{background:color-mix(in srgb,var(--sbd-primary, #3b82f6) 12%,transparent);color:var(--sbd-primary, #3b82f6)}.sbd-action-card--active .sbd-action-card__label{color:var(--sbd-primary, #3b82f6)}.sbd-action-card--loading{pointer-events:none;opacity:.7}.sbd-action-card__dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--sbd-primary, #3b82f6)}.sbd-action-card__icon-tile{width:38px;height:38px;border-radius:8px;background:#f1f5f9;color:#1e2e4a;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sbd-action-card__icon-tile i{font-size:18px}.sbd-action-card__body{display:flex;flex-direction:column;gap:2px;min-width:0;width:100%}.sbd-action-card__label{font-size:12.5px;font-weight:700;color:#1e2e4a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sbd-action-card__sub{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
|
|
14
14
|
}
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdActionCardComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
|
-
args: [{ selector: 'app-sbd-action-card', standalone: true, imports: [TooltipModule], template: "<button class=\"sbd-action-card\" [class.sbd-action-card--active]=\"active()\"\n [class.sbd-action-card--loading]=\"loading()\" [pTooltip]=\"action().subtitle\"\n tooltipPosition=\"top\" (click)=\"selected.emit(action().key)\" type=\"button\">\n @if (active()) { <span class=\"sbd-action-card__dot\"></span> }\n <div class=\"sbd-action-card__icon-tile\">\n <i [class]=\"action().icon\"></i>\n </div>\n <div class=\"sbd-action-card__body\">\n <span class=\"sbd-action-card__label\">{{ action().label }}</span>\n <span class=\"sbd-action-card__sub\">{{ action().subtitle }}</span>\n </div>\n</button>\n", styles: [".sbd-action-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;text-align:left;width:100%;transition:transform .15s,box-shadow .15s,border-color .15s;font-family:inherit}.sbd-action-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#1e2e4a}.sbd-action-card--active{border-color
|
|
17
|
+
args: [{ selector: 'app-sbd-action-card', standalone: true, imports: [TooltipModule], template: "<button class=\"sbd-action-card\" [class.sbd-action-card--active]=\"active()\"\n [class.sbd-action-card--loading]=\"loading()\" [pTooltip]=\"action().subtitle\"\n tooltipPosition=\"top\" (click)=\"selected.emit(action().key)\" type=\"button\">\n @if (active()) { <span class=\"sbd-action-card__dot\"></span> }\n <div class=\"sbd-action-card__icon-tile\">\n <i [class]=\"action().icon\"></i>\n </div>\n <div class=\"sbd-action-card__body\">\n <span class=\"sbd-action-card__label\">{{ action().label }}</span>\n <span class=\"sbd-action-card__sub\">{{ action().subtitle }}</span>\n </div>\n</button>\n", styles: [".sbd-action-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;text-align:left;width:100%;transition:transform .15s,box-shadow .15s,border-color .15s;font-family:inherit}.sbd-action-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#1e2e4a}.sbd-action-card--active{border-color:var(--sbd-primary, #3b82f6)!important;background:var(--sbd-primary-soft, #eff6ff)!important}.sbd-action-card--active .sbd-action-card__icon-tile{background:color-mix(in srgb,var(--sbd-primary, #3b82f6) 12%,transparent);color:var(--sbd-primary, #3b82f6)}.sbd-action-card--active .sbd-action-card__label{color:var(--sbd-primary, #3b82f6)}.sbd-action-card--loading{pointer-events:none;opacity:.7}.sbd-action-card__dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--sbd-primary, #3b82f6)}.sbd-action-card__icon-tile{width:38px;height:38px;border-radius:8px;background:#f1f5f9;color:#1e2e4a;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sbd-action-card__icon-tile i{font-size:18px}.sbd-action-card__body{display:flex;flex-direction:column;gap:2px;min-width:0;width:100%}.sbd-action-card__label{font-size:12.5px;font-weight:700;color:#1e2e4a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sbd-action-card__sub{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYm9va2luZy1kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFVaEQsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVFFLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFnQixDQUFDO1FBQ3hDLFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixhQUFRLEdBQUcsTUFBTSxFQUFVLENBQUM7S0FDN0I7K0dBTFksc0JBQXNCO21HQUF0QixzQkFBc0IsaWZDWG5DLDBtQkFZQSxtaURETFksYUFBYTs7NEZBSVosc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zYmQtYWN0aW9uLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVG9vbHRpcE1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb24tY2FyZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNiZEFjdGlvbkNhcmRDb21wb25lbnQge1xuICBhY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxBY3Rpb25Db25maWc+KCk7XG4gIGFjdGl2ZSA9IGlucHV0KGZhbHNlKTtcbiAgbG9hZGluZyA9IGlucHV0KGZhbHNlKTtcbiAgc2VsZWN0ZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xufVxuIiwiPGJ1dHRvbiBjbGFzcz1cInNiZC1hY3Rpb24tY2FyZFwiIFtjbGFzcy5zYmQtYWN0aW9uLWNhcmQtLWFjdGl2ZV09XCJhY3RpdmUoKVwiXG4gIFtjbGFzcy5zYmQtYWN0aW9uLWNhcmQtLWxvYWRpbmddPVwibG9hZGluZygpXCIgW3BUb29sdGlwXT1cImFjdGlvbigpLnN1YnRpdGxlXCJcbiAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCIgKGNsaWNrKT1cInNlbGVjdGVkLmVtaXQoYWN0aW9uKCkua2V5KVwiIHR5cGU9XCJidXR0b25cIj5cbiAgQGlmIChhY3RpdmUoKSkgeyA8c3BhbiBjbGFzcz1cInNiZC1hY3Rpb24tY2FyZF9fZG90XCI+PC9zcGFuPiB9XG4gIDxkaXYgY2xhc3M9XCJzYmQtYWN0aW9uLWNhcmRfX2ljb24tdGlsZVwiPlxuICAgIDxpIFtjbGFzc109XCJhY3Rpb24oKS5pY29uXCI+PC9pPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNiZC1hY3Rpb24tY2FyZF9fYm9keVwiPlxuICAgIDxzcGFuIGNsYXNzPVwic2JkLWFjdGlvbi1jYXJkX19sYWJlbFwiPnt7IGFjdGlvbigpLmxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2JkLWFjdGlvbi1jYXJkX19zdWJcIj57eyBhY3Rpb24oKS5zdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -53,10 +53,10 @@ export class SbdAddNoteDialogComponent {
|
|
|
53
53
|
this.submitting.set(false);
|
|
54
54
|
}
|
|
55
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdAddNoteDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SbdAddNoteDialogComponent, isStandalone: true, selector: "app-sbd-add-note-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, bookingId: { classPropertyName: "bookingId", publicName: "bookingId", isSignal: true, isRequired: false, transformFunction: null }, product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<p-dialog\n [visible]=\"visible()\"\n (visibleChange)=\"$event ? null : closed.emit()\"\n [modal]=\"true\"\n [blockScroll]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '480px' }\"\n styleClass=\"sbd-add-note-dialog-wrapper\"\n header=\"Add Note\">\n\n <div class=\"and\">\n\n <!-- Note type -->\n <div class=\"and__field\">\n <label class=\"and__label\">Note type</label>\n <div class=\"and__type-group\">\n @for (opt of actionOptions; track opt.value) {\n <button\n type=\"button\"\n class=\"and__type-btn\"\n [class.and__type-btn--active]=\"action() === opt.value\"\n (click)=\"action.set(opt.value)\">\n <i class=\"{{ opt.icon }}\"></i>\n {{ opt.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Message -->\n <div class=\"and__field\">\n <label class=\"and__label\">\n Message\n <span class=\"and__char-count\">{{ message().length }} / 1000</span>\n </label>\n <textarea\n class=\"and__textarea\"\n [ngModel]=\"message()\"\n (ngModelChange)=\"message.set($event)\"\n placeholder=\"Write your note here...\"\n rows=\"6\"\n maxlength=\"1000\"\n [disabled]=\"submitting()\">\n </textarea>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <button pButton label=\"Cancel\" icon=\"pi pi-times\"\n class=\"p-button-outlined p-button-secondary p-button-sm\"\n [disabled]=\"submitting()\"\n (click)=\"closed.emit()\">\n </button>\n <button pButton label=\"Submit Note\"\n [icon]=\"submitting() ? 'pi pi-spin pi-spinner' : 'pi pi-check'\"\n class=\"p-button-sm\"\n [disabled]=\"!message().trim() || submitting()\"\n (click)=\"submit()\">\n </button>\n </ng-template>\n\n</p-dialog>\n", styles: [".and{display:flex;flex-direction:column;gap:20px;padding:4px 0}.and__field{display:flex;flex-direction:column;gap:8px}.and__label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.and__char-count{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;color:#94a3b8}.and__type-group{display:flex;gap:8px}.and__type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#64748b;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.and__type-btn .pi{font-size:13px}.and__type-btn:hover{border-color:#94a3b8;background:#f1f5f9;color:#334155}.and__type-btn--active{border-color
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SbdAddNoteDialogComponent, isStandalone: true, selector: "app-sbd-add-note-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, bookingId: { classPropertyName: "bookingId", publicName: "bookingId", isSignal: true, isRequired: false, transformFunction: null }, product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<p-dialog\n [visible]=\"visible()\"\n (visibleChange)=\"$event ? null : closed.emit()\"\n [modal]=\"true\"\n [blockScroll]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '480px' }\"\n styleClass=\"sbd-add-note-dialog-wrapper\"\n header=\"Add Note\">\n\n <div class=\"and\">\n\n <!-- Note type -->\n <div class=\"and__field\">\n <label class=\"and__label\">Note type</label>\n <div class=\"and__type-group\">\n @for (opt of actionOptions; track opt.value) {\n <button\n type=\"button\"\n class=\"and__type-btn\"\n [class.and__type-btn--active]=\"action() === opt.value\"\n (click)=\"action.set(opt.value)\">\n <i class=\"{{ opt.icon }}\"></i>\n {{ opt.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Message -->\n <div class=\"and__field\">\n <label class=\"and__label\">\n Message\n <span class=\"and__char-count\">{{ message().length }} / 1000</span>\n </label>\n <textarea\n class=\"and__textarea\"\n [ngModel]=\"message()\"\n (ngModelChange)=\"message.set($event)\"\n placeholder=\"Write your note here...\"\n rows=\"6\"\n maxlength=\"1000\"\n [disabled]=\"submitting()\">\n </textarea>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <button pButton label=\"Cancel\" icon=\"pi pi-times\"\n class=\"p-button-outlined p-button-secondary p-button-sm\"\n [disabled]=\"submitting()\"\n (click)=\"closed.emit()\">\n </button>\n <button pButton label=\"Submit Note\"\n [icon]=\"submitting() ? 'pi pi-spin pi-spinner' : 'pi pi-check'\"\n class=\"p-button-sm sbd-note-submit\"\n [disabled]=\"!message().trim() || submitting()\"\n (click)=\"submit()\">\n </button>\n </ng-template>\n\n</p-dialog>\n", styles: [".and{display:flex;flex-direction:column;gap:20px;padding:4px 0}.and__field{display:flex;flex-direction:column;gap:8px}.and__label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.and__char-count{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;color:#94a3b8}.and__type-group{display:flex;gap:8px}.and__type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#64748b;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.and__type-btn .pi{font-size:13px}.and__type-btn:hover{border-color:#94a3b8;background:#f1f5f9;color:#334155}.and__type-btn--active{border-color:var(--sbd-primary, #3b82f6);background:#eff6ff;color:#1d4ed8}.and__type-btn--active:hover{border-color:#2563eb;background:#dbeafe}.and__textarea{width:100%;resize:vertical;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13.5px;font-family:inherit;color:#1e2e4a;background:#fff;line-height:1.55;transition:border-color .15s ease;box-sizing:border-box}.and__textarea::placeholder{color:#94a3b8}.and__textarea:focus{outline:none;border-color:var(--sbd-primary, #3b82f6);box-shadow:0 0 0 3px color-mix(in srgb,var(--sbd-primary, #3b82f6) 10%,transparent)}.and__textarea:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.sbd-note-submit{background:var(--sbd-primary, #007ad9);border-color:var(--sbd-primary, #007ad9)}.sbd-note-submit:enabled:hover{background:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000);border-color:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000)}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }] }); }
|
|
57
57
|
}
|
|
58
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdAddNoteDialogComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
|
-
args: [{ selector: 'app-sbd-add-note-dialog', standalone: true, imports: [DialogModule, ButtonModule, FormsModule, NgSelectModule], template: "<p-dialog\n [visible]=\"visible()\"\n (visibleChange)=\"$event ? null : closed.emit()\"\n [modal]=\"true\"\n [blockScroll]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '480px' }\"\n styleClass=\"sbd-add-note-dialog-wrapper\"\n header=\"Add Note\">\n\n <div class=\"and\">\n\n <!-- Note type -->\n <div class=\"and__field\">\n <label class=\"and__label\">Note type</label>\n <div class=\"and__type-group\">\n @for (opt of actionOptions; track opt.value) {\n <button\n type=\"button\"\n class=\"and__type-btn\"\n [class.and__type-btn--active]=\"action() === opt.value\"\n (click)=\"action.set(opt.value)\">\n <i class=\"{{ opt.icon }}\"></i>\n {{ opt.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Message -->\n <div class=\"and__field\">\n <label class=\"and__label\">\n Message\n <span class=\"and__char-count\">{{ message().length }} / 1000</span>\n </label>\n <textarea\n class=\"and__textarea\"\n [ngModel]=\"message()\"\n (ngModelChange)=\"message.set($event)\"\n placeholder=\"Write your note here...\"\n rows=\"6\"\n maxlength=\"1000\"\n [disabled]=\"submitting()\">\n </textarea>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <button pButton label=\"Cancel\" icon=\"pi pi-times\"\n class=\"p-button-outlined p-button-secondary p-button-sm\"\n [disabled]=\"submitting()\"\n (click)=\"closed.emit()\">\n </button>\n <button pButton label=\"Submit Note\"\n [icon]=\"submitting() ? 'pi pi-spin pi-spinner' : 'pi pi-check'\"\n class=\"p-button-sm\"\n [disabled]=\"!message().trim() || submitting()\"\n (click)=\"submit()\">\n </button>\n </ng-template>\n\n</p-dialog>\n", styles: [".and{display:flex;flex-direction:column;gap:20px;padding:4px 0}.and__field{display:flex;flex-direction:column;gap:8px}.and__label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.and__char-count{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;color:#94a3b8}.and__type-group{display:flex;gap:8px}.and__type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#64748b;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.and__type-btn .pi{font-size:13px}.and__type-btn:hover{border-color:#94a3b8;background:#f1f5f9;color:#334155}.and__type-btn--active{border-color
|
|
60
|
+
args: [{ selector: 'app-sbd-add-note-dialog', standalone: true, imports: [DialogModule, ButtonModule, FormsModule, NgSelectModule], template: "<p-dialog\n [visible]=\"visible()\"\n (visibleChange)=\"$event ? null : closed.emit()\"\n [modal]=\"true\"\n [blockScroll]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '480px' }\"\n styleClass=\"sbd-add-note-dialog-wrapper\"\n header=\"Add Note\">\n\n <div class=\"and\">\n\n <!-- Note type -->\n <div class=\"and__field\">\n <label class=\"and__label\">Note type</label>\n <div class=\"and__type-group\">\n @for (opt of actionOptions; track opt.value) {\n <button\n type=\"button\"\n class=\"and__type-btn\"\n [class.and__type-btn--active]=\"action() === opt.value\"\n (click)=\"action.set(opt.value)\">\n <i class=\"{{ opt.icon }}\"></i>\n {{ opt.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Message -->\n <div class=\"and__field\">\n <label class=\"and__label\">\n Message\n <span class=\"and__char-count\">{{ message().length }} / 1000</span>\n </label>\n <textarea\n class=\"and__textarea\"\n [ngModel]=\"message()\"\n (ngModelChange)=\"message.set($event)\"\n placeholder=\"Write your note here...\"\n rows=\"6\"\n maxlength=\"1000\"\n [disabled]=\"submitting()\">\n </textarea>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <button pButton label=\"Cancel\" icon=\"pi pi-times\"\n class=\"p-button-outlined p-button-secondary p-button-sm\"\n [disabled]=\"submitting()\"\n (click)=\"closed.emit()\">\n </button>\n <button pButton label=\"Submit Note\"\n [icon]=\"submitting() ? 'pi pi-spin pi-spinner' : 'pi pi-check'\"\n class=\"p-button-sm sbd-note-submit\"\n [disabled]=\"!message().trim() || submitting()\"\n (click)=\"submit()\">\n </button>\n </ng-template>\n\n</p-dialog>\n", styles: [".and{display:flex;flex-direction:column;gap:20px;padding:4px 0}.and__field{display:flex;flex-direction:column;gap:8px}.and__label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.and__char-count{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;color:#94a3b8}.and__type-group{display:flex;gap:8px}.and__type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#64748b;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.and__type-btn .pi{font-size:13px}.and__type-btn:hover{border-color:#94a3b8;background:#f1f5f9;color:#334155}.and__type-btn--active{border-color:var(--sbd-primary, #3b82f6);background:#eff6ff;color:#1d4ed8}.and__type-btn--active:hover{border-color:#2563eb;background:#dbeafe}.and__textarea{width:100%;resize:vertical;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13.5px;font-family:inherit;color:#1e2e4a;background:#fff;line-height:1.55;transition:border-color .15s ease;box-sizing:border-box}.and__textarea::placeholder{color:#94a3b8}.and__textarea:focus{outline:none;border-color:var(--sbd-primary, #3b82f6);box-shadow:0 0 0 3px color-mix(in srgb,var(--sbd-primary, #3b82f6) 10%,transparent)}.and__textarea:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.sbd-note-submit{background:var(--sbd-primary, #007ad9);border-color:var(--sbd-primary, #007ad9)}.sbd-note-submit:enabled:hover{background:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000);border-color:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000)}\n"] }]
|
|
61
61
|
}], ctorParameters: () => [] });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vdGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9hZGQtbm90ZS1kaWFsb2cvYWRkLW5vdGUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9hZGQtbm90ZS1kaWFsb2cvYWRkLW5vdGUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFZL0QsTUFBTSxPQUFPLHlCQUF5QjtJQW1CcEM7UUFsQlEsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxVQUFLLEdBQVksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWpELFlBQU8sR0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsY0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixZQUFPLEdBQUssS0FBSyxDQUFjLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLFdBQU0sR0FBTSxNQUFNLEVBQVEsQ0FBQztRQUUzQixZQUFPLEdBQU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLFdBQU0sR0FBTyxNQUFNLENBQWEsU0FBUyxDQUFDLENBQUM7UUFDM0MsZUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQixrQkFBYSxHQUF5RDtZQUM3RSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUcsS0FBSyxFQUFFLFNBQVMsRUFBRyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQy9ELEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUNqRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUksS0FBSyxFQUFFLFFBQVEsRUFBSSxJQUFJLEVBQUUsMEJBQTBCLEVBQUU7U0FDM0UsQ0FBQztRQUdBLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFFakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzFGLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUs7UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOytHQTlDVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw4ZkNuQnRDLDQzREFnRUEsaXdERGpEWSxZQUFZLGkwQkFBRSxZQUFZLHNLQUFFLFdBQVcsaXhCQUFFLGNBQWM7OzRGQUl0RCx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgaW5qZWN0LCBzaWduYWwsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcblxuaW1wb3J0IHsgU2JkQm9va2luZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ib29raW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2JkVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ib29raW5nLnR5cGVzJztcblxudHlwZSBOb3RlQWN0aW9uID0gJ0dFTkVSQUwnIHwgJ0ZFRURCQUNLJyB8ICdSRU1BUksnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2JkLWFkZC1ub3RlLWRpYWxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtEaWFsb2dNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE5nU2VsZWN0TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1ub3RlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hZGQtbm90ZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTYmRBZGROb3RlRGlhbG9nQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBib29raW5nU2VydmljZSA9IGluamVjdChTYmRCb29raW5nU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgICAgICAgICAgPSBpbmplY3QoU2JkVG9hc3RTZXJ2aWNlKTtcblxuICB2aXNpYmxlICAgPSBpbnB1dChmYWxzZSk7XG4gIGJvb2tpbmdJZCA9IGlucHV0KCcnKTtcbiAgcHJvZHVjdCAgID0gaW5wdXQ8UHJvZHVjdFR5cGU+KCdmbGlnaHQnKTtcbiAgY2xvc2VkICAgID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgbWVzc2FnZSAgICA9IHNpZ25hbCgnJyk7XG4gIGFjdGlvbiAgICAgPSBzaWduYWw8Tm90ZUFjdGlvbj4oJ0dFTkVSQUwnKTtcbiAgc3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgYWN0aW9uT3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogTm90ZUFjdGlvbjsgaWNvbjogc3RyaW5nIH1bXSA9IFtcbiAgICB7IGxhYmVsOiAnR2VuZXJhbCcsICB2YWx1ZTogJ0dFTkVSQUwnLCAgaWNvbjogJ3BpIHBpLWNvbW1lbnQnIH0sXG4gICAgeyBsYWJlbDogJ0ZlZWRiYWNrJywgdmFsdWU6ICdGRUVEQkFDSycsIGljb246ICdwaSBwaS10aHVtYnMtdXAnIH0sXG4gICAgeyBsYWJlbDogJ1JlbWFyaycsICAgdmFsdWU6ICdSRU1BUksnLCAgIGljb246ICdwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUnIH0sXG4gIF07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy52aXNpYmxlKCkpIHRoaXMucmVzZXQoKTtcbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICB9XG5cbiAgc3VibWl0KCk6IHZvaWQge1xuICAgIGNvbnN0IG1zZyA9IHRoaXMubWVzc2FnZSgpLnRyaW0oKTtcbiAgICBpZiAoIW1zZykgcmV0dXJuO1xuXG4gICAgdGhpcy5zdWJtaXR0aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmJvb2tpbmdTZXJ2aWNlLmFkZE5vdGUodGhpcy5ib29raW5nSWQoKSwgdGhpcy5wcm9kdWN0KCksIG1zZywgdGhpcy5hY3Rpb24oKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdOb3RlIGFkZGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdC5lcnJvcignRmFpbGVkIHRvIGFkZCBub3RlLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xuICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZS5zZXQoJycpO1xuICAgIHRoaXMuYWN0aW9uLnNldCgnR0VORVJBTCcpO1xuICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICB9XG59XG4iLCI8cC1kaWFsb2dcbiAgW3Zpc2libGVdPVwidmlzaWJsZSgpXCJcbiAgKHZpc2libGVDaGFuZ2UpPVwiJGV2ZW50ID8gbnVsbCA6IGNsb3NlZC5lbWl0KClcIlxuICBbbW9kYWxdPVwidHJ1ZVwiXG4gIFtibG9ja1Njcm9sbF09XCJ0cnVlXCJcbiAgW2RyYWdnYWJsZV09XCJmYWxzZVwiXG4gIFtyZXNpemFibGVdPVwiZmFsc2VcIlxuICBbc3R5bGVdPVwieyB3aWR0aDogJzQ4MHB4JyB9XCJcbiAgc3R5bGVDbGFzcz1cInNiZC1hZGQtbm90ZS1kaWFsb2ctd3JhcHBlclwiXG4gIGhlYWRlcj1cIkFkZCBOb3RlXCI+XG5cbiAgPGRpdiBjbGFzcz1cImFuZFwiPlxuXG4gICAgPCEtLSBOb3RlIHR5cGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImFuZF9fZmllbGRcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImFuZF9fbGFiZWxcIj5Ob3RlIHR5cGU8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cImFuZF9fdHlwZS1ncm91cFwiPlxuICAgICAgICBAZm9yIChvcHQgb2YgYWN0aW9uT3B0aW9uczsgdHJhY2sgb3B0LnZhbHVlKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImFuZF9fdHlwZS1idG5cIlxuICAgICAgICAgICAgW2NsYXNzLmFuZF9fdHlwZS1idG4tLWFjdGl2ZV09XCJhY3Rpb24oKSA9PT0gb3B0LnZhbHVlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb24uc2V0KG9wdC52YWx1ZSlcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3sgb3B0Lmljb24gfX1cIj48L2k+XG4gICAgICAgICAgICB7eyBvcHQubGFiZWwgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE1lc3NhZ2UgLS0+XG4gICAgPGRpdiBjbGFzcz1cImFuZF9fZmllbGRcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImFuZF9fbGFiZWxcIj5cbiAgICAgICAgTWVzc2FnZVxuICAgICAgICA8c3BhbiBjbGFzcz1cImFuZF9fY2hhci1jb3VudFwiPnt7IG1lc3NhZ2UoKS5sZW5ndGggfX0gLyAxMDAwPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICBjbGFzcz1cImFuZF9fdGV4dGFyZWFcIlxuICAgICAgICBbbmdNb2RlbF09XCJtZXNzYWdlKClcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJtZXNzYWdlLnNldCgkZXZlbnQpXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJXcml0ZSB5b3VyIG5vdGUgaGVyZS4uLlwiXG4gICAgICAgIHJvd3M9XCI2XCJcbiAgICAgICAgbWF4bGVuZ3RoPVwiMTAwMFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzdWJtaXR0aW5nKClcIj5cbiAgICAgIDwvdGV4dGFyZWE+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgIDxidXR0b24gcEJ1dHRvbiBsYWJlbD1cIkNhbmNlbFwiIGljb249XCJwaSBwaS10aW1lc1wiXG4gICAgICBjbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkIHAtYnV0dG9uLXNlY29uZGFyeSBwLWJ1dHRvbi1zbVwiXG4gICAgICBbZGlzYWJsZWRdPVwic3VibWl0dGluZygpXCJcbiAgICAgIChjbGljayk9XCJjbG9zZWQuZW1pdCgpXCI+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBwQnV0dG9uIGxhYmVsPVwiU3VibWl0IE5vdGVcIlxuICAgICAgW2ljb25dPVwic3VibWl0dGluZygpID8gJ3BpIHBpLXNwaW4gcGktc3Bpbm5lcicgOiAncGkgcGktY2hlY2snXCJcbiAgICAgIGNsYXNzPVwicC1idXR0b24tc20gc2JkLW5vdGUtc3VibWl0XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhbWVzc2FnZSgpLnRyaW0oKSB8fCBzdWJtaXR0aW5nKClcIlxuICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvcC1kaWFsb2c+XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AsideBackButtonService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.showBackButton$ = new BehaviorSubject(false);
|
|
7
|
+
this.backClicked$ = new Subject();
|
|
8
|
+
}
|
|
9
|
+
show() {
|
|
10
|
+
this.showBackButton$.next(true);
|
|
11
|
+
}
|
|
12
|
+
hide() {
|
|
13
|
+
this.showBackButton$.next(false);
|
|
14
|
+
}
|
|
15
|
+
emitBack() {
|
|
16
|
+
this.backClicked$.next();
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsideBackButtonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsideBackButtonService }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsideBackButtonService, decorators: [{
|
|
22
|
+
type: Injectable
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpZGUtYmFjay1idXR0b24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9hbG1hdGFyLWFzaWRlL2FzaWRlLWJhY2stYnV0dG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHaEQsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVFLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdEQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBYXBDO0lBWEMsSUFBSTtRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBZFUsc0JBQXNCO21IQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFzaWRlQmFja0J1dHRvblNlcnZpY2Uge1xuICBzaG93QmFja0J1dHRvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgYmFja0NsaWNrZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0JhY2tCdXR0b24kLm5leHQodHJ1ZSk7XG4gIH1cblxuICBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0JhY2tCdXR0b24kLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgZW1pdEJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrQ2xpY2tlZCQubmV4dCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Component, EventEmitter, Inject, Input, Optional, Output, } from '@angular/core';
|
|
2
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
3
|
+
import { DialogModule } from 'primeng/dialog';
|
|
4
|
+
import { environments } from '../../shared/environments/environment';
|
|
5
|
+
import { brandEnum } from '../../shared/enums/brand-enums.enum';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../shared/services/shared.service";
|
|
8
|
+
import * as i2 from "./aside-back-button.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "primeng/dialog";
|
|
11
|
+
import * as i5 from "primeng/api";
|
|
12
|
+
export class AsideComponent {
|
|
13
|
+
get backIconClass() {
|
|
14
|
+
// Conventional back-arrow direction: points left in LTR, right in RTL.
|
|
15
|
+
return this.selectedLang === 'ar'
|
|
16
|
+
? 'pi pi-arrow-right'
|
|
17
|
+
: 'pi pi-arrow-left';
|
|
18
|
+
}
|
|
19
|
+
get isWhiteHeader() {
|
|
20
|
+
return this.whiteHeader && environments.brandName === brandEnum.almatar;
|
|
21
|
+
}
|
|
22
|
+
constructor(shared, document, backButtonService) {
|
|
23
|
+
this.shared = shared;
|
|
24
|
+
this.document = document;
|
|
25
|
+
this.backButtonService = backButtonService;
|
|
26
|
+
this.asideTitle = '';
|
|
27
|
+
this.showHeader = true;
|
|
28
|
+
/**
|
|
29
|
+
* Opt-in white header (instead of the default purple/lavender) — only
|
|
30
|
+
* takes effect on the Almatar brand, so other tenants/brands sharing this
|
|
31
|
+
* component keep their existing header regardless of this input.
|
|
32
|
+
*/
|
|
33
|
+
this.whiteHeader = false;
|
|
34
|
+
this.showAside = false;
|
|
35
|
+
/** Opt-in desktop width override (e.g. `'600px'`) — defaults to 490px, or 580px with the white header. */
|
|
36
|
+
this.width = '';
|
|
37
|
+
this.modal = false;
|
|
38
|
+
this.closable = true;
|
|
39
|
+
this.transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
|
|
40
|
+
/**
|
|
41
|
+
* When true, the dialog's own close (the X, Esc) does NOT hide the aside; it only emits
|
|
42
|
+
* {@link closeRequested}, so the host can ask for confirmation and close the aside itself.
|
|
43
|
+
*/
|
|
44
|
+
this.interceptClose = false;
|
|
45
|
+
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
46
|
+
this.onClose = new EventEmitter();
|
|
47
|
+
this.closeRequested = new EventEmitter();
|
|
48
|
+
this.isInAppView = this.shared.getInAppView();
|
|
49
|
+
this.showBackButton = false;
|
|
50
|
+
}
|
|
51
|
+
ngOnInit() {
|
|
52
|
+
this.selectedLang = this.shared.getAppLanguage();
|
|
53
|
+
if (this.backButtonService) {
|
|
54
|
+
this.backButtonService.showBackButton$.subscribe((show) => {
|
|
55
|
+
this.showBackButton = show;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Replaces the two-way `[(visible)]` so a host can veto the dialog's own close. */
|
|
60
|
+
onVisibleChange(visible) {
|
|
61
|
+
if (!visible && this.interceptClose) {
|
|
62
|
+
this.closeRequested.emit();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.showAside = visible;
|
|
66
|
+
}
|
|
67
|
+
onCloseModal() {
|
|
68
|
+
this.onClose.emit();
|
|
69
|
+
this.document.body.style.overflow = '';
|
|
70
|
+
}
|
|
71
|
+
// The back arrow lives in the header's leading content (via the
|
|
72
|
+
// `pTemplate="header"` slot), entirely separate from PrimeNG's own close
|
|
73
|
+
// button — so it never touches the dialog's `visible` state, and the X
|
|
74
|
+
// close button keeps working (and stays visible) exactly as before.
|
|
75
|
+
onBackIconClick(event) {
|
|
76
|
+
event.stopPropagation();
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
this.backButtonService?.emitBack();
|
|
79
|
+
}
|
|
80
|
+
onDialogShow() {
|
|
81
|
+
this.document.body.style.overflow = 'hidden';
|
|
82
|
+
}
|
|
83
|
+
ngOnDestroy() {
|
|
84
|
+
this.document.body.style.overflow = '';
|
|
85
|
+
}
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsideComponent, deps: [{ token: i1.SharedService }, { token: DOCUMENT }, { token: i2.AsideBackButtonService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AsideComponent, isStandalone: true, selector: "almatar-aside", inputs: { asideTitle: "asideTitle", showHeader: "showHeader", headerTemplate: "headerTemplate", whiteHeader: "whiteHeader", showAside: "showAside", width: "width", modal: "modal", closable: "closable", transitionOptions: "transitionOptions", interceptClose: "interceptClose" }, outputs: { onClose: "onClose", closeRequested: "closeRequested" }, ngImport: i0, template: "<!-- A side panel built on `p-dialog` with `position=\"right\"`, not on PrimeNG's sidebar/drawer: `p-dialog` exists with\n the same name in PrimeNG 14 (the backoffice) and 20 (Helix), while `primeng/sidebar` was removed in 20 and\n `primeng/drawer` does not exist in 14.\n `position=\"right\"` is intentional for both directions: the flex positioning is writing-direction aware, so\n under dir=\"rtl\" (Arabic) it mirrors to the visual left on its own. Passing \"left\" for Arabic double-flips it\n back to the right. -->\n<p-dialog\n class=\"almatar_aside\"\n [ngClass]=\"{ 'almatar_aside--white-header': isWhiteHeader }\"\n position=\"right\"\n [visible]=\"showAside\"\n (visibleChange)=\"onVisibleChange($event)\"\n (onShow)=\"onDialogShow()\"\n (onHide)=\"onCloseModal()\"\n [modal]=\"modal\"\n [closable]=\"closable && !isInAppView\"\n [showHeader]=\"showHeader\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: width || (isWhiteHeader ? '580px' : '490px') }\"\n [transitionOptions]=\"transitionOptions\"\n>\n @if (showHeader) {\n @if (showBackButton) {\n <!-- Rendered into the header's leading content, alongside (not instead of) the dialog's own close (X)\n button, so both are visible together and the X keeps its normal close behavior untouched. -->\n <ng-template pTemplate=\"header\">\n <!-- One flex group, not two separate header children: the header's `justify-content: space-between`\n would otherwise spread the arrow and the title apart. -->\n <div class=\"almatar-aside__back-header\">\n <i\n class=\"almatar-aside__back-icon\"\n [class]=\"backIconClass\"\n (click)=\"onBackIconClick($event)\"\n ></i>\n <span class=\"almatar-aside__title\">{{ asideTitle }}</span>\n </div>\n </ng-template>\n } @else if (headerTemplate) {\n <ng-template pTemplate=\"header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-template>\n } @else {\n <ng-template pTemplate=\"header\">\n <span class=\"almatar-aside__title\">{{ asideTitle }}</span>\n </ng-template>\n }\n }\n\n <ng-content></ng-content>\n</p-dialog>\n", styles: [".almatar_aside ::ng-deep .p-dialog{margin:0!important;height:100svh;max-height:100svh!important;border-radius:0;border:none;transform:unset}@media (max-width: 768px){.almatar_aside ::ng-deep .p-dialog{width:100vw!important}}.almatar_aside ::ng-deep .p-dialog-mask.p-component-overlay,.almatar_aside ::ng-deep .p-dialog-mask.p-overlay-mask{background-color:#0000008a}.almatar_aside ::ng-deep .p-dialog-header{background:var(--almatar-secondary-surface);border:none;border-radius:0;padding:1rem 1.25rem}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__title,.almatar_aside ::ng-deep .p-dialog-header .p-dialog-header-close-icon,.almatar_aside ::ng-deep .p-dialog-header .p-dialog-close-icon{color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__title{color:var(--almatar-secondary-text-on-surface);font-size:calc(21 * var(--almatar-font-size-ratio, 1) * 1px);margin:0;font-weight:var(--almatar-font-weight-regular)}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__back-header{display:flex;align-items:center;gap:12px}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__back-icon{cursor:pointer;font-size:1.25rem;color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-dialog-header-close-icon,.almatar_aside ::ng-deep .p-dialog-close-icon{font-size:1.5rem!important}.almatar_aside ::ng-deep .p-dialog-content{height:100%;flex-grow:1;background-color:var(--almatar-neutral-surface-card);padding:0}.almatar_aside--white-header ::ng-deep .p-dialog-header{background:var(--almatar-neutral-surface-card);border-bottom:1px solid var(--almatar-primary-border-disabled)}.almatar_aside--white-header ::ng-deep .p-dialog-header .p-dialog-header-close-icon,.almatar_aside--white-header ::ng-deep .p-dialog-header .p-dialog-close-icon{color:var(--almatar-neutral-icon-primary-static)}.almatar_aside--white-header ::ng-deep .p-dialog-header .almatar-aside__title{color:var(--almatar-neutral-text-primary-static);font-weight:var(--almatar-font-weight-regular)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsideComponent, decorators: [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: 'almatar-aside', standalone: true, imports: [CommonModule, DialogModule], template: "<!-- A side panel built on `p-dialog` with `position=\"right\"`, not on PrimeNG's sidebar/drawer: `p-dialog` exists with\n the same name in PrimeNG 14 (the backoffice) and 20 (Helix), while `primeng/sidebar` was removed in 20 and\n `primeng/drawer` does not exist in 14.\n `position=\"right\"` is intentional for both directions: the flex positioning is writing-direction aware, so\n under dir=\"rtl\" (Arabic) it mirrors to the visual left on its own. Passing \"left\" for Arabic double-flips it\n back to the right. -->\n<p-dialog\n class=\"almatar_aside\"\n [ngClass]=\"{ 'almatar_aside--white-header': isWhiteHeader }\"\n position=\"right\"\n [visible]=\"showAside\"\n (visibleChange)=\"onVisibleChange($event)\"\n (onShow)=\"onDialogShow()\"\n (onHide)=\"onCloseModal()\"\n [modal]=\"modal\"\n [closable]=\"closable && !isInAppView\"\n [showHeader]=\"showHeader\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: width || (isWhiteHeader ? '580px' : '490px') }\"\n [transitionOptions]=\"transitionOptions\"\n>\n @if (showHeader) {\n @if (showBackButton) {\n <!-- Rendered into the header's leading content, alongside (not instead of) the dialog's own close (X)\n button, so both are visible together and the X keeps its normal close behavior untouched. -->\n <ng-template pTemplate=\"header\">\n <!-- One flex group, not two separate header children: the header's `justify-content: space-between`\n would otherwise spread the arrow and the title apart. -->\n <div class=\"almatar-aside__back-header\">\n <i\n class=\"almatar-aside__back-icon\"\n [class]=\"backIconClass\"\n (click)=\"onBackIconClick($event)\"\n ></i>\n <span class=\"almatar-aside__title\">{{ asideTitle }}</span>\n </div>\n </ng-template>\n } @else if (headerTemplate) {\n <ng-template pTemplate=\"header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-template>\n } @else {\n <ng-template pTemplate=\"header\">\n <span class=\"almatar-aside__title\">{{ asideTitle }}</span>\n </ng-template>\n }\n }\n\n <ng-content></ng-content>\n</p-dialog>\n", styles: [".almatar_aside ::ng-deep .p-dialog{margin:0!important;height:100svh;max-height:100svh!important;border-radius:0;border:none;transform:unset}@media (max-width: 768px){.almatar_aside ::ng-deep .p-dialog{width:100vw!important}}.almatar_aside ::ng-deep .p-dialog-mask.p-component-overlay,.almatar_aside ::ng-deep .p-dialog-mask.p-overlay-mask{background-color:#0000008a}.almatar_aside ::ng-deep .p-dialog-header{background:var(--almatar-secondary-surface);border:none;border-radius:0;padding:1rem 1.25rem}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__title,.almatar_aside ::ng-deep .p-dialog-header .p-dialog-header-close-icon,.almatar_aside ::ng-deep .p-dialog-header .p-dialog-close-icon{color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__title{color:var(--almatar-secondary-text-on-surface);font-size:calc(21 * var(--almatar-font-size-ratio, 1) * 1px);margin:0;font-weight:var(--almatar-font-weight-regular)}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__back-header{display:flex;align-items:center;gap:12px}.almatar_aside ::ng-deep .p-dialog-header .almatar-aside__back-icon{cursor:pointer;font-size:1.25rem;color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-dialog-header-close-icon,.almatar_aside ::ng-deep .p-dialog-close-icon{font-size:1.5rem!important}.almatar_aside ::ng-deep .p-dialog-content{height:100%;flex-grow:1;background-color:var(--almatar-neutral-surface-card);padding:0}.almatar_aside--white-header ::ng-deep .p-dialog-header{background:var(--almatar-neutral-surface-card);border-bottom:1px solid var(--almatar-primary-border-disabled)}.almatar_aside--white-header ::ng-deep .p-dialog-header .p-dialog-header-close-icon,.almatar_aside--white-header ::ng-deep .p-dialog-header .p-dialog-close-icon{color:var(--almatar-neutral-icon-primary-static)}.almatar_aside--white-header ::ng-deep .p-dialog-header .almatar-aside__title{color:var(--almatar-neutral-text-primary-static);font-weight:var(--almatar-font-weight-regular)}\n"] }]
|
|
92
|
+
}], ctorParameters: () => [{ type: i1.SharedService }, { type: Document, decorators: [{
|
|
93
|
+
type: Inject,
|
|
94
|
+
args: [DOCUMENT]
|
|
95
|
+
}] }, { type: i2.AsideBackButtonService, decorators: [{
|
|
96
|
+
type: Optional
|
|
97
|
+
}] }], propDecorators: { asideTitle: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], showHeader: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], headerTemplate: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], whiteHeader: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], showAside: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], width: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], modal: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], closable: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], transitionOptions: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], interceptClose: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], onClose: [{
|
|
118
|
+
type: Output
|
|
119
|
+
}], closeRequested: [{
|
|
120
|
+
type: Output
|
|
121
|
+
}] } });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYm9va2luZy1kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL2FsbWF0YXItYXNpZGUvYXNpZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYm9va2luZy1kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL2FsbWF0YXItYXNpZGUvYXNpZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7QUFTaEUsTUFBTSxPQUFPLGNBQWM7SUE0QnpCLElBQUksYUFBYTtRQUNmLHVFQUF1RTtRQUN2RSxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSTtZQUMvQixDQUFDLENBQUMsbUJBQW1CO1lBQ3JCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUMxRSxDQUFDO0lBRUQsWUFDVSxNQUFxQixFQUNILFFBQWtCLEVBQ3hCLGlCQUF5QztRQUZyRCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ0gsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXdCO1FBekN0RCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFM0I7Ozs7V0FJRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsMEdBQTBHO1FBQ2pHLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixzQkFBaUIsR0FBRyxrQ0FBa0MsQ0FBQztRQUNoRTs7O1dBR0c7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUNoQywrREFBK0Q7UUFDckQsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFekMsbUJBQWMsR0FBRyxLQUFLLENBQUM7SUFpQnBCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELG9GQUFvRjtJQUNwRixlQUFlLENBQUMsT0FBZ0I7UUFDOUIsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLHlFQUF5RTtJQUN6RSx1RUFBdUU7SUFDdkUsb0VBQW9FO0lBQ3BFLGVBQWUsQ0FBQyxLQUFZO1FBQzFCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN6QyxDQUFDOytHQXBGVSxjQUFjLCtDQXlDZixRQUFRO21HQXpDUCxjQUFjLGthQ3pCM0IsOHRFQW1EQSx5akVEOUJZLFlBQVksbVNBQUUsWUFBWTs7NEZBSXpCLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7OzBCQTZDbEMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixRQUFRO3lDQXpDRixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFNRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3NoYXJlZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFzaWRlQmFja0J1dHRvblNlcnZpY2UgfSBmcm9tICcuL2FzaWRlLWJhY2stYnV0dG9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBicmFuZEVudW0gfSBmcm9tICcuLi8uLi9zaGFyZWQvZW51bXMvYnJhbmQtZW51bXMuZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FsbWF0YXItYXNpZGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEaWFsb2dNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNpZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hc2lkZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBc2lkZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgYXNpZGVUaXRsZSA9ICcnO1xuICBASW5wdXQoKSBzaG93SGVhZGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgaGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogT3B0LWluIHdoaXRlIGhlYWRlciAoaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwdXJwbGUvbGF2ZW5kZXIpIOKAlCBvbmx5XG4gICAqIHRha2VzIGVmZmVjdCBvbiB0aGUgQWxtYXRhciBicmFuZCwgc28gb3RoZXIgdGVuYW50cy9icmFuZHMgc2hhcmluZyB0aGlzXG4gICAqIGNvbXBvbmVudCBrZWVwIHRoZWlyIGV4aXN0aW5nIGhlYWRlciByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSB3aGl0ZUhlYWRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93QXNpZGUgPSBmYWxzZTtcbiAgLyoqIE9wdC1pbiBkZXNrdG9wIHdpZHRoIG92ZXJyaWRlIChlLmcuIGAnNjAwcHgnYCkg4oCUIGRlZmF1bHRzIHRvIDQ5MHB4LCBvciA1ODBweCB3aXRoIHRoZSB3aGl0ZSBoZWFkZXIuICovXG4gIEBJbnB1dCgpIHdpZHRoID0gJyc7XG4gIEBJbnB1dCgpIG1vZGFsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsb3NhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgdHJhbnNpdGlvbk9wdGlvbnMgPSAnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCB0aGUgZGlhbG9nJ3Mgb3duIGNsb3NlICh0aGUgWCwgRXNjKSBkb2VzIE5PVCBoaWRlIHRoZSBhc2lkZTsgaXQgb25seSBlbWl0c1xuICAgKiB7QGxpbmsgY2xvc2VSZXF1ZXN0ZWR9LCBzbyB0aGUgaG9zdCBjYW4gYXNrIGZvciBjb25maXJtYXRpb24gYW5kIGNsb3NlIHRoZSBhc2lkZSBpdHNlbGYuXG4gICAqL1xuICBASW5wdXQoKSBpbnRlcmNlcHRDbG9zZSA9IGZhbHNlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgQE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZVJlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgaXNJbkFwcFZpZXcgPSB0aGlzLnNoYXJlZC5nZXRJbkFwcFZpZXcoKTtcbiAgc2VsZWN0ZWRMYW5nITogc3RyaW5nO1xuICBzaG93QmFja0J1dHRvbiA9IGZhbHNlO1xuXG4gIGdldCBiYWNrSWNvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgLy8gQ29udmVudGlvbmFsIGJhY2stYXJyb3cgZGlyZWN0aW9uOiBwb2ludHMgbGVmdCBpbiBMVFIsIHJpZ2h0IGluIFJUTC5cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmcgPT09ICdhcidcbiAgICAgID8gJ3BpIHBpLWFycm93LXJpZ2h0J1xuICAgICAgOiAncGkgcGktYXJyb3ctbGVmdCc7XG4gIH1cblxuICBnZXQgaXNXaGl0ZUhlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53aGl0ZUhlYWRlciAmJiBlbnZpcm9ubWVudHMuYnJhbmROYW1lID09PSBicmFuZEVudW0uYWxtYXRhcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2hhcmVkOiBTaGFyZWRTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgYmFja0J1dHRvblNlcnZpY2U6IEFzaWRlQmFja0J1dHRvblNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkTGFuZyA9IHRoaXMuc2hhcmVkLmdldEFwcExhbmd1YWdlKCk7XG4gICAgaWYgKHRoaXMuYmFja0J1dHRvblNlcnZpY2UpIHtcbiAgICAgIHRoaXMuYmFja0J1dHRvblNlcnZpY2Uuc2hvd0JhY2tCdXR0b24kLnN1YnNjcmliZSgoc2hvdykgPT4ge1xuICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gc2hvdztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXBsYWNlcyB0aGUgdHdvLXdheSBgWyh2aXNpYmxlKV1gIHNvIGEgaG9zdCBjYW4gdmV0byB0aGUgZGlhbG9nJ3Mgb3duIGNsb3NlLiAqL1xuICBvblZpc2libGVDaGFuZ2UodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdmlzaWJsZSAmJiB0aGlzLmludGVyY2VwdENsb3NlKSB7XG4gICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zaG93QXNpZGUgPSB2aXNpYmxlO1xuICB9XG5cbiAgb25DbG9zZU1vZGFsKCkge1xuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gIH1cblxuICAvLyBUaGUgYmFjayBhcnJvdyBsaXZlcyBpbiB0aGUgaGVhZGVyJ3MgbGVhZGluZyBjb250ZW50ICh2aWEgdGhlXG4gIC8vIGBwVGVtcGxhdGU9XCJoZWFkZXJcImAgc2xvdCksIGVudGlyZWx5IHNlcGFyYXRlIGZyb20gUHJpbWVORydzIG93biBjbG9zZVxuICAvLyBidXR0b24g4oCUIHNvIGl0IG5ldmVyIHRvdWNoZXMgdGhlIGRpYWxvZydzIGB2aXNpYmxlYCBzdGF0ZSwgYW5kIHRoZSBYXG4gIC8vIGNsb3NlIGJ1dHRvbiBrZWVwcyB3b3JraW5nIChhbmQgc3RheXMgdmlzaWJsZSkgZXhhY3RseSBhcyBiZWZvcmUuXG4gIG9uQmFja0ljb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYmFja0J1dHRvblNlcnZpY2U/LmVtaXRCYWNrKCk7XG4gIH1cblxuICBvbkRpYWxvZ1Nob3coKSB7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcbiAgfVxufVxuIiwiPCEtLSBBIHNpZGUgcGFuZWwgYnVpbHQgb24gYHAtZGlhbG9nYCB3aXRoIGBwb3NpdGlvbj1cInJpZ2h0XCJgLCBub3Qgb24gUHJpbWVORydzIHNpZGViYXIvZHJhd2VyOiBgcC1kaWFsb2dgIGV4aXN0cyB3aXRoXG4gICAgIHRoZSBzYW1lIG5hbWUgaW4gUHJpbWVORyAxNCAodGhlIGJhY2tvZmZpY2UpIGFuZCAyMCAoSGVsaXgpLCB3aGlsZSBgcHJpbWVuZy9zaWRlYmFyYCB3YXMgcmVtb3ZlZCBpbiAyMCBhbmRcbiAgICAgYHByaW1lbmcvZHJhd2VyYCBkb2VzIG5vdCBleGlzdCBpbiAxNC5cbiAgICAgYHBvc2l0aW9uPVwicmlnaHRcImAgaXMgaW50ZW50aW9uYWwgZm9yIGJvdGggZGlyZWN0aW9uczogdGhlIGZsZXggcG9zaXRpb25pbmcgaXMgd3JpdGluZy1kaXJlY3Rpb24gYXdhcmUsIHNvXG4gICAgIHVuZGVyIGRpcj1cInJ0bFwiIChBcmFiaWMpIGl0IG1pcnJvcnMgdG8gdGhlIHZpc3VhbCBsZWZ0IG9uIGl0cyBvd24uIFBhc3NpbmcgXCJsZWZ0XCIgZm9yIEFyYWJpYyBkb3VibGUtZmxpcHMgaXRcbiAgICAgYmFjayB0byB0aGUgcmlnaHQuIC0tPlxuPHAtZGlhbG9nXG4gIGNsYXNzPVwiYWxtYXRhcl9hc2lkZVwiXG4gIFtuZ0NsYXNzXT1cInsgJ2FsbWF0YXJfYXNpZGUtLXdoaXRlLWhlYWRlcic6IGlzV2hpdGVIZWFkZXIgfVwiXG4gIHBvc2l0aW9uPVwicmlnaHRcIlxuICBbdmlzaWJsZV09XCJzaG93QXNpZGVcIlxuICAodmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gIChvblNob3cpPVwib25EaWFsb2dTaG93KClcIlxuICAob25IaWRlKT1cIm9uQ2xvc2VNb2RhbCgpXCJcbiAgW21vZGFsXT1cIm1vZGFsXCJcbiAgW2Nsb3NhYmxlXT1cImNsb3NhYmxlICYmICFpc0luQXBwVmlld1wiXG4gIFtzaG93SGVhZGVyXT1cInNob3dIZWFkZXJcIlxuICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgW3Jlc2l6YWJsZV09XCJmYWxzZVwiXG4gIFtzdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB8fCAoaXNXaGl0ZUhlYWRlciA/ICc1ODBweCcgOiAnNDkwcHgnKSB9XCJcbiAgW3RyYW5zaXRpb25PcHRpb25zXT1cInRyYW5zaXRpb25PcHRpb25zXCJcbj5cbiAgQGlmIChzaG93SGVhZGVyKSB7XG4gICAgQGlmIChzaG93QmFja0J1dHRvbikge1xuICAgICAgPCEtLSBSZW5kZXJlZCBpbnRvIHRoZSBoZWFkZXIncyBsZWFkaW5nIGNvbnRlbnQsIGFsb25nc2lkZSAobm90IGluc3RlYWQgb2YpIHRoZSBkaWFsb2cncyBvd24gY2xvc2UgKFgpXG4gICAgICAgICAgIGJ1dHRvbiwgc28gYm90aCBhcmUgdmlzaWJsZSB0b2dldGhlciBhbmQgdGhlIFgga2VlcHMgaXRzIG5vcm1hbCBjbG9zZSBiZWhhdmlvciB1bnRvdWNoZWQuIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICA8IS0tIE9uZSBmbGV4IGdyb3VwLCBub3QgdHdvIHNlcGFyYXRlIGhlYWRlciBjaGlsZHJlbjogdGhlIGhlYWRlcidzIGBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5gXG4gICAgICAgICAgICAgd291bGQgb3RoZXJ3aXNlIHNwcmVhZCB0aGUgYXJyb3cgYW5kIHRoZSB0aXRsZSBhcGFydC4gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbG1hdGFyLWFzaWRlX19iYWNrLWhlYWRlclwiPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImFsbWF0YXItYXNpZGVfX2JhY2staWNvblwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiYmFja0ljb25DbGFzc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25CYWNrSWNvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbG1hdGFyLWFzaWRlX190aXRsZVwiPnt7IGFzaWRlVGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9IEBlbHNlIGlmIChoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWxtYXRhci1hc2lkZV9fdGl0bGVcIj57eyBhc2lkZVRpdGxlIH19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIH1cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3AtZGlhbG9nPlxuIl19
|
|
@@ -18,6 +18,7 @@ export class SbdBookingInputComponent {
|
|
|
18
18
|
this.lookup = output();
|
|
19
19
|
this.productOptions = [
|
|
20
20
|
{ label: '✈ Flight', value: 'flight' },
|
|
21
|
+
{ label: '🏨 Hotel', value: 'hotel' },
|
|
21
22
|
];
|
|
22
23
|
this.demoIds = [
|
|
23
24
|
{ label: 'Demo Flight: ALM-20481', value: 'ALM-20481' },
|
|
@@ -34,10 +35,10 @@ export class SbdBookingInputComponent {
|
|
|
34
35
|
this.lookup.emit();
|
|
35
36
|
}
|
|
36
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdBookingInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SbdBookingInputComponent, isStandalone: true, selector: "app-sbd-booking-input", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: false, transformFunction: null }, bookingId: { classPropertyName: "bookingId", publicName: "bookingId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { product: "productChange", bookingId: "bookingIdChange", lookup: "lookup" }, ngImport: i0, template: "<div class=\"sbd-booking-input\">\n <p-selectButton\n [(ngModel)]=\"product\"\n [options]=\"productOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n optionDisabled=\"disabled\">\n <ng-template pTemplate=\"item\" let-item>\n <span\n [pTooltip]=\"item.disabled ? 'Coming soon' : null\"\n tooltipPosition=\"bottom\"\n style=\"pointer-events: auto; display: inline-block;\">\n {{ item.label }}\n </span>\n </ng-template>\n </p-selectButton>\n <div class=\"sbd-booking-input__row\">\n <div class=\"sbd-booking-input__field-wrap\">\n <i class=\"pi pi-search sbd-booking-input__icon\"></i>\n <input pInputText class=\"sbd-booking-input__field\" placeholder=\"Enter Booking ID\"\n [(ngModel)]=\"bookingId\" (keydown)=\"onKeydown($event)\" autocomplete=\"off\" spellcheck=\"false\" />\n </div>\n <button pButton label=\"Lookup \u2192\" [disabled]=\"!bookingId().trim()\" (click)=\"lookup.emit()\" class=\"sbd-booking-input__btn\"></button>\n </div>\n</div>\n", styles: [".sbd-booking-input{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:20px;display:flex;flex-direction:column;gap:14px}.sbd-booking-input__row{display:flex;gap:10px;align-items:center}.sbd-booking-input__field-wrap{flex:1;position:relative;display:flex;align-items:center}.sbd-booking-input__icon{position:absolute;left:12px;color:#94a3b8;font-size:14px;pointer-events:none;z-index:1}.sbd-booking-input__field{width:100%!important;padding-left:36px!important;height:44px;font-size:14px!important}.sbd-booking-input__btn{height:44px;white-space:nowrap}.sbd-booking-input__demos{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sbd-booking-input__demos-label{font-size:11.5px;color:#94a3b8}.sbd-booking-input__chip{padding:4px 10px;border-radius:20px;border:1px solid #e2e8f0;background:#f8fafc;color:#1e2e4a;font-size:11.5px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}.sbd-booking-input__chip:hover{border-color
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SbdBookingInputComponent, isStandalone: true, selector: "app-sbd-booking-input", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: false, transformFunction: null }, bookingId: { classPropertyName: "bookingId", publicName: "bookingId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { product: "productChange", bookingId: "bookingIdChange", lookup: "lookup" }, ngImport: i0, template: "<div class=\"sbd-booking-input\">\n <p-selectButton\n [(ngModel)]=\"product\"\n [options]=\"productOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n optionDisabled=\"disabled\">\n <ng-template pTemplate=\"item\" let-item>\n <span\n [pTooltip]=\"item.disabled ? 'Coming soon' : null\"\n tooltipPosition=\"bottom\"\n style=\"pointer-events: auto; display: inline-block;\">\n {{ item.label }}\n </span>\n </ng-template>\n </p-selectButton>\n <div class=\"sbd-booking-input__row\">\n <div class=\"sbd-booking-input__field-wrap\">\n <i class=\"pi pi-search sbd-booking-input__icon\"></i>\n <input pInputText class=\"sbd-booking-input__field\" placeholder=\"Enter Booking ID\"\n [(ngModel)]=\"bookingId\" (keydown)=\"onKeydown($event)\" autocomplete=\"off\" spellcheck=\"false\" />\n </div>\n <button pButton label=\"Lookup \u2192\" [disabled]=\"!bookingId().trim()\" (click)=\"lookup.emit()\" class=\"sbd-booking-input__btn\"></button>\n </div>\n</div>\n", styles: [".sbd-booking-input{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:20px;display:flex;flex-direction:column;gap:14px}.sbd-booking-input__row{display:flex;gap:10px;align-items:center}.sbd-booking-input__field-wrap{flex:1;position:relative;display:flex;align-items:center}.sbd-booking-input__icon{position:absolute;left:12px;color:#94a3b8;font-size:14px;pointer-events:none;z-index:1}.sbd-booking-input__field{width:100%!important;padding-left:36px!important;height:44px;font-size:14px!important}.sbd-booking-input__field:enabled:focus{border-color:var(--sbd-primary, #007ad9);box-shadow:0 0 0 .2em color-mix(in srgb,var(--sbd-primary, #007ad9) 45%,#fff)}.sbd-booking-input__btn{height:44px;white-space:nowrap;background:var(--sbd-primary, #007ad9);border-color:var(--sbd-primary, #007ad9)}.sbd-booking-input__btn:enabled:hover{background:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000);border-color:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000)}.sbd-booking-input__btn:enabled:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--sbd-primary, #007ad9) 45%,#fff)}.sbd-booking-input__demos{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sbd-booking-input__demos-label{font-size:11.5px;color:#94a3b8}.sbd-booking-input__chip{padding:4px 10px;border-radius:20px;border:1px solid #e2e8f0;background:#f8fafc;color:#1e2e4a;font-size:11.5px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}.sbd-booking-input__chip:hover{border-color:var(--sbd-primary, #3b82f6);background:var(--sbd-primary-soft, #eff6ff);color:var(--sbd-primary, #3b82f6)}:host ::ng-deep .p-selectbutton .p-button.p-highlight{background:var(--sbd-primary, #007ad9);border-color:var(--sbd-primary, #007ad9)}:host ::ng-deep .p-selectbutton .p-button.p-highlight:hover{background:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000);border-color:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000)}:host ::ng-deep .p-selectbutton .p-button.p-highlight:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--sbd-primary, #007ad9) 45%,#fff)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SelectButtonModule }, { kind: "component", type: i2.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "tabindex", "multiple", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey"], outputs: ["onOptionClick", "onChange"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i3.InputText, selector: "[pInputText]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
|
|
38
39
|
}
|
|
39
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbdBookingInputComponent, decorators: [{
|
|
40
41
|
type: Component,
|
|
41
|
-
args: [{ selector: 'app-sbd-booking-input', standalone: true, imports: [FormsModule, SelectButtonModule, InputTextModule, ButtonModule, TooltipModule], template: "<div class=\"sbd-booking-input\">\n <p-selectButton\n [(ngModel)]=\"product\"\n [options]=\"productOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n optionDisabled=\"disabled\">\n <ng-template pTemplate=\"item\" let-item>\n <span\n [pTooltip]=\"item.disabled ? 'Coming soon' : null\"\n tooltipPosition=\"bottom\"\n style=\"pointer-events: auto; display: inline-block;\">\n {{ item.label }}\n </span>\n </ng-template>\n </p-selectButton>\n <div class=\"sbd-booking-input__row\">\n <div class=\"sbd-booking-input__field-wrap\">\n <i class=\"pi pi-search sbd-booking-input__icon\"></i>\n <input pInputText class=\"sbd-booking-input__field\" placeholder=\"Enter Booking ID\"\n [(ngModel)]=\"bookingId\" (keydown)=\"onKeydown($event)\" autocomplete=\"off\" spellcheck=\"false\" />\n </div>\n <button pButton label=\"Lookup \u2192\" [disabled]=\"!bookingId().trim()\" (click)=\"lookup.emit()\" class=\"sbd-booking-input__btn\"></button>\n </div>\n</div>\n", styles: [".sbd-booking-input{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:20px;display:flex;flex-direction:column;gap:14px}.sbd-booking-input__row{display:flex;gap:10px;align-items:center}.sbd-booking-input__field-wrap{flex:1;position:relative;display:flex;align-items:center}.sbd-booking-input__icon{position:absolute;left:12px;color:#94a3b8;font-size:14px;pointer-events:none;z-index:1}.sbd-booking-input__field{width:100%!important;padding-left:36px!important;height:44px;font-size:14px!important}.sbd-booking-input__btn{height:44px;white-space:nowrap}.sbd-booking-input__demos{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sbd-booking-input__demos-label{font-size:11.5px;color:#94a3b8}.sbd-booking-input__chip{padding:4px 10px;border-radius:20px;border:1px solid #e2e8f0;background:#f8fafc;color:#1e2e4a;font-size:11.5px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}.sbd-booking-input__chip:hover{border-color
|
|
42
|
+
args: [{ selector: 'app-sbd-booking-input', standalone: true, imports: [FormsModule, SelectButtonModule, InputTextModule, ButtonModule, TooltipModule], template: "<div class=\"sbd-booking-input\">\n <p-selectButton\n [(ngModel)]=\"product\"\n [options]=\"productOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n optionDisabled=\"disabled\">\n <ng-template pTemplate=\"item\" let-item>\n <span\n [pTooltip]=\"item.disabled ? 'Coming soon' : null\"\n tooltipPosition=\"bottom\"\n style=\"pointer-events: auto; display: inline-block;\">\n {{ item.label }}\n </span>\n </ng-template>\n </p-selectButton>\n <div class=\"sbd-booking-input__row\">\n <div class=\"sbd-booking-input__field-wrap\">\n <i class=\"pi pi-search sbd-booking-input__icon\"></i>\n <input pInputText class=\"sbd-booking-input__field\" placeholder=\"Enter Booking ID\"\n [(ngModel)]=\"bookingId\" (keydown)=\"onKeydown($event)\" autocomplete=\"off\" spellcheck=\"false\" />\n </div>\n <button pButton label=\"Lookup \u2192\" [disabled]=\"!bookingId().trim()\" (click)=\"lookup.emit()\" class=\"sbd-booking-input__btn\"></button>\n </div>\n</div>\n", styles: [".sbd-booking-input{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:20px;display:flex;flex-direction:column;gap:14px}.sbd-booking-input__row{display:flex;gap:10px;align-items:center}.sbd-booking-input__field-wrap{flex:1;position:relative;display:flex;align-items:center}.sbd-booking-input__icon{position:absolute;left:12px;color:#94a3b8;font-size:14px;pointer-events:none;z-index:1}.sbd-booking-input__field{width:100%!important;padding-left:36px!important;height:44px;font-size:14px!important}.sbd-booking-input__field:enabled:focus{border-color:var(--sbd-primary, #007ad9);box-shadow:0 0 0 .2em color-mix(in srgb,var(--sbd-primary, #007ad9) 45%,#fff)}.sbd-booking-input__btn{height:44px;white-space:nowrap;background:var(--sbd-primary, #007ad9);border-color:var(--sbd-primary, #007ad9)}.sbd-booking-input__btn:enabled:hover{background:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000);border-color:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000)}.sbd-booking-input__btn:enabled:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--sbd-primary, #007ad9) 45%,#fff)}.sbd-booking-input__demos{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sbd-booking-input__demos-label{font-size:11.5px;color:#94a3b8}.sbd-booking-input__chip{padding:4px 10px;border-radius:20px;border:1px solid #e2e8f0;background:#f8fafc;color:#1e2e4a;font-size:11.5px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}.sbd-booking-input__chip:hover{border-color:var(--sbd-primary, #3b82f6);background:var(--sbd-primary-soft, #eff6ff);color:var(--sbd-primary, #3b82f6)}:host ::ng-deep .p-selectbutton .p-button.p-highlight{background:var(--sbd-primary, #007ad9);border-color:var(--sbd-primary, #007ad9)}:host ::ng-deep .p-selectbutton .p-button.p-highlight:hover{background:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000);border-color:color-mix(in srgb,var(--sbd-primary, #007ad9) 88%,#000)}:host ::ng-deep .p-selectbutton .p-button.p-highlight:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--sbd-primary, #007ad9) 45%,#fff)}\n"] }]
|
|
42
43
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1ib29raW5nLWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvYm9va2luZy1pbnB1dC9ib29raW5nLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWJvb2tpbmctZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9ib29raW5nLWlucHV0L2Jvb2tpbmctaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFZaEQsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFFLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsWUFBTyxHQUFHLEtBQUssQ0FBYyxRQUFRLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUVmLG1CQUFjLEdBQW9CO1lBQ3pDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQ3RDLENBQUM7UUFFTyxZQUFPLEdBQUc7WUFDakIsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtZQUN2RCxFQUFFLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFO1NBQzdELENBQUM7S0FXSDtJQVRDLFFBQVEsQ0FBQyxFQUFVO1FBQ2pCLE1BQU0sT0FBTyxHQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoRCxDQUFDOytHQXhCVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixvakJDakJyQywwaENBeUJBLGtsRURaWSxXQUFXLDhtQkFBRSxrQkFBa0IsNlNBQUUsZUFBZSxtR0FBRSxZQUFZLHNLQUFFLGFBQWE7OzRGQUk1RSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgbW9kZWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VsZWN0QnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zZWxlY3RidXR0b24nO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQgeyBQcm9kdWN0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ib29raW5nLnR5cGVzJztcblxuaW50ZXJmYWNlIFByb2R1Y3RPcHRpb24geyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogUHJvZHVjdFR5cGU7IGRpc2FibGVkPzogYm9vbGVhbjsgfVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2JkLWJvb2tpbmctaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFNlbGVjdEJ1dHRvbk1vZHVsZSwgSW5wdXRUZXh0TW9kdWxlLCBCdXR0b25Nb2R1bGUsIFRvb2x0aXBNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYm9va2luZy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ib29raW5nLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU2JkQm9va2luZ0lucHV0Q29tcG9uZW50IHtcbiAgbG9hZGluZyA9IGlucHV0KGZhbHNlKTtcbiAgcHJvZHVjdCA9IG1vZGVsPFByb2R1Y3RUeXBlPignZmxpZ2h0Jyk7XG4gIGJvb2tpbmdJZCA9IG1vZGVsKCcnKTtcbiAgbG9va3VwID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgcHJvZHVjdE9wdGlvbnM6IFByb2R1Y3RPcHRpb25bXSA9IFtcbiAgICB7IGxhYmVsOiAn4pyIIEZsaWdodCcsIHZhbHVlOiAnZmxpZ2h0JyB9LFxuICAgIHsgbGFiZWw6ICfwn4+oIEhvdGVsJywgdmFsdWU6ICdob3RlbCcgfSxcbiAgXTtcblxuICByZWFkb25seSBkZW1vSWRzID0gW1xuICAgIHsgbGFiZWw6ICdEZW1vIEZsaWdodDogQUxNLTIwNDgxJywgdmFsdWU6ICdBTE0tMjA0ODEnIH0sXG4gICAgeyBsYWJlbDogJ0RlbW8gSG90ZWw6IEFMTS1IVEwtOTkyMScsIHZhbHVlOiAnQUxNLUhUTC05OTIxJyB9LFxuICBdO1xuXG4gIGZpbGxEZW1vKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9kdWN0OiBQcm9kdWN0VHlwZSA9IGlkLmluY2x1ZGVzKCdIVEwnKSA/ICdob3RlbCcgOiAnZmxpZ2h0JztcbiAgICB0aGlzLnByb2R1Y3Quc2V0KHByb2R1Y3QpO1xuICAgIHRoaXMuYm9va2luZ0lkLnNldChpZCk7XG4gIH1cblxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB0aGlzLmxvb2t1cC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzYmQtYm9va2luZy1pbnB1dFwiPlxuICA8cC1zZWxlY3RCdXR0b25cbiAgICBbKG5nTW9kZWwpXT1cInByb2R1Y3RcIlxuICAgIFtvcHRpb25zXT1cInByb2R1Y3RPcHRpb25zXCJcbiAgICBvcHRpb25MYWJlbD1cImxhYmVsXCJcbiAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCJcbiAgICBvcHRpb25EaXNhYmxlZD1cImRpc2FibGVkXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtaXRlbT5cbiAgICAgIDxzcGFuXG4gICAgICAgIFtwVG9vbHRpcF09XCJpdGVtLmRpc2FibGVkID8gJ0NvbWluZyBzb29uJyA6IG51bGxcIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBhdXRvOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCI+XG4gICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3Atc2VsZWN0QnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwic2JkLWJvb2tpbmctaW5wdXRfX3Jvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzYmQtYm9va2luZy1pbnB1dF9fZmllbGQtd3JhcFwiPlxuICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zZWFyY2ggc2JkLWJvb2tpbmctaW5wdXRfX2ljb25cIj48L2k+XG4gICAgICA8aW5wdXQgcElucHV0VGV4dCBjbGFzcz1cInNiZC1ib29raW5nLWlucHV0X19maWVsZFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgQm9va2luZyBJRFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiYm9va2luZ0lkXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBzcGVsbGNoZWNrPVwiZmFsc2VcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gcEJ1dHRvbiBsYWJlbD1cIkxvb2t1cCDihpJcIiBbZGlzYWJsZWRdPVwiIWJvb2tpbmdJZCgpLnRyaW0oKVwiIChjbGljayk9XCJsb29rdXAuZW1pdCgpXCIgY2xhc3M9XCJzYmQtYm9va2luZy1pbnB1dF9fYnRuXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|