ctt-puro 0.64.0 → 0.64.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,7 +8,7 @@ export class PuroListGeneralComponent {
|
|
|
8
8
|
this.rightSide = false;
|
|
9
9
|
}
|
|
10
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroListGeneralComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroListGeneralComponent, isStandalone: true, selector: "lib-puro-list-general", inputs: { title: "title", items: "items", rightSide: "rightSide" }, ngImport: i0, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index ===
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroListGeneralComponent, isStandalone: true, selector: "lib-puro-list-general", inputs: { title: "title", items: "items", rightSide: "rightSide" }, ngImport: i0, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #rightSideTpl let-item=\"item\">\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n</ng-template>\n", styles: ["svg{background-color:var(--cl-title);max-height:unset!important}.suites__slider{row-gap:2rem;flex-wrap:wrap}.suites__service{flex:1 0 33.3333333333%}@media (max-width: 480px){.suites_service+.suites_service:nth-child(2n):before{display:none}}@media (min-width: 480px) and (max-width: 1024px){.suites_service+.suites_service:nth-child(3n):before{display:none}}@media (min-width: 1024px) and (max-width: 1680px){.suites_service+.suites_service:nth-child(odd):before{display:none}}@media (min-width: 1680px){.suites_service+.suites_service:nth-child(3n):before{display:none}}.suites__logo{display:inline-flex;align-items:center;justify-content:center;--logo-h: clamp(32px, 4vw, 64px);height:var(--logo-h);margin-bottom:clamp(16px,2vw,24px)}@media (min-width: 1024px){.suites__logo{justify-content:flex-start}}.suites__logo img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;transition:transform .3s ease}.suites__logo:hover img{transform:scale(1.1)}.suites__logo+.suites__heading{display:none}.suites--on-dark .suites__logo img{filter:brightness(0) invert(1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[ngSrc], img[src]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
12
|
}
|
|
13
13
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroListGeneralComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
@@ -18,7 +18,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
18
18
|
PuroSliderDirective,
|
|
19
19
|
NgOptimizedImage,
|
|
20
20
|
AutoImageZoomWrapperDirective,
|
|
21
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index ===
|
|
21
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #rightSideTpl let-item=\"item\">\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n</ng-template>\n", styles: ["svg{background-color:var(--cl-title);max-height:unset!important}.suites__slider{row-gap:2rem;flex-wrap:wrap}.suites__service{flex:1 0 33.3333333333%}@media (max-width: 480px){.suites_service+.suites_service:nth-child(2n):before{display:none}}@media (min-width: 480px) and (max-width: 1024px){.suites_service+.suites_service:nth-child(3n):before{display:none}}@media (min-width: 1024px) and (max-width: 1680px){.suites_service+.suites_service:nth-child(odd):before{display:none}}@media (min-width: 1680px){.suites_service+.suites_service:nth-child(3n):before{display:none}}.suites__logo{display:inline-flex;align-items:center;justify-content:center;--logo-h: clamp(32px, 4vw, 64px);height:var(--logo-h);margin-bottom:clamp(16px,2vw,24px)}@media (min-width: 1024px){.suites__logo{justify-content:flex-start}}.suites__logo img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;transition:transform .3s ease}.suites__logo:hover img{transform:scale(1.1)}.suites__logo+.suites__heading{display:none}.suites--on-dark .suites__logo img{filter:brightness(0) invert(1)}\n"] }]
|
|
22
22
|
}], propDecorators: { title: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}], items: [{
|
|
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
26
26
|
}], rightSide: [{
|
|
27
27
|
type: Input
|
|
28
28
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1saXN0LWdlbmVyYWwvcHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1saXN0LWdlbmVyYWwvcHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBaUI3RyxNQUFNLE9BQU8sd0JBQXdCO0lBZHJDO1FBaUJhLGNBQVMsR0FBWSxLQUFLLENBQUM7S0FDdkM7K0dBSlksd0JBQXdCO21HQUF4Qix3QkFBd0IscUpDdEJyQyxveU5Bd0xBLDZwQ0Q1S1EsWUFBWSx3WUFDWixxQkFBcUIsNElBQ3JCLG1CQUFtQixpRkFDbkIsZ0JBQWdCLGdQQUNoQiw2QkFBNkI7OzRGQU14Qix3QkFBd0I7a0JBZHBDLFNBQVM7K0JBQ0ksdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLDZCQUE2QjtxQkFDaEMsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSwgUHVyb1NsaWRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUHVyb0J1dHRvbkksIFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby1saXN0LWdlbmVyYWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgUHVyb1NsaWRlckRpcmVjdGl2ZSxcbiAgICAgICAgTmdPcHRpbWl6ZWRJbWFnZSxcbiAgICAgICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLWxpc3QtZ2VuZXJhbC5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9MaXN0R2VuZXJhbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXRlbXM/OiBQdXJvTGlzdEdlbmVyYWxJdGVtW107XG4gICAgQElucHV0KCkgcmlnaHRTaWRlOiBib29sZWFuID0gZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0xpc3RHZW5lcmFsSXRlbSB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbG9nbz86IFB1cm9JbWFnZUk7XG4gICAgaW1hZ2VzPzogUHVyb0ltYWdlSVtdO1xuICAgIGVxdWlwbWVudD86IHsgaWNvbj86IHN0cmluZzsgdGV4dD86IHN0cmluZyB9W107XG4gICAgYnV0dG9ucz86IFB1cm9CdXR0b25JW107XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cInN1aXRlcyBzdWl0ZXNfX2xpc3QgZ2VuZXJhbE1hcmdpblwiPlxuICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWl0ZXNfX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInN1aXRlc19fY29udGFpbmVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3VpdGVzX19pdGVtIGpzLWFjdGl2ZS1zbGlkZXJcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ltYWdlLS1yaWdodCc6ICRvZGQgfVwiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXNfaW5maW5pdGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcHVyb1NsaWRlcl09XCJpdGVtc1wiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfbmFtZT1cImpzLXBob3RvLXNsaWRlclwiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfc2hvd2J0bnM9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9zaG93ZG90cz1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9mYWRlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfYXV0b3BsYXk9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBkYXRhLXNsaWRlc19wYz1cIjFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyaWdodFNpZGU7IGVsc2UgbGVmdFNpZGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyaWdodFNpZGVUcGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xlZnRTaWRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWZ0U2lkZVRwbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjbGVmdFNpZGVUcGwgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cInN1aXRlc19fZ3JhcGhpYyByZWxhdGl2ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwianMtcGhvdG8tc2xpZGVyIGgtMTAwXCI+XG4gICAgICAgICAgICBAZm9yIChpbWFnZSBvZiBpdGVtLmltYWdlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJpbWFnZS5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjc4OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1aXRlc19fZ3JhcGhpYy0taW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjc0OFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltYWdlLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwianMtc2xpZGVyLWFycm93c1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5sb2dvKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fbG9nb1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaXRlbS5sb2dvLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbS5sb2dvLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic3VpdGVzX19oZWFkaW5nXCI+e3sgaXRlbS50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fc2xpZGVyIHdpdGhPdXRTbGlkZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChlcXVpcG1lbnQgb2YgaXRlbS5lcXVpcG1lbnQ7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VpdGVzX19zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImVxdWlwbWVudC5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGVxdWlwbWVudC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX3BhcmFncmFwaFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGJ1dHRvbiBvZiBpdGVtLmJ1dHRvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG5fX3ByaW1hcnk6ICRpbmRleCA9PT0gMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuX19wcmltYXJ5LS1vdXRsaW5lJzogJGluZGV4ID09PSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ1dHRvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcmlnaHRTaWRlVHBsIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5sb2dvKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fbG9nb1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaXRlbS5sb2dvLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbS5sb2dvLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic3VpdGVzX19oZWFkaW5nXCI+e3sgaXRlbS50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fc2xpZGVyIHdpdGhPdXRTbGlkZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChlcXVpcG1lbnQgb2YgaXRlbS5lcXVpcG1lbnQ7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VpdGVzX19zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImVxdWlwbWVudC5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGVxdWlwbWVudC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX3BhcmFncmFwaFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGJ1dHRvbiBvZiBpdGVtLmJ1dHRvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG5fX3ByaW1hcnk6ICRpbmRleCA9PT0gMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuX19wcmltYXJ5LS1vdXRsaW5lJzogJGluZGV4ID09PSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ1dHRvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3VpdGVzX19ncmFwaGljIHJlbGF0aXZlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJqcy1waG90by1zbGlkZXIgaC0xMDBcIj5cbiAgICAgICAgICAgIEBmb3IgKGltYWdlIG9mIGl0ZW0uaW1hZ2VzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImltYWdlLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNzg5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VpdGVzX19ncmFwaGljLS1pbWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNzQ4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1hZ2UuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJqcy1zbGlkZXItYXJyb3dzXCI+PC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1saXN0LWdlbmVyYWwvcHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1saXN0LWdlbmVyYWwvcHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBaUI3RyxNQUFNLE9BQU8sd0JBQXdCO0lBZHJDO1FBaUJhLGNBQVMsR0FBWSxLQUFLLENBQUM7S0FDdkM7K0dBSlksd0JBQXdCO21HQUF4Qix3QkFBd0IscUpDdEJyQyxveU5Bd0xBLDZwQ0Q1S1EsWUFBWSx3WUFDWixxQkFBcUIsNElBQ3JCLG1CQUFtQixpRkFDbkIsZ0JBQWdCLGdQQUNoQiw2QkFBNkI7OzRGQU14Qix3QkFBd0I7a0JBZHBDLFNBQVM7K0JBQ0ksdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLDZCQUE2QjtxQkFDaEMsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSwgUHVyb1NsaWRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUHVyb0J1dHRvbkksIFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby1saXN0LWdlbmVyYWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgUHVyb1NsaWRlckRpcmVjdGl2ZSxcbiAgICAgICAgTmdPcHRpbWl6ZWRJbWFnZSxcbiAgICAgICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby1saXN0LWdlbmVyYWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLWxpc3QtZ2VuZXJhbC5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9MaXN0R2VuZXJhbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXRlbXM/OiBQdXJvTGlzdEdlbmVyYWxJdGVtW107XG4gICAgQElucHV0KCkgcmlnaHRTaWRlOiBib29sZWFuID0gZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0xpc3RHZW5lcmFsSXRlbSB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbG9nbz86IFB1cm9JbWFnZUk7XG4gICAgaW1hZ2VzPzogUHVyb0ltYWdlSVtdO1xuICAgIGVxdWlwbWVudD86IHsgaWNvbj86IHN0cmluZzsgdGV4dD86IHN0cmluZyB9W107XG4gICAgYnV0dG9ucz86IFB1cm9CdXR0b25JW107XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cInN1aXRlcyBzdWl0ZXNfX2xpc3QgZ2VuZXJhbE1hcmdpblwiPlxuICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWl0ZXNfX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInN1aXRlc19fY29udGFpbmVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3VpdGVzX19pdGVtIGpzLWFjdGl2ZS1zbGlkZXJcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ltYWdlLS1yaWdodCc6ICRvZGQgfVwiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXNfaW5maW5pdGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcHVyb1NsaWRlcl09XCJpdGVtc1wiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfbmFtZT1cImpzLXBob3RvLXNsaWRlclwiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfc2hvd2J0bnM9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9zaG93ZG90cz1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9mYWRlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfYXV0b3BsYXk9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBkYXRhLXNsaWRlc19wYz1cIjFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyaWdodFNpZGU7IGVsc2UgbGVmdFNpZGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyaWdodFNpZGVUcGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xlZnRTaWRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWZ0U2lkZVRwbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjbGVmdFNpZGVUcGwgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cInN1aXRlc19fZ3JhcGhpYyByZWxhdGl2ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwianMtcGhvdG8tc2xpZGVyIGgtMTAwXCI+XG4gICAgICAgICAgICBAZm9yIChpbWFnZSBvZiBpdGVtLmltYWdlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJpbWFnZS5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjc4OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1aXRlc19fZ3JhcGhpYy0taW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjc0OFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltYWdlLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwianMtc2xpZGVyLWFycm93c1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5sb2dvKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fbG9nb1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaXRlbS5sb2dvLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbS5sb2dvLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic3VpdGVzX19oZWFkaW5nXCI+e3sgaXRlbS50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fc2xpZGVyIHdpdGhPdXRTbGlkZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChlcXVpcG1lbnQgb2YgaXRlbS5lcXVpcG1lbnQ7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VpdGVzX19zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImVxdWlwbWVudC5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGVxdWlwbWVudC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX3BhcmFncmFwaFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGJ1dHRvbiBvZiBpdGVtLmJ1dHRvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG5fX3ByaW1hcnk6ICRpbmRleCA9PT0gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuX19wcmltYXJ5LS1vdXRsaW5lJzogJGluZGV4ID09PSAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ1dHRvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcmlnaHRTaWRlVHBsIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5sb2dvKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fbG9nb1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaXRlbS5sb2dvLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbS5sb2dvLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic3VpdGVzX19oZWFkaW5nXCI+e3sgaXRlbS50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1aXRlc19fc2xpZGVyIHdpdGhPdXRTbGlkZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChlcXVpcG1lbnQgb2YgaXRlbS5lcXVpcG1lbnQ7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VpdGVzX19zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImVxdWlwbWVudC5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGVxdWlwbWVudC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWl0ZXNfX3BhcmFncmFwaFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGJ1dHRvbiBvZiBpdGVtLmJ1dHRvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG5fX3ByaW1hcnk6ICRpbmRleCA9PT0gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuX19wcmltYXJ5LS1vdXRsaW5lJzogJGluZGV4ID09PSAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ1dHRvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3VpdGVzX19ncmFwaGljIHJlbGF0aXZlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJqcy1waG90by1zbGlkZXIgaC0xMDBcIj5cbiAgICAgICAgICAgIEBmb3IgKGltYWdlIG9mIGl0ZW0uaW1hZ2VzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImltYWdlLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNzg5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VpdGVzX19ncmFwaGljLS1pbWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNzQ4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1hZ2UuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJqcy1zbGlkZXItYXJyb3dzXCI+PC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
package/fesm2022/ctt-puro.mjs
CHANGED
|
@@ -8160,7 +8160,7 @@ class PuroListGeneralComponent {
|
|
|
8160
8160
|
this.rightSide = false;
|
|
8161
8161
|
}
|
|
8162
8162
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroListGeneralComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8163
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroListGeneralComponent, isStandalone: true, selector: "lib-puro-list-general", inputs: { title: "title", items: "items", rightSide: "rightSide" }, ngImport: i0, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index ===
|
|
8163
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroListGeneralComponent, isStandalone: true, selector: "lib-puro-list-general", inputs: { title: "title", items: "items", rightSide: "rightSide" }, ngImport: i0, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #rightSideTpl let-item=\"item\">\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n</ng-template>\n", styles: ["svg{background-color:var(--cl-title);max-height:unset!important}.suites__slider{row-gap:2rem;flex-wrap:wrap}.suites__service{flex:1 0 33.3333333333%}@media (max-width: 480px){.suites_service+.suites_service:nth-child(2n):before{display:none}}@media (min-width: 480px) and (max-width: 1024px){.suites_service+.suites_service:nth-child(3n):before{display:none}}@media (min-width: 1024px) and (max-width: 1680px){.suites_service+.suites_service:nth-child(odd):before{display:none}}@media (min-width: 1680px){.suites_service+.suites_service:nth-child(3n):before{display:none}}.suites__logo{display:inline-flex;align-items:center;justify-content:center;--logo-h: clamp(32px, 4vw, 64px);height:var(--logo-h);margin-bottom:clamp(16px,2vw,24px)}@media (min-width: 1024px){.suites__logo{justify-content:flex-start}}.suites__logo img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;transition:transform .3s ease}.suites__logo:hover img{transform:scale(1.1)}.suites__logo+.suites__heading{display:none}.suites--on-dark .suites__logo img{filter:brightness(0) invert(1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[ngSrc], img[src]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8164
8164
|
}
|
|
8165
8165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroListGeneralComponent, decorators: [{
|
|
8166
8166
|
type: Component,
|
|
@@ -8170,7 +8170,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8170
8170
|
PuroSliderDirective,
|
|
8171
8171
|
NgOptimizedImage,
|
|
8172
8172
|
AutoImageZoomWrapperDirective,
|
|
8173
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index ===
|
|
8173
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"suites suites__list generalMargin\">\n @if (title) {\n <span class=\"suites__title\">{{ title }}</span>\n }\n\n <div class=\"suites__container\">\n @for (item of items; track $index) {\n <div\n class=\"suites__item js-active-slider\"\n [ngClass]=\"{ 'image--right': $odd }\"\n data-slides_infinite=\"true\"\n [puroSlider]=\"items\"\n data-slider_name=\"js-photo-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n >\n <ng-container\n *ngIf=\"rightSide; else leftSide\"\n [ngTemplateOutlet]=\"rightSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n <ng-template #leftSide>\n <ng-container\n [ngTemplateOutlet]=\"leftSideTpl\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </ng-template>\n </div>\n }\n </div>\n</section>\n\n<ng-template #leftSideTpl let-item=\"item\">\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #rightSideTpl let-item=\"item\">\n <div class=\"suites__content\">\n <div>\n @if (item.logo) {\n <div class=\"suites__logo\">\n <img\n [ngSrc]=\"item.logo.src\"\n decoding=\"async\"\n width=\"150\"\n height=\"50\"\n [alt]=\"item.logo.alt\"\n loading=\"lazy\"\n />\n </div>\n } @else {\n @if (item.title) {\n <h2 class=\"suites__heading\">{{ item.title }}</h2>\n }\n }\n <div class=\"suites__slider withOutSlider\">\n @for (equipment of item.equipment; track $index) {\n <div class=\"suites__service\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"50\"\n height=\"40\"\n [ngClass]=\"equipment.icon\"\n ></svg>\n <span>{{ equipment.text }}</span>\n </div>\n }\n </div>\n @if (item.description) {\n <div class=\"suites__paragraph\">\n <p [innerHTML]=\"item.description\"></p>\n </div>\n }\n <div class=\"btn__group\">\n @for (button of item.buttons; track $index) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: $index === 1,\n 'btn__primary--outline': $index === 0,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n <div class=\"suites__graphic relative\">\n <div class=\"js-photo-slider h-100\">\n @for (image of item.images; track $index) {\n <div class=\"h-100\">\n <img\n [ngSrc]=\"image.src\"\n decoding=\"async\"\n width=\"789\"\n class=\"suites__graphic--img\"\n height=\"748\"\n [alt]=\"image.alt\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n</ng-template>\n", styles: ["svg{background-color:var(--cl-title);max-height:unset!important}.suites__slider{row-gap:2rem;flex-wrap:wrap}.suites__service{flex:1 0 33.3333333333%}@media (max-width: 480px){.suites_service+.suites_service:nth-child(2n):before{display:none}}@media (min-width: 480px) and (max-width: 1024px){.suites_service+.suites_service:nth-child(3n):before{display:none}}@media (min-width: 1024px) and (max-width: 1680px){.suites_service+.suites_service:nth-child(odd):before{display:none}}@media (min-width: 1680px){.suites_service+.suites_service:nth-child(3n):before{display:none}}.suites__logo{display:inline-flex;align-items:center;justify-content:center;--logo-h: clamp(32px, 4vw, 64px);height:var(--logo-h);margin-bottom:clamp(16px,2vw,24px)}@media (min-width: 1024px){.suites__logo{justify-content:flex-start}}.suites__logo img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;transition:transform .3s ease}.suites__logo:hover img{transform:scale(1.1)}.suites__logo+.suites__heading{display:none}.suites--on-dark .suites__logo img{filter:brightness(0) invert(1)}\n"] }]
|
|
8174
8174
|
}], propDecorators: { title: [{
|
|
8175
8175
|
type: Input
|
|
8176
8176
|
}], items: [{
|