ctt-puro 0.50.0 → 0.50.2

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.
@@ -3437,11 +3437,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
3437
3437
 
3438
3438
  class PuroFaqsComponent {
3439
3439
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroFaqsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3440
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroFaqsComponent, isStandalone: true, selector: "lib-puro-faqs", inputs: { title: "title", items: "items", tags: "tags", textColors: "textColors" }, ngImport: i0, template: "<section class=\"faq generalMargin\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"faq__container\">\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div class=\"faq__heading js-accordion\" role=\"button\">\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\">\n <i class=\"icon-6\"></i>\n </span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p>\n {{ item.content }}\n </p>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PuroDynamicHeadingComponent, selector: "lib-puro-dynamic-heading", inputs: ["tag", "wrapper", "cssClass", "content", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3440
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroFaqsComponent, isStandalone: true, selector: "lib-puro-faqs", inputs: { title: "title", items: "items", tags: "tags", textColors: "textColors" }, ngImport: i0, template: "<section class=\"faq generalMargin\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"faq__container\">\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div class=\"faq__heading js-accordion\" role=\"button\">\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\">\n <i class=\"icon-6\"></i>\n </span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p [innerHTML]=\"item.content\"></p>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PuroDynamicHeadingComponent, selector: "lib-puro-dynamic-heading", inputs: ["tag", "wrapper", "cssClass", "content", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3441
3441
  }
