ctt-puro 0.36.5 → 0.36.7

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,36 +1,48 @@
1
1
  import { ChangeDetectionStrategy, Component, inject, Input, PLATFORM_ID, ViewEncapsulation, } from '@angular/core';
2
2
  import { CommonModule, isPlatformBrowser } from '@angular/common';
3
+ import { Router, NavigationEnd } from '@angular/router';
4
+ import { filter } from 'rxjs';
3
5
  import { PuroLinkTypeDirective } from '../../directives/puro-link-type/puro-link-type.directive';
4
6
  import * as i0 from "@angular/core";
5
7
  export class PuroSubmenuMobileComponent {
6
8
  constructor() {
7
- this.headerFixed = false;
8
- this.navSticky = false;
9
- this.menuReady = false;
10
- this.isDropdownOpen = false;
11
9
  this.filteredItems = [];
12
10
  this.platformId = inject(PLATFORM_ID);
11
+ this.router = inject(Router);
13
12
  }
14
13
  ngOnInit() {
15
- if (isPlatformBrowser(this.platformId)) {
16
- document.body.classList.add('hotels');
17
- }
18
- this.filteredItems = this.items?.filter(item => item.mobile) || [];
14
+ if (!isPlatformBrowser(this.platformId))
15
+ return;
16
+ // Filtro items visibles en móvil
17
+ this.filteredItems = this.items?.filter((item) => item.mobile) || [];
18
+ this.sub = this.router.events
19
+ .pipe(filter((e) => e instanceof NavigationEnd))
20
+ .subscribe(() => {
21
+ this.updateBodyClasses();
22
+ });
23
+ // Estado inicial
24
+ this.updateBodyClasses();
19
25
  }
20
26
  ngOnDestroy() {
27
+ this.sub?.unsubscribe();
21
28
  if (isPlatformBrowser(this.platformId)) {
22
29
  document.body.classList.remove('hotels');
23
30
  }
24
31
  }
32
+ updateBodyClasses() {
33
+ if (!isPlatformBrowser(this.platformId))
34
+ return;
35
+ document.body.classList.add('hotels');
36
+ }
25
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroSubmenuMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroSubmenuMobileComponent, isStandalone: true, selector: "lib-puro-submenu-mobile", inputs: { items: "items", selected: "selected" }, ngImport: i0, template: "@if (items) {\n <div class=\"header__nav\">\n @for (item of filteredItems; track $index) {\n <div class=\"header__navLinks\" role=\"button\">\n <a\n [attr.aria-label]=\"item?.label\"\n [href]=\"item?.url\"\n [linkType]=\"item?.linkType\"\n >\n <div class=\"header__navLinks--inner\">\n @if (item?.icon) {\n <span class=\"header__navLinks--icon\"\n ><i class=\"{{ item.icon }}\"></i\n ></span>\n }\n @if (item?.label) {\n <span class=\"header__navLinks--name\">{{\n item.label\n }}</span>\n }\n </div>\n </a>\n </div>\n }\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroSubmenuMobileComponent, isStandalone: true, selector: "lib-puro-submenu-mobile", inputs: { items: "items", selected: "selected" }, ngImport: i0, template: "@if (items) {\n <div class=\"header__nav\">\n @for (item of filteredItems; track $index) {\n <div class=\"header__navLinks\" role=\"button\">\n <a\n [attr.aria-label]=\"item?.label\"\n [href]=\"item?.url\"\n [linkType]=\"item?.linkType\"\n >\n <div class=\"header__navLinks--inner\">\n @if (item?.icon) {\n <span class=\"header__navLinks--icon\"\n ><i class=\"icon-{{ item.icon }}\"></i\n ></span>\n }\n @if (item?.label) {\n <span class=\"header__navLinks--name\">{{\n item.label\n }}</span>\n }\n </div>\n </a>\n </div>\n }\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
27
39
  }
28
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroSubmenuMobileComponent, decorators: [{
29
41
  type: Component,
30
- args: [{ selector: 'lib-puro-submenu-mobile', standalone: true, imports: [CommonModule, PuroLinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (items) {\n <div class=\"header__nav\">\n @for (item of filteredItems; track $index) {\n <div class=\"header__navLinks\" role=\"button\">\n <a\n [attr.aria-label]=\"item?.label\"\n [href]=\"item?.url\"\n [linkType]=\"item?.linkType\"\n >\n <div class=\"header__navLinks--inner\">\n @if (item?.icon) {\n <span class=\"header__navLinks--icon\"\n ><i class=\"{{ item.icon }}\"></i\n ></span>\n }\n @if (item?.label) {\n <span class=\"header__navLinks--name\">{{\n item.label\n }}</span>\n }\n </div>\n </a>\n </div>\n }\n </div>\n}\n" }]
42
+ args: [{ selector: 'lib-puro-submenu-mobile', standalone: true, imports: [CommonModule, PuroLinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (items) {\n <div class=\"header__nav\">\n @for (item of filteredItems; track $index) {\n <div class=\"header__navLinks\" role=\"button\">\n <a\n [attr.aria-label]=\"item?.label\"\n [href]=\"item?.url\"\n [linkType]=\"item?.linkType\"\n >\n <div class=\"header__navLinks--inner\">\n @if (item?.icon) {\n <span class=\"header__navLinks--icon\"\n ><i class=\"icon-{{ item.icon }}\"></i\n ></span>\n }\n @if (item?.label) {\n <span class=\"header__navLinks--name\">{{\n item.label\n }}</span>\n }\n </div>\n </a>\n </div>\n }\n </div>\n}\n" }]
31
43
  }], propDecorators: { items: [{
32
44
  type: Input
33
45
  }], selected: [{
34
46
  type: Input
35
47
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zdWJtZW51LW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wdXJvL3NyYy9saWIvY29tcG9uZW50cy9wdXJvLXN1Ym1lbnUtbW9iaWxlL3B1cm8tc3VibWVudS1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1zdWJtZW51LW1vYmlsZS9wdXJvLXN1Ym1lbnUtbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBR0wsV0FBVyxFQUNYLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMERBQTBELENBQUM7O0FBV2pHLE1BQU0sT0FBTywwQkFBMEI7SUFUdkM7UUFhSSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsa0JBQWEsR0FBNkIsRUFBRSxDQUFDO1FBRXJDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FhNUM7SUFaRyxRQUFRO1FBQ0osSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDOytHQXRCUSwwQkFBMEI7bUdBQTFCLDBCQUEwQixxSUN2QnZDLG85QkEwQkEseUREVGMsWUFBWSwrQkFBRSxxQkFBcUI7OzRGQU1wQywwQkFBMEI7a0JBVHRDLFNBQVM7K0JBQ0kseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQdXJvQnV0dG9uSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQdXJvTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3B1cm8tbGluay10eXBlL3B1cm8tbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tc3VibWVudS1tb2JpbGUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUHVyb0xpbmtUeXBlRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby1zdWJtZW51LW1vYmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3B1cm8tc3VibWVudS1tb2JpbGUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9TdWJtZW51TW9iaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3l7XG4gICAgQElucHV0KCkgaXRlbXM/OiBQdXJvU3VibWVudU1vYmlsZUl0ZW1JW107XG4gICAgQElucHV0KCkgc2VsZWN0ZWQ/OiBQdXJvQnV0dG9uSTtcblxuICAgIGhlYWRlckZpeGVkID0gZmFsc2U7XG4gICAgbmF2U3RpY2t5ID0gZmFsc2U7XG4gICAgbWVudVJlYWR5ID0gZmFsc2U7XG4gICAgaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICBmaWx0ZXJlZEl0ZW1zOiBQdXJvU3VibWVudU1vYmlsZUl0ZW1JW10gPSBbXTtcblxuICAgIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hvdGVscycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXM/LmZpbHRlcihpdGVtID0+IGl0ZW0ubW9iaWxlKSB8fCBbXTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnaG90ZWxzJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1N1Ym1lbnVNb2JpbGVJdGVtSSB7XG4gICBsYWJlbD86IHN0cmluZztcbiAgIHVybD86IHN0cmluZztcbiAgIGxpbmtUeXBlPzogc3RyaW5nO1xuICAgaWNvbj86IHN0cmluZztcbiAgIG1vYmlsZT86IGJvb2xlYW47XG59XG4iLCJAaWYgKGl0ZW1zKSB7XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbmF2XCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZmlsdGVyZWRJdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19uYXZMaW5rc1wiIHJvbGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbT8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIml0ZW0/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX25hdkxpbmtzLS1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtPy5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXJfX25hdkxpbmtzLS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxpIGNsYXNzPVwie3sgaXRlbS5pY29uIH19XCI+PC9pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbT8ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlcl9fbmF2TGlua3MtLW5hbWVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zdWJtZW51LW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wdXJvL3NyYy9saWIvY29tcG9uZW50cy9wdXJvLXN1Ym1lbnUtbW9iaWxlL3B1cm8tc3VibWVudS1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1zdWJtZW51LW1vYmlsZS9wdXJvLXN1Ym1lbnUtbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBR0wsV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7QUFZakcsTUFBTSxPQUFPLDBCQUEwQjtJQVR2QztRQWFFLGtCQUFhLEdBQTZCLEVBQUUsQ0FBQztRQUVyQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0ErQmpDO0lBNUJDLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBc0IsRUFBRSxDQUFDLENBQUMsWUFBWSxhQUFhLENBQUMsQ0FBQzthQUNuRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFTCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBRWhELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQXJDVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixxSUN6QnZDLHk5QkEwQkEseUREUFksWUFBWSwrQkFBRSxxQkFBcUI7OzRGQU1sQywwQkFBMEI7a0JBVHRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUExBVEZPUk1fSUQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQdXJvTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3B1cm8tbGluay10eXBlL3B1cm8tbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQdXJvQnV0dG9uSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcHVyby1zdWJtZW51LW1vYmlsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFB1cm9MaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wdXJvLXN1Ym1lbnUtbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3B1cm8tc3VibWVudS1tb2JpbGUuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb1N1Ym1lbnVNb2JpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGl0ZW1zPzogUHVyb1N1Ym1lbnVNb2JpbGVJdGVtSVtdO1xuICBASW5wdXQoKSBzZWxlY3RlZD86IFB1cm9CdXR0b25JO1xuXG4gIGZpbHRlcmVkSXRlbXM6IFB1cm9TdWJtZW51TW9iaWxlSXRlbUlbXSA9IFtdO1xuXG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgc3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgLy8gRmlsdHJvIGl0ZW1zIHZpc2libGVzIGVuIG3Ds3ZpbFxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXM/LmZpbHRlcigoaXRlbSkgPT4gaXRlbS5tb2JpbGUpIHx8IFtdO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcigoZSk6IGUgaXMgTmF2aWdhdGlvbkVuZCA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVCb2R5Q2xhc3NlcygpO1xuICAgICAgfSk7XG5cbiAgICAvLyBFc3RhZG8gaW5pY2lhbFxuICAgIHRoaXMudXBkYXRlQm9keUNsYXNzZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2hvdGVscycpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQm9keUNsYXNzZXMoKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hvdGVscycpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1N1Ym1lbnVNb2JpbGVJdGVtSSB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIGxpbmtUeXBlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBtb2JpbGU/OiBib29sZWFuO1xufVxuIiwiQGlmIChpdGVtcykge1xuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX25hdlwiPlxuICAgICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbmF2TGlua3NcIiByb2xlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0/LnVybFwiXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19uYXZMaW5rcy0taW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbT8uaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyX19uYXZMaW5rcy0taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aSBjbGFzcz1cImljb24te3sgaXRlbS5pY29uIH19XCI+PC9pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbT8ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlcl9fbmF2TGlua3MtLW5hbWVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=