ctt-babylon 0.25.16 → 0.25.18

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.
@@ -0,0 +1,45 @@
1
+ import { Component, input, output, Inject, HostListener, signal, } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class BabylonBookingBannerComponent {
5
+ constructor(renderer, document) {
6
+ this.renderer = renderer;
7
+ this.document = document;
8
+ this.title = input('Early Booking 2027:');
9
+ this.description = input('-10% reservando antes del 31 de enero');
10
+ this.ctaLabel = input('Reservar');
11
+ this.ctaClick = output();
12
+ this.isSticky = signal(false);
13
+ this.bannerHeight = '0px';
14
+ }
15
+ ngOnInit() {
16
+ this.renderer.addClass(this.document.body, 'has-promo-banner');
17
+ }
18
+ ngOnDestroy() {
19
+ this.renderer.removeClass(this.document.body, 'has-promo-banner');
20
+ }
21
+ onWindowScroll() {
22
+ if (window.scrollY > 50) {
23
+ this.isSticky.set(true);
24
+ }
25
+ else {
26
+ this.isSticky.set(false);
27
+ }
28
+ }
29
+ onReserve() {
30
+ this.ctaClick.emit();
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonBookingBannerComponent, deps: [{ token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BabylonBookingBannerComponent, isStandalone: true, selector: "lib-babylon-booking-banner", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, ctaLabel: { classPropertyName: "ctaLabel", publicName: "ctaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ctaClick: "ctaClick" }, host: { listeners: { "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<aside\n class=\"promo-banner\"\n [class.promo-banner--sticky]=\"isSticky()\"\n role=\"complementary\"\n aria-label=\"Promoci\u00F3n especial\"\n>\n <div class=\"promo-banner__content\">\n <div class=\"promo-banner__info\">\n <span class=\"promo-banner__icon\" aria-hidden=\"true\">\n <!-- SVG Reloj Outline -->\n <svg\n viewBox=\"0 0 24 24\"\n width=\"28\"\n height=\"28\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.8\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\"></circle>\n <polyline points=\"12 7 12 12 15 14\"></polyline>\n <path d=\"M5 3 L3 5\"></path>\n <path d=\"M19 3 L21 5\"></path>\n </svg>\n </span>\n <div class=\"promo-banner__text\">\n <strong class=\"promo-banner__title\">{{ title() }}</strong>\n <span class=\"promo-banner__desc\">{{ description() }}</span>\n </div>\n </div>\n\n <button type=\"button\" class=\"promo-banner__cta\" (click)=\"onReserve()\">\n {{ ctaLabel() }}\n </button>\n </div>\n</aside>\n", styles: [".promo-banner{width:100%;background:#fffffff2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 4px 12px #0000000f;padding:8px 16px;position:absolute;top:0;left:0;z-index:10;transition:transform .3s ease}.promo-banner--sticky{position:fixed;top:80px;z-index:9;animation:slideDown .3s ease-out forwards}@media (min-width: 1680px){.promo-banner--sticky{top:90px}}@media (max-width: 1024px){.promo-banner--sticky{top:85px}}@media (max-width: 768px){.promo-banner--sticky{top:75px}}@media (max-width: 540px){.promo-banner--sticky{top:60px}}.promo-banner__content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:24px}@media (max-width: 768px){.promo-banner__content{justify-content:space-between;gap:12px;padding:4px 0}}.promo-banner__info{display:inline-flex;align-items:center;gap:12px}.promo-banner__icon{display:flex;align-items:center;justify-content:center;color:var(--cl_title);flex-shrink:0}.promo-banner__icon svg{display:block}.promo-banner__text{font-size:14px;line-height:1.3;color:var(--cl_text);display:flex;align-items:center;gap:6px;flex-wrap:wrap}@media (max-width: 768px){.promo-banner__text{font-size:12px;flex-direction:column;align-items:flex-start;gap:1px}}.promo-banner__title{font-weight:700;color:var(--cl_title)}.promo-banner__desc{font-weight:400;color:var(--cl_text)}.promo-banner__cta{background-color:var(--cl_corp);color:var(--cl_text-light);border:none;border-radius:20px;padding:8px 24px;font-size:13px;font-weight:600;letter-spacing:.3px;cursor:pointer;transition:background-color .2s ease,transform .1s ease;white-space:nowrap;flex-shrink:0}.promo-banner__cta:hover{background-color:#1e3f63}.promo-banner__cta:active{transform:scale(.98)}@media (max-width: 768px){.promo-banner__cta{padding:6px 16px;font-size:12px}}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}\n"] }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonBookingBannerComponent, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: 'lib-babylon-booking-banner', standalone: true, imports: [], template: "<aside\n class=\"promo-banner\"\n [class.promo-banner--sticky]=\"isSticky()\"\n role=\"complementary\"\n aria-label=\"Promoci\u00F3n especial\"\n>\n <div class=\"promo-banner__content\">\n <div class=\"promo-banner__info\">\n <span class=\"promo-banner__icon\" aria-hidden=\"true\">\n <!-- SVG Reloj Outline -->\n <svg\n viewBox=\"0 0 24 24\"\n width=\"28\"\n height=\"28\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.8\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\"></circle>\n <polyline points=\"12 7 12 12 15 14\"></polyline>\n <path d=\"M5 3 L3 5\"></path>\n <path d=\"M19 3 L21 5\"></path>\n </svg>\n </span>\n <div class=\"promo-banner__text\">\n <strong class=\"promo-banner__title\">{{ title() }}</strong>\n <span class=\"promo-banner__desc\">{{ description() }}</span>\n </div>\n </div>\n\n <button type=\"button\" class=\"promo-banner__cta\" (click)=\"onReserve()\">\n {{ ctaLabel() }}\n </button>\n </div>\n</aside>\n", styles: [".promo-banner{width:100%;background:#fffffff2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 4px 12px #0000000f;padding:8px 16px;position:absolute;top:0;left:0;z-index:10;transition:transform .3s ease}.promo-banner--sticky{position:fixed;top:80px;z-index:9;animation:slideDown .3s ease-out forwards}@media (min-width: 1680px){.promo-banner--sticky{top:90px}}@media (max-width: 1024px){.promo-banner--sticky{top:85px}}@media (max-width: 768px){.promo-banner--sticky{top:75px}}@media (max-width: 540px){.promo-banner--sticky{top:60px}}.promo-banner__content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:24px}@media (max-width: 768px){.promo-banner__content{justify-content:space-between;gap:12px;padding:4px 0}}.promo-banner__info{display:inline-flex;align-items:center;gap:12px}.promo-banner__icon{display:flex;align-items:center;justify-content:center;color:var(--cl_title);flex-shrink:0}.promo-banner__icon svg{display:block}.promo-banner__text{font-size:14px;line-height:1.3;color:var(--cl_text);display:flex;align-items:center;gap:6px;flex-wrap:wrap}@media (max-width: 768px){.promo-banner__text{font-size:12px;flex-direction:column;align-items:flex-start;gap:1px}}.promo-banner__title{font-weight:700;color:var(--cl_title)}.promo-banner__desc{font-weight:400;color:var(--cl_text)}.promo-banner__cta{background-color:var(--cl_corp);color:var(--cl_text-light);border:none;border-radius:20px;padding:8px 24px;font-size:13px;font-weight:600;letter-spacing:.3px;cursor:pointer;transition:background-color .2s ease,transform .1s ease;white-space:nowrap;flex-shrink:0}.promo-banner__cta:hover{background-color:#1e3f63}.promo-banner__cta:active{transform:scale(.98)}@media (max-width: 768px){.promo-banner__cta{padding:6px 16px;font-size:12px}}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}\n"] }]
38
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: Document, decorators: [{
39
+ type: Inject,
40
+ args: [DOCUMENT]
41
+ }] }], propDecorators: { onWindowScroll: [{
42
+ type: HostListener,
43
+ args: ['window:scroll', []]
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYm9va2luZy1iYW5uZXIvYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYm9va2luZy1iYW5uZXIvYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVMzQyxNQUFNLE9BQU8sNkJBQTZCO0lBWXRDLFlBQ1ksUUFBbUIsRUFDRCxRQUFrQjtRQURwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ0QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWJ2QyxVQUFLLEdBQUcsS0FBSyxDQUFTLHFCQUFxQixDQUFDLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxLQUFLLENBQ3hCLHVDQUF1QyxDQUMxQyxDQUFDO1FBQ08sYUFBUSxHQUFHLEtBQUssQ0FBUyxVQUFVLENBQUMsQ0FBQztRQUNyQyxhQUFRLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFFbkMsYUFBUSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqQixpQkFBWSxHQUFHLEtBQUssQ0FBQztJQUtuQyxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFHRCxjQUFjO1FBQ1YsSUFBSSxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FwQ1EsNkJBQTZCLDJDQWMxQixRQUFRO21HQWRYLDZCQUE2Qixza0JDcEIxQywwNENBcUNBOzs0RkRqQmEsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNJLDRCQUE0QixjQUMxQixJQUFJLFdBQ1AsRUFBRTs7MEJBa0JOLE1BQU07MkJBQUMsUUFBUTt5Q0FZcEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgaW5wdXQsXG4gICAgb3V0cHV0LFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUmVuZGVyZXIyLFxuICAgIEluamVjdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItYmFieWxvbi1ib29raW5nLWJhbm5lcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24tYm9va2luZy1iYW5uZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uQm9va2luZ0Jhbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICByZWFkb25seSB0aXRsZSA9IGlucHV0PHN0cmluZz4oJ0Vhcmx5IEJvb2tpbmcgMjAyNzonKTtcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbiA9IGlucHV0PHN0cmluZz4oXG4gICAgICAgICctMTAlIHJlc2VydmFuZG8gYW50ZXMgZGVsIDMxIGRlIGVuZXJvJ1xuICAgICk7XG4gICAgcmVhZG9ubHkgY3RhTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdSZXNlcnZhcicpO1xuICAgIHJlYWRvbmx5IGN0YUNsaWNrID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgICBpc1N0aWNreSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGJhbm5lckhlaWdodCA9ICcwcHgnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdoYXMtcHJvbW8tYmFubmVyJyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnaGFzLXByb21vLWJhbm5lcicpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5zY3JvbGxZID4gNTApIHtcbiAgICAgICAgICAgIHRoaXMuaXNTdGlja3kuc2V0KHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1N0aWNreS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25SZXNlcnZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN0YUNsaWNrLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8YXNpZGVcbiAgICBjbGFzcz1cInByb21vLWJhbm5lclwiXG4gICAgW2NsYXNzLnByb21vLWJhbm5lci0tc3RpY2t5XT1cImlzU3RpY2t5KClcIlxuICAgIHJvbGU9XCJjb21wbGVtZW50YXJ5XCJcbiAgICBhcmlhLWxhYmVsPVwiUHJvbW9jacOzbiBlc3BlY2lhbFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInByb21vLWJhbm5lcl9fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tYmFubmVyX19pbmZvXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb21vLWJhbm5lcl9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gU1ZHIFJlbG9qIE91dGxpbmUgLS0+XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyOFwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjhcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCI5XCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIxMiA3IDEyIDEyIDE1IDE0XCI+PC9wb2x5bGluZT5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDMgTDMgNVwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOSAzIEwyMSA1XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWJhbm5lcl9fdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJwcm9tby1iYW5uZXJfX3RpdGxlXCI+e3sgdGl0bGUoKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvbW8tYmFubmVyX19kZXNjXCI+e3sgZGVzY3JpcHRpb24oKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByb21vLWJhbm5lcl9fY3RhXCIgKGNsaWNrKT1cIm9uUmVzZXJ2ZSgpXCI+XG4gICAgICAgICAgICB7eyBjdGFMYWJlbCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9hc2lkZT5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './babylon-booking-banner.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYm9va2luZy1iYW5uZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQnO1xuIl19