3442
3442
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroFaqsComponent, decorators: [{
3443
3443
  type: Component,
3444
- args: [{ selector: 'lib-puro-faqs', standalone: true, imports: [CommonModule, PuroDynamicHeadingComponent, PuroScriptDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"faq generalMargin\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"faq__container\">\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div class=\"faq__heading js-accordion\" role=\"button\">\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\">\n <i class=\"icon-6\"></i>\n </span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p>\n {{ item.content }}\n </p>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</section>\n" }]
3444
+ args: [{ selector: 'lib-puro-faqs', standalone: true, imports: [CommonModule, PuroDynamicHeadingComponent, PuroScriptDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"faq generalMargin\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"faq__container\">\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div class=\"faq__heading js-accordion\" role=\"button\">\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\">\n <i class=\"icon-6\"></i>\n </span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p [innerHTML]=\"item.content\"></p>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</section>\n" }]
3445
3445
  }], propDecorators: { title: [{
3446
3446
  type: Input
3447
3447
  }], items: [{
@@ -3454,7 +3454,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
3454
3454
 
3455
3455
  class PuroFaqsImgComponent {
3456
3456
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroFaqsImgComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3457
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroFaqsImgComponent, isStandalone: true, selector: "lib-puro-faqs-img", inputs: { title: "title", imgs: "imgs", items: "items", applicationButton: "applicationButton", contactButton: "contactButton", tags: "tags", textColors: "textColors", view: "view" }, ngImport: i0, template: "<section\n class=\"faqsImg js-active-slider generalMargin\"\n [puroSlider]=\"imgs\"\n data-slides_infinite=\"true\"\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 <div class=\"faqsImg__inner\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faqsImg__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n <ng-container *ngIf=\"view === 'right'; else leftSideTpl\">\n <ng-container [ngTemplateOutlet]=\"rightSideTpl\"></ng-container>\n </ng-container>\n\n <ng-template #leftSideTpl>\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n class=\"faqsImg__sliderImage\"\n decoding=\"async\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n </ng-template>\n\n <ng-template #rightSideTpl>\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n decoding=\"async\"\n class=\"faqsImg__sliderImage\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #faqContentTpl>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div\n class=\"faq__heading js-accordion\"\n role=\"button\"\n >\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\"\n ><i class=\"icon-6\"></i\n ></span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p class=\"faq__paragraph\">{{ item.content }}</p>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"btn__group\">\n @if (contactButton) {\n <a\n class=\"btn btn__primary--outline\"\n [href]=\"contactButton.url\"\n [linkType]=\"contactButton.linkType\"\n [attr.aria-label]=\"contactButton.label\"\n >\n <span>{{ contactButton.label }}</span>\n </a>\n }\n @if (applicationButton) {\n <a\n class=\"btn btn__primary\"\n [href]=\"applicationButton.url\"\n [linkType]=\"applicationButton.linkType\"\n [attr.aria-label]=\"applicationButton.label\"\n >\n <span>{{ applicationButton.label }}</span>\n </a>\n }\n </div>\n </ng-template>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: PuroDynamicHeadingComponent, selector: "lib-puro-dynamic-heading", inputs: ["tag", "wrapper", "cssClass", "content", "color"] }, { 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 }); }
3457
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroFaqsImgComponent, isStandalone: true, selector: "lib-puro-faqs-img", inputs: { title: "title", imgs: "imgs", items: "items", applicationButton: "applicationButton", contactButton: "contactButton", tags: "tags", textColors: "textColors", view: "view" }, ngImport: i0, template: "<section\n class=\"faqsImg js-active-slider generalMargin\"\n [puroSlider]=\"imgs\"\n data-slides_infinite=\"true\"\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 <div class=\"faqsImg__inner\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faqsImg__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n <ng-container *ngIf=\"view === 'right'; else leftSideTpl\">\n <ng-container [ngTemplateOutlet]=\"rightSideTpl\"></ng-container>\n </ng-container>\n\n <ng-template #leftSideTpl>\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n class=\"faqsImg__sliderImage\"\n decoding=\"async\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n </ng-template>\n\n <ng-template #rightSideTpl>\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n decoding=\"async\"\n class=\"faqsImg__sliderImage\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #faqContentTpl>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div\n class=\"faq__heading js-accordion\"\n role=\"button\"\n >\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\"\n ><i class=\"icon-6\"></i\n ></span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p class=\"faq__paragraph\" [innerHTML]=\"item.content\"></p>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"btn__group\">\n @if (contactButton) {\n <a\n class=\"btn btn__primary--outline\"\n [href]=\"contactButton.url\"\n [linkType]=\"contactButton.linkType\"\n [attr.aria-label]=\"contactButton.label\"\n >\n <span>{{ contactButton.label }}</span>\n </a>\n }\n @if (applicationButton) {\n <a\n class=\"btn btn__primary\"\n [href]=\"applicationButton.url\"\n [linkType]=\"applicationButton.linkType\"\n [attr.aria-label]=\"applicationButton.label\"\n >\n <span>{{ applicationButton.label }}</span>\n </a>\n }\n </div>\n </ng-template>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: PuroDynamicHeadingComponent, selector: "lib-puro-dynamic-heading", inputs: ["tag", "wrapper", "cssClass", "content", "color"] }, { 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 }); }
3458
3458
  }
3459
3459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroFaqsImgComponent, decorators: [{
3460
3460
  type: Component,
@@ -3465,7 +3465,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
3465
3465
  PuroDynamicHeadingComponent,
3466
3466
  NgOptimizedImage,
3467
3467
  AutoImageZoomWrapperDirective,
3468
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"faqsImg js-active-slider generalMargin\"\n [puroSlider]=\"imgs\"\n data-slides_infinite=\"true\"\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 <div class=\"faqsImg__inner\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faqsImg__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n <ng-container *ngIf=\"view === 'right'; else leftSideTpl\">\n <ng-container [ngTemplateOutlet]=\"rightSideTpl\"></ng-container>\n </ng-container>\n\n <ng-template #leftSideTpl>\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n class=\"faqsImg__sliderImage\"\n decoding=\"async\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n </ng-template>\n\n <ng-template #rightSideTpl>\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n decoding=\"async\"\n class=\"faqsImg__sliderImage\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #faqContentTpl>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div\n class=\"faq__heading js-accordion\"\n role=\"button\"\n >\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\"\n ><i class=\"icon-6\"></i\n ></span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p class=\"faq__paragraph\">{{ item.content }}</p>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"btn__group\">\n @if (contactButton) {\n <a\n class=\"btn btn__primary--outline\"\n [href]=\"contactButton.url\"\n [linkType]=\"contactButton.linkType\"\n [attr.aria-label]=\"contactButton.label\"\n >\n <span>{{ contactButton.label }}</span>\n </a>\n }\n @if (applicationButton) {\n <a\n class=\"btn btn__primary\"\n [href]=\"applicationButton.url\"\n [linkType]=\"applicationButton.linkType\"\n [attr.aria-label]=\"applicationButton.label\"\n >\n <span>{{ applicationButton.label }}</span>\n </a>\n }\n </div>\n </ng-template>\n </div>\n</section>\n" }]
3468
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"faqsImg js-active-slider generalMargin\"\n [puroSlider]=\"imgs\"\n data-slides_infinite=\"true\"\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 <div class=\"faqsImg__inner\">\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faqsImg__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n <ng-container *ngIf=\"view === 'right'; else leftSideTpl\">\n <ng-container [ngTemplateOutlet]=\"rightSideTpl\"></ng-container>\n </ng-container>\n\n <ng-template #leftSideTpl>\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n class=\"faqsImg__sliderImage\"\n decoding=\"async\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n </ng-template>\n\n <ng-template #rightSideTpl>\n <div class=\"faq__container\">\n <ng-container [ngTemplateOutlet]=\"faqContentTpl\"></ng-container>\n </div>\n\n <div class=\"faqsImg__imageSlider\">\n <div class=\"faqsImg__imageSlider--inner relative\">\n <div class=\"js-photo-slider faqsImg__slider\">\n @for (img of imgs; track $index) {\n <div class=\"faqsImg__sliderItem\">\n <img\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"960\"\n height=\"807\"\n decoding=\"async\"\n class=\"faqsImg__sliderImage\"\n />\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #faqContentTpl>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"faq__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (items?.length) {\n <div class=\"faq__list\">\n @for (item of items; track $index) {\n <div class=\"faq__item\">\n <div\n class=\"faq__heading js-accordion\"\n role=\"button\"\n >\n @if (item.title) {\n <span>{{ item.title }}</span>\n }\n <span class=\"faq__icon\"\n ><i class=\"icon-6\"></i\n ></span>\n </div>\n @if (item.content) {\n <div class=\"faq__content\">\n <p class=\"faq__paragraph\" [innerHTML]=\"item.content\"></p>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"btn__group\">\n @if (contactButton) {\n <a\n class=\"btn btn__primary--outline\"\n [href]=\"contactButton.url\"\n [linkType]=\"contactButton.linkType\"\n [attr.aria-label]=\"contactButton.label\"\n >\n <span>{{ contactButton.label }}</span>\n </a>\n }\n @if (applicationButton) {\n <a\n class=\"btn btn__primary\"\n [href]=\"applicationButton.url\"\n [linkType]=\"applicationButton.linkType\"\n [attr.aria-label]=\"applicationButton.label\"\n >\n <span>{{ applicationButton.label }}</span>\n </a>\n }\n </div>\n </ng-template>\n </div>\n</section>\n" }]
3469
3469
  }], propDecorators: { title: [{
3470
3470
  type: Input
3471
3471
  }], imgs: [{
@@ -5683,9 +5683,16 @@ class MapperService {
5683
5683
  textColors: {
5684
5684
  title: props?.texts?.title?.color?.trim(),
5685
5685
  },
5686
- items: props?.Items?.map((item) => ({
5687
- title: item.title,
5688
- content: item.content ?? item.text,
5686
+ items: props?.Items?.filter((item) => {
5687
+ const title = item?.title;
5688
+ const content = item?.content ?? item?.text;
5689
+ return (typeof title === 'string' &&
5690
+ title.trim().length > 0 &&
5691
+ typeof content === 'string' &&
5692
+ content.trim().length > 0);
5693
+ }).map((item) => ({
5694
+ title: item.title.trim(),
5695
+ content: (item.content ?? item.text).trim(),
5689
5696
  })),
5690
5697
  };
5691
5698
  }
@@ -5944,9 +5951,16 @@ class MapperService {
5944
5951
  ? texts?.title
5945
5952
  : texts?.title?.contain,
5946
5953
  imgs: this.getArrayImageResponsive(multimedia?.imagenes),
5947
- items: Items?.map((item) => ({
5948
- title: item.title,
5949
- content: item.text,
5954
+ items: Items?.filter((item) => {
5955
+ const title = item?.title;
5956
+ const content = item?.content ?? item?.text;
5957
+ return (typeof title === 'string' &&
5958
+ title.trim().length > 0 &&
5959
+ typeof content === 'string' &&
5960
+ content.trim().length > 0);
5961
+ }).map((item) => ({
5962
+ title: item.title.trim(),
5963
+ content: (item.content ?? item.text).trim(),
5950
5964
  })),
5951
5965
  applicationButton: Utils.mapButtons(this.siteId(), buttons)[0],
5952
5966
  view: this.getView(view),
@@ -7224,7 +7238,7 @@ class PuroHeaderMobileSubmenuComponent {
7224
7238
  }
7225
7239
  }
7226
7240
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderMobileSubmenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderMobileSubmenuComponent, isStandalone: true, selector: "lib-puro-header-mobile-submenu", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", btnBook: "btnBook", btnCheckin: "btnCheckin", navLinks: "navLinks", bottomLinks: "bottomLinks", isDynamic: "isDynamic", logoHotel: "logoHotel", logoHotelWhite: "logoHotelWhite", siteId: "siteId" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n @if (btnCheckin && siteId == 2) {\n <a \n class=\"btn btn__secondary btn--lg mobile__checkIn\"\n (click)=\"btnClickCheckin.emit()\"\n [attr.aria-label]=\"btnCheckin\"\n >\n <span>{{ btnCheckin }}</span></a\n >\n }\n @if (btnBook) {\n <a\n class=\"btn btn__primary btn--lg mobile__reservar\"\n (click)=\"btnClick.emit()\"\n data-modal_name=\"reserver\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\" [style.--bg-url]=\"cssBgUrl\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { 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 }); }
7241
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderMobileSubmenuComponent, isStandalone: true, selector: "lib-puro-header-mobile-submenu", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", btnBook: "btnBook", btnCheckin: "btnCheckin", navLinks: "navLinks", bottomLinks: "bottomLinks", isDynamic: "isDynamic", logoHotel: "logoHotel", logoHotelWhite: "logoHotelWhite", siteId: "siteId", currentHotelId: "currentHotelId" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n <!-- hide buttons when Puro Oasis Urbano -->\n @if (btnCheckin && siteId == 2 && currentHotelId !== 5) {\n <a \n class=\"btn btn__secondary btn--lg mobile__checkIn\"\n (click)=\"btnClickCheckin.emit()\"\n [attr.aria-label]=\"btnCheckin\"\n >\n <span>{{ btnCheckin }}</span></a\n >\n }\n @if (btnBook) {\n <a\n class=\"btn btn__primary btn--lg mobile__reservar\"\n (click)=\"btnClick.emit()\"\n data-modal_name=\"reserver\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\" [style.--bg-url]=\"cssBgUrl\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { 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 }); }
7228
7242
  }
7229
7243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderMobileSubmenuComponent, decorators: [{
7230
7244
  type: Component,
@@ -7234,7 +7248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
7234
7248
  PuroActiveModalDirective,
7235
7249
  PuroNavStickyDirective,
7236
7250
  NgOptimizedImage
7237
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n @if (btnCheckin && siteId == 2) {\n <a \n class=\"btn btn__secondary btn--lg mobile__checkIn\"\n (click)=\"btnClickCheckin.emit()\"\n [attr.aria-label]=\"btnCheckin\"\n >\n <span>{{ btnCheckin }}</span></a\n >\n }\n @if (btnBook) {\n <a\n class=\"btn btn__primary btn--lg mobile__reservar\"\n (click)=\"btnClick.emit()\"\n data-modal_name=\"reserver\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\" [style.--bg-url]=\"cssBgUrl\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"] }]
7251
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n <!-- hide buttons when Puro Oasis Urbano -->\n @if (btnCheckin && siteId == 2 && currentHotelId !== 5) {\n <a \n class=\"btn btn__secondary btn--lg mobile__checkIn\"\n (click)=\"btnClickCheckin.emit()\"\n [attr.aria-label]=\"btnCheckin\"\n >\n <span>{{ btnCheckin }}</span></a\n >\n }\n @if (btnBook) {\n <a\n class=\"btn btn__primary btn--lg mobile__reservar\"\n (click)=\"btnClick.emit()\"\n data-modal_name=\"reserver\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\" [style.--bg-url]=\"cssBgUrl\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"] }]
7238
7252
  }], propDecorators: { titleMenu: [{
7239
7253
  type: Input
7240
7254
  }], titleLang: [{
@@ -7255,6 +7269,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
7255
7269
  type: Input
7256
7270
  }], siteId: [{
7257
7271
  type: Input
7272
+ }], currentHotelId: [{
7273
+ type: Input
7258
7274
  }], btnClick: [{
7259
7275
  type: Output
7260
7276
  }], btnClickCheckin: [{