ctt-puro 0.64.8 → 0.64.9

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.
@@ -40,24 +40,23 @@ export class PuroHeaderComponent {
40
40
  this.cssBgUrl = `url("${this.backgroundImg.src}")`;
41
41
  }
42
42
  }
43
- get showCheckinOnline() {
44
- return (this.isHotelsPage &&
45
- !!this.btnCheckinOnline);
43
+ get isGroupSite() {
44
+ return this.siteId === this.SITE_GROUP;
46
45
  }
47
- get showCheckin() {
48
- return (this.isHotelsPage && !!this.btnCheckin);
46
+ get isHotelStickyContext() {
47
+ return this.isHotelsPage && !this.isRestaurant && !this.isGroupSite;
49
48
  }
50
49
  get showBook() {
51
- if (!this.btnBook)
52
- return false;
53
- // site 1 → solo restaurantes
54
- if (this.siteId === 1) {
55
- return this.isRestaurant === true;
56
- }
57
- return true;
50
+ return !!this.btnBook && !this.isGroupSite;
51
+ }
52
+ get showCheckinOnline() {
53
+ return this.isHotelStickyContext && !!this.btnCheckinOnline;
54
+ }
55
+ get showCheckin() {
56
+ return this.isHotelStickyContext && !!this.btnCheckin;
58
57
  }
59
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderComponent, isStandalone: true, selector: "lib-puro-header", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", navLinks: "navLinks", bottomLinks: "bottomLinks", siteId: "siteId", isHotelsPage: "isHotelsPage", isRestaurant: "isRestaurant", btnBook: "btnBook", btnCheckinOnline: "btnCheckinOnline", btnCheckin: "btnCheckin", isDynamic: "isDynamic", logoHotel: "logoHotel", linkHotel: "linkHotel", hotelBrand: "hotelBrand", backgroundImg: "backgroundImg", currentHotelId: "currentHotelId" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin", btnClickCheckinOnline: "btnClickCheckinOnline" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderComponent, isStandalone: true, selector: "lib-puro-header", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", navLinks: "navLinks", bottomLinks: "bottomLinks", siteId: "siteId", isHotelsPage: "isHotelsPage", isRestaurant: "isRestaurant", btnBook: "btnBook", btnCheckinOnline: "btnCheckinOnline", btnCheckin: "btnCheckin", isDynamic: "isDynamic", logoHotel: "logoHotel", linkHotel: "linkHotel", hotelBrand: "hotelBrand", backgroundImg: "backgroundImg", currentHotelId: "currentHotelId" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin", btnClickCheckinOnline: "btnClickCheckinOnline" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelStickyContext) {\n <!-- SOLO hoteles reales (sticky) -->\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n <!-- Restaurante y p\u00E1ginas NO hotel -->\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
60
  }
62
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderComponent, decorators: [{
63
62
  type: Component,
@@ -67,7 +66,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
67
66
  PuroActiveModalDirective,
68
67
  PuroNavStickyDirective,
69
68
  NgOptimizedImage,
70
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"] }]
69
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelStickyContext) {\n <!-- SOLO hoteles reales (sticky) -->\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n <!-- Restaurante y p\u00E1ginas NO hotel -->\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"] }]
71
70
  }], propDecorators: { titleMenu: [{
72
71
  type: Input
73
72
  }], titleLang: [{
@@ -107,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
107
106
  }], btnClickCheckinOnline: [{
108
107
  type: Output
109
108
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQWtCcEcsTUFBTSxPQUFPLG1CQUFtQjtJQWZoQztRQWdCWSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBU2pELGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBQy9CLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBSS9CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFeEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGVBQVUsR0FBRyxFQUFFLENBQUM7S0FrRG5CO0lBaERHLFlBQVk7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLElBQUksQ0FBQyxVQUFVO2dCQUNoQixNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsV0FBVztnQkFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEMsTUFBTTtZQUNWLEtBQUssSUFBSSxDQUFDLFVBQVU7Z0JBQ2hCLE1BQU07WUFFVjtnQkFDSSxNQUFNO1NBQ2I7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDckQ7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3REO0lBQ0wsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sQ0FDSCxJQUFJLENBQUMsWUFBWTtZQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sQ0FDSCxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUN6QyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRWhDLDZCQUE2QjtRQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUM7U0FDckM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOytHQWhGUSxtQkFBbUI7bUdBQW5CLG1CQUFtQix5bUJBRmpCLENBQUMsd0JBQXdCLENBQUMsMEJDOUJ6Qyx3alBBOE1BLG9ORHpMUSxZQUFZLCtCQUNaLHFCQUFxQiw0SUFDckIsd0JBQXdCLDBEQUN4QixzQkFBc0IsK0VBQ3RCLGdCQUFnQjs7NEZBT1gsbUJBQW1CO2tCQWYvQixTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLGdCQUFnQjtxQkFDbkIsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyx3QkFBd0IsQ0FBQzs4QkFJNUIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBQdXJvTGlua1R5cGVEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUHVyb05hdlN0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHVyby1uYXYtc3RpY2t5L3B1cm8tbmF2LXN0aWNreS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUHVyb0J1dHRvbkksIFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby1oZWFkZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgICAgICBQdXJvTmF2U3RpY2t5RGlyZWN0aXZlLFxuICAgICAgICBOZ09wdGltaXplZEltYWdlLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1cm8taGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcHVyby1oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1B1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9IZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgYWN0aXZlTW9kYWxEdHYgPSBpbmplY3QoUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlKTtcbiAgICBASW5wdXQoKSB0aXRsZU1lbnU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGVMYW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5hdkxpbmtzPzogUHVyb0J1dHRvbklbXTtcbiAgICBASW5wdXQoKSBib3R0b21MaW5rcz86IFB1cm9CdXR0b25JW107XG4gICAgQElucHV0KCkgc2l0ZUlkPzpcbiAgICAgICAgfCB0eXBlb2YgdGhpcy5TSVRFX0dST1VQXG4gICAgICAgIHwgdHlwZW9mIHRoaXMuU0lURV9CRUFDSFxuICAgICAgICB8IHR5cGVvZiB0aGlzLlNJVEVfSE9URUxTO1xuICAgIEBJbnB1dCgpIGlzSG90ZWxzUGFnZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc1Jlc3RhdXJhbnQ/OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgYnRuQm9vaz86IHN0cmluZztcbiAgICBASW5wdXQoKSBidG5DaGVja2luT25saW5lPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJ0bkNoZWNraW4/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNEeW5hbWljID0gZmFsc2U7XG4gICAgQElucHV0KCkgbG9nb0hvdGVsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxpbmtIb3RlbD86IHN0cmluZztcbiAgICBASW5wdXQoKSBob3RlbEJyYW5kPzogUHVyb0ltYWdlSTtcbiAgICBASW5wdXQoKSBiYWNrZ3JvdW5kSW1nPzogUHVyb0ltYWdlSTtcbiAgICBASW5wdXQoKSBjdXJyZW50SG90ZWxJZD86IG51bWJlcjtcblxuICAgIEBPdXRwdXQoKSBidG5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYnRuQ2xpY2tDaGVja2luID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBidG5DbGlja0NoZWNraW5PbmxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICByZWFkb25seSBTSVRFX0dST1VQID0gMTtcbiAgICByZWFkb25seSBTSVRFX0hPVEVMUyA9IDI7XG4gICAgcmVhZG9ubHkgU0lURV9CRUFDSCA9IDM7XG5cbiAgICBjc3NCZ1VybCA9ICcnO1xuICAgIGNzc0xvZ29VcmwgPSAnJztcblxuICAgIGNsaWNrQnRuQm9vaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idG5DbGljay5lbWl0KCk7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zaXRlSWQpIHtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5TSVRFX0dST1VQOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLlNJVEVfSE9URUxTOlxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWxEdHYuaGFuZGxlQ2xpY2soKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5TSVRFX0JFQUNIOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvdGVsQnJhbmQ/LnNyYykge1xuICAgICAgICAgICAgdGhpcy5jc3NMb2dvVXJsID0gYHVybChcIiR7dGhpcy5ob3RlbEJyYW5kLnNyY31cIilgO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmJhY2tncm91bmRJbWc/LnNyYykge1xuICAgICAgICAgICAgdGhpcy5jc3NCZ1VybCA9IGB1cmwoXCIke3RoaXMuYmFja2dyb3VuZEltZy5zcmN9XCIpYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBzaG93Q2hlY2tpbk9ubGluZSgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXNIb3RlbHNQYWdlICYmXG4gICAgICAgICAgICAhIXRoaXMuYnRuQ2hlY2tpbk9ubGluZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBzaG93Q2hlY2tpbigpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXNIb3RlbHNQYWdlICYmICEhdGhpcy5idG5DaGVja2luXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dCb29rKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuYnRuQm9vaykgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIC8vIHNpdGUgMSDihpIgc29sbyByZXN0YXVyYW50ZXNcbiAgICAgICAgaWYgKHRoaXMuc2l0ZUlkID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Jlc3RhdXJhbnQgPT09IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCIgbmF2U3RpY2t5IFtpc0R5bmFtaWNdPVwiaXNEeW5hbWljXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbG9nb1wiPlxuICAgICAgICBAaWYgKGxvZ29Ib3RlbCkge1xuICAgICAgICAgICAgPGEgW2hyZWZdPVwibGlua0hvdGVsXCIgbGlua1R5cGU9XCJpbnRlcm5hbFwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImxvZ29Ib3RlbFwiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkxvZ29cIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMVwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX2xvZ28tLWltZ1wiXG4gICAgICAgICAgICAgICAgICAgIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJuYXZMaW5rcz8uWzBdPy51cmxcIiBbbGlua1R5cGVdPVwibmF2TGlua3M/LlswXT8ubGlua1R5cGVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDFcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMlwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sb2dvLS1pbWdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfSE9URUxTKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyby1sb2dvXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfQkVBQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNwdXJvYmVhY2gtbG9nb1wiPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2l0ZUlkID09PSBTSVRFX0dST1VQKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyb2dyb3VwLWxvZ29cIj48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGVmdE5hdlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fbWVudSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTWVudSA/PyAnTWVudSdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb24tODNcIj48L2k+XG4gICAgICAgICAgICBAaWYgKHRpdGxlTWVudSkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZUxhbmcgPz8gJ0xhbmd1YWdlIE1lbnUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgICAgICB7eyB0aXRsZUxhbmcgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBoaWRlIGJ1dHRvbnMgd2hlbiBQdXJvIE9hc2lzIFVyYmFubyAtLT5cbiAgICBAaWYgKGN1cnJlbnRIb3RlbElkID09PSA1KSB7XG4gICAgICAgIEBpZiAoc2hvd0Jvb2spIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bkNsaWNrLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX3Jlc2VydmVyXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQm9vayB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgKGlzSG90ZWxzUGFnZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fcmVzZXJ2ZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHNob3dDaGVja2luT25saW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnRuQ2xpY2tDaGVja2luT25saW5lLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgYnRuLS1sZyBjaGVja0luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidG5DaGVja2luT25saW5lXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQ2hlY2tpbk9ubGluZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoc2hvd0NoZWNraW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGlja0NoZWNraW4uZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19jaGVja0luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidG5DaGVja2luXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgYnRuQ2hlY2tpbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChzaG93Qm9vaykge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bkNsaWNrLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgYnRuLS1sZyByZXNlcnZhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuQm9va1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bkJvb2sgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKHNob3dCb29rKSB7XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bkNsaWNrLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19yZXNlcnZlclwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgYnRuLS1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQm9vayB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuPC9oZWFkZXI+XG5cbjxkaXYgY2xhc3M9XCJtb2RhbCBtb2RhbC0tc29saWRDcmVhbSBtb2RhbC0tbmF2aWdhdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9faW5uZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fYm9keVwiXG4gICAgICAgICAgICBbc3R5bGUuLS1iZy11cmxdPVwiY3NzQmdVcmxcIlxuICAgICAgICAgICAgW3N0eWxlLi0tbG9nby11cmxdPVwiY3NzTG9nb1VybFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19jbG9zZSBqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgQnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fY2xvc2UtLWljb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI21vZGFsLWNsb3NlXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9fbmF2XCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibW9kYWxfX25hdi0taXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChuYXZMaW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBuYXZMaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibW9kYWxfX25hdi0tbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwibmF2aWdhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtb2RhbF9fbmF2LS1pdGVtc1NtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYm90dG9tTGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgYm90dG9tTGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobGluay51cmwgPT09ICdsYW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX25hdi0tbGluayBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLmxhYmVsID8/ICdMYW5ndWFnZSBNZW51J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtb2RhbF9fbmF2LS1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwianMtY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwibmF2aWdhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsaW5rLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQWtCcEcsTUFBTSxPQUFPLG1CQUFtQjtJQWZoQztRQWdCWSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBU2pELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBSTlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFeEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGVBQVUsR0FBRyxFQUFFLENBQUM7S0E4Q25CO0lBNUNHLFlBQVk7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLElBQUksQ0FBQyxVQUFVO2dCQUNoQixNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsV0FBVztnQkFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEMsTUFBTTtZQUNWLEtBQUssSUFBSSxDQUFDLFVBQVU7Z0JBQ2hCLE1BQU07WUFFVjtnQkFDSSxNQUFNO1NBQ2I7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDckQ7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3REO0lBQ0wsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzFELENBQUM7K0dBNUVRLG1CQUFtQjttR0FBbkIsbUJBQW1CLHltQkFGakIsQ0FBQyx3QkFBd0IsQ0FBQywwQkM5QnpDLCtxUEFpTkEsb05ENUxRLFlBQVksK0JBQ1oscUJBQXFCLDRJQUNyQix3QkFBd0IsMERBQ3hCLHNCQUFzQiwrRUFDdEIsZ0JBQWdCOzs0RkFPWCxtQkFBbUI7a0JBZi9CLFNBQVM7K0JBQ0ksaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3FCQUNuQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDOzhCQUk1QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQdXJvTmF2U3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wdXJvLW5hdi1zdGlja3kvcHVyby1uYXYtc3RpY2t5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQdXJvQnV0dG9uSSwgUHVyb0ltYWdlSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1wdXJvLWhlYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxuICAgICAgICBQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmUsXG4gICAgICAgIFB1cm9OYXZTdGlja3lEaXJlY3RpdmUsXG4gICAgICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLWhlYWRlci5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb0hlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbER0diA9IGluamVjdChQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmUpO1xuICAgIEBJbnB1dCgpIHRpdGxlTWVudT86IHN0cmluZztcbiAgICBASW5wdXQoKSB0aXRsZUxhbmc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbmF2TGlua3M/OiBQdXJvQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIGJvdHRvbUxpbmtzPzogUHVyb0J1dHRvbklbXTtcbiAgICBASW5wdXQoKSBzaXRlSWQ/OlxuICAgICAgICB8IHR5cGVvZiB0aGlzLlNJVEVfR1JPVVBcbiAgICAgICAgfCB0eXBlb2YgdGhpcy5TSVRFX0JFQUNIXG4gICAgICAgIHwgdHlwZW9mIHRoaXMuU0lURV9IT1RFTFM7XG4gICAgQElucHV0KCkgaXNIb3RlbHNQYWdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNSZXN0YXVyYW50OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgYnRuQm9vaz86IHN0cmluZztcbiAgICBASW5wdXQoKSBidG5DaGVja2luT25saW5lPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJ0bkNoZWNraW4/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNEeW5hbWljID0gZmFsc2U7XG4gICAgQElucHV0KCkgbG9nb0hvdGVsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxpbmtIb3RlbD86IHN0cmluZztcbiAgICBASW5wdXQoKSBob3RlbEJyYW5kPzogUHVyb0ltYWdlSTtcbiAgICBASW5wdXQoKSBiYWNrZ3JvdW5kSW1nPzogUHVyb0ltYWdlSTtcbiAgICBASW5wdXQoKSBjdXJyZW50SG90ZWxJZD86IG51bWJlcjtcblxuICAgIEBPdXRwdXQoKSBidG5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYnRuQ2xpY2tDaGVja2luID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBidG5DbGlja0NoZWNraW5PbmxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICByZWFkb25seSBTSVRFX0dST1VQID0gMTtcbiAgICByZWFkb25seSBTSVRFX0hPVEVMUyA9IDI7XG4gICAgcmVhZG9ubHkgU0lURV9CRUFDSCA9IDM7XG5cbiAgICBjc3NCZ1VybCA9ICcnO1xuICAgIGNzc0xvZ29VcmwgPSAnJztcblxuICAgIGNsaWNrQnRuQm9vaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idG5DbGljay5lbWl0KCk7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zaXRlSWQpIHtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5TSVRFX0dST1VQOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLlNJVEVfSE9URUxTOlxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWxEdHYuaGFuZGxlQ2xpY2soKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5TSVRFX0JFQUNIOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvdGVsQnJhbmQ/LnNyYykge1xuICAgICAgICAgICAgdGhpcy5jc3NMb2dvVXJsID0gYHVybChcIiR7dGhpcy5ob3RlbEJyYW5kLnNyY31cIilgO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmJhY2tncm91bmRJbWc/LnNyYykge1xuICAgICAgICAgICAgdGhpcy5jc3NCZ1VybCA9IGB1cmwoXCIke3RoaXMuYmFja2dyb3VuZEltZy5zcmN9XCIpYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpc0dyb3VwU2l0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l0ZUlkID09PSB0aGlzLlNJVEVfR1JPVVA7XG4gICAgfVxuXG4gICAgZ2V0IGlzSG90ZWxTdGlja3lDb250ZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0hvdGVsc1BhZ2UgJiYgIXRoaXMuaXNSZXN0YXVyYW50ICYmICF0aGlzLmlzR3JvdXBTaXRlO1xuICAgIH1cblxuICAgIGdldCBzaG93Qm9vaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5idG5Cb29rICYmICF0aGlzLmlzR3JvdXBTaXRlO1xuICAgIH1cblxuICAgIGdldCBzaG93Q2hlY2tpbk9ubGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNIb3RlbFN0aWNreUNvbnRleHQgJiYgISF0aGlzLmJ0bkNoZWNraW5PbmxpbmU7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dDaGVja2luKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0hvdGVsU3RpY2t5Q29udGV4dCAmJiAhIXRoaXMuYnRuQ2hlY2tpbjtcbiAgICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCIgbmF2U3RpY2t5IFtpc0R5bmFtaWNdPVwiaXNEeW5hbWljXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbG9nb1wiPlxuICAgICAgICBAaWYgKGxvZ29Ib3RlbCkge1xuICAgICAgICAgICAgPGEgW2hyZWZdPVwibGlua0hvdGVsXCIgbGlua1R5cGU9XCJpbnRlcm5hbFwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImxvZ29Ib3RlbFwiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkxvZ29cIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMVwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX2xvZ28tLWltZ1wiXG4gICAgICAgICAgICAgICAgICAgIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJuYXZMaW5rcz8uWzBdPy51cmxcIiBbbGlua1R5cGVdPVwibmF2TGlua3M/LlswXT8ubGlua1R5cGVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDFcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMlwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sb2dvLS1pbWdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfSE9URUxTKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyby1sb2dvXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfQkVBQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNwdXJvYmVhY2gtbG9nb1wiPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2l0ZUlkID09PSBTSVRFX0dST1VQKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyb2dyb3VwLWxvZ29cIj48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGVmdE5hdlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fbWVudSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTWVudSA/PyAnTWVudSdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb24tODNcIj48L2k+XG4gICAgICAgICAgICBAaWYgKHRpdGxlTWVudSkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZUxhbmcgPz8gJ0xhbmd1YWdlIE1lbnUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgICAgICB7eyB0aXRsZUxhbmcgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBoaWRlIGJ1dHRvbnMgd2hlbiBQdXJvIE9hc2lzIFVyYmFubyAtLT5cblxuICAgIEBpZiAoY3VycmVudEhvdGVsSWQgPT09IDUpIHtcbiAgICAgICAgQGlmIChzaG93Qm9vaykge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnRuQ2xpY2suZW1pdCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fcmVzZXJ2ZXJcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuQm9va1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgYnRuLS1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBidG5Cb29rIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAoaXNIb3RlbFN0aWNreUNvbnRleHQpIHtcbiAgICAgICAgICAgIDwhLS0gU09MTyBob3RlbGVzIHJlYWxlcyAoc3RpY2t5KSAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX3Jlc2VydmVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChzaG93Q2hlY2tpbk9ubGluZSkge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bkNsaWNrQ2hlY2tpbk9ubGluZS5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGcgY2hlY2tJblwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuQ2hlY2tpbk9ubGluZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bkNoZWNraW5PbmxpbmUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKHNob3dDaGVja2luKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnRuQ2xpY2tDaGVja2luLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fY2hlY2tJblwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuQ2hlY2tpblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ0bkNoZWNraW4gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoc2hvd0Jvb2spIHtcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGljay5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGcgcmVzZXJ2YXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBidG5Cb29rIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPCEtLSBSZXN0YXVyYW50ZSB5IHDDoWdpbmFzIE5PIGhvdGVsIC0tPlxuICAgICAgICAgICAgQGlmIChzaG93Qm9vaykge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGljay5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fcmVzZXJ2ZXJcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidG5Cb29rXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bkJvb2sgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbjwvaGVhZGVyPlxuXG48ZGl2IGNsYXNzPVwibW9kYWwgbW9kYWwtLXNvbGlkQ3JlYW0gbW9kYWwtLW5hdmlnYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2lubmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX2JvZHlcIlxuICAgICAgICAgICAgW3N0eWxlLi0tYmctdXJsXT1cImNzc0JnVXJsXCJcbiAgICAgICAgICAgIFtzdHlsZS4tLWxvZ28tdXJsXT1cImNzc0xvZ29VcmxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fY2xvc2UganMtY2xvc2VcIlxuICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwibmF2aWdhdGlvblwiXG4gICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIEJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX2Nsb3NlLS1pY29uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNtb2RhbC1jbG9zZVwiPjwvdXNlPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX25hdlwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm1vZGFsX19uYXYtLWl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobmF2TGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgbmF2TGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1vZGFsX19uYXYtLWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwianMtY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibW9kYWxfX25hdi0taXRlbXNTbWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGJvdHRvbUxpbmtzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIGJvdHRvbUxpbmtzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGxpbmsudXJsID09PSAnbGFuZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19uYXYtLWxpbmsganMtYWN0aXZlLW1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJsYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5sYWJlbCA/PyAnTGFuZ3VhZ2UgTWVudSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibW9kYWxfX25hdi0tbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImpzLWNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -7289,24 +7289,23 @@ class PuroHeaderComponent {
7289
7289
  this.cssBgUrl = `url("${this.backgroundImg.src}")`;
7290
7290
  }
7291
7291
  }
7292
- get showCheckinOnline() {
7293
- return (this.isHotelsPage &&
7294
- !!this.btnCheckinOnline);
7292
+ get isGroupSite() {
7293
+ return this.siteId === this.SITE_GROUP;
7295
7294
  }
7296
- get showCheckin() {
7297
- return (this.isHotelsPage && !!this.btnCheckin);
7295
+ get isHotelStickyContext() {
7296
+ return this.isHotelsPage && !this.isRestaurant && !this.isGroupSite;
7298
7297
  }
7299
7298
  get showBook() {
7300
- if (!this.btnBook)
7301
- return false;
7302
- // site 1 → solo restaurantes
7303
- if (this.siteId === 1) {
7304
- return this.isRestaurant === true;
7305
- }
7306
- return true;
7299
+ return !!this.btnBook && !this.isGroupSite;
7300
+ }
7301
+ get showCheckinOnline() {
7302
+ return this.isHotelStickyContext && !!this.btnCheckinOnline;
7303
+ }
7304
+ get showCheckin() {
7305
+ return this.isHotelStickyContext && !!this.btnCheckin;
7307
7306
  }
7308
7307
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7309
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderComponent, isStandalone: true, selector: "lib-puro-header", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", navLinks: "navLinks", bottomLinks: "bottomLinks", siteId: "siteId", isHotelsPage: "isHotelsPage", isRestaurant: "isRestaurant", btnBook: "btnBook", btnCheckinOnline: "btnCheckinOnline", btnCheckin: "btnCheckin", isDynamic: "isDynamic", logoHotel: "logoHotel", linkHotel: "linkHotel", hotelBrand: "hotelBrand", backgroundImg: "backgroundImg", currentHotelId: "currentHotelId" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin", btnClickCheckinOnline: "btnClickCheckinOnline" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7308
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderComponent, isStandalone: true, selector: "lib-puro-header", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", navLinks: "navLinks", bottomLinks: "bottomLinks", siteId: "siteId", isHotelsPage: "isHotelsPage", isRestaurant: "isRestaurant", btnBook: "btnBook", btnCheckinOnline: "btnCheckinOnline", btnCheckin: "btnCheckin", isDynamic: "isDynamic", logoHotel: "logoHotel", linkHotel: "linkHotel", hotelBrand: "hotelBrand", backgroundImg: "backgroundImg", currentHotelId: "currentHotelId" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin", btnClickCheckinOnline: "btnClickCheckinOnline" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelStickyContext) {\n <!-- SOLO hoteles reales (sticky) -->\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n <!-- Restaurante y p\u00E1ginas NO hotel -->\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7310
7309
  }
7311
7310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderComponent, decorators: [{
7312
7311
  type: Component,
@@ -7316,7 +7315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
7316
7315
  PuroActiveModalDirective,
7317
7316
  PuroNavStickyDirective,
7318
7317
  NgOptimizedImage,
7319
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"] }]
7318
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n <!-- hide buttons when Puro Oasis Urbano -->\n\n @if (currentHotelId === 5) {\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n } @else {\n @if (isHotelStickyContext) {\n <!-- SOLO hoteles reales (sticky) -->\n <div class=\"header__reserver\">\n @if (showCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (showCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n <!-- Restaurante y p\u00E1ginas NO hotel -->\n @if (showBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__body\"\n [style.--bg-url]=\"cssBgUrl\"\n [style.--logo-url]=\"cssLogoUrl\"\n >\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--logo-url)}.modal.modal--navigation .modal__body:before{background-image:var(--bg-url)}\n"] }]
7320
7319
  }], propDecorators: { titleMenu: [{
7321
7320
  type: Input
7322
7321
  }], titleLang: [{