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.
@@ -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&amp;controls=0&amp;showinfo=0&amp;autoplay=1&amp;modestbranding=1&amp;loop=1&amp;autohide=1&amp;playsinline=1&amp;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&amp;controls=0&amp;showinfo=0&amp;autoplay=1&amp;modestbranding=1&amp;loop=1&amp;autohide=1&amp;playsinline=1&amp;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&amp;controls=0&amp;showinfo=0&amp;autoplay=1&amp;modestbranding=1&amp;loop=1&amp;autohide=1&amp;playsinline=1&amp;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&amp;controls=0&amp;showinfo=0&amp;autoplay=1&amp;modestbranding=1&amp;loop=1&amp;autohide=1&amp;playsinline=1&amp;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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby10b3Atc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdG9wLXNsaWRlci9wdXJvLXRvcC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby10b3Atc2xpZGVyL3B1cm8tdG9wLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUN0QixNQUFNLGtCQUFrQixDQUFDOzs7QUFpQjFCLE1BQU0sT0FBTyxzQkFBc0I7K0dBQXRCLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVYQzVCbkMsNDRKQTJJQSw4SER6SEksWUFBWSxzTUFDWixtQkFBbUIsaUZBQ25CLHFCQUFxQiw0SUFDckIsd0JBQXdCLDBEQUN4QixnQkFBZ0I7OzRGQU1QLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNULFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3FCQUNuQixtQkFHb0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBQdXJvU2xpZGVyRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tdG9wLXNsaWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFB1cm9TbGlkZXJEaXJlY3RpdmUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBOZ09wdGltaXplZEltYWdlXG5dLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLXRvcC1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLXRvcC1zbGlkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvVG9wU2xpZGVyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBlbmdpbmUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1haW5UaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBzcG90aWZ5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5ld3NsZXR0ZXI/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBsYW5ndWFnZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmlkZWxpdHk/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBvZmZlcnM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRMYW5ndWFnZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBpbWFnZXM/OiBQdXJvSW1hZ2VJW107XG4gICAgQElucHV0KCkgdmlkZW8/OiBzdHJpbmc7XG59XG4iLCI8c2VjdGlvblxuICAgIGNsYXNzPVwiYmFubmVyIGpzLWFjdGl2ZS1zbGlkZXJcIlxuICAgIFtwdXJvU2xpZGVyXT1cImltYWdlc1wiXG4gICAgZGF0YS1zbGlkZXNfaW5maW5pdGU9XCJ0cnVlXCJcbiAgICBkYXRhLXNsaWRlcl9uYW1lPVwianMtYmFubmVyLXNsaWRlclwiXG4gICAgZGF0YS1zbGlkZXJfc2hvd2J0bnM9XCJmYWxzZVwiXG4gICAgZGF0YS1zbGlkZXJfc2hvd2RvdHM9XCJmYWxzZVwiXG4gICAgZGF0YS1zbGlkZXJfZmFkZT1cInRydWVcIlxuICAgIGRhdGEtc2xpZGVyX2F1dG9wbGF5PVwidHJ1ZVwiXG4gICAgZGF0YS1zbGlkZXNfcGM9XCIxXCJcbj5cbiAgICA8IS0tIGlmIGJhbm5lciBpbWFnZS0tPlxuICAgIDxkaXYgY2xhc3M9XCJqcy1iYW5uZXItc2xpZGVyXCI+XG4gICAgICAgIEBmb3IgKGltYWdlIG9mIGltYWdlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaW1hZ2Uuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpbWFnZS5hbHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhbm5lcl9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE5MjBcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI5ODBcIlxuICAgICAgICAgICAgICAgICAgICBmZXRjaHByaW9yaXR5PVwiaGlnaFwiXG4gICAgICAgICAgICAgICAgICAgIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPCEtLSBpZiBiYW5uZXIgaW1hZ2UtLT5cbiAgICA8IS0tIGlmIGJhbm5lciB2aWRlbyAtLT5cbiAgICBAaWYgKHZpZGVvKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX3ZpZGVvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX192aWRlby0taW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiWW91VHViZVZpZGVvUGxheWVyXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOTIwXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTA4MFwiXG4gICAgICAgICAgICAgICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cInt7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWRlb1xuICAgICAgICAgICAgICAgICAgICB9fT9lbmFibGVqc2FwaT0xJmFtcDtjb250cm9scz0wJmFtcDtzaG93aW5mbz0wJmFtcDthdXRvcGxheT0xJmFtcDttb2Rlc3RicmFuZGluZz0xJmFtcDtsb29wPTEmYW1wO2F1dG9oaWRlPTEmYW1wO3BsYXlzaW5saW5lPTEmYW1wO3dpZGdldGlkPTFcIlxuICAgICAgICAgICAgICAgICAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW5cbiAgICAgICAgICAgICAgICA+PC9pZnJhbWU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAobWFpblRpdGxlKSB7XG4gICAgICAgIDxoMSBjbGFzcz1cImJhbm5lcl9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IG1haW5UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9oMT5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImJhbm5lcl9fY29udGVudFwiPlxuICAgICAgICBAaWYgKHByZXRpdGxlKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImJhbm5lcl9fdGV4dFwiPnt7IHByZXRpdGxlIH19PC9wPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImJhbm5lcl9faGVhZGluZ1wiPnt7IHRpdGxlIH19PC9oMj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN1YnRpdGxlKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImJhbm5lcl9fdGV4dFwiPnt7IHN1YnRpdGxlIH19PC9wPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJhbm5lcl9fYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19ncm91cCBiYW5uZXJfX2dyb3VwLS1sZWZ0XCI+XG4gICAgICAgICAgICBAaWYgKG5ld3NsZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19uZXdzbGV0dGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJuZXdzbGV0dGVyLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibmV3c2xldHRlci5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhbm5lcl9fbmV3c2xldHRlci0taW5uZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuZXdzbGV0dGVyLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLTYzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBuZXdzbGV0dGVyLmxhYmVsIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc3BvdGlmeSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX3Nwb3RpZnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYW5uZXJfX3Nwb3RpZnktLWlubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzcG90aWZ5ID8/ICdzcG90aWZ5IGljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLTgyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBzcG90aWZ5IH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19ncm91cCBiYW5uZXJfX2dyb3VwLS1yaWdodFwiPlxuICAgICAgICAgICAgQGlmIChsYW5ndWFnZXMgJiYgc2VsZWN0ZWRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX2xhbmd1YWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFubmVyX19sYW5ndWFnZS0taW5uZXIganMtYWN0aXZlLW1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJsYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFubmVyX19sYW5ndWFnZS0taWNvblwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGxhbmd1YWdlcyB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZmlkZWxpdHkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyX19maWRlbGl0eUNsdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImZpZGVsaXR5Py51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImZpZGVsaXR5Py5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhbm5lcl9fZmlkZWxpdHlDbHViLS1pbm5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpZGVsaXR5Py5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi02MFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZmlkZWxpdHk/LmxhYmVsIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGVuZ2luZSkge1xuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVuZ2luZVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAaWYgKG9mZmVycykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGNsYXNzPVwiYmFubmVyX19vZmZlcnMtLXRpZ2dlciBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwidC1vZmZlcnNcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9mZmVycyA/PyAnT2ZmZXJzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG9mZmVycyB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9zZWN0aW9uPlxuIl19
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(el) {
5
- this.el = 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
- setTimeout(() => {
10
- this.loadSlider();
11
- }, 0);
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
- loadSlider() {
16
- // variables
17
- var parent = $(this.el.nativeElement), slider_name = parent.data('slider_name'), slider_speed = parent.data('slider_speed'), slider_showbtns = parent.data('slider_showbtns'), slider_arrows = parent.find('.js-slider-arrows'), slider_dots = parent.find('.js-slider-dots'), info = parent.find('.js-content-slider'), slider_btns = parent.data('slider_btns'), slider_showdots = parent.data('slider_showdots'), slider_fade = parent.data('slider_fade'), slider_centermode = parent.data('slider_centermode'), slider_autoplay = parent.data('slider_autoplay'), slider_pc = parent.data('slides_pc'), slider_laptop = parent.data('slides_laptop'), slider_tablet = parent.data('slides_tablet'), slider_mobile = parent.data('slides_mobile'), slider_mobile_small = parent.data('slides_mobile_small'), slider_mobile_xsmall = parent.data('slides_mobile_xsmall'), slider_infinite = parent.data('slides_infinite'), sliderrows_pc = parent.data('slidesrows_pc'), sliderrows_laptop = parent.data('slidesrows_laptop'), sliderrows_tablet = parent.data('slidesrows_tablet'), sliderrows_mobile = parent.data('slidesrows_mobile'), sliderrows_mobile_small = parent.data('slidesrows_mobile_small'), sliderrows_mobile_xsmall = parent.data('slidesrows_mobile_xsmall'), slider_selector = parent.find('.' + slider_name);
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
- if (!slider_speed) {
21
- slider_speed = 750;
22
- }
23
- if (!slider_centermode) {
24
- slider_centermode = 'false';
25
- }
26
- if (!slider_mobile_xsmall) {
27
- slider_mobile_xsmall = slider_mobile_small;
28
- }
29
- if (!sliderrows_pc) {
30
- sliderrows_pc = 1;
31
- }
32
- if (!sliderrows_laptop) {
33
- sliderrows_laptop = 1;
34
- }
35
- if (!sliderrows_tablet) {
36
- sliderrows_tablet = 1;
37
- }
38
- if (!sliderrows_mobile) {
39
- sliderrows_mobile = 1;
40
- }
41
- if (!sliderrows_mobile_small) {
42
- sliderrows_mobile_small = 1;
43
- }
44
- if (!sliderrows_mobile_xsmall) {
45
- sliderrows_mobile_xsmall = 1;
46
- }
47
- if (window.innerWidth < 540 && parent.hasClass('rows-2')) {
48
- sliderrows_pc = 1;
49
- }
50
- if (slider_selector == 'js-spotifyPlayer-slider') {
51
- $(slider_selector).on('beforeChange', (event, slick, currentSlide, nextSlide) => {
52
- if (currentSlide !== nextSlide) {
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((next) => {
56
- setTimeout(() => next.classList.add('slick-current', 'slick-center'));
129
+ .forEach((nextEl) => {
130
+ setTimeout(() => nextEl.classList.add('slick-current', 'slick-center'));
57
131
  });
58
132
  }
59
133
  });
60
134
  }
61
- //init slider
62
- if (slider_selector.length === 0) {
63
- return;
64
- }
65
- else {
66
- if (info.length != 0) {
67
- $(slider_selector)?.slick({
68
- dots: slider_showdots,
69
- arrows: slider_showbtns,
70
- appendArrows: slider_arrows,
71
- prevArrow: "<div class='prev " +
72
- slider_btns +
73
- " slick-btn slick-prev' role='button' tabindex='0' aria-label='Previously Item Button'><i class='icon-6'></i></div>",
74
- nextArrow: "<div class='next " +
75
- slider_btns +
76
- " slick-btn slick-next' role='button' tabindex='0' aria-label='Next Item Button'><i class='icon-6'></i></div>",
77
- appendDots: slider_dots,
78
- customPaging: function (slick, i) {
79
- var slide_heading = $(slick.$slides[i])
80
- ?.find('[data-slide_heading]')
81
- ?.attr('data-slide_heading');
82
- $();
83
- return $('<button type="button" class="slick-slideDot-label" />')?.text(slide_heading);
84
- },
85
- infinite: slider_infinite,
86
- useTransform: true,
87
- fade: slider_fade,
88
- centerMode: slider_centermode,
89
- centerPadding: '0',
90
- cssEase: 'cubic-bezier(0.785, 0.135, 0.15, 0.86)',
91
- speed: slider_speed,
92
- slidesToShow: slider_pc,
93
- slidesToScroll: 1,
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
- else {
162
- $(slider_selector)?.slick({
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: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
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: () => [{ type: i0.ElementRef }] });
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==