@almatar/smart-booking-dashboard 0.0.1 → 0.0.2-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +123 -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 +448 -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/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/config/hotel-actions.config.mjs +21 -1
- package/esm2022/lib/models/booking.types.mjs +73 -2
- package/esm2022/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.mjs +25 -7
- package/esm2022/lib/services/booking.service.mjs +6 -2
- 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/fesm2022/almatar-smart-booking-dashboard.mjs +3278 -180
- package/fesm2022/almatar-smart-booking-dashboard.mjs.map +1 -1
- package/lib/components/almatar-aside/aside-back-button.service.d.ts +11 -0
- package/lib/components/almatar-aside/aside.component.d.ts +47 -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 +82 -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/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/models/booking.types.d.ts +28 -0
- package/lib/pages/smart-booking-dashboard/smart-booking-dashboard.component.d.ts +1 -0
- 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/package.json +2 -19
- 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,123 @@
|
|
|
1
|
+
import { Component, EventEmitter, Inject, Input, Optional, Output, } from '@angular/core';
|
|
2
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
3
|
+
import { SidebarModule } from 'primeng/sidebar';
|
|
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/sidebar";
|
|
11
|
+
export class AsideComponent {
|
|
12
|
+
get backIconClass() {
|
|
13
|
+
// Conventional back-arrow direction: points left in LTR, right in RTL.
|
|
14
|
+
return this.selectedLang === 'ar'
|
|
15
|
+
? 'pi pi-arrow-right'
|
|
16
|
+
: 'pi pi-arrow-left';
|
|
17
|
+
}
|
|
18
|
+
get isWhiteHeader() {
|
|
19
|
+
return this.whiteHeader && environments.brandName === brandEnum.almatar;
|
|
20
|
+
}
|
|
21
|
+
constructor(shared, document, backButtonService) {
|
|
22
|
+
this.shared = shared;
|
|
23
|
+
this.document = document;
|
|
24
|
+
this.backButtonService = backButtonService;
|
|
25
|
+
this.asideTitle = '';
|
|
26
|
+
this.showHeader = true;
|
|
27
|
+
/**
|
|
28
|
+
* Opt-in white header (instead of the default purple/lavender) — only
|
|
29
|
+
* takes effect on the Almatar brand, so other tenants/brands sharing this
|
|
30
|
+
* component keep their existing header regardless of this input.
|
|
31
|
+
*/
|
|
32
|
+
this.whiteHeader = false;
|
|
33
|
+
this.showAside = false;
|
|
34
|
+
/** Opt-in desktop width override (e.g. `'600px'`) — defaults to 490px, or 580px with the white header. */
|
|
35
|
+
this.width = '';
|
|
36
|
+
this.modal = false;
|
|
37
|
+
this.closable = true;
|
|
38
|
+
this.transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
|
|
39
|
+
/**
|
|
40
|
+
* When true, the dialog's own close (the X, Esc) does NOT hide the aside; it only emits
|
|
41
|
+
* {@link closeRequested}, so the host can ask for confirmation and close the aside itself.
|
|
42
|
+
*/
|
|
43
|
+
this.interceptClose = false;
|
|
44
|
+
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
45
|
+
this.onClose = new EventEmitter();
|
|
46
|
+
this.closeRequested = new EventEmitter();
|
|
47
|
+
this.isInAppView = this.shared.getInAppView();
|
|
48
|
+
this.showBackButton = false;
|
|
49
|
+
}
|
|
50
|
+
ngOnInit() {
|
|
51
|
+
this.selectedLang = this.shared.getAppLanguage();
|
|
52
|
+
if (this.backButtonService) {
|
|
53
|
+
this.backButtonService.showBackButton$.subscribe((show) => {
|
|
54
|
+
this.showBackButton = show;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Replaces the two-way `[(visible)]` so a host can veto the dialog's own close. */
|
|
59
|
+
onVisibleChange(visible) {
|
|
60
|
+
if (!visible && this.interceptClose) {
|
|
61
|
+
this.closeRequested.emit();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.showAside = visible;
|
|
65
|
+
}
|
|
66
|
+
onCloseModal() {
|
|
67
|
+
this.onClose.emit();
|
|
68
|
+
this.document.body.style.overflow = '';
|
|
69
|
+
}
|
|
70
|
+
// The back arrow lives in the header's leading content (via the
|
|
71
|
+
// `pTemplate="header"` slot), entirely separate from PrimeNG's own close
|
|
72
|
+
// button — so it never touches the dialog's `visible` state, and the X
|
|
73
|
+
// close button keeps working (and stays visible) exactly as before.
|
|
74
|
+
onBackIconClick(event) {
|
|
75
|
+
event.stopPropagation();
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
this.backButtonService?.emitBack();
|
|
78
|
+
}
|
|
79
|
+
onDialogShow() {
|
|
80
|
+
this.document.body.style.overflow = 'hidden';
|
|
81
|
+
}
|
|
82
|
+
ngOnDestroy() {
|
|
83
|
+
this.document.body.style.overflow = '';
|
|
84
|
+
}
|
|
85
|
+
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 }); }
|
|
86
|
+
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", closeIconTemplate: "closeIconTemplate", interceptClose: "interceptClose" }, outputs: { onClose: "onClose", closeRequested: "closeRequested" }, ngImport: i0, template: "<!-- `position=\"right\"` is intentional for both directions: PrimeNG's flex\n positioning is writing-direction aware, so under dir=\"rtl\" (Arabic) it\n mirrors to the visual left on its own. Passing \"left\" for Arabic\n double-flips it back to the right. -->\n<p-sidebar\n class=\"almatar_aside\"\n [ngClass]=\"{ 'almatar_aside--white-header': isWhiteHeader }\"\n (onShow)=\"onDialogShow()\"\n [showCloseIcon]=\"closable && !isInAppView\"\n (onHide)=\"onCloseModal()\"\n [visible]=\"showAside\"\n (visibleChange)=\"onVisibleChange($event)\"\n position=\"right\"\n [style]=\"{ width: width || (isWhiteHeader ? '580px' : '490px') }\"\n [transitionOptions]=\"transitionOptions\"\n [modal]=\"modal\"\n>\n @if (showHeader) {\n @if (showBackButton) {\n <!-- Rendered into the header's leading content, alongside (not instead\n of) PrimeNG's own close (X) button \u2014 so both are visible together,\n and the X keeps its normal close behavior untouched. -->\n <ng-template pTemplate=\"header\">\n <!-- One flex group, not two separate header children \u2014 otherwise\n `.p-sidebar-header`'s `justify-content: space-between` spreads the\n arrow and title apart instead of keeping them side by side. -->\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=\"p-sidebar-header-content\">{{ 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=\"p-sidebar-header-content\">{{ asideTitle }}</span>\n </ng-template>\n }\n }\n\n @if (closeIconTemplate) {\n <!-- Custom close icon template -->\n <ng-template pTemplate=\"closeicon\">\n <ng-container *ngTemplateOutlet=\"closeIconTemplate\"></ng-container>\n </ng-template>\n } @else if (isWhiteHeader) {\n <ng-template pTemplate=\"closeicon\">\n <img src=\"/assets/icons/close-dark.svg\" alt=\"\" width=\"24\" height=\"24\" />\n </ng-template>\n }\n\n <ng-content></ng-content>\n</p-sidebar>\n", styles: [".almatar_aside ::ng-deep .p-sidebar{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-sidebar{width:100vw!important;margin:auto!important}}.almatar_aside ::ng-deep .p-sidebar-content{height:100vh}.almatar_aside ::ng-deep .p-sidebar-mask{background-color:#0000008a}.almatar_aside ::ng-deep .p-sidebar-header{background:var(--almatar-secondary-surface);border:none}.almatar_aside ::ng-deep .p-sidebar-header .p-sidebar-header-content,.almatar_aside ::ng-deep .p-sidebar-header .p-sidebar-close-icon{color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-sidebar-header .p-sidebar-header-content{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-sidebar-header .almatar-aside__back-header{display:flex;align-items:center;gap:12px}.almatar_aside ::ng-deep .p-sidebar-header .almatar-aside__back-icon{cursor:pointer;font-size:1.25rem;color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-sidebar-close-icon{font-size:1.5rem!important}.almatar_aside ::ng-deep .p-sidebar-content{background-color:var(--almatar-neutral-surface-card);padding:0}.almatar_aside--white-header ::ng-deep .p-sidebar-header{background:var(--almatar-neutral-surface-card);border-bottom:1px solid var(--almatar-primary-border-disabled)}.almatar_aside--white-header ::ng-deep .p-sidebar-header .p-sidebar-close-icon{color:var(--almatar-neutral-icon-primary-static)}.almatar_aside--white-header ::ng-deep .p-sidebar-header .p-sidebar-header-content{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: SidebarModule }, { kind: "component", type: i4.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }] }); }
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsideComponent, decorators: [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{ selector: 'almatar-aside', standalone: true, imports: [CommonModule, SidebarModule], template: "<!-- `position=\"right\"` is intentional for both directions: PrimeNG's flex\n positioning is writing-direction aware, so under dir=\"rtl\" (Arabic) it\n mirrors to the visual left on its own. Passing \"left\" for Arabic\n double-flips it back to the right. -->\n<p-sidebar\n class=\"almatar_aside\"\n [ngClass]=\"{ 'almatar_aside--white-header': isWhiteHeader }\"\n (onShow)=\"onDialogShow()\"\n [showCloseIcon]=\"closable && !isInAppView\"\n (onHide)=\"onCloseModal()\"\n [visible]=\"showAside\"\n (visibleChange)=\"onVisibleChange($event)\"\n position=\"right\"\n [style]=\"{ width: width || (isWhiteHeader ? '580px' : '490px') }\"\n [transitionOptions]=\"transitionOptions\"\n [modal]=\"modal\"\n>\n @if (showHeader) {\n @if (showBackButton) {\n <!-- Rendered into the header's leading content, alongside (not instead\n of) PrimeNG's own close (X) button \u2014 so both are visible together,\n and the X keeps its normal close behavior untouched. -->\n <ng-template pTemplate=\"header\">\n <!-- One flex group, not two separate header children \u2014 otherwise\n `.p-sidebar-header`'s `justify-content: space-between` spreads the\n arrow and title apart instead of keeping them side by side. -->\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=\"p-sidebar-header-content\">{{ 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=\"p-sidebar-header-content\">{{ asideTitle }}</span>\n </ng-template>\n }\n }\n\n @if (closeIconTemplate) {\n <!-- Custom close icon template -->\n <ng-template pTemplate=\"closeicon\">\n <ng-container *ngTemplateOutlet=\"closeIconTemplate\"></ng-container>\n </ng-template>\n } @else if (isWhiteHeader) {\n <ng-template pTemplate=\"closeicon\">\n <img src=\"/assets/icons/close-dark.svg\" alt=\"\" width=\"24\" height=\"24\" />\n </ng-template>\n }\n\n <ng-content></ng-content>\n</p-sidebar>\n", styles: [".almatar_aside ::ng-deep .p-sidebar{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-sidebar{width:100vw!important;margin:auto!important}}.almatar_aside ::ng-deep .p-sidebar-content{height:100vh}.almatar_aside ::ng-deep .p-sidebar-mask{background-color:#0000008a}.almatar_aside ::ng-deep .p-sidebar-header{background:var(--almatar-secondary-surface);border:none}.almatar_aside ::ng-deep .p-sidebar-header .p-sidebar-header-content,.almatar_aside ::ng-deep .p-sidebar-header .p-sidebar-close-icon{color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-sidebar-header .p-sidebar-header-content{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-sidebar-header .almatar-aside__back-header{display:flex;align-items:center;gap:12px}.almatar_aside ::ng-deep .p-sidebar-header .almatar-aside__back-icon{cursor:pointer;font-size:1.25rem;color:var(--almatar-neutral-icon-secondary-static)}.almatar_aside ::ng-deep .p-sidebar-close-icon{font-size:1.5rem!important}.almatar_aside ::ng-deep .p-sidebar-content{background-color:var(--almatar-neutral-surface-card);padding:0}.almatar_aside--white-header ::ng-deep .p-sidebar-header{background:var(--almatar-neutral-surface-card);border-bottom:1px solid var(--almatar-primary-border-disabled)}.almatar_aside--white-header ::ng-deep .p-sidebar-header .p-sidebar-close-icon{color:var(--almatar-neutral-icon-primary-static)}.almatar_aside--white-header ::ng-deep .p-sidebar-header .p-sidebar-header-content{color:var(--almatar-neutral-text-primary-static);font-weight:var(--almatar-font-weight-regular)}\n"] }]
|
|
91
|
+
}], ctorParameters: () => [{ type: i1.SharedService }, { type: Document, decorators: [{
|
|
92
|
+
type: Inject,
|
|
93
|
+
args: [DOCUMENT]
|
|
94
|
+
}] }, { type: i2.AsideBackButtonService, decorators: [{
|
|
95
|
+
type: Optional
|
|
96
|
+
}] }], propDecorators: { asideTitle: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], showHeader: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], headerTemplate: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], whiteHeader: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], showAside: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], width: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], modal: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], closable: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], transitionOptions: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], closeIconTemplate: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], interceptClose: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], onClose: [{
|
|
119
|
+
type: Output
|
|
120
|
+
}], closeRequested: [{
|
|
121
|
+
type: Output
|
|
122
|
+
}] } });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYm9va2luZy1kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL2FsbWF0YXItYXNpZGUvYXNpZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYm9va2luZy1kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL2FsbWF0YXItYXNpZGUvYXNpZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7OztBQVNoRSxNQUFNLE9BQU8sY0FBYztJQTZCekIsSUFBSSxhQUFhO1FBQ2YsdUVBQXVFO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJO1lBQy9CLENBQUMsQ0FBQyxtQkFBbUI7WUFDckIsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQzFFLENBQUM7SUFFRCxZQUNVLE1BQXFCLEVBQ0gsUUFBa0IsRUFDeEIsaUJBQXlDO1FBRnJELFdBQU0sR0FBTixNQUFNLENBQWU7UUFDSCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBd0I7UUExQ3RELGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUUzQjs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQiwwR0FBMEc7UUFDakcsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLGtDQUFrQyxDQUFDO1FBRWhFOzs7V0FHRztRQUNNLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLCtEQUErRDtRQUNyRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQWlCcEIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsb0ZBQW9GO0lBQ3BGLGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUseUVBQXlFO0lBQ3pFLHVFQUF1RTtJQUN2RSxvRUFBb0U7SUFDcEUsZUFBZSxDQUFDLEtBQVk7UUFDMUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7K0dBckZVLGNBQWMsK0NBMENmLFFBQVE7bUdBMUNQLGNBQWMsMGNDekIzQix5MkVBMkRBLDYwRER0Q1ksWUFBWSxtU0FBRSxhQUFhOzs0RkFJMUIsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQzs7MEJBOENuQyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7eUNBMUNGLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaWRlYmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zaWRlYmFyJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvc2hhcmVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXNpZGVCYWNrQnV0dG9uU2VydmljZSB9IGZyb20gJy4vYXNpZGUtYmFjay1idXR0b24uc2VydmljZSc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IGJyYW5kRW51bSB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9icmFuZC1lbnVtcy5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWxtYXRhci1hc2lkZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNpZGViYXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNpZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hc2lkZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBc2lkZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgYXNpZGVUaXRsZSA9ICcnO1xuICBASW5wdXQoKSBzaG93SGVhZGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgaGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogT3B0LWluIHdoaXRlIGhlYWRlciAoaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwdXJwbGUvbGF2ZW5kZXIpIOKAlCBvbmx5XG4gICAqIHRha2VzIGVmZmVjdCBvbiB0aGUgQWxtYXRhciBicmFuZCwgc28gb3RoZXIgdGVuYW50cy9icmFuZHMgc2hhcmluZyB0aGlzXG4gICAqIGNvbXBvbmVudCBrZWVwIHRoZWlyIGV4aXN0aW5nIGhlYWRlciByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSB3aGl0ZUhlYWRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93QXNpZGUgPSBmYWxzZTtcbiAgLyoqIE9wdC1pbiBkZXNrdG9wIHdpZHRoIG92ZXJyaWRlIChlLmcuIGAnNjAwcHgnYCkg4oCUIGRlZmF1bHRzIHRvIDQ5MHB4LCBvciA1ODBweCB3aXRoIHRoZSB3aGl0ZSBoZWFkZXIuICovXG4gIEBJbnB1dCgpIHdpZHRoID0gJyc7XG4gIEBJbnB1dCgpIG1vZGFsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsb3NhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgdHJhbnNpdGlvbk9wdGlvbnMgPSAnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuICBASW5wdXQoKSBjbG9zZUljb25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHRoZSBkaWFsb2cncyBvd24gY2xvc2UgKHRoZSBYLCBFc2MpIGRvZXMgTk9UIGhpZGUgdGhlIGFzaWRlOyBpdCBvbmx5IGVtaXRzXG4gICAqIHtAbGluayBjbG9zZVJlcXVlc3RlZH0sIHNvIHRoZSBob3N0IGNhbiBhc2sgZm9yIGNvbmZpcm1hdGlvbiBhbmQgY2xvc2UgdGhlIGFzaWRlIGl0c2VsZi5cbiAgICovXG4gIEBJbnB1dCgpIGludGVyY2VwdENsb3NlID0gZmFsc2U7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNsb3NlUmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBpc0luQXBwVmlldyA9IHRoaXMuc2hhcmVkLmdldEluQXBwVmlldygpO1xuICBzZWxlY3RlZExhbmchOiBzdHJpbmc7XG4gIHNob3dCYWNrQnV0dG9uID0gZmFsc2U7XG5cbiAgZ2V0IGJhY2tJY29uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAvLyBDb252ZW50aW9uYWwgYmFjay1hcnJvdyBkaXJlY3Rpb246IHBvaW50cyBsZWZ0IGluIExUUiwgcmlnaHQgaW4gUlRMLlxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZyA9PT0gJ2FyJ1xuICAgICAgPyAncGkgcGktYXJyb3ctcmlnaHQnXG4gICAgICA6ICdwaSBwaS1hcnJvdy1sZWZ0JztcbiAgfVxuXG4gIGdldCBpc1doaXRlSGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndoaXRlSGVhZGVyICYmIGVudmlyb25tZW50cy5icmFuZE5hbWUgPT09IGJyYW5kRW51bS5hbG1hdGFyO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzaGFyZWQ6IFNoYXJlZFNlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBiYWNrQnV0dG9uU2VydmljZTogQXNpZGVCYWNrQnV0dG9uU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5nID0gdGhpcy5zaGFyZWQuZ2V0QXBwTGFuZ3VhZ2UoKTtcbiAgICBpZiAodGhpcy5iYWNrQnV0dG9uU2VydmljZSkge1xuICAgICAgdGhpcy5iYWNrQnV0dG9uU2VydmljZS5zaG93QmFja0J1dHRvbiQuc3Vic2NyaWJlKChzaG93KSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0JhY2tCdXR0b24gPSBzaG93O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlcGxhY2VzIHRoZSB0d28td2F5IGBbKHZpc2libGUpXWAgc28gYSBob3N0IGNhbiB2ZXRvIHRoZSBkaWFsb2cncyBvd24gY2xvc2UuICovXG4gIG9uVmlzaWJsZUNoYW5nZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlICYmIHRoaXMuaW50ZXJjZXB0Q2xvc2UpIHtcbiAgICAgIHRoaXMuY2xvc2VSZXF1ZXN0ZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNob3dBc2lkZSA9IHZpc2libGU7XG4gIH1cblxuICBvbkNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcbiAgfVxuXG4gIC8vIFRoZSBiYWNrIGFycm93IGxpdmVzIGluIHRoZSBoZWFkZXIncyBsZWFkaW5nIGNvbnRlbnQgKHZpYSB0aGVcbiAgLy8gYHBUZW1wbGF0ZT1cImhlYWRlclwiYCBzbG90KSwgZW50aXJlbHkgc2VwYXJhdGUgZnJvbSBQcmltZU5HJ3Mgb3duIGNsb3NlXG4gIC8vIGJ1dHRvbiDigJQgc28gaXQgbmV2ZXIgdG91Y2hlcyB0aGUgZGlhbG9nJ3MgYHZpc2libGVgIHN0YXRlLCBhbmQgdGhlIFhcbiAgLy8gY2xvc2UgYnV0dG9uIGtlZXBzIHdvcmtpbmcgKGFuZCBzdGF5cyB2aXNpYmxlKSBleGFjdGx5IGFzIGJlZm9yZS5cbiAgb25CYWNrSWNvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5iYWNrQnV0dG9uU2VydmljZT8uZW1pdEJhY2soKTtcbiAgfVxuXG4gIG9uRGlhbG9nU2hvdygpIHtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xuICB9XG59XG4iLCI8IS0tIGBwb3NpdGlvbj1cInJpZ2h0XCJgIGlzIGludGVudGlvbmFsIGZvciBib3RoIGRpcmVjdGlvbnM6IFByaW1lTkcncyBmbGV4XG4gICAgIHBvc2l0aW9uaW5nIGlzIHdyaXRpbmctZGlyZWN0aW9uIGF3YXJlLCBzbyB1bmRlciBkaXI9XCJydGxcIiAoQXJhYmljKSBpdFxuICAgICBtaXJyb3JzIHRvIHRoZSB2aXN1YWwgbGVmdCBvbiBpdHMgb3duLiBQYXNzaW5nIFwibGVmdFwiIGZvciBBcmFiaWNcbiAgICAgZG91YmxlLWZsaXBzIGl0IGJhY2sgdG8gdGhlIHJpZ2h0LiAtLT5cbjxwLXNpZGViYXJcbiAgY2xhc3M9XCJhbG1hdGFyX2FzaWRlXCJcbiAgW25nQ2xhc3NdPVwieyAnYWxtYXRhcl9hc2lkZS0td2hpdGUtaGVhZGVyJzogaXNXaGl0ZUhlYWRlciB9XCJcbiAgKG9uU2hvdyk9XCJvbkRpYWxvZ1Nob3coKVwiXG4gIFtzaG93Q2xvc2VJY29uXT1cImNsb3NhYmxlICYmICFpc0luQXBwVmlld1wiXG4gIChvbkhpZGUpPVwib25DbG9zZU1vZGFsKClcIlxuICBbdmlzaWJsZV09XCJzaG93QXNpZGVcIlxuICAodmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gIHBvc2l0aW9uPVwicmlnaHRcIlxuICBbc3R5bGVdPVwieyB3aWR0aDogd2lkdGggfHwgKGlzV2hpdGVIZWFkZXIgPyAnNTgwcHgnIDogJzQ5MHB4JykgfVwiXG4gIFt0cmFuc2l0aW9uT3B0aW9uc109XCJ0cmFuc2l0aW9uT3B0aW9uc1wiXG4gIFttb2RhbF09XCJtb2RhbFwiXG4+XG4gIEBpZiAoc2hvd0hlYWRlcikge1xuICAgIEBpZiAoc2hvd0JhY2tCdXR0b24pIHtcbiAgICAgIDwhLS0gUmVuZGVyZWQgaW50byB0aGUgaGVhZGVyJ3MgbGVhZGluZyBjb250ZW50LCBhbG9uZ3NpZGUgKG5vdCBpbnN0ZWFkXG4gICAgICAgICAgIG9mKSBQcmltZU5HJ3Mgb3duIGNsb3NlIChYKSBidXR0b24g4oCUIHNvIGJvdGggYXJlIHZpc2libGUgdG9nZXRoZXIsXG4gICAgICAgICAgIGFuZCB0aGUgWCBrZWVwcyBpdHMgbm9ybWFsIGNsb3NlIGJlaGF2aW9yIHVudG91Y2hlZC4gLS0+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgIDwhLS0gT25lIGZsZXggZ3JvdXAsIG5vdCB0d28gc2VwYXJhdGUgaGVhZGVyIGNoaWxkcmVuIOKAlCBvdGhlcndpc2VcbiAgICAgICAgICAgICBgLnAtc2lkZWJhci1oZWFkZXJgJ3MgYGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbmAgc3ByZWFkcyB0aGVcbiAgICAgICAgICAgICBhcnJvdyBhbmQgdGl0bGUgYXBhcnQgaW5zdGVhZCBvZiBrZWVwaW5nIHRoZW0gc2lkZSBieSBzaWRlLiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsbWF0YXItYXNpZGVfX2JhY2staGVhZGVyXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiYWxtYXRhci1hc2lkZV9fYmFjay1pY29uXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJiYWNrSWNvbkNsYXNzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJhY2tJY29uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtc2lkZWJhci1oZWFkZXItY29udGVudFwiPnt7IGFzaWRlVGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9IEBlbHNlIGlmIChoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicC1zaWRlYmFyLWhlYWRlci1jb250ZW50XCI+e3sgYXNpZGVUaXRsZSB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICB9XG5cbiAgQGlmIChjbG9zZUljb25UZW1wbGF0ZSkge1xuICAgIDwhLS0gQ3VzdG9tIGNsb3NlIGljb24gdGVtcGxhdGUgLS0+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNsb3NlaWNvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3NlSWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgfSBAZWxzZSBpZiAoaXNXaGl0ZUhlYWRlcikge1xuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjbG9zZWljb25cIj5cbiAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pY29ucy9jbG9zZS1kYXJrLnN2Z1wiIGFsdD1cIlwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgfVxuXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvcC1zaWRlYmFyPlxuIl19
|
|
@@ -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=
|