ctt-babylon 0.25.27 → 0.26.1

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.
@@ -1,27 +1,42 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { Component, EventEmitter, HostListener, Inject, input, Input, Output, output, signal, } from '@angular/core';
3
3
  import { BabylonLinkTypeDirective } from '../../../directives/link-type/link-type.directive';
4
+ import { NavigationEnd } from '@angular/router';
5
+ import { filter } from 'rxjs';
4
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
5
8
  export class BabylonBookingBannerComponent {
6
- constructor(renderer, document) {
9
+ constructor(renderer, document, router) {
7
10
  this.renderer = renderer;
8
11
  this.document = document;
12
+ this.router = router;
13
+ this.triggerPoint = 100;
9
14
  this.openEngine = new EventEmitter();
10
15
  this.title = input('Early Booking 2027:');
11
16
  this.description = input('-10% reservando antes del 31 de enero');
12
17
  this.ctaLabel = input('Reservar');
13
18
  this.ctaClick = output();
14
19
  this.isSticky = signal(false);
15
- this.bannerHeight = '0px';
20
+ this.isInitSticky = signal(false);
16
21
  }
17
22
  ngOnInit() {
18
23
  this.renderer.addClass(this.document.body, 'has-promo-banner');
24
+ this.routerSub = this.router.events
25
+ .pipe(filter((event) => event instanceof NavigationEnd))
26
+ .subscribe(() => {
27
+ this.checkStickyState();
28
+ });
29
+ }
30
+ ngAfterViewInit() {
31
+ this.checkStickyState();
19
32
  }
20
33
  ngOnDestroy() {
21
34
  this.renderer.removeClass(this.document.body, 'has-promo-banner');
22
35
  }
23
36
  onWindowScroll() {
24
- if (window.scrollY > 50) {
37
+ if (this.isInitSticky())
38
+ return;
39
+ if (window.scrollY > this.triggerPoint) {
25
40
  this.isSticky.set(true);
26
41
  }
27
42
  else {
@@ -34,25 +49,39 @@ export class BabylonBookingBannerComponent {
34
49
  openEngineModalV2() {
35
50
  this.openEngine.emit();
36
51
  }
37
- 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 }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BabylonBookingBannerComponent, isStandalone: true, selector: "lib-babylon-booking-banner", inputs: { texts: { classPropertyName: "texts", publicName: "texts", isSignal: false, isRequired: false, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: false, isRequired: false, transformFunction: null }, offer: { classPropertyName: "offer", publicName: "offer", isSignal: false, isRequired: false, transformFunction: null }, 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: { openEngine: "openEngine", 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\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 @if (offer?.texts?.title || texts?.title) {\n <strong class=\"promo-banner__title\">{{\n offer?.texts?.title || texts?.title\n }}</strong>\n }\n @if (offer?.texts?.description || texts?.description) {\n <div\n class=\"promo-banner__desc\"\n [innerHTML]=\"\n offer?.texts?.description || texts?.description\n \"\n ></div>\n }\n </div>\n </div>\n\n @if (offer?.buttons?.[0] || offer?.button; as btn) {\n <a\n type=\"button\"\n class=\"promo-banner__cta\"\n [linkType]=\"btn.linkType\"\n [href]=\"btn.url\"\n [attr.aria-label]=\"btn.label\"\n >\n {{ btn.label }}\n </a>\n } @else if (buttons?.[0]) {\n <button\n type=\"button\"\n class=\"promo-banner__cta\"\n [attr.aria-label]=\"buttons?.[0]?.label\"\n (click)=\"openEngineModalV2()\"\n >\n {{ buttons?.[0]?.label }}\n </button>\n }\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}:host-context(.header_sticky) .promo-banner{top:80px;display:block}@media (min-width: 1680px){:host-context(.header_sticky) .promo-banner{top:90px}}@media (max-width: 1024px){:host-context(.header_sticky) .promo-banner{top:85px}}@media (max-width: 768px){:host-context(.header_sticky) .promo-banner{top:75px}}@media (max-width: 540px){:host-context(.header_sticky) .promo-banner{top:60px}}:host-context(body:not(.header_sticky)) .promo-banner{opacity:0;pointer-events:none}.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{flex-direction:column;justify-content:center;gap:8px;padding:4px 0;width:100%}}.promo-banner__info{display:inline-flex;align-items:center;gap:12px}@media (max-width: 768px){.promo-banner__info{width:100%;align-items:flex-start}}.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;flex:1;text-align:left}}.promo-banner__title{font-weight:700;color:var(--cl_title);font-size:1.6rem}.promo-banner__desc{font-weight:400;color:var(--cl_text);font-size:1.6rem}@media (max-width: 768px){.promo-banner__desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}}.promo-banner__cta{background-color:var(--cl_corp);color:var(--cl_text-light);border:none;border-radius:20px;padding:8px 24px;font-size:1.6rem;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"], dependencies: [{ kind: "directive", type: BabylonLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick", "clickPopup", "disablePointerNone"], outputs: ["anchorClicked"] }] }); }
52
+ checkStickyState() {
53
+ setTimeout(() => {
54
+ if (this.document.body.classList.contains('header_sticky')) {
55
+ this.isInitSticky.set(true);
56
+ this.isSticky.set(true);
57
+ }
58
+ else {
59
+ this.isInitSticky.set(false);
60
+ this.isSticky.set(window.scrollY > this.triggerPoint);
61
+ }
62
+ }, 50);
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonBookingBannerComponent, deps: [{ token: i0.Renderer2 }, { token: DOCUMENT }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BabylonBookingBannerComponent, isStandalone: true, selector: "lib-babylon-booking-banner", inputs: { texts: { classPropertyName: "texts", publicName: "texts", isSignal: false, isRequired: false, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: false, isRequired: false, transformFunction: null }, offer: { classPropertyName: "offer", publicName: "offer", isSignal: false, isRequired: false, transformFunction: null }, triggerPoint: { classPropertyName: "triggerPoint", publicName: "triggerPoint", isSignal: false, isRequired: false, transformFunction: null }, 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: { openEngine: "openEngine", ctaClick: "ctaClick" }, host: { listeners: { "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<aside\n class=\"promo-banner\"\n [class.promo-banner--sticky]=\"isSticky()\"\n [class.promo-banner--no-anim]=\"isInitSticky()\"\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\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 @if (offer?.texts?.title || texts?.title) {\n <strong class=\"promo-banner__title\">{{\n offer?.texts?.title || texts?.title\n }}</strong>\n }\n @if (offer?.texts?.description || texts?.description) {\n <div\n class=\"promo-banner__desc\"\n [innerHTML]=\"\n offer?.texts?.description || texts?.description\n \"\n ></div>\n }\n </div>\n </div>\n\n @if (offer?.buttons?.[0] || offer?.button; as btn) {\n <a\n type=\"button\"\n class=\"promo-banner__cta\"\n [linkType]=\"btn.linkType\"\n [href]=\"btn.url\"\n [attr.aria-label]=\"btn.label\"\n >\n {{ btn.label }}\n </a>\n } @else if (buttons?.[0]) {\n <button\n type=\"button\"\n class=\"promo-banner__cta\"\n [attr.aria-label]=\"buttons?.[0]?.label\"\n (click)=\"openEngineModalV2()\"\n >\n {{ buttons?.[0]?.label }}\n </button>\n }\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}:host-context(.header_sticky) .promo-banner{top:80px;display:block}@media (min-width: 1680px){:host-context(.header_sticky) .promo-banner{top:90px}}@media (max-width: 1024px){:host-context(.header_sticky) .promo-banner{top:85px}}@media (max-width: 768px){:host-context(.header_sticky) .promo-banner{top:75px}}@media (max-width: 540px){:host-context(.header_sticky) .promo-banner{top:60px}}:host-context(body:not(.header_sticky)) .promo-banner{opacity:0;pointer-events:none}.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--no-anim{animation:none!important}.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{flex-direction:column;justify-content:center;gap:8px;padding:4px 0;width:100%}}.promo-banner__info{display:inline-flex;align-items:center;gap:12px}@media (max-width: 768px){.promo-banner__info{width:100%;align-items:flex-start}}.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;flex:1;text-align:left}}.promo-banner__title{font-weight:700;color:var(--cl_title);font-size:1.6rem}.promo-banner__desc{font-weight:400;color:var(--cl_text);font-size:1.6rem}@media (max-width: 768px){.promo-banner__desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}}.promo-banner__cta{background-color:var(--cl_corp);color:var(--cl_text-light);border:none;border-radius:20px;padding:8px 24px;font-size:1.6rem;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"], dependencies: [{ kind: "directive", type: BabylonLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick", "clickPopup", "disablePointerNone"], outputs: ["anchorClicked"] }] }); }
39
66
  }
40
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonBookingBannerComponent, decorators: [{
41
68
  type: Component,
42
- args: [{ selector: 'lib-babylon-booking-banner', standalone: true, imports: [BabylonLinkTypeDirective], 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\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 @if (offer?.texts?.title || texts?.title) {\n <strong class=\"promo-banner__title\">{{\n offer?.texts?.title || texts?.title\n }}</strong>\n }\n @if (offer?.texts?.description || texts?.description) {\n <div\n class=\"promo-banner__desc\"\n [innerHTML]=\"\n offer?.texts?.description || texts?.description\n \"\n ></div>\n }\n </div>\n </div>\n\n @if (offer?.buttons?.[0] || offer?.button; as btn) {\n <a\n type=\"button\"\n class=\"promo-banner__cta\"\n [linkType]=\"btn.linkType\"\n [href]=\"btn.url\"\n [attr.aria-label]=\"btn.label\"\n >\n {{ btn.label }}\n </a>\n } @else if (buttons?.[0]) {\n <button\n type=\"button\"\n class=\"promo-banner__cta\"\n [attr.aria-label]=\"buttons?.[0]?.label\"\n (click)=\"openEngineModalV2()\"\n >\n {{ buttons?.[0]?.label }}\n </button>\n }\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}:host-context(.header_sticky) .promo-banner{top:80px;display:block}@media (min-width: 1680px){:host-context(.header_sticky) .promo-banner{top:90px}}@media (max-width: 1024px){:host-context(.header_sticky) .promo-banner{top:85px}}@media (max-width: 768px){:host-context(.header_sticky) .promo-banner{top:75px}}@media (max-width: 540px){:host-context(.header_sticky) .promo-banner{top:60px}}:host-context(body:not(.header_sticky)) .promo-banner{opacity:0;pointer-events:none}.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{flex-direction:column;justify-content:center;gap:8px;padding:4px 0;width:100%}}.promo-banner__info{display:inline-flex;align-items:center;gap:12px}@media (max-width: 768px){.promo-banner__info{width:100%;align-items:flex-start}}.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;flex:1;text-align:left}}.promo-banner__title{font-weight:700;color:var(--cl_title);font-size:1.6rem}.promo-banner__desc{font-weight:400;color:var(--cl_text);font-size:1.6rem}@media (max-width: 768px){.promo-banner__desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}}.promo-banner__cta{background-color:var(--cl_corp);color:var(--cl_text-light);border:none;border-radius:20px;padding:8px 24px;font-size:1.6rem;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"] }]
69
+ args: [{ selector: 'lib-babylon-booking-banner', standalone: true, imports: [BabylonLinkTypeDirective], template: "<aside\n class=\"promo-banner\"\n [class.promo-banner--sticky]=\"isSticky()\"\n [class.promo-banner--no-anim]=\"isInitSticky()\"\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\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 @if (offer?.texts?.title || texts?.title) {\n <strong class=\"promo-banner__title\">{{\n offer?.texts?.title || texts?.title\n }}</strong>\n }\n @if (offer?.texts?.description || texts?.description) {\n <div\n class=\"promo-banner__desc\"\n [innerHTML]=\"\n offer?.texts?.description || texts?.description\n \"\n ></div>\n }\n </div>\n </div>\n\n @if (offer?.buttons?.[0] || offer?.button; as btn) {\n <a\n type=\"button\"\n class=\"promo-banner__cta\"\n [linkType]=\"btn.linkType\"\n [href]=\"btn.url\"\n [attr.aria-label]=\"btn.label\"\n >\n {{ btn.label }}\n </a>\n } @else if (buttons?.[0]) {\n <button\n type=\"button\"\n class=\"promo-banner__cta\"\n [attr.aria-label]=\"buttons?.[0]?.label\"\n (click)=\"openEngineModalV2()\"\n >\n {{ buttons?.[0]?.label }}\n </button>\n }\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}:host-context(.header_sticky) .promo-banner{top:80px;display:block}@media (min-width: 1680px){:host-context(.header_sticky) .promo-banner{top:90px}}@media (max-width: 1024px){:host-context(.header_sticky) .promo-banner{top:85px}}@media (max-width: 768px){:host-context(.header_sticky) .promo-banner{top:75px}}@media (max-width: 540px){:host-context(.header_sticky) .promo-banner{top:60px}}:host-context(body:not(.header_sticky)) .promo-banner{opacity:0;pointer-events:none}.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--no-anim{animation:none!important}.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{flex-direction:column;justify-content:center;gap:8px;padding:4px 0;width:100%}}.promo-banner__info{display:inline-flex;align-items:center;gap:12px}@media (max-width: 768px){.promo-banner__info{width:100%;align-items:flex-start}}.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;flex:1;text-align:left}}.promo-banner__title{font-weight:700;color:var(--cl_title);font-size:1.6rem}.promo-banner__desc{font-weight:400;color:var(--cl_text);font-size:1.6rem}@media (max-width: 768px){.promo-banner__desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}}.promo-banner__cta{background-color:var(--cl_corp);color:var(--cl_text-light);border:none;border-radius:20px;padding:8px 24px;font-size:1.6rem;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"] }]
43
70
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: Document, decorators: [{
44
71
  type: Inject,
45
72
  args: [DOCUMENT]
46
- }] }], propDecorators: { texts: [{
73
+ }] }, { type: i1.Router }], propDecorators: { texts: [{
47
74
  type: Input
48
75
  }], buttons: [{
49
76
  type: Input
50
77
  }], offer: [{
51
78
  type: Input
79
+ }], triggerPoint: [{
80
+ type: Input
52
81
  }], openEngine: [{
53
82
  type: Output
54
83
  }], onWindowScroll: [{
55
84
  type: HostListener,
56
85
  args: ['window:scroll', []]
57
86
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYm9va2luZy1iYW5uZXIvYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYm9va2luZy1iYW5uZXIvYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEVBRU4sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQWM3RixNQUFNLE9BQU8sNkJBQTZCO0lBa0J0QyxZQUNZLFFBQW1CLEVBQ0QsUUFBa0I7UUFEcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFmdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsVUFBSyxHQUFHLEtBQUssQ0FBUyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdDLGdCQUFXLEdBQUcsS0FBSyxDQUN4Qix1Q0FBdUMsQ0FDMUMsQ0FBQztRQUNPLGFBQVEsR0FBRyxLQUFLLENBQVMsVUFBVSxDQUFDLENBQUM7UUFDckMsYUFBUSxHQUFHLE1BQU0sRUFBUSxDQUFDO1FBRW5DLGFBQVEsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFakIsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFLbkMsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBR0QsY0FBYztRQUNWLElBQUksTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBOUNRLDZCQUE2QiwyQ0FvQjFCLFFBQVE7bUdBcEJYLDZCQUE2QixpOUJDOUIxQyxnekVBZ0VBLGd2RkR0Q2Msd0JBQXdCOzs0RkFJekIsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNJLDRCQUE0QixjQUMxQixJQUFJLFdBQ1AsQ0FBQyx3QkFBd0IsQ0FBQzs7MEJBd0I5QixNQUFNOzJCQUFDLFFBQVE7eUNBbkJYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBMkJQLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIGlucHV0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIG91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIEJhYnlsb25CdXR0b25JLFxuICAgIEJhYnlsb25PZmZlckl0ZW1JLFxuICAgIEJhYnlsb25UZXh0SW5mb0ksXG59IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWJvb2tpbmctYmFubmVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWJvb2tpbmctYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEJhYnlsb25Cb29raW5nQmFubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBASW5wdXQoKSBidXR0b25zPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBASW5wdXQoKSBvZmZlcj86IEJhYnlsb25PZmZlckl0ZW1JO1xuXG4gICAgQE91dHB1dCgpIG9wZW5FbmdpbmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICByZWFkb25seSB0aXRsZSA9IGlucHV0PHN0cmluZz4oJ0Vhcmx5IEJvb2tpbmcgMjAyNzonKTtcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbiA9IGlucHV0PHN0cmluZz4oXG4gICAgICAgICctMTAlIHJlc2VydmFuZG8gYW50ZXMgZGVsIDMxIGRlIGVuZXJvJ1xuICAgICk7XG4gICAgcmVhZG9ubHkgY3RhTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdSZXNlcnZhcicpO1xuICAgIHJlYWRvbmx5IGN0YUNsaWNrID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgICBpc1N0aWNreSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGJhbm5lckhlaWdodCA9ICcwcHgnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdoYXMtcHJvbW8tYmFubmVyJyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnaGFzLXByb21vLWJhbm5lcicpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5zY3JvbGxZID4gNTApIHtcbiAgICAgICAgICAgIHRoaXMuaXNTdGlja3kuc2V0KHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1N0aWNreS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25SZXNlcnZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN0YUNsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvcGVuRW5naW5lTW9kYWxWMigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuRW5naW5lLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8YXNpZGVcbiAgICBjbGFzcz1cInByb21vLWJhbm5lclwiXG4gICAgW2NsYXNzLnByb21vLWJhbm5lci0tc3RpY2t5XT1cImlzU3RpY2t5KClcIlxuICAgIHJvbGU9XCJjb21wbGVtZW50YXJ5XCJcbiAgICBhcmlhLWxhYmVsPVwiUHJvbW9jacOzbiBlc3BlY2lhbFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInByb21vLWJhbm5lcl9fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tYmFubmVyX19pbmZvXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb21vLWJhbm5lcl9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjhcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyOFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS44XCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiPjwvY2lyY2xlPlxuICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiMTIgNyAxMiAxMiAxNSAxNFwiPjwvcG9seWxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSAzIEwzIDVcIj48L3BhdGg+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMyBMMjEgNVwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1iYW5uZXJfX3RleHRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKG9mZmVyPy50ZXh0cz8udGl0bGUgfHwgdGV4dHM/LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJwcm9tby1iYW5uZXJfX3RpdGxlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZmVyPy50ZXh0cz8udGl0bGUgfHwgdGV4dHM/LnRpdGxlXG4gICAgICAgICAgICAgICAgICAgIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAob2ZmZXI/LnRleHRzPy5kZXNjcmlwdGlvbiB8fCB0ZXh0cz8uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1iYW5uZXJfX2Rlc2NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZlcj8udGV4dHM/LmRlc2NyaXB0aW9uIHx8IHRleHRzPy5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKG9mZmVyPy5idXR0b25zPy5bMF0gfHwgb2ZmZXI/LmJ1dHRvbjsgYXMgYnRuKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tYmFubmVyX19jdGFcIlxuICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJidG4ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cImJ0bi51cmxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuLmxhYmVsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBidG4ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSBpZiAoYnV0dG9ucz8uWzBdKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1iYW5uZXJfX2N0YVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25zPy5bMF0/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkVuZ2luZU1vZGFsVjIoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgYnV0dG9ucz8uWzBdPy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvYXNpZGU+XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYm9va2luZy1iYW5uZXIvYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYm9va2luZy1iYW5uZXIvYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEVBRU4sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBTTdGLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7O0FBUzVDLE1BQU0sT0FBTyw2QkFBNkI7SUF1QnRDLFlBQ1ksUUFBbUIsRUFDRCxRQUFrQixFQUNwQyxNQUFjO1FBRmQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQW5CakIsaUJBQVksR0FBVyxHQUFHLENBQUM7UUFFMUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsVUFBSyxHQUFHLEtBQUssQ0FBUyxxQkFBcUIsQ0FBQyxDQUFDO1FB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fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBpbnB1dCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBvdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBCYWJ5bG9uQnV0dG9uSSxcbiAgICBCYWJ5bG9uT2ZmZXJJdGVtSSxcbiAgICBCYWJ5bG9uVGV4dEluZm9JLFxufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWJvb2tpbmctYmFubmVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWJvb2tpbmctYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFieWxvbi1ib29raW5nLWJhbm5lci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEJhYnlsb25Cb29raW5nQmFubmVyQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBASW5wdXQoKSBidXR0b25zPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBASW5wdXQoKSBvZmZlcj86IEJhYnlsb25PZmZlckl0ZW1JO1xuXG4gICAgQElucHV0KCkgdHJpZ2dlclBvaW50OiBudW1iZXIgPSAxMDA7XG5cbiAgICBAT3V0cHV0KCkgb3BlbkVuZ2luZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQ8c3RyaW5nPignRWFybHkgQm9va2luZyAyMDI3OicpO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gaW5wdXQ8c3RyaW5nPihcbiAgICAgICAgJy0xMCUgcmVzZXJ2YW5kbyBhbnRlcyBkZWwgMzEgZGUgZW5lcm8nXG4gICAgKTtcbiAgICByZWFkb25seSBjdGFMYWJlbCA9IGlucHV0PHN0cmluZz4oJ1Jlc2VydmFyJyk7XG4gICAgcmVhZG9ubHkgY3RhQ2xpY2sgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAgIGlzU3RpY2t5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBpc0luaXRTdGlja3kgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSByb3V0ZXJTdWIhOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2hhcy1wcm9tby1iYW5uZXInKTtcbiAgICAgICAgdGhpcy5yb3V0ZXJTdWIgPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU3RpY2t5U3RhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja1N0aWNreVN0YXRlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnaGFzLXByb21vLWJhbm5lcicpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNJbml0U3RpY2t5KCkpIHJldHVybjtcbiAgICAgICAgaWYgKHdpbmRvdy5zY3JvbGxZID4gdGhpcy50cmlnZ2VyUG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTdGlja3kuc2V0KHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1N0aWNreS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25SZXNlcnZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN0YUNsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvcGVuRW5naW5lTW9kYWxWMigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuRW5naW5lLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrU3RpY2t5U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ2hlYWRlcl9zdGlja3knKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJbml0U3RpY2t5LnNldCh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzU3RpY2t5LnNldCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0luaXRTdGlja3kuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzU3RpY2t5LnNldCh3aW5kb3cuc2Nyb2xsWSA+IHRoaXMudHJpZ2dlclBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgNTApO1xuICAgIH1cbn1cbiIsIjxhc2lkZVxuICAgIGNsYXNzPVwicHJvbW8tYmFubmVyXCJcbiAgICBbY2xhc3MucHJvbW8tYmFubmVyLS1zdGlja3ldPVwiaXNTdGlja3koKVwiXG4gICAgW2NsYXNzLnByb21vLWJhbm5lci0tbm8tYW5pbV09XCJpc0luaXRTdGlja3koKVwiXG4gICAgcm9sZT1cImNvbXBsZW1lbnRhcnlcIlxuICAgIGFyaWEtbGFiZWw9XCJQcm9tb2Npw7NuIGVzcGVjaWFsXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvbW8tYmFubmVyX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1iYW5uZXJfX2luZm9cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvbW8tYmFubmVyX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyOFwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjhcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCI5XCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIxMiA3IDEyIDEyIDE1IDE0XCI+PC9wb2x5bGluZT5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDMgTDMgNVwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOSAzIEwyMSA1XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWJhbm5lcl9fdGV4dFwiPlxuICAgICAgICAgICAgICAgIEBpZiAob2ZmZXI/LnRleHRzPy50aXRsZSB8fCB0ZXh0cz8udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInByb21vLWJhbm5lcl9fdGl0bGVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgb2ZmZXI/LnRleHRzPy50aXRsZSB8fCB0ZXh0cz8udGl0bGVcbiAgICAgICAgICAgICAgICAgICAgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChvZmZlcj8udGV4dHM/LmRlc2NyaXB0aW9uIHx8IHRleHRzPy5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb21vLWJhbm5lcl9fZGVzY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZmVyPy50ZXh0cz8uZGVzY3JpcHRpb24gfHwgdGV4dHM/LmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAob2ZmZXI/LmJ1dHRvbnM/LlswXSB8fCBvZmZlcj8uYnV0dG9uOyBhcyBidG4pIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1iYW5uZXJfX2N0YVwiXG4gICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImJ0bi5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwiYnRuLnVybFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidG4ubGFiZWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGJ0bi5sYWJlbCB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIGlmIChidXR0b25zPy5bMF0pIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInByb21vLWJhbm5lcl9fY3RhXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbnM/LlswXT8ubGFiZWxcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRW5naW5lTW9kYWxWMigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBidXR0b25zPy5bMF0/LmxhYmVsIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9hc2lkZT5cbiJdfQ==