ctt-puro 0.41.4 → 0.41.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/puro-top-slider/puro-top-slider.component.mjs +3 -3
- package/esm2022/lib/directives/puro-slider/puro-slider.directive.mjs +157 -217
- package/esm2022/lib/services/mapper/mapper.service.mjs +24 -8
- package/fesm2022/ctt-puro.mjs +179 -224
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/directives/puro-slider/puro-slider.directive.d.ts +8 -3
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
export class PuroTopSliderComponent {
|
|
7
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroTopSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroTopSliderComponent, isStandalone: true, selector: "lib-puro-top-slider", inputs: { engine: "engine", title: "title", mainTitle: "mainTitle", pretitle: "pretitle", subtitle: "subtitle", spotify: "spotify", newsletter: "newsletter", languages: "languages", fidelity: "fidelity", offers: "offers", selectedLanguage: "selectedLanguage", images: "images", video: "video" }, ngImport: i0, template: "<section\n class=\"banner js-active-slider\"\n [puroSlider]=\"images\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-banner-slider\"\n data-slider_showbtns=\"false\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n <!-- if banner image-->\n <div class=\"js-banner-slider\">\n @for (image of images; track $index) {\n <div class=\"banner__item\">\n <img\n [ngSrc]=\"image.src\"\n [alt]=\"image.alt\"\n class=\"banner__image\"\n width=\"1920\"\n height=\"980\"\n fetchpriority=\"high\"\n priority\n />\n </div>\n }\n </div>\n <!-- if banner image-->\n <!-- if banner video -->\n @if (video) {\n <div class=\"banner__video\">\n <div class=\"banner__video--inner\">\n <iframe\n id=\"YouTubeVideoPlayer\"\n width=\"1920\"\n height=\"1080\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n src=\"{{\n video\n }}?enablejsapi=1&controls=0&showinfo=0&autoplay=1&modestbranding=1&loop=1&autohide=1&playsinline=1&widgetid=1\"\n frameborder=\"0\"\n allowfullscreen\n ></iframe>\n </div>\n </div>\n }\n @if (mainTitle) {\n <h1 class=\"banner__title\">\n <span>{{ mainTitle }}</span>\n </h1>\n }\n <div class=\"banner__content\">\n @if (pretitle) {\n <p class=\"banner__text\">{{ pretitle }}</p>\n }\n @if (title) {\n <h2 class=\"banner__heading\">{{ title }}</h2>\n }\n @if (subtitle) {\n <p class=\"banner__text\">{{ subtitle }}</p>\n }\n </div>\n <div class=\"banner__actions\">\n <div class=\"banner__group banner__group--left\">\n @if (newsletter) {\n <div class=\"banner__newsletter\">\n <a\n [href]=\"newsletter.url\"\n [linkType]=\"newsletter.linkType\"\n class=\"banner__newsletter--inner\"\n [attr.aria-label]=\"newsletter.label\"\n >\n <span class=\"icon-63\"></span>\n <strong>{{ newsletter.label }}</strong>\n </a>\n </div>\n }\n @if (spotify) {\n <div class=\"banner__spotify\">\n <div\n class=\"banner__spotify--inner\"\n role=\"button\"\n [attr.aria-label]=\"spotify ?? 'spotify icon'\"\n >\n <span class=\"icon-82\"></span>\n <strong>{{ spotify }}</strong>\n </div>\n </div>\n }\n </div>\n\n <div class=\"banner__group banner__group--right\">\n @if (languages && selectedLanguage) {\n <div class=\"banner__language\">\n <div\n class=\"banner__language--inner js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"selectedLanguage\"\n >\n <span class=\"banner__language--icon\">{{\n selectedLanguage\n }}</span>\n <strong>{{ languages }}</strong>\n </div>\n </div>\n }\n @if (fidelity) {\n <div class=\"banner__fidelityClub\">\n <a\n [href]=\"fidelity?.url\"\n [linkType]=\"fidelity?.linkType\"\n class=\"banner__fidelityClub--inner\"\n [attr.aria-label]=\"fidelity?.label\"\n >\n <span class=\"icon-60\"></span>\n <strong>{{ fidelity?.label }}</strong>\n </a>\n </div>\n }\n </div>\n </div>\n\n @if (engine) {\n <ng-container [ngTemplateOutlet]=\"engine\"></ng-container>\n }\n @if (offers) {\n <span\n activeModal\n class=\"banner__offers--tigger js-active-modal\"\n data-modal_name=\"t-offers\"\n role=\"button\"\n [attr.aria-label]=\"offers ?? 'Offers'\"\n >\n {{ offers }}\n </span>\n }\n</section>\n", styles: ["@media (min-width: 1024px){.banner__actions{padding-bottom:5.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { 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 }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroTopSliderComponent, isStandalone: true, selector: "lib-puro-top-slider", inputs: { engine: "engine", title: "title", mainTitle: "mainTitle", pretitle: "pretitle", subtitle: "subtitle", spotify: "spotify", newsletter: "newsletter", languages: "languages", fidelity: "fidelity", offers: "offers", selectedLanguage: "selectedLanguage", images: "images", video: "video" }, ngImport: i0, template: "<section\n class=\"banner js-active-slider\"\n style=\"background:#F9F5ED;\"\n [puroSlider]=\"images\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-banner-slider\"\n data-slider_showbtns=\"false\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n <!-- if banner image-->\n <div class=\"js-banner-slider\">\n @for (image of images; track $index) {\n <div class=\"banner__item\">\n <img\n [ngSrc]=\"image.src\"\n [alt]=\"image.alt\"\n class=\"banner__image\"\n width=\"1920\"\n height=\"980\"\n fetchpriority=\"high\"\n decoding=\"async\"\n priority\n />\n </div>\n }\n </div>\n <!-- if banner image-->\n <!-- if banner video -->\n @if (video) {\n <div class=\"banner__video\">\n <div class=\"banner__video--inner\">\n <iframe\n id=\"YouTubeVideoPlayer\"\n width=\"1920\"\n height=\"1080\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n src=\"{{\n video\n }}?enablejsapi=1&controls=0&showinfo=0&autoplay=1&modestbranding=1&loop=1&autohide=1&playsinline=1&widgetid=1\"\n frameborder=\"0\"\n allowfullscreen\n ></iframe>\n </div>\n </div>\n }\n @if (mainTitle) {\n <h1 class=\"banner__title\">\n <span>{{ mainTitle }}</span>\n </h1>\n }\n <div class=\"banner__content\">\n @if (pretitle) {\n <p class=\"banner__text\">{{ pretitle }}</p>\n }\n @if (title) {\n <h2 class=\"banner__heading\">{{ title }}</h2>\n }\n @if (subtitle) {\n <p class=\"banner__text\">{{ subtitle }}</p>\n }\n </div>\n <div class=\"banner__actions\">\n <div class=\"banner__group banner__group--left\">\n @if (newsletter) {\n <div class=\"banner__newsletter\">\n <a\n [href]=\"newsletter.url\"\n [linkType]=\"newsletter.linkType\"\n class=\"banner__newsletter--inner\"\n [attr.aria-label]=\"newsletter.label\"\n >\n <span class=\"icon-63\"></span>\n <strong>{{ newsletter.label }}</strong>\n </a>\n </div>\n }\n @if (spotify) {\n <div class=\"banner__spotify\">\n <div\n class=\"banner__spotify--inner\"\n role=\"button\"\n [attr.aria-label]=\"spotify ?? 'spotify icon'\"\n >\n <span class=\"icon-82\"></span>\n <strong>{{ spotify }}</strong>\n </div>\n </div>\n }\n </div>\n\n <div class=\"banner__group banner__group--right\">\n @if (languages && selectedLanguage) {\n <div class=\"banner__language\">\n <div\n class=\"banner__language--inner js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"selectedLanguage\"\n >\n <span class=\"banner__language--icon\">{{\n selectedLanguage\n }}</span>\n <strong>{{ languages }}</strong>\n </div>\n </div>\n }\n @if (fidelity) {\n <div class=\"banner__fidelityClub\">\n <a\n [href]=\"fidelity?.url\"\n [linkType]=\"fidelity?.linkType\"\n class=\"banner__fidelityClub--inner\"\n [attr.aria-label]=\"fidelity?.label\"\n >\n <span class=\"icon-60\"></span>\n <strong>{{ fidelity?.label }}</strong>\n </a>\n </div>\n }\n </div>\n </div>\n\n @if (engine) {\n <ng-container [ngTemplateOutlet]=\"engine\"></ng-container>\n }\n @if (offers) {\n <span\n activeModal\n class=\"banner__offers--tigger js-active-modal\"\n data-modal_name=\"t-offers\"\n role=\"button\"\n [attr.aria-label]=\"offers ?? 'Offers'\"\n >\n {{ offers }}\n </span>\n }\n</section>\n", styles: ["@media (min-width: 1024px){.banner__actions{padding-bottom:5.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { 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 }); }
|
|
9
9
|
}
|
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroTopSliderComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
@@ -15,7 +15,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
15
15
|
PuroLinkTypeDirective,
|
|
16
16
|
PuroActiveModalDirective,
|
|
17
17
|
NgOptimizedImage
|
|
18
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"banner js-active-slider\"\n [puroSlider]=\"images\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-banner-slider\"\n data-slider_showbtns=\"false\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n <!-- if banner image-->\n <div class=\"js-banner-slider\">\n @for (image of images; track $index) {\n <div class=\"banner__item\">\n <img\n [ngSrc]=\"image.src\"\n [alt]=\"image.alt\"\n class=\"banner__image\"\n width=\"1920\"\n height=\"980\"\n fetchpriority=\"high\"\n priority\n />\n </div>\n }\n </div>\n <!-- if banner image-->\n <!-- if banner video -->\n @if (video) {\n <div class=\"banner__video\">\n <div class=\"banner__video--inner\">\n <iframe\n id=\"YouTubeVideoPlayer\"\n width=\"1920\"\n height=\"1080\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n src=\"{{\n video\n }}?enablejsapi=1&controls=0&showinfo=0&autoplay=1&modestbranding=1&loop=1&autohide=1&playsinline=1&widgetid=1\"\n frameborder=\"0\"\n allowfullscreen\n ></iframe>\n </div>\n </div>\n }\n @if (mainTitle) {\n <h1 class=\"banner__title\">\n <span>{{ mainTitle }}</span>\n </h1>\n }\n <div class=\"banner__content\">\n @if (pretitle) {\n <p class=\"banner__text\">{{ pretitle }}</p>\n }\n @if (title) {\n <h2 class=\"banner__heading\">{{ title }}</h2>\n }\n @if (subtitle) {\n <p class=\"banner__text\">{{ subtitle }}</p>\n }\n </div>\n <div class=\"banner__actions\">\n <div class=\"banner__group banner__group--left\">\n @if (newsletter) {\n <div class=\"banner__newsletter\">\n <a\n [href]=\"newsletter.url\"\n [linkType]=\"newsletter.linkType\"\n class=\"banner__newsletter--inner\"\n [attr.aria-label]=\"newsletter.label\"\n >\n <span class=\"icon-63\"></span>\n <strong>{{ newsletter.label }}</strong>\n </a>\n </div>\n }\n @if (spotify) {\n <div class=\"banner__spotify\">\n <div\n class=\"banner__spotify--inner\"\n role=\"button\"\n [attr.aria-label]=\"spotify ?? 'spotify icon'\"\n >\n <span class=\"icon-82\"></span>\n <strong>{{ spotify }}</strong>\n </div>\n </div>\n }\n </div>\n\n <div class=\"banner__group banner__group--right\">\n @if (languages && selectedLanguage) {\n <div class=\"banner__language\">\n <div\n class=\"banner__language--inner js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"selectedLanguage\"\n >\n <span class=\"banner__language--icon\">{{\n selectedLanguage\n }}</span>\n <strong>{{ languages }}</strong>\n </div>\n </div>\n }\n @if (fidelity) {\n <div class=\"banner__fidelityClub\">\n <a\n [href]=\"fidelity?.url\"\n [linkType]=\"fidelity?.linkType\"\n class=\"banner__fidelityClub--inner\"\n [attr.aria-label]=\"fidelity?.label\"\n >\n <span class=\"icon-60\"></span>\n <strong>{{ fidelity?.label }}</strong>\n </a>\n </div>\n }\n </div>\n </div>\n\n @if (engine) {\n <ng-container [ngTemplateOutlet]=\"engine\"></ng-container>\n }\n @if (offers) {\n <span\n activeModal\n class=\"banner__offers--tigger js-active-modal\"\n data-modal_name=\"t-offers\"\n role=\"button\"\n [attr.aria-label]=\"offers ?? 'Offers'\"\n >\n {{ offers }}\n </span>\n }\n</section>\n", styles: ["@media (min-width: 1024px){.banner__actions{padding-bottom:5.5rem}}\n"] }]
|
|
18
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"banner js-active-slider\"\n style=\"background:#F9F5ED;\"\n [puroSlider]=\"images\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-banner-slider\"\n data-slider_showbtns=\"false\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n <!-- if banner image-->\n <div class=\"js-banner-slider\">\n @for (image of images; track $index) {\n <div class=\"banner__item\">\n <img\n [ngSrc]=\"image.src\"\n [alt]=\"image.alt\"\n class=\"banner__image\"\n width=\"1920\"\n height=\"980\"\n fetchpriority=\"high\"\n decoding=\"async\"\n priority\n />\n </div>\n }\n </div>\n <!-- if banner image-->\n <!-- if banner video -->\n @if (video) {\n <div class=\"banner__video\">\n <div class=\"banner__video--inner\">\n <iframe\n id=\"YouTubeVideoPlayer\"\n width=\"1920\"\n height=\"1080\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n src=\"{{\n video\n }}?enablejsapi=1&controls=0&showinfo=0&autoplay=1&modestbranding=1&loop=1&autohide=1&playsinline=1&widgetid=1\"\n frameborder=\"0\"\n allowfullscreen\n ></iframe>\n </div>\n </div>\n }\n @if (mainTitle) {\n <h1 class=\"banner__title\">\n <span>{{ mainTitle }}</span>\n </h1>\n }\n <div class=\"banner__content\">\n @if (pretitle) {\n <p class=\"banner__text\">{{ pretitle }}</p>\n }\n @if (title) {\n <h2 class=\"banner__heading\">{{ title }}</h2>\n }\n @if (subtitle) {\n <p class=\"banner__text\">{{ subtitle }}</p>\n }\n </div>\n <div class=\"banner__actions\">\n <div class=\"banner__group banner__group--left\">\n @if (newsletter) {\n <div class=\"banner__newsletter\">\n <a\n [href]=\"newsletter.url\"\n [linkType]=\"newsletter.linkType\"\n class=\"banner__newsletter--inner\"\n [attr.aria-label]=\"newsletter.label\"\n >\n <span class=\"icon-63\"></span>\n <strong>{{ newsletter.label }}</strong>\n </a>\n </div>\n }\n @if (spotify) {\n <div class=\"banner__spotify\">\n <div\n class=\"banner__spotify--inner\"\n role=\"button\"\n [attr.aria-label]=\"spotify ?? 'spotify icon'\"\n >\n <span class=\"icon-82\"></span>\n <strong>{{ spotify }}</strong>\n </div>\n </div>\n }\n </div>\n\n <div class=\"banner__group banner__group--right\">\n @if (languages && selectedLanguage) {\n <div class=\"banner__language\">\n <div\n class=\"banner__language--inner js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"selectedLanguage\"\n >\n <span class=\"banner__language--icon\">{{\n selectedLanguage\n }}</span>\n <strong>{{ languages }}</strong>\n </div>\n </div>\n }\n @if (fidelity) {\n <div class=\"banner__fidelityClub\">\n <a\n [href]=\"fidelity?.url\"\n [linkType]=\"fidelity?.linkType\"\n class=\"banner__fidelityClub--inner\"\n [attr.aria-label]=\"fidelity?.label\"\n >\n <span class=\"icon-60\"></span>\n <strong>{{ fidelity?.label }}</strong>\n </a>\n </div>\n }\n </div>\n </div>\n\n @if (engine) {\n <ng-container [ngTemplateOutlet]=\"engine\"></ng-container>\n }\n @if (offers) {\n <span\n activeModal\n class=\"banner__offers--tigger js-active-modal\"\n data-modal_name=\"t-offers\"\n role=\"button\"\n [attr.aria-label]=\"offers ?? 'Offers'\"\n >\n {{ offers }}\n </span>\n }\n</section>\n", styles: ["@media (min-width: 1024px){.banner__actions{padding-bottom:5.5rem}}\n"] }]
|
|
19
19
|
}], propDecorators: { engine: [{
|
|
20
20
|
type: Input
|
|
21
21
|
}], title: [{
|
|
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
43
43
|
}], video: [{
|
|
44
44
|
type: Input
|
|
45
45
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby10b3Atc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdG9wLXNsaWRlci9wdXJvLXRvcC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby10b3Atc2xpZGVyL3B1cm8tdG9wLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUN0QixNQUFNLGtCQUFrQixDQUFDOzs7QUFpQjFCLE1BQU0sT0FBTyxzQkFBc0I7K0dBQXRCLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVYQzVCbkMsdTlKQTZJQSw4SEQzSEksWUFBWSxzTUFDWixtQkFBbUIsaUZBQ25CLHFCQUFxQiw0SUFDckIsd0JBQXdCLDBEQUN4QixnQkFBZ0I7OzRGQU1QLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNULFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3FCQUNuQixtQkFHb0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBQdXJvU2xpZGVyRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tdG9wLXNsaWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFB1cm9TbGlkZXJEaXJlY3RpdmUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBOZ09wdGltaXplZEltYWdlXG5dLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLXRvcC1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLXRvcC1zbGlkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvVG9wU2xpZGVyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBlbmdpbmUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1haW5UaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBzcG90aWZ5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5ld3NsZXR0ZXI/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBsYW5ndWFnZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmlkZWxpdHk/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBvZmZlcnM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRMYW5ndWFnZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBpbWFnZXM/OiBQdXJvSW1hZ2VJW107XG4gICAgQElucHV0KCkgdmlkZW8/OiBzdHJpbmc7XG59XG4iLCI8c2VjdGlvblxuICAgIGNsYXNzPVwiYmFubmVyIGpzLWFjdGl2ZS1zbGlkZXJcIlxuICAgIHN0eWxlPVwiYmFja2dyb3VuZDojRjlGNUVEO1wiXG4gICAgW3B1cm9TbGlkZXJdPVwiaW1hZ2VzXCJcbiAgICBkYXRhLXNsaWRlc19pbmZpbml0ZT1cInRydWVcIlxuICAgIGRhdGEtc2xpZGVyX25hbWU9XCJqcy1iYW5uZXItc2xpZGVyXCJcbiAgICBkYXRhLXNsaWRlcl9zaG93YnRucz1cImZhbHNlXCJcbiAgICBkYXRhLXNsaWRlcl9zaG93ZG90cz1cImZhbHNlXCJcbiAgICBkYXRhLXNsaWRlcl9mYWRlPVwidHJ1ZVwiXG4gICAgZGF0YS1zbGlkZXJfYXV0b3BsYXk9XCJ0cnVlXCJcbiAgICBkYXRhLXNsaWRlc19wYz1cIjFcIlxuPlxuICAgIDwhLS0gaWYgYmFubmVyIGltYWdlLS0+XG4gICAgPGRpdiBjbGFzcz1cImpzLWJhbm5lci1zbGlkZXJcIj5cbiAgICAgICAgQGZvciAoaW1hZ2Ugb2YgaW1hZ2VzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX2l0ZW1cIj5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJpbWFnZS5zcmNcIlxuICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltYWdlLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFubmVyX19pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTkyMFwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjk4MFwiXG4gICAgICAgICAgICAgICAgICAgIGZldGNocHJpb3JpdHk9XCJoaWdoXCJcbiAgICAgICAgICAgICAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPCEtLSBpZiBiYW5uZXIgaW1hZ2UtLT5cbiAgICA8IS0tIGlmIGJhbm5lciB2aWRlbyAtLT5cbiAgICBAaWYgKHZpZGVvKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX3ZpZGVvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX192aWRlby0taW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiWW91VHViZVZpZGVvUGxheWVyXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOTIwXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTA4MFwiXG4gICAgICAgICAgICAgICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cInt7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWRlb1xuICAgICAgICAgICAgICAgICAgICB9fT9lbmFibGVqc2FwaT0xJmFtcDtjb250cm9scz0wJmFtcDtzaG93aW5mbz0wJmFtcDthdXRvcGxheT0xJmFtcDttb2Rlc3RicmFuZGluZz0xJmFtcDtsb29wPTEmYW1wO2F1dG9oaWRlPTEmYW1wO3BsYXlzaW5saW5lPTEmYW1wO3dpZGdldGlkPTFcIlxuICAgICAgICAgICAgICAgICAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW5cbiAgICAgICAgICAgICAgICA+PC9pZnJhbWU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAobWFpblRpdGxlKSB7XG4gICAgICAgIDxoMSBjbGFzcz1cImJhbm5lcl9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IG1haW5UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9oMT5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImJhbm5lcl9fY29udGVudFwiPlxuICAgICAgICBAaWYgKHByZXRpdGxlKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImJhbm5lcl9fdGV4dFwiPnt7IHByZXRpdGxlIH19PC9wPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImJhbm5lcl9faGVhZGluZ1wiPnt7IHRpdGxlIH19PC9oMj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN1YnRpdGxlKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImJhbm5lcl9fdGV4dFwiPnt7IHN1YnRpdGxlIH19PC9wPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJhbm5lcl9fYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19ncm91cCBiYW5uZXJfX2dyb3VwLS1sZWZ0XCI+XG4gICAgICAgICAgICBAaWYgKG5ld3NsZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19uZXdzbGV0dGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJuZXdzbGV0dGVyLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibmV3c2xldHRlci5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhbm5lcl9fbmV3c2xldHRlci0taW5uZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuZXdzbGV0dGVyLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLTYzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBuZXdzbGV0dGVyLmxhYmVsIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc3BvdGlmeSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX3Nwb3RpZnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYW5uZXJfX3Nwb3RpZnktLWlubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzcG90aWZ5ID8/ICdzcG90aWZ5IGljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLTgyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBzcG90aWZ5IH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19ncm91cCBiYW5uZXJfX2dyb3VwLS1yaWdodFwiPlxuICAgICAgICAgICAgQGlmIChsYW5ndWFnZXMgJiYgc2VsZWN0ZWRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX2xhbmd1YWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFubmVyX19sYW5ndWFnZS0taW5uZXIganMtYWN0aXZlLW1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJsYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFubmVyX19sYW5ndWFnZS0taWNvblwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGxhbmd1YWdlcyB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZmlkZWxpdHkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19maWRlbGl0eUNsdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImZpZGVsaXR5Py51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImZpZGVsaXR5Py5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhbm5lcl9fZmlkZWxpdHlDbHViLS1pbm5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpZGVsaXR5Py5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi02MFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZmlkZWxpdHk/LmxhYmVsIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGVuZ2luZSkge1xuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVuZ2luZVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAaWYgKG9mZmVycykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGNsYXNzPVwiYmFubmVyX19vZmZlcnMtLXRpZ2dlciBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwidC1vZmZlcnNcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9mZmVycyA/PyAnT2ZmZXJzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG9mZmVycyB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9zZWN0aW9uPlxuIl19
|
|
@@ -1,236 +1,176 @@
|
|
|
1
|
-
import { Directive, effect, input } from '@angular/core';
|
|
1
|
+
import { Directive, ElementRef, PLATFORM_ID, effect, inject, input, } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class PuroSliderDirective {
|
|
4
|
-
constructor(
|
|
5
|
-
this.el =
|
|
5
|
+
constructor() {
|
|
6
|
+
this.el = inject(ElementRef);
|
|
7
|
+
this.platformId = inject(PLATFORM_ID);
|
|
6
8
|
this.puroSlider = input.required();
|
|
7
9
|
effect(() => {
|
|
8
|
-
if (this.puroSlider()) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
if (isPlatformBrowser(this.platformId) && this.puroSlider()) {
|
|
11
|
+
this.waitForSlick().then(() => {
|
|
12
|
+
// Esperar un frame para asegurar DOM listo
|
|
13
|
+
requestAnimationFrame(() => this.initSlider());
|
|
14
|
+
});
|
|
12
15
|
}
|
|
13
16
|
});
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Espera de forma no bloqueante hasta que Slick esté disponible en window.
|
|
20
|
+
* Usa requestAnimationFrame (sin setTimeout ni setInterval)
|
|
21
|
+
*/
|
|
22
|
+
waitForSlick() {
|
|
23
|
+
return new Promise((resolve) => {
|
|
24
|
+
const check = () => {
|
|
25
|
+
const w = window;
|
|
26
|
+
if (w?.jQuery?.fn?.slick || w?.$?.fn?.slick) {
|
|
27
|
+
resolve();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
requestAnimationFrame(check);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
check();
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
initSlider() {
|
|
37
|
+
const parent = $(this.el.nativeElement);
|
|
38
|
+
// Evitar re-inicialización
|
|
18
39
|
if (parent.hasClass('slick-initialized'))
|
|
19
40
|
return;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
const sliderName = parent.data('slider_name');
|
|
42
|
+
const sliderSelector = parent.find(`.${sliderName}`);
|
|
43
|
+
if (!sliderSelector.length)
|
|
44
|
+
return;
|
|
45
|
+
// Config general
|
|
46
|
+
const info = parent.find('.js-content-slider');
|
|
47
|
+
const sliderArrows = parent.find('.js-slider-arrows');
|
|
48
|
+
const sliderDots = parent.find('.js-slider-dots');
|
|
49
|
+
const sliderBtns = parent.data('slider_btns');
|
|
50
|
+
const baseOptions = {
|
|
51
|
+
dots: parent.data('slider_showdots') ?? false,
|
|
52
|
+
arrows: parent.data('slider_showbtns') ?? true,
|
|
53
|
+
infinite: parent.data('slides_infinite') ?? true,
|
|
54
|
+
fade: parent.data('slider_fade') ?? false,
|
|
55
|
+
centerMode: parent.data('slider_centermode') ?? false,
|
|
56
|
+
centerPadding: '0',
|
|
57
|
+
cssEase: 'cubic-bezier(0.785, 0.135, 0.15, 0.86)',
|
|
58
|
+
speed: parent.data('slider_speed') ?? 750,
|
|
59
|
+
slidesToShow: parent.data('slides_pc') ?? 1,
|
|
60
|
+
slidesToScroll: 1,
|
|
61
|
+
rows: parent.data('slidesrows_pc') ?? 1,
|
|
62
|
+
autoplay: parent.data('slider_autoplay') ?? false,
|
|
63
|
+
autoplaySpeed: 5000,
|
|
64
|
+
useTransform: true,
|
|
65
|
+
appendArrows: sliderArrows,
|
|
66
|
+
appendDots: sliderDots,
|
|
67
|
+
prevArrow: `
|
|
68
|
+
<div class='prev ${sliderBtns} slick-btn slick-prev' role='button' tabindex='0' aria-label='Prev'>
|
|
69
|
+
<i class='icon-6'></i>
|
|
70
|
+
</div>`,
|
|
71
|
+
nextArrow: `
|
|
72
|
+
<div class='next ${sliderBtns} slick-btn slick-next' role='button' tabindex='0' aria-label='Next'>
|
|
73
|
+
<i class='icon-6'></i>
|
|
74
|
+
</div>`,
|
|
75
|
+
customPaging: function (slick, i) {
|
|
76
|
+
const heading = $(slick.$slides[i])
|
|
77
|
+
?.find('[data-slide_heading]')
|
|
78
|
+
?.attr('data-slide_heading');
|
|
79
|
+
return $('<button type="button" class="slick-slideDot-label" />').text(heading ?? '');
|
|
80
|
+
},
|
|
81
|
+
responsive: [
|
|
82
|
+
{
|
|
83
|
+
breakpoint: 1680,
|
|
84
|
+
settings: {
|
|
85
|
+
slidesToShow: parent.data('slides_laptop') ?? 1,
|
|
86
|
+
rows: parent.data('slidesrows_laptop') ?? 1,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
breakpoint: 1280,
|
|
91
|
+
settings: {
|
|
92
|
+
slidesToShow: parent.data('slides_tablet') ?? 1,
|
|
93
|
+
rows: parent.data('slidesrows_tablet') ?? 1,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
breakpoint: 1024,
|
|
98
|
+
settings: {
|
|
99
|
+
slidesToShow: parent.data('slides_mobile') ?? 1,
|
|
100
|
+
rows: parent.data('slidesrows_mobile') ?? 1,
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
breakpoint: 768,
|
|
105
|
+
settings: {
|
|
106
|
+
slidesToShow: parent.data('slides_mobile_small') ?? 1,
|
|
107
|
+
rows: parent.data('slidesrows_mobile_small') ?? 1,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
breakpoint: 540,
|
|
112
|
+
settings: {
|
|
113
|
+
slidesToShow: parent.data('slides_mobile_xsmall') ??
|
|
114
|
+
parent.data('slides_mobile_small') ??
|
|
115
|
+
1,
|
|
116
|
+
rows: parent.data('slidesrows_mobile_xsmall') ??
|
|
117
|
+
parent.data('slidesrows_mobile_small') ??
|
|
118
|
+
1,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
};
|
|
123
|
+
// Caso especial para Spotify
|
|
124
|
+
if (sliderName === 'js-spotifyPlayer-slider') {
|
|
125
|
+
sliderSelector.on('beforeChange', (event, slick, current, next) => {
|
|
126
|
+
if (current !== next) {
|
|
53
127
|
document
|
|
54
128
|
.querySelectorAll('.slick-center + .slick-cloned')
|
|
55
|
-
.forEach((
|
|
56
|
-
setTimeout(() =>
|
|
129
|
+
.forEach((nextEl) => {
|
|
130
|
+
setTimeout(() => nextEl.classList.add('slick-current', 'slick-center'));
|
|
57
131
|
});
|
|
58
132
|
}
|
|
59
133
|
});
|
|
60
134
|
}
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
rows: sliderrows_pc,
|
|
95
|
-
autoplay: slider_autoplay,
|
|
96
|
-
autoplaySpeed: 5000,
|
|
97
|
-
asNavFor: info,
|
|
98
|
-
responsive: [
|
|
99
|
-
{
|
|
100
|
-
breakpoint: 1680,
|
|
101
|
-
settings: {
|
|
102
|
-
slidesToShow: slider_laptop,
|
|
103
|
-
rows: sliderrows_laptop,
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
breakpoint: 1280,
|
|
108
|
-
settings: {
|
|
109
|
-
slidesToShow: slider_tablet,
|
|
110
|
-
rows: sliderrows_tablet,
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
breakpoint: 1024,
|
|
115
|
-
settings: {
|
|
116
|
-
slidesToShow: slider_mobile,
|
|
117
|
-
rows: sliderrows_mobile,
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
breakpoint: 768,
|
|
122
|
-
settings: {
|
|
123
|
-
slidesToShow: slider_mobile_small,
|
|
124
|
-
rows: sliderrows_mobile_small,
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
breakpoint: 540,
|
|
129
|
-
settings: {
|
|
130
|
-
slidesToShow: slider_mobile_xsmall,
|
|
131
|
-
rows: sliderrows_mobile_xsmall,
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
breakpoint: 0,
|
|
136
|
-
settings: {
|
|
137
|
-
slidesToShow: slider_mobile_xsmall,
|
|
138
|
-
rows: sliderrows_mobile_xsmall,
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
});
|
|
143
|
-
info.slick({
|
|
144
|
-
dots: false,
|
|
145
|
-
arrows: false,
|
|
146
|
-
infinite: true,
|
|
147
|
-
useTransform: true,
|
|
148
|
-
cssEase: 'cubic-bezier(0.785, 0.135, 0.15, 0.86)',
|
|
149
|
-
speed: 750,
|
|
150
|
-
fade: true,
|
|
151
|
-
slidesToShow: 1,
|
|
152
|
-
slidesToScroll: 1,
|
|
153
|
-
autoplay: false,
|
|
154
|
-
autoplaySpeed: 5000,
|
|
155
|
-
draggable: false,
|
|
156
|
-
swipe: false,
|
|
157
|
-
swipeToSlide: false,
|
|
158
|
-
touchMove: false,
|
|
135
|
+
// Esperar a que el contenedor sea visible
|
|
136
|
+
const observer = new ResizeObserver((entries) => {
|
|
137
|
+
const visible = entries.some((e) => e.contentRect.width > 0 && e.contentRect.height > 0);
|
|
138
|
+
if (visible) {
|
|
139
|
+
observer.disconnect();
|
|
140
|
+
requestAnimationFrame(() => {
|
|
141
|
+
if (info.length > 0) {
|
|
142
|
+
// Slider principal
|
|
143
|
+
sliderSelector.slick({
|
|
144
|
+
...baseOptions,
|
|
145
|
+
asNavFor: info,
|
|
146
|
+
});
|
|
147
|
+
// Slider sincronizado
|
|
148
|
+
info.slick({
|
|
149
|
+
dots: false,
|
|
150
|
+
arrows: false,
|
|
151
|
+
infinite: true,
|
|
152
|
+
fade: true,
|
|
153
|
+
useTransform: true,
|
|
154
|
+
cssEase: 'cubic-bezier(0.785, 0.135, 0.15, 0.86)',
|
|
155
|
+
speed: 750,
|
|
156
|
+
slidesToShow: 1,
|
|
157
|
+
slidesToScroll: 1,
|
|
158
|
+
autoplay: false,
|
|
159
|
+
draggable: false,
|
|
160
|
+
swipe: false,
|
|
161
|
+
touchMove: false,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// Slider simple
|
|
166
|
+
sliderSelector.slick(baseOptions);
|
|
167
|
+
}
|
|
159
168
|
});
|
|
160
169
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
dots: slider_showdots,
|
|
164
|
-
arrows: slider_showbtns,
|
|
165
|
-
appendArrows: slider_arrows,
|
|
166
|
-
prevArrow: "<div class='prev " +
|
|
167
|
-
slider_btns +
|
|
168
|
-
" slick-btn slick-prev' role='button' tabindex='0' aria-label='Previously Item Button'><i class='icon-6'></i></div>",
|
|
169
|
-
nextArrow: "<div class='next " +
|
|
170
|
-
slider_btns +
|
|
171
|
-
" slick-btn slick-next' role='button' tabindex='0' aria-label='Next Item Button'><i class='icon-6'></i></div>",
|
|
172
|
-
appendDots: slider_dots,
|
|
173
|
-
customPaging: function (slick, i) {
|
|
174
|
-
var slide_heading = $(slick.$slides[i])
|
|
175
|
-
.find('[data-slide_heading]')
|
|
176
|
-
?.attr('data-slide_heading');
|
|
177
|
-
return $('<button type="button" class="slick-slideDot-label" />')?.text(slide_heading);
|
|
178
|
-
},
|
|
179
|
-
infinite: slider_infinite,
|
|
180
|
-
useTransform: true,
|
|
181
|
-
fade: slider_fade,
|
|
182
|
-
centerMode: slider_centermode,
|
|
183
|
-
centerPadding: '0',
|
|
184
|
-
cssEase: 'cubic-bezier(0.785, 0.135, 0.15, 0.86)',
|
|
185
|
-
speed: slider_speed,
|
|
186
|
-
slidesToShow: slider_pc,
|
|
187
|
-
slidesToScroll: 1,
|
|
188
|
-
rows: sliderrows_pc,
|
|
189
|
-
autoplay: slider_autoplay,
|
|
190
|
-
autoplaySpeed: 5000,
|
|
191
|
-
swipeToSlide: true,
|
|
192
|
-
responsive: [
|
|
193
|
-
{
|
|
194
|
-
breakpoint: 1680,
|
|
195
|
-
settings: {
|
|
196
|
-
slidesToShow: slider_laptop,
|
|
197
|
-
rows: sliderrows_laptop,
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
breakpoint: 1366,
|
|
202
|
-
settings: {
|
|
203
|
-
slidesToShow: slider_tablet,
|
|
204
|
-
rows: sliderrows_tablet,
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
breakpoint: 1024,
|
|
209
|
-
settings: {
|
|
210
|
-
slidesToShow: slider_mobile,
|
|
211
|
-
rows: sliderrows_mobile,
|
|
212
|
-
},
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
breakpoint: 768,
|
|
216
|
-
settings: {
|
|
217
|
-
slidesToShow: slider_mobile_small,
|
|
218
|
-
rows: sliderrows_mobile_small,
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
breakpoint: 540,
|
|
223
|
-
settings: {
|
|
224
|
-
slidesToShow: slider_mobile_xsmall,
|
|
225
|
-
rows: sliderrows_mobile_xsmall,
|
|
226
|
-
},
|
|
227
|
-
},
|
|
228
|
-
],
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
}
|
|
170
|
+
});
|
|
171
|
+
observer.observe(this.el.nativeElement);
|
|
232
172
|
}
|
|
233
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroSliderDirective, deps: [
|
|
173
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroSliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
234
174
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.12", type: PuroSliderDirective, isStandalone: true, selector: "[puroSlider]", inputs: { puroSlider: { classPropertyName: "puroSlider", publicName: "puroSlider", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
235
175
|
}
|
|
236
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroSliderDirective, decorators: [{
|
|
@@ -239,5 +179,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
239
179
|
selector: '[puroSlider]',
|
|
240
180
|
standalone: true,
|
|
241
181
|
}]
|
|
242
|
-
}], ctorParameters: () => [
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zbGlkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zbGlkZXIvcHVyby1zbGlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRckUsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QixZQUE2QixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUYzQyxlQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBcUIsQ0FBQztRQUc3QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDVDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVU7UUFDTixZQUFZO1FBQ1osSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBNEIsQ0FBQyxFQUNoRCxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDeEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQzFDLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQ2hELGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQ2hELFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQzVDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFv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O2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3B1cm9TbGlkZXJdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvU2xpZGVyRGlyZWN0aXZlIHtcbiAgICBwdXJvU2xpZGVyID0gaW5wdXQucmVxdWlyZWQ8YW55W10gfCB1bmRlZmluZWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5wdXJvU2xpZGVyKCkpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkU2xpZGVyKCk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRTbGlkZXIoKSB7XG4gICAgICAgIC8vIHZhcmlhYmxlc1xuICAgICAgICB2YXIgcGFyZW50ID0gJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLFxuICAgICAgICAgICAgc2xpZGVyX25hbWUgPSBwYXJlbnQuZGF0YSgnc2xpZGVyX25hbWUnKSxcbiAgICAgICAgICAgIHNsaWRlcl9zcGVlZCA9IHBhcmVudC5kYXRhKCdzbGlkZXJfc3BlZWQnKSxcbiAgICAgICAgICAgIHNsaWRlcl9zaG93YnRucyA9IHBhcmVudC5kYXRhKCdzbGlkZXJfc2hvd2J0bnMnKSxcbiAgICAgICAgICAgIHNsaWRlcl9hcnJvd3MgPSBwYXJlbnQuZmluZCgnLmpzLXNsaWRlci1hcnJvd3MnKSxcbiAgICAgICAgICAgIHNsaWRlcl9kb3RzID0gcGFyZW50LmZpbmQoJy5qcy1zbGlkZXItZG90cycpLFxuICAgICAgICAgICAgaW5mbyA9IHBhcmVudC5maW5kKCcuanMtY29udGVudC1zbGlkZXInKSxcbiAgICAgICAgICAgIHNsaWRlcl9idG5zID0gcGFyZW50LmRhdGEoJ3NsaWRlcl9idG5zJyksXG4gICAgICAgICAgICBzbGlkZXJfc2hvd2RvdHMgPSBwYXJlbnQuZGF0YSgnc2xpZGVyX3Nob3dkb3RzJyksXG4gICAgICAgICAgICBzbGlkZXJfZmFkZSA9IHBhcmVudC5kYXRhKCdzbGlkZXJfZmFkZScpLFxuICAgICAgICAgICAgc2xpZGVyX2NlbnRlcm1vZGUgPSBwYXJlbnQuZGF0YSgnc2xpZGVyX2NlbnRlcm1vZGUnKSxcbiAgICAgICAgICAgIHNsaWRlcl9hdXRvcGxheSA9IHBhcmVudC5kYXRhKCdzbGlkZXJfYXV0b3BsYXknKSxcbiAgICAgICAgICAgIHNsaWRlcl9wYyA9IHBhcmVudC5kYXRhKCdzbGlkZXNfcGMnKSxcbiAgICAgICAgICAgIHNsaWRlcl9sYXB0b3AgPSBwYXJlbnQuZGF0YSgnc2xpZGVzX2xhcHRvcCcpLFxuICAgICAgICAgICAgc2xpZGVyX3RhYmxldCA9IHBhcmVudC5kYXRhKCdzbGlkZXNfdGFibGV0JyksXG4gICAgICAgICAgICBzbGlkZXJfbW9iaWxlID0gcGFyZW50LmRhdGEoJ3NsaWRlc19tb2JpbGUnKSxcbiAgICAgICAgICAgIHNsaWRlcl9tb2JpbGVfc21hbGwgPSBwYXJlbnQuZGF0YSgnc2xpZGVzX21vYmlsZV9zbWFsbCcpLFxuICAgICAgICAgICAgc2xpZGVyX21vYmlsZV94c21hbGwgPSBwYXJlbnQuZGF0YSgnc2xpZGVzX21vYmlsZV94c21hbGwnKSxcbiAgICAgICAgICAgIHNsaWRlcl9pbmZpbml0ZSA9IHBhcmVudC5kYXRhKCdzbGlkZXNfaW5maW5pdGUnKSxcbiAgICAgICAgICAgIHNsaWRlcnJvd3NfcGMgPSBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19wYycpLFxuICAgICAgICAgICAgc2xpZGVycm93c19sYXB0b3AgPSBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19sYXB0b3AnKSxcbiAgICAgICAgICAgIHNsaWRlcnJvd3NfdGFibGV0ID0gcGFyZW50LmRhdGEoJ3NsaWRlc3Jvd3NfdGFibGV0JyksXG4gICAgICAgICAgICBzbGlkZXJyb3dzX21vYmlsZSA9IHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX21vYmlsZScpLFxuICAgICAgICAgICAgc2xpZGVycm93c19tb2JpbGVfc21hbGwgPSBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19tb2JpbGVfc21hbGwnKSxcbiAgICAgICAgICAgIHNsaWRlcnJvd3NfbW9iaWxlX3hzbWFsbCA9IHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX21vYmlsZV94c21hbGwnKSxcbiAgICAgICAgICAgIHNsaWRlcl9zZWxlY3RvciA9IHBhcmVudC5maW5kKCcuJyArIHNsaWRlcl9uYW1lKTtcblxuICAgICAgICBpZiAocGFyZW50Lmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSByZXR1cm47XG5cbiAgICAgICAgaWYgKCFzbGlkZXJfc3BlZWQpIHtcbiAgICAgICAgICAgIHNsaWRlcl9zcGVlZCA9IDc1MDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNsaWRlcl9jZW50ZXJtb2RlKSB7XG4gICAgICAgICAgICBzbGlkZXJfY2VudGVybW9kZSA9ICdmYWxzZSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzbGlkZXJfbW9iaWxlX3hzbWFsbCkge1xuICAgICAgICAgICAgc2xpZGVyX21vYmlsZV94c21hbGwgPSBzbGlkZXJfbW9iaWxlX3NtYWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2xpZGVycm93c19wYykge1xuICAgICAgICAgICAgc2xpZGVycm93c19wYyA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzbGlkZXJyb3dzX2xhcHRvcCkge1xuICAgICAgICAgICAgc2xpZGVycm93c19sYXB0b3AgPSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2xpZGVycm93c190YWJsZXQpIHtcbiAgICAgICAgICAgIHNsaWRlcnJvd3NfdGFibGV0ID0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNsaWRlcnJvd3NfbW9iaWxlKSB7XG4gICAgICAgICAgICBzbGlkZXJyb3dzX21vYmlsZSA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzbGlkZXJyb3dzX21vYmlsZV9zbWFsbCkge1xuICAgICAgICAgICAgc2xpZGVycm93c19tb2JpbGVfc21hbGwgPSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2xpZGVycm93c19tb2JpbGVfeHNtYWxsKSB7XG4gICAgICAgICAgICBzbGlkZXJyb3dzX21vYmlsZV94c21hbGwgPSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDU0MCAmJiBwYXJlbnQuaGFzQ2xhc3MoJ3Jvd3MtMicpKSB7XG4gICAgICAgICAgICBzbGlkZXJyb3dzX3BjID0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2xpZGVyX3NlbGVjdG9yID09ICdqcy1zcG90aWZ5UGxheWVyLXNsaWRlcicpIHtcbiAgICAgICAgICAgICQoc2xpZGVyX3NlbGVjdG9yKS5vbihcbiAgICAgICAgICAgICAgICAnYmVmb3JlQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiBFdmVudCxcbiAgICAgICAgICAgICAgICAgICAgc2xpY2s6IGFueSxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNsaWRlOiBhbnksXG4gICAgICAgICAgICAgICAgICAgIG5leHRTbGlkZTogYW55XG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2xpZGUgIT09IG5leHRTbGlkZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLnNsaWNrLWNlbnRlciArIC5zbGljay1jbG9uZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChuZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2xpY2stY3VycmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NsaWNrLWNlbnRlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvL2luaXQgc2xpZGVyXG4gICAgICAgIGlmIChzbGlkZXJfc2VsZWN0b3IubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaW5mby5sZW5ndGggIT0gMCkge1xuICAgICAgICAgICAgICAgICQoc2xpZGVyX3NlbGVjdG9yKT8uc2xpY2soe1xuICAgICAgICAgICAgICAgICAgICBkb3RzOiBzbGlkZXJfc2hvd2RvdHMsXG4gICAgICAgICAgICAgICAgICAgIGFycm93czogc2xpZGVyX3Nob3didG5zLFxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRBcnJvd3M6IHNsaWRlcl9hcnJvd3MsXG4gICAgICAgICAgICAgICAgICAgIHByZXZBcnJvdzpcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiPGRpdiBjbGFzcz0ncHJldiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJfYnRucyArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBzbGljay1idG4gc2xpY2stcHJldicgcm9sZT0nYnV0dG9uJyB0YWJpbmRleD0nMCcgYXJpYS1sYWJlbD0nUHJldmlvdXNseSBJdGVtIEJ1dHRvbic+PGkgY2xhc3M9J2ljb24tNic+PC9pPjwvZGl2PlwiLFxuICAgICAgICAgICAgICAgICAgICBuZXh0QXJyb3c6XG4gICAgICAgICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J25leHQgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyX2J0bnMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIgc2xpY2stYnRuIHNsaWNrLW5leHQnIHJvbGU9J2J1dHRvbicgdGFiaW5kZXg9JzAnIGFyaWEtbGFiZWw9J05leHQgSXRlbSBCdXR0b24nPjxpIGNsYXNzPSdpY29uLTYnPjwvaT48L2Rpdj5cIixcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kRG90czogc2xpZGVyX2RvdHMsXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbVBhZ2luZzogZnVuY3Rpb24gKHNsaWNrOiBhbnksIGk6IG51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNsaWRlX2hlYWRpbmcgPSAkKHNsaWNrLiRzbGlkZXNbaV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5maW5kKCdbZGF0YS1zbGlkZV9oZWFkaW5nXScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5hdHRyKCdkYXRhLXNsaWRlX2hlYWRpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNsaWNrLXNsaWRlRG90LWxhYmVsXCIgLz4nXG4gICAgICAgICAgICAgICAgICAgICAgICApPy50ZXh0KHNsaWRlX2hlYWRpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBpbmZpbml0ZTogc2xpZGVyX2luZmluaXRlLFxuICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc2Zvcm06IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZhZGU6IHNsaWRlcl9mYWRlLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiBzbGlkZXJfY2VudGVybW9kZSxcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyUGFkZGluZzogJzAnLFxuICAgICAgICAgICAgICAgICAgICBjc3NFYXNlOiAnY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiknLFxuICAgICAgICAgICAgICAgICAgICBzcGVlZDogc2xpZGVyX3NwZWVkLFxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlcl9wYyxcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICAgICAgICAgIHJvd3M6IHNsaWRlcnJvd3NfcGMsXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBzbGlkZXJfYXV0b3BsYXksXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5U3BlZWQ6IDUwMDAsXG4gICAgICAgICAgICAgICAgICAgIGFzTmF2Rm9yOiBpbmZvLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTY4MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlcl9sYXB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHNsaWRlcnJvd3NfbGFwdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDEyODAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXJfdGFibGV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBzbGlkZXJyb3dzX3RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMDI0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVyX21vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93czogc2xpZGVycm93c19tb2JpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNzY4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVyX21vYmlsZV9zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93czogc2xpZGVycm93c19tb2JpbGVfc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNTQwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVyX21vYmlsZV94c21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHNsaWRlcnJvd3NfbW9iaWxlX3hzbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVyX21vYmlsZV94c21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHNsaWRlcnJvd3NfbW9iaWxlX3hzbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpbmZvLnNsaWNrKHtcbiAgICAgICAgICAgICAgICAgICAgZG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFycm93czogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGluZmluaXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc2Zvcm06IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNzc0Vhc2U6ICdjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KScsXG4gICAgICAgICAgICAgICAgICAgIHNwZWVkOiA3NTAsXG4gICAgICAgICAgICAgICAgICAgIGZhZGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMSxcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogNTAwMCxcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc3dpcGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzd2lwZVRvU2xpZGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB0b3VjaE1vdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKHNsaWRlcl9zZWxlY3Rvcik/LnNsaWNrKHtcbiAgICAgICAgICAgICAgICAgICAgZG90czogc2xpZGVyX3Nob3dkb3RzLFxuICAgICAgICAgICAgICAgICAgICBhcnJvd3M6IHNsaWRlcl9zaG93YnRucyxcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kQXJyb3dzOiBzbGlkZXJfYXJyb3dzLFxuICAgICAgICAgICAgICAgICAgICBwcmV2QXJyb3c6XG4gICAgICAgICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3ByZXYgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyX2J0bnMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIgc2xpY2stYnRuIHNsaWNrLXByZXYnIHJvbGU9J2J1dHRvbicgdGFiaW5kZXg9JzAnIGFyaWEtbGFiZWw9J1ByZXZpb3VzbHkgSXRlbSBCdXR0b24nPjxpIGNsYXNzPSdpY29uLTYnPjwvaT48L2Rpdj5cIixcbiAgICAgICAgICAgICAgICAgICAgbmV4dEFycm93OlxuICAgICAgICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSduZXh0IFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlcl9idG5zICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIHNsaWNrLWJ0biBzbGljay1uZXh0JyByb2xlPSdidXR0b24nIHRhYmluZGV4PScwJyBhcmlhLWxhYmVsPSdOZXh0IEl0ZW0gQnV0dG9uJz48aSBjbGFzcz0naWNvbi02Jz48L2k+PC9kaXY+XCIsXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZERvdHM6IHNsaWRlcl9kb3RzLFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21QYWdpbmc6IGZ1bmN0aW9uIChzbGljazogYW55LCBpOiBudW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzbGlkZV9oZWFkaW5nID0gJChzbGljay4kc2xpZGVzW2ldKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCdbZGF0YS1zbGlkZV9oZWFkaW5nXScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5hdHRyKCdkYXRhLXNsaWRlX2hlYWRpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNsaWNrLXNsaWRlRG90LWxhYmVsXCIgLz4nXG4gICAgICAgICAgICAgICAgICAgICAgICApPy50ZXh0KHNsaWRlX2hlYWRpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBpbmZpbml0ZTogc2xpZGVyX2luZmluaXRlLFxuICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc2Zvcm06IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZhZGU6IHNsaWRlcl9mYWRlLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiBzbGlkZXJfY2VudGVybW9kZSxcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyUGFkZGluZzogJzAnLFxuICAgICAgICAgICAgICAgICAgICBjc3NFYXNlOiAnY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiknLFxuICAgICAgICAgICAgICAgICAgICBzcGVlZDogc2xpZGVyX3NwZWVkLFxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlcl9wYyxcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICAgICAgICAgIHJvd3M6IHNsaWRlcnJvd3NfcGMsXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBzbGlkZXJfYXV0b3BsYXksXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5U3BlZWQ6IDUwMDAsXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlVG9TbGlkZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDE2ODAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXJfbGFwdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBzbGlkZXJyb3dzX2xhcHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMzY2LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVyX3RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93czogc2xpZGVycm93c190YWJsZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTAyNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlcl9tb2JpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHNsaWRlcnJvd3NfbW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDc2OCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlcl9tb2JpbGVfc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHNsaWRlcnJvd3NfbW9iaWxlX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDU0MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlcl9tb2JpbGVfeHNtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBzbGlkZXJyb3dzX21vYmlsZV94c21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
182
|
+
}], ctorParameters: () => [] });
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zbGlkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zbGlkZXIvcHVyby1zbGlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFRcEQsTUFBTSxPQUFPLG1CQUFtQjtJQU01QjtRQUxpQixPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEQsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7UUFHN0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDekQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQzFCLDJDQUEyQztvQkFDM0MscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2hCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMzQixNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxDQUFDLEdBQUcsTUFBYSxDQUFDO2dCQUN4QixJ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dEIsSUFBSSxDQUFDLEtBQUssQ0FBQzs0QkFDUCxJQUFJLEVBQUUsS0FBSzs0QkFDWCxNQUFNLEVBQUUsS0FBSzs0QkFDYixRQUFRLEVBQUUsSUFBSTs0QkFDZCxJQUFJLEVBQUUsSUFBSTs0QkFDVixZQUFZLEVBQUUsSUFBSTs0QkFDbEIsT0FBTyxFQUNILHdDQUF3Qzs0QkFDNUMsS0FBSyxFQUFFLEdBQUc7NEJBQ1YsWUFBWSxFQUFFLENBQUM7NEJBQ2YsY0FBYyxFQUFFLENBQUM7NEJBQ2pCLFFBQVEsRUFBRSxLQUFLOzRCQUNmLFNBQVMsRUFBRSxLQUFLOzRCQUNoQixLQUFLLEVBQUUsS0FBSzs0QkFDWixTQUFTLEVBQUUsS0FBSzt5QkFDbkIsQ0FBQyxDQUFDO3FCQUNOO3lCQUFNO3dCQUNILGdCQUFnQjt3QkFDaEIsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztxQkFDckM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7K0dBL0xRLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIFBMQVRGT1JNX0lELFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcHVyb1NsaWRlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9TbGlkZXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIHB1cm9TbGlkZXIgPSBpbnB1dC5yZXF1aXJlZDxhbnlbXSB8IHVuZGVmaW5lZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdGhpcy5wdXJvU2xpZGVyKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndhaXRGb3JTbGljaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBFc3BlcmFyIHVuIGZyYW1lIHBhcmEgYXNlZ3VyYXIgRE9NIGxpc3RvXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmluaXRTbGlkZXIoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVzcGVyYSBkZSBmb3JtYSBubyBibG9xdWVhbnRlIGhhc3RhIHF1ZSBTbGljayBlc3TDqSBkaXNwb25pYmxlIGVuIHdpbmRvdy5cbiAgICAgKiBVc2EgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIChzaW4gc2V0VGltZW91dCBuaSBzZXRJbnRlcnZhbClcbiAgICAgKi9cbiAgICBwcml2YXRlIHdhaXRGb3JTbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGVjayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB3ID0gd2luZG93IGFzIGFueTtcbiAgICAgICAgICAgICAgICBpZiAodz8ualF1ZXJ5Py5mbj8uc2xpY2sgfHwgdz8uJD8uZm4/LnNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2spO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTbGlkZXIoKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9ICQodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgICAvLyBFdml0YXIgcmUtaW5pY2lhbGl6YWNpw7NuXG4gICAgICAgIGlmIChwYXJlbnQuaGFzQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJykpIHJldHVybjtcblxuICAgICAgICBjb25zdCBzbGlkZXJOYW1lID0gcGFyZW50LmRhdGEoJ3NsaWRlcl9uYW1lJyk7XG4gICAgICAgIGNvbnN0IHNsaWRlclNlbGVjdG9yID0gcGFyZW50LmZpbmQoYC4ke3NsaWRlck5hbWV9YCk7XG4gICAgICAgIGlmICghc2xpZGVyU2VsZWN0b3IubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgLy8gQ29uZmlnIGdlbmVyYWxcbiAgICAgICAgY29uc3QgaW5mbyA9IHBhcmVudC5maW5kKCcuanMtY29udGVudC1zbGlkZXInKTtcbiAgICAgICAgY29uc3Qgc2xpZGVyQXJyb3dzID0gcGFyZW50LmZpbmQoJy5qcy1zbGlkZXItYXJyb3dzJyk7XG4gICAgICAgIGNvbnN0IHNsaWRlckRvdHMgPSBwYXJlbnQuZmluZCgnLmpzLXNsaWRlci1kb3RzJyk7XG4gICAgICAgIGNvbnN0IHNsaWRlckJ0bnMgPSBwYXJlbnQuZGF0YSgnc2xpZGVyX2J0bnMnKTtcblxuICAgICAgICBjb25zdCBiYXNlT3B0aW9uczogYW55ID0ge1xuICAgICAgICAgICAgZG90czogcGFyZW50LmRhdGEoJ3NsaWRlcl9zaG93ZG90cycpID8/IGZhbHNlLFxuICAgICAgICAgICAgYXJyb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVyX3Nob3didG5zJykgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGluZmluaXRlOiBwYXJlbnQuZGF0YSgnc2xpZGVzX2luZmluaXRlJykgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGZhZGU6IHBhcmVudC5kYXRhKCdzbGlkZXJfZmFkZScpID8/IGZhbHNlLFxuICAgICAgICAgICAgY2VudGVyTW9kZTogcGFyZW50LmRhdGEoJ3NsaWRlcl9jZW50ZXJtb2RlJykgPz8gZmFsc2UsXG4gICAgICAgICAgICBjZW50ZXJQYWRkaW5nOiAnMCcsXG4gICAgICAgICAgICBjc3NFYXNlOiAnY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiknLFxuICAgICAgICAgICAgc3BlZWQ6IHBhcmVudC5kYXRhKCdzbGlkZXJfc3BlZWQnKSA/PyA3NTAsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHBhcmVudC5kYXRhKCdzbGlkZXNfcGMnKSA/PyAxLFxuICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICByb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19wYycpID8/IDEsXG4gICAgICAgICAgICBhdXRvcGxheTogcGFyZW50LmRhdGEoJ3NsaWRlcl9hdXRvcGxheScpID8/IGZhbHNlLFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogNTAwMCxcbiAgICAgICAgICAgIHVzZVRyYW5zZm9ybTogdHJ1ZSxcbiAgICAgICAgICAgIGFwcGVuZEFycm93czogc2xpZGVyQXJyb3dzLFxuICAgICAgICAgICAgYXBwZW5kRG90czogc2xpZGVyRG90cyxcbiAgICAgICAgICAgIHByZXZBcnJvdzogYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J3ByZXYgJHtzbGlkZXJCdG5zfSBzbGljay1idG4gc2xpY2stcHJldicgcm9sZT0nYnV0dG9uJyB0YWJpbmRleD0nMCcgYXJpYS1sYWJlbD0nUHJldic+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSdpY29uLTYnPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gLFxuICAgICAgICAgICAgbmV4dEFycm93OiBgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbmV4dCAke3NsaWRlckJ0bnN9IHNsaWNrLWJ0biBzbGljay1uZXh0JyByb2xlPSdidXR0b24nIHRhYmluZGV4PScwJyBhcmlhLWxhYmVsPSdOZXh0Jz5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ljb24tNic+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PmAsXG4gICAgICAgICAgICBjdXN0b21QYWdpbmc6IGZ1bmN0aW9uIChzbGljazogYW55LCBpOiBudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkaW5nID0gJChzbGljay4kc2xpZGVzW2ldKVxuICAgICAgICAgICAgICAgICAgICA/LmZpbmQoJ1tkYXRhLXNsaWRlX2hlYWRpbmddJylcbiAgICAgICAgICAgICAgICAgICAgPy5hdHRyKCdkYXRhLXNsaWRlX2hlYWRpbmcnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJCgnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzbGljay1zbGlkZURvdC1sYWJlbFwiIC8+JykudGV4dChoZWFkaW5nID8/ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNwb25zaXZlOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxNjgwLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBwYXJlbnQuZGF0YSgnc2xpZGVzX2xhcHRvcCcpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19sYXB0b3AnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMjgwLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBwYXJlbnQuZGF0YSgnc2xpZGVzX3RhYmxldCcpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c190YWJsZXQnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMDI0LFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBwYXJlbnQuZGF0YSgnc2xpZGVzX21vYmlsZScpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19tb2JpbGUnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiA3NjgsXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHBhcmVudC5kYXRhKCdzbGlkZXNfbW9iaWxlX3NtYWxsJykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX21vYmlsZV9zbWFsbCcpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDU0MCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQuZGF0YSgnc2xpZGVzX21vYmlsZV94c21hbGwnKSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5kYXRhKCdzbGlkZXNfbW9iaWxlX3NtYWxsJykgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93czpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19tb2JpbGVfeHNtYWxsJykgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19tb2JpbGVfc21hbGwnKSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQ2FzbyBlc3BlY2lhbCBwYXJhIFNwb3RpZnlcbiAgICAgICAgaWYgKHNsaWRlck5hbWUgPT09ICdqcy1zcG90aWZ5UGxheWVyLXNsaWRlcicpIHtcbiAgICAgICAgICAgIHNsaWRlclNlbGVjdG9yLm9uKFxuICAgICAgICAgICAgICAgICdiZWZvcmVDaGFuZ2UnLFxuICAgICAgICAgICAgICAgIChldmVudDogRXZlbnQsIHNsaWNrOiBhbnksIGN1cnJlbnQ6IG51bWJlciwgbmV4dDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ICE9PSBuZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuc2xpY2stY2VudGVyICsgLnNsaWNrLWNsb25lZCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKG5leHRFbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWwuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2xpY2stY3VycmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NsaWNrLWNlbnRlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFc3BlcmFyIGEgcXVlIGVsIGNvbnRlbmVkb3Igc2VhIHZpc2libGVcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZpc2libGUgPSBlbnRyaWVzLnNvbWUoXG4gICAgICAgICAgICAgICAgKGUpID0+IGUuY29udGVudFJlY3Qud2lkdGggPiAwICYmIGUuY29udGVudFJlY3QuaGVpZ2h0ID4gMFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbGlkZXIgcHJpbmNpcGFsXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJTZWxlY3Rvci5zbGljayh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNOYXZGb3I6IGluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2xpZGVyIHNpbmNyb25pemFkb1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5zbGljayh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZpbml0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zZm9ybTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3NFYXNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWVkOiA3NTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXBlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3VjaE1vdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbGlkZXIgc2ltcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJTZWxlY3Rvci5zbGljayhiYXNlT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbn1cbiJdfQ==
|