ctt-puro 0.46.9 → 0.46.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/puro-footer-info/puro-footer-info.component.mjs +3 -3
- package/esm2022/lib/components/puro-slider1col/puro-slider1col.component.mjs +3 -3
- package/esm2022/lib/services/mapper/mapper.service.mjs +30 -6
- package/fesm2022/ctt-puro.mjs +33 -9
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/components/puro-slider1col/puro-slider1col.component.d.ts +1 -0
- package/package.json +1 -1
package/fesm2022/ctt-puro.mjs
CHANGED
|
@@ -4194,7 +4194,34 @@ class MapperService {
|
|
|
4194
4194
|
};
|
|
4195
4195
|
}
|
|
4196
4196
|
mapSlider1col(props) {
|
|
4197
|
-
const { multimedia, buttons, texts } = props;
|
|
4197
|
+
const { multimedia, buttons, texts, posts } = props;
|
|
4198
|
+
let items = [];
|
|
4199
|
+
if (multimedia) {
|
|
4200
|
+
items = multimedia?.imagenes?.map((img) => ({
|
|
4201
|
+
img: this.getImageResponsive(img),
|
|
4202
|
+
description: img?.description,
|
|
4203
|
+
}));
|
|
4204
|
+
}
|
|
4205
|
+
else if (posts) {
|
|
4206
|
+
items = posts.map((item) => {
|
|
4207
|
+
const identifier = item?.blogs?.[0]?.nameIdentifier?.toLowerCase() || '';
|
|
4208
|
+
const dynamicSiteId = identifier.includes('puro beach') ? 3 :
|
|
4209
|
+
identifier.includes('puro hotel') ? 2 :
|
|
4210
|
+
1;
|
|
4211
|
+
const prefix = dynamicSiteId === 3 ? '/purobeach' :
|
|
4212
|
+
dynamicSiteId === 2 ? '/purohotels' :
|
|
4213
|
+
'';
|
|
4214
|
+
const button = Utils.mapButtons(dynamicSiteId, item?.buttons || [])?.[0];
|
|
4215
|
+
if (button?.url) {
|
|
4216
|
+
button.url = prefix + button.url;
|
|
4217
|
+
}
|
|
4218
|
+
return {
|
|
4219
|
+
description: item?.texts?.title,
|
|
4220
|
+
img: this.getImageResponsive(item?.multimedia?.[0]),
|
|
4221
|
+
link: button,
|
|
4222
|
+
};
|
|
4223
|
+
});
|
|
4224
|
+
}
|
|
4198
4225
|
return {
|
|
4199
4226
|
button: Utils.mapButtons(this.siteId(), buttons)[0],
|
|
4200
4227
|
subtitle: typeof texts?.subtitle === 'string'
|
|
@@ -4203,10 +4230,7 @@ class MapperService {
|
|
|
4203
4230
|
title: typeof texts?.title === 'string'
|
|
4204
4231
|
? texts?.title
|
|
4205
4232
|
: texts?.title?.contain,
|
|
4206
|
-
items:
|
|
4207
|
-
img: this.getImageResponsive(img),
|
|
4208
|
-
description: img?.description,
|
|
4209
|
-
})),
|
|
4233
|
+
items: items,
|
|
4210
4234
|
tags: {
|
|
4211
4235
|
subtitle: texts?.subtitle?.tag,
|
|
4212
4236
|
title: texts?.title?.tag,
|
|
@@ -6359,7 +6383,7 @@ class PuroFooterInfoComponent {
|
|
|
6359
6383
|
this.newsletterClick.emit(this.form?.value.email);
|
|
6360
6384
|
}
|
|
6361
6385
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroFooterInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6362
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroFooterInfoComponent, isStandalone: true, selector: "lib-puro-footer-info", inputs: { socialMedia: "socialMedia", addressInfo: "addressInfo", contactInfo: "contactInfo", newsletterInfo: "newsletterInfo", img: "img", logoImage: "logoImage", logo: "logo", button: "button", title: "title", tags: "tags", textColors: "textColors" }, outputs: { newsletterClick: "newsletterClick" }, ngImport: i0, template: "<section class=\"contact\" resizeZoom>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"contact__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"contact__graphic\">\n @if (img) {\n <img\n [ngSrc]=\"img.src\"\n class=\"contact__graphic--img\"\n width=\"1763\"\n height=\"434\"\n [alt]=\"img.alt\"\n decoding=\"async\"\n />\n }\n <span class=\"contact__purobeach\">\n @if (logoImage) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logoImage.src\"\n [alt]=\"logoImage.alt\"\n decoding=\"async\"\n />\n }\n </span>\n </div>\n <div class=\"contact__container\">\n @if (socialMedia) {\n <div class=\"contact__followUs\">\n <span class=\"contact__purobeach\">\n @if (logo) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logo.src\"\n [alt]=\"logo.alt\"\n decoding=\"async\"\n />\n }\n </span>\n <ul class=\"contact__followUs--ItemList\">\n @for (item of socialMedia.items || []; track $index) {\n @if (item) {\n <li class=\"contact__followUs--ItemLink\">\n <a\n [href]=\"item.url\"\n [attr.aria-label]=\"item.icon\"\n ><i class=\"{{ item.icon }}\"></i\n ></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n @if (addressInfo) {\n <div class=\"contact__address\">\n @if (addressInfo.title) {\n <h3 class=\"contact__heading\">{{ addressInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n @if (addressInfo.text) {\n <p [innerHTML]=\"addressInfo.text\"></p>\n }\n @if (addressInfo.button) {\n <div class=\"btn__group\">\n <a\n [href]=\"addressInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"addressInfo.button.label\"\n >{{ addressInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (contactInfo) {\n <div class=\"contact__contactLinks\">\n @if (contactInfo.title) {\n <h3 class=\"contact__heading\">{{ contactInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n <ul class=\"contact__links\">\n @for (link of contactInfo.links || []; track $index) {\n @if (link) {\n <li>\n <a\n [href]=\"link.url | contactLink\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n @if (contactInfo.button) {\n <div class=\"btn__group\">\n <a\n [linkType]=\"contactInfo.button.linkType\"\n [href]=\"contactInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"contactInfo.button.label\"\n >{{ contactInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (newsletterInfo) {\n <div class=\"contact__newsletter\">\n @if (newsletterInfo.title) {\n <h3 class=\"contact__heading\">{{ newsletterInfo.title }}</h3>\n }\n\n @if (form) {\n <form class=\"contact__text\" [formGroup]=\"form\">\n <div class=\"contact__newsletterBox\">\n <div class=\"form__group\">\n <input\n type=\"text\"\n class=\"form__control\"\n [placeholder]=\"\n newsletterInfo.inputPlaceholder\n \"\n formControlName=\"email\"\n />\n <span class=\"contact__newsletter--icon\">\n <i class=\"icon-63\"></i>\n </span>\n </div>\n <label class=\"form__checkbox\">\n <input\n type=\"checkbox\"\n class=\"checkbox\"\n formControlName=\"check\"\n />\n <span class=\"box\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"9\"\n height=\"7\"\n >\n <use href=\"#checkbox-tick\"></use>\n </svg>\n </span>\n <span\n [innerHTML]=\"newsletterInfo.conditionsLink\"\n ></span>\n </label>\n </div>\n @if (newsletterInfo.button) {\n <div class=\"btn__group\">\n <a\n class=\"btn__link\"\n (click)=\"send()\"\n [ngClass]=\"{\n 'pointer-none': form.invalid,\n }\"\n [attr.aria-label]=\"\n newsletterInfo.button.label\n \"\n >\n {{ newsletterInfo.button.label }}\n </a>\n </div>\n }\n </form>\n }\n </div>\n }\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "pipe", type: PuroContactLinkPipe, name: "contactLink" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { 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]" }, { kind: "directive", type: PuroResizeZoomDirective, selector: "[resizeZoom]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6386
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroFooterInfoComponent, isStandalone: true, selector: "lib-puro-footer-info", inputs: { socialMedia: "socialMedia", addressInfo: "addressInfo", contactInfo: "contactInfo", newsletterInfo: "newsletterInfo", img: "img", logoImage: "logoImage", logo: "logo", button: "button", title: "title", tags: "tags", textColors: "textColors" }, outputs: { newsletterClick: "newsletterClick" }, ngImport: i0, template: "<section class=\"contact\" resizeZoom>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"contact__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"contact__graphic\">\n @if (img) {\n <img\n [ngSrc]=\"img.src\"\n class=\"contact__graphic--img\"\n width=\"1763\"\n height=\"434\"\n [alt]=\"img.alt\"\n decoding=\"async\"\n />\n }\n <span class=\"contact__purobeach\">\n @if (logoImage) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logoImage.src\"\n [alt]=\"logoImage.alt\"\n decoding=\"async\"\n data-no-zoom\n />\n }\n </span>\n </div>\n <div class=\"contact__container\">\n @if (socialMedia) {\n <div class=\"contact__followUs\">\n <span class=\"contact__purobeach\">\n @if (logo) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logo.src\"\n [alt]=\"logo.alt\"\n decoding=\"async\"\n data-no-zoom\n />\n }\n </span>\n <ul class=\"contact__followUs--ItemList\">\n @for (item of socialMedia.items || []; track $index) {\n @if (item) {\n <li class=\"contact__followUs--ItemLink\">\n <a\n [href]=\"item.url\"\n [attr.aria-label]=\"item.icon\"\n ><i class=\"{{ item.icon }}\"></i\n ></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n @if (addressInfo) {\n <div class=\"contact__address\">\n @if (addressInfo.title) {\n <h3 class=\"contact__heading\">{{ addressInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n @if (addressInfo.text) {\n <p [innerHTML]=\"addressInfo.text\"></p>\n }\n @if (addressInfo.button) {\n <div class=\"btn__group\">\n <a\n [href]=\"addressInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"addressInfo.button.label\"\n >{{ addressInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (contactInfo) {\n <div class=\"contact__contactLinks\">\n @if (contactInfo.title) {\n <h3 class=\"contact__heading\">{{ contactInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n <ul class=\"contact__links\">\n @for (link of contactInfo.links || []; track $index) {\n @if (link) {\n <li>\n <a\n [href]=\"link.url | contactLink\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n @if (contactInfo.button) {\n <div class=\"btn__group\">\n <a\n [linkType]=\"contactInfo.button.linkType\"\n [href]=\"contactInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"contactInfo.button.label\"\n >{{ contactInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (newsletterInfo) {\n <div class=\"contact__newsletter\">\n @if (newsletterInfo.title) {\n <h3 class=\"contact__heading\">{{ newsletterInfo.title }}</h3>\n }\n\n @if (form) {\n <form class=\"contact__text\" [formGroup]=\"form\">\n <div class=\"contact__newsletterBox\">\n <div class=\"form__group\">\n <input\n type=\"text\"\n class=\"form__control\"\n [placeholder]=\"\n newsletterInfo.inputPlaceholder\n \"\n formControlName=\"email\"\n />\n <span class=\"contact__newsletter--icon\">\n <i class=\"icon-63\"></i>\n </span>\n </div>\n <label class=\"form__checkbox\">\n <input\n type=\"checkbox\"\n class=\"checkbox\"\n formControlName=\"check\"\n />\n <span class=\"box\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"9\"\n height=\"7\"\n >\n <use href=\"#checkbox-tick\"></use>\n </svg>\n </span>\n <span\n [innerHTML]=\"newsletterInfo.conditionsLink\"\n ></span>\n </label>\n </div>\n @if (newsletterInfo.button) {\n <div class=\"btn__group\">\n <a\n class=\"btn__link\"\n (click)=\"send()\"\n [ngClass]=\"{\n 'pointer-none': form.invalid,\n }\"\n [attr.aria-label]=\"\n newsletterInfo.button.label\n \"\n >\n {{ newsletterInfo.button.label }}\n </a>\n </div>\n }\n </form>\n }\n </div>\n }\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "pipe", type: PuroContactLinkPipe, name: "contactLink" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { 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]" }, { kind: "directive", type: PuroResizeZoomDirective, selector: "[resizeZoom]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6363
6387
|
}
|
|
6364
6388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroFooterInfoComponent, decorators: [{
|
|
6365
6389
|
type: Component,
|
|
@@ -6373,7 +6397,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
6373
6397
|
NgOptimizedImage,
|
|
6374
6398
|
AutoImageZoomWrapperDirective,
|
|
6375
6399
|
PuroResizeZoomDirective,
|
|
6376
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"contact\" resizeZoom>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"contact__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"contact__graphic\">\n @if (img) {\n <img\n [ngSrc]=\"img.src\"\n class=\"contact__graphic--img\"\n width=\"1763\"\n height=\"434\"\n [alt]=\"img.alt\"\n decoding=\"async\"\n />\n }\n <span class=\"contact__purobeach\">\n @if (logoImage) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logoImage.src\"\n [alt]=\"logoImage.alt\"\n decoding=\"async\"\n />\n }\n </span>\n </div>\n <div class=\"contact__container\">\n @if (socialMedia) {\n <div class=\"contact__followUs\">\n <span class=\"contact__purobeach\">\n @if (logo) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logo.src\"\n [alt]=\"logo.alt\"\n decoding=\"async\"\n />\n }\n </span>\n <ul class=\"contact__followUs--ItemList\">\n @for (item of socialMedia.items || []; track $index) {\n @if (item) {\n <li class=\"contact__followUs--ItemLink\">\n <a\n [href]=\"item.url\"\n [attr.aria-label]=\"item.icon\"\n ><i class=\"{{ item.icon }}\"></i\n ></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n @if (addressInfo) {\n <div class=\"contact__address\">\n @if (addressInfo.title) {\n <h3 class=\"contact__heading\">{{ addressInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n @if (addressInfo.text) {\n <p [innerHTML]=\"addressInfo.text\"></p>\n }\n @if (addressInfo.button) {\n <div class=\"btn__group\">\n <a\n [href]=\"addressInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"addressInfo.button.label\"\n >{{ addressInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (contactInfo) {\n <div class=\"contact__contactLinks\">\n @if (contactInfo.title) {\n <h3 class=\"contact__heading\">{{ contactInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n <ul class=\"contact__links\">\n @for (link of contactInfo.links || []; track $index) {\n @if (link) {\n <li>\n <a\n [href]=\"link.url | contactLink\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n @if (contactInfo.button) {\n <div class=\"btn__group\">\n <a\n [linkType]=\"contactInfo.button.linkType\"\n [href]=\"contactInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"contactInfo.button.label\"\n >{{ contactInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (newsletterInfo) {\n <div class=\"contact__newsletter\">\n @if (newsletterInfo.title) {\n <h3 class=\"contact__heading\">{{ newsletterInfo.title }}</h3>\n }\n\n @if (form) {\n <form class=\"contact__text\" [formGroup]=\"form\">\n <div class=\"contact__newsletterBox\">\n <div class=\"form__group\">\n <input\n type=\"text\"\n class=\"form__control\"\n [placeholder]=\"\n newsletterInfo.inputPlaceholder\n \"\n formControlName=\"email\"\n />\n <span class=\"contact__newsletter--icon\">\n <i class=\"icon-63\"></i>\n </span>\n </div>\n <label class=\"form__checkbox\">\n <input\n type=\"checkbox\"\n class=\"checkbox\"\n formControlName=\"check\"\n />\n <span class=\"box\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"9\"\n height=\"7\"\n >\n <use href=\"#checkbox-tick\"></use>\n </svg>\n </span>\n <span\n [innerHTML]=\"newsletterInfo.conditionsLink\"\n ></span>\n </label>\n </div>\n @if (newsletterInfo.button) {\n <div class=\"btn__group\">\n <a\n class=\"btn__link\"\n (click)=\"send()\"\n [ngClass]=\"{\n 'pointer-none': form.invalid,\n }\"\n [attr.aria-label]=\"\n newsletterInfo.button.label\n \"\n >\n {{ newsletterInfo.button.label }}\n </a>\n </div>\n }\n </form>\n }\n </div>\n }\n </div>\n</section>\n" }]
|
|
6400
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"contact\" resizeZoom>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'span'\"\n cssClass=\"contact__title\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n <div class=\"contact__graphic\">\n @if (img) {\n <img\n [ngSrc]=\"img.src\"\n class=\"contact__graphic--img\"\n width=\"1763\"\n height=\"434\"\n [alt]=\"img.alt\"\n decoding=\"async\"\n />\n }\n <span class=\"contact__purobeach\">\n @if (logoImage) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logoImage.src\"\n [alt]=\"logoImage.alt\"\n decoding=\"async\"\n data-no-zoom\n />\n }\n </span>\n </div>\n <div class=\"contact__container\">\n @if (socialMedia) {\n <div class=\"contact__followUs\">\n <span class=\"contact__purobeach\">\n @if (logo) {\n <img\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"contact__purobeach--logo\"\n width=\"180\"\n height=\"20\"\n loading=\"lazy\"\n [ngSrc]=\"logo.src\"\n [alt]=\"logo.alt\"\n decoding=\"async\"\n data-no-zoom\n />\n }\n </span>\n <ul class=\"contact__followUs--ItemList\">\n @for (item of socialMedia.items || []; track $index) {\n @if (item) {\n <li class=\"contact__followUs--ItemLink\">\n <a\n [href]=\"item.url\"\n [attr.aria-label]=\"item.icon\"\n ><i class=\"{{ item.icon }}\"></i\n ></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n @if (addressInfo) {\n <div class=\"contact__address\">\n @if (addressInfo.title) {\n <h3 class=\"contact__heading\">{{ addressInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n @if (addressInfo.text) {\n <p [innerHTML]=\"addressInfo.text\"></p>\n }\n @if (addressInfo.button) {\n <div class=\"btn__group\">\n <a\n [href]=\"addressInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"addressInfo.button.label\"\n >{{ addressInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (contactInfo) {\n <div class=\"contact__contactLinks\">\n @if (contactInfo.title) {\n <h3 class=\"contact__heading\">{{ contactInfo.title }}</h3>\n }\n <div class=\"contact__text\">\n <ul class=\"contact__links\">\n @for (link of contactInfo.links || []; track $index) {\n @if (link) {\n <li>\n <a\n [href]=\"link.url | contactLink\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n @if (contactInfo.button) {\n <div class=\"btn__group\">\n <a\n [linkType]=\"contactInfo.button.linkType\"\n [href]=\"contactInfo.button.url\"\n class=\"btn__link\"\n [attr.aria-label]=\"contactInfo.button.label\"\n >{{ contactInfo.button.label }}</a\n >\n </div>\n }\n </div>\n </div>\n }\n @if (newsletterInfo) {\n <div class=\"contact__newsletter\">\n @if (newsletterInfo.title) {\n <h3 class=\"contact__heading\">{{ newsletterInfo.title }}</h3>\n }\n\n @if (form) {\n <form class=\"contact__text\" [formGroup]=\"form\">\n <div class=\"contact__newsletterBox\">\n <div class=\"form__group\">\n <input\n type=\"text\"\n class=\"form__control\"\n [placeholder]=\"\n newsletterInfo.inputPlaceholder\n \"\n formControlName=\"email\"\n />\n <span class=\"contact__newsletter--icon\">\n <i class=\"icon-63\"></i>\n </span>\n </div>\n <label class=\"form__checkbox\">\n <input\n type=\"checkbox\"\n class=\"checkbox\"\n formControlName=\"check\"\n />\n <span class=\"box\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"9\"\n height=\"7\"\n >\n <use href=\"#checkbox-tick\"></use>\n </svg>\n </span>\n <span\n [innerHTML]=\"newsletterInfo.conditionsLink\"\n ></span>\n </label>\n </div>\n @if (newsletterInfo.button) {\n <div class=\"btn__group\">\n <a\n class=\"btn__link\"\n (click)=\"send()\"\n [ngClass]=\"{\n 'pointer-none': form.invalid,\n }\"\n [attr.aria-label]=\"\n newsletterInfo.button.label\n \"\n >\n {{ newsletterInfo.button.label }}\n </a>\n </div>\n }\n </form>\n }\n </div>\n }\n </div>\n</section>\n" }]
|
|
6377
6401
|
}], propDecorators: { socialMedia: [{
|
|
6378
6402
|
type: Input
|
|
6379
6403
|
}], addressInfo: [{
|
|
@@ -8228,7 +8252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8228
8252
|
|
|
8229
8253
|
class PuroSlider1colComponent {
|
|
8230
8254
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroSlider1colComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8231
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroSlider1colComponent, isStandalone: true, selector: "lib-puro-slider1col", inputs: { title: "title", subtitle: "subtitle", button: "button", items: "items", tags: "tags", textColors: "textColors" }, ngImport: i0, template: "<section\n class=\"news js-active-slider\"\n [puroSlider]=\"items\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-news-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"news__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n @if (subtitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.subtitle || 'p'\"\n cssClass=\"news__subHeading\"\n [color]=\"textColors?.subtitle\"\n [content]=\"subtitle\"\n ></lib-puro-dynamic-heading>\n }\n\n <div class=\"news__inner relative\">\n <div class=\"news__container\">\n <div class=\"js-news-slider news__slider\">\n @if (items) {\n @for (item of items; track $index) {\n <div>\n <a\n href=\"\"\n class=\"news__box\"\n [attr.aria-label]=\"item.description\"\n >\n <div class=\"news__graphic\">\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n width=\"391\"\n height=\"552\"\n class=\"news__graphic--img\"\n [alt]=\"item.img.alt\"\n decoding=\"async\"\n />\n }\n </div>\n <div class=\"news__content\">\n @if (item.description) {\n <p>{{ item.description }}</p>\n }\n </div>\n </a>\n </div>\n }\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n @if (button) {\n <div class=\"btn__group hideBtn__only--lg\">\n <a\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n puroLinkType\n [linkType]=\"button.linkType\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { 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]" }, { kind: "component", type: PuroDynamicHeadingComponent, selector: "lib-puro-dynamic-heading", inputs: ["tag", "wrapper", "cssClass", "content", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8255
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroSlider1colComponent, isStandalone: true, selector: "lib-puro-slider1col", inputs: { title: "title", subtitle: "subtitle", button: "button", items: "items", tags: "tags", textColors: "textColors" }, ngImport: i0, template: "<section\n class=\"news js-active-slider generalMargin\"\n [puroSlider]=\"items\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-news-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"news__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n @if (subtitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.subtitle || 'p'\"\n cssClass=\"news__subHeading\"\n [color]=\"textColors?.subtitle\"\n [content]=\"subtitle\"\n ></lib-puro-dynamic-heading>\n }\n\n <div class=\"news__inner relative\">\n <div class=\"news__container\">\n <div class=\"js-news-slider news__slider\">\n @if (items) {\n @for (item of items; track $index) {\n <div>\n <a\n href=\"\"\n class=\"news__box\"\n [attr.aria-label]=\"item.description\"\n >\n <div class=\"news__graphic\">\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n width=\"391\"\n height=\"552\"\n class=\"news__graphic--img\"\n [alt]=\"item.img.alt\"\n decoding=\"async\"\n />\n }\n </div>\n <div class=\"news__content\">\n @if (item.description) {\n <p>{{ item.description }}</p>\n }\n </div>\n </a>\n </div>\n }\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n @if (button) {\n <div class=\"btn__group hideBtn__only--lg\">\n <a\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n puroLinkType\n [linkType]=\"button.linkType\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { 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]" }, { kind: "component", type: PuroDynamicHeadingComponent, selector: "lib-puro-dynamic-heading", inputs: ["tag", "wrapper", "cssClass", "content", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8232
8256
|
}
|
|
8233
8257
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroSlider1colComponent, decorators: [{
|
|
8234
8258
|
type: Component,
|
|
@@ -8239,7 +8263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8239
8263
|
NgOptimizedImage,
|
|
8240
8264
|
AutoImageZoomWrapperDirective,
|
|
8241
8265
|
PuroDynamicHeadingComponent,
|
|
8242
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"news js-active-slider\"\n [puroSlider]=\"items\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-news-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"news__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n @if (subtitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.subtitle || 'p'\"\n cssClass=\"news__subHeading\"\n [color]=\"textColors?.subtitle\"\n [content]=\"subtitle\"\n ></lib-puro-dynamic-heading>\n }\n\n <div class=\"news__inner relative\">\n <div class=\"news__container\">\n <div class=\"js-news-slider news__slider\">\n @if (items) {\n @for (item of items; track $index) {\n <div>\n <a\n href=\"\"\n class=\"news__box\"\n [attr.aria-label]=\"item.description\"\n >\n <div class=\"news__graphic\">\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n width=\"391\"\n height=\"552\"\n class=\"news__graphic--img\"\n [alt]=\"item.img.alt\"\n decoding=\"async\"\n />\n }\n </div>\n <div class=\"news__content\">\n @if (item.description) {\n <p>{{ item.description }}</p>\n }\n </div>\n </a>\n </div>\n }\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n @if (button) {\n <div class=\"btn__group hideBtn__only--lg\">\n <a\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n puroLinkType\n [linkType]=\"button.linkType\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n</section>\n" }]
|
|
8266
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"news js-active-slider generalMargin\"\n [puroSlider]=\"items\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-news-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n>\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"news__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n @if (subtitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.subtitle || 'p'\"\n cssClass=\"news__subHeading\"\n [color]=\"textColors?.subtitle\"\n [content]=\"subtitle\"\n ></lib-puro-dynamic-heading>\n }\n\n <div class=\"news__inner relative\">\n <div class=\"news__container\">\n <div class=\"js-news-slider news__slider\">\n @if (items) {\n @for (item of items; track $index) {\n <div>\n <a\n href=\"\"\n class=\"news__box\"\n [attr.aria-label]=\"item.description\"\n >\n <div class=\"news__graphic\">\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n width=\"391\"\n height=\"552\"\n class=\"news__graphic--img\"\n [alt]=\"item.img.alt\"\n decoding=\"async\"\n />\n }\n </div>\n <div class=\"news__content\">\n @if (item.description) {\n <p>{{ item.description }}</p>\n }\n </div>\n </a>\n </div>\n }\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n\n @if (button) {\n <div class=\"btn__group hideBtn__only--lg\">\n <a\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n puroLinkType\n [linkType]=\"button.linkType\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n</section>\n" }]
|
|
8243
8267
|
}], propDecorators: { title: [{
|
|
8244
8268
|
type: Input
|
|
8245
8269
|
}], subtitle: [{
|