tent-lib 1.7.2 → 1.7.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tent-lib.mjs","sources":["../../../projects/tent/src/lib/components/atomic/badge/badge.component.ts","../../../projects/tent/src/lib/components/atomic/badge/badge.component.html","../../../projects/tent/src/lib/components/atomic/breadcrump/breadcrump.component.ts","../../../projects/tent/src/lib/components/atomic/breadcrump/breadcrump.component.html","../../../projects/tent/src/lib/components/atomic/button/button.component.ts","../../../projects/tent/src/lib/components/atomic/button/button.component.html","../../../projects/tent/src/lib/components/atomic/datepicker/datepicker.component.ts","../../../projects/tent/src/lib/components/atomic/datepicker/datepicker.component.html","../../../projects/tent/src/lib/components/atomic/dropdown/dropdown.component.ts","../../../projects/tent/src/lib/components/atomic/dropdown/dropdown.component.html","../../../projects/tent/src/lib/components/atomic/input/input.component.ts","../../../projects/tent/src/lib/components/atomic/input/input.component.html","../../../projects/tent/src/lib/components/core/advantages/advantages.component.ts","../../../projects/tent/src/lib/components/core/advantages/advantages.component.html","../../../projects/tent/src/lib/components/core/brunch-gallery/brunch-gallery.component.ts","../../../projects/tent/src/lib/components/core/brunch-gallery/brunch-gallery.component.html","../../../projects/tent/src/lib/components/core/brunch/brunch.component.ts","../../../projects/tent/src/lib/components/core/brunch/brunch.component.html","../../../projects/tent/src/lib/components/core/cards-2col/cards-2col.component.ts","../../../projects/tent/src/lib/components/core/cards-2col/cards-2col.component.html","../../../projects/tent/src/lib/components/core/cards-3col/cards-3col.component.ts","../../../projects/tent/src/lib/components/core/cards-3col/cards-3col.component.html","../../../projects/tent/src/lib/components/core/contact-form/contact-form.component.ts","../../../projects/tent/src/lib/components/core/contact-form/contact-form.component.html","../../../projects/tent/src/lib/components/core/contact-office/contact-office.component.ts","../../../projects/tent/src/lib/components/core/contact-office/contact-office.component.html","../../../projects/tent/src/lib/components/core/delivery-app/delivery-app.component.ts","../../../projects/tent/src/lib/components/core/delivery-app/delivery-app.component.html","../../../projects/tent/src/lib/components/core/destination-hotels/destination-hotels.component.ts","../../../projects/tent/src/lib/components/core/destination-hotels/destination-hotels.component.html","../../../projects/tent/src/lib/directives/lazy-background.directive.ts","../../../projects/tent/src/lib/components/core/destination-info/destination-info.component.ts","../../../projects/tent/src/lib/components/core/destination-info/destination-info.component.html","../../../projects/tent/src/lib/components/core/destination-list/destination-list.component.ts","../../../projects/tent/src/lib/components/core/destination-list/destination-list.component.html","../../../projects/tent/src/lib/components/core/employment-benefits/employment-benefits.component.ts","../../../projects/tent/src/lib/components/core/employment-benefits/employment-benefits.component.html","../../../projects/tent/src/lib/components/core/employment-form/employment-form.component.ts","../../../projects/tent/src/lib/components/core/employment-form/employment-form.component.html","../../../projects/tent/src/lib/components/core/facilities-slider/facilities-slider.component.ts","../../../projects/tent/src/lib/components/core/facilities-slider/facilities-slider.component.html","../../../projects/tent/src/lib/components/core/footer-a/footer-a.component.ts","../../../projects/tent/src/lib/components/core/footer-a/footer-a.component.html","../../../projects/tent/src/lib/components/core/footer-b/footer-b.component.ts","../../../projects/tent/src/lib/components/core/footer-b/footer-b.component.html","../../../projects/tent/src/lib/components/core/footer-static/footer-static.component.ts","../../../projects/tent/src/lib/components/core/footer-static/footer-static.component.html","../../../projects/tent/src/lib/components/core/modals/room-zoom-modal/room-zoom-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/room-zoom-modal/room-zoom-modal.component.html","../../../projects/tent/src/lib/components/core/gallery-photos/gallery-photos.component.ts","../../../projects/tent/src/lib/components/core/gallery-photos/gallery-photos.component.html","../../../projects/tent/src/lib/components/core/generic-head/generic-head.component.ts","../../../projects/tent/src/lib/components/core/generic-head/generic-head.component.html","../../../projects/tent/src/lib/components/core/guests-popup/guests-popup.component.ts","../../../projects/tent/src/lib/components/core/guests-popup/guests-popup.component.html","../../../projects/tent/src/lib/components/core/header-mobile/header-mobile.component.ts","../../../projects/tent/src/lib/components/core/header-mobile/header-mobile.component.html","../../../projects/tent/src/lib/components/core/modals/hotel-list-modal/hotel-list-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/hotel-list-modal/hotel-list-modal.component.html","../../../projects/tent/src/lib/components/core/header/header.component.ts","../../../projects/tent/src/lib/components/core/header/header.component.html","../../../projects/tent/src/lib/components/core/hotel-about/hotel-about.component.ts","../../../projects/tent/src/lib/components/core/hotel-about/hotel-about.component.html","../../../projects/tent/src/lib/components/core/hotel-app/hotel-app.component.ts","../../../projects/tent/src/lib/components/core/hotel-app/hotel-app.component.html","../../../projects/tent/src/lib/components/core/hotel-equipment/hotel-equipment.component.ts","../../../projects/tent/src/lib/components/core/hotel-equipment/hotel-equipment.component.html","../../../projects/tent/src/lib/components/core/hotel-location/hotel-location.component.ts","../../../projects/tent/src/lib/components/core/hotel-location/hotel-location.component.html","../../../projects/tent/src/lib/components/core/hotel-services/hotel-services.component.ts","../../../projects/tent/src/lib/components/core/hotel-services/hotel-services.component.html","../../../projects/tent/src/lib/components/core/hotel-slider/hotel-slider.component.ts","../../../projects/tent/src/lib/components/core/hotel-slider/hotel-slider.component.html","../../../projects/tent/src/lib/pipes/currency.pipe.ts","../../../projects/tent/src/lib/components/core/hotels-list/hotels-list.component.ts","../../../projects/tent/src/lib/components/core/hotels-list/hotels-list.component.html","../../../projects/tent/src/lib/components/core/info-slider/info-slider.component.ts","../../../projects/tent/src/lib/components/core/info-slider/info-slider.component.html","../../../projects/tent/src/lib/components/core/location-beach/location-beach.component.ts","../../../projects/tent/src/lib/components/core/location-beach/location-beach.component.html","../../../projects/tent/src/lib/components/core/location-how/location-how.component.ts","../../../projects/tent/src/lib/components/core/location-how/location-how.component.html","../../../projects/tent/src/lib/components/core/location-map/location-map.component.ts","../../../projects/tent/src/lib/components/core/location-map/location-map.component.html","../../../projects/tent/src/lib/components/core/loyalty-form/loyalty-form.component.ts","../../../projects/tent/src/lib/components/core/loyalty-form/loyalty-form.component.html","../../../projects/tent/src/lib/components/core/modals/books-modal/books-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/books-modal/books-modal.component.html","../../../projects/tent/src/lib/components/core/modals/checkin-modal/checkin-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/checkin-modal/checkin-modal.component.html","../../../projects/tent/src/lib/components/core/modals/gallery-category/gallery-category.component.ts","../../../projects/tent/src/lib/components/core/modals/gallery-category/gallery-category.component.html","../../../projects/tent/src/lib/components/core/modals/languages-modal/languages-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/languages-modal/languages-modal.component.html","../../../projects/tent/src/lib/components/core/modals/loyalty-modal/loyalty-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/loyalty-modal/loyalty-modal.component.html","../../../projects/tent/src/lib/components/core/modals/menu-modal/menu-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/menu-modal/menu-modal.component.html","../../../projects/tent/src/lib/components/core/modals/newsletter-modal/newsletter-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/newsletter-modal/newsletter-modal.component.html","../../../projects/tent/src/lib/components/core/module-404/module-404.component.ts","../../../projects/tent/src/lib/components/core/module-404/module-404.component.html","../../../projects/tent/src/lib/components/core/module-brava/module-brava.component.ts","../../../projects/tent/src/lib/components/core/module-brava/module-brava.component.html","../../../projects/tent/src/lib/components/core/module-google-maps/module-google-maps.component.ts","../../../projects/tent/src/lib/components/core/module-google-maps/module-google-maps.component.html","../../../projects/tent/src/lib/components/core/module-search/module-search.component.ts","../../../projects/tent/src/lib/components/core/module-search/module-search.component.html","../../../projects/tent/src/lib/components/core/motor/motor.component.ts","../../../projects/tent/src/lib/components/core/motor/motor.component.html","../../../projects/tent/src/lib/components/core/offer-banner/offer-banner.component.ts","../../../projects/tent/src/lib/components/core/offer-banner/offer-banner.component.html","../../../projects/tent/src/lib/components/core/offer-details/offer-details.component.ts","../../../projects/tent/src/lib/components/core/offer-details/offer-details.component.html","../../../projects/tent/src/lib/components/core/offer/offer.component.ts","../../../projects/tent/src/lib/components/core/offer/offer.component.html","../../../projects/tent/src/lib/components/core/offer-list/offer-list.component.ts","../../../projects/tent/src/lib/components/core/offer-list/offer-list.component.html","../../../projects/tent/src/lib/components/core/offer-slider/offer-slider.component.ts","../../../projects/tent/src/lib/components/core/offer-slider/offer-slider.component.html","../../../projects/tent/src/lib/components/core/registration/registration.component.ts","../../../projects/tent/src/lib/components/core/registration/registration.component.html","../../../projects/tent/src/lib/components/core/room-slider/room-slider.component.ts","../../../projects/tent/src/lib/components/core/room-slider/room-slider.component.html","../../../projects/tent/src/lib/components/core/services-details/services-details.component.ts","../../../projects/tent/src/lib/components/core/services-details/services-details.component.html","../../../projects/tent/src/lib/components/core/submenu/submenu.component.ts","../../../projects/tent/src/lib/components/core/submenu/submenu.component.html","../../../projects/tent/src/lib/components/core/tent-carrousel-img/tent-carrousel-img.component.ts","../../../projects/tent/src/lib/components/core/tent-carrousel-img/tent-carrousel-img.component.html","../../../projects/tent/src/lib/components/core/tent-faq/tent-faq.component.ts","../../../projects/tent/src/lib/components/core/tent-faq/tent-faq.component.html","../../../projects/tent/src/lib/components/core/tent-footer-logos/tent-footer-logos.component.ts","../../../projects/tent/src/lib/components/core/tent-footer-logos/tent-footer-logos.component.html","../../../projects/tent/src/lib/components/core/tent-loyalty/tent-loyalty.component.ts","../../../projects/tent/src/lib/components/core/tent-loyalty/tent-loyalty.component.html","../../../projects/tent/src/lib/components/core/tent-redirection/tent-redirection.component.ts","../../../projects/tent/src/lib/components/core/tent-redirection/tent-redirection.component.html","../../../projects/tent/src/lib/components/core/thanks/thanks.component.ts","../../../projects/tent/src/lib/components/core/thanks/thanks.component.html","../../../projects/tent/src/lib/components/core/top-module/top-module.component.ts","../../../projects/tent/src/lib/components/core/top-module/top-module.component.html","../../../projects/tent/src/lib/components/core/travelers/travelers.component.ts","../../../projects/tent/src/lib/components/core/travelers/travelers.component.html","../../../projects/tent/src/lib/components/core/webmap/webmap.component.ts","../../../projects/tent/src/lib/components/core/webmap/webmap.component.html","../../../projects/tent/src/services/dynamic-scripts/dynamic-scripts.service.ts","../../../projects/tent/src/services/language/lang-code.service.ts","../../../projects/tent/src/services/screen-sizer/screen-sizer.service.token.ts","../../../projects/tent/src/services/screen-sizer/screen-sizer.service.ts","../../../projects/tent/src/public-api.ts","../../../projects/tent/src/tent-lib.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'tent-badge',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent {\n @Input() orientation: 'left' | 'right' = 'right';\n @Input() rounded?: boolean;\n @Input() label?: string;\n @Input() icon?: string;\n}\n","<div\n class=\"badge bg-orange color--white\"\n [ngClass]=\"{\n 'badge--rounded': rounded,\n 'badge--left': orientation === 'left' && !rounded,\n 'badge--right': orientation === 'right' && !rounded\n }\"\n>\n <span>{{ label }}</span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { BreadcrumpI } from '../../../interfaces/atomic/breadcrump.interface';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-breadcrump',\n standalone: true,\n imports: [CommonModule, RouterModule],\n templateUrl: './breadcrump.component.html',\n styleUrl: './breadcrump.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumpComponent implements BreadcrumpI, OnInit {\n @Input({ required: true }) breadcrumps!: Breadcrump[];\n @Input() selected?: Breadcrump;\n\n @Output() breadcrumpClick = new EventEmitter<Breadcrump>();\n\n breadcrumpClicked(breadcrump: Breadcrump, event: Event): void {\n event.preventDefault();\n this.selected = this.breadcrumps.find((item) => item === breadcrump);\n this.breadcrumpClick.emit(breadcrump);\n }\n\n ngOnInit(): void {\n this.selected = this.breadcrumps[this.breadcrumps.length - 1];\n }\n}\n\nexport interface Breadcrump {\n label: string;\n url: string;\n}\n","<ol class=\"breadcrump\">\n @for (breadcrump of breadcrumps; track $index; let last = $last) {\n <li class=\"breadcrump__element\">\n <a\n [href]=\"breadcrump.url\"\n [routerLink]=\"[breadcrump.url]\"\n [attr.aria-label]=\"breadcrump.label\"\n class=\"breadcrump__item\"\n (click)=\"breadcrumpClicked(breadcrump, $event)\"\n [ngClass]=\"{\n 'breadcrump__item--active': selected?.label === breadcrump.label\n }\"\n >\n {{ breadcrump.label }}\n </a>\n @if (!last) {\n <div class=\"breadcrump__separator\">·</div>\n }\n </li>\n }\n</ol>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-button',\n standalone: true,\n imports: [CommonModule, RouterModule],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n @Input() type: ButtonType = 'dark-box';\n @Input() label?: string;\n @Input() url?: string;\n @Input() linkType?: string = 'external';\n @Input() icon?: string;\n @Input() socialMedia?:\n | 'instagram'\n | 'tiktok'\n | 'youtube'\n | 'facebook'\n | 'linkedin';\n @Input() iconPosition?: 'left' | 'right' = 'left';\n @Input() boxWidth?: string;\n @Input() innerContent?: string;\n @Input() linkSizeIcon?: string;\n @Input() closeButton?: boolean;\n @Input() disabled?: boolean;\n @Input() name?: string;\n\n @Output() btnClick = new EventEmitter<void>();\n\n private readonly sanitizer = inject(DomSanitizer);\n\n get showBtn(): boolean {\n return (this.label || this.icon || this.innerContent) !== undefined;\n }\n\n get width(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n this.boxWidth ? `--size-btn-box: ${this.boxWidth}` : ''\n );\n }\n\n get linkIconStyle(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n this.linkSizeIcon\n ? `--btns-size-icon-links: ${this.linkSizeIcon}`\n : ''\n );\n }\n\n get isInternalLink(): boolean {\n return this.linkType === 'internal';\n }\n\n btnClicked(event: Event) {\n if (this.linkType === 'internal' || this.linkType === 'redirect') {\n event?.preventDefault();\n }\n this.btnClick.emit();\n }\n}\n\nexport type ButtonType =\n | 'light-box'\n | 'dark-box'\n | 'dark-box-white'\n | 'dark-box-filled'\n | 'dark-link'\n | 'light-circle'\n | 'dark-circle'\n | 'dark-circle-filled';\n","@if (showBtn) { @if (url) { @if (isInternalLink) {\n<a\n class=\"btn\"\n [ngClass]=\"{\n 'btn--box':\n type === 'light-box' ||\n type === 'dark-box-white' ||\n type === 'dark-box' ||\n type === 'dark-box-filled',\n 'btn--dark': type === 'dark-box' || type === 'dark-circle',\n 'btn--dark-white': type === 'dark-box-white',\n 'btn--dark-filled':\n type === 'dark-box-filled' || type === 'dark-circle-filled',\n 'btn--light': type === 'light-box' || type === 'light-circle',\n 'btn--circle--social-media': socialMedia,\n disabled: disabled,\n 'btn--circle':\n type === 'dark-circle' ||\n type === 'light-circle' ||\n type === 'dark-circle-filled',\n 'btn--close': closeButton,\n 'btn--link': type === 'dark-link'\n }\"\n [routerLink]=\"[url]\"\n target=\"_self\"\n [style]=\"width\"\n [href]=\"url\"\n [attr.aria-label]=\"label\"\n (click)=\"btnClicked($event)\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n} @else {\n<a\n class=\"btn\"\n [ngClass]=\"{\n 'btn--box':\n type === 'light-box' ||\n type === 'dark-box-white' ||\n type === 'dark-box' ||\n type === 'dark-box-filled',\n 'btn--dark': type === 'dark-box' || type === 'dark-circle',\n 'btn--dark-white': type === 'dark-box-white',\n 'btn--dark-filled':\n type === 'dark-box-filled' || type === 'dark-circle-filled',\n 'btn--light': type === 'light-box' || type === 'light-circle',\n 'btn--circle--social-media': socialMedia,\n disabled: disabled,\n 'btn--circle':\n type === 'dark-circle' ||\n type === 'light-circle' ||\n type === 'dark-circle-filled',\n 'btn--close': closeButton,\n 'btn--link': type === 'dark-link'\n }\"\n target=\"_blank\"\n [style]=\"width\"\n [href]=\"url\"\n [attr.aria-label]=\"label\"\n (click)=\"btnClicked($event)\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n} } @else {\n<!--BUTTON BOX-->\n@if(type === 'light-box' || type ==='dark-box-white' || type ==='dark-box' ||\ntype ==='dark-box-filled') {\n<button\n class=\"btn btn--box\"\n [ngClass]=\"{\n 'btn--dark': type === 'dark-box',\n 'btn--dark-white': type === 'dark-box-white',\n 'btn--dark-filled': type === 'dark-box-filled',\n 'btn--light': type === 'light-box',\n 'disabled': disabled,\n }\"\n [style]=\"width\"\n (click)=\"btnClicked($event)\"\n [attr.disabled]=\"disabled ? true : null\"\n [name]=\"name\"\n [attr.aria-label]=\"name\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n}\n<!--BUTTON CIRCLE-->\n@if(type === 'light-circle' || type === 'dark-circle' || type ===\n'dark-circle-filled') {\n<div class=\"btn--circle-container\">\n <button\n class=\"btn btn--circle btn--circle--{{ socialMedia }}\"\n [ngClass]=\"{\n 'btn--circle--social-media': socialMedia,\n 'btn--dark': type === 'dark-circle',\n 'btn--light': type === 'light-circle',\n 'btn--dark-filled': type === 'dark-circle-filled',\n 'btn--close': closeButton\n }\"\n (click)=\"btnClicked($event)\"\n [name]=\"name\"\n [attr.aria-label]=\"name\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</div>\n}\n\n<!--BUTTON LINK-->\n@if (type === 'dark-link') {\n<p class=\"btn btn--link\" (click)=\"btnClicked($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</p>\n} } }\n\n<ng-template #content>\n <!--BUTTON BOX-->\n @if(type === 'light-box' || type ==='dark-box-white' || type ==='dark-box'\n || type ==='dark-box-filled') {\n\n <div class=\"btn--box-container\">\n @if(icon && iconPosition === 'left' ) {\n <mat-icon\n fontSet=\"icomoon\"\n class=\"btn--box-icon\"\n [ngClass]=\"icon\"\n ></mat-icon>\n }\n\n {{ label }}\n\n @if(icon && iconPosition === 'right') {\n <mat-icon\n fontSet=\"icomoon\"\n class=\"btn--box-icon\"\n [ngClass]=\"icon\"\n ></mat-icon>\n }\n </div>\n\n }\n <!--BUTTON CIRCLE-->\n @if(type === 'light-circle' || type === 'dark-circle' || type ===\n 'dark-circle-filled') { @if (icon) {\n <mat-icon\n fontSet=\"icomoon\"\n [ngClass]=\"icon\"\n class=\"btn--circle-icon\"\n ></mat-icon>\n\n } }\n\n <!--BUTTON LINK-->\n @if (type === 'dark-link') { @if(icon && iconPosition === 'left' ) {\n <mat-icon\n fontSet=\"icomoon\"\n [ngClass]=\"icon\"\n class=\"btn--link-icon\"\n ></mat-icon>\n } @if (label) {\n {{ label }}\n } @else {\n <span [innerHTML]=\"innerContent\"></span>\n } @if(icon && iconPosition === 'right') {\n <mat-icon\n fontSet=\"icomoon\"\n [ngClass]=\"icon\"\n class=\"btn--link-icon\"\n [style]=\"linkIconStyle\"\n ></mat-icon>\n } }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Calendar, CalendarModule } from 'primeng/calendar';\n\n@Component({\n selector: 'tent-datepicker',\n standalone: true,\n imports: [CommonModule, CalendarModule, FormsModule, MatIconModule],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DatepickerComponent implements ControlValueAccessor {\n @ViewChild('datepicker') datepicker!: Calendar;\n @Input() value?: Date[];\n @Input() title?: string;\n @Input() placeholder?: string;\n @Input() icon?: string;\n @Input() isDisabled = false;\n @Input() bordered = false;\n @Input() sameTitlePlaceholder = false;\n\n @Output() change = new EventEmitter<typeof this.value>();\n\n dateFormat = 'dd-mm-yy';\n minDate = new Date();\n\n onChange = (_: Date[] | undefined) => {};\n onTouch = () => {};\n\n dateChange(date: Date[] | undefined): void {\n this.value = date;\n\n if (date && this.sameTitlePlaceholder && !this.title) {\n this.title = this.placeholder;\n }\n\n this.onTouch();\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n openCalendar(): void {\n this.datepicker.toggle();\n }\n\n //Control value accessor\n\n writeValue(value: Date[] | undefined): void {\n if (value) {\n this.value = value;\n } else {\n this.value = undefined;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"datepicker--wrapper\">\n <div class=\"datepicker--content\">\n @if (title) {\n <p class=\"datepicker--title\">\n {{ title }}\n </p>\n }\n <p-calendar\n class=\"datepicker\"\n [showOtherMonths]=\"false\"\n [minDate]=\"minDate\"\n [dateFormat]=\"dateFormat\"\n [(ngModel)]=\"value\"\n [disabled]=\"isDisabled\"\n selectionMode=\"range\"\n [numberOfMonths]=\"2\"\n [placeholder]=\"placeholder\"\n (ngModelChange)=\"dateChange($event)\"\n #datepicker\n >\n </p-calendar>\n </div>\n\n <mat-icon\n (click)=\"openCalendar()\"\n fontSet=\"icomoon\"\n class=\"datepicker--icon flex-row flex-row--center\"\n [ngClass]=\"icon\"\n ></mat-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n forwardRef,\n viewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Dropdown, DropdownModule } from 'primeng/dropdown';\n\n@Component({\n selector: 'tent-dropdown',\n standalone: true,\n imports: [CommonModule, DropdownModule, FormsModule, CommonModule],\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true,\n },\n ],\n})\nexport class DropdownComponent implements ControlValueAccessor, OnInit {\n @Input() value?: DropdownOption;\n @Input() placeholder?: string;\n @Input() title?: string;\n @Input() smallTitle?: string;\n @Input() options?: DropdownOption[];\n @Input() name!: string;\n @Input() iconLeft?: string;\n @Input() error?: string;\n @Input() theme?: string;\n @Input() valid = true;\n @Input() isDisabled = false;\n @Input() light = false;\n @Input() showTitleTop = false;\n @Input() sameTitlePlaceholder = false;\n @Input() staticPosition = true;\n\n @Output() change = new EventEmitter<DropdownOption>();\n @Output() dropdownBlur = new EventEmitter<void>();\n\n optionsWithSubcategories: DropdownOption[] = [];\n\n isThereSubcategories?: boolean;\n\n onChange = (_: DropdownOption | undefined) => {};\n onTouch = () => {};\n\n constructor(\n private readonly renderer: Renderer2,\n private readonly cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this.isThereSubcategories = this.options?.some(\n (option) => option.subcategories !== undefined\n );\n if (this.isThereSubcategories) {\n this.options?.forEach((option) => {\n this.optionsWithSubcategories.push(option);\n\n if (option.subcategories?.length) {\n option.subcategories.forEach((suboption) => {\n this.optionsWithSubcategories.push(suboption);\n });\n }\n });\n\n this.options = this.optionsWithSubcategories;\n }\n }\n\n onShowDropdown(): void {\n if (this.isThereSubcategories) {\n let i = 0;\n this.options?.forEach((option) => {\n if (!option.subcategories?.length && i > 0) {\n this.renderer.setStyle(\n document.getElementsByTagName('p-dropdownitem')[i]\n .children[0],\n 'padding-left',\n '30px'\n );\n } else {\n this.renderer.setStyle(\n document.getElementsByTagName('p-dropdownitem')[i]\n .children[0],\n 'font-weight',\n '700'\n );\n }\n i++;\n });\n }\n }\n\n valueChange(value: DropdownOption | undefined): void {\n this.value = value;\n\n if (value && this.sameTitlePlaceholder && !this.title) {\n this.title = this.placeholder;\n }\n\n this.onTouch();\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n //Control value accessor\n\n writeValue(value: DropdownOption | undefined): void {\n if (value) {\n this.value = value;\n } else {\n this.value = undefined;\n }\n this.cdr.markForCheck();\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n\nexport interface DropdownOption {\n name: string;\n code: string;\n subcategories?: DropdownOption[];\n ticker?: string;\n}\n","<div\n class=\"dropdown--wrapper\"\n [ngClass]=\"{\n 'dropdown--wrapper--light': light,\n 'dropdown--wrapper--laundry': theme === 'theme-laundry',\n invalid: !valid\n }\"\n>\n <div class=\"dropdown--content\">\n @if (iconLeft) {\n <mat-icon\n fontset=\"icomoon\"\n class=\"color--brown\"\n [ngClass]=\"iconLeft\"\n ></mat-icon>\n }\n <div class=\"dropdown--dropdown\">\n @if (title) {\n <div class=\"dropdown--title-wrapper\">\n <span class=\"dropdown--title color--brown\">\n {{ title }}\n </span>\n @if (smallTitle) {\n <small class=\"dropdown--small-title\">\n {{ smallTitle }}\n </small>\n\n }\n </div>\n\n }\n <p-dropdown\n [ngClass]=\"{\n 'dropdown--big': iconLeft,\n 'dropdown--static': staticPosition\n }\"\n class=\"dropdown\"\n [options]=\"options\"\n [(ngModel)]=\"value\"\n optionLabel=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [name]=\"name\"\n dropdownIcon=\"icon-pointer-down\"\n (ngModelChange)=\"valueChange($event)\"\n (onShow)=\"onShowDropdown()\"\n (onHide)=\"dropdownBlur.emit()\"\n >\n </p-dropdown>\n </div>\n </div>\n <span class=\"icon-pointer-down dropdown--icon\"></span>\n</div>\n@if (!valid) {\n<span class=\"form-error\">{{ error }}</span>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\n\n@Component({\n selector: 'tent-input',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true,\n },\n ],\n})\nexport class InputComponent implements InputI, ControlValueAccessor {\n @Input() type!: 'email' | 'password' | 'text' | 'number' | 'file' | 'tel';\n @Input() value?: string | File = '';\n @Input() placeholder?: string;\n @Input() icon?: string;\n @Input() title?: string;\n @Input() required?: boolean;\n @Input() name!: string;\n @Input() error?: string;\n @Input() isDisabled = false;\n @Input() valid = true;\n @Input() iconBackOffice = false;\n\n @Output() change = new EventEmitter<string | File>();\n @Output() inputBlur = new EventEmitter<void>();\n\n onChange = (_: string | File) => {};\n onTouch = () => {};\n\n constructor() {}\n\n onInputChange(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n\n if (this.type === 'tel') {\n inputElement.value = inputElement.value.replace(/[^0-9+]/g, '');\n }\n\n if (this.type === 'file') {\n const files = inputElement.files;\n if (files && files.length > 0) {\n this.valueChange(Array.from(files)[0]); // Maneja archivos\n }\n } else {\n this.valueChange(inputElement.value); // Maneja valores de texto\n }\n }\n\n valueChange(value: string | File): void {\n this.value = value;\n this.onChange(value);\n this.onTouch();\n this.change.emit(value);\n this.inputBlur.emit();\n }\n\n getValuePath(): string {\n return (this.value as File)?.name ?? '';\n }\n\n //Control value accessor\n\n writeValue(value: string | File): void {\n this.value = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"flex-col\">\n @if (title) {\n <p class=\"input--title\">\n @if (required) {\n <span class=\"input--required\"></span>\n }\n {{ title }}\n </p>\n }\n <div class=\"input--wrapper\" [ngClass]=\"{ invalid: !valid }\">\n <input\n class=\"input\"\n [name]=\"name\"\n [type]=\"type\"\n [value]=\"type !== 'file' ? value : ''\"\n [placeholder]=\"placeholder ?? ''\"\n (change)=\"onInputChange($event)\"\n [attr.accept]=\"type === 'file' ? 'application/pdf' : null\"\n (blur)=\"inputBlur.emit()\"\n />\n @if (type === 'file' && value) {\n <span class=\"input--path\">{{ getValuePath() }}</span>\n } @if (icon) {\n <span\n class=\"input--icon \"\n [ngClass]=\"{ 'input--icon--backoffice': iconBackOffice }\" >\n <span class=\"icon-{{ icon }}\">\n </span>\n </span>\n }\n </div>\n @if (!valid) {\n <span class=\"form-error\">\n {{ error }}\n </span>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n CarouselComponent,\n CarouselModule,\n OwlOptions,\n} from 'ngx-owl-carousel-o';\n\n@Component({\n selector: 'tent-advantages',\n standalone: true,\n imports: [CommonModule, CarouselModule, MatIconModule],\n templateUrl: './advantages.component.html',\n styleUrl: './advantages.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdvantagesComponent {\n @ViewChild(CarouselComponent) carousel!: CarouselComponent;\n\n @Input() title?: string;\n @Input() items?: AdvantageItem[];\n @Input() sliderControls = [\n '/assets/tent/img/arrow-left.svg',\n '/assets/tent/img/arrow-right.svg',\n ];\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n nav: false,\n navText: [\n '<img src=\"/assets/tent/img/arrow-left.svg\" alt=\"left\" class=\" \" >',\n '<img src=\"/assets/tent/img/arrow-right.svg\" alt=\"left\" class=\" \" >',\n ],\n responsive: {\n 0: {\n items: 1,\n margin: 0,\n },\n 688: {\n items: 2,\n margin: 0,\n },\n 1024: {\n items: 2,\n margin: 0,\n },\n 1130: {\n items: 3,\n margin: 0,\n },\n },\n };\n\n prevClick(): void {\n this.carousel.prev();\n }\n\n nextClick(): void {\n this.carousel.next();\n }\n}\n\nexport interface AdvantageItem {\n title: string;\n icon: string;\n}\n","<section class=\"advantages module-spacer--bottom\">\n <div class=\"advantages--content wrapper-big\">\n @if (title) {\n <h4 class=\"title--42 pb--20 color--brown\">{{ title }}</h4>\n }\n\n <div class=\"advantages--box\">\n <owl-carousel-o\n class=\"slider-arrows--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) { @if (item.title) {\n <ng-template carouselSlide>\n <div class=\"advantages--slide flex-row flex-row--between\">\n <p class=\"advantages--text color--brown\">\n {{ item.title }}\n </p>\n\n @if (item.icon) {\n <mat-icon\n [ngClass]=\"item.icon\"\n class=\"color--brown\"\n fontSet=\"icomoon\"\n ></mat-icon>\n }\n\n <div class=\"advantages--separator\"></div>\n </div>\n </ng-template>\n\n } }\n </owl-carousel-o>\n <div class=\"advantages--nav\">\n <div class=\"advantages--nav--inner\">\n <div class=\"advantages--nav--left\">\n <img\n (click)=\"prevClick()\"\n [src]=\"sliderControls[0]\"\n alt=\"left\"\n class=\"\"\n />\n </div>\n <div class=\"advantages--nav--right\">\n <img\n (click)=\"nextClick()\"\n [src]=\"sliderControls[1]\"\n alt=\"right\"\n class=\" \"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\n@Component({\n selector: 'tent-brunch-gallery',\n standalone: true,\n imports: [],\n templateUrl: './brunch-gallery.component.html',\n styleUrl: './brunch-gallery.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrunchGalleryComponent {\n @Input() title?: string;\n @Input() ndTitle?: string;\n @Input() images?: string[];\n @Input() holidayHouse?: boolean;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustUrl(\n `background-image: url(${image})`\n );\n }\n}\n","@if (!holidayHouse) {\n<div class=\"brunch-gallery wrapper-big brunch-gallery-box\">\n <div class=\"brunch-gallery--image-group\">\n <div class=\"brunch-gallery--inner\">\n @if (title) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-mobile\"\n >\n {{ title }}\n </h1>\n } @if (images?.length) {\n <div class=\"brunch-gallery--grid\">\n @for (img of images; track $index) { @if ($index < 6 ) {\n <div class=\"brunch-gallery--item\" [id]=\"'item-' + ($index + 1)\">\n @if ($index === 0) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-desktop\"\n >\n {{ title }}\n </h1>\n }\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n\n } } @if (ndTitle) {\n <div class=\"brunch-gallery--item\" id=\"item-8\">\n <h1 class=\"brunch-gallery--title title--54 color--camel\">\n {{ ndTitle }}\n </h1>\n </div>\n }\n </div>\n }\n </div>\n </div>\n</div>\n\n} @else {\n<!-- //Holiday -->\n<div\n class=\"brunch-gallery wrapper-big module-spacer--bottom holiday-gallery-box\"\n>\n <div class=\"brunch-gallery--image-group\">\n <div class=\"brunch-gallery--inner\">\n @if (title) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-mobile\"\n >\n {{ title }}\n </h1>\n\n } @if (images?.length) {\n <div class=\"brunch-gallery--grid\">\n @for (img of images; track $index) { @if ($index < 8 ) {\n <div class=\"brunch-gallery--item\" [id]=\"'item-' + ($index + 1)\">\n @if ($index === 0) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-desktop\"\n >\n {{ title }}\n </h1>\n }\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n } }\n </div>\n }\n </div>\n </div>\n</div>\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Renderer2 } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { YouTubePlayerModule } from '@angular/youtube-player';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-brunch',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n YouTubePlayerModule,\n MatProgressSpinnerModule,\n ],\n templateUrl: './brunch.component.html',\n styleUrl: './brunch.component.scss',\n})\nexport class BrunchComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n @Input() image?: ImageI;\n @Input() video?: ImageI;\n @Input() timmingTitle?: string;\n @Input() timmingItems?: TimingItem[];\n showMore = false;\n\n tag!: HTMLScriptElement;\n playerVars!: YT.PlayerVars;\n apiloaded = false;\n loading = true;\n\n constructor(private readonly renderer: Renderer2) {}\n\n toggleShowMore(): void {\n this.showMore = !this.showMore;\n }\n\n // ngOnInit(): void {\n // this.playerVars = {\n // enablejsapi: 1,\n // autoplay: 1,\n // controls: 0,\n // showinfo: 0,\n // modestbranding: 1,\n // loop: 1,\n // fs: 1,\n // cc_load_policy: 1,\n // iv_load_policy: 3,\n // autohide: 1,\n // rel: 0,\n // playsinline: 1,\n // playlist: this.video?.src,\n // };\n // if (this.video) {\n // this.initPlayer();\n // }\n // }\n\n // onStateChange(e: any) {\n // e.target.setPlaybackQuality('highres');\n // if (e.data == YT.PlayerState.PLAYING) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.PAUSED) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.ENDED) {\n // e.target.mute();\n // e.target.seekTo(0);\n // e.target.playVideo();\n // }\n // }\n\n // initPlayer(): void {\n // const existingScript = Array.from(\n // document.getElementsByTagName('script')\n // ).find((script) => script.src === 'https://www.youtube.com/iframe_api');\n\n // if (!existingScript) {\n // this.tag = document.createElement('script');\n // this.tag.src = 'https://www.youtube.com/iframe_api';\n // this.tag.async = true;\n // const firstScriptTag = document.getElementsByTagName('script')[0];\n // firstScriptTag.parentNode?.insertBefore(this.tag, firstScriptTag);\n\n // (window as any)['onYouTubeIframeAPIReady'] = () => {\n // this.apiloaded = true;\n // };\n // } else {\n // this.apiloaded = true;\n // }\n // }\n\n // onPlayerReady(event: any) {\n // event.target.mute();\n // event.target.seekTo(1, true);\n // event.target.playVideo();\n // }\n}\n\nexport interface TimingItem {\n label: string;\n icon?: string;\n}\n","<div class=\"wrapper-big module-spacer--bottom\">\n <div class=\"brunch\">\n @if (video || image) {\n <div class=\"brunch--video-wrapper figure-sticky\">\n @if (video) {\n <div class=\"brunch--video\">\n <!-- @if (loading) {\n <mat-spinner></mat-spinner>\n } @if (apiloaded) {\n <youtube-player\n #ytPlayer\n [videoId]=\"video.src\"\n suggestedQuality=\"highres\"\n [showBeforeIframeApiLoads]=\"true\"\n [playerVars]=\"playerVars\"\n (stateChange)=\"onStateChange($event)\"\n (ready)=\"onPlayerReady($event)\"\n [disablePlaceholder]=\"true\"\n >\n </youtube-player\n >} -->\n <video\n loop\n muted\n playsinline\n autoplay\n preload=\"auto\"\n width=\"100%\"\n height=\"100%\"\n oncanplay=\"this.play()\"\n onloadedmetadata=\"this.muted = true\"\n >\n @if (video) {\n <source [src]=\"video.src + '.webm'\" type=\"video/webm\" />\n <source [src]=\"video.src + '.mp4'\" type=\"video/mp4\" />\n }\n </video>\n </div>\n } @else if (image) {\n <img\n class=\"brunch--video\"\n [src]=\"image.src\"\n [alt]=\"image.alt\"\n width=\"600\"\n height=\"600\"\n loading=\"lazy\"\n />\n }\n </div>\n }\n <div class=\"brunch--content-wrapper\">\n @if (title) {\n <h2 class=\"brunch--title title--60 color--brown\">{{ title }}</h2>\n } @if (description) {\n <p class=\"brunch--description text\">\n {{ description }}\n </p>\n } @if (showMore && additionalDescription) {\n <p class=\"brunch--description text\">\n {{ additionalDescription }}\n </p>\n\n } @if (additionalDescription && links?.length) { @if (!showMore) {\n <tent-button\n class=\"brunch--show-more\"\n type=\"dark-link\"\n [label]=\"links?.[0]?.label\"\n (btnClick)=\"toggleShowMore()\"\n [name]=\"links?.[0]?.label\"\n >\n </tent-button>\n } @else {\n <tent-button\n type=\"dark-link\"\n [label]=\"links?.[1]?.label\"\n (btnClick)=\"toggleShowMore()\"\n [name]=\"links?.[1]?.label\"\n >\n </tent-button>\n } } @if (timmingItems?.length) {\n <div class=\"brunch--timing-info\">\n @if (timmingTitle) {\n <p class=\"brunch--timing-title\">horarios</p>\n }\n <ul class=\"brunch--timing-list\">\n @for (item of timmingItems; track $index) { @if (item.label)\n {\n <li class=\"brunch--timing-item\">\n @if (item.icon) {\n <span\n class=\"brunch--timing-item--icon\"\n [ngClass]=\"item.icon\"\n ></span>\n }\n <span class=\"brunch--timing-item--text\">\n {{ item.label }}\n </span>\n </li>\n } }\n </ul>\n </div>\n }\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { RouterModule } from '@angular/router';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\n\n@Component({\n selector: 'tent-cards-2col',\n standalone: true,\n imports: [ButtonComponent, RouterModule],\n templateUrl: './cards-2col.component.html',\n styleUrl: './cards-2col.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Cards2colComponent {\n @Input() itemLeft?: Cards2colItem;\n @Input() itemRight?: Cards2colItem;\n\n get itemLeftLink(): string {\n return this.itemLeft?.btns?.[0]?.url!;\n }\n\n get itemRightLink(): string {\n return this.itemRight?.btns?.[0]?.url!;\n }\n\n linkClicked(event: Event): void {\n event.preventDefault();\n }\n}\n\nexport interface Cards2colItem {\n title: string;\n titleLight: string;\n description: string;\n image: ImageI;\n imageBackground: string;\n btns?: ButtonI[];\n}\n","<section class=\"services-col2 wrapper-big module-spacer--bottom\">\n <div class=\"services-col2--content\">\n @if (itemLeft) {\n <div class=\"services-col2--box\">\n <a\n [routerLink]=\"itemLeftLink\"\n class=\"services-col2--box--inner bg-blue\"\n [href]=\"itemLeftLink\"\n [attr.aria-label]=\"itemLeft.title\"\n (click)=\"linkClicked($event)\"\n >\n <div class=\"services-col2--box--info\">\n @if (itemLeft.image) {\n <img\n [src]=\"itemLeft.image.src\"\n [alt]=\"itemLeft.image.alt\"\n width=\"208\"\n height=\"85\"\n class=\"services-col2--logoTitle\"\n />\n } @if (itemLeft.imageBackground) {\n <img\n [src]=\"itemLeft.imageBackground\"\n [alt]=\"itemLeft.image.alt\"\n loading=\"lazy\"\n width=\"450\"\n height=\"400\"\n class=\"services-col2--markWater water1\"\n />\n } @if (itemLeft.title && itemLeft.description) {\n <div class=\"services-col2--des\">\n <h3 class=\"services-col2--title title--42 color--blue\">\n {{ itemLeft.title }}\n @if (itemLeft.titleLight) {\n <span class=\"color--white\">{{\n itemLeft.titleLight\n }}</span>\n }\n </h3>\n <p class=\"services-col2--text text color--white\">\n {{ itemLeft.description }}\n </p>\n </div>\n }\n </div>\n <tent-button\n class=\"services-col2--btn-plus\"\n type=\"dark-circle-filled\"\n icon=\"icon-plus\"\n name=\"icon-plus\"\n ></tent-button>\n </a>\n </div>\n\n } @if (itemRight) {\n <div class=\"services-col2--box\">\n <a\n [routerLink]=\"itemRightLink\"\n class=\"services-col2--box--inner bg-camel\"\n [href]=\"itemRightLink\"\n (click)=\"linkClicked($event)\"\n [attr.aria-label]=\"itemRight.title\"\n >\n <div class=\"services-col2--box--info\">\n @if (itemRight.image) {\n <img\n [src]=\"itemRight.image.src\"\n [alt]=\"itemRight.image.alt\"\n class=\"services-col2--logoTitle\"\n width=\"174\"\n height=\"61\"\n />\n } @if (itemRight.imageBackground) {\n <img\n [src]=\"itemRight.imageBackground\"\n [alt]=\"itemRight.image.alt\"\n loading=\"lazy\"\n class=\"services-col2--markWater water2\"\n width=\"450\"\n height=\"400\"\n />\n } @if (itemRight.title && itemRight.description) {\n <div class=\"services-col2--des\">\n <h3 class=\"services-col2--title title--42 color--brown\">\n {{ itemRight.title }}\n @if (itemRight.titleLight) {\n <span class=\"color--white\">{{\n itemRight.titleLight\n }}</span>\n }\n </h3>\n <p class=\"services-col2--text text color--white\">\n {{ itemRight.description }}\n </p>\n </div>\n }\n </div>\n <tent-button\n class=\"services-col2--btn-plus\"\n type=\"dark-circle-filled\"\n icon=\"icon-plus\"\n name=\"icon-plus\"\n ></tent-button>\n </a>\n </div>\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-cards-3col',\n standalone: true,\n imports: [CommonModule, CarouselModule, ButtonComponent],\n templateUrl: './cards-3col.component.html',\n styleUrl: './cards-3col.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Cards3colComponent {\n @Input() items!: Cards3colItem[];\n @Input() theme?: string;\n\n collapsed = true;\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> <span><div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> <span><div>',\n ],\n responsive: {\n 0: {\n items: 1,\n loop: true,\n },\n 540: {\n items: 1,\n loop: true,\n },\n 714: {\n items: 2,\n },\n 1024: {\n items: 3,\n },\n 1280: {\n items: 3,\n },\n 1366: {\n items: 3,\n },\n 1680: {\n items: 3,\n },\n },\n nav: true,\n };\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface Cards3colItem {\n title: string;\n smalltitle: string;\n ndTitle: string;\n icon: string;\n btnCollapsed: ButtonI;\n btn: ButtonI;\n}\n","<section class=\"services-col3 wrapper-big module-spacer--bottom\">\n <div class=\"services-col3--content\">\n <owl-carousel-o\n class=\"services-col3--slider slider-circle--center slider-circle--center--centerFull\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"services-col3--slide\">\n <div\n class=\"services-col3--box\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n [ngClass]=\"{\n close: collapsed,\n open: !collapsed,\n 'bg-yellow': $index === 0,\n 'bg-orange': $index === 1,\n 'bg-brown': $index === 2,\n 'bg-blue': $index === 0 && theme == 'theme-loyalty'\n }\"\n >\n <div class=\"services-col3--box--inner\">\n @if (item.title) {\n <h4\n class=\"services-col3--titleTop title--42 color--brown\"\n [innerHTML]=\"item.title\"\n ></h4>\n } @if (item.smalltitle) {\n <p\n class=\"services-col3--btn color--brown\"\n [ngClass]=\"{\n 'theme-loyalty': theme === 'theme-loyalty'\n }\"\n >\n @if (item.icon) {\n <span\n [ngClass]=\"item.icon\"\n class=\"services-col3--icon\"\n ></span>\n }\n <span class=\"title--30\">\n {{ item.smalltitle }}</span\n >\n </p>\n } @if (item.ndTitle) {\n <h3\n class=\"services-col3--titleBottom title--54 color--brown\"\n [innerHTML]=\"item.ndTitle\"\n ></h3>\n }\n </div>\n @if (item.btn && item.btnCollapsed) { @if (collapsed) {\n <tent-button\n class=\"services-col3--btn-plus\"\n type=\"dark-circle-filled\"\n [icon]=\"item.btnCollapsed.icon\"\n (click)=\"toggleCollapse()\"\n [name]=\"item.btnCollapsed.icon\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"services-col3--btn-plus\"\n type=\"dark-circle-filled\"\n [icon]=\"item.btn.icon\"\n (click)=\"toggleCollapse()\"\n [name]=\"item.btn.icon\"\n ></tent-button>\n\n } }\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { tap } from 'rxjs';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\nimport { TextareaI } from '../../../interfaces/atomic/textarea.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\nimport { InputComponent } from '../../atomic/input/input.component';\n\n@Component({\n selector: 'tent-contact-form',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n MatCheckboxModule,\n InputComponent,\n DropdownComponent,\n ReactiveFormsModule,\n FormsModule,\n ],\n templateUrl: './contact-form.component.html',\n styleUrl: './contact-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContactFormComponent implements AfterViewInit {\n @Input() title?: string;\n @Input() description?: string;\n @Input() conditions?: string;\n @Input() requiredFieldsLabel?: string;\n @Input({ required: true }) dropdown!: DropdownI;\n @Input({ required: true }) inputs!: InputI[];\n @Input({ required: true }) textarea!: TextareaI;\n @Input() button?: ButtonI;\n\n @Output() formSubmit = new EventEmitter<ContactFormValue>();\n\n form!: FormGroup;\n\n isValid = signal(false);\n\n formReady = signal(false);\n\n constructor(private readonly fb: FormBuilder) {}\n\n ngAfterViewInit(): void {\n this.initializeForm();\n }\n\n initializeForm(): void {\n this.form = this.fb.group({\n dropdown: [this.dropdown.value, [Validators.required]],\n email: [\n this.inputs[1].value,\n [\n Validators.required,\n Validators.minLength(3),\n Validators.email,\n ],\n ],\n name: [\n this.inputs[0].value,\n [Validators.required, Validators.minLength(3)],\n ],\n textarea: [this.textarea.value],\n checkbox: [false, [Validators.requiredTrue]],\n });\n\n this.form.statusChanges\n .pipe(\n tap((status) => {\n this.isValid.set(status === 'VALID');\n })\n )\n .subscribe();\n\n this.formReady.set(true);\n }\n\n validateInput(name: string) {\n this.inputs[name === 'name' ? 0 : 1].valid =\n this.form.controls[name].errors === null;\n }\n\n validateDropdown(): void {\n this.dropdown.valid = this.form.controls['dropdown'].errors === null;\n }\n\n submitForm(): void {\n this.formSubmit.emit(this.form.value);\n this.resetForm();\n }\n\n resetForm(): void {\n this.form.reset();\n this.dropdown.value = undefined;\n this.textarea.value = '';\n this.inputs.forEach((input) => {\n input.value = '';\n });\n }\n}\n\nexport interface ContactFormValue {\n dropdown?: DropdownOption;\n email: string;\n name: string;\n checkbox: boolean;\n textarea?: string;\n}\n","<section class=\"contact-form\">\n @if (title || description) {\n <div class=\"flex-col contact-form--header\">\n @if (title) {\n <h3 class=\"contact-form--title color--brown\">\n {{ title }}\n </h3>\n } @if (description) {\n <p class=\"contact-form--description\">\n {{ description }}\n </p>\n }\n </div>\n } @if (formReady()) {\n <form class=\"contact-form--form\" [formGroup]=\"form\">\n <div class=\"contact-form--left\">\n @if (dropdown) {\n <div class=\"contact-form--dropdown flex-col\">\n <p class=\"contact-form--msg--title\">\n <span class=\"input--required\"></span>{{ dropdown.title }}\n </p>\n <tent-dropdown\n [options]=\"dropdown.options\"\n formControlName=\"dropdown\"\n name=\"hotels\"\n [value]=\"dropdown.value\"\n [valid]=\"dropdown.valid!\"\n [error]=\"dropdown.error\"\n (dropdownBlur)=\"validateDropdown()\"\n ></tent-dropdown>\n </div>\n } @if (inputs && inputs.length) { @for (input of inputs; track\n $index; let first = $first) {\n <tent-input\n [iconBackOffice]=\"true\"\n [title]=\"input.title\"\n [name]=\"input.name\"\n [type]=\"input.type\"\n [placeholder]=\"input.placeholder\"\n [icon]=\"input.icon\"\n [required]=\"true\"\n [value]=\"input.value!\"\n [error]=\"input.error\"\n [valid]=\"input.valid!\"\n (inputBlur)=\"validateInput(first ? 'name' : 'email')\"\n [formControlName]=\"first ? 'name' : 'email'\"\n ></tent-input>\n\n } }\n </div>\n <div class=\"contact-form--right\">\n @if (textarea) {\n <div class=\"contact-form--msg flex-col\">\n <p class=\"contact-form--msg--title\">\n {{ textarea.title }}\n </p>\n <textarea\n class=\"contact-form--msg--textarea\"\n [placeholder]=\"textarea.placeholder\"\n [value]=\"textarea.value\"\n name=\"textarea\"\n formControlName=\"textarea\"\n ></textarea>\n </div>\n\n }\n <div class=\"contact-form--footer\">\n <div class=\"flex-col\">\n <div class=\"contact-form--checkbox--wrapper\">\n <mat-checkbox\n class=\"contact-form--checkbox\"\n formControlName=\"checkbox\"\n ></mat-checkbox>\n @if (conditions) {\n <span\n class=\"contact-form--conditions color--brown\"\n [innerHTML]=\"conditions\"\n >\n </span>\n }\n </div>\n @if (requiredFieldsLabel) {\n <span class=\"contact-form--required--text\">\n <span class=\"contact-form--required\"></span>\n {{ requiredFieldsLabel }}\n </span>\n }\n </div>\n\n @if (button) {\n <tent-button\n class=\"contact-form--submit\"\n type=\"dark-box-filled\"\n boxWidth=\"240px\"\n [label]=\"button.label\"\n [disabled]=\"!isValid()\"\n (btnClick)=\"submitForm()\"\n [name]=\"button.label\"\n ></tent-button>\n }\n </div>\n </div>\n </form>\n }\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-contact-office',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule],\n templateUrl: './contact-office.component.html',\n styleUrl: './contact-office.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContactOfficeComponent {\n @Input() images?: string[];\n @Input() title?: string;\n @Input() links?: ButtonI[];\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n\n collapsed = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n","<section class=\"contact-office module-spacer--bottom\">\n <div class=\"contact-office--content wrapper-big\">\n <div class=\"contact-office--box info-right\">\n @if (images && images.length) {\n <owl-carousel-o\n class=\"contact-office--slider slider-circle--center figure-sticky\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <div class=\"contact-office--photo figure-content\">\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n }\n <div\n class=\"contact-office--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n <div class=\"contact-office--info--inner\">\n @if (title) {\n <h2\n class=\"contact-office--info--title title--30 color--brown-70\"\n >\n {{ title }}\n </h2>\n } @if (links && links.length) {\n <ul class=\"contact-office--list\">\n @for (link of links; track $index; let last = $last) {\n <li [ngClass]=\"{ 'border-top': last }\">\n <span class=\"contact-office--icon\"\n ><span [ngClass]=\"link.icon\"></span\n ></span>\n @if (!last) {\n <a\n [innerHTML]=\"link.label\"\n [href]=\"link.url\"\n class=\"text link\"\n [attr.aria-label]=\"link.label\"\n >\n </a>\n } @else {\n <span [innerHTML]=\"link.label\" class=\"text\"> </span>\n }\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-delivery-app',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './delivery-app.component.html',\n styleUrl: './delivery-app.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeliveryAppComponent {\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() buttons?: ButtonI[];\n}\n","<section class=\"delivery-app module-spacer--bottom\">\n <div class=\"delivery-app--content wrapper-big\">\n <div class=\"delivery-app--box\">\n <div class=\"delivery-app--info\">\n @if (title) {\n <h2 class=\"delivery-app--title title--60 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h2>\n } @if (buttons?.length && buttons) {\n <div class=\"delivery-app--btns btns-desktop\">\n @if (buttons[0]) {\n <tent-button\n type=\"dark-box-white\"\n [label]=\"buttons[0].label\"\n [name]=\"buttons[0].label\"\n [url]=\"buttons[0].url\"\n [linkType]=\"buttons[0].linkType\"\n icon=\"icon-google-play\"\n ></tent-button>\n } @if (buttons[1]) {\n <tent-button\n type=\"dark-box-white\"\n [label]=\"buttons[1].label\"\n [name]=\"buttons[1].label\"\n [url]=\"buttons[1].url\"\n [linkType]=\"buttons[1].linkType\"\n icon=\"icon-apple\"\n ></tent-button>\n }\n </div>\n }\n </div>\n <div class=\"delivery-app--photo\">\n <img\n src=\"/assets/tent/img/movil.png\"\n alt=\"delivery\"\n loading=\"lazy\"\n class=\" \"\n width=\"\"\n height=\"\"\n />\n </div>\n @if (description) {\n <div class=\"delivery-app--des\">\n <p class=\"text\">\n {{ description }}\n </p>\n </div>\n } @if (buttons?.length && buttons) {\n <div class=\"delivery-app--btns btns-mobile\">\n @if (buttons[0]) {\n <tent-button\n type=\"dark-box\"\n [label]=\"buttons[0].label\"\n [name]=\"buttons[0].label\"\n [url]=\"buttons[0].url\"\n [linkType]=\"buttons[0].linkType\"\n icon=\"icon-google-play\"\n ></tent-button>\n } @if (buttons[1]) {\n <tent-button\n type=\"dark-box\"\n [label]=\"buttons[1].label\"\n [name]=\"buttons[1].label\"\n [url]=\"buttons[1].url\"\n [linkType]=\"buttons[1].linkType\"\n icon=\"icon-apple\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-destination-hotels',\n standalone: true,\n imports: [ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './destination-hotels.component.html',\n styleUrl: './destination-hotels.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DestinationHotelsComponent {\n @Input() items?: DestinationHotelItem[];\n @Input() title?: string;\n @Input() titleDark?: string;\n\n @Output() hotelClick = new EventEmitter<DestinationHotelItem>();\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> <span><div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> <span><div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1000: {\n items: 2,\n },\n 1680: {\n items: 2,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n}\n\nexport interface DestinationHotelItem {\n id: string | number;\n image?: string;\n title?: string;\n ndTitle?: string;\n button?: ButtonI;\n link?: ButtonI;\n}\n","<section class=\"destination-hotels module-spacer--bottom\">\n <div class=\"destination-hotels--content wrapper-big\">\n @if (title) {\n <div class=\"destination-hotels--head\">\n <h3 class=\"destination-hotels--title title--80 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h3>\n </div>\n } @if (items?.length) {\n <div class=\"destination-hotels--inner\">\n <owl-carousel-o\n class=\"destination-hotels--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"destination-hotels--slide\">\n @if (item.image) {\n <div class=\"destination-hotels--img\">\n <div\n class=\"destination-hotels--photo figure-content\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n </div>\n </div>\n } @if (item.title || item.button || item.link) {}\n <div class=\"destination-hotels--des\">\n @if (item.title) {\n <h4\n class=\"destination-hotels--slideTitle color--brown title--42\"\n >\n {{ item.title }}\n @if (item.ndTitle) {\n <span class=\"color--brown\">{{\n item.ndTitle\n }}</span>\n }\n </h4>\n } @if (item.button ||item.link) {\n <div class=\"destination-hotels--btns\">\n @if (item.button) {\n <tent-button\n type=\"dark-box-filled\"\n class=\"btn-small\"\n [label]=\"item.button.label\"\n [url]=\"item.button.url\"\n [linkType]=\"item.button.linkType\"\n ></tent-button>\n } @if (item.link) {\n <tent-button\n type=\"dark-link\"\n [label]=\"item.link.label\"\n [url]=\"item.link.url\"\n [linkType]=\"item.link.linkType\"\n (btnClick)=\"hotelClick.emit(item)\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n }\n </div>\n</section>\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[lazyBackground]',\n standalone: true,\n})\nexport class LazyBackgroundDirective implements OnInit {\n @Input() lazyBackground?: string;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n const element = this.el.nativeElement;\n\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n element.style.backgroundImage = `url(${this.lazyBackground})`;\n observer.unobserve(element);\n }\n });\n });\n\n observer.observe(element);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-destination-info',\n standalone: true,\n imports: [ButtonComponent, LazyBackgroundDirective],\n templateUrl: './destination-info.component.html',\n styleUrl: './destination-info.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DestinationInfoComponent {\n @Input() image!: string;\n @Input() title!: string;\n @Input() bannerTitle!: string;\n @Input() bannerDescription?: string;\n @Input() titleDark!: string;\n @Input() buttons!: ButtonI[];\n\n constructor() {}\n}\n","<section class=\"destinantion-info module-spacer--bottom\">\n <div class=\"destinantion-info--content wrapper-big\">\n @if (title) {\n <h3 class=\"destinantion-info--title title--80 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h3>\n }\n <div class=\"destinantion-info--inner\">\n @if (image) {\n <div class=\"destinantion-info--photo figure-content\">\n <figure class=\"figure-full\" [lazyBackground]=\"image\"></figure>\n </div>\n }\n <div class=\"destinantion-info--des bg-brown-90\">\n @if (bannerTitle) {\n <h4 class=\"title--54 color--white\">\n {{ bannerTitle }}\n </h4>\n } @if (bannerDescription) {\n <p class=\"text color--white\">\n {{ bannerDescription }}\n </p>\n } @if (buttons.length) {\n <div\n class=\"destinantion-info--btns flex-row flex-row--left mt--20\"\n >\n @for (btn of buttons; track $index) {\n <tent-button\n type=\"light-box\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-destination-list',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './destination-list.component.html',\n styleUrl: './destination-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DestinationListComponent {\n @Input() infoTitle?: string;\n @Input() infoTitleDark?: string;\n @Input() infoDescription?: string;\n @Input() items?: DestinationListItem[];\n\n @Output() destinyClick = new EventEmitter<string>();\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n destinyClicked(item: DestinationListItem) {\n this.destinyClick.emit(item.id);\n }\n}\n\nexport interface DestinationListItem {\n id?: string;\n image?: string;\n title?: string;\n subtitle?: string;\n button?: ButtonI;\n link?: ButtonI;\n}\n","@if (items?.length) {\n<section class=\"destination-list module-spacer--bottom\">\n <div class=\"destination-list--content wrapper-big\">\n <div class=\"destination-list--inner\">\n @for (item of items; track $index) {\n <div class=\"destination-list--item\">\n <a\n [href]=\"item.link?.url\"\n [routerLink]=\"item.link?.url\"\n (click)=\"$event.preventDefault(); destinyClicked(item)\"\n class=\"destination-list--photo figure-content figure-zoom\"\n [attr.aria-label]=\"item.title\"\n >\n @if (item.image) {\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n } @if (item.title || item.subtitle) {\n <div class=\"destination-list--info\">\n @if (item.title) {\n <h2 class=\"offer-detail--tit title--38 color--white\">\n {{ item.title }}\n </h2>\n } @if (item.subtitle) {\n <h3 class=\"subtitle--medium\">{{ item.subtitle }}</h3>\n }\n </div>\n }\n </a>\n @if (item.button || item.link) {\n\n <div class=\"destination-list--btns\">\n @if (item.button) {\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"item.button.label\"\n [linkType]=\"item.button.linkType!\"\n [url]=\"item.button.url\"\n (btnClick)=\"destinyClicked(item)\"\n ></tent-button>\n } @if (item.link) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"item.link.label\"\n acka\n [linkType]=\"item.link.linkType!\"\n [url]=\"item.link.url\"\n (btnClick)=\"destinyClicked(item)\"\n ></tent-button\n >}\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n}\n\n<section class=\"module-info module-spacer--bottom\">\n <div class=\"module-info--content wrapper-big\">\n <div class=\"module-info--inner\">\n <div class=\"module-info--box\">\n @if (infoTitle) {\n <h3 class=\"module-info--title title--80 color--camel\">\n {{ infoTitle }}\n @if (infoTitleDark) {\n\n <span class=\"color--brown\"> {{ infoTitleDark }} </span>}\n </h3>\n } @if (infoDescription) {\n <div class=\"module-info--des\">\n <p class=\"text\">\n {{ infoDescription }}\n </p>\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tent-employment-benefits',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './employment-benefits.component.html',\n styleUrl: './employment-benefits.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmploymentBenefitsComponent {\n @Input() title?: string;\n @Input() items?: EmploymentBenefitsItem[];\n}\n\nexport interface EmploymentBenefitsItem {\n icon?: string;\n title?: string;\n}\n","<section class=\"employment-benefits module-spacer--bottom\">\n <div class=\"employment-benefits--content wrapper-big\">\n <div class=\"employment-benefits--box\">\n @if (title) {\n <div class=\"employment-benefits--info\">\n <h2 class=\"employment-benefits--title title--60 color--brown\">\n {{ title }}\n </h2>\n </div>\n } @if (items && items.length) {\n <div class=\"employment-benefits--list\">\n @for (item of items; track $index) {\n <div class=\"employment-benefits--item bg-beige\">\n <div class=\"employment-benefits--item--inner\">\n @if (item.title) {\n <h3 class=\"title--24 color--brown-70\">\n {{ item.title }}\n </h3>\n } @if (item.icon) {\n <span\n [ngClass]=\"item.icon\"\n class=\"employment-benefits--icon\"\n ></span>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { InputComponent } from '../../atomic/input/input.component';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { tap } from 'rxjs';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-employment-form',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n MatCheckboxModule,\n InputComponent,\n FormsModule,\n ReactiveFormsModule,\n ],\n templateUrl: './employment-form.component.html',\n styleUrl: './employment-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmploymentFormComponent {\n @Input() inputs?: InputI[];\n @Input() conditionsLink?: string;\n @Input() requiredLabel?: string;\n @Input() title?: string;\n @Input() button?: ButtonI;\n\n @Output() formSubmit = new EventEmitter();\n\n form: FormGroup = this.fb.group({\n checkbox: [false, [Validators.requiredTrue]],\n });\n\n formReady = false;\n\n isValid = signal(false);\n\n constructor(private readonly fb: FormBuilder) {}\n\n ngOnInit(): void {\n this.initializeForm();\n }\n\n initializeForm(): void {\n this.inputs?.forEach((input) => {\n this.form.addControl(\n input.name,\n new FormControl(\n input.value,\n input.name === 'email'\n ? [\n Validators.required,\n Validators.email,\n Validators.minLength(3),\n ]\n : [Validators.required, Validators.minLength(3)]\n )\n );\n });\n\n this.form.statusChanges\n .pipe(\n tap((status) => {\n this.isValid.set(status === 'VALID');\n })\n )\n .subscribe();\n\n this.formReady = true;\n }\n\n validateInput(name: string) {\n this.inputs!.find((input) => input.name === name)!.valid =\n this.form.controls[name].errors === null;\n }\n\n submitForm(): void {\n this.formSubmit.emit(this.form.value);\n this.resetForm();\n }\n\n resetForm(): void {\n this.form.reset();\n this.inputs?.forEach((input) => {\n input.value = '';\n });\n }\n}\n","<section class=\"employment-form--wrapper\">\n <div class=\"employment-form\">\n @if (title) {\n <h3 class=\"employment-form--title color--brown\">\n {{ title }}\n </h3>\n } @if (formReady) {\n <form class=\"employment-form--form\" [formGroup]=\"form\">\n @if (inputs && inputs.length) {\n <div class=\"employment-form--form--wrapper\">\n @for (input of inputs; track $index) {\n <tent-input\n [title]=\"input.title\"\n [type]=\"input.type\"\n [placeholder]=\"input.placeholder\"\n [icon]=\"input.icon\"\n [required]=\"true\"\n [formControlName]=\"input.name\"\n [valid]=\"input.valid!\"\n [error]=\"input.error\"\n [name]=\"input.name\"\n (inputBlur)=\"validateInput(input.name)\"\n [ngClass]=\"{ 'input-cv': $last }\"\n ></tent-input>\n }\n </div>\n }\n <div class=\"employment-form--footer\">\n <div class=\"flex-col\">\n <div class=\"employment-form--checkbox--wrapper\">\n <mat-checkbox\n class=\"employment-form--checkbox\"\n formControlName=\"checkbox\"\n ></mat-checkbox>\n @if (conditionsLink) {\n <span\n class=\"employment-form--conditions color--brown\"\n [innerHTML]=\"conditionsLink\"\n >\n </span>\n }\n </div>\n @if (requiredLabel) {\n <span class=\"employment-form--required--text\">\n <span class=\"employment-form--required\"></span>\n {{ requiredLabel }}\n </span>\n }\n </div>\n\n @if (button) {\n <div class=\"employment-form--submit\">\n <tent-button\n type=\"dark-box-filled\"\n boxWidth=\"240px\"\n [label]=\"button.label\"\n [disabled]=\"!isValid()\"\n [name]=\"button.label\"\n (btnClick)=\"submitForm()\"\n ></tent-button>\n </div>\n }\n </div>\n </form>\n }\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-facilities-slider',\n standalone: true,\n imports: [ButtonComponent, CarouselModule, LazyBackgroundDirective],\n templateUrl: './facilities-slider.component.html',\n styleUrl: './facilities-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FacilitiesSliderComponent implements OnInit {\n @Input() iconControlLeft!: string;\n @Input() iconControlRight!: string;\n @Input() title?: string;\n @Input() items!: FacilitiesSliderItem[];\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n stagePadding: 0,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n stagePadding: 120,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n\nexport interface FacilitiesSliderItem {\n image: string;\n title: string;\n description: string;\n buttons: ButtonI[];\n}\n","<section class=\"rooms-slider module-spacer--bottom\">\n <div class=\"rooms-slider--content wrapper-big\">\n @if (title) {\n <div class=\"rooms-slider--head\">\n <h3 class=\"rooms-slider--title title--80 color--camel\">\n {{ title }}\n </h3>\n </div>\n }\n <owl-carousel-o\n class=\"rooms-slider--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"rooms-slider--slide\">\n @if (item.title) {\n <h4 class=\"rooms-slider--slideTitle color--brown title--80\">\n {{ item.title }}\n </h4>\n } @if (item.image) {\n <div class=\"rooms-slider--photo figure-content\">\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"item.image\"\n ></figure>\n </div>\n } @if (item.buttons.length || item.description) {\n <div class=\"rooms-slider--des\">\n <div class=\"rooms-slider--des-inner bg-white\">\n @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n } @if (item.buttons.length) {\n <div class=\"rooms-slider--btns pt--20\">\n @for (button of item.buttons; track $index) {\n <tent-button\n type=\"dark-box\"\n [label]=\"button.label\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType!\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'tent-footer-a',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './footer-a.component.html',\n styleUrl: './footer-a.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooterAComponent {\n collapsed1 = false;\n collapsed2 = true;\n collapsed3 = true;\n collapsed4 = true;\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n toggleCollapse2(): void {\n this.collapsed2 = !this.collapsed2;\n }\n toggleCollapse3(): void {\n this.collapsed3 = !this.collapsed3;\n }\n toggleCollapse4(): void {\n this.collapsed4 = !this.collapsed4;\n }\n}\n"," \n\n\n<section class=\"footer-a module-spacer-small--bottom wrapper-medium\">\n <div class=\"footer-a--content\">\n <div class=\"footer-a--box\" [ngClass]=\"collapsed1 ? 'close' : 'open'\"> \n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse1()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4>\n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n <div class=\"footer-a--box\" [ngClass]=\"collapsed2 ? 'close' : 'open'\">\n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse2()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4>\n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n <div class=\"footer-a--box\" [ngClass]=\"collapsed3 ? 'close' : 'open'\"> \n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse3()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4>\n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n <div class=\"footer-a--box\" [ngClass]=\"collapsed4 ? 'close' : 'open'\"> \n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse4()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4> \n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n </div>\n</section>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../../public-api';\n\n@Component({\n selector: 'tent-footer-b',\n standalone: true,\n imports: [ButtonComponent],\n templateUrl: './footer-b.component.html',\n styleUrl: './footer-b.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooterBComponent {\n @Input() linksWithImage?: FooterBLinkWithImage[];\n @Input() logo?: FooterBLinkWithImage;\n @Input() title?: string;\n @Input() links?: ButtonI[];\n @Input() buttons?: ButtonI[];\n}\n\nexport interface FooterBLinkWithImage {\n img: string;\n alt?: string;\n url: string;\n}\n","<section class=\"footer-b wrapper-medium\">\n <div class=\"footer-b--content\">\n @if (logo || linksWithImage?.length) {\n <div class=\"footer-b--box footer-b--box--left\">\n <div class=\"footer-b--box--inner\">\n @if (logo) {\n <a\n class=\"footer-b--logo\"\n [href]=\"logo.url\"\n target=\"_blank\"\n [attr.aria-label]=\"logo.alt\"\n >\n <img\n [src]=\"logo.img\"\n loading=\"lazy\"\n width=\"180\"\n height=\"65\"\n [alt]=\"logo.alt\"\n />\n </a>\n } @if (linksWithImage?.length) {\n <div class=\"footer-b--logos\">\n @for (link of linksWithImage; track $index) {\n <a\n class=\"footer-b--logos--logo\"\n [href]=\"link.url\"\n target=\"_blank\"\n [attr.aria-label]=\"link.alt\"\n >\n <img\n [src]=\"link.img\"\n loading=\"lazy\"\n width=\"87\"\n height=\"79\"\n [alt]=\"link.alt\"\n />\n </a>\n\n }\n </div>\n }\n </div>\n </div>\n } @if (links?.length || buttons?.length) {\n\n <div class=\"footer-b--box footer-b--box--right\">\n <div class=\"footer-b--box--inner\">\n @if (title || links?.length) {\n <div class=\"footer-b--info\">\n @if (title) {\n <h3 class=\"title--42 color--brown\">{{ title }}</h3>\n } @if (links) { @for (link of links; track $index) {\n <a\n [href]=\"link.url\"\n class=\"link-regular color--brown\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n } }\n </div>\n } @if (buttons?.length) {\n <div class=\"footer-b--btns\">\n @for (btn of buttons; track $index) {\n <tent-button\n type=\"dark-box-white\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n ></tent-button>\n\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-footer-static',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './footer-static.component.html',\n styleUrl: './footer-static.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooterStaticComponent {\n @Input({ required: true }) footerLinks?: ButtonI[];\n @Input() title?: string;\n @Input() scrollBtn?: ButtonI;\n\n isInternalLink(link: ButtonI): boolean {\n return link.linkType === 'internal';\n }\n\n linkClicked(event: Event, link: ButtonI): void {\n if (link.linkType === 'internal') {\n event.preventDefault();\n }\n }\n\n scrollClicked(): void {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","<footer class=\"footer wrapper-medium\">\n @if (title) {\n <div class=\"footer__copyright\">\n <p class=\"text color--brown text--small\">{{ title }}</p>\n </div>\n } @if (footerLinks?.length) {\n <ul class=\"footer__links\">\n @for (link of footerLinks; track $index) {\n <li class=\"footer__link\">\n @if (isInternalLink(link)) {\n <a\n class=\"link link--brown\"\n [href]=\"link.url\"\n [routerLink]=\"[link.url]\"\n (click)=\"linkClicked($event, link)\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n\n } @else {\n <a\n class=\"link link--brown\"\n [href]=\"link.url\"\n target=\"_blank\"\n (click)=\"linkClicked($event, link)\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n </ul>\n } @if (scrollBtn) {\n <div class=\"scroll-top\">\n <span class=\"text color--brown text--small\">{{ scrollBtn.label }}</span>\n <tent-button\n type=\"dark-circle\"\n [icon]=\"scrollBtn.icon\"\n (click)=\"scrollClicked()\"\n [name]=\"scrollBtn.icon\"\n ></tent-button>\n </div>\n }\n</footer>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { GalleryPhotosItem } from '../../gallery-photos/gallery-photos.component';\n\n@Component({\n selector: 'tent-room-zoom-modal',\n standalone: true,\n imports: [CommonModule, CarouselModule, ButtonComponent],\n templateUrl: './room-zoom-modal.component.html',\n styleUrl: './room-zoom-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RoomZoomModalComponent {\n @Input() title?: string;\n @Input() images?: GalleryPhotosItem[];\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n constructor(\n private readonly dialogRef: MatDialogRef<RoomZoomModalComponent>,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n close(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"room-zoom flex-col\">\n <div class=\"room-zoom--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n name=\"close\"\n ></tent-button>\n </div>\n <owl-carousel-o\n class=\"room-zoom--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <p class=\"room-zoom--title\">{{ img.title }}</p>\n <div class=\"room-zoom--image--wrapper\">\n <figure\n class=\"room-zoom--image figure-full\"\n [style]=\"getImage(img.image)\"\n ></figure>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { RoomZoomModalComponent } from '../modals/room-zoom-modal/room-zoom-modal.component';\n\n@Component({\n selector: 'tent-gallery-photos',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './gallery-photos.component.html',\n styleUrl: './gallery-photos.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GalleryPhotosComponent implements OnChanges {\n @Input({ required: true }) items!: GalleryPhotosItem[];\n @Input() links?: ButtonI[];\n\n itemsOrdered: GalleryPhotosItem[][] = [];\n collapsed = true;\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly dialog: MatDialog\n ) {}\n\n openModal(photo: GalleryPhotosItem): void {\n const dialogRef = this.dialog.open(RoomZoomModalComponent, {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n panelClass: 'full-screen',\n hasBackdrop: true,\n });\n\n dialogRef.componentInstance.images = this.items\n ?.slice(this.items.indexOf(photo))\n .concat(this.items?.slice(0, this.items.indexOf(photo)));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['items']?.currentValue) {\n this.splitArray();\n }\n }\n\n splitArray(): void {\n let i = 0;\n this.itemsOrdered = [];\n\n while (i < this.items.length) {\n if (this.itemsOrdered.length % 2 === 0) {\n this.itemsOrdered.push(this.items.slice(i, i + 4));\n i += 4;\n } else {\n this.itemsOrdered.push(this.items.slice(i, i + 3));\n i += 3;\n }\n }\n }\n\n getImageUrl(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface GalleryPhotosItem {\n image: string;\n title: string;\n category: string[];\n}\n","<section class=\"gallery-photos module-spacer--bottom-small\">\n <div class=\"gallery-photos--content wrapper-big\">\n <div class=\"gallery-photos--list\">\n @for (item of itemsOrdered; track $index) {\n @if ($index < 4 || !collapsed) {\n <div\n [ngClass]=\"{\n 'gallery-photos--box1': $index % 4 === 0,\n 'gallery-photos--box2': $index % 4 === 1,\n 'gallery-photos--box3': $index % 4 === 2,\n 'gallery-photos--box4': $index % 4 === 3,\n 'no-photo3': item.length < 3,\n }\"\n >\n @for (\n photo of item;\n let subIndex = $index;\n track subIndex\n ) {\n <div\n class=\"gallery-photos--item\"\n [ngClass]=\"'photo' + (subIndex + 1)\"\n >\n <div\n class=\"gallery-photos--photo figure-content\"\n (click)=\"openModal(photo)\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"getImageUrl(photo.image)\"\n ></figure>\n </div>\n @if (photo.title) {\n <div class=\"gallery-photos--label\">\n <p class=\"text color--brown\">\n {{ photo.title }}\n </p>\n <span\n class=\"icon-search-plus icon--size22 color--brown\"\n >\n </span>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n @if (links && links.length && items.length > 14) {\n <div class=\"gallery-photos--links\">\n @if (collapsed) {\n <tent-button\n type=\"dark-link\"\n [label]=\"links[0].label\"\n (btnClick)=\"toggleCollapse()\"\n ></tent-button>\n } @else {\n <tent-button\n type=\"dark-link\"\n [label]=\"links[1].label\"\n (btnClick)=\"toggleCollapse()\"\n ></tent-button>\n }\n </div>\n }\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\n\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumpI } from '../../../interfaces/atomic/breadcrump.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { BreadcrumpComponent } from '../../atomic/breadcrump/breadcrump.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-generic-head',\n standalone: true,\n imports: [\n CommonModule,\n DropdownComponent,\n ButtonComponent,\n BreadcrumpComponent,\n ],\n templateUrl: './generic-head.component.html',\n styleUrl: './generic-head.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GenericHeadComponent implements OnInit {\n @Input() theme?: string;\n @Input() galleryFilterOptions?: GalleryFilterOption[];\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() breadcrumps?: BreadcrumpI;\n @Input() filter?: DropdownI;\n @Input() button?: ButtonI;\n @Input() galleryBtns?: string[];\n @Input() linkMaps?: ButtonI;\n @Input() linkBack?: ButtonI;\n @Input() bigger = true;\n\n @Output() filterChange = new EventEmitter<DropdownOption>();\n @Output() filterGalleryChange = new EventEmitter<GalleryFilterOption>();\n @Output() openCategoryModal = new EventEmitter<void>();\n @Output() btnClick = new EventEmitter<void>();\n\n galleryFilterSelected!: GalleryFilterOption;\n\n constructor() {}\n\n ngOnInit(): void {\n this.galleryFilterSelected = this.galleryFilterOptions?.[0]!;\n }\n\n filterChanged(option: DropdownOption): void {\n this.filterChange.emit(option);\n }\n\n filterGalleryClicked(option: GalleryFilterOption): void {\n this.galleryFilterSelected = option;\n this.filterGalleryChange.emit(option);\n }\n\n openGalleryCategoryModal(): void {\n this.openCategoryModal.emit();\n }\n\n btnClicked(): void {\n this.btnClick.emit();\n }\n}\n\nexport interface GalleryFilterOption {\n id?: string | number;\n label?: string;\n rooms?: boolean;\n room?: boolean;\n allCategories?: boolean;\n videoSrc?: string;\n}\n","<section\n class=\"generic-head-module\"\n [ngClass]=\"{ 'module-spacer-small--bottom': title || titleDark }\"\n>\n <div class=\"wrapper-big\">\n <div\n class=\"generic-head\"\n [ngClass]=\"{ 'generic-head--bigger': bigger }\"\n >\n @if (breadcrumps?.breadcrumps && breadcrumps) {\n <tent-breadcrump\n class=\"generic-head--breadcrumps\"\n [ngClass]=\"{ 'generic-head--breadcrumps--absolute': titleDark }\"\n [breadcrumps]=\"breadcrumps.breadcrumps\"\n [selected]=\"\n breadcrumps.breadcrumps[breadcrumps.breadcrumps.length - 1]\n \"\n ></tent-breadcrump>\n }\n <div class=\"generic-head--content\">\n @if (title) {\n <h1\n class=\"generic-head--title title--80 color--camel\"\n [ngClass]=\"{\n 'generic-head--title--laundry': theme === 'laundry'\n }\"\n >\n {{ title }}\n <span class=\"color--brown\">{{ titleDark }}</span>\n </h1>\n }\n <div [ngClass]=\"{ 'generic-head--content--end': linkMaps }\">\n @if (filter) {\n <div class=\"generic-head--filter\">\n <tent-dropdown\n [options]=\"filter.options\"\n [placeholder]=\"filter.placeholder\"\n [value]=\"filter.value\"\n (change)=\"filterChanged($event)\"\n ></tent-dropdown>\n </div>\n\n } @if (galleryFilterOptions) {\n <div class=\"generic-head--filter-gallery\">\n @for (filter of galleryFilterOptions; track $index) {\n @if (!filter.room) {\n <span\n class=\"generic-head--gallery-option\"\n [ngClass]=\"{\n 'generic-head--gallery-option--selected':\n filter === galleryFilterSelected\n }\"\n (click)=\"filterGalleryClicked(filter)\"\n >\n {{ filter.label }}\n </span>\n } } @if (galleryBtns?.length) { @if (galleryBtns?.[0] &&\n galleryBtns) {\n <div\n class=\"generic-head--gallery-btn\"\n (click)=\"openGalleryCategoryModal()\"\n >\n <span class=\"generic-head--gallery-btn--text\">\n {{ galleryBtns[0] }}\n </span>\n <span\n class=\"generic-head--gallery-btn--icon icon-menu\"\n ></span>\n </div>\n } }\n </div>\n } @if (button) {\n <tent-button\n class=\"generic-head--contact\"\n type=\"dark-box\"\n [label]=\"button.label\"\n [url]=\"button.url\"\n (btnClick)=\"btnClicked()\"\n ></tent-button>\n } @if (linkMaps) {\n <a\n class=\"generic-head--location\"\n [href]=\"linkMaps.url\"\n target=\"_blank\"\n [attr.aria-label]=\"linkMaps.label\"\n >\n <span\n class=\"generic-head--location--icon icon-map\"\n ></span>\n <p class=\"text link\">{{ linkMaps.label }}</p>\n </a>\n } @if (linkBack) {\n <tent-button\n type=\"dark-link\"\n [label]=\"linkBack.label\"\n [icon]=\"linkBack.icon\"\n iconPosition=\"left\"\n linkSizeIcon=\"8px\"\n [url]=\"linkBack.url\"\n (btnClick)=\"btnClicked()\"\n ></tent-button>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-guests-popup',\n standalone: true,\n imports: [CommonModule, DropdownComponent, ButtonComponent],\n templateUrl: './guests-popup.component.html',\n styleUrl: './guests-popup.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GuestsPopupComponent implements OnInit {\n @Input() adultsDropdown!: DropdownI;\n @Input() kidsDropdown!: DropdownI;\n @Input() ageDropdown!: DropdownI;\n @Input() babysDropdown!: DropdownI;\n @Input() title?: string;\n @Input() kidLabel?: string;\n @Input() btnApply!: ButtonI;\n @Input() modal?: boolean;\n\n @Output() appliedData = new EventEmitter<GuestsValue>();\n\n kids?: number[] = [];\n applied = false;\n\n kidsOption!: DropdownOption;\n adultsOption!: DropdownOption;\n babysOption!: DropdownOption;\n\n ages: number[] = [];\n\n ngOnInit(): void {\n this.kidsOption = this.kidsDropdown.options![0];\n this.adultsOption = this.adultsDropdown.options![0];\n this.babysOption = this.babysDropdown.options![0];\n }\n\n kidsChange(option: DropdownOption) {\n this.kids = [];\n this.kidsOption = option;\n for (let i = 0; i < Number(option.code); i++) {\n this.kids?.push(i);\n }\n\n this.ages = Array(this.kids.length).fill(\n Number(this.ageDropdown.options[0].code)\n );\n\n const popup = document.getElementsByClassName('p-dialog-mask')[0];\n\n if (popup) {\n if (Number(option.code) > 2) {\n popup.classList.add('bigger');\n } else {\n if (popup.classList.contains('bigger')) {\n popup.classList.remove('bigger');\n }\n }\n }\n }\n\n agesChange(kidIndex: number, option: DropdownOption): void {\n this.ages[kidIndex] = Number(option.code);\n }\n\n babysChange(option: DropdownOption): void {\n this.babysOption = option;\n }\n\n adultsChange(option: DropdownOption): void {\n this.adultsOption = option;\n }\n\n applyData(): void {\n this.appliedData.emit({\n adults: Number(this.adultsOption?.code) ?? 0,\n kids: Number(this.kidsOption?.code) ?? 0,\n babys: Number(this.babysOption?.code) ?? 0,\n kidsAges: this.ages ?? [],\n totalGuests:\n Number(this.babysOption?.code) +\n Number(this.kidsOption?.code) +\n Number(this.adultsOption?.code),\n } as GuestsValue);\n }\n}\n\nexport interface GuestsValue {\n adults?: number;\n kids?: number;\n babys?: number;\n kidsAges?: number[];\n totalGuests: number;\n}\n","<div class=\"guests flex-col flex-col--center\">\n <tent-dropdown\n [title]=\"adultsDropdown.title\"\n iconLeft=\"icon-user\"\n [options]=\"adultsDropdown.options\"\n [showTitleTop]=\"true\"\n [value]=\"adultsDropdown.options[0]\"\n (change)=\"adultsChange($event)\"\n ></tent-dropdown>\n <tent-dropdown\n [title]=\"kidsDropdown.title\"\n iconLeft=\"icon-user-small\"\n [smallTitle]=\"kidsDropdown.smallTitle\"\n [options]=\"kidsDropdown.options\"\n [value]=\"kidsDropdown.options[0]\"\n [showTitleTop]=\"true\"\n (change)=\"kidsChange($event)\"\n ></tent-dropdown>\n\n <div\n class=\"guests--kids\"\n [ngClass]=\"{ 'guests--kids--show': !applied && kids?.length }\"\n >\n @if (title) {\n <header class=\"guests--kids--header\">\n <p class=\"color--brown guests--kids--header--title\">edades</p>\n </header>\n }\n\n <div class=\"guests--kids--content\">\n @for (kid of kids; track $index; let even = $even, last = $last) {\n <div\n class=\"guests--kids--dropdown\"\n [ngClass]=\"{\n 'guests--kids--dropdown--centered': even && last\n }\"\n >\n <span class=\"color--brown guests--kids--title\"\n >{{ kidLabel }}{{ $index + 1 }}</span\n >\n <tent-dropdown\n [light]=\"true\"\n [options]=\"ageDropdown.options\"\n [value]=\"ageDropdown.options[0]\"\n (change)=\"agesChange($index, $event)\"\n ></tent-dropdown>\n </div>\n }\n </div>\n </div>\n\n <tent-dropdown\n [ngClass]=\"{ 'guests--babys': applied || !kids?.length }\"\n [showTitleTop]=\"true\"\n [title]=\"babysDropdown.title\"\n iconLeft=\"icon-user-small\"\n [smallTitle]=\"babysDropdown.smallTitle\"\n [value]=\"babysDropdown.options[0]\"\n [options]=\"babysDropdown.options\"\n (change)=\"babysChange($event)\"\n ></tent-dropdown>\n\n <tent-button\n class=\"guests--btn\"\n type=\"dark-box-filled\"\n [label]=\"btnApply.label\"\n boxWidth=\"240px\"\n (btnClick)=\"applyData()\"\n [name]=\"btnApply.label\"\n ></tent-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ButtonI, RightBtn } from '../../../../public-api';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-header-mobile',\n standalone: true,\n imports: [CommonModule, ButtonComponent, MatIconModule, BadgeComponent],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent {\n @Input() btnBook?: ButtonI;\n @Input() lang?: string;\n @Input() hotelId?: string;\n @Input() phoneLink?: RightBtn;\n @Input() advantages?: BadgeI;\n @Output() motorClick = new EventEmitter<void>();\n @Output() advantagesClick = new EventEmitter<void>();\n constructor() {}\n\n openMotor(): void {\n this.motorClick.emit();\n }\n}\n","<nav class=\"header-mobile\">\n <div class=\"header-mobile--buttons\">\n @if (advantages) {\n <tent-badge\n class=\"advantages\"\n [label]=\"advantages.label\"\n [icon]=\"advantages.icon\"\n [rounded]=\"true\"\n (click)=\"advantagesClick.emit()\"\n ></tent-badge>\n <span class=\"advantages--noBadge\" (click)=\"advantagesClick.emit()\">\n {{ advantages.label }}\n </span>\n }\n @if (btnBook) {\n <tent-button\n (btnClick)=\"openMotor()\"\n type=\"dark-box-filled\"\n [label]=\"btnBook.label\"\n [name]=\"btnBook.label\"\n class=\"header-mobile--button\"\n ></tent-button>\n <div\n data-type=\"chain\"\n data-currency=\"EUR\"\n [attr.data-locale]=\"lang\"\n data-mirai-id=\"502045\"\n [attr.data-hotel]=\"hotelId\"\n class=\"header-mobile--button--mirai\"\n ></div>\n }\n </div>\n @if (phoneLink) {\n <a\n class=\"header-mobile--phone-link\"\n [href]=\"phoneLink.url\"\n [attr.aria-label]=\"phoneLink.label\"\n >\n <mat-icon\n [ngClass]=\"phoneLink.icon\"\n class=\"color--brown\"\n ></mat-icon>\n <span class=\"color--brown\">{{ phoneLink.label }}</span>\n </a>\n }\n</nav>\n","import { CommonModule, Location } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-hotel-list-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './hotel-list-modal.component.html',\n styleUrl: './hotel-list-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelListModalComponent implements OnInit {\n @Input() hotels?: HotelListModalCity[];\n @Input() button?: ButtonI;\n @Input() destinyButton?: ButtonI;\n @Input() title?: string;\n\n @Output() elementClick = new EventEmitter<ElementObject>();\n\n collapsed: boolean[] = [];\n\n constructor(private readonly location: Location) {}\n\n ngOnInit(): void {\n if (this.hotels?.length) {\n this.collapsed = new Array(this.hotels.length).fill(true);\n }\n }\n\n elementClicked(\n event: Event | undefined,\n element: ButtonI,\n type: ElementType\n ): void {\n event?.preventDefault();\n this.elementClick.emit({ element, type });\n }\n\n toggleCollapsed(index: number): void {\n this.collapsed[index] = !this.collapsed[index];\n }\n\n back(): void {\n this.location.back();\n }\n}\n\nexport interface HotelListModalCity {\n city: ButtonI;\n items: HotelListModalItem[];\n region?: string;\n}\n\nexport interface HotelListModalItem {\n title: ButtonI;\n hotels: {\n img: string;\n btn: ButtonI;\n }[];\n}\n\nexport type ElementType = 'destinyParent' | 'destiny' | 'hotel';\nexport interface ElementObject {\n element: ButtonI;\n type: ElementType;\n}\n","<div class=\"hotel-list\">\n <div class=\"hotel-list--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n (btnClick)=\"back()\"\n ></tent-button>\n </div>\n\n <!--DESKTOP-->\n\n @if (button) {\n <div class=\"hotel-list--btn\">\n <tent-button\n type=\"dark-box\"\n [label]=\"button.label\"\n boxWidth=\"308px\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType!\"\n class=\"hotel-list--main-button\"\n ></tent-button>\n </div>\n }\n\n <div class=\"hotel-list--content\">\n @for (destiny of hotels; track $index) {\n <div class=\"hotel-list--container\">\n <div class=\"hotel-list--container--header\">\n @if (destiny.city) { @if (destiny.city.url) {\n <a\n [href]=\"destiny.city.url\"\n [routerLink]=\"destiny.city.url\"\n [attr.aria-label]=\"destiny.city.label\"\n (click)=\"\n elementClicked($event, destiny.city, 'destinyParent')\n \"\n class=\"hotel-list--container--title\"\n >\n {{ destiny.city.label }}\n </a>\n } @else {\n <span\n [attr.aria-label]=\"destiny.city.label\"\n (click)=\"\n elementClicked($event, destiny.city, 'destinyParent')\n \"\n class=\"hotel-list--container--title\"\n >\n {{ destiny.city.label }}\n </span>\n } } @if (destiny.region) {\n <div\n class=\"hotel-list--column--header hotel-list--column--header--region\"\n >\n <span class=\"hotel-list--column--title\">\n {{ destiny.region }}\n </span>\n </div>\n }\n </div>\n\n <div class=\"hotel-list--row\">\n @for (item of destiny.items; track $index) {\n <div class=\"hotel-list--column\">\n @if (item.title) {\n <div class=\"hotel-list--column--header\">\n <a\n [href]=\"item.title.url\"\n [attr.aria-label]=\"item.title.label\"\n [routerLink]=\"item.title.url\"\n (click)=\"\n elementClicked($event, item.title, 'destiny')\n \"\n class=\"hotel-list--column--title\"\n >\n {{ item.title.label }}\n </a>\n </div>\n } @for (element of item.hotels; track $index) {\n <div class=\"hotel-list--column--content\">\n <a\n [href]=\"element.btn.url\"\n [routerLink]=\"[element.btn.url]\"\n [attr.aria-label]=\"element.btn.label\"\n (click)=\"\n elementClicked($event, element.btn, 'hotel')\n \"\n class=\"hotel-list--column--element\"\n >\n {{ element.btn.label }}\n </a>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n\n <!--MOBILE-->\n\n <div class=\"hotel-list--content--mobile\">\n @if (title) {\n <p class=\"hotel-list--title color--camel\">{{ title }}</p>\n } @for (destiny of hotels; track $index) {\n <div class=\"hotel-list--container\">\n <div\n class=\"hotel-list--container--title--wrapper\"\n (click)=\"toggleCollapsed($index)\"\n >\n @if (destiny.city) {\n <div>\n <a\n [href]=\"destiny.city.url\"\n [routerLink]=\"destiny.city.url\"\n [attr.aria-label]=\"destiny.city.label\"\n (click)=\"\n elementClicked(\n $event,\n destiny.city,\n 'destinyParent'\n )\n \"\n class=\"hotel-list--container--title\"\n >\n {{ destiny.city.label }}\n </a>\n @if (destiny.region) {\n <div\n class=\"hotel-list--column--header hotel-list--column--header--region\"\n >\n <span class=\"hotel-list--column--title\">\n {{ destiny.region }}\n </span>\n </div>\n }\n </div>\n\n <tent-button\n [ngClass]=\"collapsed[$index] ? 'collapsed' : ''\"\n icon=\"icon-signal-up\"\n class=\"hotel-list--button-collapse\"\n type=\"dark-circle\"\n name=\"signal-up\"\n ></tent-button>\n }\n </div>\n <div\n class=\"hotel-list--row\"\n [ngClass]=\"\n collapsed[$index] ? 'hotel-list--row--collapsed' : ''\n \"\n >\n @if (destiny.items.length) { @for (item of destiny.items; track\n $index) {\n <div class=\"hotel-list--column\">\n @if (item.title) {\n <div class=\"hotel-list--column--header\">\n <a\n [href]=\"item.title.url\"\n [routerLink]=\"item.title.url\"\n [attr.aria-label]=\"item.title.label\"\n (click)=\"\n elementClicked($event, item.title, 'destiny')\n \"\n class=\"hotel-list--column--title\"\n >\n {{ item.title.label }}\n </a>\n </div>\n } @if (item.hotels.length) {\n <div class=\"hotel-list--column--content\">\n @for (element of item.hotels; track $index) {\n <a\n [href]=\"element.btn.url\"\n [routerLink]=\"[element.btn.url]\"\n [attr.aria-label]=\"element.btn.label\"\n (click)=\"\n elementClicked($event, element.btn, 'hotel')\n \"\n class=\"hotel-list--column--element\"\n >\n <div class=\"hotel-list--column--text\">\n <span>{{ element.btn.label }}</span>\n <span\n class=\"hotel-list--column--element--icon icon-pointer-down\"\n >\n </span>\n </div>\n </a>\n }\n </div>\n }\n </div>\n\n } }\n </div>\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { ButtonI } from '../../../../public-api';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { HotelListModalComponent } from '../modals/hotel-list-modal/hotel-list-modal.component';\n\n@Component({\n selector: 'tent-header',\n standalone: true,\n imports: [CommonModule, MatIconModule, ButtonComponent, RouterModule],\n templateUrl: './header.component.html',\n styleUrl: './header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n @Input() lang?: string;\n @Input() scrolled?: boolean;\n @Input({ required: true }) logo!: string;\n @Input() navLinks?: NavLink[];\n @Input() menuIcon?: string;\n @Input() altLogo?: string;\n @Input() rightButtons?: RightButtons;\n @Input() btnBook?: ButtonI;\n\n @Output() menuClick = new EventEmitter<void>();\n @Output() languagesClick = new EventEmitter<void>();\n @Output() newsletterClick = new EventEmitter<void>();\n @Output() checkinClick = new EventEmitter<void>();\n @Output() booksClick = new EventEmitter<void>();\n @Output() motorClick = new EventEmitter<void>();\n @Output() navLinkClick = new EventEmitter<NavLink>();\n\n constructor(private readonly dialog: MatDialog) {}\n\n openMotor(): void {\n this.motorClick.emit();\n }\n\n navLinkClicked(event: Event, navLink?: NavLink): void {\n event.preventDefault();\n this.navLinkClick.emit(navLink);\n }\n\n isInternalLink(navLink: NavLink): boolean {\n return navLink.type === 'internal';\n }\n\n openHotelList() {\n const dialogRef = this.dialog.open(HotelListModalComponent, {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n panelClass: ['full-screen', 'hotel-list'],\n hasBackdrop: false,\n });\n }\n}\n\nexport interface NavLink {\n label?: string;\n url?: string;\n icon?: string;\n type: 'internal' | 'external' | 'component';\n order: number;\n componentId?: string;\n}\n\nexport interface RightButtons {\n phone: RightBtn | undefined;\n books: RightBtn | undefined;\n newsletter: RightBtn | undefined;\n checkin: RightBtn | undefined;\n languages: RightBtn | undefined;\n}\n\nexport interface RightBtn {\n icon?: string;\n label: string;\n url?: string;\n comment?: string;\n}\n","<nav class=\"header\" [ngClass]=\"{ 'header--scrolled': scrolled }\">\n <div class=\"header--left-slot\">\n @if (logo) {\n <a\n (click)=\"navLinkClicked($event, navLinks![0])\"\n [routerLink]=\"\n isInternalLink(navLinks![0]) ? [navLinks![0].url] : null\n \"\n [href]=\"navLinks![0].url\"\n [attr.aria-label]=\"altLogo\"\n >\n <img\n class=\"header--logo\"\n [src]=\"logo\"\n [alt]=\"altLogo\"\n width=\"150\"\n height=\"100\"\n loading=\"lazy\"\n />\n </a>\n }\n @if (navLinks?.length) {\n <div class=\"header--nav-links\">\n @for (navLink of navLinks; track $index) {\n <a\n (click)=\"navLinkClicked($event, navLink)\"\n [routerLink]=\"\n isInternalLink(navLink) ? [navLink.url] : null\n \"\n [href]=\"navLink.url\"\n class=\"link color--brown\"\n [attr.aria-label]=\"navLink.label\"\n >{{ navLink.label }}</a\n >\n }\n </div>\n }\n @if (menuIcon) {\n <div class=\"header--menu-btn\" (click)=\"menuClick.emit()\">\n <mat-icon\n class=\"color--brown\"\n [ngClass]=\"menuIcon\"\n fontSet=\"icomoon\"\n ></mat-icon>\n </div>\n }\n </div>\n @if (rightButtons && rightButtons.checkin) {\n <div class=\"header--center-slot\">\n <div class=\"header--check-in\" (click)=\"checkinClick.emit()\">\n <span class=\"color--white\">{{\n rightButtons.checkin.label\n }}</span>\n </div>\n </div>\n }\n @if (rightButtons) {\n <div class=\"header--right-slot\">\n <div data-mirai-component=\"session\"></div>\n\n @if (rightButtons.phone) {\n <a\n [href]=\"rightButtons.phone.url\"\n class=\"color--brown header--link-phone\"\n [attr.aria-label]=\"rightButtons.phone.label\"\n >\n <mat-icon\n class=\"color--brown icon-phone-plus\"\n fontSet=\"icomoon\"\n ></mat-icon>\n <span>{{ rightButtons.phone.label }}</span>\n </a>\n }\n @if (rightButtons.books) {\n <span\n (click)=\"booksClick.emit()\"\n class=\"link color--brown header--books\"\n >\n {{ rightButtons.books.label }}\n </span>\n }\n @if (rightButtons.newsletter) {\n <span class=\"header--mail\" (click)=\"newsletterClick.emit()\">\n <mat-icon\n class=\"color--brown\"\n [ngClass]=\"rightButtons.newsletter.icon\"\n fontSet=\"icomoon\"\n ></mat-icon>\n <span class=\"header--mail-comment\">\n {{ rightButtons.newsletter.comment }}\n </span>\n </span>\n }\n @if (rightButtons.languages) {\n <span\n (click)=\"languagesClick.emit()\"\n class=\"color--brown header--language\"\n >\n {{ rightButtons.languages.label }}\n <span class=\"header--language-comment\">{{\n rightButtons.languages.comment\n }}</span></span\n >\n }\n @if (menuIcon) {\n <div class=\"header--menu-btn\" (click)=\"menuClick.emit()\">\n <mat-icon\n class=\"color--brown\"\n [ngClass]=\"menuIcon\"\n fontSet=\"icomoon\"\n ></mat-icon>\n </div>\n }\n @if (btnBook || rightButtons.checkin) {\n <div\n class=\"header--btn-book\"\n [ngClass]=\"{ 'header--btn-book--scrolled': scrolled }\"\n >\n @if (btnBook) {\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"btnBook.label\"\n (btnClick)=\"openMotor()\"\n [name]=\"btnBook.label\"\n ></tent-button>\n }\n @if (rightButtons.checkin) {\n <div\n class=\"header--check-in header--check-in--right\"\n (click)=\"checkinClick.emit()\"\n >\n <span class=\"color--white\">{{\n rightButtons.checkin.label\n }}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n</nav>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\n@Component({\n selector: 'tent-hotel-about',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './hotel-about.component.html',\n styleUrl: './hotel-about.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelAboutComponent {\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() btnMore?: ButtonI;\n @Input() btnLess?: ButtonI;\n @Input() slides?: HotelAboutSlide[];\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed1 = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n\n getImageUrl(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n\nexport interface HotelAboutSlide {\n image: ImageI;\n badge: string;\n}\n","<section class=\"hotel-about module-spacer--bottom\">\n <div class=\"hotel-about--content wrapper-big\">\n <div class=\"hotel-about--box\">\n <owl-carousel-o\n class=\"hotel-about--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (slide of slides; track $index) {\n <ng-template carouselSlide>\n <div class=\"hotel-about--photo figure-content\">\n <figure\n class=\"figure-full\"\n [style]=\"getImageUrl(slide.image.src)\"\n ></figure>\n @if (slide.badge) {\n <tent-badge\n class=\"hotel-about--badget\"\n [rounded]=\"true\"\n [label]=\"slide.badge\"\n ></tent-badge>\n\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n <div\n class=\"hotel-about--info\"\n [ngClass]=\"collapsed1 ? 'close' : 'open'\"\n >\n <div class=\"hotel-about--info--inner\">\n @if (title) {\n <h2 class=\"hotel-about--info--title title--60 color--brown\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--camel\">{{ titleDark }}</span>\n }\n </h2>\n }\n <div class=\"hotel-about--info--des\">\n @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n } @if (additionalDescription) {\n <p class=\"text text-more\">\n {{ additionalDescription }}\n </p>\n } @if (btnMore && btnLess) {\n <div class=\"hotel-about--btns\">\n @if (btnMore) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n } @if (btnLess) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\n\n@Component({\n selector: 'tent-hotel-app',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './hotel-app.component.html',\n styleUrl: './hotel-app.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelAppComponent {\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() ndTitle?: string;\n @Input() img?: ImageI;\n @Input() buttons?: ButtonI[];\n @Input() items?: HotelAppItem[];\n}\n\nexport interface HotelAppItem {\n title: string;\n icon: string;\n}\n","<section class=\"hotel-app module-spacer--bottom\">\n <div class=\"hotel-app--content wrapper-big\">\n <div class=\"hotel-app--box\">\n @if (title) {\n <header class=\"hotel-app--header\">\n <h2 class=\"hotel-app--title title--60 color--camel\">\n {{ title }}\n </h2>\n @if (titleDark) {\n <h2 class=\"hotel-app--title title--60 color--brown\">\n {{ titleDark }}\n </h2>\n }\n </header>\n }\n <div class=\"hotel-app--list\">\n @if (img) {\n <img\n class=\"hotel-app--image\"\n [src]=\"img.src\"\n loading=\"lazy\"\n alt=\"app\"\n width=\"400\"\n height=\"650\"\n />\n } @if (description) {\n <p class=\"hotel-app--description text\">\n {{ description }}\n </p>\n } @if (ndTitle) {\n <h3 class=\"hotel-app--nd-title title--30 color--brown-70\">\n {{ ndTitle }}\n </h3>\n } @if (buttons) {\n <div class=\"hotel-app--buttons\">\n <tent-button\n type=\"dark-box\"\n icon=\"icon-apple\"\n iconPosition=\"left\"\n [label]=\"buttons[0].label\"\n [url]=\"buttons[0].url\"\n [linkType]=\"buttons[0].linkType\"\n ></tent-button>\n <tent-button\n type=\"dark-box\"\n icon=\"icon-google-play\"\n iconPosition=\"left\"\n [label]=\"buttons[1].label\"\n [url]=\"buttons[1].url\"\n [linkType]=\"buttons[1].linkType\"\n ></tent-button>\n </div>\n } @if (items?.length) {\n <ul class=\"hotel-app--info\">\n @for (item of items; track $index) {\n <li class=\"hotel-app--info--element\">\n <div class=\"hotel-app--info--element--icon--wrapper\">\n <span\n class=\"hotel-app--info--element--icon\"\n [ngClass]=\"item.icon\"\n >\n </span>\n </div>\n <span class=\"hotel-app--info--element--text text\">\n {{ item.title }}\n </span>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { fromEvent, tap } from 'rxjs';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-hotel-equipment',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './hotel-equipment.component.html',\n styleUrl: './hotel-equipment.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelEquipmentComponent implements OnInit, AfterViewInit {\n @Input() items?: HotelEquipmentItem[];\n @Input() itemsBelow?: HotelEquipmentItem[];\n @Input() title?: string;\n @Input() btnMore?: ButtonI;\n @Input() btnLess?: ButtonI;\n\n collapsed1 = true;\n\n itemsToShow = 6;\n\n ngOnInit(): void {\n this.itemsToShow = window.innerWidth >= 1680 ? 6 : 4;\n }\n\n ngAfterViewInit(): void {\n fromEvent(window, 'resize')\n .pipe(\n tap(() => {\n this.itemsToShow = window.innerWidth >= 1680 ? 6 : 4;\n })\n )\n .subscribe();\n }\n\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n collapsed2 = true;\n toggleCollapse2(): void {\n this.collapsed2 = !this.collapsed2;\n }\n}\n\nexport interface HotelEquipmentItem {\n title: string;\n icon: string;\n alt: string;\n}\n","<section class=\"hotel-benefits module-spacer--bottom\">\n <div class=\"hotel-benefits--content wrapper-big\">\n <div class=\"hotel-benefits--box\">\n <div\n class=\"hotel-benefits--equipament\"\n [ngClass]=\"collapsed1 ? 'close' : 'open'\"\n >\n @if (title) {\n <div class=\"hotel-benefits--info\">\n <h2 class=\"hotel-benefits--title title--60 color--brown\">\n {{ title }}\n </h2>\n </div>\n } @if (items?.length) {\n <div class=\"hotel-benefits--list\">\n @for (item of items; track $index) {\n <div class=\"hotel-benefits--item bg-beige\">\n <div class=\"hotel-benefits--item--inner\">\n @if (item.title) {\n <h3\n class=\"title--24 color--brown-70\"\n [innerHTML]=\"item.title\"\n ></h3>\n } @if (item.icon) {\n <span\n [ngClass]=\"item.icon\"\n class=\"hotel-benefits--icon\"\n ></span>\n }\n </div>\n </div>\n }\n </div>\n } @if (btnMore && btnLess && (items?.length ?? 4) > itemsToShow)\n {\n <div class=\"hotel-benefits--btns\">\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n </div>\n }\n </div>\n @if (itemsBelow?.length) {\n <div\n class=\"hotel-benefits--services\"\n [ngClass]=\"collapsed2 ? 'close' : 'open'\"\n >\n <ul class=\"hotel-benefits--services--list\">\n @for (item of itemsBelow; track $index) {\n <li>\n <span [ngClass]=\"item.icon\"></span>\n <p class=\"text\">{{ item.title }}</p>\n </li>\n }\n </ul>\n @if (btnMore && btnLess) {\n <div class=\"hotel-benefits--btns\">\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse2()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse2()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n </div>\n }\n </div>\n\n }\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../../public-api';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-hotel-location',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './hotel-location.component.html',\n styleUrl: './hotel-location.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelLocationComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() subtitle?: string;\n @Input() image?: string;\n @Input() items?: HotelLocationsItem[];\n @Input() btnMore?: ButtonI;\n @Input() btnLess?: ButtonI;\n @Input() address?: string;\n @Input() linkMap?: string;\n collapsed = true;\n\n get getImageUrl(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface HotelLocationsItem {\n title: string;\n icon: string;\n}\n","<section class=\"hotel-location module-spacer--bottom\">\n <div\n class=\"hotel-location--content wrapper-big\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n <div class=\"hotel-location--inner\">\n <div class=\"hotel-location--inner--left\">\n @if (title) {\n <h3 class=\"hotel-location--tit title--60 color--brown\">\n {{ title }}\n </h3>\n } @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n }\n </div>\n <div class=\"hotel-location--inner--right\">\n @if (subtitle) {\n <h4 class=\"hotel-location--subtit title--24 color--brown-70\">\n {{ subtitle }}\n </h4>\n } @if (items) {\n <ul class=\"hotel-location--list\">\n @for (item of items; track $index) {\n <li>\n <span class=\"hotel-location--icon\">\n <span\n class=\"hotel-location--iconsvg\"\n [ngClass]=\"item.icon\"\n ></span>\n </span>\n <p class=\"text\">{{ item.title }}</p>\n </li>\n\n }\n </ul>\n\n }\n </div>\n @if (btnMore && btnLess) {\n <div class=\"hotel-location--btns\">\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n </div>\n } @if (image) {\n <div class=\"hotel-location--maps\">\n <a\n class=\"hotel-location--photo figure-content\"\n [href]=\"linkMap\"\n target=\"_blank\"\n [attr.aria-label]=\"linkMap\"\n >\n <figure class=\"figure-full\" [style]=\"getImageUrl\"></figure>\n </a>\n <ul class=\"hotel-location--maps--address\">\n <li>\n <span class=\"hotel-location--icon icon-home\"></span>\n <span class=\"text\" [innerHTML]=\"address\"> </span>\n </li>\n </ul>\n </div>\n }\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-hotel-services',\n standalone: true,\n imports: [ButtonComponent, RouterModule, LazyBackgroundDirective],\n templateUrl: './hotel-services.component.html',\n styleUrl: './hotel-services.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelServicesComponent {\n @Input() title!: string;\n @Input() titleDark!: string;\n @Input() items!: HotelServicesItem[];\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n itemClicked(event: Event): void {\n event.preventDefault();\n }\n}\n\nexport interface HotelServicesItem {\n image: string;\n title?: string;\n subtitle?: string;\n description?: string;\n buttons?: ButtonI[];\n}\n","<section class=\"hotel-intro wrapper-big module-spacer--bottom\">\n <div class=\"hotel-intro--content\">\n <h2 class=\"hotel-intro--title title--80 color--camel\">\n {{ title }}\n <span class=\"color--brown\">{{ titleDark }}</span>\n </h2>\n </div>\n <div class=\"hotel-intro--services\">\n @for (item of items; track $index) {\n <div class=\"hotel-intro--service\">\n <a\n class=\"hotel-intro--photo figure-content figure-zoom\"\n [href]=\"item.buttons?.[0]?.url\"\n [routerLink]=\"item.buttons?.[0]?.url\"\n [attr.aria-label]=\"item.buttons?.[0]?.url\"\n (click)=\"itemClicked($event)\"\n >\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"item.image\"\n ></figure>\n </a>\n <div class=\"hotel-intro--info pt--10\">\n <h3 class=\"hotel-intro--title title--42 color--brown\">\n {{ item.title }}\n\n @if (item.subtitle) {\n <span class=\"title--24 color--camel\">{{\n item.subtitle\n }}</span>\n }\n </h3>\n <p class=\"hotel-intro--text text color--gray1\">\n {{ item.description }}\n </p>\n @if (item.buttons) {\n <div class=\"hotel-intro--btns flex-row flex-row--left pt--20\">\n @for (btn of item.buttons; track $index) {\n <tent-button\n type=\"dark-link\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n [icon]=\"btn.icon\"\n [iconPosition]=\"btn.iconPosition\"\n [label]=\"btn.label\"\n [name]=\"btn.label\"\n ></tent-button>\n\n }\n </div>\n\n }\n </div>\n </div>\n\n }\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-hotel-slider',\n standalone: true,\n imports: [\n ButtonComponent,\n CarouselModule,\n BadgeComponent,\n LazyBackgroundDirective,\n ],\n templateUrl: './hotel-slider.component.html',\n styleUrl: './hotel-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelSliderComponent implements OnInit {\n @Input() iconControlLeft = 'icon-signal-left';\n @Input() iconControlRight = 'icon-signal-right';\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() items?: HotelSliderItem[];\n\n @Output() hotelClick = new EventEmitter<HotelSliderItem>();\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 1024: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n\nexport interface HotelSliderItem {\n id: string | number;\n image: string;\n title: string;\n description: string;\n ndTitle?: string;\n badge: BadgeI;\n buttons: ButtonI[];\n ticker?: string;\n}\n","<section class=\"hotel-slider module-spacer--bottom\">\n <div class=\"hotel-slider--content wrapper-big\">\n @if (title) {\n <div class=\"hotel-slider--head\">\n <h3 class=\"hotel-slider--title title--80 color--camel\">\n {{ title }}\n <span class=\"color--brown\">{{ titleDark }}</span>\n </h3>\n </div>\n }\n @if (items?.length) {\n <div class=\"hotel-slider--inner\">\n <owl-carousel-o\n class=\"hotel-slider--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"hotel-slider--slide\">\n @if (item.image) {\n <div class=\"hotel-slider--img\">\n <div\n class=\"hotel-slider--photo figure-content\"\n >\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"item.image\"\n ></figure>\n </div>\n </div>\n }\n <div class=\"hotel-slider--des\">\n <!-- @if (item.badge) {\n <tent-badge\n class=\"hotel-slider--badget\"\n [rounded]=\"true\"\n [label]=\"item.badge.label\"\n ></tent-badge>\n } -->\n @if (item.title) {\n <h4\n class=\"hotel-slider--slideTitle color--brown title--80\"\n >\n {{ item.title }}\n @if (item.ndTitle) {\n <span class=\"color--brown\">{{\n item.ndTitle\n }}</span>\n }\n </h4>\n }\n @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n }\n @if (item.buttons.length) {\n <div class=\"hotel-slider--btns pt--20\">\n @for (\n btn of item.buttons;\n track $index\n ) {\n <tent-button\n [type]=\"btn.type!\"\n [icon]=\"btn.icon\"\n [iconPosition]=\"\n btn.iconPosition\n \"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n (btnClick)=\"\n hotelClick.emit(item)\n \"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n }\n </div>\n</section>\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst CURRENCY_SYMBOLS: { [key: string]: string } = {\n USD: '$',\n EUR: '€',\n GBP: '£',\n JPY: '¥',\n AUD: 'A$',\n CAD: 'C$',\n CHF: 'CHF',\n CNY: '¥',\n SEK: 'kr',\n NZD: 'NZ$',\n};\n\n@Pipe({\n name: 'currencySymbol',\n standalone: true,\n})\nexport class CurrencyPipe implements PipeTransform {\n transform(value: string): string {\n return CURRENCY_SYMBOLS[value] || value;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { RouterModule } from '@angular/router';\n@Component({\n selector: 'tent-hotels-list',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CurrencyPipe, RouterModule],\n templateUrl: './hotels-list.component.html',\n styleUrl: './hotels-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelsListComponent implements OnInit, OnChanges {\n @Input() infoTitle?: string;\n @Input() infoTitleDark?: string;\n @Input() infoDescription?: string;\n @Input() links?: ButtonI[];\n @Input() items?: HotelsListItem[];\n\n @Output() hotelClick = new EventEmitter<HotelsListItem>();\n\n collapsed?: boolean[];\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.collapsed = new Array(this.items?.length).fill(true);\n this.items?.sort((a, b) => {\n const subtitleA = a.subtitle ? a.subtitle.toLowerCase() : '';\n const subtitleB = b.subtitle ? b.subtitle.toLowerCase() : '';\n const destinyA = a.parentDestiny ? Number(a.parentDestiny) : 0;\n const destinyB = b.parentDestiny ? Number(b.parentDestiny) : 0;\n return destinyA < destinyB\n ? -1\n : destinyA > destinyB\n ? 1\n : subtitleA < subtitleB\n ? -1\n : subtitleA > subtitleB\n ? 1\n : 0;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['items']?.currentValue) {\n this.collapsed = new Array(this.items?.length).fill(true);\n this.items?.sort((a, b) => {\n const subtitleA = a.subtitle ? a.subtitle.toLowerCase() : '';\n const subtitleB = b.subtitle ? b.subtitle.toLowerCase() : '';\n return subtitleA < subtitleB\n ? -1\n : subtitleA > subtitleB\n ? 1\n : 0;\n });\n }\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n toggleCollapse(index: number): void {\n if (this.collapsed?.length) {\n const itemCollapse = this.collapsed[index];\n this.collapsed.fill(true);\n this.collapsed[index] = !itemCollapse;\n }\n }\n}\n\nexport interface HotelsListItem {\n title?: string;\n ndTitle?: string;\n subtitle?: string;\n description?: string;\n additionalDescription?: string;\n priceTitle?: string;\n priceSubtitle?: string;\n price?: string | number;\n currency?: string;\n image?: string;\n services?: string[];\n button?: ButtonI;\n hotelUrl?: string;\n destinyId?: string | number;\n parentDestiny?: string | number;\n id: number;\n}\n","@if (items?.length) {\n<section class=\"hotels-list module-spacer--bottom\">\n <div class=\"hotels-list--content wrapper-big\">\n <div class=\"hotels-list--inner\">\n @for (item of items; track mainIndex; let mainIndex = $index) {\n <div class=\"hotels-list--item\">\n @if (item.image) {\n <a\n [href]=\"item.hotelUrl\"\n [routerLink]=\"[item.hotelUrl]\"\n [attr.aria-label]=\"item.title\"\n (click)=\"$event.preventDefault(); hotelClick.emit(item)\"\n class=\"hotels-list--photo figure-content figure-zoom\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"this.getImage(item.image)\"\n ></figure>\n </a>\n } @if (item.title || item.description) {\n <div\n class=\"hotels-list--info bg-white\"\n [ngClass]=\"collapsed?.[mainIndex] ? 'close' : 'open'\"\n >\n @if (item.title) {\n <a\n [href]=\"item.hotelUrl\"\n [routerLink]=\"[item.hotelUrl]\"\n [attr.aria-label]=\"item.title\"\n (click)=\"$event.preventDefault(); hotelClick.emit(item)\"\n >\n <h2 class=\"hotels-list--tit title--38 color--camel\">\n {{ item.title }} <br />{{ item.ndTitle }}\n </h2>\n </a>\n } @if (item.subtitle) {\n <h3 class=\"subtitle--medium color--brown-dark\">\n {{ item.subtitle }}\n </h3>\n } @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n } @if (item.additionalDescription) {\n <p class=\"text text-more\">\n {{ item.additionalDescription }}\n </p>\n } @if (links?.length) {\n <div class=\"hotels-list--btns\">\n @for (link of links; track $index; let first = $first) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse(mainIndex)\"\n [name]=\"link.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n } @if (item.services?.length || (item.priceTitle && item.price\n && item.currency)) {\n <ul class=\"hotels-list--services bg-beige\">\n @if (item.services?.length) { @for (service of\n item.services; track $index) {\n <li class=\"hotels-list--services--item\">\n <p class=\"text\">{{ service }}</p>\n </li>\n } } @if (item.priceTitle && item.price && item.currency) {\n <div class=\"hotels-list--footer\">\n <div class=\"hotels-list--footer--text\">\n <p class=\"hotels-list--footer--title color--brown\">\n {{ item.priceTitle }}\n </p>\n @if (item.priceSubtitle) {\n <p\n class=\"hotels-list--footer--subtitle color--brown\"\n >\n {{ item.priceSubtitle }}\n </p>\n }\n </div>\n <span class=\"hotels-list--footer--price color--brown\"\n >{{ item.price\n }}<span>{{\n item.currency | currencySymbol\n }}</span></span\n >\n </div>\n }\n </ul>\n } @if (item.button) {\n <div class=\"hotels-list--book\">\n <tent-button\n type=\"dark-box-filled\"\n class=\"btn-small\"\n [label]=\"item.button.label\"\n [url]=\"item.button.url\"\n [linkType]=\"item.button.linkType\"\n boxWidth=\"265px\"\n ></tent-button>\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n} @if(infoTitle || infoDescription){\n<section class=\"module-info module-spacer--bottom\">\n <div class=\"module-info--content wrapper-big\">\n <div class=\"module-info--inner\">\n <div class=\"module-info--box\">\n @if (infoTitle) {\n <h3 class=\"module-info--title title--80 color--camel\">\n {{ infoTitle }} @if (infoTitleDark) {\n <span class=\"color--brown\">\n {{ infoTitleDark }}\n </span>\n }\n </h3>\n } @if (infoDescription) {\n <div class=\"module-info--des\">\n <p class=\"text\" [innerHTML]=\"infoDescription\"></p>\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { YouTubePlayerModule } from '@angular/youtube-player';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-info-slider',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n CarouselModule,\n YouTubePlayerModule,\n MatProgressSpinnerModule,\n ],\n templateUrl: './info-slider.component.html',\n styleUrl: './info-slider.component.scss',\n})\nexport class InfoSliderComponent implements OnInit {\n @Input() theme?: string = '';\n @Input() infoalign?: string = 'info-right';\n @Input() images?: string[];\n @Input() title?: string;\n @Input() description?: string;\n @Input() video?: ImageI;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n @Input() slim?: boolean;\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed = true;\n\n tag!: HTMLScriptElement;\n playerVars!: YT.PlayerVars;\n apiloaded = false;\n loading = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n\n ngOnInit(): void {\n // if (this.video) {\n // this.playerVars = {\n // enablejsapi: 1,\n // autoplay: 1,\n // controls: 0,\n // showinfo: 0,\n // modestbranding: 1,\n // loop: 1,\n // fs: 1,\n // cc_load_policy: 1,\n // iv_load_policy: 3,\n // autohide: 1,\n // rel: 0,\n // playsinline: 1,\n // playlist: this.video?.src,\n // };\n // this.initPlayer();\n // }\n this.sliderOptions = {\n ...this.sliderOptions,\n navText: [\n `<div class=\"btn btn__circle btn__circle-- ${\n this.theme === 'theme-laundry'\n ? 'btn__laundry'\n : 'btn__dark'\n }\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>`,\n `<div class=\"btn btn__circle btn__circle-- ${\n this.theme === 'theme-laundry'\n ? 'btn__laundry'\n : 'btn__dark'\n }\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>`,\n ],\n };\n }\n\n // onStateChange(e: any) {\n // e.target.setPlaybackQuality('highres');\n // if (e.data == YT.PlayerState.PLAYING) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.mute();\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.PAUSED) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.mute();\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.ENDED) {\n // e.target.mute();\n // e.target.seekTo(0);\n // e.target.playVideo();\n // }\n // }\n\n // initPlayer(): void {\n // const existingScript = Array.from(\n // document.getElementsByTagName('script')\n // ).find((script) => script.src === 'https://www.youtube.com/iframe_api');\n\n // if (!existingScript) {\n // this.tag = document.createElement('script');\n // this.tag.src = 'https://www.youtube.com/iframe_api';\n // this.tag.async = true;\n // const firstScriptTag = document.getElementsByTagName('script')[0];\n // firstScriptTag.parentNode?.insertBefore(this.tag, firstScriptTag);\n\n // (window as any)['onYouTubeIframeAPIReady'] = () => {\n // this.apiloaded = true;\n // };\n // } else {\n // this.apiloaded = true;\n // }\n // }\n\n // onPlayerReady(event: any) {\n // event.target.mute();\n // event.target.seekTo(1, true);\n // event.target.playVideo();\n // }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n","<section class=\"info-slider module-spacer--bottom\" [ngClass]=\"[theme]\">\n <div\n class=\"info-slider--content wrapper-big\"\n [ngClass]=\"{ 'info-slider--content--slim': slim }\"\n >\n <div class=\"info-slider--box\" [ngClass]=\"[infoalign]\">\n @if (video && video.src) {\n <div class=\"info-slider--video--wrapper\">\n <div class=\"info-slider--video\">\n <!-- @if (loading) {\n <mat-spinner></mat-spinner>\n } @if (apiloaded) {\n <youtube-player\n #ytPlayer\n [videoId]=\"video.src\"\n suggestedQuality=\"highres\"\n [showBeforeIframeApiLoads]=\"true\"\n [playerVars]=\"playerVars\"\n (stateChange)=\"onStateChange($event)\"\n (ready)=\"onPlayerReady($event)\"\n [disablePlaceholder]=\"true\"\n >\n </youtube-player\n >} -->\n <video\n loop\n [muted]=\"true\"\n playsinline\n autoplay\n preload=\"auto\"\n width=\"100%\"\n height=\"100%\"\n oncanplay=\"this.play()\"\n onloadedmetadata=\"this.muted = true\"\n >\n @if (video) {\n <source [src]=\"video.src + '.webm'\" type=\"video/webm\" />\n <source [src]=\"video.src + '.mp4'\" type=\"video/mp4\" />\n }\n </video>\n </div>\n </div>\n } @else if (images?.length) {\n <owl-carousel-o\n class=\"info-slider--slider slider-circle--center figure-sticky\"\n [ngClass]=\"{ 'info-slider--slider--slim': slim }\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <div\n class=\"info-slider--photo figure-content\"\n [ngClass]=\"{ 'info-slider--photo--slim': slim }\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n }\n <div\n class=\"info-slider--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @if (title || description) {\n <div class=\"info-slider--info--inner\">\n @if (title) {\n <h2\n class=\"location-beach--info--title title--60 color--brown\"\n >\n {{ title }}\n </h2>\n\n } @if (description) {\n <div class=\"info-slider--info--des\">\n <p class=\"text\">\n {{ description }}\n </p>\n @if (additionalDescription) {\n <p class=\"text text-more\">\n {{ additionalDescription }}\n </p>\n } @if (links?.length) {\n <div class=\"info-slider--btns\">\n @for (link of links; track $index; let first =\n $first) {\n <tent-button\n class=\"btn-more\"\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"link.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-location-beach',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './location-beach.component.html',\n styleUrl: './location-beach.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LocationBeachComponent {\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() description?: string;\n @Input() infoItems?: LocationBeachInfoItem[];\n @Input() items?: LocationBeachItem[];\n @Input() links?: ButtonI[];\n @Input() button?: ButtonI;\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface LocationBeachItem {\n image?: string;\n tag?: BadgeI;\n}\n\nexport interface LocationBeachInfoItem {\n title?: string;\n icon?: string;\n}\n","<section class=\"location-beach module-spacer--bottom\">\n <div class=\"location-beach--content wrapper-big\">\n <div class=\"location-beach--box info-right\">\n @if (items?.length) {\n <owl-carousel-o\n class=\"location-beach--slider slider-circle--center figure-sticky\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"location-beach--photo figure-content\">\n @if (item.image) {\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n } @if (item.tag?.label && item.tag) {\n <tent-badge\n class=\"location-beach--badget\"\n [rounded]=\"true\"\n [label]=\"item.tag.label\"\n ></tent-badge>\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n }\n <div\n class=\"location-beach--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n <div class=\"location-beach--info--inner\">\n @if (title) {\n <h2\n class=\"location-beach--info--title title--60 color--brown\"\n >\n {{ title }}\n </h2>\n } @if (subtitle) {\n <h3\n class=\"location-beach--info--subtit subtitle color--brown-70\"\n >\n {{ subtitle }}\n </h3>\n } @if (infoItems?.length && infoItems) {\n <ul class=\"location-beach--info--icons\">\n @for (item of infoItems; track $index) {\n <li>\n <span class=\"info--icon\">\n <span\n class=\"info--icon--svg\"\n [ngClass]=\"item.icon\"\n ></span>\n </span>\n @if (item.title) {\n <p class=\"text\">{{ item.title }}</p>\n }\n </li>\n }\n </ul>\n } @if (links && links.length > 2) { @if (links[0]) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"links[0].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } @if (links[1]) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"links[1].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } } @if (description) {\n <div class=\"location-beach--info--des\">\n <p class=\"text\">\n {{ description }}\n </p>\n </div>\n } @if (button) {\n <div class=\"location-beach--info--btns\">\n <tent-button\n class=\"btn-book\"\n type=\"dark-box\"\n [linkType]=\"button.linkType\"\n [url]=\"button.url\"\n [label]=\"button.label\"\n [name]=\"button.label\"\n ></tent-button>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-location-how',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './location-how.component.html',\n styleUrl: './location-how.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LocationHowComponent {\n @Input() backgroundImage?: string;\n @Input() title?: string;\n @Input() items?: LocationHowItem[];\n @Input() links?: ButtonI[];\n\n tabActive = 'tab1';\n collapsed = true;\n\n get image(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.backgroundImage})`\n );\n }\n\n get hasItemActiveAdditionalDescription() {\n return this.items?.[Number(this.tabActive.substring(-1)) - 1]\n ?.additionalDescription;\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n\n viewTab(tabActive: string): void {\n this.tabActive = tabActive;\n }\n}\n\nexport interface LocationHowItem {\n icon?: string;\n title?: string;\n description?: string;\n additionalDescription?: string;\n}\n","<section class=\"location-how module-spacer--bottom\">\n <div class=\"location-how--content wrapper-big\">\n @if (backgroundImage) {\n <div class=\"location-how--maps figure-sticky\">\n <div class=\"location-how--photo figure-content\">\n <figure class=\"figure-full\" [style]=\"image\"></figure>\n </div>\n </div>\n }\n <div class=\"location-how--inner\" [ngClass]=\"[tabActive]\">\n @if (title) {\n <h3 class=\"location-how--tit title--60 color--brown\">\n {{ title }}\n </h3>\n } @if (items?.length && items) {\n <ul class=\"location-how--icons\">\n @for (item of items; track $index) {\n <li>\n <img\n src=\"/assets/tent/img/icon-location.svg\"\n alt=\"left\"\n loading=\"lazy\"\n width=\"59\"\n height=\"59\"\n class=\"location-how--iconactive\"\n />\n <span\n class=\"location-how--icon\"\n (click)=\"viewTab('tab' + ($index + 1))\"\n >\n <span\n class=\"location-how--icon--svg\"\n [ngClass]=\"item.icon\"\n ></span>\n </span>\n </li>\n }\n </ul>\n <div\n class=\"location-how--infor\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @for (item of items; track $index) {\n <div class=\"location-how--infor--tab\">\n @if (item.title) {\n <h3\n class=\"location-beach--info--subtit subtitle color--brown-70\"\n >\n {{ item.title }}\n </h3>\n } @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n } @if (item.additionalDescription) {\n <p class=\"text text-more\">\n {{ item.additionalDescription }}\n </p>\n }\n </div>\n\n } @if (links && links.length &&\n hasItemActiveAdditionalDescription) { @if (links[0]) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"links[0].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } @if (links[1]) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"links[1].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../../public-api';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-location-map',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './location-map.component.html',\n styleUrl: './location-map.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LocationMapComponent {\n @Input() image?: string;\n @Input() linkImage?: string;\n @Input() title?: string;\n @Input() ndTitle?: string;\n @Input() links?: ButtonI[];\n @Input() copyRight?: string;\n @Input() button?: ButtonI;\n\n @Output() btnClick = new EventEmitter<void>();\n\n get getMainImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n btnMapClicked() {\n (document.getElementById('how') as HTMLElement).scrollIntoView({\n behavior: 'smooth',\n });\n }\n}\n","<section class=\"location-map module-spacer--bottom\">\n <div class=\"location-map--content wrapper-big\">\n @if (image && linkImage) {\n <div class=\"location-map--maps\">\n <a\n class=\"location-map--photo figure-content\"\n [href]=\"linkImage\"\n target=\"_blank\"\n >\n <figure class=\"figure-full\" [style]=\"getMainImage\"></figure>\n </a>\n </div>\n }\n <div class=\"location-map--inner\">\n @if (title) {\n <h3 class=\"location-map--tit title--30 color--brown-70\">\n {{ title }}\n @if (ndTitle) {\n <span class=\"color--brown-70\"> {{ ndTitle }}</span>\n }\n </h3>\n } @if (links?.length) {\n <ul class=\"location-map--list\">\n @for (link of links; track $index) {\n <li>\n <span\n class=\"location-map--icon\"\n [ngClass]=\"{\n 'icon-home': $index === 0,\n 'icon-phone-2': $index === 1,\n 'icon-envelope': $index === 2\n }\"\n ></span>\n @if (link.linkType === 'nolink') {\n <span class=\"text text--18\" [innerHTML]=\"link.label\">\n </span>\n } @else {\n <a\n class=\"link\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n </ul>\n } @if (copyRight) {\n <ul class=\"location-map--list copyright\">\n <li>\n <span class=\"location-map--icon icon-copyright\"></span>\n <p class=\"text text--18\">{{ copyRight }}</p>\n </li>\n </ul>\n } @if (button) {\n <div class=\"location-map--btns\">\n <tent-button\n class=\"btn-book\"\n type=\"dark-box\"\n [label]=\"button.label\"\n [name]=\"button.name\"\n (btnClick)=\"btnMapClicked()\"\n ></tent-button>\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'tent-loyalty-form',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loyalty-form.component.html',\n styleUrl: './loyalty-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoyaltyFormComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() lang?: string;\n @Input() frame?: string;\n}\n","<section class=\"loyalty-form\">\n <div class=\"loyalty-form__container\">\n <div class=\"floating-box\">\n <div class=\"floating-box__left-column\">\n @if (title || description) {\n <div class=\"flex-col loyalty-form--header\">\n @if (title) {\n <h3 class=\"loyalty-form--title color--brown\">\n {{ title }}\n </h3>\n }\n @if (description) {\n <p class=\"loyalty-form--description\">\n {{ description }}\n </p>\n }\n </div>\n }\n </div>\n <div class=\"floating-box__right-column\">\n <div class=\"form-container\">\n @if (frame) {\n <div class=\"loyalty-form--form\">\n <div\n data-mirai-component=\"signup\"\n [attr.data-locale]=\"lang\"\n data-mirai-id=\"502045\"\n ></div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { RouterModule } from '@angular/router';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-books-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './books-modal.component.html',\n styleUrl: './books-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BooksModalComponent {\n @Input() lang?: String;\n\n constructor(\n private readonly dialogRef: MatDialogRef<BooksModalComponent>\n ) {}\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"books\">\n <div class=\"books--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n name=\"icon-close\"\n ></tent-button>\n </div>\n <div\n data-mirai-engine=\"mirai_cma\"\n [attr.data-lang]=\"lang\"\n data-idchain=\"502045\"\n ></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n inject,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle, SafeUrl } from '@angular/platform-browser';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-checkin-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './checkin-modal.component.html',\n styleUrl: './checkin-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckinModalComponent {\n @Input() image!: string;\n @Input() title?: string;\n @Input() script?: string;\n @Input() closeBtn!: ButtonI;\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n get urlScript(): SafeUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.script!);\n }\n\n private readonly sanitizer = inject(DomSanitizer);\n}\n","<div class=\"checkin\">\n @if (image) {\n <div class=\"checkin--image-wrapper\">\n <figure [style]=\"getImage\" class=\"checkin--image\"></figure>\n </div>\n }\n <div class=\"checkin--right-slot\">\n @if (title) {\n <div class=\"checkin--header\">\n <p class=\"checkin--title color--brown\">{{ title }}</p>\n </div>\n } @if (script) {\n <iframe\n [src]=\"urlScript\"\n width=\"600\"\n height=\"400\"\n frameborder=\"0\"\n allow=\"camera\"\n scrolling=\"yes\"\n ></iframe>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { GalleryFilterOption } from '../../generic-head/generic-head.component';\n\n@Component({\n selector: 'tent-gallery-category',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './gallery-category.component.html',\n styleUrl: './gallery-category.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GalleryCategoryComponent {\n @Input() title?: string;\n @Input() items?: GalleryFilterOption[];\n\n @Output() itemClick = new EventEmitter<GalleryFilterOption>();\n\n constructor(\n private readonly dialogRef: MatDialogRef<GalleryCategoryComponent>\n ) {}\n\n itemClicked(item: GalleryFilterOption): void {\n this.itemClick.emit(item);\n this.closeModal();\n }\n\n closeModal(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"gallery-category\">\n <div class=\"gallery-category--header\">\n @if (title) {\n <p class=\"color--brown\" [innerHTML]=\"title\"></p>\n }\n\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n (btnClick)=\"closeModal()\"\n name=\"close\"\n ></tent-button>\n </div>\n @if (items?.length) {\n <ul class=\"gallery-category--list\">\n @for (item of items; track $index) {\n <li class=\"gallery-category--item\" (click)=\"itemClicked(item)\">\n <p class=\"color--brown\">\n <span class=\"gallery-category--dot\"></span> {{ item.label }}\n </p>\n <span class=\"icon-pointer-down\"></span>\n </li>\n }\n </ul>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-languages-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, MatIconModule],\n templateUrl: './languages-modal.component.html',\n styleUrl: './languages-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LanguagesModalComponent {\n @Input() title?: string;\n @Input() closeBtn?: ButtonI;\n @Input() buttons?: ButtonI[];\n\n @Output() languageSelect = new EventEmitter<ButtonI>();\n\n selected = 'inglés';\n\n private readonly dialogRef: MatDialogRef<LanguagesModalComponent> =\n inject(MatDialogRef);\n\n selectLanguage(language: ButtonI): void {\n this.selected = language.label!;\n this.languageSelect.emit(language);\n this.close();\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"languages-modal\">\n @if (closeBtn?.icon) {\n <div class=\"languages-modal--close\">\n <tent-button\n type=\"dark-circle\"\n [icon]=\"closeBtn?.icon\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n [name]=\"closeBtn?.icon\"\n ></tent-button>\n </div>\n } @if (title) {\n <div class=\"languages-modal--header\">\n <h4 class=\"languages-modal--header--title\">{{ title }}</h4>\n </div>\n } @if (buttons?.length) {\n <div class=\"languages-modal--content\">\n @for (btn of buttons; track $index) {\n <tent-button\n [ngClass]=\"{\n 'languages-modal--selected': btn.label == selected\n }\"\n type=\"dark-box\"\n [label]=\"btn.label\"\n (btnClick)=\"selectLanguage(btn)\"\n [name]=\"btn.label\"\n ></tent-button>\n\n }\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../../interfaces/atomic/image.interface';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-loyalty-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './loyalty-modal.component.html',\n styleUrl: './loyalty-modal.component.scss',\n})\nexport class LoyaltyModalComponent {\n @Input() items?: LoyaltyModalItem[];\n @Input() button?: ButtonI;\n @Input() link?: ButtonI;\n @Input() image?: ImageI;\n\n @Output() linkClick = new EventEmitter();\n @Output() btnClick = new EventEmitter();\n\n constructor(\n private readonly dialogRef: MatDialogRef<LoyaltyModalComponent>\n ) {}\n\n close(): void {\n this.dialogRef.close();\n }\n}\n\nexport interface LoyaltyModalItem {\n titleDark?: string;\n title?: string;\n items?: LoyaltyModalSubItem[];\n}\n\nexport interface LoyaltyModalSubItem {\n icon?: string;\n title?: string;\n subtitle?: string;\n}\n","<div class=\"loyalty-modal\">\n <div class=\"loyalty-modal--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n name=\"icon-close\"\n ></tent-button>\n </div>\n @if (items?.[0]) {\n <div class=\"loyalty-modal--left-slot\">\n <div class=\"flex-col\">\n @if (items?.[0]?.title || items?.[0]?.titleDark) {\n <div class=\"loyalty-modal--header--wrapper\">\n <div class=\"loyalty-modal--header\">\n @if (items?.[0]?.titleDark) {\n <h3 class=\"loyalty-modal--title color--brown\">\n {{ items?.[0]?.titleDark }}\n </h3>\n } @if (items?.[0]?.title) {\n <h3 class=\"loyalty-modal--title color--camel\">\n {{ items?.[0]?.title }}\n </h3>\n }\n </div>\n </div>\n\n } @if (items?.[0]?.items?.length) { @for (item of items?.[0]?.items;\n track $index) {\n <div class=\"loyalty-modal--item\">\n @if (item.icon) {\n <span\n class=\"loyalty-modal--item--icon\"\n [ngClass]=\"item.icon\"\n ></span>\n } @if (item.title) {\n <div class=\"flex-col\">\n <p class=\"loyalty-modal--item--title color--brown\">\n {{ item.title }}\n </p>\n <p class=\"loyalty-modal--item--subtitle color--brown\">\n {{ item.subtitle }}\n </p>\n </div>\n }\n </div>\n } }\n </div>\n </div>\n\n } @if (items?.[1]) {\n <div class=\"loyalty-modal--right-slot\">\n <div class=\"flex-col\">\n @if (items?.[1]?.title || items?.[1]?.titleDark) {\n <div class=\"loyalty-modal--header--wrapper\">\n <div class=\"loyalty-modal--header\">\n @if (items?.[1]?.titleDark) {\n <h3 class=\"loyalty-modal--title color--brown\">\n {{ items?.[1]?.titleDark }}\n </h3>\n } @if (items?.[1]?.title) {\n <h3 class=\"loyalty-modal--title color--camel\">\n {{ items?.[1]?.title }}\n </h3>\n }\n </div>\n\n @if (image) {\n\n <img\n class=\"loyalty-modal--logo\"\n [src]=\"image.src\"\n [alt]=\"image.alt\"\n />\n }\n </div>\n } @if (items?.[1]?.items?.length) { @for (item of items?.[1]?.items;\n track $index) {\n <div class=\"loyalty-modal--item\">\n @if (item.icon) {\n <span\n class=\"loyalty-modal--item--icon\"\n [ngClass]=\"item.icon\"\n ></span>\n } @if (item.title) {\n <div class=\"flex-col\">\n <p class=\"loyalty-modal--item--title color--brown\">\n {{ item.title }}\n </p>\n <p class=\"loyalty-modal--item--subtitle color--brown\">\n {{ item.subtitle }}\n </p>\n </div>\n }\n </div>\n } }\n <div class=\"loyalty-modal--footer\">\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"button?.label\"\n (btnClick)=\"linkClick.emit()\"\n ></tent-button>\n <tent-button\n type=\"dark-link\"\n [label]=\"link?.label\"\n [url]=\"link?.url\"\n [linkType]=\"link?.linkType\"\n (btnClick)=\"btnClick.emit()\"\n ></tent-button>\n </div>\n </div>\n </div>\n\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-menu-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './menu-modal.component.html',\n styleUrl: './menu-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuModalComponent implements OnInit, OnDestroy {\n @Input() closeBtn!: ButtonI;\n @Input() logo?: string;\n @Input() checkinLabel?: string;\n @Input() altLogo?: string;\n @Input() items?: MenuItem[];\n @Input() booksBtn?: ButtonI;\n @Input() buttonItem?: ButtonI;\n @Input() phoneBtn?: ButtonI;\n @Input() newsletterBtn?: ButtonI;\n @Input() socialButtons?: ButtonI[];\n\n @Output() checkinClick = new EventEmitter<void>();\n @Output() newsletterClick = new EventEmitter<void>();\n @Output() booksClick = new EventEmitter<void>();\n @Output() elementClick = new EventEmitter<MenuItem>();\n\n isInternalLink(item: MenuItem): boolean {\n return item.type === 'internal';\n }\n\n private readonly dialogRef: MatDialogRef<MenuModalComponent> =\n inject(MatDialogRef);\n private readonly sanitizer = inject(DomSanitizer);\n\n ngOnInit(): void {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: hidden');\n }\n\n ngOnDestroy(): void {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: auto');\n }\n\n getImage(image?: string): SafeStyle | undefined {\n return image\n ? this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n )\n : undefined;\n }\n\n linkClicked(item: MenuItem, event: Event): void {\n if (item.type !== 'external') {\n event.preventDefault();\n }\n this.elementClick.emit(item);\n this.closeModal();\n }\n\n closeModal(): void {\n this.dialogRef.close();\n }\n}\n\nexport interface MenuItem {\n id?: string | number;\n title: string;\n image?: string;\n url?: string;\n type: 'internal' | 'external' | 'component';\n componentId?: string;\n}\n","<div class=\"menu-modal\">\n <div class=\"menu-modal--close\">\n <tent-button\n type=\"dark-circle\"\n [icon]=\"closeBtn.icon\"\n [closeButton]=\"true\"\n (btnClick)=\"closeModal()\"\n [name]=\"closeBtn.icon\"\n ></tent-button>\n </div>\n\n <div class=\"menu-modal--content\">\n @if (logo) {\n <div class=\"flex-row flex-row--center menu-modal--logo\">\n <img\n class=\"menu-modal--logo--img\"\n [src]=\"logo\"\n [alt]=\"altLogo\"\n loading=\"lazy\"\n width=\"100\"\n height=\"100\"\n />\n </div>\n }\n <div class=\"menu-modal--links\">\n @if (items?.length) { @for (item of items; track $index) { @if\n (item.title) {\n <a\n [href]=\"item.url\"\n [routerLink]=\"isInternalLink(item) ? [item.url] : null\"\n [attr.aria-label]=\"item.title\"\n class=\"menu-modal--link-wrapper\"\n (click)=\"linkClicked(item, $event)\"\n >\n @if (item.image) {\n <div class=\"menu-modal--image-wrapper\">\n <figure\n class=\"menu-modal--image\"\n [style]=\"getImage(item.image)\"\n ></figure>\n </div>\n }\n <div class=\"menu-modal--link\">\n <p>\n {{ item.title }}\n </p>\n @if (buttonItem) {\n <tent-button\n class=\"menu-modal--btn\"\n type=\"dark-circle\"\n [icon]=\"buttonItem.icon\"\n [name]=\"buttonItem.icon\"\n ></tent-button>\n }\n </div>\n </a>\n } }} @if (checkinLabel) {\n <div\n class=\"menu-modal--check-in--wrapper flex-row flex-row--center\"\n >\n <div class=\"menu-modal--check-in\" (click)=\"checkinClick.emit()\">\n <span class=\"color--white\">{{ checkinLabel }}</span>\n </div>\n </div>\n } @if (newsletterBtn || socialButtons) {\n <div class=\"flex-row flex-row--between menu-modal--social-media\">\n @if (newsletterBtn) {\n <tent-button\n type=\"dark-link\"\n [label]=\"newsletterBtn.label\"\n icon=\"icon-envelope-plus\"\n iconPosition=\"right\"\n (btnClick)=\"newsletterClick.emit()\"\n [name]=\"newsletterBtn.label\"\n ></tent-button>\n } @if (socialButtons?.length) {\n <ul class=\"menu-modal--socials\">\n @for (socialBtn of socialButtons; track $index) {\n <li>\n <a\n [attr.aria-label]=\"socialBtn.icon\"\n [href]=\"socialBtn.url\"\n rel=\"external\"\n target=\"_blank\"\n [ngClass]=\"socialBtn.icon\"\n class=\"module-travelers--social color--brown\"\n ></a>\n </li>\n\n }\n </ul>\n }\n </div>\n } @if (phoneBtn) {\n <div class=\"flex-row flex-row--center menu-modal--books\">\n <!-- <tent-button\n type=\"dark-link\"\n [label]=\"booksBtn.label\"\n [icon]=\"booksBtn.icon\"\n (btnClick)=\"booksClick.emit()\"\n ></tent-button> -->\n\n <tent-button\n type=\"dark-link\"\n [label]=\"phoneBtn.label\"\n [url]=\"phoneBtn.url\"\n icon=\"icon-phone\"\n iconPosition=\"left\"\n ></tent-button>\n </div>\n }\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { InputI } from '../../../../interfaces/atomic/input.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport {\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tent-newsletter-modal',\n standalone: true,\n imports: [\n MatCheckboxModule,\n ButtonComponent,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n ],\n templateUrl: './newsletter-modal.component.html',\n styleUrl: './newsletter-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NewsletterModalComponent implements OnInit {\n @Input() closeBtn?: ButtonI;\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() conditions?: string;\n @Input() image?: string;\n @Input() input?: InputI;\n\n @Output() submitForm = new EventEmitter<string>();\n\n get imageInstant(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n form!: FormGroup;\n\n constructor(\n private readonly dialogRef: MatDialogRef<NewsletterModalComponent>,\n private readonly sanitizer: DomSanitizer,\n private readonly fb: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.form = this.fb.group({\n input: ['', [Validators.email, Validators.required]],\n checkbox: [false, [Validators.requiredTrue]],\n });\n }\n\n validateInput(): void {\n this.input!.valid = this.form.controls['input'].errors === null;\n }\n\n inputChange(event: Event): void {\n this.input!.value = (event.target as HTMLInputElement).value;\n }\n\n close(): void {\n this.dialogRef.close();\n }\n\n submit(): void {\n this.submitForm.emit(this.input!.value as string);\n }\n}\n","<div class=\"newsletter-modal\">\n @if (closeBtn?.icon) {\n <div class=\"newsletter-modal--close\">\n <tent-button\n type=\"dark-circle\"\n [icon]=\"closeBtn?.icon\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n [name]=\"closeBtn?.icon\"\n ></tent-button>\n </div>\n } @if (image) {\n <div class=\"newsletter-modal--left-slot\">\n <figure class=\"figure-full\" [style]=\"imageInstant\"></figure>\n </div>\n\n }\n <div class=\"newsletter-modal--right-slot\">\n <div class=\"flex-col\">\n @if (title || titleDark) {\n <div>\n @if (titleDark) {\n <h3 class=\"newsletter-modal--title color--brown\">\n {{ titleDark }}\n </h3>\n } @if (title) {\n <h3 class=\"newsletter-modal--title color--camel\">\n {{ title }}\n </h3>\n }\n </div>\n } @if (description) {\n <p class=\"newsletter-modal--subtitle\">\n {{ description }}\n </p>\n }\n\n <form class=\"flex-col\" [formGroup]=\"form\">\n <div class=\"newsletter-modal--input\">\n @if (input) {\n <input\n type=\"email\"\n [value]=\"input.value\"\n [placeholder]=\"input.placeholder\"\n (blur)=\"validateInput()\"\n (change)=\"inputChange($event)\"\n formControlName=\"input\"\n />\n <span\n class=\"icon-pointer-down\"\n [ngClass]=\"{ invalid: !form.valid }\"\n (click)=\"submit()\"\n ></span>\n }\n </div>\n @if (!input?.valid) {\n <span class=\"form-error\">\n {{ input?.error }}\n </span>\n }\n\n <div class=\"flex-row\">\n <mat-checkbox\n class=\"newsletter-modal--checkbox\"\n formControlName=\"checkbox\"\n ></mat-checkbox>\n @if (conditions) {\n <span\n [innerHTML]=\"conditions\"\n class=\"newsletter-modal--conditions color--brown\"\n >\n </span>\n }\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-module-404',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './module-404.component.html',\n styleUrl: './module-404.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Module404Component {\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() description?: string;\n @Input() buttons?: ButtonI[];\n}\n","<section class=\"module-404 bg-beige\">\n <div class=\"module-404--content\">\n <div class=\"module-404--inner\">\n @if (title || subtitle) {\n <div class=\"module-404--card bg-camel\">\n <div class=\"module-404--card--box\">\n @if (title) {\n <h4\n class=\"module-404--titleTop title--42 color--brown\"\n >\n {{ title }}\n </h4>\n }\n @if (subtitle) {\n <p class=\"module-404--btn color--brown\">\n <span class=\"title--30\"> {{ subtitle }}</span>\n </p>\n }\n </div>\n </div>\n }\n @if (description || buttons?.length) {}\n <div class=\"module-404--info bg-white\">\n <div class=\"module-404--info--des\">\n @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n }\n @if (buttons?.length) {\n <div class=\"module-404--btns\">\n @for (btn of buttons; track $index) {\n <tent-button\n class=\"btn-book btn-small\"\n type=\"dark-box\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-module-brava',\n standalone: true,\n imports: [CommonModule, LazyBackgroundDirective, ButtonComponent],\n templateUrl: './module-brava.component.html',\n styleUrl: './module-brava.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModuleBravaComponent {\n @Input() description?: string;\n @Input() img?: string;\n @Input() buttons?: ButtonI[];\n}\n","<section class=\"module-brava module-spacer--bottom\">\n <div class=\"wrapper-big\">\n <div class=\"module-brava--wrapper\">\n <div class=\"module-brava--photo figure-content\">\n @if (img) {\n <figure class=\"figure-full\" [lazyBackground]=\"img\"></figure>\n }\n </div>\n @if (description) {\n <p class=\"module-brava--description\" [innerHTML]=\"description\"></p>\n } @if(buttons?.length) {\n <div class=\"module-brava--footer\">\n @for (btn of buttons; track $index) {\n <tent-button\n type=\"dark-box\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { GoogleMap, GoogleMapsModule } from '@angular/google-maps';\nimport { MarkerClusterer } from '@googlemaps/markerclusterer';\nimport { fromEvent, tap } from 'rxjs';\n\n@Component({\n selector: 'tent-module-google-maps',\n standalone: true,\n imports: [CommonModule, GoogleMapsModule],\n templateUrl: './module-google-maps.component.html',\n styleUrl: './module-google-maps.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModuleGoogleMapsComponent\n implements OnInit, AfterViewInit, OnChanges\n{\n @ViewChild('googleMap') googleMaps!: GoogleMap;\n @ViewChild('googleMap', { read: ElementRef })\n googleMapsElement!: ElementRef;\n @Input() markers?: GoogleMarker[];\n @Input() zoom = 6;\n @Input() markerImg?: string;\n\n existingScript?: boolean;\n\n private markersArray: google.maps.Marker[] = [];\n private customMarkersArray: google.maps.OverlayView[] = [];\n private markerCluster?: MarkerClusterer;\n\n //map config\n width!: number;\n map!: google.maps.Map;\n\n options: google.maps.MapOptions = {\n styles: [\n {\n elementType: 'geometry',\n stylers: [{ color: '#ebe3cd' }],\n },\n {\n elementType: 'labels.text.fill',\n stylers: [{ color: '#523735' }],\n },\n {\n elementType: 'labels.text.stroke',\n stylers: [{ color: '#f5f1e6' }],\n },\n {\n featureType: 'administrative',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#c9b2a6' }],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#dcd2be' }],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#ae9e90' }],\n },\n {\n featureType: 'landscape.natural',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#93817c' }],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry.fill',\n stylers: [{ color: '#a5b076' }],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#447530' }],\n },\n {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.arterial',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway.controlled_access',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway.controlled_access',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'transit.line',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'transit.line',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#8f7d77' }],\n },\n {\n featureType: 'transit.line',\n elementType: 'labels.text.stroke',\n stylers: [{ color: '#f0d0e4' }],\n },\n {\n featureType: 'transit.station',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'water',\n elementType: 'geometry.fill',\n stylers: [{ color: '#c5d0d1' }],\n },\n {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#c5d0d1' }],\n },\n ],\n };\n\n get centerMark(): GoogleMarker['position'] {\n return this.markers?.[0]?.position!;\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n fromEvent(window, 'resize')\n .pipe(\n tap(() => {\n this.width = (\n this.googleMapsElement?.nativeElement as HTMLElement\n ).clientWidth;\n })\n )\n .subscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes['markers']?.currentValue &&\n !changes['markers']?.firstChange\n ) {\n this.addCustomMarkers();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.googleMaps?.googleMap) {\n this.width = (\n this.googleMapsElement?.nativeElement as HTMLElement\n ).clientWidth;\n this.map = this.googleMaps?.googleMap;\n this.cdr.detectChanges();\n this.addCustomMarkers();\n }\n }\n\n addCustomMarkers() {\n this.clearMarkers();\n this.markers?.forEach((data) => {\n const marker = new google.maps.Marker({\n position: new google.maps.LatLng(\n data.position.lat,\n data.position.lng\n ),\n map: null,\n });\n\n this.markersArray.push(marker);\n\n const markerDiv = document.createElement('div');\n markerDiv.classList.add('custom-marker');\n\n const img = document.createElement('img');\n img.src = this.markerImg ?? '/assets/tent/img/marker_maps.svg';\n\n const labelDiv = document.createElement('div');\n labelDiv.classList.add('label');\n labelDiv.innerText = data.label;\n\n markerDiv.appendChild(img);\n markerDiv.appendChild(labelDiv);\n\n if (this.markers && this.markers?.length < 1) {\n markerDiv.addEventListener('click', () => {\n window.open(data.url, '_blank');\n });\n }\n\n const customMarker = new google.maps.OverlayView();\n\n customMarker.onAdd = function () {\n const panes = this.getPanes();\n panes?.overlayMouseTarget.appendChild(markerDiv);\n };\n\n customMarker.draw = function () {\n const projection = this.getProjection();\n const position = projection.fromLatLngToDivPixel(\n new google.maps.LatLng(data.position.lat, data.position.lng)\n );\n if (position) {\n markerDiv.style.left = `${position.x}px`;\n markerDiv.style.top = `${position.y}px`;\n }\n };\n\n customMarker.onRemove = function () {\n if (markerDiv.parentNode) {\n markerDiv.parentNode.removeChild(markerDiv);\n }\n };\n\n customMarker.setMap(this.map);\n this.customMarkersArray.push(customMarker);\n });\n\n this.markerCluster = new MarkerClusterer({\n map: this.map,\n markers: this.markersArray,\n renderer: {\n render: ({ count, position }) => {\n const div = document.createElement('div');\n div.textContent = count.toString();\n div.className = 'custom-cluster';\n return new google.maps.Marker({\n position,\n icon: {\n url: '/assets/tent/img/marker_maps-empty.svg',\n scaledSize: new google.maps.Size(53, 53),\n anchor: new google.maps.Point(26.5, 53),\n labelOrigin: new google.maps.Point(26.5, 26.5),\n },\n label: {\n text: count.toString(),\n color: '#fff',\n fontWeight: 'bold',\n fontSize: '16px',\n },\n });\n },\n },\n });\n\n google.maps.event.addListener(\n this.markerCluster,\n 'clusteringend',\n () => {\n this.customMarkersArray.forEach((customMarker, index) => {\n const isVisible =\n this.markersArray[index].getMap() !== null;\n customMarker.getMap() && customMarker.onRemove();\n if (isVisible) {\n customMarker.setMap(this.map);\n } else {\n customMarker.setMap(null);\n }\n });\n }\n );\n }\n\n private clearMarkers() {\n // Limpiar los marcadores estándar\n this.markersArray.forEach((marker) => marker.setMap(null));\n this.markersArray = [];\n\n // Limpiar los custom markers (OverlayView)\n this.customMarkersArray.forEach((customMarker) =>\n customMarker.setMap(null)\n );\n this.customMarkersArray = [];\n\n // Limpiar el cluster anterior\n if (this.markerCluster) {\n this.markerCluster.clearMarkers(); // Quitar los marcadores del cluster\n this.markerCluster = undefined; // Resetear el cluster\n }\n }\n}\nexport interface GoogleMarker {\n position: {\n lat: number;\n lng: number;\n };\n label: string;\n url: string;\n hotelId: number;\n}\n","@if (markers?.length) {\n <section class=\"google-maps wrapper-medium module-spacer--bottom\">\n <google-map\n #googleMap\n [options]=\"options\"\n [width]=\"width\"\n [center]=\"centerMark\"\n [zoom]=\"zoom\"\n >\n </google-map>\n </section>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\n\n@Component({\n selector: 'tent-module-search',\n standalone: true,\n imports: [CommonModule, ButtonComponent, DropdownComponent],\n templateUrl: './module-search.component.html',\n styleUrl: './module-search.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModuleSearchComponent implements OnInit {\n @Input() theme?: string;\n @Input() title?: string;\n @Input() placeholder?: string;\n @Input() hotels?: ModuleSearchHotel[];\n\n itemsToShow: ModuleSearchHotel[] = [];\n\n options: DropdownOption[] = [];\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n if (this.hotels) {\n for (let i = 0; i < this.hotels.length; i++) {\n this.options.push({\n code: i.toString(),\n name: this.hotels[i].title!,\n });\n }\n }\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n onSelect(option: DropdownOption): void {\n const selected = this.hotels?.find(\n (hotel) => hotel.title === option.name\n );\n this.itemsToShow = selected ? [selected] : [];\n }\n\n search(text: any): void {\n this.itemsToShow = [];\n\n this.hotels?.forEach((hotel) => {\n if (\n (hotel.title\n ?.toLowerCase()\n .includes(text.target.value.toLowerCase()) ||\n hotel.address\n ?.toLowerCase()\n .includes(text.target.value.toLowerCase())) &&\n text?.target.value !== ''\n ) {\n this.itemsToShow.push(hotel);\n }\n });\n }\n}\n\nexport interface ModuleSearchHotel {\n img?: string;\n title?: string;\n address?: string;\n contactLinks?: ButtonI[];\n links?: ButtonI[];\n footerTitle?: string;\n footerDescription?: string;\n}\n","<div class=\"module-spacer--bottom\">\n <section\n class=\"module-search wrapper-medium\"\n [ngClass]=\"{ 'module-search--laundry': theme === 'theme-laundry' }\"\n >\n <div class=\"module-search--header\">\n @if (title) {\n <p class=\"module-search--title color--brown\">\n {{ title }}\n </p>\n } @if (theme !== 'theme-laundry') {\n <div class=\"module-search--input--wrapper\">\n <input\n type=\"text\"\n class=\"module-search--input\"\n [placeholder]=\"placeholder\"\n (input)=\"search($event)\"\n />\n <span\n class=\"module-search--input--icon\"\n class=\"icon-search\"\n ></span>\n </div>\n } @else {\n <tent-dropdown\n [placeholder]=\"placeholder\"\n [options]=\"options\"\n theme=\"theme-laundry\"\n (change)=\"onSelect($event)\"\n ></tent-dropdown>\n }\n </div>\n\n @if (itemsToShow.length) {\n <div class=\"module-search--content\">\n @for (item of itemsToShow; track $index) {\n <div class=\"module-search--item\">\n @if (item.img) {\n <div class=\"module-search--item--image--wrapper\">\n <figure\n class=\"figure-full module-search--item--image\"\n [style]=\"getImage(item.img)\"\n ></figure>\n </div>\n }\n <div class=\"module-search--item--content\">\n @if (item.title || item.address) {\n <div class=\"module-search--item--header\">\n @if (item.title) {\n <p class=\"module-search--item--title color--brown\">\n {{ item.title }}\n </p>\n } @if (item.address) {\n <p\n class=\"module-search--item--address\"\n [innerHTML]=\"item.address\"\n ></p>\n }\n </div>\n } @if (theme !== 'theme-laundry') { @if (item.contactLinks)\n {\n <div class=\"module-search--item--links\">\n @for (link of item.contactLinks; track $index) {\n <a\n class=\"link\"\n [href]=\"link.url\"\n target=\"_blank\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n } @for (link of item.links; track $index) {\n <tent-button\n type=\"dark-link\"\n [label]=\"link.label\"\n [url]=\"link.url\"\n ></tent-button>\n }\n </div>\n } } @else {\n\n <img\n class=\"module-search--icon-map\"\n src=\"/assets/tent/img/icon-map-palma.svg\"\n loading=\"lazy\"\n width=\"130\"\n height=\"130\"\n alt=\"\"\n />\n @if (item.footerTitle || item.footerDescription) {\n <div class=\"module-search--footer\">\n @if (item.footerTitle) {\n <p class=\"module-search--footer--title\">\n {{ item.footerTitle }}\n </p>\n } @if (item.footerDescription) {\n <p class=\"module-search--footer--description\">\n {{ item.footerDescription }}\n </p>\n }\n </div>\n } }\n </div>\n </div>\n\n }\n </div>\n }\n </section>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DialogModule } from 'primeng/dialog';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\nimport { GuestsPopupI } from '../../../interfaces/core/guests-popup.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { DatepickerComponent } from '../../atomic/datepicker/datepicker.component';\nimport { DropdownComponent } from '../../atomic/dropdown/dropdown.component';\nimport {\n GuestsPopupComponent,\n GuestsValue,\n} from '../guests-popup/guests-popup.component';\n\n@Component({\n selector: 'tent-motor',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n DatepickerComponent,\n DropdownComponent,\n GuestsPopupComponent,\n FormsModule,\n ReactiveFormsModule,\n DialogModule,\n GuestsPopupComponent,\n MatIconModule,\n BadgeComponent,\n ],\n templateUrl: './motor.component.html',\n styleUrl: './motor.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MotorComponent implements OnDestroy, AfterViewInit, OnInit {\n @ViewChild('wrapper', { read: ElementRef }) wrapper!: ElementRef;\n @Input() modal = false;\n @Input() square = false;\n @Input() mirai = true;\n @Input({ required: true }) lang!: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() hotelId?: string | number;\n @Input() advantages?: BadgeI;\n @Input() date!: motorDate;\n @Input() dropdown!: DropdownI;\n @Input() promoInput!: InputI;\n @Input() guestsInput!: InputI;\n @Input() btnSubmit!: ButtonI;\n @Input() guestsPopup!: GuestsPopupI;\n @Input() isHome?: boolean;\n\n @Output() submit = new EventEmitter<MotorValue>();\n @Output() close = new EventEmitter<void>();\n @Output() advantagesClick = new EventEmitter<void>();\n\n motorForm!: FormGroup;\n dialogVisible = false;\n dialogReady = false;\n guestsValue?: GuestsValue;\n\n isComponent?: boolean = false;\n\n constructor(private readonly formBuilder: FormBuilder) {}\n\n ngOnInit(): void {\n if (!this.mirai) {\n this.motorForm = this.formBuilder.group({\n hotel: [],\n date: [],\n guests: [],\n promo: [],\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.isComponent = (\n this.wrapper.nativeElement as HTMLElement\n ).parentElement?.classList.contains('component');\n\n if (this.modal && !this.isComponent) {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: hidden');\n\n (\n this.wrapper.nativeElement as HTMLElement\n ).parentElement?.classList.add('modal');\n }\n if (this.square) {\n this.initMiraiMotor();\n }\n }\n\n private initMiraiMotor(): void {\n const tryInit = () => {\n if ((window as any).Mirai?.core) {\n (window as any).Mirai.core();\n } else {\n setTimeout(tryInit, 150);\n }\n };\n\n tryInit();\n }\n\n btnClicked(): void {\n if (!this.guestsValue) {\n this.guestsValue = {\n totalGuests: 1,\n adults: 1,\n kids: 0,\n babys: 0,\n kidsAges: [],\n };\n }\n this.submit.emit({\n formValue: this.motorForm.value,\n guestValue: this.guestsValue,\n url: this.btnSubmit.url!,\n });\n\n if (this.modal) {\n this.closeDialog();\n }\n }\n\n changeInput(event: any): void {\n this.promoInput.value = event.target.value;\n }\n\n togglePopup(): void {\n this.dialogVisible = !this.dialogVisible;\n\n if (!this.modal) {\n this.close.emit();\n }\n }\n\n closeDialog(): void {\n this.toggleMotorDialogReady();\n }\n\n ngOnDestroy(): void {\n if (this.modal && !this.isComponent) {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: unset');\n }\n }\n\n closeModal(): void {\n this.close.emit();\n }\n\n toggleMotorDialogReady(): void {\n this.dialogReady = !this.dialogReady;\n }\n\n guestsChange(guests: GuestsValue) {\n this.guestsInput.value =\n guests.totalGuests < 10\n ? '0' + guests.totalGuests.toString()\n : guests.totalGuests.toString();\n\n this.guestsValue = guests;\n\n this.motorForm.get('guests')?.setValue(this.guestsInput.value);\n\n this.togglePopup();\n }\n}\n\nexport interface motorInput {\n title: string;\n icon: string;\n placeholder?: string;\n value: string;\n}\n\nexport interface motorDate {\n value: [Date, Date];\n title: string;\n icon: string;\n}\n\nexport interface MotorValue {\n formValue: any;\n guestValue: GuestsValue;\n url: string;\n}\n","<div\n #wrapper\n class=\"motor--wrapper\"\n [ngClass]=\"{\n 'motor--wrapper--modal': modal,\n }\"\n>\n @if (modal) {\n <div class=\"motor--close-button\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n (btnClick)=\"closeModal()\"\n name=\"close\"\n ></tent-button>\n </div>\n }\n @if (mirai) {\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n @if (!isHome) {\n <div\n data-type=\"chain\"\n data-currency=\"EUR\"\n [attr.data-locale]=\"lang\"\n [attr.data-hotel]=\"hotelId\"\n data-mirai-id=\"502045\"\n ></div>\n } @else {\n <div\n data-type=\"chain\"\n data-currency=\"EUR\"\n [attr.data-locale]=\"lang\"\n data-mirai-id=\"502045\"\n data-hotel=\"none\"\n ></div>\n }\n @if (square) {\n <div class=\"mi-be-square\">\n <div data-mirai-component=\"finder\" data-layout=\"column\"></div>\n </div>\n <span class=\"advantages--noBadge\" (click)=\"advantagesClick.emit()\">\n {{ advantages?.label }}\n </span>\n } @else {\n <ng-container *ngTemplateOutlet=\"advantagesRef\"></ng-container>\n\n <div data-mirai-component=\"finder\"></div>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n @if (!isComponent && !modal) {\n <ng-container *ngTemplateOutlet=\"advantagesRef\"></ng-container>\n }\n <form\n class=\"motor flex-row flex-row--center\"\n [formGroup]=\"motorForm\"\n [ngClass]=\"{ 'motor--modal': modal }\"\n >\n <tent-dropdown\n [options]=\"dropdown.options\"\n [placeholder]=\"dropdown.placeholder\"\n [sameTitlePlaceholder]=\"true\"\n formControlName=\"hotel\"\n [staticPosition]=\"false\"\n ></tent-dropdown>\n <tent-datepicker\n [placeholder]=\"date.title\"\n [icon]=\"date.icon\"\n [value]=\"date.value\"\n [sameTitlePlaceholder]=\"true\"\n formControlName=\"date\"\n ></tent-datepicker>\n <div\n class=\"motor--input--wrapper flex-row flex-row--between\"\n (click)=\"togglePopup()\"\n >\n <div class=\"motor--input--content\">\n @if (guestsInput.value) {\n <p class=\"motor--input--title\">\n {{ guestsInput.placeholder }}\n </p>\n }\n <input\n [disabled]=\"true\"\n class=\"motor--input\"\n type=\"text\"\n [value]=\"guestsInput.value\"\n [placeholder]=\"guestsInput.placeholder\"\n formControlName=\"guests\"\n />\n </div>\n\n <span\n class=\"motor--input--icon\"\n [ngClass]=\"guestsInput.icon\"\n ></span>\n </div>\n\n @if (!modal) {\n <p-dialog\n class=\"motor--dialog\"\n [(visible)]=\"dialogVisible\"\n (onShow)=\"toggleMotorDialogReady()\"\n (onHide)=\"toggleMotorDialogReady()\"\n >\n <tent-guests-popup\n [adultsDropdown]=\"guestsPopup.adultsDropdown\"\n [kidsDropdown]=\"guestsPopup.kidsDropdown\"\n [ageDropdown]=\"guestsPopup.ageDropdown\"\n [babysDropdown]=\"guestsPopup.babysDropdown\"\n [title]=\"guestsPopup.title\"\n [kidLabel]=\"guestsPopup.kidLabel\"\n [btnApply]=\"guestsPopup.btnApply\"\n (appliedData)=\"guestsChange($event)\"\n ></tent-guests-popup>\n </p-dialog>\n } @else if (dialogVisible) {\n <tent-guests-popup\n [adultsDropdown]=\"guestsPopup.adultsDropdown\"\n [kidsDropdown]=\"guestsPopup.kidsDropdown\"\n [ageDropdown]=\"guestsPopup.ageDropdown\"\n [babysDropdown]=\"guestsPopup.babysDropdown\"\n [title]=\"guestsPopup.title\"\n [kidLabel]=\"guestsPopup.kidLabel\"\n [btnApply]=\"guestsPopup.btnApply\"\n (appliedData)=\"guestsChange($event)\"\n ></tent-guests-popup>\n }\n\n <div\n class=\"motor--input--wrapper flex-row flex-row--between\"\n [ngClass]=\"{ 'motor--input--wrapper--left': !modal }\"\n (click)=\"promoInputRef.focus()\"\n >\n <div class=\"motor--input--content\">\n @if (promoInput.value) {\n <p class=\"motor--input--title\">\n {{ promoInput.placeholder }}\n </p>\n }\n <input\n #promoInputRef\n class=\"motor--input\"\n type=\"text\"\n [value]=\"promoInput.value\"\n [placeholder]=\"promoInput.placeholder\"\n formControlName=\"promo\"\n (input)=\"changeInput($event)\"\n />\n </div>\n\n <span\n class=\"motor--input--icon\"\n [ngClass]=\"promoInput.icon\"\n ></span>\n </div>\n\n <div class=\"motor--dark-btn-wrapper\">\n <tent-button\n [ngClass]=\"{ 'motor--dark-btn--modal': modal }\"\n class=\"motor--dark-btn\"\n type=\"dark-box-filled\"\n [label]=\"btnSubmit.label\"\n boxWidth=\"200px\"\n (btnClick)=\"btnClicked()\"\n [name]=\"btnSubmit.label\"\n ></tent-button>\n </div>\n </form>\n @if (modal && advantages) {\n <span class=\"advantages--noBadge\" (click)=\"advantagesClick.emit()\">\n {{ advantages.label }}\n </span>\n }\n }\n</div>\n\n<ng-template #header>\n @if ((title || subtitle) && modal) {\n <header class=\"motor--header\">\n @if (title) {\n <h3 class=\"motor--title color--brown\">\n {{ title }}\n </h3>\n }\n @if (subtitle) {\n <h3 class=\"motor--title color--camel\">\n {{ subtitle }}\n </h3>\n }\n </header>\n }\n</ng-template>\n\n<ng-template #advantagesRef>\n @if (advantages) {\n <tent-badge\n class=\"advantages\"\n [label]=\"advantages.label\"\n [icon]=\"advantages.icon\"\n [rounded]=\"true\"\n (click)=\"advantagesClick.emit()\"\n ></tent-badge>\n }\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { fromEvent, tap } from 'rxjs';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tent-offer-banner',\n standalone: true,\n imports: [\n CommonModule,\n BadgeComponent,\n ButtonComponent,\n RouterModule,\n CurrencyPipe,\n ],\n templateUrl: './offer-banner.component.html',\n styleUrl: './offer-banner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferBannerComponent implements AfterViewInit {\n @ViewChild('close', { read: ElementRef }) closeBtn!: ElementRef;\n @ViewChild('closeBanner', { read: ElementRef }) closeBanner!: ElementRef;\n @Input() badge?: BadgeI;\n @Input() btnClose?: ButtonI;\n @Input() mainLabel?: string;\n @Input() priceLabel?: string;\n @Input() closeLabel?: string;\n @Input() price?: string;\n @Input() currency?: string;\n @Input() btnInfo?: ButtonI;\n @Input() img?: ImageI;\n @Input() desktop?: boolean;\n @Input() left?: boolean;\n\n @Output() closeClick = new EventEmitter<void>();\n\n constructor() {}\n\n ngAfterViewInit(): void {\n fromEvent(this.closeBtn.nativeElement, 'mouseenter')\n .pipe(\n tap(() => {\n (\n this.closeBanner.nativeElement as HTMLElement\n ).classList.add(\n this.left\n ? 'offer-banner--close--container--displayed--left'\n : 'offer-banner--close--container--displayed'\n );\n if (this.desktop) {\n (\n this.closeBtn.nativeElement as HTMLElement\n ).style.opacity = '0';\n }\n })\n )\n .subscribe();\n fromEvent(\n document.getElementsByTagName('tent-offer-banner')[0],\n 'mouseleave'\n )\n .pipe(\n tap(() => {\n (\n this.closeBanner.nativeElement as HTMLElement\n ).classList.remove(\n this.left\n ? 'offer-banner--close--container--displayed--left'\n : 'offer-banner--close--container--displayed'\n );\n (this.closeBtn.nativeElement as HTMLElement).style.opacity =\n '1';\n })\n )\n .subscribe();\n }\n\n closeModal(): void {\n this.closeClick.emit();\n }\n\n bannerClicked(event: Event): void {\n event.preventDefault();\n }\n}\n","<div\n #closeBanner\n class=\"offer-banner--close--container\"\n [ngClass]=\"{ 'offer-banner--close--container--left': left }\"\n (click)=\"closeClick.emit()\"\n>\n {{ closeLabel }}\n</div>\n\n<div class=\"offer-banner\" [ngClass]=\"{ 'offer-banner--left': left }\">\n @if (badge) {\n <tent-badge\n class=\"offer-banner--badge\"\n [rounded]=\"true\"\n [label]=\"badge.label\"\n ></tent-badge>\n\n } @if (btnClose) {\n <tent-button\n #close\n class=\"offer-banner--close\"\n type=\"dark-circle\"\n [icon]=\"btnClose.icon\"\n (btnClick)=\"closeClick.emit()\"\n name=\"close\"\n ></tent-button>\n }\n <a\n [attr.aria-label]=\"mainLabel\"\n class=\"offer-banner--container\"\n [href]=\"btnInfo?.url\"\n [routerLink]=\"[btnInfo?.url]\"\n (click)=\"bannerClicked($event)\"\n >\n <div class=\"flex-col flex-col--between offer-banner--content\">\n @if (mainLabel) {\n <p class=\"offer-banner--title\">\n {{ mainLabel }}\n </p>\n }\n <div class=\"flex-row flex-row--between\">\n @if (price || priceLabel) {\n <div class=\"flex-row offer-banner--price\">\n @if (priceLabel) {\n <span class=\"color--white offer-banner--sublabel\">\n {{ priceLabel }}\n </span>\n } @if (price) {\n <span class=\"color--white offer-banner--offer\">\n {{ price }}\n @if (currency) {\n {{ currency | currencySymbol }}\n }\n </span>\n }\n </div>\n } @if (btnInfo) {\n <tent-button\n class=\"offer-banner--btn-info offer-banner--btn-info--desktop\"\n type=\"dark-box\"\n [label]=\"btnInfo.label\"\n [url]=\"btnInfo.url\"\n [linkType]=\"btnInfo.linkType!\"\n boxWidth=\"154px\"\n ></tent-button>\n <tent-button\n class=\"offer-banner--btn-info offer-banner--btn-info--mobile\"\n type=\"dark-box\"\n [label]=\"btnInfo.label\"\n [url]=\"btnInfo.url\"\n [linkType]=\"btnInfo.linkType!\"\n boxWidth=\"115px\"\n ></tent-button>\n }\n </div>\n </div>\n @if (img?.src) {\n <img\n [src]=\"img?.src\"\n [alt]=\"img?.alt\"\n class=\"offer-banner--image\"\n loading=\"lazy\"\n width=\"150\"\n height=\"100\"\n />\n }\n </a>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\n@Component({\n selector: 'tent-offer-details',\n standalone: true,\n imports: [CommonModule, ButtonComponent, BadgeComponent, CurrencyPipe],\n templateUrl: './offer-details.component.html',\n styleUrl: './offer-details.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferDetailsComponent {\n @Input() image?: string;\n @Input() badge?: BadgeI;\n @Input() innerBadge?: BadgeI;\n @Input() title?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n @Input() linkBack?: ButtonI;\n @Input() conditionsTitle?: string;\n @Input() conditions?: string[];\n @Input() priceLabel?: string;\n @Input() price?: string | number;\n @Input() currency?: string;\n @Input() button?: ButtonI;\n\n @Output() backClick = new EventEmitter();\n\n conditionActive = false;\n collapsed = true;\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n\n toggleConditions(): void {\n this.conditionActive = !this.conditionActive;\n }\n}\n","<section class=\"offer-detail module-spacer--bottom\">\n <div class=\"offer-detail--content wrapper-big\">\n <div class=\"offer-detail--picture\">\n @if (image) {\n <div class=\"offer-detail--photo figure-content\">\n <figure class=\"figure-full\" [style]=\"getImage\"></figure>\n </div>\n } @if (badge) {\n <tent-badge\n class=\"offer-detail--picture--badget\"\n [rounded]=\"true\"\n [label]=\"badge.label\"\n ></tent-badge>\n }\n </div>\n <div class=\"offer-detail--inner\">\n @if (title) {\n <h2 class=\"offer-detail--tit title--60 color--brown\">\n {{ title }}\n </h2>\n } @if (innerBadge) {\n <tent-badge\n class=\"offer-detail--inner--badget\"\n [rounded]=\"true\"\n [label]=\"innerBadge.label\"\n ></tent-badge>\n }\n\n <div\n class=\"offer-detail--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @if (description) {\n <p class=\"text\" [innerHTML]=\"description\"></p>\n } @if (additionalDescription) {\n <p\n class=\"text text-more\"\n [innerHTML]=\"additionalDescription\"\n ></p>\n } @if (additionalDescription && links && links.length) {\n <div class=\"offer-detail--info--btns\">\n @for (link of links; track $index; let first = $first) { @if\n ($index < 2) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"link.label\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n <div\n class=\"offer-detail--conditions\"\n [ngClass]=\"!conditionActive ? 'close' : 'open'\"\n >\n <div class=\"offer-detail--conditions--box\">\n @if (conditionsTitle) {\n <h3\n class=\"offer-detail--conditions--subtit subtitle color--brown-70\"\n >\n {{ conditionsTitle }}\n </h3>\n } @if (conditions && conditions.length) {\n <ul class=\"offer-detail--conditions--list\">\n @for (condition of conditions; track $index) {\n <li class=\"offer-detail--conditions--item\">\n <p class=\"text\">\n {{ condition }}\n </p>\n </li>\n }\n </ul>\n }\n </div>\n\n @if (conditions && conditions.length && links) {\n <div class=\"offer-detail--conditions--btns\">\n @for (link of links; track $index; let last = $last) { @if\n ($index > 1) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': !last,\n 'btn-minus': last\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleConditions()\"\n [name]=\"link.label\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n\n <div class=\"offer-detail--prices\">\n @if (price) {\n <div class=\"offer-detail--prices--info\">\n <div class=\"offer-detail--prices--price\">\n @if (priceLabel) {\n <span class=\"title--18 color--brown\">{{\n priceLabel\n }}</span>\n }\n <p class=\"title--42 color--brown\">\n {{ price }}\n @if (currency) {\n <span class=\"title--32\">{{\n currency | currencySymbol\n }}</span>\n }\n </p>\n </div>\n </div>\n } @if (button) {\n <div class=\"offer-detail--prices--btns\">\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"button.label\"\n [name]=\"button.label\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType\"\n ></tent-button>\n </div>\n }\n </div>\n @if (linkBack) {\n <tent-button\n class=\"offer-detail--link-back\"\n type=\"dark-link\"\n icon=\"icon-signal-left\"\n [label]=\"linkBack.label\"\n [name]=\"linkBack.label\"\n [url]=\"linkBack.url\"\n [linkType]=\"linkBack.linkType\"\n (btnClick)=\"backClick.emit()\"\n ></tent-button>\n }\n </div>\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-offer',\n standalone: true,\n imports: [\n ButtonComponent,\n BadgeComponent,\n RouterModule,\n CurrencyPipe,\n RouterModule,\n ],\n templateUrl: './offer.component.html',\n styleUrl: './offer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferComponent {\n @Input() image!: string;\n @Input() id!: string | number;\n @Input() title!: string;\n @Input() price!: string;\n @Input() priceLabel!: string;\n @Input() currency!: string;\n @Input() badge?: BadgeI;\n @Input() badgePrice?: BadgeI;\n @Input() buttons?: ButtonI[];\n\n @Output() btnClicked = new EventEmitter();\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n offerClicked(event: Event): void {\n event.preventDefault();\n this.btnClicked.emit(this.buttons?.[0].url);\n }\n}\n","<section class=\"offer-box\">\n <div class=\"offer-box--content\">\n @if(badge) {\n <tent-badge\n class=\"offer-box--badgetHotel\"\n [rounded]=\"true\"\n [label]=\"badge.label\"\n ></tent-badge>\n } @if (image) {\n <a\n [attr.aria-label]=\"title\"\n [href]=\"buttons ? buttons?.[0]?.url : null\"\n [routerLink]=\"[buttons?.[0]?.url]\"\n (click)=\"offerClicked($event)\"\n class=\"offer-box--photo figure-content\"\n >\n <figure class=\"figure-full\" [style]=\"getImage\"></figure>\n </a>\n\n }\n\n <div class=\"offer-box--head\">\n <div class=\"offer-box--headinner\">\n <div class=\"offer-box--infocontent\">\n @if(badgePrice) {\n <tent-badge\n class=\"offer-box--badgetPrice\"\n [rounded]=\"true\"\n [label]=\"badgePrice.label\"\n ></tent-badge>\n }\n <div class=\"offer-box--info\">\n @if (title) {\n <h3 class=\"title--30 color--brown\">\n {{ title }}\n </h3>\n } @if (price && priceLabel && currency) {\n <div class=\"offer-box--price\">\n <span class=\"title--18 color--camel\">{{\n priceLabel\n }}</span>\n <p class=\"title--42 color--brown\">\n {{ price\n }}<span class=\"title--32\">{{\n currency | currencySymbol\n }}</span>\n </p>\n </div>\n }\n </div>\n @if (buttons?.length) {\n <div class=\"offer-box--btns\">\n @for (btn of buttons; track $index) {\n <tent-button\n [type]=\"btn.type!\"\n [icon]=\"btn.icon\"\n [iconPosition]=\"btn.iconPosition\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n boxWidth=\"auto\"\n (btnClick)=\"\n $index === 0 ? btnClicked.emit(btn.url) : ''\n \"\n ></tent-button>\n\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { OfferComponent } from '../offer/offer.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { OfferI } from '../../../interfaces/core/offer.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-offer-list',\n standalone: true,\n imports: [CommonModule, ButtonComponent, OfferComponent],\n templateUrl: './offer-list.component.html',\n styleUrl: './offer-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferListComponent {\n @Input() items?: OfferI[];\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n\n @Output() offerClick = new EventEmitter();\n\n collapsed = true;\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n","<section class=\"offer-list module-spacer--bottom\">\n <div class=\"offer-list--content wrapper-big\">\n <div class=\"offer-list--inner\">\n @if (items && items.length) { @for (offer of items; track $index) {\n <div class=\"offer-list--item\">\n <tent-offer\n [id]=\"offer.id\"\n [badge]=\"offer.badge\"\n [badgePrice]=\"offer.badgePrice\"\n [title]=\"offer.title\"\n [buttons]=\"offer.buttons\"\n [image]=\"offer.image\"\n [price]=\"offer.price\"\n [priceLabel]=\"offer.priceLabel\"\n [currency]=\"offer.currency\"\n (btnClicked)=\"\n offerClick.emit({ id: offer.id, url: $event })\n \"\n ></tent-offer>\n </div>\n } }\n </div>\n </div>\n</section>\n<section class=\"offer-ours module-spacer--bottom\">\n <div class=\"offer-ours--content wrapper-big\">\n <div class=\"offer-ours--inner\">\n <div class=\"offer-ours--box bg-beige\">\n @if (title || titleDark) {\n <h3 class=\"offer-ours--title title--80 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h3>\n\n }\n <div\n class=\"offer-ours--des\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n } @if (additionalDescription) {\n <p class=\"text text-more\">\n {{ additionalDescription }}\n </p>\n } @if (additionalDescription && links && links.length) {\n <div class=\"offer-ours--btns\">\n @for (link of links; track $index; let first = $first) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"link.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { OfferI } from '../../../interfaces/core/offer.interface';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { OfferComponent } from '../offer/offer.component';\n@Component({\n selector: 'tent-offer-slider',\n standalone: true,\n imports: [CarouselModule, OfferComponent, ButtonComponent, CurrencyPipe],\n templateUrl: './offer-slider.component.html',\n styleUrl: './offer-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferSliderComponent implements OnInit {\n @Input() offers!: OfferI[];\n @Input() title!: string;\n @Input() titleDark!: string;\n @Input() iconControlLeft = 'icon-pointer-left';\n @Input() iconControlRight = 'icon-pointer-right';\n @Input() link?: ButtonI;\n @Input() defaultImage?: string;\n @Input() defaultLabel?: string;\n\n @Output() offerClick = new EventEmitter<OfferData>();\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 40,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 540: {\n items: 1,\n },\n 768: {\n items: 1,\n },\n\n 1000: {\n items: 1,\n },\n 1024: {\n items: 1,\n },\n\n 1280: {\n items: 2,\n },\n\n 1350: {\n items: 2,\n },\n },\n nav: true,\n };\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.defaultImage})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n\n if (this.offers.length === 1) {\n this.sliderOptions = {\n ...this.sliderOptions,\n loop: false,\n autoplay: false,\n nav: false,\n };\n }\n }\n\n offerClicked(id: number | string, url: string): void {\n this.offerClick.emit({ id, url });\n }\n}\n\nexport interface OfferData {\n id: number | string;\n url: string;\n}\n","<section class=\"offer-slider module-spacer--bottom\">\n <div class=\"offer-slider--content wrapper-big\">\n <div class=\"offer-slider--head\">\n @if (titleDark) {\n <h3 class=\"offer-slider--title title--80 color--brown\">\n {{ titleDark }} @if (title) {\n\n <span class=\"color--camel\">{{ title }}</span\n >}\n </h3>\n } @if (link) {\n <tent-button\n type=\"dark-link\"\n [icon]=\"link.icon\"\n [iconPosition]=\"link.iconPosition\"\n [label]=\"link.label\"\n [url]=\"link.url\"\n [linkType]=\"link.linkType!\"\n ></tent-button>\n\n }\n </div>\n <div class=\"offer-slider--inner\">\n <owl-carousel-o\n class=\"offer-slider--slider slider-circle--center slider-circle--center--centerFull\"\n [options]=\"sliderOptions\"\n >\n @for (offer of offers; track $index) {\n <ng-template carouselSlide>\n <tent-offer\n [id]=\"offer.id\"\n [badge]=\"offer.badge\"\n [badgePrice]=\"offer.badgePrice\"\n [title]=\"offer.title\"\n [buttons]=\"offer.buttons\"\n [image]=\"offer.image\"\n [price]=\"offer.price\"\n [priceLabel]=\"offer.priceLabel\"\n [currency]=\"offer.currency | currencySymbol\"\n (btnClicked)=\"offerClicked(offer.id, $event)\"\n ></tent-offer>\n </ng-template>\n } @if(offers.length === 1 && defaultImage) {\n <ng-template carouselSlide>\n <div class=\"offer-slider--photo figure-content\">\n <figure class=\"figure-full\" [style]=\"getImage\"></figure>\n @if (defaultLabel) {\n <p\n class=\"offer-slider--photo--text\"\n [innerHTML]=\"defaultLabel\"\n ></p>\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\n\n@Component({\n selector: 'tent-registration',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n MatCheckboxModule,\n DropdownComponent,\n ],\n templateUrl: './registration.component.html',\n styleUrl: './registration.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RegistrationComponent {\n tabs = ['login', 'recuperar', 'registrarse'];\n\n selected = 'registrarse';\n\n days: DropdownOption[] = [\n {\n name: '01',\n code: '1',\n },\n {\n name: '02',\n code: '2',\n },\n {\n name: '03',\n code: '3',\n },\n {\n name: '04',\n code: '4',\n },\n {\n name: '05',\n code: '5',\n },\n {\n name: '06',\n code: '6',\n },\n {\n name: '07',\n code: '7',\n },\n {\n name: '08',\n code: '8',\n },\n {\n name: '09',\n code: '9',\n },\n {\n name: '10',\n code: '10',\n },\n {\n name: '11',\n code: '11',\n },\n {\n name: '12',\n code: '12',\n },\n {\n name: '13',\n code: '13',\n },\n {\n name: '14',\n code: '14',\n },\n {\n name: '15',\n code: '15',\n },\n {\n name: '16',\n code: '16',\n },\n {\n name: '17',\n code: '17',\n },\n {\n name: '18',\n code: '18',\n },\n {\n name: '19',\n code: '19',\n },\n {\n name: '20',\n code: '20',\n },\n {\n name: '21',\n code: '21',\n },\n {\n name: '22',\n code: '22',\n },\n {\n name: '23',\n code: '23',\n },\n {\n name: '24',\n code: '24',\n },\n {\n name: '25',\n code: '25',\n },\n {\n name: '26',\n code: '26',\n },\n {\n name: '27',\n code: '27',\n },\n {\n name: '28',\n code: '28',\n },\n {\n name: '29',\n code: '29',\n },\n {\n name: '30',\n code: '30',\n },\n {\n name: '31',\n code: '31',\n },\n ];\n\n months: DropdownOption[] = [\n {\n name: 'enero',\n code: '1',\n },\n {\n name: 'febrero',\n code: '2',\n },\n {\n name: 'marzo',\n code: '3',\n },\n {\n name: 'abril',\n code: '4',\n },\n {\n name: 'mayo',\n code: '5',\n },\n {\n name: 'junio',\n code: '6',\n },\n {\n name: 'julio',\n code: '7',\n },\n {\n name: 'agosto',\n code: '8',\n },\n {\n name: 'septiembre',\n code: '9',\n },\n {\n name: 'octubre',\n code: '10',\n },\n {\n name: 'noviembre',\n code: '11',\n },\n {\n name: 'diciembre',\n code: '12',\n },\n ];\n years: DropdownOption[] = [\n {\n name: '2024',\n code: '2024',\n },\n {\n name: '2023',\n code: '2023',\n },\n {\n name: '2022',\n code: '2022',\n },\n {\n name: '2021',\n code: '2021',\n },\n {\n name: '2020',\n code: '2020',\n },\n {\n name: '2019',\n code: '2019',\n },\n {\n name: '2018',\n code: '2018',\n },\n {\n name: '2017',\n code: '2017',\n },\n {\n name: '2016',\n code: '2016',\n },\n {\n name: '2015',\n code: '2015',\n },\n {\n name: '2014',\n code: '2014',\n },\n {\n name: '2013',\n code: '2013',\n },\n {\n name: '2012',\n code: '2012',\n },\n {\n name: '2011',\n code: '2011',\n },\n {\n name: '2010',\n code: '2010',\n },\n {\n name: '2009',\n code: '2009',\n },\n {\n name: '2008',\n code: '2008',\n },\n {\n name: '2007',\n code: '2007',\n },\n {\n name: '2006',\n code: '2006',\n },\n {\n name: '2005',\n code: '2005',\n },\n {\n name: '2004',\n code: '2004',\n },\n {\n name: '2003',\n code: '2003',\n },\n {\n name: '2002',\n code: '2002',\n },\n {\n name: '2001',\n code: '2001',\n },\n {\n name: '2000',\n code: '2000',\n },\n {\n name: '1999',\n code: '1999',\n },\n {\n name: '1998',\n code: '1998',\n },\n {\n name: '1997',\n code: '1997',\n },\n {\n name: '1996',\n code: '1996',\n },\n {\n name: '1995',\n code: '1995',\n },\n ];\n\n @Output() tabClick = new EventEmitter<string>();\n\n selectTab(tab: string): void {\n this.selected = tab;\n this.tabClick.emit(tab);\n\n if (tab === 'registrarse') {\n }\n }\n}\n","<div class=\"registration\">\n <div>\n <div class=\"registration--main-wrapper\">\n <div class=\"registration--main-content flex-col flex-col--center\">\n <h3 class=\"registration--title color--brown\">registrarse</h3>\n\n <form class=\"registration--form\">\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n nombre\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"text\"\n placeholder=\"...\"\n />\n <span\n class=\"registration--input--icon icon-user\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n apellidos\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"text\"\n placeholder=\"...\"\n />\n <span\n class=\"registration--input--icon icon-user\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n email\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"email\"\n placeholder=\"@...\"\n />\n <span\n class=\"registration--input--icon icon-envelope\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n repetir email\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"email\"\n placeholder=\"@...\"\n />\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">teléfono</p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"text\"\n placeholder=\"...\"\n />\n <span\n class=\"registration--input--icon icon-phone\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n fecha de nacimiento\n </p>\n <div class=\"registration--date\">\n <tent-dropdown\n class=\"registration--dropdown registration--dropdown--days\"\n [options]=\"days\"\n [value]=\"days[0]\"\n ></tent-dropdown>\n <tent-dropdown\n class=\"registration--dropdown registration--dropdown--months\"\n [options]=\"months\"\n [value]=\"months[0]\"\n ></tent-dropdown>\n <tent-dropdown\n class=\"registration--dropdown registration--dropdown--years\"\n [options]=\"years\"\n [value]=\"years[0]\"\n ></tent-dropdown>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n contraseña\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"password\"\n placeholder=\"mínimo 6 carácteres\"\n />\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n repetir contraseña\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"password\"\n placeholder=\"...\"\n />\n </div>\n </div>\n\n <div class=\"flex-col\">\n <div class=\"registration--checkbox--wrapper\">\n <mat-checkbox\n class=\"registration--checkbox\"\n ></mat-checkbox>\n <span class=\"registration--conditions color--brown\"\n >he leído y\n <a\n class=\"registration--conditions--link color--brown\"\n href=\"\"\n >\n acepto el aviso</a\n >\n legal y la\n <a\n class=\"registration--conditions--link color--brown\"\n href=\"\"\n >\n política de privacidad\n </a>\n </span>\n </div>\n <span class=\"registration--required--text\">\n <span class=\"registration--input--required\"></span>\n campos obligatorios\n </span>\n </div>\n\n <tent-button\n class=\"registration--submit\"\n type=\"dark-box-filled\"\n boxWidth=\"240px\"\n label=\"acceder\"\n name=\"acceder\"\n ></tent-button>\n </form>\n </div>\n </div>\n\n <div class=\"registration--submenu flex-row flex-row--center\">\n <span\n class=\"registration--tab\"\n (click)=\"selectTab(tabs[0])\"\n [ngClass]=\"{\n 'registration--tab--selected': tabs[0] === selected\n }\"\n >{{ tabs[0] }}\n </span>\n |\n <span\n class=\"registration--tab\"\n (click)=\"selectTab(tabs[1])\"\n [ngClass]=\"{\n 'registration--tab--selected': tabs[1] === selected\n }\"\n >{{ tabs[1] }}\n </span>\n |\n <a\n class=\"registration--tab\"\n (click)=\"selectTab(tabs[2])\"\n href=\"\"\n [ngClass]=\"{\n 'registration--tab--selected': tabs[2] === selected\n }\"\n >\n {{ tabs[2] }}\n </a>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { fromEvent, tap } from 'rxjs';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { GalleryPhotosItem } from '../gallery-photos/gallery-photos.component';\nimport { RoomZoomModalComponent } from '../modals/room-zoom-modal/room-zoom-modal.component';\n@Component({\n selector: 'tent-room-slider',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n CarouselModule,\n BadgeComponent,\n LazyBackgroundDirective,\n ],\n templateUrl: './room-slider.component.html',\n styleUrl: './room-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RoomSliderComponent implements OnInit, OnChanges, AfterViewInit {\n @Input({ required: true }) items!: RoomsSliderRoom[];\n @Input() linkDescriptionMore?: ButtonI;\n @Input() linkDescriptionLess?: ButtonI;\n @Input() linkEquipmentMore?: ButtonI;\n @Input() linkEquipmentLess?: ButtonI;\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 3000,\n navSpeed: 3000,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n\n collapsed: boolean[] = [];\n viewmore: boolean[] = [];\n\n itemsToShow = 4;\n constructor(\n private readonly dialog: MatDialog,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n ngOnInit(): void {\n this.collapsed = new Array(this.items.length).fill(true);\n this.viewmore = new Array(this.items.length).fill(true);\n this.itemsToShow = window.innerWidth >= 540 ? 6 : 3;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['items']?.currentValue) {\n this.collapsed = new Array(this.items.length).fill(true);\n this.viewmore = new Array(this.items.length).fill(true);\n }\n }\n\n ngAfterViewInit(): void {\n fromEvent(window, 'resize')\n .pipe(\n tap(() => {\n this.itemsToShow = window.innerWidth >= 540 ? 6 : 3;\n })\n )\n .subscribe();\n }\n\n toggleCollapse(index: number): void {\n this.collapsed[index] = !this.collapsed[index];\n }\n\n toggleViewmore(index: number): void {\n this.viewmore[index] = !this.viewmore[index];\n }\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n openRoomModal(item: RoomsSliderRoom, index: number): void {\n const dialogRef = this.dialog.open(RoomZoomModalComponent, {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n panelClass: 'full-screen',\n hasBackdrop: true,\n });\n\n dialogRef.componentInstance.images =\n index === 0\n ? item.images?.map(\n (img) => ({ image: img } as GalleryPhotosItem)\n )\n : item.images\n ?.slice(index)\n .concat(item.images.slice(0, index))\n ?.map((img) => ({ image: img } as GalleryPhotosItem));\n }\n}\n\nexport interface RoomsSliderRoom {\n id?: string | number;\n title?: string;\n info?: {\n label: string;\n icon: string;\n }[];\n description?: string;\n additionalDescription?: string;\n images?: string[];\n equipment?: {\n title?: string;\n items?: string[];\n };\n}\n","<section class=\"room-slider module-spacer--bottom\">\n <div class=\"room-slider--content wrapper-big\">\n @for (item of items; track mainIndex; let mainIndex = $index; let odd =\n $odd) {\n <div\n class=\"room-slider--box\"\n [ngClass]=\"{\n 'info-right': !odd,\n 'info-left': odd,\n 'module-spacer-small--bottom': mainIndex !== items.length - 1\n }\"\n >\n <owl-carousel-o\n class=\"room-slider--slider slider-circle--center figure-sticky\"\n [options]=\"sliderOptions\"\n >\n @for (img of item.images; track imageIndex; let imageIndex =\n $index) {\n <ng-template carouselSlide>\n <div class=\"room-slider--photo figure-content\">\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"img\"\n ></figure>\n <div class=\"btn_search--wrapper\">\n <div\n class=\"btn btn__circle btn__white btn_search--full\"\n (click)=\"openRoomModal(item, imageIndex)\"\n >\n <span class=\"btn_search--text\">\n ampliar foto</span\n >\n <span\n class=\"btn__circle-icon icon-search-plus icon--size22\"\n >\n </span>\n </div>\n <div\n class=\"btn btn__circle btn__white btn_search\"\n (click)=\"openRoomModal(item, imageIndex)\"\n >\n <span\n class=\"btn__circle-icon icon-search-plus icon--size22\"\n >\n </span>\n </div>\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n <div class=\"room-slider--info\">\n @if (item.title) {\n <h2 class=\"room-slider--info--title title--60 color--brown\">\n {{ item.title }}\n </h2>\n } @if (item.info) {\n <ul class=\"room-slider--info--icons\">\n @for (infoItem of item.info; track $index) {\n <li>\n <span class=\"info--icon\">\n <span\n class=\"info--icon--svg\"\n [ngClass]=\"infoItem.icon\"\n ></span>\n </span>\n <p class=\"text\">{{ infoItem.label }}</p>\n </li>\n }\n </ul>\n } @if (item.description || item.additionalDescription) {\n <div\n class=\"room-slider--info--des\"\n [ngClass]=\"collapsed[mainIndex] ? 'close' : 'open'\"\n >\n @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n\n } @if (item.additionalDescription) {\n <p class=\"text text-more\">\n {{ item.additionalDescription }}\n </p>\n } @if (linkDescriptionMore && linkDescriptionLess &&\n item.additionalDescription) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"linkDescriptionMore.label\"\n (click)=\"toggleCollapse(mainIndex)\"\n [name]=\"linkDescriptionMore.label\"\n ></tent-button>\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"linkDescriptionLess.label\"\n (click)=\"toggleCollapse(mainIndex)\"\n [name]=\"linkDescriptionLess.label\"\n ></tent-button>\n }\n </div>\n }\n <div\n class=\"room-slider--info--equipament\"\n [ngClass]=\"viewmore[mainIndex] ? 'close' : 'open'\"\n >\n @if (item.equipment?.title) {\n <h2\n class=\"room-slider--info--subtit title--24 color--brown\"\n >\n {{ item.equipment?.title }}\n </h2>\n\n } @if (item.equipment?.items) {\n <ul>\n @for (equipmentItem of item.equipment?.items; track\n $index) {\n <li>\n <span class=\"icon-check\"></span>\n <p class=\"text\">{{ equipmentItem }}</p>\n </li>\n }\n </ul>\n }\n\n <div class=\"room-slider--info--btns\">\n @if (linkEquipmentMore && linkEquipmentLess &&\n item.equipment?.items?.length! > itemsToShow) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"linkEquipmentMore.label\"\n (click)=\"toggleViewmore(mainIndex)\"\n [name]=\"linkEquipmentMore.label\"\n ></tent-button>\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"linkEquipmentLess.label\"\n (click)=\"toggleViewmore(mainIndex)\"\n [name]=\"linkEquipmentLess.label\"\n ></tent-button>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-services-details',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './services-details.component.html',\n styleUrl: './services-details.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ServicesDetailsComponent {\n @Input() items?: ServicesDetailsItem[];\n @Input() title?: string;\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed1 = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n}\n\nexport interface ServicesDetailsItem {\n image?: string;\n title?: string;\n description?: string;\n links?: ButtonI[];\n}\n","<section class=\"services-details module-spacer--bottom\">\n <div class=\"services-details--content wrapper-big\">\n <div class=\"services-details--inner\">\n @if (title) {\n <h2\n class=\"services-details--title title--60 color--brown\"\n [innerHTML]=\"title\"\n ></h2>\n } @if (items?.length) {\n <div class=\"services-details--items\">\n @for (item of items; track $index) {\n <div class=\"services-details--item\">\n @if (item.image || item.title) {\n <div class=\"services-details--photo figure-content\">\n @if (item.image) {\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n } @if (item.title) {\n <div class=\"services-details--info\">\n <h2\n class=\"services-details--tit title--38 color--white\"\n [innerHTML]=\"item.title\"\n ></h2>\n </div>\n }\n </div>\n } @if (item.description || item.links) {\n <div class=\"services-details--des\">\n @if (item.description) {\n <p class=\"text\">{{ item.description }}</p>\n\n } @if (item.links?.length && item.links) {\n <div class=\"flex-row\">\n @for (link of item.links; track $index) { @if (link)\n {\n <tent-button\n type=\"dark-link\"\n [url]=\"link.url\"\n [label]=\"link.label\"\n [linkType]=\"link.linkType\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-submenu',\n standalone: true,\n imports: [CommonModule, RouterModule],\n templateUrl: './submenu.component.html',\n styleUrl: './submenu.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SubmenuComponent {\n @Input() links?: ButtonI[];\n @Input() selected?: ButtonI;\n @Input() title?: string;\n}\n","<div class=\"submenu\">\n @if (title) {\n <h3 class=\"submenu--title color--camel\">{{ title }}</h3>\n } @if (links) {\n <div class=\"submenu--links\">\n @for (link of links; track $index) {\n <a\n [href]=\"link.url\"\n [routerLink]=\"[link.url]\"\n [attr.aria-label]=\"link.label\"\n [ngClass]=\"{\n 'submenu--link--selected':\n selected?.label?.toLowerCase() ===\n link?.label?.toLowerCase()\n }\"\n class=\"submenu--link link color--white\"\n >\n {{ link.label }}\n </a>\n }\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ImageI } from '../../../../public-api';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\ntype Award = {\n img: string;\n alt: string;\n title: string;\n subtitle?: string;\n};\n\n@Component({\n selector: 'lib-tent-carrousel-img',\n standalone: true,\n imports: [CommonModule, CarouselModule, ButtonComponent],\n templateUrl: './tent-carrousel-img.component.html',\n styleUrl: './tent-carrousel-img.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TentCarrouselImgComponent implements OnInit {\n @Input() iconControlLeft = 'icon-signal-left';\n @Input() iconControlRight = 'icon-signal-right';\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() items?: ImageI[];\n\n /* slides: Award[] = [\n {\n img: 'assets/tent/img/slider1.png',\n alt: 'Skift IDEA Awards 2025 Finalist',\n title: 'Skift IDEA Awards 2025 – Innovación hacia la transformación hotelera',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider2.png',\n alt: 'Premios CAEB–Santander',\n title: 'Premios CAEB–Santander a la Innovación Empresarial',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider3.png',\n alt: 'Tripadvisor Travellers’ Choice 2023',\n title: 'Travellers’ Choice Awards (2023)',\n subtitle: 'tent Playa de Palma',\n },\n {\n img: 'assets/tent/img/slider4.png',\n alt: 'Tripadvisor Travellers’ Choice 2024',\n title: 'Travellers’ Choice Awards (2024)',\n subtitle: 'tent Capi Playa',\n },\n {\n img: 'assets/tent/img/slider1.png',\n alt: 'Skift IDEA Awards 2025 Finalist',\n title: 'Skift IDEA Awards 2025 – Innovación hacia la transformación hotelera',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider2.png',\n alt: 'Premios CAEB–Santander',\n title: 'Premios CAEB–Santander a la Innovación Empresarial',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider3.png',\n alt: 'Tripadvisor Travellers’ Choice 2023',\n title: 'Travellers’ Choice Awards (2023)',\n subtitle: 'tent Playa de Palma',\n },\n ]; */\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n dots: false,\n nav: true,\n navText: ['', ''], // iconos por CSS\n margin: 24,\n smartSpeed: 450,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n stagePadding: 16,\n responsive: {\n 0: { items: 1, stagePadding: 16, margin: 16 },\n 540: { items: 2, stagePadding: 16, margin: 20 },\n 768: { items: 4, stagePadding: 40, margin: 40 },\n 1280: { items: 4, stagePadding: 80, margin: 50 },\n },\n };\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n }\n}\n","<section\n class=\"tent__carrousel-img\"\n aria-labelledby=\"tent__carrousel-img-title\"\n>\n <!-- Cabecera decorativa -->\n <div class=\"tent__carrousel-img__bg\" aria-hidden=\"true\"></div>\n\n <div class=\"tent__carrousel-img__wrap\">\n <header class=\"tent__carrousel-img__header\">\n <h2\n id=\"tent__carrousel-img-title\"\n class=\"tent__carrousel-img__title\"\n >\n <span class=\"title--80 color--camel\">{{ title }}</span>\n <span class=\"title--80 color--brown\">{{ titleDark }}</span>\n </h2>\n </header>\n\n <owl-carousel-o\n class=\"tent__carrousel-img__slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (s of items; track s.alt) {\n <ng-template carouselSlide>\n <div class=\"card-container\">\n <article class=\"tent__carrousel-card\">\n <div\n class=\"tent__carrousel-card__logo\"\n role=\"img\"\n [attr.aria-label]=\"s.alt\"\n >\n <img\n [src]=\"s.src\"\n [attr.alt]=\"s.alt\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n </div>\n\n <div class=\"tent__carrousel-card__text\">\n <h3 class=\"title--18 color--brown\">\n {{ s.title }}\n </h3>\n @if (s.subtitle) {\n <p class=\"text color--camel\">\n {{ s.subtitle }}\n </p>\n }\n </div>\n @if (s.buttons && s.buttons[0]) {\n <div class=\"tent__carrousel--btns pt--20\">\n <tent-button\n [type]=\"'dark-link'\"\n [icon]=\"undefined\"\n [iconPosition]=\"undefined\"\n [label]=\"s.buttons[0].label\"\n [url]=\"s.buttons[0].url\"\n [linkType]=\"undefined\"\n ></tent-button>\n </div>\n }\n </article>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n</section>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n signal,\n} from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n ButtonComponent,\n DynamicScriptService,\n LangCodeService,\n} from '../../../../public-api';\n\n@Component({\n selector: 'lib-tent-faq',\n standalone: true,\n imports: [CommonModule, MatIcon, ButtonComponent],\n templateUrl: './tent-faq.component.html',\n styleUrl: './tent-faq.component.scss',\n animations: [\n trigger('slideToggle', [\n state(\n 'open',\n style({ height: '*', opacity: 1, overflow: 'hidden' })\n ),\n state(\n 'closed',\n style({ height: '0px', opacity: 0, overflow: 'hidden' })\n ),\n transition('closed <=> open', animate('250ms ease')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TentFaqComponent {\n @Input() title?: string;\n @Input() pretitle?: string;\n @Input() licence?: string;\n @Input() lang?: string = 'en';\n @Input() top?: string;\n @Input() faqmore?: string;\n @Input() faqless?: string;\n @Input() description?: string;\n @Input() maxItems: number = 5;\n\n items?: TentFaqItem[] = [];\n\n selectedIndex = signal<number>(0);\n private scriptService = inject(DynamicScriptService);\n\n private _showAll = signal(false);\n showAll = this._showAll.asReadonly();\n\n private cdr = inject(ChangeDetectorRef);\n\n constructor(private langSvc: LangCodeService) {}\n\n async ngOnInit(): Promise<void> {\n if (this.licence && this.lang && this.top) {\n try {\n const faqs = await this.loadFaqsManually();\n this.items = faqs;\n this.cdr.markForCheck();\n } catch (e) {}\n }\n if (!this.faqmore || !this.faqless) {\n this._showAll.update((v) => true);\n }\n }\n\n selectItem(index: number) {\n this.selectedIndex.set(index);\n }\n\n private readonly QTXT_API = 'https://snippets.quicktext.im/v2/get/snippets';\n\n private async loadFaqsManually(): Promise<TentFaqItem[]> {\n const url = `https://snippets.quicktext.im/v2/get/snippets?license=${this.licence}&top=${this.top}&lang=${this.langSvc.toShort(this.lang ?? 'es')}`;\n\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Quicktext API error: ${res.status}`);\n\n const json = await res.json();\n\n if (!Array.isArray(json)) throw new Error('FAQs no válidas');\n\n return json.map((item: any) => ({\n label: item.name ?? 'Ask',\n description: item.acceptedAnswer?.text ?? 'Unanswered',\n }));\n }\n\n toggleShowAll(): void {\n this._showAll.update((v) => !v);\n }\n\n toggleItem(index: number, event: MouseEvent) {\n event.stopPropagation();\n\n if (this.selectedIndex() === index) {\n this.selectedIndex.set(-1);\n } else {\n this.selectedIndex.set(index);\n }\n }\n}\nexport interface TentFaqItem {\n label?: string;\n description?: string;\n}\n","<section class=\"tent__faq margin-main\">\n <div class=\"container faq-container\">\n <div class=\"row align-items-start\">\n <div class=\"col-lg-8 offset-lg-2\">\n @if (pretitle || title || description) {\n <div class=\"mb--40 text-center\">\n @if (pretitle) {\n <p\n class=\"text-uppercase subtitle color--brown title--40\"\n >\n {{ pretitle }}\n </p>\n }\n @if (title) {\n <h2 class=\"title title--60 color--camel\">\n {{ title }}\n </h2>\n }\n @if (description) {\n <h2 class=\"text color--camel\">\n {{ description }}\n </h2>\n }\n </div>\n }\n\n @if (items?.length) {\n <div\n class=\"tent-faq__list\"\n [class.is-collapsed]=\"!showAll()\"\n >\n @for (item of items; track $index) {\n <div\n class=\"tent-faq__item\"\n [class.active]=\"selectedIndex() === $index\"\n (click)=\"selectItem($index)\"\n *ngIf=\"showAll() || $index < maxItems\"\n >\n <button\n type=\"button\"\n class=\"tent-faq__question\"\n >\n <h3\n class=\"tent-faq__label color--brown title--24\"\n >\n {{ item.label }}\n </h3>\n <mat-icon\n class=\"color--brown icon-plus tent-faq__icon\"\n fontSet=\"icomoon\"\n (click)=\"toggleItem($index, $event)\"\n ></mat-icon>\n </button>\n <div\n class=\"tent-faq__answer\"\n [@slideToggle]=\"\n selectedIndex() === $index\n ? 'open'\n : 'closed'\n \"\n >\n <p\n class=\"text\"\n [innerHTML]=\"item.description\"\n ></p>\n </div>\n </div>\n }\n </div>\n\n @if (items && faqless && faqmore && maxItems) {\n @if (items.length > maxItems) {\n @if (showAll()) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"faqless\"\n (click)=\"toggleShowAll()\"\n [name]=\"faqless\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"faqmore\"\n (click)=\"toggleShowAll()\"\n [name]=\"faqmore\"\n ></tent-button>\n }\n }\n }\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent, ButtonI, ImageI } from '../../../../public-api';\n\n@Component({\n selector: 'tent-footer-logos',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './tent-footer-logos.component.html',\n styleUrl: './tent-footer-logos.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TentFooterLogosComponent {\n @Input() logos?: ImageI[];\n @Input() texts?: TentTexts;\n @Input() buttons?: ButtonI[];\n\n get filteredButtons() {\n return (this.buttons || []).filter((b) => !!b);\n }\n\n hasContent() {\n return (\n this.texts &&\n (this.texts.title || this.texts.pretitle || this.texts.text)\n );\n }\n}\n\nexport interface TentFooterLogoItemI {\n img?: ImageI;\n link?: ButtonI;\n}\n\nexport interface TentTexts {\n title?: string;\n pretitle?: string;\n text?: string;\n}\n","@if (hasContent()) {\n <section class=\"tent__footer-logos\">\n <div class=\"container footer-logos-container\">\n <div class=\"intro_info pt--20\">\n @if (texts?.pretitle) {\n <div class=\"text-pretitle\">\n <p\n class=\"text color--brown\"\n [innerHTML]=\"texts?.pretitle\"\n ></p>\n </div>\n }\n @if (texts?.title) {\n <h3 class=\"title--30 color--brown\">\n {{ texts?.title }}\n </h3>\n }\n @if (texts?.text) {\n <div class=\"text-description\">\n <p\n class=\"text color--brown\"\n [innerHTML]=\"texts?.text\"\n ></p>\n </div>\n }\n </div>\n @if (filteredButtons.length) {\n @for (button of filteredButtons; track $index) {\n @if (button.label || button.url) {\n <tent-button\n class=\"brunch--show-more\"\n type=\"dark-link\"\n [label]=\"button.label\"\n [name]=\"button.name\"\n [attr.aria-label]=\"button.label\"\n [url]=\"button.url\"\n >\n </tent-button>\n }\n }\n }\n @if (logos?.length) {\n <ul>\n @for (logo of logos; track $index) {\n <li>\n <img\n [src]=\"logo.src\"\n [alt]=\"logo.alt || ''\"\n loading=\"lazy\"\n />\n </li>\n }\n </ul>\n }\n </div>\n </section>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { TentLoyaltyI } from '../../../interfaces/core/tent-loyalty.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'lib-tent-loyalty',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './tent-loyalty.component.html',\n styleUrl: './tent-loyalty.component.scss',\n})\nexport class TentLoyaltyComponent {\n @Input() id: number = 0;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() percentage?: string;\n @Input() percentagetext1?: string;\n @Input() percentagetext2?: string;\n @Input() loyalties?: TentLoyaltyI;\n\n collapsed = true;\n toggleCollapse(event: Event): void {\n event.stopPropagation();\n this.collapsed = !this.collapsed;\n }\n}\n","<section\n class=\"tent-loyalty wrapper-big\"\n [ngClass]=\"{ 'module-spacer--bottom': id == 3 }\"\n>\n <div class=\"tent-loyalty--content\">\n @switch (id) {\n @case (0) {\n <div class=\"tent-loyalty--head\">\n @if (title) {\n <h2\n class=\"tent-loyalty--head--tit title--42 color--brown\"\n >\n {{ title }}\n </h2>\n }\n @if (subtitle) {\n <p class=\"tent-loyalty--head--text text\">\n {{ subtitle }}\n </p>\n }\n @if (percentage || percentagetext1 || percentagetext2) {\n <div class=\"discount-loyalty\">\n <div class=\"texts-container\">\n @if (percentagetext1) {\n <p\n class=\"text color--brown\"\n [innerHTML]=\"percentagetext1\"\n ></p>\n }\n @if (percentage) {\n <h2\n class=\"title--42 color--brown\"\n [innerHTML]=\"percentage\"\n ></h2>\n }\n @if (percentagetext2) {\n <p\n class=\"text color--brown\"\n [innerHTML]=\"percentagetext2\"\n ></p>\n }\n </div>\n <div class=\"img-container\">\n <img\n src=\"/assets/tent/img/loyalty-discount-bg.svg\"\n alt=\"left\"\n loading=\"lazy\"\n class=\"location-how--iconactive\"\n />\n </div>\n </div>\n }\n </div>\n }\n @case (1) {\n <div\n class=\"tent-loyalty--box bg-yellow\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n (click)=\"toggleCollapse($event)\"\n >\n <div class=\"tent-loyalty--box--inner\">\n <h3\n class=\"tent-loyalty--box--title title--42 color--brown\"\n >\n @if (loyalties?.icon) {\n <span\n class=\"loyalty-icon color--brown\"\n [ngClass]=\"'icon-' + loyalties?.icon\"\n ></span>\n }\n @if (loyalties?.levelName) {\n <div class=\"tent-loyalty--box--title--level\">\n <span class=\"text color--brown\">\n {{ loyalties?.levelName }}\n </span>\n @if (loyalties?.levelSubtitle) {\n <p\n class=\"tent-loyalty--info--text text color--brown\"\n [ngClass]=\"\n !collapsed\n ? 'visible'\n : 'hidden'\n \"\n >\n {{ loyalties?.levelSubtitle }}\n </p>\n }\n </div>\n }\n </h3>\n <div\n class=\"tent-loyalty--box--info\"\n [ngClass]=\"collapsed ? 'visible' : 'hidden'\"\n >\n @if (loyalties?.discount) {\n <span\n class=\"tent-loyalty--box--info--num title--42 color--brown\"\n >{{ loyalties?.discount }}</span\n >\n }\n @if (loyalties?.advantages) {\n <p\n class=\"tent-loyalty--info--text text color--brown\"\n >\n {{ loyalties?.advantages }}\n </p>\n }\n </div>\n @if (collapsed) {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seemore ?? '+'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow reverse without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seeless ?? '-'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n }\n </div>\n <ul class=\"tent-loyalty--box--list\">\n @if (loyalties?.items?.length) {\n @for (item of loyalties?.items; track $index) {\n <li\n [ngClass]=\"\n loyalties?.items?.length == 3 &&\n $index == 0\n ? 'first-item-big'\n : ''\n \"\n >\n <p\n class=\"tent-loyalty--box--item color--brown\"\n >\n @if (item.text) {\n <span\n class=\"text color--brown\"\n [innerHTML]=\"item.text\"\n ></span>\n }\n @if (item.icon) {\n <span\n class=\"tent-loyalty--box--item--icon\"\n [class]=\"'icon-' + item.icon\"\n ></span>\n }\n @if (item.title) {\n <span class=\"text color--brown\">{{\n item.title\n }}</span>\n }\n </p>\n </li>\n }\n }\n </ul>\n </div>\n }\n @case (2) {\n <div\n class=\"tent-loyalty--box bg-orange\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n (click)=\"toggleCollapse($event)\"\n >\n <div class=\"tent-loyalty--box--inner\">\n <h3\n class=\"tent-loyalty--box--title title--42 color--white\"\n >\n @if (loyalties?.icon) {\n <span\n class=\"loyalty-icon\"\n [ngClass]=\"'icon-' + loyalties?.icon\"\n ></span>\n }\n @if (loyalties?.levelName) {\n <div class=\"tent-loyalty--box--title--level\">\n <span class=\"text color--white\">\n {{ loyalties?.levelName }}\n </span>\n @if (loyalties?.levelSubtitle) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n [ngClass]=\"\n !collapsed\n ? 'visible'\n : 'hidden'\n \"\n >\n {{ loyalties?.levelSubtitle }}\n </p>\n }\n </div>\n }\n </h3>\n <div\n class=\"tent-loyalty--box--info\"\n [ngClass]=\"collapsed ? 'visible' : 'hidden'\"\n >\n @if (loyalties?.discount) {\n <span\n class=\"tent-loyalty--box--info--num title--42 color--white\"\n >{{ loyalties?.discount }}</span\n >\n }\n @if (loyalties?.advantages) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n >\n {{ loyalties?.advantages }}\n </p>\n }\n </div>\n @if (collapsed) {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seemore ?? '+'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow reverse without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seeless ?? '-'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n }\n </div>\n <ul class=\"tent-loyalty--box--list\">\n @if (loyalties?.items?.length) {\n @for (item of loyalties?.items; track $index) {\n <li>\n <p\n class=\"tent-loyalty--box--item color--brown\"\n >\n @if (item.text) {\n <span\n class=\"text color--brown\"\n [innerHTML]=\"item.text\"\n ></span>\n }\n @if (item.icon) {\n <span\n class=\"tent-loyalty--box--item--icon\"\n [class]=\"'icon-' + item.icon\"\n ></span>\n }\n @if (item.title) {\n <span class=\"text color--brown\">{{\n item.title\n }}</span>\n }\n </p>\n </li>\n }\n }\n </ul>\n </div>\n }\n @case (3) {\n <div\n class=\"tent-loyalty--box bg-brown\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n (click)=\"toggleCollapse($event)\"\n >\n <div class=\"tent-loyalty--box--inner\">\n <h3\n class=\"tent-loyalty--box--title title--42 color--white\"\n >\n @if (loyalties?.icon) {\n <span\n class=\"loyalty-icon\"\n [ngClass]=\"'icon-' + loyalties?.icon\"\n ></span>\n }\n @if (loyalties?.levelName) {\n <div class=\"tent-loyalty--box--title--level\">\n <span class=\"text color--white\">\n {{ loyalties?.levelName }}\n </span>\n @if (loyalties?.levelSubtitle) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n [ngClass]=\"\n !collapsed\n ? 'visible'\n : 'hidden'\n \"\n >\n {{ loyalties?.levelSubtitle }}\n </p>\n }\n </div>\n }\n </h3>\n <div\n class=\"tent-loyalty--box--info\"\n [ngClass]=\"collapsed ? 'visible' : 'hidden'\"\n >\n @if (loyalties?.discount) {\n <span\n class=\"tent-loyalty--box--info--num title--42 color--white\"\n >{{ loyalties?.discount }}</span\n >\n }\n @if (loyalties?.advantages) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n >\n {{ loyalties?.advantages }}\n </p>\n }\n </div>\n @if (collapsed) {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seemore ?? '+'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow reverse without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seeless ?? '-'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n }\n </div>\n <ul class=\"tent-loyalty--box--list\">\n @if (loyalties?.items?.length) {\n @for (item of loyalties?.items; track $index) {\n <li>\n <p\n class=\"tent-loyalty--box--item color--brown\"\n >\n @if (item.text) {\n <span\n class=\"text color--brown\"\n [innerHTML]=\"item.text\"\n >{{ item.text }}</span\n >\n }\n @if (item.icon) {\n <span\n class=\"tent-loyalty--box--item--icon\"\n [class]=\"'icon-' + item.icon\"\n ></span>\n }\n @if (item.title) {\n <span class=\"text color--brown\">{{\n item.title\n }}</span>\n }\n </p>\n </li>\n }\n }\n </ul>\n </div>\n }\n }\n </div>\n</section>\n","import { Component, Input } from '@angular/core';\nimport { ButtonI, ImageI } from '../../../../public-api';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-redirection',\n standalone: true,\n imports: [ButtonComponent, BadgeComponent],\n templateUrl: './tent-redirection.component.html',\n styleUrl: './tent-redirection.component.scss',\n})\nexport class TentRedirectionComponent {\n @Input() verticalText1?: string;\n @Input() verticalText2?: string;\n @Input() title?: string;\n @Input() description?: string;\n @Input() buttons?: ButtonI[];\n @Input() img?: ImageI;\n}\n\nexport interface TextsI {\n verticalText?: string;\n title?: string;\n description?: string;\n}\n","<section class=\"fergus-feature\">\n <span class=\"fergus-feature__bg\"></span>\n\n <div class=\"fergus-feature__inner\">\n @if (verticalText1 || verticalText2) {\n <span class=\"fergus-feature__vertical\">\n @if (verticalText1) {\n <span class=\"gold title--60\">{{ verticalText1 }}</span\n ><br />\n }\n @if (verticalText2) {\n <span class=\"brown title--60\">{{ verticalText2 }}</span>\n }\n </span>\n }\n\n <figure class=\"fergus-feature__media\">\n @if (img) {\n <div class=\"img__container\">\n <img [src]=\"img.src\" [alt]=\"img.alt\" />\n </div>\n }\n <figcaption class=\"fergus-feature__card\">\n @if (title) {\n <div class=\"title--60-container\">\n <h2\n class=\"fergus-feature__title title--60\"\n [innerHTML]=\"title\"\n ></h2>\n </div>\n }\n <div class=\"info-container\">\n @if (description) {\n <p\n class=\"fergus-feature__desc text\"\n [innerHTML]=\"description\"\n ></p>\n }\n\n @if (buttons?.length) {\n @for (button of buttons; track $index) {\n @if (button) {\n <div class=\"button-container\">\n <tent-button\n type=\"dark-box\"\n [label]=\"button.label\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType\"\n ></tent-button>\n </div>\n }\n }\n }\n </div>\n </figcaption>\n </figure>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-thanks',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './thanks.component.html',\n styleUrl: './thanks.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ThanksComponent {\n @Input() image?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() description?: string;\n @Input() button?: ButtonI;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n get imageInstant(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n}\n","<div class=\"thanks\">\n <div class=\"thanks--left-slot\">\n <figure class=\"figure-full\" [style]=\"imageInstant\"></figure>\n </div>\n <div class=\"thanks--right-slot\">\n @if (title) {\n <p class=\"thanks--title\">{{ title }}</p>\n }\n\n <div class=\"thanks--footer\">\n @if (subtitle) {\n <p class=\"thanks--subtitle\">\n {{ subtitle }}\n </p>\n } @if (description) {\n <p class=\"thanks--description\" [innerHTML]=\"description\"></p>\n } @if (button) {\n <tent-button\n [label]=\"button.label\"\n type=\"dark-link\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType\"\n ></tent-button>\n }\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport {\n CarouselComponent,\n CarouselModule,\n OwlOptions,\n} from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-top-module',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n BadgeComponent,\n CarouselModule,\n MatIconModule,\n LazyBackgroundDirective,\n ],\n templateUrl: './top-module.component.html',\n styleUrl: './top-module.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TopModuleComponent implements AfterViewInit, OnInit {\n @ViewChild(CarouselComponent) carousel!: CarouselComponent;\n @ViewChild('nav', { read: ElementRef }) nav!: ElementRef;\n @ViewChild('module', { read: ElementRef }) module!: ElementRef;\n @Input() btnScroll!: ButtonI;\n @Input() items!: TopModuleItem[];\n @Input() desktop?: boolean;\n @Input() scrollLabel?: string;\n @Input() video?: string;\n @Input() gift?: ImageI;\n @Input() logo?: ImageI;\n @Input() logoMobile?: ImageI;\n @Input() slim?: boolean;\n @Input() title?: string;\n @Input() subtitle?: string;\n\n showScrollLabel = false;\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: true,\n nav: false,\n navText: ['', ''],\n responsive: {\n 0: {\n items: 1,\n },\n 540: {\n items: 1,\n },\n 768: {\n items: 1,\n },\n 1024: {\n items: 1,\n },\n 1280: {\n items: 1,\n },\n 1366: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n };\n\n get videoUrl(): string {\n return `{videoURL:\\'${this.video}\\', containment:'.youtube-bg',autoPlay:true, mute:true, startAt:1, opacity:1, showControls:false, loop:true, stopMovieOnBlur: false}`;\n }\n\n constructor(\n private readonly renderer: Renderer2,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n ngOnInit(): void {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n ngAfterViewInit(): void {\n if (!this.video && !this.gift) {\n const dots = document.getElementsByClassName('owl-dots')[0];\n this.renderer.appendChild(dots, this.nav.nativeElement);\n this.renderer.setStyle(\n this.nav.nativeElement,\n 'width',\n `${dots.clientWidth + 40}px`\n );\n }\n }\n\n prevClick(): void {\n this.carousel.prev();\n }\n\n nextClick(): void {\n this.carousel.next();\n }\n\n scrollClicked(): void {\n window.scrollTo({\n top:\n (this.module.nativeElement as HTMLElement).clientHeight +\n Number(\n window\n .getComputedStyle(this.module.nativeElement)\n .getPropertyValue('padding-bottom')\n .split('px')[0]\n ) -\n document.getElementsByTagName('tent-header')[0].clientHeight,\n behavior: 'smooth',\n });\n }\n\n toggleScrollLabel(): void {\n this.showScrollLabel = !this.showScrollLabel;\n }\n}\n\nexport interface TopModuleItem {\n mainBadge?: BadgeI;\n title?: string;\n badgePromo?: BadgeI;\n badgeDiscount?: BadgeI;\n btn?: ButtonI;\n img?: string;\n}\n","<section class=\"top-module module-spacer--bottom\" #module>\n @if (gift && slim) { @if (title) {\n <header class=\"top-module--header\">\n @if (title) {\n <h1 class=\"top-module--header--title color--brown\">\n {{ title }}\n </h1>\n } @if (subtitle) {\n <p class=\"top-module--header--subtitle color--camel\">\n {{ subtitle }}\n </p>\n }\n </header>\n } } @if( (!video && !gift) || (!gift && !desktop)) {\n <div class=\"top-module--nav flex-row flex-row--between\" #nav>\n <span\n class=\"icon-pointer-down color--white\"\n (click)=\"prevClick()\"\n ></span>\n <span\n class=\"icon-pointer-down color--white\"\n (click)=\"nextClick()\"\n ></span>\n </div>\n\n } @if (video && desktop) {\n <div class=\"youtube-bg\">\n <div\n id=\"bgndVideo\"\n class=\"player\"\n [attr.data-property]=\"videoUrl\"\n ></div>\n </div>\n } @else if(gift) {\n <ng-container\n *ngTemplateOutlet=\"content; context: { item: items[0] }\"\n ></ng-container>\n <img\n class=\"top-module--gift\"\n [ngClass]=\"{ 'top-module--gift--slim': slim }\"\n [src]=\"gift.src\"\n [alt]=\"gift.alt\"\n />\n @if (slim) {\n <div class=\"top-module--gift--header\">\n <h1 class=\"top-module--gift--title\">\n {{ title }}\n </h1>\n <p class=\"top-module--gift--subtitle\">\n {{ subtitle }}\n </p>\n @if (logo) {\n <img class=\"top-module--logo\" [src]=\"logo.src\" [alt]=\"logo.alt\" />\n }\n </div>\n\n } } @else if(items){\n <owl-carousel-o\n class=\"top-module--slider\"\n [options]=\"sliderOptions\"\n [ngClass]=\"{ 'no-loop': items.length < 2 }\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <ng-container\n *ngTemplateOutlet=\"content; context: { item: item }\"\n ></ng-container>\n\n @if (item.img) {\n <figure\n class=\"top-module--image\"\n [lazyBackground]=\"item.img\"\n ></figure>\n }\n </ng-template>\n }\n </owl-carousel-o>\n\n }\n\n <div\n class=\"top-module--btn-scroll\"\n (mouseenter)=\"toggleScrollLabel()\"\n (mouseleave)=\"toggleScrollLabel()\"\n >\n @if (showScrollLabel && scrollLabel) {\n <p class=\"top-module--btn-scroll--label\">\n {{ scrollLabel }}\n </p>\n\n } @if(btnScroll.icon) {\n <tent-button\n type=\"light-circle\"\n [icon]=\"btnScroll.icon\"\n (click)=\"scrollClicked()\"\n name=\"tent-hotels\"\n ></tent-button>\n\n }\n </div>\n</section>\n\n<ng-template #content let-item=\"item\">\n @if (!slim) {\n <div class=\"top-module--content\">\n @if (item.mainBadge) {\n <div class=\"top-module--badge\">\n <tent-badge\n [rounded]=\"true\"\n [label]=\"item.mainBadge.label\"\n ></tent-badge>\n </div>\n } @if (item.title) {\n <h3 class=\"title--80 color--white\">{{ item.title }}</h3>\n } @if (item.badgePromo || item.badgeDiscount) {\n <div class=\"top-module--offers flex-row\">\n @if (item.badgePromo) {\n <tent-badge\n class=\"top-module--promo\"\n [rounded]=\"true\"\n [label]=\"item.badgePromo.label\"\n ></tent-badge>\n } @if (item.badgeDiscount) {\n <tent-badge\n class=\"top-module--discount\"\n [rounded]=\"true\"\n [label]=\"item.badgeDiscount.label\"\n ></tent-badge>\n }\n </div>\n } @if (item.btn) {\n <div class=\"top-module--btn-info\">\n <tent-button\n type=\"light-box\"\n [label]=\"item.btn.label\"\n [url]=\"item.btn.url\"\n [linkType]=\"item.btn.linkType!\"\n ></tent-button>\n </div>\n }\n </div>\n }\n</ng-template>\n","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-travelers',\n standalone: true,\n imports: [\n CommonModule,\n CarouselModule,\n LazyBackgroundDirective,\n ScrollingModule,\n ],\n templateUrl: './travelers.component.html',\n styleUrl: './travelers.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TravelersComponent {\n @Input() images?: string[];\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() links?: ButtonI[];\n\n get instagramLink(): string {\n return (\n this.links?.find((link) => link.icon === 'icon-instagram')?.url ??\n ''\n );\n }\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: false,\n autoWidth: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n center: false,\n dots: false,\n navText: [\n '<img width=\"12\" height=\"20\" src=\"/assets/tent/img/arrow-left.svg\" alt=\"left\" class=\" \" >',\n '<img width=\"12\" height=\"20\" src=\"/assets/tent/img/arrow-right.svg\" alt=\"left\" class=\" \" >',\n ],\n responsive: {\n 0: {\n items: 2,\n },\n 540: {\n items: 3,\n },\n 768: {\n items: 4,\n },\n 1024: {\n items: 5,\n },\n 1280: {\n items: 6,\n },\n 1366: {\n items: 7,\n },\n 1680: {\n items: 7,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n}\n","<section class=\"module-travelers wrapper-medium module-spacer-small--bottom\">\n @if (images?.length) {\n <div class=\"module-travelers--inner\">\n <owl-carousel-o\n class=\"module-travelers--slider slider-arrows--center\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <div class=\"module-travelers--slide\">\n <a\n [href]=\"instagramLink\"\n aria-label=\"tent-hotels\"\n target=\"_blank\"\n class=\"module-travelers--img figure-zoom\"\n >\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"img\"\n ></figure>\n </a>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n }\n <div class=\"module-travelers--info mt--20\">\n <div class=\"flex-row flex-row--center\">\n @if (title) {\n <h2 class=\"module-travelers--title title--80 color--camel\">\n <!---->{{ title\n }}<!---->\n </h2>\n } @if (titleDark) {\n <span class=\"color--brown title--80\">{{ titleDark }}</span>\n }\n </div>\n @if (links?.length) {\n <ul class=\"module-travelers--socials\">\n @for (link of links; track $index) {\n <li>\n <a\n aria-label=\"tent-hotels\"\n [href]=\"link.url\"\n rel=\"external\"\n target=\"_blank\"\n class=\"module-travelers--social color--brown\"\n [ngClass]=\"link.icon\"\n ></a>\n </li>\n\n }\n </ul>\n }\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-webmap',\n standalone: true,\n imports: [],\n templateUrl: './webmap.component.html',\n styleUrl: './webmap.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WebmapComponent {\n @Input() title?: string;\n @Input() links?: ButtonI[];\n}\n","<section class=\"webmap bg-beige\">\n <div class=\"webmap--content\">\n <div class=\"webmap--inner\">\n @if (title) {\n <h3 class=\"webmap--title title--30 color--brown-70\">\n {{ title }}\n </h3>\n } @if (links && links.length) {\n <ul class=\"webmap--list\">\n @for (link of links; track $index) {\n <li class=\"webmap--item\">\n <a\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n class=\"text link-regular\"\n >{{ link.label }}</a\n >\n </li>\n }\n </ul>\n }\n </div>\n </div>\n</section>\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicScriptService {\n private loadedScripts = new Map<string, Promise<void>>();\n\n /**\n * Carga un script desde una URL con atributos extra. Solo se carga una vez por `name`.\n */\n loadScriptByUrl(\n name: string,\n src: string,\n attributes: Record<string, string> = {}\n ): Promise<void> {\n // Si ya se está cargando o se cargó, reutiliza la promesa\n if (this.loadedScripts.has(name)) {\n return this.loadedScripts.get(name)!;\n }\n\n const promise = new Promise<void>((resolve, reject) => {\n const script = document.createElement('script');\n script.src = src;\n script.async = true;\n\n for (const [key, value] of Object.entries(attributes)) {\n script.setAttribute(key, value);\n }\n\n script.onload = () => resolve();\n script.onerror = () => reject(`Error cargando el script \"${name}\"`);\n\n document.body.appendChild(script);\n });\n\n // Guarda la promesa (aunque esté pendiente)\n this.loadedScripts.set(name, promise);\n return promise;\n }\n\n /**\n * Ejecuta código JS en línea una sola vez.\n */\n executeInlineScript(name: string, code: string): void {\n if (this.loadedScripts.has(name)) return;\n\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.text = code;\n document.body.appendChild(script);\n\n this.loadedScripts.set(name, Promise.resolve());\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LangCodeService {\n private readonly langMap: Record<string, string> = {\n es: 'es-ES',\n en: 'en-GB',\n fr: 'fr-FR',\n de: 'de-DE',\n it: 'it-IT',\n pt: 'pt-PT',\n nl: 'nl-NL',\n sv: 'sv-SE',\n da: 'da-DK',\n fi: 'fi-FI',\n no: 'no-NO',\n ru: 'ru-RU',\n zh: 'zh-CN',\n ja: 'ja-JP',\n ko: 'ko-KR',\n ar: 'ar-SA',\n tr: 'tr-TR',\n pl: 'pl-PL',\n cs: 'cs-CZ',\n ro: 'ro-RO',\n hu: 'hu-HU',\n el: 'el-GR',\n th: 'th-TH',\n he: 'he-IL',\n hi: 'hi-IN',\n id: 'id-ID',\n ms: 'ms-MY',\n vi: 'vi-VN',\n uk: 'uk-UA',\n bg: 'bg-BG',\n sk: 'sk-SK',\n sl: 'sl-SI',\n hr: 'hr-HR',\n lt: 'lt-LT',\n lv: 'lv-LV',\n et: 'et-EE',\n };\n\n private readonly reverseMap: Record<string, string>;\n\n constructor(@Inject(DOCUMENT) private doc: Document) {\n this.reverseMap = Object.fromEntries(\n Object.entries(this.langMap).map(([short, full]) => [\n full.toLowerCase(),\n short,\n ])\n );\n }\n\n private normalize(loc: string): string {\n return loc?.replace('_', '-').toLowerCase();\n }\n\n toFull(loc: string, fallback: string = 'en-GB'): string {\n const norm = this.normalize(loc ?? '');\n if (!norm) return fallback;\n\n if (this.langMap[norm]) return this.langMap[norm];\n\n const shortFromFull = this.reverseMap[norm];\n if (shortFromFull) return this.langMap[shortFromFull];\n\n const guessShort = norm.split('-')[0];\n return this.langMap[guessShort] ?? norm ?? fallback;\n }\n\n toShort(loc: string, fallback: string = 'en'): string {\n const norm = this.normalize(loc ?? '');\n if (!norm) return fallback;\n\n if (this.langMap[norm]) return norm;\n\n const shortFromFull = this.reverseMap[norm];\n if (shortFromFull) return shortFromFull;\n\n const guessShort = norm.split('-')[0];\n return this.langMap[guessShort] ? guessShort : guessShort || fallback;\n }\n\n getHtmlLangCode(loc: string): string {\n return this.toFull(loc);\n }\n\n applyHtmlLang(loc: string): void {\n const full = this.toFull(loc);\n this.doc?.documentElement?.setAttribute('lang', full);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ScreenSizerParams } from './screen-sizer.interface';\n\nexport const SCREEN_SIZER_PARAMS_TOKEN = new InjectionToken<ScreenSizerParams>(\n 'ScreenSizerParams'\n);\n","import { Injectable, inject, signal } from '@angular/core';\nimport {\n debounceTime,\n distinctUntilChanged,\n fromEvent,\n map,\n startWith,\n} from 'rxjs';\nimport { SCREEN_SIZER_PARAMS_TOKEN } from './screen-sizer.service.token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizerService {\n readonly mobile = signal(false);\n readonly smallTablet = signal(false);\n readonly mediumTablet = signal(false);\n readonly fullTablet = signal(false);\n readonly smallDesktop = signal(false);\n readonly mediumDesktop = signal(false);\n readonly fullDesktop = signal(false);\n readonly fullBigDesktop = signal(false);\n readonly maxDesktop = signal(false);\n\n readonly minSmallTablet = signal(false);\n readonly minMediumTablet = signal(false);\n readonly minFullTablet = signal(false);\n readonly minSmallDesktop = signal(false);\n readonly minMediumDesktop = signal(false);\n readonly minFullDesktop = signal(false);\n readonly minFullBigDesktop = signal(false);\n\n get width(): number {\n if (window.innerWidth > window.outerWidth) {\n return window.outerWidth;\n }\n return window.innerWidth;\n }\n\n private readonly screenSizerParams = inject(SCREEN_SIZER_PARAMS_TOKEN)\n .pixelBreakpoints;\n\n constructor() {\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n map(() => this.width),\n distinctUntilChanged(),\n startWith(this.width)\n )\n .subscribe((size) => {\n if (size) {\n this.mobile.set(size < this.screenSizerParams.mobile);\n\n this.smallTablet.set(\n size < this.screenSizerParams.smallTablet\n );\n\n this.mediumTablet.set(\n size < this.screenSizerParams.mediumTablet\n );\n\n this.fullTablet.set(\n size < this.screenSizerParams.fullTablet\n );\n\n this.smallDesktop.set(\n size < this.screenSizerParams.smallDesktop\n );\n\n this.mediumDesktop.set(\n size < this.screenSizerParams.mediumDesktop\n );\n\n this.fullDesktop.set(\n size < this.screenSizerParams.fullDesktop\n );\n\n this.fullBigDesktop.set(\n size < this.screenSizerParams.fullBigDesktop\n );\n\n this.maxDesktop.set(\n size <= this.screenSizerParams.maxDesktop\n );\n\n this.minSmallTablet.set(\n size >= this.screenSizerParams.smallTablet\n );\n\n this.minMediumTablet.set(\n size >= this.screenSizerParams.mediumTablet\n );\n\n this.minFullTablet.set(\n size >= this.screenSizerParams.fullTablet\n );\n\n this.minSmallDesktop.set(\n size >= this.screenSizerParams.smallDesktop\n );\n\n this.minMediumDesktop.set(\n size >= this.screenSizerParams.mediumDesktop\n );\n\n this.minFullDesktop.set(\n size >= this.screenSizerParams.fullDesktop\n );\n\n this.minFullBigDesktop.set(\n size >= this.screenSizerParams.fullBigDesktop\n );\n }\n });\n }\n\n isMobileInstant(): boolean {\n return this.mobile();\n }\n\n isSmallTabletInstant(): boolean {\n return this.smallTablet();\n }\n\n isMediumTabletInstant(): boolean {\n return this.mediumTablet();\n }\n\n isFullTabletInstant(): boolean {\n return this.fullTablet();\n }\n\n isSmallDesktopInstant(): boolean {\n return this.smallDesktop();\n }\n\n isMediumDesktopInstant(): boolean {\n return this.mediumDesktop();\n }\n\n isFullDesktopInstant(): boolean {\n return this.fullDesktop();\n }\n\n isFullBigDesktopInstant(): boolean {\n return this.fullBigDesktop();\n }\n\n isMaxDesktopInstant(): boolean {\n return this.maxDesktop();\n }\n\n minSmallTabletInstant(): boolean {\n return this.minSmallTablet();\n }\n\n minMediumTabletInstant(): boolean {\n return this.minMediumTablet();\n }\n\n minFullTabletInstant(): boolean {\n return this.minFullTablet();\n }\n\n minSmallDesktopInstant(): boolean {\n return this.minSmallDesktop();\n }\n\n minMediumDesktopInstant(): boolean {\n return this.minMediumDesktop();\n }\n\n minFullDesktopInstant(): boolean {\n return this.minFullDesktop();\n }\n\n minFullBigDesktopInstant(): boolean {\n return this.minFullBigDesktop();\n }\n}\n","/*\n * Public API Surface of tent\n */\n\n/* ATOMIC COMPONENTS */\nexport * from './lib/components/atomic/badge/badge.component';\nexport * from './lib/components/atomic/breadcrump/breadcrump.component';\nexport * from './lib/components/atomic/button/button.component';\nexport * from './lib/components/atomic/datepicker/datepicker.component';\nexport * from './lib/components/atomic/dropdown/dropdown.component';\nexport * from './lib/components/atomic/input/input.component';\n\n/* CORE COMPONENTS */\nexport * from './lib/components/core/advantages/advantages.component';\nexport * from './lib/components/core/brunch-gallery/brunch-gallery.component';\nexport * from './lib/components/core/brunch/brunch.component';\nexport * from './lib/components/core/cards-2col/cards-2col.component';\nexport * from './lib/components/core/cards-3col/cards-3col.component';\nexport * from './lib/components/core/contact-form/contact-form.component';\nexport * from './lib/components/core/contact-office/contact-office.component';\nexport * from './lib/components/core/delivery-app/delivery-app.component';\nexport * from './lib/components/core/destination-hotels/destination-hotels.component';\nexport * from './lib/components/core/destination-info/destination-info.component';\nexport * from './lib/components/core/destination-list/destination-list.component';\nexport * from './lib/components/core/employment-benefits/employment-benefits.component';\nexport * from './lib/components/core/employment-form/employment-form.component';\nexport * from './lib/components/core/facilities-slider/facilities-slider.component';\nexport * from './lib/components/core/footer-a/footer-a.component';\nexport * from './lib/components/core/footer-b/footer-b.component';\nexport * from './lib/components/core/footer-static/footer-static.component';\nexport * from './lib/components/core/gallery-photos/gallery-photos.component';\nexport * from './lib/components/core/generic-head/generic-head.component';\nexport * from './lib/components/core/guests-popup/guests-popup.component';\nexport * from './lib/components/core/header-mobile/header-mobile.component';\nexport * from './lib/components/core/header/header.component';\nexport * from './lib/components/core/hotel-about/hotel-about.component';\nexport * from './lib/components/core/hotel-app/hotel-app.component';\nexport * from './lib/components/core/hotel-equipment/hotel-equipment.component';\nexport * from './lib/components/core/hotel-location/hotel-location.component';\nexport * from './lib/components/core/hotel-services/hotel-services.component';\nexport * from './lib/components/core/hotel-slider/hotel-slider.component';\nexport * from './lib/components/core/hotels-list/hotels-list.component';\nexport * from './lib/components/core/info-slider/info-slider.component';\nexport * from './lib/components/core/location-beach/location-beach.component';\nexport * from './lib/components/core/location-how/location-how.component';\nexport * from './lib/components/core/location-map/location-map.component';\nexport * from './lib/components/core/loyalty-form/loyalty-form.component';\nexport * from './lib/components/core/modals/books-modal/books-modal.component';\nexport * from './lib/components/core/modals/checkin-modal/checkin-modal.component';\nexport * from './lib/components/core/modals/gallery-category/gallery-category.component';\nexport * from './lib/components/core/modals/hotel-list-modal/hotel-list-modal.component';\nexport * from './lib/components/core/modals/languages-modal/languages-modal.component';\nexport * from './lib/components/core/modals/loyalty-modal/loyalty-modal.component';\nexport * from './lib/components/core/modals/menu-modal/menu-modal.component';\nexport * from './lib/components/core/modals/newsletter-modal/newsletter-modal.component';\nexport * from './lib/components/core/modals/room-zoom-modal/room-zoom-modal.component';\nexport * from './lib/components/core/module-404/module-404.component';\nexport * from './lib/components/core/module-brava/module-brava.component';\nexport * from './lib/components/core/module-google-maps/module-google-maps.component';\nexport * from './lib/components/core/module-search/module-search.component';\nexport * from './lib/components/core/motor/motor.component';\nexport * from './lib/components/core/offer-banner/offer-banner.component';\nexport * from './lib/components/core/offer-details/offer-details.component';\nexport * from './lib/components/core/offer-list/offer-list.component';\nexport * from './lib/components/core/offer-slider/offer-slider.component';\nexport * from './lib/components/core/offer/offer.component';\nexport * from './lib/components/core/registration/registration.component';\nexport * from './lib/components/core/room-slider/room-slider.component';\nexport * from './lib/components/core/services-details/services-details.component';\nexport * from './lib/components/core/submenu/submenu.component';\nexport * from './lib/components/core/tent-carrousel-img/index';\nexport * from './lib/components/core/tent-faq/index';\nexport * from './lib/components/core/tent-footer-logos/tent-footer-logos.component';\nexport * from './lib/components/core/tent-loyalty/tent-loyalty.component';\nexport * from './lib/components/core/tent-redirection/tent-redirection.component';\nexport * from './lib/components/core/thanks/thanks.component';\nexport * from './lib/components/core/top-module/top-module.component';\nexport * from './lib/components/core/travelers/travelers.component';\nexport * from './lib/components/core/webmap/webmap.component';\n\n/* ATOMIC INTERFACES */\nexport * from './lib/interfaces/atomic/badge.interface';\nexport * from './lib/interfaces/atomic/breadcrump.interface';\nexport * from './lib/interfaces/atomic/button.interface';\nexport * from './lib/interfaces/atomic/datepicker.interface';\nexport * from './lib/interfaces/atomic/dropdown.interface';\nexport * from './lib/interfaces/atomic/image.interface';\nexport * from './lib/interfaces/atomic/input.interface';\nexport * from './lib/interfaces/atomic/textarea.interface';\n\n/* CORE INTERFACES */\nexport * from './lib/interfaces/core/advantages.interface';\nexport * from './lib/interfaces/core/brunch-gallery.interface';\nexport * from './lib/interfaces/core/brunch.interface';\nexport * from './lib/interfaces/core/cards2col.interface';\nexport * from './lib/interfaces/core/cards3col.interface';\nexport * from './lib/interfaces/core/checkin-modal.interface';\nexport * from './lib/interfaces/core/contact-form.interface';\nexport * from './lib/interfaces/core/contact-office.interface';\nexport * from './lib/interfaces/core/delivery-app.interface';\nexport * from './lib/interfaces/core/destination-hotels.interface';\nexport * from './lib/interfaces/core/destination-info.interface';\nexport * from './lib/interfaces/core/destination-list.interface';\nexport * from './lib/interfaces/core/employment-benefits.interface';\nexport * from './lib/interfaces/core/employment-form.interface';\nexport * from './lib/interfaces/core/facilities-slider.interface';\nexport * from './lib/interfaces/core/footer-a.interface';\nexport * from './lib/interfaces/core/footer-b.interface';\nexport * from './lib/interfaces/core/footer-static.interface';\nexport * from './lib/interfaces/core/gallery-category.interface';\nexport * from './lib/interfaces/core/gallery-photos.interface';\nexport * from './lib/interfaces/core/generic-head.interface';\nexport * from './lib/interfaces/core/guests-popup.interface';\nexport * from './lib/interfaces/core/header-mobile.interface';\nexport * from './lib/interfaces/core/header.interface';\nexport * from './lib/interfaces/core/hotel-about.interface';\nexport * from './lib/interfaces/core/hotel-app.interface';\nexport * from './lib/interfaces/core/hotel-equipment.interface';\nexport * from './lib/interfaces/core/hotel-list-modal.interface';\nexport * from './lib/interfaces/core/hotel-location.interface';\nexport * from './lib/interfaces/core/hotel-services.interface';\nexport * from './lib/interfaces/core/hotel-slider.interface';\nexport * from './lib/interfaces/core/hotels-list.interface';\nexport * from './lib/interfaces/core/info-slider.interface';\nexport * from './lib/interfaces/core/languages-modal.interface';\nexport * from './lib/interfaces/core/location-beach.interface';\nexport * from './lib/interfaces/core/location-how.interface';\nexport * from './lib/interfaces/core/location-map.interface';\nexport * from './lib/interfaces/core/loyalty-form.interface';\nexport * from './lib/interfaces/core/loyalty-modal.interface';\nexport * from './lib/interfaces/core/menu-modal.interface';\nexport * from './lib/interfaces/core/module-404.interface';\nexport * from './lib/interfaces/core/module-brava.interface';\nexport * from './lib/interfaces/core/module-google-maps.interface';\nexport * from './lib/interfaces/core/module-search.interface';\nexport * from './lib/interfaces/core/motor.interface';\nexport * from './lib/interfaces/core/newsletter-modal.interface';\nexport * from './lib/interfaces/core/offer-banner.interface';\nexport * from './lib/interfaces/core/offer-details.interface';\nexport * from './lib/interfaces/core/offer-list.interface';\nexport * from './lib/interfaces/core/offer-slider.interface';\nexport * from './lib/interfaces/core/offer.interface';\nexport * from './lib/interfaces/core/room-slider.interface';\nexport * from './lib/interfaces/core/services-deatils.interface';\nexport * from './lib/interfaces/core/simple-card.interface';\nexport * from './lib/interfaces/core/submenu.interface';\nexport * from './lib/interfaces/core/tent-footer-logos.interface';\nexport * from './lib/interfaces/core/tent-loyalty.interface';\nexport * from './lib/interfaces/core/tent-redirection.inteface';\nexport * from './lib/interfaces/core/thanks.interface';\nexport * from './lib/interfaces/core/top-module.interface';\nexport * from './lib/interfaces/core/travelers.interface';\nexport * from './lib/interfaces/core/webmap.interface';\n\n/* SERVICES */\nexport * from './services';\n\n/* PIPES */\nexport * from './lib/pipes/currency.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4","i3","i1","i5","i1.LangCodeService"],"mappings":"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,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,I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"}
1
+ {"version":3,"file":"tent-lib.mjs","sources":["../../../projects/tent/src/lib/components/atomic/badge/badge.component.ts","../../../projects/tent/src/lib/components/atomic/badge/badge.component.html","../../../projects/tent/src/lib/components/atomic/breadcrump/breadcrump.component.ts","../../../projects/tent/src/lib/components/atomic/breadcrump/breadcrump.component.html","../../../projects/tent/src/lib/components/atomic/button/button.component.ts","../../../projects/tent/src/lib/components/atomic/button/button.component.html","../../../projects/tent/src/lib/components/atomic/datepicker/datepicker.component.ts","../../../projects/tent/src/lib/components/atomic/datepicker/datepicker.component.html","../../../projects/tent/src/lib/components/atomic/dropdown/dropdown.component.ts","../../../projects/tent/src/lib/components/atomic/dropdown/dropdown.component.html","../../../projects/tent/src/lib/components/atomic/input/input.component.ts","../../../projects/tent/src/lib/components/atomic/input/input.component.html","../../../projects/tent/src/lib/components/core/advantages/advantages.component.ts","../../../projects/tent/src/lib/components/core/advantages/advantages.component.html","../../../projects/tent/src/lib/components/core/brunch-gallery/brunch-gallery.component.ts","../../../projects/tent/src/lib/components/core/brunch-gallery/brunch-gallery.component.html","../../../projects/tent/src/lib/components/core/brunch/brunch.component.ts","../../../projects/tent/src/lib/components/core/brunch/brunch.component.html","../../../projects/tent/src/lib/components/core/cards-2col/cards-2col.component.ts","../../../projects/tent/src/lib/components/core/cards-2col/cards-2col.component.html","../../../projects/tent/src/lib/components/core/cards-3col/cards-3col.component.ts","../../../projects/tent/src/lib/components/core/cards-3col/cards-3col.component.html","../../../projects/tent/src/lib/components/core/contact-form/contact-form.component.ts","../../../projects/tent/src/lib/components/core/contact-form/contact-form.component.html","../../../projects/tent/src/lib/components/core/contact-office/contact-office.component.ts","../../../projects/tent/src/lib/components/core/contact-office/contact-office.component.html","../../../projects/tent/src/lib/components/core/delivery-app/delivery-app.component.ts","../../../projects/tent/src/lib/components/core/delivery-app/delivery-app.component.html","../../../projects/tent/src/lib/components/core/destination-hotels/destination-hotels.component.ts","../../../projects/tent/src/lib/components/core/destination-hotels/destination-hotels.component.html","../../../projects/tent/src/lib/directives/lazy-background.directive.ts","../../../projects/tent/src/lib/components/core/destination-info/destination-info.component.ts","../../../projects/tent/src/lib/components/core/destination-info/destination-info.component.html","../../../projects/tent/src/lib/components/core/destination-list/destination-list.component.ts","../../../projects/tent/src/lib/components/core/destination-list/destination-list.component.html","../../../projects/tent/src/lib/components/core/employment-benefits/employment-benefits.component.ts","../../../projects/tent/src/lib/components/core/employment-benefits/employment-benefits.component.html","../../../projects/tent/src/lib/components/core/employment-form/employment-form.component.ts","../../../projects/tent/src/lib/components/core/employment-form/employment-form.component.html","../../../projects/tent/src/lib/components/core/facilities-slider/facilities-slider.component.ts","../../../projects/tent/src/lib/components/core/facilities-slider/facilities-slider.component.html","../../../projects/tent/src/lib/components/core/footer-a/footer-a.component.ts","../../../projects/tent/src/lib/components/core/footer-a/footer-a.component.html","../../../projects/tent/src/lib/components/core/footer-b/footer-b.component.ts","../../../projects/tent/src/lib/components/core/footer-b/footer-b.component.html","../../../projects/tent/src/lib/components/core/footer-static/footer-static.component.ts","../../../projects/tent/src/lib/components/core/footer-static/footer-static.component.html","../../../projects/tent/src/lib/components/core/modals/room-zoom-modal/room-zoom-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/room-zoom-modal/room-zoom-modal.component.html","../../../projects/tent/src/lib/components/core/gallery-photos/gallery-photos.component.ts","../../../projects/tent/src/lib/components/core/gallery-photos/gallery-photos.component.html","../../../projects/tent/src/lib/components/core/generic-head/generic-head.component.ts","../../../projects/tent/src/lib/components/core/generic-head/generic-head.component.html","../../../projects/tent/src/lib/components/core/guests-popup/guests-popup.component.ts","../../../projects/tent/src/lib/components/core/guests-popup/guests-popup.component.html","../../../projects/tent/src/lib/components/core/header-mobile/header-mobile.component.ts","../../../projects/tent/src/lib/components/core/header-mobile/header-mobile.component.html","../../../projects/tent/src/lib/components/core/modals/hotel-list-modal/hotel-list-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/hotel-list-modal/hotel-list-modal.component.html","../../../projects/tent/src/lib/components/core/header/header.component.ts","../../../projects/tent/src/lib/components/core/header/header.component.html","../../../projects/tent/src/lib/components/core/hotel-about/hotel-about.component.ts","../../../projects/tent/src/lib/components/core/hotel-about/hotel-about.component.html","../../../projects/tent/src/lib/components/core/hotel-app/hotel-app.component.ts","../../../projects/tent/src/lib/components/core/hotel-app/hotel-app.component.html","../../../projects/tent/src/lib/components/core/hotel-equipment/hotel-equipment.component.ts","../../../projects/tent/src/lib/components/core/hotel-equipment/hotel-equipment.component.html","../../../projects/tent/src/lib/components/core/hotel-location/hotel-location.component.ts","../../../projects/tent/src/lib/components/core/hotel-location/hotel-location.component.html","../../../projects/tent/src/lib/components/core/hotel-services/hotel-services.component.ts","../../../projects/tent/src/lib/components/core/hotel-services/hotel-services.component.html","../../../projects/tent/src/lib/components/core/hotel-slider/hotel-slider.component.ts","../../../projects/tent/src/lib/components/core/hotel-slider/hotel-slider.component.html","../../../projects/tent/src/lib/pipes/currency.pipe.ts","../../../projects/tent/src/lib/components/core/hotels-list/hotels-list.component.ts","../../../projects/tent/src/lib/components/core/hotels-list/hotels-list.component.html","../../../projects/tent/src/lib/components/core/info-slider/info-slider.component.ts","../../../projects/tent/src/lib/components/core/info-slider/info-slider.component.html","../../../projects/tent/src/lib/components/core/location-beach/location-beach.component.ts","../../../projects/tent/src/lib/components/core/location-beach/location-beach.component.html","../../../projects/tent/src/lib/components/core/location-how/location-how.component.ts","../../../projects/tent/src/lib/components/core/location-how/location-how.component.html","../../../projects/tent/src/lib/components/core/location-map/location-map.component.ts","../../../projects/tent/src/lib/components/core/location-map/location-map.component.html","../../../projects/tent/src/lib/components/core/loyalty-form/loyalty-form.component.ts","../../../projects/tent/src/lib/components/core/loyalty-form/loyalty-form.component.html","../../../projects/tent/src/lib/components/core/modals/books-modal/books-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/books-modal/books-modal.component.html","../../../projects/tent/src/lib/components/core/modals/checkin-modal/checkin-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/checkin-modal/checkin-modal.component.html","../../../projects/tent/src/lib/components/core/modals/gallery-category/gallery-category.component.ts","../../../projects/tent/src/lib/components/core/modals/gallery-category/gallery-category.component.html","../../../projects/tent/src/lib/components/core/modals/languages-modal/languages-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/languages-modal/languages-modal.component.html","../../../projects/tent/src/lib/components/core/modals/loyalty-modal/loyalty-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/loyalty-modal/loyalty-modal.component.html","../../../projects/tent/src/lib/components/core/modals/menu-modal/menu-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/menu-modal/menu-modal.component.html","../../../projects/tent/src/lib/components/core/modals/newsletter-modal/newsletter-modal.component.ts","../../../projects/tent/src/lib/components/core/modals/newsletter-modal/newsletter-modal.component.html","../../../projects/tent/src/lib/components/core/module-404/module-404.component.ts","../../../projects/tent/src/lib/components/core/module-404/module-404.component.html","../../../projects/tent/src/lib/components/core/module-brava/module-brava.component.ts","../../../projects/tent/src/lib/components/core/module-brava/module-brava.component.html","../../../projects/tent/src/lib/components/core/module-google-maps/module-google-maps.component.ts","../../../projects/tent/src/lib/components/core/module-google-maps/module-google-maps.component.html","../../../projects/tent/src/lib/components/core/module-search/module-search.component.ts","../../../projects/tent/src/lib/components/core/module-search/module-search.component.html","../../../projects/tent/src/lib/components/core/motor/motor.component.ts","../../../projects/tent/src/lib/components/core/motor/motor.component.html","../../../projects/tent/src/lib/components/core/offer-banner/offer-banner.component.ts","../../../projects/tent/src/lib/components/core/offer-banner/offer-banner.component.html","../../../projects/tent/src/lib/components/core/offer-details/offer-details.component.ts","../../../projects/tent/src/lib/components/core/offer-details/offer-details.component.html","../../../projects/tent/src/lib/components/core/offer/offer.component.ts","../../../projects/tent/src/lib/components/core/offer/offer.component.html","../../../projects/tent/src/lib/components/core/offer-list/offer-list.component.ts","../../../projects/tent/src/lib/components/core/offer-list/offer-list.component.html","../../../projects/tent/src/lib/components/core/offer-slider/offer-slider.component.ts","../../../projects/tent/src/lib/components/core/offer-slider/offer-slider.component.html","../../../projects/tent/src/lib/components/core/registration/registration.component.ts","../../../projects/tent/src/lib/components/core/registration/registration.component.html","../../../projects/tent/src/lib/components/core/room-slider/room-slider.component.ts","../../../projects/tent/src/lib/components/core/room-slider/room-slider.component.html","../../../projects/tent/src/lib/components/core/services-details/services-details.component.ts","../../../projects/tent/src/lib/components/core/services-details/services-details.component.html","../../../projects/tent/src/lib/components/core/submenu/submenu.component.ts","../../../projects/tent/src/lib/components/core/submenu/submenu.component.html","../../../projects/tent/src/lib/components/core/tent-carrousel-img/tent-carrousel-img.component.ts","../../../projects/tent/src/lib/components/core/tent-carrousel-img/tent-carrousel-img.component.html","../../../projects/tent/src/lib/components/core/tent-faq/tent-faq.component.ts","../../../projects/tent/src/lib/components/core/tent-faq/tent-faq.component.html","../../../projects/tent/src/lib/components/core/tent-footer-logos/tent-footer-logos.component.ts","../../../projects/tent/src/lib/components/core/tent-footer-logos/tent-footer-logos.component.html","../../../projects/tent/src/lib/components/core/tent-loyalty/tent-loyalty.component.ts","../../../projects/tent/src/lib/components/core/tent-loyalty/tent-loyalty.component.html","../../../projects/tent/src/lib/components/core/tent-redirection/tent-redirection.component.ts","../../../projects/tent/src/lib/components/core/tent-redirection/tent-redirection.component.html","../../../projects/tent/src/lib/components/core/thanks/thanks.component.ts","../../../projects/tent/src/lib/components/core/thanks/thanks.component.html","../../../projects/tent/src/lib/components/core/top-module/top-module.component.ts","../../../projects/tent/src/lib/components/core/top-module/top-module.component.html","../../../projects/tent/src/lib/components/core/travelers/travelers.component.ts","../../../projects/tent/src/lib/components/core/travelers/travelers.component.html","../../../projects/tent/src/lib/components/core/webmap/webmap.component.ts","../../../projects/tent/src/lib/components/core/webmap/webmap.component.html","../../../projects/tent/src/services/dynamic-scripts/dynamic-scripts.service.ts","../../../projects/tent/src/services/language/lang-code.service.ts","../../../projects/tent/src/services/screen-sizer/screen-sizer.service.token.ts","../../../projects/tent/src/services/screen-sizer/screen-sizer.service.ts","../../../projects/tent/src/public-api.ts","../../../projects/tent/src/tent-lib.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'tent-badge',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent {\n @Input() orientation: 'left' | 'right' = 'right';\n @Input() rounded?: boolean;\n @Input() label?: string;\n @Input() icon?: string;\n}\n","<div\n class=\"badge bg-orange color--white\"\n [ngClass]=\"{\n 'badge--rounded': rounded,\n 'badge--left': orientation === 'left' && !rounded,\n 'badge--right': orientation === 'right' && !rounded\n }\"\n>\n <span>{{ label }}</span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { BreadcrumpI } from '../../../interfaces/atomic/breadcrump.interface';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-breadcrump',\n standalone: true,\n imports: [CommonModule, RouterModule],\n templateUrl: './breadcrump.component.html',\n styleUrl: './breadcrump.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumpComponent implements BreadcrumpI, OnInit {\n @Input({ required: true }) breadcrumps!: Breadcrump[];\n @Input() selected?: Breadcrump;\n\n @Output() breadcrumpClick = new EventEmitter<Breadcrump>();\n\n breadcrumpClicked(breadcrump: Breadcrump, event: Event): void {\n event.preventDefault();\n this.selected = this.breadcrumps.find((item) => item === breadcrump);\n this.breadcrumpClick.emit(breadcrump);\n }\n\n ngOnInit(): void {\n this.selected = this.breadcrumps[this.breadcrumps.length - 1];\n }\n}\n\nexport interface Breadcrump {\n label: string;\n url: string;\n}\n","<ol class=\"breadcrump\">\n @for (breadcrump of breadcrumps; track $index; let last = $last) {\n <li class=\"breadcrump__element\">\n <a\n [href]=\"breadcrump.url\"\n [routerLink]=\"[breadcrump.url]\"\n [attr.aria-label]=\"breadcrump.label\"\n class=\"breadcrump__item\"\n (click)=\"breadcrumpClicked(breadcrump, $event)\"\n [ngClass]=\"{\n 'breadcrump__item--active': selected?.label === breadcrump.label\n }\"\n >\n {{ breadcrump.label }}\n </a>\n @if (!last) {\n <div class=\"breadcrump__separator\">·</div>\n }\n </li>\n }\n</ol>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-button',\n standalone: true,\n imports: [CommonModule, RouterModule],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n @Input() type: ButtonType = 'dark-box';\n @Input() label?: string;\n @Input() url?: string;\n @Input() linkType?: string = 'external';\n @Input() icon?: string;\n @Input() socialMedia?:\n | 'instagram'\n | 'tiktok'\n | 'youtube'\n | 'facebook'\n | 'linkedin';\n @Input() iconPosition?: 'left' | 'right' = 'left';\n @Input() boxWidth?: string;\n @Input() innerContent?: string;\n @Input() linkSizeIcon?: string;\n @Input() closeButton?: boolean;\n @Input() disabled?: boolean;\n @Input() name?: string;\n\n @Output() btnClick = new EventEmitter<void>();\n\n private readonly sanitizer = inject(DomSanitizer);\n\n get showBtn(): boolean {\n return (this.label || this.icon || this.innerContent) !== undefined;\n }\n\n get width(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n this.boxWidth ? `--size-btn-box: ${this.boxWidth}` : ''\n );\n }\n\n get linkIconStyle(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n this.linkSizeIcon\n ? `--btns-size-icon-links: ${this.linkSizeIcon}`\n : ''\n );\n }\n\n get isInternalLink(): boolean {\n return this.linkType === 'internal';\n }\n\n btnClicked(event: Event) {\n if (this.linkType === 'internal' || this.linkType === 'redirect') {\n event?.preventDefault();\n }\n this.btnClick.emit();\n }\n}\n\nexport type ButtonType =\n | 'light-box'\n | 'dark-box'\n | 'dark-box-white'\n | 'dark-box-filled'\n | 'dark-link'\n | 'light-circle'\n | 'dark-circle'\n | 'dark-circle-filled';\n","@if (showBtn) { @if (url) { @if (isInternalLink) {\n<a\n class=\"btn\"\n [ngClass]=\"{\n 'btn--box':\n type === 'light-box' ||\n type === 'dark-box-white' ||\n type === 'dark-box' ||\n type === 'dark-box-filled',\n 'btn--dark': type === 'dark-box' || type === 'dark-circle',\n 'btn--dark-white': type === 'dark-box-white',\n 'btn--dark-filled':\n type === 'dark-box-filled' || type === 'dark-circle-filled',\n 'btn--light': type === 'light-box' || type === 'light-circle',\n 'btn--circle--social-media': socialMedia,\n disabled: disabled,\n 'btn--circle':\n type === 'dark-circle' ||\n type === 'light-circle' ||\n type === 'dark-circle-filled',\n 'btn--close': closeButton,\n 'btn--link': type === 'dark-link'\n }\"\n [routerLink]=\"[url]\"\n target=\"_self\"\n [style]=\"width\"\n [href]=\"url\"\n [attr.aria-label]=\"label\"\n (click)=\"btnClicked($event)\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n} @else {\n<a\n class=\"btn\"\n [ngClass]=\"{\n 'btn--box':\n type === 'light-box' ||\n type === 'dark-box-white' ||\n type === 'dark-box' ||\n type === 'dark-box-filled',\n 'btn--dark': type === 'dark-box' || type === 'dark-circle',\n 'btn--dark-white': type === 'dark-box-white',\n 'btn--dark-filled':\n type === 'dark-box-filled' || type === 'dark-circle-filled',\n 'btn--light': type === 'light-box' || type === 'light-circle',\n 'btn--circle--social-media': socialMedia,\n disabled: disabled,\n 'btn--circle':\n type === 'dark-circle' ||\n type === 'light-circle' ||\n type === 'dark-circle-filled',\n 'btn--close': closeButton,\n 'btn--link': type === 'dark-link'\n }\"\n target=\"_blank\"\n [style]=\"width\"\n [href]=\"url\"\n [attr.aria-label]=\"label\"\n (click)=\"btnClicked($event)\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n} } @else {\n<!--BUTTON BOX-->\n@if(type === 'light-box' || type ==='dark-box-white' || type ==='dark-box' ||\ntype ==='dark-box-filled') {\n<button\n class=\"btn btn--box\"\n [ngClass]=\"{\n 'btn--dark': type === 'dark-box',\n 'btn--dark-white': type === 'dark-box-white',\n 'btn--dark-filled': type === 'dark-box-filled',\n 'btn--light': type === 'light-box',\n 'disabled': disabled,\n }\"\n [style]=\"width\"\n (click)=\"btnClicked($event)\"\n [attr.disabled]=\"disabled ? true : null\"\n [name]=\"name\"\n [attr.aria-label]=\"name\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n}\n<!--BUTTON CIRCLE-->\n@if(type === 'light-circle' || type === 'dark-circle' || type ===\n'dark-circle-filled') {\n<div class=\"btn--circle-container\">\n <button\n class=\"btn btn--circle btn--circle--{{ socialMedia }}\"\n [ngClass]=\"{\n 'btn--circle--social-media': socialMedia,\n 'btn--dark': type === 'dark-circle',\n 'btn--light': type === 'light-circle',\n 'btn--dark-filled': type === 'dark-circle-filled',\n 'btn--close': closeButton\n }\"\n (click)=\"btnClicked($event)\"\n [name]=\"name\"\n [attr.aria-label]=\"name\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</div>\n}\n\n<!--BUTTON LINK-->\n@if (type === 'dark-link') {\n<p class=\"btn btn--link\" (click)=\"btnClicked($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</p>\n} } }\n\n<ng-template #content>\n <!--BUTTON BOX-->\n @if(type === 'light-box' || type ==='dark-box-white' || type ==='dark-box'\n || type ==='dark-box-filled') {\n\n <div class=\"btn--box-container\">\n @if(icon && iconPosition === 'left' ) {\n <mat-icon\n fontSet=\"icomoon\"\n class=\"btn--box-icon\"\n [ngClass]=\"icon\"\n ></mat-icon>\n }\n\n {{ label }}\n\n @if(icon && iconPosition === 'right') {\n <mat-icon\n fontSet=\"icomoon\"\n class=\"btn--box-icon\"\n [ngClass]=\"icon\"\n ></mat-icon>\n }\n </div>\n\n }\n <!--BUTTON CIRCLE-->\n @if(type === 'light-circle' || type === 'dark-circle' || type ===\n 'dark-circle-filled') { @if (icon) {\n <mat-icon\n fontSet=\"icomoon\"\n [ngClass]=\"icon\"\n class=\"btn--circle-icon\"\n ></mat-icon>\n\n } }\n\n <!--BUTTON LINK-->\n @if (type === 'dark-link') { @if(icon && iconPosition === 'left' ) {\n <mat-icon\n fontSet=\"icomoon\"\n [ngClass]=\"icon\"\n class=\"btn--link-icon\"\n ></mat-icon>\n } @if (label) {\n {{ label }}\n } @else {\n <span [innerHTML]=\"innerContent\"></span>\n } @if(icon && iconPosition === 'right') {\n <mat-icon\n fontSet=\"icomoon\"\n [ngClass]=\"icon\"\n class=\"btn--link-icon\"\n [style]=\"linkIconStyle\"\n ></mat-icon>\n } }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Calendar, CalendarModule } from 'primeng/calendar';\n\n@Component({\n selector: 'tent-datepicker',\n standalone: true,\n imports: [CommonModule, CalendarModule, FormsModule, MatIconModule],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DatepickerComponent implements ControlValueAccessor {\n @ViewChild('datepicker') datepicker!: Calendar;\n @Input() value?: Date[];\n @Input() title?: string;\n @Input() placeholder?: string;\n @Input() icon?: string;\n @Input() isDisabled = false;\n @Input() bordered = false;\n @Input() sameTitlePlaceholder = false;\n\n @Output() change = new EventEmitter<typeof this.value>();\n\n dateFormat = 'dd-mm-yy';\n minDate = new Date();\n\n onChange = (_: Date[] | undefined) => {};\n onTouch = () => {};\n\n dateChange(date: Date[] | undefined): void {\n this.value = date;\n\n if (date && this.sameTitlePlaceholder && !this.title) {\n this.title = this.placeholder;\n }\n\n this.onTouch();\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n openCalendar(): void {\n this.datepicker.toggle();\n }\n\n //Control value accessor\n\n writeValue(value: Date[] | undefined): void {\n if (value) {\n this.value = value;\n } else {\n this.value = undefined;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"datepicker--wrapper\">\n <div class=\"datepicker--content\">\n @if (title) {\n <p class=\"datepicker--title\">\n {{ title }}\n </p>\n }\n <p-calendar\n class=\"datepicker\"\n [showOtherMonths]=\"false\"\n [minDate]=\"minDate\"\n [dateFormat]=\"dateFormat\"\n [(ngModel)]=\"value\"\n [disabled]=\"isDisabled\"\n selectionMode=\"range\"\n [numberOfMonths]=\"2\"\n [placeholder]=\"placeholder\"\n (ngModelChange)=\"dateChange($event)\"\n #datepicker\n >\n </p-calendar>\n </div>\n\n <mat-icon\n (click)=\"openCalendar()\"\n fontSet=\"icomoon\"\n class=\"datepicker--icon flex-row flex-row--center\"\n [ngClass]=\"icon\"\n ></mat-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n forwardRef,\n viewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Dropdown, DropdownModule } from 'primeng/dropdown';\n\n@Component({\n selector: 'tent-dropdown',\n standalone: true,\n imports: [CommonModule, DropdownModule, FormsModule, CommonModule],\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true,\n },\n ],\n})\nexport class DropdownComponent implements ControlValueAccessor, OnInit {\n @Input() value?: DropdownOption;\n @Input() placeholder?: string;\n @Input() title?: string;\n @Input() smallTitle?: string;\n @Input() options?: DropdownOption[];\n @Input() name!: string;\n @Input() iconLeft?: string;\n @Input() error?: string;\n @Input() theme?: string;\n @Input() valid = true;\n @Input() isDisabled = false;\n @Input() light = false;\n @Input() showTitleTop = false;\n @Input() sameTitlePlaceholder = false;\n @Input() staticPosition = true;\n\n @Output() change = new EventEmitter<DropdownOption>();\n @Output() dropdownBlur = new EventEmitter<void>();\n\n optionsWithSubcategories: DropdownOption[] = [];\n\n isThereSubcategories?: boolean;\n\n onChange = (_: DropdownOption | undefined) => {};\n onTouch = () => {};\n\n constructor(\n private readonly renderer: Renderer2,\n private readonly cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this.isThereSubcategories = this.options?.some(\n (option) => option.subcategories !== undefined\n );\n if (this.isThereSubcategories) {\n this.options?.forEach((option) => {\n this.optionsWithSubcategories.push(option);\n\n if (option.subcategories?.length) {\n option.subcategories.forEach((suboption) => {\n this.optionsWithSubcategories.push(suboption);\n });\n }\n });\n\n this.options = this.optionsWithSubcategories;\n }\n }\n\n onShowDropdown(): void {\n if (this.isThereSubcategories) {\n let i = 0;\n this.options?.forEach((option) => {\n if (!option.subcategories?.length && i > 0) {\n this.renderer.setStyle(\n document.getElementsByTagName('p-dropdownitem')[i]\n .children[0],\n 'padding-left',\n '30px'\n );\n } else {\n this.renderer.setStyle(\n document.getElementsByTagName('p-dropdownitem')[i]\n .children[0],\n 'font-weight',\n '700'\n );\n }\n i++;\n });\n }\n }\n\n valueChange(value: DropdownOption | undefined): void {\n this.value = value;\n\n if (value && this.sameTitlePlaceholder && !this.title) {\n this.title = this.placeholder;\n }\n\n this.onTouch();\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n //Control value accessor\n\n writeValue(value: DropdownOption | undefined): void {\n if (value) {\n this.value = value;\n } else {\n this.value = undefined;\n }\n this.cdr.markForCheck();\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n\nexport interface DropdownOption {\n name: string;\n code: string;\n subcategories?: DropdownOption[];\n ticker?: string;\n}\n","<div\n class=\"dropdown--wrapper\"\n [ngClass]=\"{\n 'dropdown--wrapper--light': light,\n 'dropdown--wrapper--laundry': theme === 'theme-laundry',\n invalid: !valid\n }\"\n>\n <div class=\"dropdown--content\">\n @if (iconLeft) {\n <mat-icon\n fontset=\"icomoon\"\n class=\"color--brown\"\n [ngClass]=\"iconLeft\"\n ></mat-icon>\n }\n <div class=\"dropdown--dropdown\">\n @if (title) {\n <div class=\"dropdown--title-wrapper\">\n <span class=\"dropdown--title color--brown\">\n {{ title }}\n </span>\n @if (smallTitle) {\n <small class=\"dropdown--small-title\">\n {{ smallTitle }}\n </small>\n\n }\n </div>\n\n }\n <p-dropdown\n [ngClass]=\"{\n 'dropdown--big': iconLeft,\n 'dropdown--static': staticPosition\n }\"\n class=\"dropdown\"\n [options]=\"options\"\n [(ngModel)]=\"value\"\n optionLabel=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [name]=\"name\"\n dropdownIcon=\"icon-pointer-down\"\n (ngModelChange)=\"valueChange($event)\"\n (onShow)=\"onShowDropdown()\"\n (onHide)=\"dropdownBlur.emit()\"\n >\n </p-dropdown>\n </div>\n </div>\n <span class=\"icon-pointer-down dropdown--icon\"></span>\n</div>\n@if (!valid) {\n<span class=\"form-error\">{{ error }}</span>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\n\n@Component({\n selector: 'tent-input',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true,\n },\n ],\n})\nexport class InputComponent implements InputI, ControlValueAccessor {\n @Input() type!: 'email' | 'password' | 'text' | 'number' | 'file' | 'tel';\n @Input() value?: string | File = '';\n @Input() placeholder?: string;\n @Input() icon?: string;\n @Input() title?: string;\n @Input() required?: boolean;\n @Input() name!: string;\n @Input() error?: string;\n @Input() isDisabled = false;\n @Input() valid = true;\n @Input() iconBackOffice = false;\n\n @Output() change = new EventEmitter<string | File>();\n @Output() inputBlur = new EventEmitter<void>();\n\n onChange = (_: string | File) => {};\n onTouch = () => {};\n\n constructor() {}\n\n onInputChange(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n\n if (this.type === 'tel') {\n inputElement.value = inputElement.value.replace(/[^0-9+]/g, '');\n }\n\n if (this.type === 'file') {\n const files = inputElement.files;\n if (files && files.length > 0) {\n this.valueChange(Array.from(files)[0]); // Maneja archivos\n }\n } else {\n this.valueChange(inputElement.value); // Maneja valores de texto\n }\n }\n\n valueChange(value: string | File): void {\n this.value = value;\n this.onChange(value);\n this.onTouch();\n this.change.emit(value);\n this.inputBlur.emit();\n }\n\n getValuePath(): string {\n return (this.value as File)?.name ?? '';\n }\n\n //Control value accessor\n\n writeValue(value: string | File): void {\n this.value = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"flex-col\">\n @if (title) {\n <p class=\"input--title\">\n @if (required) {\n <span class=\"input--required\"></span>\n }\n {{ title }}\n </p>\n }\n <div class=\"input--wrapper\" [ngClass]=\"{ invalid: !valid }\">\n <input\n class=\"input\"\n [name]=\"name\"\n [type]=\"type\"\n [value]=\"type !== 'file' ? value : ''\"\n [placeholder]=\"placeholder ?? ''\"\n (change)=\"onInputChange($event)\"\n [attr.accept]=\"type === 'file' ? 'application/pdf' : null\"\n (blur)=\"inputBlur.emit()\"\n />\n @if (type === 'file' && value) {\n <span class=\"input--path\">{{ getValuePath() }}</span>\n } @if (icon) {\n <span\n class=\"input--icon \"\n [ngClass]=\"{ 'input--icon--backoffice': iconBackOffice }\" >\n <span class=\"icon-{{ icon }}\">\n </span>\n </span>\n }\n </div>\n @if (!valid) {\n <span class=\"form-error\">\n {{ error }}\n </span>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n CarouselComponent,\n CarouselModule,\n OwlOptions,\n} from 'ngx-owl-carousel-o';\n\n@Component({\n selector: 'tent-advantages',\n standalone: true,\n imports: [CommonModule, CarouselModule, MatIconModule],\n templateUrl: './advantages.component.html',\n styleUrl: './advantages.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdvantagesComponent {\n @ViewChild(CarouselComponent) carousel!: CarouselComponent;\n\n @Input() title?: string;\n @Input() items?: AdvantageItem[];\n @Input() sliderControls = [\n '/assets/tent/img/arrow-left.svg',\n '/assets/tent/img/arrow-right.svg',\n ];\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n nav: false,\n navText: [\n '<img src=\"/assets/tent/img/arrow-left.svg\" alt=\"left\" class=\" \" >',\n '<img src=\"/assets/tent/img/arrow-right.svg\" alt=\"left\" class=\" \" >',\n ],\n responsive: {\n 0: {\n items: 1,\n margin: 0,\n },\n 688: {\n items: 2,\n margin: 0,\n },\n 1024: {\n items: 2,\n margin: 0,\n },\n 1130: {\n items: 3,\n margin: 0,\n },\n },\n };\n\n prevClick(): void {\n this.carousel.prev();\n }\n\n nextClick(): void {\n this.carousel.next();\n }\n}\n\nexport interface AdvantageItem {\n title: string;\n icon: string;\n}\n","<section class=\"advantages module-spacer--bottom\">\n <div class=\"advantages--content wrapper-big\">\n @if (title) {\n <h4 class=\"title--42 pb--20 color--brown\">{{ title }}</h4>\n }\n\n <div class=\"advantages--box\">\n <owl-carousel-o\n class=\"slider-arrows--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) { @if (item.title) {\n <ng-template carouselSlide>\n <div class=\"advantages--slide flex-row flex-row--between\">\n <p class=\"advantages--text color--brown\">\n {{ item.title }}\n </p>\n\n @if (item.icon) {\n <mat-icon\n [ngClass]=\"item.icon\"\n class=\"color--brown\"\n fontSet=\"icomoon\"\n ></mat-icon>\n }\n\n <div class=\"advantages--separator\"></div>\n </div>\n </ng-template>\n\n } }\n </owl-carousel-o>\n <div class=\"advantages--nav\">\n <div class=\"advantages--nav--inner\">\n <div class=\"advantages--nav--left\">\n <img\n (click)=\"prevClick()\"\n [src]=\"sliderControls[0]\"\n alt=\"left\"\n class=\"\"\n />\n </div>\n <div class=\"advantages--nav--right\">\n <img\n (click)=\"nextClick()\"\n [src]=\"sliderControls[1]\"\n alt=\"right\"\n class=\" \"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\n@Component({\n selector: 'tent-brunch-gallery',\n standalone: true,\n imports: [],\n templateUrl: './brunch-gallery.component.html',\n styleUrl: './brunch-gallery.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrunchGalleryComponent {\n @Input() title?: string;\n @Input() ndTitle?: string;\n @Input() images?: string[];\n @Input() holidayHouse?: boolean;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustUrl(\n `background-image: url(${image})`\n );\n }\n}\n","@if (!holidayHouse) {\n<div class=\"brunch-gallery wrapper-big brunch-gallery-box\">\n <div class=\"brunch-gallery--image-group\">\n <div class=\"brunch-gallery--inner\">\n @if (title) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-mobile\"\n >\n {{ title }}\n </h1>\n } @if (images?.length) {\n <div class=\"brunch-gallery--grid\">\n @for (img of images; track $index) { @if ($index < 6 ) {\n <div class=\"brunch-gallery--item\" [id]=\"'item-' + ($index + 1)\">\n @if ($index === 0) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-desktop\"\n >\n {{ title }}\n </h1>\n }\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n\n } } @if (ndTitle) {\n <div class=\"brunch-gallery--item\" id=\"item-8\">\n <h1 class=\"brunch-gallery--title title--54 color--camel\">\n {{ ndTitle }}\n </h1>\n </div>\n }\n </div>\n }\n </div>\n </div>\n</div>\n\n} @else {\n<!-- //Holiday -->\n<div\n class=\"brunch-gallery wrapper-big module-spacer--bottom holiday-gallery-box\"\n>\n <div class=\"brunch-gallery--image-group\">\n <div class=\"brunch-gallery--inner\">\n @if (title) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-mobile\"\n >\n {{ title }}\n </h1>\n\n } @if (images?.length) {\n <div class=\"brunch-gallery--grid\">\n @for (img of images; track $index) { @if ($index < 8 ) {\n <div class=\"brunch-gallery--item\" [id]=\"'item-' + ($index + 1)\">\n @if ($index === 0) {\n <h1\n class=\"brunch-gallery--title title--60 color--brown title-desktop\"\n >\n {{ title }}\n </h1>\n }\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n } }\n </div>\n }\n </div>\n </div>\n</div>\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Renderer2 } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { YouTubePlayerModule } from '@angular/youtube-player';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-brunch',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n YouTubePlayerModule,\n MatProgressSpinnerModule,\n ],\n templateUrl: './brunch.component.html',\n styleUrl: './brunch.component.scss',\n})\nexport class BrunchComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n @Input() image?: ImageI;\n @Input() video?: ImageI;\n @Input() timmingTitle?: string;\n @Input() timmingItems?: TimingItem[];\n showMore = false;\n\n tag!: HTMLScriptElement;\n playerVars!: YT.PlayerVars;\n apiloaded = false;\n loading = true;\n\n constructor(private readonly renderer: Renderer2) {}\n\n toggleShowMore(): void {\n this.showMore = !this.showMore;\n }\n\n // ngOnInit(): void {\n // this.playerVars = {\n // enablejsapi: 1,\n // autoplay: 1,\n // controls: 0,\n // showinfo: 0,\n // modestbranding: 1,\n // loop: 1,\n // fs: 1,\n // cc_load_policy: 1,\n // iv_load_policy: 3,\n // autohide: 1,\n // rel: 0,\n // playsinline: 1,\n // playlist: this.video?.src,\n // };\n // if (this.video) {\n // this.initPlayer();\n // }\n // }\n\n // onStateChange(e: any) {\n // e.target.setPlaybackQuality('highres');\n // if (e.data == YT.PlayerState.PLAYING) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.PAUSED) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.ENDED) {\n // e.target.mute();\n // e.target.seekTo(0);\n // e.target.playVideo();\n // }\n // }\n\n // initPlayer(): void {\n // const existingScript = Array.from(\n // document.getElementsByTagName('script')\n // ).find((script) => script.src === 'https://www.youtube.com/iframe_api');\n\n // if (!existingScript) {\n // this.tag = document.createElement('script');\n // this.tag.src = 'https://www.youtube.com/iframe_api';\n // this.tag.async = true;\n // const firstScriptTag = document.getElementsByTagName('script')[0];\n // firstScriptTag.parentNode?.insertBefore(this.tag, firstScriptTag);\n\n // (window as any)['onYouTubeIframeAPIReady'] = () => {\n // this.apiloaded = true;\n // };\n // } else {\n // this.apiloaded = true;\n // }\n // }\n\n // onPlayerReady(event: any) {\n // event.target.mute();\n // event.target.seekTo(1, true);\n // event.target.playVideo();\n // }\n}\n\nexport interface TimingItem {\n label: string;\n icon?: string;\n}\n","<div class=\"wrapper-big module-spacer--bottom\">\n <div class=\"brunch\">\n @if (video || image) {\n <div class=\"brunch--video-wrapper figure-sticky\">\n @if (video) {\n <div class=\"brunch--video\">\n <!-- @if (loading) {\n <mat-spinner></mat-spinner>\n } @if (apiloaded) {\n <youtube-player\n #ytPlayer\n [videoId]=\"video.src\"\n suggestedQuality=\"highres\"\n [showBeforeIframeApiLoads]=\"true\"\n [playerVars]=\"playerVars\"\n (stateChange)=\"onStateChange($event)\"\n (ready)=\"onPlayerReady($event)\"\n [disablePlaceholder]=\"true\"\n >\n </youtube-player\n >} -->\n <video\n loop\n muted\n playsinline\n autoplay\n preload=\"auto\"\n width=\"100%\"\n height=\"100%\"\n oncanplay=\"this.play()\"\n onloadedmetadata=\"this.muted = true\"\n >\n @if (video) {\n <source [src]=\"video.src + '.webm'\" type=\"video/webm\" />\n <source [src]=\"video.src + '.mp4'\" type=\"video/mp4\" />\n }\n </video>\n </div>\n } @else if (image) {\n <img\n class=\"brunch--video\"\n [src]=\"image.src\"\n [alt]=\"image.alt\"\n width=\"600\"\n height=\"600\"\n loading=\"lazy\"\n />\n }\n </div>\n }\n <div class=\"brunch--content-wrapper\">\n @if (title) {\n <h2 class=\"brunch--title title--60 color--brown\">{{ title }}</h2>\n } @if (description) {\n <p class=\"brunch--description text\">\n {{ description }}\n </p>\n } @if (showMore && additionalDescription) {\n <p class=\"brunch--description text\">\n {{ additionalDescription }}\n </p>\n\n } @if (additionalDescription && links?.length) { @if (!showMore) {\n <tent-button\n class=\"brunch--show-more\"\n type=\"dark-link\"\n [label]=\"links?.[0]?.label\"\n (btnClick)=\"toggleShowMore()\"\n [name]=\"links?.[0]?.label\"\n >\n </tent-button>\n } @else {\n <tent-button\n type=\"dark-link\"\n [label]=\"links?.[1]?.label\"\n (btnClick)=\"toggleShowMore()\"\n [name]=\"links?.[1]?.label\"\n >\n </tent-button>\n } } @if (timmingItems?.length) {\n <div class=\"brunch--timing-info\">\n @if (timmingTitle) {\n <p class=\"brunch--timing-title\">horarios</p>\n }\n <ul class=\"brunch--timing-list\">\n @for (item of timmingItems; track $index) { @if (item.label)\n {\n <li class=\"brunch--timing-item\">\n @if (item.icon) {\n <span\n class=\"brunch--timing-item--icon\"\n [ngClass]=\"item.icon\"\n ></span>\n }\n <span class=\"brunch--timing-item--text\">\n {{ item.label }}\n </span>\n </li>\n } }\n </ul>\n </div>\n }\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { RouterModule } from '@angular/router';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\n\n@Component({\n selector: 'tent-cards-2col',\n standalone: true,\n imports: [ButtonComponent, RouterModule],\n templateUrl: './cards-2col.component.html',\n styleUrl: './cards-2col.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Cards2colComponent {\n @Input() itemLeft?: Cards2colItem;\n @Input() itemRight?: Cards2colItem;\n\n get itemLeftLink(): string {\n return this.itemLeft?.btns?.[0]?.url!;\n }\n\n get itemRightLink(): string {\n return this.itemRight?.btns?.[0]?.url!;\n }\n\n linkClicked(event: Event): void {\n event.preventDefault();\n }\n}\n\nexport interface Cards2colItem {\n title: string;\n titleLight: string;\n description: string;\n image: ImageI;\n imageBackground: string;\n btns?: ButtonI[];\n}\n","<section class=\"services-col2 wrapper-big module-spacer--bottom\">\n <div class=\"services-col2--content\">\n @if (itemLeft) {\n <div class=\"services-col2--box\">\n <a\n [routerLink]=\"itemLeftLink\"\n class=\"services-col2--box--inner bg-blue\"\n [href]=\"itemLeftLink\"\n [attr.aria-label]=\"itemLeft.title\"\n (click)=\"linkClicked($event)\"\n >\n <div class=\"services-col2--box--info\">\n @if (itemLeft.image) {\n <img\n [src]=\"itemLeft.image.src\"\n [alt]=\"itemLeft.image.alt\"\n width=\"208\"\n height=\"85\"\n class=\"services-col2--logoTitle\"\n />\n } @if (itemLeft.imageBackground) {\n <img\n [src]=\"itemLeft.imageBackground\"\n [alt]=\"itemLeft.image.alt\"\n loading=\"lazy\"\n width=\"450\"\n height=\"400\"\n class=\"services-col2--markWater water1\"\n />\n } @if (itemLeft.title && itemLeft.description) {\n <div class=\"services-col2--des\">\n <h3 class=\"services-col2--title title--42 color--blue\">\n {{ itemLeft.title }}\n @if (itemLeft.titleLight) {\n <span class=\"color--white\">{{\n itemLeft.titleLight\n }}</span>\n }\n </h3>\n <p class=\"services-col2--text text color--white\">\n {{ itemLeft.description }}\n </p>\n </div>\n }\n </div>\n <tent-button\n class=\"services-col2--btn-plus\"\n type=\"dark-circle-filled\"\n icon=\"icon-plus\"\n name=\"icon-plus\"\n ></tent-button>\n </a>\n </div>\n\n } @if (itemRight) {\n <div class=\"services-col2--box\">\n <a\n [routerLink]=\"itemRightLink\"\n class=\"services-col2--box--inner bg-camel\"\n [href]=\"itemRightLink\"\n (click)=\"linkClicked($event)\"\n [attr.aria-label]=\"itemRight.title\"\n >\n <div class=\"services-col2--box--info\">\n @if (itemRight.image) {\n <img\n [src]=\"itemRight.image.src\"\n [alt]=\"itemRight.image.alt\"\n class=\"services-col2--logoTitle\"\n width=\"174\"\n height=\"61\"\n />\n } @if (itemRight.imageBackground) {\n <img\n [src]=\"itemRight.imageBackground\"\n [alt]=\"itemRight.image.alt\"\n loading=\"lazy\"\n class=\"services-col2--markWater water2\"\n width=\"450\"\n height=\"400\"\n />\n } @if (itemRight.title && itemRight.description) {\n <div class=\"services-col2--des\">\n <h3 class=\"services-col2--title title--42 color--brown\">\n {{ itemRight.title }}\n @if (itemRight.titleLight) {\n <span class=\"color--white\">{{\n itemRight.titleLight\n }}</span>\n }\n </h3>\n <p class=\"services-col2--text text color--white\">\n {{ itemRight.description }}\n </p>\n </div>\n }\n </div>\n <tent-button\n class=\"services-col2--btn-plus\"\n type=\"dark-circle-filled\"\n icon=\"icon-plus\"\n name=\"icon-plus\"\n ></tent-button>\n </a>\n </div>\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-cards-3col',\n standalone: true,\n imports: [CommonModule, CarouselModule, ButtonComponent],\n templateUrl: './cards-3col.component.html',\n styleUrl: './cards-3col.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Cards3colComponent {\n @Input() items!: Cards3colItem[];\n @Input() theme?: string;\n\n collapsed = true;\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> <span><div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> <span><div>',\n ],\n responsive: {\n 0: {\n items: 1,\n loop: true,\n },\n 540: {\n items: 1,\n loop: true,\n },\n 714: {\n items: 2,\n },\n 1024: {\n items: 3,\n },\n 1280: {\n items: 3,\n },\n 1366: {\n items: 3,\n },\n 1680: {\n items: 3,\n },\n },\n nav: true,\n };\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface Cards3colItem {\n title: string;\n smalltitle: string;\n ndTitle: string;\n icon: string;\n btnCollapsed: ButtonI;\n btn: ButtonI;\n}\n","<section class=\"services-col3 wrapper-big module-spacer--bottom\">\n <div class=\"services-col3--content\">\n <owl-carousel-o\n class=\"services-col3--slider slider-circle--center slider-circle--center--centerFull\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"services-col3--slide\">\n <div\n class=\"services-col3--box\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n [ngClass]=\"{\n close: collapsed,\n open: !collapsed,\n 'bg-yellow': $index === 0,\n 'bg-orange': $index === 1,\n 'bg-brown': $index === 2,\n 'bg-blue': $index === 0 && theme == 'theme-loyalty'\n }\"\n >\n <div class=\"services-col3--box--inner\">\n @if (item.title) {\n <h4\n class=\"services-col3--titleTop title--42 color--brown\"\n [innerHTML]=\"item.title\"\n ></h4>\n } @if (item.smalltitle) {\n <p\n class=\"services-col3--btn color--brown\"\n [ngClass]=\"{\n 'theme-loyalty': theme === 'theme-loyalty'\n }\"\n >\n @if (item.icon) {\n <span\n [ngClass]=\"item.icon\"\n class=\"services-col3--icon\"\n ></span>\n }\n <span class=\"title--30\">\n {{ item.smalltitle }}</span\n >\n </p>\n } @if (item.ndTitle) {\n <h3\n class=\"services-col3--titleBottom title--54 color--brown\"\n [innerHTML]=\"item.ndTitle\"\n ></h3>\n }\n </div>\n @if (item.btn && item.btnCollapsed) { @if (collapsed) {\n <tent-button\n class=\"services-col3--btn-plus\"\n type=\"dark-circle-filled\"\n [icon]=\"item.btnCollapsed.icon\"\n (click)=\"toggleCollapse()\"\n [name]=\"item.btnCollapsed.icon\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"services-col3--btn-plus\"\n type=\"dark-circle-filled\"\n [icon]=\"item.btn.icon\"\n (click)=\"toggleCollapse()\"\n [name]=\"item.btn.icon\"\n ></tent-button>\n\n } }\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { tap } from 'rxjs';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\nimport { TextareaI } from '../../../interfaces/atomic/textarea.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\nimport { InputComponent } from '../../atomic/input/input.component';\n\n@Component({\n selector: 'tent-contact-form',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n MatCheckboxModule,\n InputComponent,\n DropdownComponent,\n ReactiveFormsModule,\n FormsModule,\n ],\n templateUrl: './contact-form.component.html',\n styleUrl: './contact-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContactFormComponent implements AfterViewInit {\n @Input() title?: string;\n @Input() description?: string;\n @Input() conditions?: string;\n @Input() requiredFieldsLabel?: string;\n @Input({ required: true }) dropdown!: DropdownI;\n @Input({ required: true }) inputs!: InputI[];\n @Input({ required: true }) textarea!: TextareaI;\n @Input() button?: ButtonI;\n\n @Output() formSubmit = new EventEmitter<ContactFormValue>();\n\n form!: FormGroup;\n\n isValid = signal(false);\n\n formReady = signal(false);\n\n constructor(private readonly fb: FormBuilder) {}\n\n ngAfterViewInit(): void {\n this.initializeForm();\n }\n\n initializeForm(): void {\n this.form = this.fb.group({\n dropdown: [this.dropdown.value, [Validators.required]],\n email: [\n this.inputs[1].value,\n [\n Validators.required,\n Validators.minLength(3),\n Validators.email,\n ],\n ],\n name: [\n this.inputs[0].value,\n [Validators.required, Validators.minLength(3)],\n ],\n textarea: [this.textarea.value],\n checkbox: [false, [Validators.requiredTrue]],\n });\n\n this.form.statusChanges\n .pipe(\n tap((status) => {\n this.isValid.set(status === 'VALID');\n })\n )\n .subscribe();\n\n this.formReady.set(true);\n }\n\n validateInput(name: string) {\n this.inputs[name === 'name' ? 0 : 1].valid =\n this.form.controls[name].errors === null;\n }\n\n validateDropdown(): void {\n this.dropdown.valid = this.form.controls['dropdown'].errors === null;\n }\n\n submitForm(): void {\n this.formSubmit.emit(this.form.value);\n this.resetForm();\n }\n\n resetForm(): void {\n this.form.reset();\n this.dropdown.value = undefined;\n this.textarea.value = '';\n this.inputs.forEach((input) => {\n input.value = '';\n });\n }\n}\n\nexport interface ContactFormValue {\n dropdown?: DropdownOption;\n email: string;\n name: string;\n checkbox: boolean;\n textarea?: string;\n}\n","<section class=\"contact-form\">\n @if (title || description) {\n <div class=\"flex-col contact-form--header\">\n @if (title) {\n <h3 class=\"contact-form--title color--brown\">\n {{ title }}\n </h3>\n } @if (description) {\n <p class=\"contact-form--description\">\n {{ description }}\n </p>\n }\n </div>\n } @if (formReady()) {\n <form class=\"contact-form--form\" [formGroup]=\"form\">\n <div class=\"contact-form--left\">\n @if (dropdown) {\n <div class=\"contact-form--dropdown flex-col\">\n <p class=\"contact-form--msg--title\">\n <span class=\"input--required\"></span>{{ dropdown.title }}\n </p>\n <tent-dropdown\n [options]=\"dropdown.options\"\n formControlName=\"dropdown\"\n name=\"hotels\"\n [value]=\"dropdown.value\"\n [valid]=\"dropdown.valid!\"\n [error]=\"dropdown.error\"\n (dropdownBlur)=\"validateDropdown()\"\n ></tent-dropdown>\n </div>\n } @if (inputs && inputs.length) { @for (input of inputs; track\n $index; let first = $first) {\n <tent-input\n [iconBackOffice]=\"true\"\n [title]=\"input.title\"\n [name]=\"input.name\"\n [type]=\"input.type\"\n [placeholder]=\"input.placeholder\"\n [icon]=\"input.icon\"\n [required]=\"true\"\n [value]=\"input.value!\"\n [error]=\"input.error\"\n [valid]=\"input.valid!\"\n (inputBlur)=\"validateInput(first ? 'name' : 'email')\"\n [formControlName]=\"first ? 'name' : 'email'\"\n ></tent-input>\n\n } }\n </div>\n <div class=\"contact-form--right\">\n @if (textarea) {\n <div class=\"contact-form--msg flex-col\">\n <p class=\"contact-form--msg--title\">\n {{ textarea.title }}\n </p>\n <textarea\n class=\"contact-form--msg--textarea\"\n [placeholder]=\"textarea.placeholder\"\n [value]=\"textarea.value\"\n name=\"textarea\"\n formControlName=\"textarea\"\n ></textarea>\n </div>\n\n }\n <div class=\"contact-form--footer\">\n <div class=\"flex-col\">\n <div class=\"contact-form--checkbox--wrapper\">\n <mat-checkbox\n class=\"contact-form--checkbox\"\n formControlName=\"checkbox\"\n ></mat-checkbox>\n @if (conditions) {\n <span\n class=\"contact-form--conditions color--brown\"\n [innerHTML]=\"conditions\"\n >\n </span>\n }\n </div>\n @if (requiredFieldsLabel) {\n <span class=\"contact-form--required--text\">\n <span class=\"contact-form--required\"></span>\n {{ requiredFieldsLabel }}\n </span>\n }\n </div>\n\n @if (button) {\n <tent-button\n class=\"contact-form--submit\"\n type=\"dark-box-filled\"\n boxWidth=\"240px\"\n [label]=\"button.label\"\n [disabled]=\"!isValid()\"\n (btnClick)=\"submitForm()\"\n [name]=\"button.label\"\n ></tent-button>\n }\n </div>\n </div>\n </form>\n }\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-contact-office',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule],\n templateUrl: './contact-office.component.html',\n styleUrl: './contact-office.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContactOfficeComponent {\n @Input() images?: string[];\n @Input() title?: string;\n @Input() links?: ButtonI[];\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n\n collapsed = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n","<section class=\"contact-office module-spacer--bottom\">\n <div class=\"contact-office--content wrapper-big\">\n <div class=\"contact-office--box info-right\">\n @if (images && images.length) {\n <owl-carousel-o\n class=\"contact-office--slider slider-circle--center figure-sticky\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <div class=\"contact-office--photo figure-content\">\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n }\n <div\n class=\"contact-office--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n <div class=\"contact-office--info--inner\">\n @if (title) {\n <h2\n class=\"contact-office--info--title title--30 color--brown-70\"\n >\n {{ title }}\n </h2>\n } @if (links && links.length) {\n <ul class=\"contact-office--list\">\n @for (link of links; track $index; let last = $last) {\n <li [ngClass]=\"{ 'border-top': last }\">\n <span class=\"contact-office--icon\"\n ><span [ngClass]=\"link.icon\"></span\n ></span>\n @if (!last) {\n <a\n [innerHTML]=\"link.label\"\n [href]=\"link.url\"\n class=\"text link\"\n [attr.aria-label]=\"link.label\"\n >\n </a>\n } @else {\n <span [innerHTML]=\"link.label\" class=\"text\"> </span>\n }\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-delivery-app',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './delivery-app.component.html',\n styleUrl: './delivery-app.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeliveryAppComponent {\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() buttons?: ButtonI[];\n}\n","<section class=\"delivery-app module-spacer--bottom\">\n <div class=\"delivery-app--content wrapper-big\">\n <div class=\"delivery-app--box\">\n <div class=\"delivery-app--info\">\n @if (title) {\n <h2 class=\"delivery-app--title title--60 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h2>\n } @if (buttons?.length && buttons) {\n <div class=\"delivery-app--btns btns-desktop\">\n @if (buttons[0]) {\n <tent-button\n type=\"dark-box-white\"\n [label]=\"buttons[0].label\"\n [name]=\"buttons[0].label\"\n [url]=\"buttons[0].url\"\n [linkType]=\"buttons[0].linkType\"\n icon=\"icon-google-play\"\n ></tent-button>\n } @if (buttons[1]) {\n <tent-button\n type=\"dark-box-white\"\n [label]=\"buttons[1].label\"\n [name]=\"buttons[1].label\"\n [url]=\"buttons[1].url\"\n [linkType]=\"buttons[1].linkType\"\n icon=\"icon-apple\"\n ></tent-button>\n }\n </div>\n }\n </div>\n <div class=\"delivery-app--photo\">\n <img\n src=\"/assets/tent/img/movil.png\"\n alt=\"delivery\"\n loading=\"lazy\"\n class=\" \"\n width=\"\"\n height=\"\"\n />\n </div>\n @if (description) {\n <div class=\"delivery-app--des\">\n <p class=\"text\">\n {{ description }}\n </p>\n </div>\n } @if (buttons?.length && buttons) {\n <div class=\"delivery-app--btns btns-mobile\">\n @if (buttons[0]) {\n <tent-button\n type=\"dark-box\"\n [label]=\"buttons[0].label\"\n [name]=\"buttons[0].label\"\n [url]=\"buttons[0].url\"\n [linkType]=\"buttons[0].linkType\"\n icon=\"icon-google-play\"\n ></tent-button>\n } @if (buttons[1]) {\n <tent-button\n type=\"dark-box\"\n [label]=\"buttons[1].label\"\n [name]=\"buttons[1].label\"\n [url]=\"buttons[1].url\"\n [linkType]=\"buttons[1].linkType\"\n icon=\"icon-apple\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-destination-hotels',\n standalone: true,\n imports: [ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './destination-hotels.component.html',\n styleUrl: './destination-hotels.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DestinationHotelsComponent {\n @Input() items?: DestinationHotelItem[];\n @Input() title?: string;\n @Input() titleDark?: string;\n\n @Output() hotelClick = new EventEmitter<DestinationHotelItem>();\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> <span><div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> <span><div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1000: {\n items: 2,\n },\n 1680: {\n items: 2,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n}\n\nexport interface DestinationHotelItem {\n id: string | number;\n image?: string;\n title?: string;\n ndTitle?: string;\n button?: ButtonI;\n link?: ButtonI;\n}\n","<section class=\"destination-hotels module-spacer--bottom\">\n <div class=\"destination-hotels--content wrapper-big\">\n @if (title) {\n <div class=\"destination-hotels--head\">\n <h3 class=\"destination-hotels--title title--80 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h3>\n </div>\n } @if (items?.length) {\n <div class=\"destination-hotels--inner\">\n <owl-carousel-o\n class=\"destination-hotels--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"destination-hotels--slide\">\n @if (item.image) {\n <div class=\"destination-hotels--img\">\n <div\n class=\"destination-hotels--photo figure-content\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n </div>\n </div>\n } @if (item.title || item.button || item.link) {}\n <div class=\"destination-hotels--des\">\n @if (item.title) {\n <h4\n class=\"destination-hotels--slideTitle color--brown title--42\"\n >\n {{ item.title }}\n @if (item.ndTitle) {\n <span class=\"color--brown\">{{\n item.ndTitle\n }}</span>\n }\n </h4>\n } @if (item.button ||item.link) {\n <div class=\"destination-hotels--btns\">\n @if (item.button) {\n <tent-button\n type=\"dark-box-filled\"\n class=\"btn-small\"\n [label]=\"item.button.label\"\n [url]=\"item.button.url\"\n [linkType]=\"item.button.linkType\"\n ></tent-button>\n } @if (item.link) {\n <tent-button\n type=\"dark-link\"\n [label]=\"item.link.label\"\n [url]=\"item.link.url\"\n [linkType]=\"item.link.linkType\"\n (btnClick)=\"hotelClick.emit(item)\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n }\n </div>\n</section>\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[lazyBackground]',\n standalone: true,\n})\nexport class LazyBackgroundDirective implements OnInit {\n @Input() lazyBackground?: string;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n const element = this.el.nativeElement;\n\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n element.style.backgroundImage = `url(${this.lazyBackground})`;\n observer.unobserve(element);\n }\n });\n });\n\n observer.observe(element);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-destination-info',\n standalone: true,\n imports: [ButtonComponent, LazyBackgroundDirective],\n templateUrl: './destination-info.component.html',\n styleUrl: './destination-info.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DestinationInfoComponent {\n @Input() image!: string;\n @Input() title!: string;\n @Input() bannerTitle!: string;\n @Input() bannerDescription?: string;\n @Input() titleDark!: string;\n @Input() buttons!: ButtonI[];\n\n constructor() {}\n}\n","<section class=\"destinantion-info module-spacer--bottom\">\n <div class=\"destinantion-info--content wrapper-big\">\n @if (title) {\n <h3 class=\"destinantion-info--title title--80 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h3>\n }\n <div class=\"destinantion-info--inner\">\n @if (image) {\n <div class=\"destinantion-info--photo figure-content\">\n <figure class=\"figure-full\" [lazyBackground]=\"image\"></figure>\n </div>\n }\n <div class=\"destinantion-info--des bg-brown-90\">\n @if (bannerTitle) {\n <h4 class=\"title--54 color--white\">\n {{ bannerTitle }}\n </h4>\n } @if (bannerDescription) {\n <p class=\"text color--white\">\n {{ bannerDescription }}\n </p>\n } @if (buttons.length) {\n <div\n class=\"destinantion-info--btns flex-row flex-row--left mt--20\"\n >\n @for (btn of buttons; track $index) {\n <tent-button\n type=\"light-box\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-destination-list',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './destination-list.component.html',\n styleUrl: './destination-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DestinationListComponent {\n @Input() infoTitle?: string;\n @Input() infoTitleDark?: string;\n @Input() infoDescription?: string;\n @Input() items?: DestinationListItem[];\n\n @Output() destinyClick = new EventEmitter<string>();\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n destinyClicked(item: DestinationListItem) {\n this.destinyClick.emit(item.id);\n }\n}\n\nexport interface DestinationListItem {\n id?: string;\n image?: string;\n title?: string;\n subtitle?: string;\n button?: ButtonI;\n link?: ButtonI;\n}\n","@if (items?.length) {\n<section class=\"destination-list module-spacer--bottom\">\n <div class=\"destination-list--content wrapper-big\">\n <div class=\"destination-list--inner\">\n @for (item of items; track $index) {\n <div class=\"destination-list--item\">\n <a\n [href]=\"item.link?.url\"\n [routerLink]=\"item.link?.url\"\n (click)=\"$event.preventDefault(); destinyClicked(item)\"\n class=\"destination-list--photo figure-content figure-zoom\"\n [attr.aria-label]=\"item.title\"\n >\n @if (item.image) {\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n } @if (item.title || item.subtitle) {\n <div class=\"destination-list--info\">\n @if (item.title) {\n <h2 class=\"offer-detail--tit title--38 color--white\">\n {{ item.title }}\n </h2>\n } @if (item.subtitle) {\n <h3 class=\"subtitle--medium\">{{ item.subtitle }}</h3>\n }\n </div>\n }\n </a>\n @if (item.button || item.link) {\n\n <div class=\"destination-list--btns\">\n @if (item.button) {\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"item.button.label\"\n [linkType]=\"item.button.linkType!\"\n [url]=\"item.button.url\"\n (btnClick)=\"destinyClicked(item)\"\n ></tent-button>\n } @if (item.link) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"item.link.label\"\n acka\n [linkType]=\"item.link.linkType!\"\n [url]=\"item.link.url\"\n (btnClick)=\"destinyClicked(item)\"\n ></tent-button\n >}\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n}\n\n<section class=\"module-info module-spacer--bottom\">\n <div class=\"module-info--content wrapper-big\">\n <div class=\"module-info--inner\">\n <div class=\"module-info--box\">\n @if (infoTitle) {\n <h3 class=\"module-info--title title--80 color--camel\">\n {{ infoTitle }}\n @if (infoTitleDark) {\n\n <span class=\"color--brown\"> {{ infoTitleDark }} </span>}\n </h3>\n } @if (infoDescription) {\n <div class=\"module-info--des\">\n <p class=\"text\">\n {{ infoDescription }}\n </p>\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tent-employment-benefits',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './employment-benefits.component.html',\n styleUrl: './employment-benefits.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmploymentBenefitsComponent {\n @Input() title?: string;\n @Input() items?: EmploymentBenefitsItem[];\n}\n\nexport interface EmploymentBenefitsItem {\n icon?: string;\n title?: string;\n}\n","<section class=\"employment-benefits module-spacer--bottom\">\n <div class=\"employment-benefits--content wrapper-big\">\n <div class=\"employment-benefits--box\">\n @if (title) {\n <div class=\"employment-benefits--info\">\n <h2 class=\"employment-benefits--title title--60 color--brown\">\n {{ title }}\n </h2>\n </div>\n } @if (items && items.length) {\n <div class=\"employment-benefits--list\">\n @for (item of items; track $index) {\n <div class=\"employment-benefits--item bg-beige\">\n <div class=\"employment-benefits--item--inner\">\n @if (item.title) {\n <h3 class=\"title--24 color--brown-70\">\n {{ item.title }}\n </h3>\n } @if (item.icon) {\n <span\n [ngClass]=\"item.icon\"\n class=\"employment-benefits--icon\"\n ></span>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { InputComponent } from '../../atomic/input/input.component';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { tap } from 'rxjs';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-employment-form',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n MatCheckboxModule,\n InputComponent,\n FormsModule,\n ReactiveFormsModule,\n ],\n templateUrl: './employment-form.component.html',\n styleUrl: './employment-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmploymentFormComponent {\n @Input() inputs?: InputI[];\n @Input() conditionsLink?: string;\n @Input() requiredLabel?: string;\n @Input() title?: string;\n @Input() button?: ButtonI;\n\n @Output() formSubmit = new EventEmitter();\n\n form: FormGroup = this.fb.group({\n checkbox: [false, [Validators.requiredTrue]],\n });\n\n formReady = false;\n\n isValid = signal(false);\n\n constructor(private readonly fb: FormBuilder) {}\n\n ngOnInit(): void {\n this.initializeForm();\n }\n\n initializeForm(): void {\n this.inputs?.forEach((input) => {\n this.form.addControl(\n input.name,\n new FormControl(\n input.value,\n input.name === 'email'\n ? [\n Validators.required,\n Validators.email,\n Validators.minLength(3),\n ]\n : [Validators.required, Validators.minLength(3)]\n )\n );\n });\n\n this.form.statusChanges\n .pipe(\n tap((status) => {\n this.isValid.set(status === 'VALID');\n })\n )\n .subscribe();\n\n this.formReady = true;\n }\n\n validateInput(name: string) {\n this.inputs!.find((input) => input.name === name)!.valid =\n this.form.controls[name].errors === null;\n }\n\n submitForm(): void {\n this.formSubmit.emit(this.form.value);\n this.resetForm();\n }\n\n resetForm(): void {\n this.form.reset();\n this.inputs?.forEach((input) => {\n input.value = '';\n });\n }\n}\n","<section class=\"employment-form--wrapper\">\n <div class=\"employment-form\">\n @if (title) {\n <h3 class=\"employment-form--title color--brown\">\n {{ title }}\n </h3>\n } @if (formReady) {\n <form class=\"employment-form--form\" [formGroup]=\"form\">\n @if (inputs && inputs.length) {\n <div class=\"employment-form--form--wrapper\">\n @for (input of inputs; track $index) {\n <tent-input\n [title]=\"input.title\"\n [type]=\"input.type\"\n [placeholder]=\"input.placeholder\"\n [icon]=\"input.icon\"\n [required]=\"true\"\n [formControlName]=\"input.name\"\n [valid]=\"input.valid!\"\n [error]=\"input.error\"\n [name]=\"input.name\"\n (inputBlur)=\"validateInput(input.name)\"\n [ngClass]=\"{ 'input-cv': $last }\"\n ></tent-input>\n }\n </div>\n }\n <div class=\"employment-form--footer\">\n <div class=\"flex-col\">\n <div class=\"employment-form--checkbox--wrapper\">\n <mat-checkbox\n class=\"employment-form--checkbox\"\n formControlName=\"checkbox\"\n ></mat-checkbox>\n @if (conditionsLink) {\n <span\n class=\"employment-form--conditions color--brown\"\n [innerHTML]=\"conditionsLink\"\n >\n </span>\n }\n </div>\n @if (requiredLabel) {\n <span class=\"employment-form--required--text\">\n <span class=\"employment-form--required\"></span>\n {{ requiredLabel }}\n </span>\n }\n </div>\n\n @if (button) {\n <div class=\"employment-form--submit\">\n <tent-button\n type=\"dark-box-filled\"\n boxWidth=\"240px\"\n [label]=\"button.label\"\n [disabled]=\"!isValid()\"\n [name]=\"button.label\"\n (btnClick)=\"submitForm()\"\n ></tent-button>\n </div>\n }\n </div>\n </form>\n }\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-facilities-slider',\n standalone: true,\n imports: [ButtonComponent, CarouselModule, LazyBackgroundDirective],\n templateUrl: './facilities-slider.component.html',\n styleUrl: './facilities-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FacilitiesSliderComponent implements OnInit {\n @Input() iconControlLeft!: string;\n @Input() iconControlRight!: string;\n @Input() title?: string;\n @Input() items!: FacilitiesSliderItem[];\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n stagePadding: 0,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n stagePadding: 120,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n\nexport interface FacilitiesSliderItem {\n image: string;\n title: string;\n description: string;\n buttons: ButtonI[];\n}\n","<section class=\"rooms-slider module-spacer--bottom\">\n <div class=\"rooms-slider--content wrapper-big\">\n @if (title) {\n <div class=\"rooms-slider--head\">\n <h3 class=\"rooms-slider--title title--80 color--camel\">\n {{ title }}\n </h3>\n </div>\n }\n <owl-carousel-o\n class=\"rooms-slider--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"rooms-slider--slide\">\n @if (item.title) {\n <h4 class=\"rooms-slider--slideTitle color--brown title--80\">\n {{ item.title }}\n </h4>\n } @if (item.image) {\n <div class=\"rooms-slider--photo figure-content\">\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"item.image\"\n ></figure>\n </div>\n } @if (item.buttons.length || item.description) {\n <div class=\"rooms-slider--des\">\n <div class=\"rooms-slider--des-inner bg-white\">\n @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n } @if (item.buttons.length) {\n <div class=\"rooms-slider--btns pt--20\">\n @for (button of item.buttons; track $index) {\n <tent-button\n type=\"dark-box\"\n [label]=\"button.label\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType!\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'tent-footer-a',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './footer-a.component.html',\n styleUrl: './footer-a.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooterAComponent {\n collapsed1 = false;\n collapsed2 = true;\n collapsed3 = true;\n collapsed4 = true;\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n toggleCollapse2(): void {\n this.collapsed2 = !this.collapsed2;\n }\n toggleCollapse3(): void {\n this.collapsed3 = !this.collapsed3;\n }\n toggleCollapse4(): void {\n this.collapsed4 = !this.collapsed4;\n }\n}\n"," \n\n\n<section class=\"footer-a module-spacer-small--bottom wrapper-medium\">\n <div class=\"footer-a--content\">\n <div class=\"footer-a--box\" [ngClass]=\"collapsed1 ? 'close' : 'open'\"> \n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse1()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4>\n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n <div class=\"footer-a--box\" [ngClass]=\"collapsed2 ? 'close' : 'open'\">\n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse2()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4>\n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n <div class=\"footer-a--box\" [ngClass]=\"collapsed3 ? 'close' : 'open'\"> \n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse3()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4>\n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n <div class=\"footer-a--box\" [ngClass]=\"collapsed4 ? 'close' : 'open'\"> \n <h4 class=\"footer-a--title\" (click)=\"toggleCollapse4()\">conecta con nosotros <span class=\"icon-collapse icon-minus\"></span></h4> \n <ul class=\"footer-a--list\">\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n <li>\n <a href=\"\" class=\"link-opacity color--brown\">\n faqs\n </a>\n </li>\n </ul> \n </div>\n </div>\n</section>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../../public-api';\n\n@Component({\n selector: 'tent-footer-b',\n standalone: true,\n imports: [ButtonComponent],\n templateUrl: './footer-b.component.html',\n styleUrl: './footer-b.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooterBComponent {\n @Input() linksWithImage?: FooterBLinkWithImage[];\n @Input() logo?: FooterBLinkWithImage;\n @Input() title?: string;\n @Input() links?: ButtonI[];\n @Input() buttons?: ButtonI[];\n}\n\nexport interface FooterBLinkWithImage {\n img: string;\n alt?: string;\n url: string;\n}\n","<section class=\"footer-b wrapper-medium\">\n <div class=\"footer-b--content\">\n @if (logo || linksWithImage?.length) {\n <div class=\"footer-b--box footer-b--box--left\">\n <div class=\"footer-b--box--inner\">\n @if (logo) {\n <a\n class=\"footer-b--logo\"\n [href]=\"logo.url\"\n target=\"_blank\"\n [attr.aria-label]=\"logo.alt\"\n >\n <img\n [src]=\"logo.img\"\n loading=\"lazy\"\n width=\"180\"\n height=\"65\"\n [alt]=\"logo.alt\"\n />\n </a>\n } @if (linksWithImage?.length) {\n <div class=\"footer-b--logos\">\n @for (link of linksWithImage; track $index) {\n <a\n class=\"footer-b--logos--logo\"\n [href]=\"link.url\"\n target=\"_blank\"\n [attr.aria-label]=\"link.alt\"\n >\n <img\n [src]=\"link.img\"\n loading=\"lazy\"\n width=\"87\"\n height=\"79\"\n [alt]=\"link.alt\"\n />\n </a>\n\n }\n </div>\n }\n </div>\n </div>\n } @if (links?.length || buttons?.length) {\n\n <div class=\"footer-b--box footer-b--box--right\">\n <div class=\"footer-b--box--inner\">\n @if (title || links?.length) {\n <div class=\"footer-b--info\">\n @if (title) {\n <h3 class=\"title--42 color--brown\">{{ title }}</h3>\n } @if (links) { @for (link of links; track $index) {\n <a\n [href]=\"link.url\"\n class=\"link-regular color--brown\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n } }\n </div>\n } @if (buttons?.length) {\n <div class=\"footer-b--btns\">\n @for (btn of buttons; track $index) {\n <tent-button\n type=\"dark-box-white\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n ></tent-button>\n\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-footer-static',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './footer-static.component.html',\n styleUrl: './footer-static.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooterStaticComponent {\n @Input({ required: true }) footerLinks?: ButtonI[];\n @Input() title?: string;\n @Input() scrollBtn?: ButtonI;\n\n isInternalLink(link: ButtonI): boolean {\n return link.linkType === 'internal';\n }\n\n linkClicked(event: Event, link: ButtonI): void {\n if (link.linkType === 'internal') {\n event.preventDefault();\n }\n }\n\n scrollClicked(): void {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","<footer class=\"footer wrapper-medium\">\n @if (title) {\n <div class=\"footer__copyright\">\n <p class=\"text color--brown text--small\">{{ title }}</p>\n </div>\n } @if (footerLinks?.length) {\n <ul class=\"footer__links\">\n @for (link of footerLinks; track $index) {\n <li class=\"footer__link\">\n @if (isInternalLink(link)) {\n <a\n class=\"link link--brown\"\n [href]=\"link.url\"\n [routerLink]=\"[link.url]\"\n (click)=\"linkClicked($event, link)\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n\n } @else {\n <a\n class=\"link link--brown\"\n [href]=\"link.url\"\n target=\"_blank\"\n (click)=\"linkClicked($event, link)\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n </ul>\n } @if (scrollBtn) {\n <div class=\"scroll-top\">\n <span class=\"text color--brown text--small\">{{ scrollBtn.label }}</span>\n <tent-button\n type=\"dark-circle\"\n [icon]=\"scrollBtn.icon\"\n (click)=\"scrollClicked()\"\n [name]=\"scrollBtn.icon\"\n ></tent-button>\n </div>\n }\n</footer>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { GalleryPhotosItem } from '../../gallery-photos/gallery-photos.component';\n\n@Component({\n selector: 'tent-room-zoom-modal',\n standalone: true,\n imports: [CommonModule, CarouselModule, ButtonComponent],\n templateUrl: './room-zoom-modal.component.html',\n styleUrl: './room-zoom-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RoomZoomModalComponent {\n @Input() title?: string;\n @Input() images?: GalleryPhotosItem[];\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n constructor(\n private readonly dialogRef: MatDialogRef<RoomZoomModalComponent>,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n close(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"room-zoom flex-col\">\n <div class=\"room-zoom--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n name=\"close\"\n ></tent-button>\n </div>\n <owl-carousel-o\n class=\"room-zoom--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <p class=\"room-zoom--title\">{{ img.title }}</p>\n <div class=\"room-zoom--image--wrapper\">\n <figure\n class=\"room-zoom--image figure-full\"\n [style]=\"getImage(img.image)\"\n ></figure>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { RoomZoomModalComponent } from '../modals/room-zoom-modal/room-zoom-modal.component';\n\n@Component({\n selector: 'tent-gallery-photos',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './gallery-photos.component.html',\n styleUrl: './gallery-photos.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GalleryPhotosComponent implements OnChanges {\n @Input({ required: true }) items!: GalleryPhotosItem[];\n @Input() links?: ButtonI[];\n\n itemsOrdered: GalleryPhotosItem[][] = [];\n collapsed = true;\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly dialog: MatDialog\n ) {}\n\n openModal(photo: GalleryPhotosItem): void {\n const dialogRef = this.dialog.open(RoomZoomModalComponent, {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n panelClass: 'full-screen',\n hasBackdrop: true,\n });\n\n dialogRef.componentInstance.images = this.items\n ?.slice(this.items.indexOf(photo))\n .concat(this.items?.slice(0, this.items.indexOf(photo)));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['items']?.currentValue) {\n this.splitArray();\n }\n }\n\n splitArray(): void {\n let i = 0;\n this.itemsOrdered = [];\n\n while (i < this.items.length) {\n if (this.itemsOrdered.length % 2 === 0) {\n this.itemsOrdered.push(this.items.slice(i, i + 4));\n i += 4;\n } else {\n this.itemsOrdered.push(this.items.slice(i, i + 3));\n i += 3;\n }\n }\n }\n\n getImageUrl(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface GalleryPhotosItem {\n image: string;\n title: string;\n category: string[];\n}\n","<section class=\"gallery-photos module-spacer--bottom-small\">\n <div class=\"gallery-photos--content wrapper-big\">\n <div class=\"gallery-photos--list\">\n @for (item of itemsOrdered; track $index) {\n @if ($index < 4 || !collapsed) {\n <div\n [ngClass]=\"{\n 'gallery-photos--box1': $index % 4 === 0,\n 'gallery-photos--box2': $index % 4 === 1,\n 'gallery-photos--box3': $index % 4 === 2,\n 'gallery-photos--box4': $index % 4 === 3,\n 'no-photo3': item.length < 3,\n }\"\n >\n @for (\n photo of item;\n let subIndex = $index;\n track subIndex\n ) {\n <div\n class=\"gallery-photos--item\"\n [ngClass]=\"'photo' + (subIndex + 1)\"\n >\n <div\n class=\"gallery-photos--photo figure-content\"\n (click)=\"openModal(photo)\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"getImageUrl(photo.image)\"\n ></figure>\n </div>\n @if (photo.title) {\n <div class=\"gallery-photos--label\">\n <p class=\"text color--brown\">\n {{ photo.title }}\n </p>\n <span\n class=\"icon-search-plus icon--size22 color--brown\"\n >\n </span>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n @if (links && links.length && items.length > 14) {\n <div class=\"gallery-photos--links\">\n @if (collapsed) {\n <tent-button\n type=\"dark-link\"\n [label]=\"links[0].label\"\n (btnClick)=\"toggleCollapse()\"\n ></tent-button>\n } @else {\n <tent-button\n type=\"dark-link\"\n [label]=\"links[1].label\"\n (btnClick)=\"toggleCollapse()\"\n ></tent-button>\n }\n </div>\n }\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\n\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumpI } from '../../../interfaces/atomic/breadcrump.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { BreadcrumpComponent } from '../../atomic/breadcrump/breadcrump.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-generic-head',\n standalone: true,\n imports: [\n CommonModule,\n DropdownComponent,\n ButtonComponent,\n BreadcrumpComponent,\n ],\n templateUrl: './generic-head.component.html',\n styleUrl: './generic-head.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GenericHeadComponent implements OnInit {\n @Input() theme?: string;\n @Input() galleryFilterOptions?: GalleryFilterOption[];\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() breadcrumps?: BreadcrumpI;\n @Input() filter?: DropdownI;\n @Input() button?: ButtonI;\n @Input() galleryBtns?: string[];\n @Input() linkMaps?: ButtonI;\n @Input() linkBack?: ButtonI;\n @Input() bigger = true;\n\n @Output() filterChange = new EventEmitter<DropdownOption>();\n @Output() filterGalleryChange = new EventEmitter<GalleryFilterOption>();\n @Output() openCategoryModal = new EventEmitter<void>();\n @Output() btnClick = new EventEmitter<void>();\n\n galleryFilterSelected!: GalleryFilterOption;\n\n constructor() {}\n\n ngOnInit(): void {\n this.galleryFilterSelected = this.galleryFilterOptions?.[0]!;\n }\n\n filterChanged(option: DropdownOption): void {\n this.filterChange.emit(option);\n }\n\n filterGalleryClicked(option: GalleryFilterOption): void {\n this.galleryFilterSelected = option;\n this.filterGalleryChange.emit(option);\n }\n\n openGalleryCategoryModal(): void {\n this.openCategoryModal.emit();\n }\n\n btnClicked(): void {\n this.btnClick.emit();\n }\n}\n\nexport interface GalleryFilterOption {\n id?: string | number;\n label?: string;\n rooms?: boolean;\n room?: boolean;\n allCategories?: boolean;\n videoSrc?: string;\n}\n","<section\n class=\"generic-head-module\"\n [ngClass]=\"{ 'module-spacer-small--bottom': title || titleDark }\"\n>\n <div class=\"wrapper-big\">\n <div\n class=\"generic-head\"\n [ngClass]=\"{ 'generic-head--bigger': bigger }\"\n >\n @if (breadcrumps?.breadcrumps && breadcrumps) {\n <tent-breadcrump\n class=\"generic-head--breadcrumps\"\n [ngClass]=\"{ 'generic-head--breadcrumps--absolute': titleDark }\"\n [breadcrumps]=\"breadcrumps.breadcrumps\"\n [selected]=\"\n breadcrumps.breadcrumps[breadcrumps.breadcrumps.length - 1]\n \"\n ></tent-breadcrump>\n }\n <div class=\"generic-head--content\">\n @if (title) {\n <h1\n class=\"generic-head--title title--80 color--camel\"\n [ngClass]=\"{\n 'generic-head--title--laundry': theme === 'laundry'\n }\"\n >\n {{ title }}\n <span class=\"color--brown\">{{ titleDark }}</span>\n </h1>\n }\n <div [ngClass]=\"{ 'generic-head--content--end': linkMaps }\">\n @if (filter) {\n <div class=\"generic-head--filter\">\n <tent-dropdown\n [options]=\"filter.options\"\n [placeholder]=\"filter.placeholder\"\n [value]=\"filter.value\"\n (change)=\"filterChanged($event)\"\n ></tent-dropdown>\n </div>\n\n } @if (galleryFilterOptions) {\n <div class=\"generic-head--filter-gallery\">\n @for (filter of galleryFilterOptions; track $index) {\n @if (!filter.room) {\n <span\n class=\"generic-head--gallery-option\"\n [ngClass]=\"{\n 'generic-head--gallery-option--selected':\n filter === galleryFilterSelected\n }\"\n (click)=\"filterGalleryClicked(filter)\"\n >\n {{ filter.label }}\n </span>\n } } @if (galleryBtns?.length) { @if (galleryBtns?.[0] &&\n galleryBtns) {\n <div\n class=\"generic-head--gallery-btn\"\n (click)=\"openGalleryCategoryModal()\"\n >\n <span class=\"generic-head--gallery-btn--text\">\n {{ galleryBtns[0] }}\n </span>\n <span\n class=\"generic-head--gallery-btn--icon icon-menu\"\n ></span>\n </div>\n } }\n </div>\n } @if (button) {\n <tent-button\n class=\"generic-head--contact\"\n type=\"dark-box\"\n [label]=\"button.label\"\n [url]=\"button.url\"\n (btnClick)=\"btnClicked()\"\n ></tent-button>\n } @if (linkMaps) {\n <a\n class=\"generic-head--location\"\n [href]=\"linkMaps.url\"\n target=\"_blank\"\n [attr.aria-label]=\"linkMaps.label\"\n >\n <span\n class=\"generic-head--location--icon icon-map\"\n ></span>\n <p class=\"text link\">{{ linkMaps.label }}</p>\n </a>\n } @if (linkBack) {\n <tent-button\n type=\"dark-link\"\n [label]=\"linkBack.label\"\n [icon]=\"linkBack.icon\"\n iconPosition=\"left\"\n linkSizeIcon=\"8px\"\n [url]=\"linkBack.url\"\n (btnClick)=\"btnClicked()\"\n ></tent-button>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-guests-popup',\n standalone: true,\n imports: [CommonModule, DropdownComponent, ButtonComponent],\n templateUrl: './guests-popup.component.html',\n styleUrl: './guests-popup.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GuestsPopupComponent implements OnInit {\n @Input() adultsDropdown!: DropdownI;\n @Input() kidsDropdown!: DropdownI;\n @Input() ageDropdown!: DropdownI;\n @Input() babysDropdown!: DropdownI;\n @Input() title?: string;\n @Input() kidLabel?: string;\n @Input() btnApply!: ButtonI;\n @Input() modal?: boolean;\n\n @Output() appliedData = new EventEmitter<GuestsValue>();\n\n kids?: number[] = [];\n applied = false;\n\n kidsOption!: DropdownOption;\n adultsOption!: DropdownOption;\n babysOption!: DropdownOption;\n\n ages: number[] = [];\n\n ngOnInit(): void {\n this.kidsOption = this.kidsDropdown.options![0];\n this.adultsOption = this.adultsDropdown.options![0];\n this.babysOption = this.babysDropdown.options![0];\n }\n\n kidsChange(option: DropdownOption) {\n this.kids = [];\n this.kidsOption = option;\n for (let i = 0; i < Number(option.code); i++) {\n this.kids?.push(i);\n }\n\n this.ages = Array(this.kids.length).fill(\n Number(this.ageDropdown.options[0].code)\n );\n\n const popup = document.getElementsByClassName('p-dialog-mask')[0];\n\n if (popup) {\n if (Number(option.code) > 2) {\n popup.classList.add('bigger');\n } else {\n if (popup.classList.contains('bigger')) {\n popup.classList.remove('bigger');\n }\n }\n }\n }\n\n agesChange(kidIndex: number, option: DropdownOption): void {\n this.ages[kidIndex] = Number(option.code);\n }\n\n babysChange(option: DropdownOption): void {\n this.babysOption = option;\n }\n\n adultsChange(option: DropdownOption): void {\n this.adultsOption = option;\n }\n\n applyData(): void {\n this.appliedData.emit({\n adults: Number(this.adultsOption?.code) ?? 0,\n kids: Number(this.kidsOption?.code) ?? 0,\n babys: Number(this.babysOption?.code) ?? 0,\n kidsAges: this.ages ?? [],\n totalGuests:\n Number(this.babysOption?.code) +\n Number(this.kidsOption?.code) +\n Number(this.adultsOption?.code),\n } as GuestsValue);\n }\n}\n\nexport interface GuestsValue {\n adults?: number;\n kids?: number;\n babys?: number;\n kidsAges?: number[];\n totalGuests: number;\n}\n","<div class=\"guests flex-col flex-col--center\">\n <tent-dropdown\n [title]=\"adultsDropdown.title\"\n iconLeft=\"icon-user\"\n [options]=\"adultsDropdown.options\"\n [showTitleTop]=\"true\"\n [value]=\"adultsDropdown.options[0]\"\n (change)=\"adultsChange($event)\"\n ></tent-dropdown>\n <tent-dropdown\n [title]=\"kidsDropdown.title\"\n iconLeft=\"icon-user-small\"\n [smallTitle]=\"kidsDropdown.smallTitle\"\n [options]=\"kidsDropdown.options\"\n [value]=\"kidsDropdown.options[0]\"\n [showTitleTop]=\"true\"\n (change)=\"kidsChange($event)\"\n ></tent-dropdown>\n\n <div\n class=\"guests--kids\"\n [ngClass]=\"{ 'guests--kids--show': !applied && kids?.length }\"\n >\n @if (title) {\n <header class=\"guests--kids--header\">\n <p class=\"color--brown guests--kids--header--title\">edades</p>\n </header>\n }\n\n <div class=\"guests--kids--content\">\n @for (kid of kids; track $index; let even = $even, last = $last) {\n <div\n class=\"guests--kids--dropdown\"\n [ngClass]=\"{\n 'guests--kids--dropdown--centered': even && last\n }\"\n >\n <span class=\"color--brown guests--kids--title\"\n >{{ kidLabel }}{{ $index + 1 }}</span\n >\n <tent-dropdown\n [light]=\"true\"\n [options]=\"ageDropdown.options\"\n [value]=\"ageDropdown.options[0]\"\n (change)=\"agesChange($index, $event)\"\n ></tent-dropdown>\n </div>\n }\n </div>\n </div>\n\n <tent-dropdown\n [ngClass]=\"{ 'guests--babys': applied || !kids?.length }\"\n [showTitleTop]=\"true\"\n [title]=\"babysDropdown.title\"\n iconLeft=\"icon-user-small\"\n [smallTitle]=\"babysDropdown.smallTitle\"\n [value]=\"babysDropdown.options[0]\"\n [options]=\"babysDropdown.options\"\n (change)=\"babysChange($event)\"\n ></tent-dropdown>\n\n <tent-button\n class=\"guests--btn\"\n type=\"dark-box-filled\"\n [label]=\"btnApply.label\"\n boxWidth=\"240px\"\n (btnClick)=\"applyData()\"\n [name]=\"btnApply.label\"\n ></tent-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ButtonI, RightBtn } from '../../../../public-api';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-header-mobile',\n standalone: true,\n imports: [CommonModule, ButtonComponent, MatIconModule, BadgeComponent],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent {\n @Input() btnBook?: ButtonI;\n @Input() lang?: string;\n @Input() hotelId?: string;\n @Input() phoneLink?: RightBtn;\n @Input() advantages?: BadgeI;\n @Output() motorClick = new EventEmitter<void>();\n @Output() advantagesClick = new EventEmitter<void>();\n constructor() {}\n\n openMotor(): void {\n this.motorClick.emit();\n }\n}\n","<nav class=\"header-mobile\">\n <div class=\"header-mobile--buttons\">\n @if (advantages) {\n <tent-badge\n class=\"advantages\"\n [label]=\"advantages.label\"\n [icon]=\"advantages.icon\"\n [rounded]=\"true\"\n (click)=\"advantagesClick.emit()\"\n ></tent-badge>\n <span class=\"advantages--noBadge\" (click)=\"advantagesClick.emit()\">\n {{ advantages.label }}\n </span>\n }\n @if (btnBook) {\n <tent-button\n (btnClick)=\"openMotor()\"\n type=\"dark-box-filled\"\n [label]=\"btnBook.label\"\n [name]=\"btnBook.label\"\n class=\"header-mobile--button\"\n ></tent-button>\n <div\n data-type=\"chain\"\n data-currency=\"EUR\"\n [attr.data-locale]=\"lang\"\n data-mirai-id=\"502045\"\n [attr.data-hotel]=\"hotelId\"\n class=\"header-mobile--button--mirai\"\n ></div>\n }\n </div>\n @if (phoneLink) {\n <a\n class=\"header-mobile--phone-link\"\n [href]=\"phoneLink.url\"\n [attr.aria-label]=\"phoneLink.label\"\n >\n <mat-icon\n [ngClass]=\"phoneLink.icon\"\n class=\"color--brown\"\n ></mat-icon>\n <span class=\"color--brown\">{{ phoneLink.label }}</span>\n </a>\n }\n</nav>\n","import { CommonModule, Location } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-hotel-list-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './hotel-list-modal.component.html',\n styleUrl: './hotel-list-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelListModalComponent implements OnInit {\n @Input() hotels?: HotelListModalCity[];\n @Input() button?: ButtonI;\n @Input() destinyButton?: ButtonI;\n @Input() title?: string;\n\n @Output() elementClick = new EventEmitter<ElementObject>();\n\n collapsed: boolean[] = [];\n\n constructor(private readonly location: Location) {}\n\n ngOnInit(): void {\n if (this.hotels?.length) {\n this.collapsed = new Array(this.hotels.length).fill(true);\n }\n }\n\n elementClicked(\n event: Event | undefined,\n element: ButtonI,\n type: ElementType\n ): void {\n event?.preventDefault();\n this.elementClick.emit({ element, type });\n }\n\n toggleCollapsed(index: number): void {\n this.collapsed[index] = !this.collapsed[index];\n }\n\n back(): void {\n this.location.back();\n }\n}\n\nexport interface HotelListModalCity {\n city: ButtonI;\n items: HotelListModalItem[];\n region?: string;\n}\n\nexport interface HotelListModalItem {\n title: ButtonI;\n hotels: {\n img: string;\n btn: ButtonI;\n }[];\n}\n\nexport type ElementType = 'destinyParent' | 'destiny' | 'hotel';\nexport interface ElementObject {\n element: ButtonI;\n type: ElementType;\n}\n","<div class=\"hotel-list\">\n <div class=\"hotel-list--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n (btnClick)=\"back()\"\n ></tent-button>\n </div>\n\n <!--DESKTOP-->\n\n @if (button) {\n <div class=\"hotel-list--btn\">\n <tent-button\n type=\"dark-box\"\n [label]=\"button.label\"\n boxWidth=\"308px\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType!\"\n class=\"hotel-list--main-button\"\n ></tent-button>\n </div>\n }\n\n <div class=\"hotel-list--content\">\n @for (destiny of hotels; track $index) {\n <div class=\"hotel-list--container\">\n <div class=\"hotel-list--container--header\">\n @if (destiny.city) { @if (destiny.city.url) {\n <a\n [href]=\"destiny.city.url\"\n [routerLink]=\"destiny.city.url\"\n [attr.aria-label]=\"destiny.city.label\"\n (click)=\"\n elementClicked($event, destiny.city, 'destinyParent')\n \"\n class=\"hotel-list--container--title\"\n >\n {{ destiny.city.label }}\n </a>\n } @else {\n <span\n [attr.aria-label]=\"destiny.city.label\"\n (click)=\"\n elementClicked($event, destiny.city, 'destinyParent')\n \"\n class=\"hotel-list--container--title\"\n >\n {{ destiny.city.label }}\n </span>\n } } @if (destiny.region) {\n <div\n class=\"hotel-list--column--header hotel-list--column--header--region\"\n >\n <span class=\"hotel-list--column--title\">\n {{ destiny.region }}\n </span>\n </div>\n }\n </div>\n\n <div class=\"hotel-list--row\">\n @for (item of destiny.items; track $index) {\n <div class=\"hotel-list--column\">\n @if (item.title) {\n <div class=\"hotel-list--column--header\">\n <a\n [href]=\"item.title.url\"\n [attr.aria-label]=\"item.title.label\"\n [routerLink]=\"item.title.url\"\n (click)=\"\n elementClicked($event, item.title, 'destiny')\n \"\n class=\"hotel-list--column--title\"\n >\n {{ item.title.label }}\n </a>\n </div>\n } @for (element of item.hotels; track $index) {\n <div class=\"hotel-list--column--content\">\n <a\n [href]=\"element.btn.url\"\n [routerLink]=\"[element.btn.url]\"\n [attr.aria-label]=\"element.btn.label\"\n (click)=\"\n elementClicked($event, element.btn, 'hotel')\n \"\n class=\"hotel-list--column--element\"\n >\n {{ element.btn.label }}\n </a>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n\n <!--MOBILE-->\n\n <div class=\"hotel-list--content--mobile\">\n @if (title) {\n <p class=\"hotel-list--title color--camel\">{{ title }}</p>\n } @for (destiny of hotels; track $index) {\n <div class=\"hotel-list--container\">\n <div\n class=\"hotel-list--container--title--wrapper\"\n (click)=\"toggleCollapsed($index)\"\n >\n @if (destiny.city) {\n <div>\n <a\n [href]=\"destiny.city.url\"\n [routerLink]=\"destiny.city.url\"\n [attr.aria-label]=\"destiny.city.label\"\n (click)=\"\n elementClicked(\n $event,\n destiny.city,\n 'destinyParent'\n )\n \"\n class=\"hotel-list--container--title\"\n >\n {{ destiny.city.label }}\n </a>\n @if (destiny.region) {\n <div\n class=\"hotel-list--column--header hotel-list--column--header--region\"\n >\n <span class=\"hotel-list--column--title\">\n {{ destiny.region }}\n </span>\n </div>\n }\n </div>\n\n <tent-button\n [ngClass]=\"collapsed[$index] ? 'collapsed' : ''\"\n icon=\"icon-signal-up\"\n class=\"hotel-list--button-collapse\"\n type=\"dark-circle\"\n name=\"signal-up\"\n ></tent-button>\n }\n </div>\n <div\n class=\"hotel-list--row\"\n [ngClass]=\"\n collapsed[$index] ? 'hotel-list--row--collapsed' : ''\n \"\n >\n @if (destiny.items.length) { @for (item of destiny.items; track\n $index) {\n <div class=\"hotel-list--column\">\n @if (item.title) {\n <div class=\"hotel-list--column--header\">\n <a\n [href]=\"item.title.url\"\n [routerLink]=\"item.title.url\"\n [attr.aria-label]=\"item.title.label\"\n (click)=\"\n elementClicked($event, item.title, 'destiny')\n \"\n class=\"hotel-list--column--title\"\n >\n {{ item.title.label }}\n </a>\n </div>\n } @if (item.hotels.length) {\n <div class=\"hotel-list--column--content\">\n @for (element of item.hotels; track $index) {\n <a\n [href]=\"element.btn.url\"\n [routerLink]=\"[element.btn.url]\"\n [attr.aria-label]=\"element.btn.label\"\n (click)=\"\n elementClicked($event, element.btn, 'hotel')\n \"\n class=\"hotel-list--column--element\"\n >\n <div class=\"hotel-list--column--text\">\n <span>{{ element.btn.label }}</span>\n <span\n class=\"hotel-list--column--element--icon icon-pointer-down\"\n >\n </span>\n </div>\n </a>\n }\n </div>\n }\n </div>\n\n } }\n </div>\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { ButtonI } from '../../../../public-api';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { HotelListModalComponent } from '../modals/hotel-list-modal/hotel-list-modal.component';\n\n@Component({\n selector: 'tent-header',\n standalone: true,\n imports: [CommonModule, MatIconModule, ButtonComponent, RouterModule],\n templateUrl: './header.component.html',\n styleUrl: './header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n @Input() lang?: string;\n @Input() scrolled?: boolean;\n @Input({ required: true }) logo!: string;\n @Input() navLinks?: NavLink[];\n @Input() menuIcon?: string;\n @Input() altLogo?: string;\n @Input() rightButtons?: RightButtons;\n @Input() btnBook?: ButtonI;\n\n @Output() menuClick = new EventEmitter<void>();\n @Output() languagesClick = new EventEmitter<void>();\n @Output() newsletterClick = new EventEmitter<void>();\n @Output() checkinClick = new EventEmitter<void>();\n @Output() booksClick = new EventEmitter<void>();\n @Output() motorClick = new EventEmitter<void>();\n @Output() navLinkClick = new EventEmitter<NavLink>();\n\n constructor(private readonly dialog: MatDialog) {}\n\n openMotor(): void {\n this.motorClick.emit();\n }\n\n navLinkClicked(event: Event, navLink?: NavLink): void {\n event.preventDefault();\n this.navLinkClick.emit(navLink);\n }\n\n isInternalLink(navLink: NavLink): boolean {\n return navLink.type === 'internal';\n }\n\n openHotelList() {\n const dialogRef = this.dialog.open(HotelListModalComponent, {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n panelClass: ['full-screen', 'hotel-list'],\n hasBackdrop: false,\n });\n }\n}\n\nexport interface NavLink {\n label?: string;\n url?: string;\n icon?: string;\n type: 'internal' | 'external' | 'component';\n order: number;\n componentId?: string;\n}\n\nexport interface RightButtons {\n phone: RightBtn | undefined;\n books: RightBtn | undefined;\n newsletter: RightBtn | undefined;\n checkin: RightBtn | undefined;\n languages: RightBtn | undefined;\n}\n\nexport interface RightBtn {\n icon?: string;\n label: string;\n url?: string;\n comment?: string;\n}\n","<nav class=\"header\" [ngClass]=\"{ 'header--scrolled': scrolled }\">\n <div class=\"header--left-slot\">\n @if (logo) {\n <a\n (click)=\"navLinkClicked($event, navLinks![0])\"\n [routerLink]=\"\n isInternalLink(navLinks![0]) ? [navLinks![0].url] : null\n \"\n [href]=\"navLinks![0].url\"\n [attr.aria-label]=\"altLogo\"\n >\n <img\n class=\"header--logo\"\n [src]=\"logo\"\n [alt]=\"altLogo\"\n width=\"150\"\n height=\"100\"\n loading=\"lazy\"\n />\n </a>\n }\n @if (navLinks?.length) {\n <div class=\"header--nav-links\">\n @for (navLink of navLinks; track $index) {\n <a\n (click)=\"navLinkClicked($event, navLink)\"\n [routerLink]=\"\n isInternalLink(navLink) ? [navLink.url] : null\n \"\n [href]=\"navLink.url\"\n class=\"link color--brown\"\n [attr.aria-label]=\"navLink.label\"\n >{{ navLink.label }}</a\n >\n }\n </div>\n }\n @if (menuIcon) {\n <div class=\"header--menu-btn\" (click)=\"menuClick.emit()\">\n <mat-icon\n class=\"color--brown\"\n [ngClass]=\"menuIcon\"\n fontSet=\"icomoon\"\n ></mat-icon>\n </div>\n }\n </div>\n @if (rightButtons && rightButtons.checkin) {\n <div class=\"header--center-slot\">\n <div class=\"header--check-in\" (click)=\"checkinClick.emit()\">\n <span class=\"color--white\">{{\n rightButtons.checkin.label\n }}</span>\n </div>\n </div>\n }\n @if (rightButtons) {\n <div class=\"header--right-slot\">\n <div data-mirai-component=\"session\"></div>\n\n @if (rightButtons.phone) {\n <a\n [href]=\"rightButtons.phone.url\"\n class=\"color--brown header--link-phone\"\n [attr.aria-label]=\"rightButtons.phone.label\"\n >\n <mat-icon\n class=\"color--brown icon-phone-plus\"\n fontSet=\"icomoon\"\n ></mat-icon>\n <span>{{ rightButtons.phone.label }}</span>\n </a>\n }\n @if (rightButtons.books) {\n <span\n (click)=\"booksClick.emit()\"\n class=\"link color--brown header--books\"\n >\n {{ rightButtons.books.label }}\n </span>\n }\n @if (rightButtons.newsletter) {\n <span class=\"header--mail\" (click)=\"newsletterClick.emit()\">\n <mat-icon\n class=\"color--brown\"\n [ngClass]=\"rightButtons.newsletter.icon\"\n fontSet=\"icomoon\"\n ></mat-icon>\n <span class=\"header--mail-comment\">\n {{ rightButtons.newsletter.comment }}\n </span>\n </span>\n }\n @if (rightButtons.languages) {\n <span\n (click)=\"languagesClick.emit()\"\n class=\"color--brown header--language\"\n >\n {{ rightButtons.languages.label }}\n <span class=\"header--language-comment\">{{\n rightButtons.languages.comment\n }}</span></span\n >\n }\n @if (menuIcon) {\n <div class=\"header--menu-btn\" (click)=\"menuClick.emit()\">\n <mat-icon\n class=\"color--brown\"\n [ngClass]=\"menuIcon\"\n fontSet=\"icomoon\"\n ></mat-icon>\n </div>\n }\n @if (btnBook || rightButtons.checkin) {\n <div\n class=\"header--btn-book\"\n [ngClass]=\"{ 'header--btn-book--scrolled': scrolled }\"\n >\n @if (btnBook) {\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"btnBook.label\"\n (btnClick)=\"openMotor()\"\n [name]=\"btnBook.label\"\n ></tent-button>\n }\n @if (rightButtons.checkin) {\n <div\n class=\"header--check-in header--check-in--right\"\n (click)=\"checkinClick.emit()\"\n >\n <span class=\"color--white\">{{\n rightButtons.checkin.label\n }}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n</nav>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\n@Component({\n selector: 'tent-hotel-about',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './hotel-about.component.html',\n styleUrl: './hotel-about.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelAboutComponent {\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() btnMore?: ButtonI;\n @Input() btnLess?: ButtonI;\n @Input() slides?: HotelAboutSlide[];\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed1 = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n\n getImageUrl(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n\nexport interface HotelAboutSlide {\n image: ImageI;\n badge: string;\n}\n","<section class=\"hotel-about module-spacer--bottom\">\n <div class=\"hotel-about--content wrapper-big\">\n <div class=\"hotel-about--box\">\n <owl-carousel-o\n class=\"hotel-about--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (slide of slides; track $index) {\n <ng-template carouselSlide>\n <div class=\"hotel-about--photo figure-content\">\n <figure\n class=\"figure-full\"\n [style]=\"getImageUrl(slide.image.src)\"\n ></figure>\n @if (slide.badge) {\n <tent-badge\n class=\"hotel-about--badget\"\n [rounded]=\"true\"\n [label]=\"slide.badge\"\n ></tent-badge>\n\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n <div\n class=\"hotel-about--info\"\n [ngClass]=\"collapsed1 ? 'close' : 'open'\"\n >\n <div class=\"hotel-about--info--inner\">\n @if (title) {\n <h2 class=\"hotel-about--info--title title--60 color--brown\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--camel\">{{ titleDark }}</span>\n }\n </h2>\n }\n <div class=\"hotel-about--info--des\">\n @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n } @if (additionalDescription) {\n <p class=\"text text-more\">\n {{ additionalDescription }}\n </p>\n } @if (btnMore && btnLess) {\n <div class=\"hotel-about--btns\">\n @if (btnMore) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n } @if (btnLess) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\n\n@Component({\n selector: 'tent-hotel-app',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './hotel-app.component.html',\n styleUrl: './hotel-app.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelAppComponent {\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() ndTitle?: string;\n @Input() img?: ImageI;\n @Input() buttons?: ButtonI[];\n @Input() items?: HotelAppItem[];\n}\n\nexport interface HotelAppItem {\n title: string;\n icon: string;\n}\n","<section class=\"hotel-app module-spacer--bottom\">\n <div class=\"hotel-app--content wrapper-big\">\n <div class=\"hotel-app--box\">\n @if (title) {\n <header class=\"hotel-app--header\">\n <h2 class=\"hotel-app--title title--60 color--camel\">\n {{ title }}\n </h2>\n @if (titleDark) {\n <h2 class=\"hotel-app--title title--60 color--brown\">\n {{ titleDark }}\n </h2>\n }\n </header>\n }\n <div class=\"hotel-app--list\">\n @if (img) {\n <img\n class=\"hotel-app--image\"\n [src]=\"img.src\"\n loading=\"lazy\"\n alt=\"app\"\n width=\"400\"\n height=\"650\"\n />\n } @if (description) {\n <p class=\"hotel-app--description text\">\n {{ description }}\n </p>\n } @if (ndTitle) {\n <h3 class=\"hotel-app--nd-title title--30 color--brown-70\">\n {{ ndTitle }}\n </h3>\n } @if (buttons) {\n <div class=\"hotel-app--buttons\">\n <tent-button\n type=\"dark-box\"\n icon=\"icon-apple\"\n iconPosition=\"left\"\n [label]=\"buttons[0].label\"\n [url]=\"buttons[0].url\"\n [linkType]=\"buttons[0].linkType\"\n ></tent-button>\n <tent-button\n type=\"dark-box\"\n icon=\"icon-google-play\"\n iconPosition=\"left\"\n [label]=\"buttons[1].label\"\n [url]=\"buttons[1].url\"\n [linkType]=\"buttons[1].linkType\"\n ></tent-button>\n </div>\n } @if (items?.length) {\n <ul class=\"hotel-app--info\">\n @for (item of items; track $index) {\n <li class=\"hotel-app--info--element\">\n <div class=\"hotel-app--info--element--icon--wrapper\">\n <span\n class=\"hotel-app--info--element--icon\"\n [ngClass]=\"item.icon\"\n >\n </span>\n </div>\n <span class=\"hotel-app--info--element--text text\">\n {{ item.title }}\n </span>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { fromEvent, tap } from 'rxjs';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-hotel-equipment',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './hotel-equipment.component.html',\n styleUrl: './hotel-equipment.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelEquipmentComponent implements OnInit, AfterViewInit {\n @Input() items?: HotelEquipmentItem[];\n @Input() itemsBelow?: HotelEquipmentItem[];\n @Input() title?: string;\n @Input() btnMore?: ButtonI;\n @Input() btnLess?: ButtonI;\n\n collapsed1 = true;\n\n itemsToShow = 6;\n\n ngOnInit(): void {\n this.itemsToShow = window.innerWidth >= 1680 ? 6 : 4;\n }\n\n ngAfterViewInit(): void {\n fromEvent(window, 'resize')\n .pipe(\n tap(() => {\n this.itemsToShow = window.innerWidth >= 1680 ? 6 : 4;\n })\n )\n .subscribe();\n }\n\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n collapsed2 = true;\n toggleCollapse2(): void {\n this.collapsed2 = !this.collapsed2;\n }\n}\n\nexport interface HotelEquipmentItem {\n title: string;\n icon: string;\n alt: string;\n}\n","<section class=\"hotel-benefits module-spacer--bottom\">\n <div class=\"hotel-benefits--content wrapper-big\">\n <div class=\"hotel-benefits--box\">\n <div\n class=\"hotel-benefits--equipament\"\n [ngClass]=\"collapsed1 ? 'close' : 'open'\"\n >\n @if (title) {\n <div class=\"hotel-benefits--info\">\n <h2 class=\"hotel-benefits--title title--60 color--brown\">\n {{ title }}\n </h2>\n </div>\n } @if (items?.length) {\n <div class=\"hotel-benefits--list\">\n @for (item of items; track $index) {\n <div class=\"hotel-benefits--item bg-beige\">\n <div class=\"hotel-benefits--item--inner\">\n @if (item.title) {\n <h3\n class=\"title--24 color--brown-70\"\n [innerHTML]=\"item.title\"\n ></h3>\n } @if (item.icon) {\n <span\n [ngClass]=\"item.icon\"\n class=\"hotel-benefits--icon\"\n ></span>\n }\n </div>\n </div>\n }\n </div>\n } @if (btnMore && btnLess && (items?.length ?? 4) > itemsToShow)\n {\n <div class=\"hotel-benefits--btns\">\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse1()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n </div>\n }\n </div>\n @if (itemsBelow?.length) {\n <div\n class=\"hotel-benefits--services\"\n [ngClass]=\"collapsed2 ? 'close' : 'open'\"\n >\n <ul class=\"hotel-benefits--services--list\">\n @for (item of itemsBelow; track $index) {\n <li>\n <span [ngClass]=\"item.icon\"></span>\n <p class=\"text\">{{ item.title }}</p>\n </li>\n }\n </ul>\n @if (btnMore && btnLess) {\n <div class=\"hotel-benefits--btns\">\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse2()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse2()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n </div>\n }\n </div>\n\n }\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../../public-api';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-hotel-location',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './hotel-location.component.html',\n styleUrl: './hotel-location.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelLocationComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() subtitle?: string;\n @Input() image?: string;\n @Input() items?: HotelLocationsItem[];\n @Input() btnMore?: ButtonI;\n @Input() btnLess?: ButtonI;\n @Input() address?: string;\n @Input() linkMap?: string;\n collapsed = true;\n\n get getImageUrl(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface HotelLocationsItem {\n title: string;\n icon: string;\n}\n","<section class=\"hotel-location module-spacer--bottom\">\n <div\n class=\"hotel-location--content wrapper-big\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n <div class=\"hotel-location--inner\">\n <div class=\"hotel-location--inner--left\">\n @if (title) {\n <h3 class=\"hotel-location--tit title--60 color--brown\">\n {{ title }}\n </h3>\n } @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n }\n </div>\n <div class=\"hotel-location--inner--right\">\n @if (subtitle) {\n <h4 class=\"hotel-location--subtit title--24 color--brown-70\">\n {{ subtitle }}\n </h4>\n } @if (items) {\n <ul class=\"hotel-location--list\">\n @for (item of items; track $index) {\n <li>\n <span class=\"hotel-location--icon\">\n <span\n class=\"hotel-location--iconsvg\"\n [ngClass]=\"item.icon\"\n ></span>\n </span>\n <p class=\"text\">{{ item.title }}</p>\n </li>\n\n }\n </ul>\n\n }\n </div>\n @if (btnMore && btnLess) {\n <div class=\"hotel-location--btns\">\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"btnMore.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"btnMore.label\"\n ></tent-button>\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"btnLess.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"btnLess.label\"\n ></tent-button>\n </div>\n } @if (image) {\n <div class=\"hotel-location--maps\">\n <a\n class=\"hotel-location--photo figure-content\"\n [href]=\"linkMap\"\n target=\"_blank\"\n [attr.aria-label]=\"linkMap\"\n >\n <figure class=\"figure-full\" [style]=\"getImageUrl\"></figure>\n </a>\n <ul class=\"hotel-location--maps--address\">\n <li>\n <span class=\"hotel-location--icon icon-home\"></span>\n <span class=\"text\" [innerHTML]=\"address\"> </span>\n </li>\n </ul>\n </div>\n }\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-hotel-services',\n standalone: true,\n imports: [ButtonComponent, RouterModule, LazyBackgroundDirective],\n templateUrl: './hotel-services.component.html',\n styleUrl: './hotel-services.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelServicesComponent {\n @Input() title!: string;\n @Input() titleDark!: string;\n @Input() items!: HotelServicesItem[];\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n itemClicked(event: Event): void {\n event.preventDefault();\n }\n}\n\nexport interface HotelServicesItem {\n image: string;\n title?: string;\n subtitle?: string;\n description?: string;\n buttons?: ButtonI[];\n}\n","<section class=\"hotel-intro wrapper-big module-spacer--bottom\">\n <div class=\"hotel-intro--content\">\n <h2 class=\"hotel-intro--title title--80 color--camel\">\n {{ title }}\n <span class=\"color--brown\">{{ titleDark }}</span>\n </h2>\n </div>\n <div class=\"hotel-intro--services\">\n @for (item of items; track $index) {\n <div class=\"hotel-intro--service\">\n <a\n class=\"hotel-intro--photo figure-content figure-zoom\"\n [href]=\"item.buttons?.[0]?.url\"\n [routerLink]=\"item.buttons?.[0]?.url\"\n [attr.aria-label]=\"item.buttons?.[0]?.url\"\n (click)=\"itemClicked($event)\"\n >\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"item.image\"\n ></figure>\n </a>\n <div class=\"hotel-intro--info pt--10\">\n <h3 class=\"hotel-intro--title title--42 color--brown\">\n {{ item.title }}\n\n @if (item.subtitle) {\n <span class=\"title--24 color--camel\">{{\n item.subtitle\n }}</span>\n }\n </h3>\n <p class=\"hotel-intro--text text color--gray1\">\n {{ item.description }}\n </p>\n @if (item.buttons) {\n <div class=\"hotel-intro--btns flex-row flex-row--left pt--20\">\n @for (btn of item.buttons; track $index) {\n <tent-button\n type=\"dark-link\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n [icon]=\"btn.icon\"\n [iconPosition]=\"btn.iconPosition\"\n [label]=\"btn.label\"\n [name]=\"btn.label\"\n ></tent-button>\n\n }\n </div>\n\n }\n </div>\n </div>\n\n }\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-hotel-slider',\n standalone: true,\n imports: [\n ButtonComponent,\n CarouselModule,\n BadgeComponent,\n LazyBackgroundDirective,\n ],\n templateUrl: './hotel-slider.component.html',\n styleUrl: './hotel-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelSliderComponent implements OnInit {\n @Input() iconControlLeft = 'icon-signal-left';\n @Input() iconControlRight = 'icon-signal-right';\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() items?: HotelSliderItem[];\n\n @Output() hotelClick = new EventEmitter<HotelSliderItem>();\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 1024: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n\nexport interface HotelSliderItem {\n id: string | number;\n image: string;\n title: string;\n description: string;\n ndTitle?: string;\n badge: BadgeI;\n buttons: ButtonI[];\n ticker?: string;\n}\n","<section class=\"hotel-slider module-spacer--bottom\">\n <div class=\"hotel-slider--content wrapper-big\">\n @if (title) {\n <div class=\"hotel-slider--head\">\n <h3 class=\"hotel-slider--title title--80 color--camel\">\n {{ title }}\n <span class=\"color--brown\">{{ titleDark }}</span>\n </h3>\n </div>\n }\n @if (items?.length) {\n <div class=\"hotel-slider--inner\">\n <owl-carousel-o\n class=\"hotel-slider--slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"hotel-slider--slide\">\n @if (item.image) {\n <div class=\"hotel-slider--img\">\n <div\n class=\"hotel-slider--photo figure-content\"\n >\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"item.image\"\n ></figure>\n </div>\n </div>\n }\n <div class=\"hotel-slider--des\">\n <!-- @if (item.badge) {\n <tent-badge\n class=\"hotel-slider--badget\"\n [rounded]=\"true\"\n [label]=\"item.badge.label\"\n ></tent-badge>\n } -->\n @if (item.title) {\n <h4\n class=\"hotel-slider--slideTitle color--brown title--80\"\n >\n {{ item.title }}\n @if (item.ndTitle) {\n <span class=\"color--brown\">{{\n item.ndTitle\n }}</span>\n }\n </h4>\n }\n @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n }\n @if (item.buttons.length) {\n <div class=\"hotel-slider--btns pt--20\">\n @for (\n btn of item.buttons;\n track $index\n ) {\n <tent-button\n [type]=\"btn.type!\"\n [icon]=\"btn.icon\"\n [iconPosition]=\"\n btn.iconPosition\n \"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n (btnClick)=\"\n hotelClick.emit(item)\n \"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n }\n </div>\n</section>\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst CURRENCY_SYMBOLS: { [key: string]: string } = {\n USD: '$',\n EUR: '€',\n GBP: '£',\n JPY: '¥',\n AUD: 'A$',\n CAD: 'C$',\n CHF: 'CHF',\n CNY: '¥',\n SEK: 'kr',\n NZD: 'NZ$',\n};\n\n@Pipe({\n name: 'currencySymbol',\n standalone: true,\n})\nexport class CurrencyPipe implements PipeTransform {\n transform(value: string): string {\n return CURRENCY_SYMBOLS[value] || value;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { RouterModule } from '@angular/router';\n@Component({\n selector: 'tent-hotels-list',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CurrencyPipe, RouterModule],\n templateUrl: './hotels-list.component.html',\n styleUrl: './hotels-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HotelsListComponent implements OnInit, OnChanges {\n @Input() infoTitle?: string;\n @Input() infoTitleDark?: string;\n @Input() infoDescription?: string;\n @Input() links?: ButtonI[];\n @Input() items?: HotelsListItem[];\n\n @Output() hotelClick = new EventEmitter<HotelsListItem>();\n\n collapsed?: boolean[];\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.collapsed = new Array(this.items?.length).fill(true);\n this.items?.sort((a, b) => {\n const subtitleA = a.subtitle ? a.subtitle.toLowerCase() : '';\n const subtitleB = b.subtitle ? b.subtitle.toLowerCase() : '';\n const destinyA = a.parentDestiny ? Number(a.parentDestiny) : 0;\n const destinyB = b.parentDestiny ? Number(b.parentDestiny) : 0;\n return destinyA < destinyB\n ? -1\n : destinyA > destinyB\n ? 1\n : subtitleA < subtitleB\n ? -1\n : subtitleA > subtitleB\n ? 1\n : 0;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['items']?.currentValue) {\n this.collapsed = new Array(this.items?.length).fill(true);\n this.items?.sort((a, b) => {\n const subtitleA = a.subtitle ? a.subtitle.toLowerCase() : '';\n const subtitleB = b.subtitle ? b.subtitle.toLowerCase() : '';\n return subtitleA < subtitleB\n ? -1\n : subtitleA > subtitleB\n ? 1\n : 0;\n });\n }\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n toggleCollapse(index: number): void {\n if (this.collapsed?.length) {\n const itemCollapse = this.collapsed[index];\n this.collapsed.fill(true);\n this.collapsed[index] = !itemCollapse;\n }\n }\n}\n\nexport interface HotelsListItem {\n title?: string;\n ndTitle?: string;\n subtitle?: string;\n description?: string;\n additionalDescription?: string;\n priceTitle?: string;\n priceSubtitle?: string;\n price?: string | number;\n currency?: string;\n image?: string;\n services?: string[];\n button?: ButtonI;\n hotelUrl?: string;\n destinyId?: string | number;\n parentDestiny?: string | number;\n id: number;\n}\n","@if (items?.length) {\n<section class=\"hotels-list module-spacer--bottom\">\n <div class=\"hotels-list--content wrapper-big\">\n <div class=\"hotels-list--inner\">\n @for (item of items; track mainIndex; let mainIndex = $index) {\n <div class=\"hotels-list--item\">\n @if (item.image) {\n <a\n [href]=\"item.hotelUrl\"\n [routerLink]=\"[item.hotelUrl]\"\n [attr.aria-label]=\"item.title\"\n (click)=\"$event.preventDefault(); hotelClick.emit(item)\"\n class=\"hotels-list--photo figure-content figure-zoom\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"this.getImage(item.image)\"\n ></figure>\n </a>\n } @if (item.title || item.description) {\n <div\n class=\"hotels-list--info bg-white\"\n [ngClass]=\"collapsed?.[mainIndex] ? 'close' : 'open'\"\n >\n @if (item.title) {\n <a\n [href]=\"item.hotelUrl\"\n [routerLink]=\"[item.hotelUrl]\"\n [attr.aria-label]=\"item.title\"\n (click)=\"$event.preventDefault(); hotelClick.emit(item)\"\n >\n <h2 class=\"hotels-list--tit title--38 color--camel\">\n {{ item.title }} <br />{{ item.ndTitle }}\n </h2>\n </a>\n } @if (item.subtitle) {\n <h3 class=\"subtitle--medium color--brown-dark\">\n {{ item.subtitle }}\n </h3>\n } @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n } @if (item.additionalDescription) {\n <p class=\"text text-more\">\n {{ item.additionalDescription }}\n </p>\n } @if (links?.length) {\n <div class=\"hotels-list--btns\">\n @for (link of links; track $index; let first = $first) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse(mainIndex)\"\n [name]=\"link.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n } @if (item.services?.length || (item.priceTitle && item.price\n && item.currency)) {\n <ul class=\"hotels-list--services bg-beige\">\n @if (item.services?.length) { @for (service of\n item.services; track $index) {\n <li class=\"hotels-list--services--item\">\n <p class=\"text\">{{ service }}</p>\n </li>\n } } @if (item.priceTitle && item.price && item.currency) {\n <div class=\"hotels-list--footer\">\n <div class=\"hotels-list--footer--text\">\n <p class=\"hotels-list--footer--title color--brown\">\n {{ item.priceTitle }}\n </p>\n @if (item.priceSubtitle) {\n <p\n class=\"hotels-list--footer--subtitle color--brown\"\n >\n {{ item.priceSubtitle }}\n </p>\n }\n </div>\n <span class=\"hotels-list--footer--price color--brown\"\n >{{ item.price\n }}<span>{{\n item.currency | currencySymbol\n }}</span></span\n >\n </div>\n }\n </ul>\n } @if (item.button) {\n <div class=\"hotels-list--book\">\n <tent-button\n type=\"dark-box-filled\"\n class=\"btn-small\"\n [label]=\"item.button.label\"\n [url]=\"item.button.url\"\n [linkType]=\"item.button.linkType\"\n boxWidth=\"265px\"\n ></tent-button>\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n} @if(infoTitle || infoDescription){\n<section class=\"module-info module-spacer--bottom\">\n <div class=\"module-info--content wrapper-big\">\n <div class=\"module-info--inner\">\n <div class=\"module-info--box\">\n @if (infoTitle) {\n <h3 class=\"module-info--title title--80 color--camel\">\n {{ infoTitle }} @if (infoTitleDark) {\n <span class=\"color--brown\">\n {{ infoTitleDark }}\n </span>\n }\n </h3>\n } @if (infoDescription) {\n <div class=\"module-info--des\">\n <p class=\"text\" [innerHTML]=\"infoDescription\"></p>\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { YouTubePlayerModule } from '@angular/youtube-player';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-info-slider',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n CarouselModule,\n YouTubePlayerModule,\n MatProgressSpinnerModule,\n ],\n templateUrl: './info-slider.component.html',\n styleUrl: './info-slider.component.scss',\n})\nexport class InfoSliderComponent implements OnInit {\n @Input() theme?: string = '';\n @Input() infoalign?: string = 'info-right';\n @Input() images?: string[];\n @Input() title?: string;\n @Input() description?: string;\n @Input() video?: ImageI;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n @Input() slim?: boolean;\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed = true;\n\n tag!: HTMLScriptElement;\n playerVars!: YT.PlayerVars;\n apiloaded = false;\n loading = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n\n ngOnInit(): void {\n // if (this.video) {\n // this.playerVars = {\n // enablejsapi: 1,\n // autoplay: 1,\n // controls: 0,\n // showinfo: 0,\n // modestbranding: 1,\n // loop: 1,\n // fs: 1,\n // cc_load_policy: 1,\n // iv_load_policy: 3,\n // autohide: 1,\n // rel: 0,\n // playsinline: 1,\n // playlist: this.video?.src,\n // };\n // this.initPlayer();\n // }\n this.sliderOptions = {\n ...this.sliderOptions,\n navText: [\n `<div class=\"btn btn__circle btn__circle-- ${\n this.theme === 'theme-laundry'\n ? 'btn__laundry'\n : 'btn__dark'\n }\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>`,\n `<div class=\"btn btn__circle btn__circle-- ${\n this.theme === 'theme-laundry'\n ? 'btn__laundry'\n : 'btn__dark'\n }\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>`,\n ],\n };\n }\n\n // onStateChange(e: any) {\n // e.target.setPlaybackQuality('highres');\n // if (e.data == YT.PlayerState.PLAYING) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.mute();\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.PAUSED) {\n // e.target.mute();\n // setTimeout(() => {\n // e.target.mute();\n // e.target.playVideo();\n // document\n // .getElementsByTagName('youtube-player')[0]\n // .children[0].children[0].setAttribute(\n // 'style',\n // 'opacity: 1'\n // );\n // this.loading = false;\n // }, 0);\n // }\n // if (e.data == YT.PlayerState.ENDED) {\n // e.target.mute();\n // e.target.seekTo(0);\n // e.target.playVideo();\n // }\n // }\n\n // initPlayer(): void {\n // const existingScript = Array.from(\n // document.getElementsByTagName('script')\n // ).find((script) => script.src === 'https://www.youtube.com/iframe_api');\n\n // if (!existingScript) {\n // this.tag = document.createElement('script');\n // this.tag.src = 'https://www.youtube.com/iframe_api';\n // this.tag.async = true;\n // const firstScriptTag = document.getElementsByTagName('script')[0];\n // firstScriptTag.parentNode?.insertBefore(this.tag, firstScriptTag);\n\n // (window as any)['onYouTubeIframeAPIReady'] = () => {\n // this.apiloaded = true;\n // };\n // } else {\n // this.apiloaded = true;\n // }\n // }\n\n // onPlayerReady(event: any) {\n // event.target.mute();\n // event.target.seekTo(1, true);\n // event.target.playVideo();\n // }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n}\n","<section class=\"info-slider module-spacer--bottom\" [ngClass]=\"[theme]\">\n <div\n class=\"info-slider--content wrapper-big\"\n [ngClass]=\"{ 'info-slider--content--slim': slim }\"\n >\n <div class=\"info-slider--box\" [ngClass]=\"[infoalign]\">\n @if (video && video.src) {\n <div class=\"info-slider--video--wrapper\">\n <div class=\"info-slider--video\">\n <!-- @if (loading) {\n <mat-spinner></mat-spinner>\n } @if (apiloaded) {\n <youtube-player\n #ytPlayer\n [videoId]=\"video.src\"\n suggestedQuality=\"highres\"\n [showBeforeIframeApiLoads]=\"true\"\n [playerVars]=\"playerVars\"\n (stateChange)=\"onStateChange($event)\"\n (ready)=\"onPlayerReady($event)\"\n [disablePlaceholder]=\"true\"\n >\n </youtube-player\n >} -->\n <video\n loop\n [muted]=\"true\"\n playsinline\n autoplay\n preload=\"auto\"\n width=\"100%\"\n height=\"100%\"\n oncanplay=\"this.play()\"\n onloadedmetadata=\"this.muted = true\"\n >\n @if (video) {\n <source [src]=\"video.src + '.webm'\" type=\"video/webm\" />\n <source [src]=\"video.src + '.mp4'\" type=\"video/mp4\" />\n }\n </video>\n </div>\n </div>\n } @else if (images?.length) {\n <owl-carousel-o\n class=\"info-slider--slider slider-circle--center figure-sticky\"\n [ngClass]=\"{ 'info-slider--slider--slim': slim }\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <div\n class=\"info-slider--photo figure-content\"\n [ngClass]=\"{ 'info-slider--photo--slim': slim }\"\n >\n <figure\n class=\"figure-full\"\n [style]=\"getImage(img)\"\n ></figure>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n }\n <div\n class=\"info-slider--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @if (title || description) {\n <div class=\"info-slider--info--inner\">\n @if (title) {\n <h2\n class=\"location-beach--info--title title--60 color--brown\"\n >\n {{ title }}\n </h2>\n\n } @if (description) {\n <div class=\"info-slider--info--des\">\n <p class=\"text\">\n {{ description }}\n </p>\n @if (additionalDescription) {\n <p class=\"text text-more\">\n {{ additionalDescription }}\n </p>\n } @if (links?.length) {\n <div class=\"info-slider--btns\">\n @for (link of links; track $index; let first =\n $first) {\n <tent-button\n class=\"btn-more\"\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"link.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-location-beach',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './location-beach.component.html',\n styleUrl: './location-beach.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LocationBeachComponent {\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() description?: string;\n @Input() infoItems?: LocationBeachInfoItem[];\n @Input() items?: LocationBeachItem[];\n @Input() links?: ButtonI[];\n @Input() button?: ButtonI;\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n\nexport interface LocationBeachItem {\n image?: string;\n tag?: BadgeI;\n}\n\nexport interface LocationBeachInfoItem {\n title?: string;\n icon?: string;\n}\n","<section class=\"location-beach module-spacer--bottom\">\n <div class=\"location-beach--content wrapper-big\">\n <div class=\"location-beach--box info-right\">\n @if (items?.length) {\n <owl-carousel-o\n class=\"location-beach--slider slider-circle--center figure-sticky\"\n [options]=\"sliderOptions\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <div class=\"location-beach--photo figure-content\">\n @if (item.image) {\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n } @if (item.tag?.label && item.tag) {\n <tent-badge\n class=\"location-beach--badget\"\n [rounded]=\"true\"\n [label]=\"item.tag.label\"\n ></tent-badge>\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n }\n <div\n class=\"location-beach--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n <div class=\"location-beach--info--inner\">\n @if (title) {\n <h2\n class=\"location-beach--info--title title--60 color--brown\"\n >\n {{ title }}\n </h2>\n } @if (subtitle) {\n <h3\n class=\"location-beach--info--subtit subtitle color--brown-70\"\n >\n {{ subtitle }}\n </h3>\n } @if (infoItems?.length && infoItems) {\n <ul class=\"location-beach--info--icons\">\n @for (item of infoItems; track $index) {\n <li>\n <span class=\"info--icon\">\n <span\n class=\"info--icon--svg\"\n [ngClass]=\"item.icon\"\n ></span>\n </span>\n @if (item.title) {\n <p class=\"text\">{{ item.title }}</p>\n }\n </li>\n }\n </ul>\n } @if (links && links.length > 2) { @if (links[0]) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"links[0].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } @if (links[1]) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"links[1].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } } @if (description) {\n <div class=\"location-beach--info--des\">\n <p class=\"text\">\n {{ description }}\n </p>\n </div>\n } @if (button) {\n <div class=\"location-beach--info--btns\">\n <tent-button\n class=\"btn-book\"\n type=\"dark-box\"\n [linkType]=\"button.linkType\"\n [url]=\"button.url\"\n [label]=\"button.label\"\n [name]=\"button.label\"\n ></tent-button>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-location-how',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './location-how.component.html',\n styleUrl: './location-how.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LocationHowComponent {\n @Input() backgroundImage?: string;\n @Input() title?: string;\n @Input() items?: LocationHowItem[];\n @Input() links?: ButtonI[];\n\n tabActive = 'tab1';\n collapsed = true;\n\n get image(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.backgroundImage})`\n );\n }\n\n get hasItemActiveAdditionalDescription() {\n return this.items?.[Number(this.tabActive.substring(-1)) - 1]\n ?.additionalDescription;\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n\n viewTab(tabActive: string): void {\n this.tabActive = tabActive;\n }\n}\n\nexport interface LocationHowItem {\n icon?: string;\n title?: string;\n description?: string;\n additionalDescription?: string;\n}\n","<section class=\"location-how module-spacer--bottom\">\n <div class=\"location-how--content wrapper-big\">\n @if (backgroundImage) {\n <div class=\"location-how--maps figure-sticky\">\n <div class=\"location-how--photo figure-content\">\n <figure class=\"figure-full\" [style]=\"image\"></figure>\n </div>\n </div>\n }\n <div class=\"location-how--inner\" [ngClass]=\"[tabActive]\">\n @if (title) {\n <h3 class=\"location-how--tit title--60 color--brown\">\n {{ title }}\n </h3>\n } @if (items?.length && items) {\n <ul class=\"location-how--icons\">\n @for (item of items; track $index) {\n <li>\n <img\n src=\"/assets/tent/img/icon-location.svg\"\n alt=\"left\"\n loading=\"lazy\"\n width=\"59\"\n height=\"59\"\n class=\"location-how--iconactive\"\n />\n <span\n class=\"location-how--icon\"\n (click)=\"viewTab('tab' + ($index + 1))\"\n >\n <span\n class=\"location-how--icon--svg\"\n [ngClass]=\"item.icon\"\n ></span>\n </span>\n </li>\n }\n </ul>\n <div\n class=\"location-how--infor\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @for (item of items; track $index) {\n <div class=\"location-how--infor--tab\">\n @if (item.title) {\n <h3\n class=\"location-beach--info--subtit subtitle color--brown-70\"\n >\n {{ item.title }}\n </h3>\n } @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n } @if (item.additionalDescription) {\n <p class=\"text text-more\">\n {{ item.additionalDescription }}\n </p>\n }\n </div>\n\n } @if (links && links.length &&\n hasItemActiveAdditionalDescription) { @if (links[0]) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"links[0].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } @if (links[1]) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"links[1].label\"\n (click)=\"toggleCollapse()\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../../public-api';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-location-map',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './location-map.component.html',\n styleUrl: './location-map.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LocationMapComponent {\n @Input() image?: string;\n @Input() linkImage?: string;\n @Input() title?: string;\n @Input() ndTitle?: string;\n @Input() links?: ButtonI[];\n @Input() copyRight?: string;\n @Input() button?: ButtonI;\n\n @Output() btnClick = new EventEmitter<void>();\n\n get getMainImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n btnMapClicked() {\n (document.getElementById('how') as HTMLElement).scrollIntoView({\n behavior: 'smooth',\n });\n }\n}\n","<section class=\"location-map module-spacer--bottom\">\n <div class=\"location-map--content wrapper-big\">\n @if (image && linkImage) {\n <div class=\"location-map--maps\">\n <a\n class=\"location-map--photo figure-content\"\n [href]=\"linkImage\"\n target=\"_blank\"\n >\n <figure class=\"figure-full\" [style]=\"getMainImage\"></figure>\n </a>\n </div>\n }\n <div class=\"location-map--inner\">\n @if (title) {\n <h3 class=\"location-map--tit title--30 color--brown-70\">\n {{ title }}\n @if (ndTitle) {\n <span class=\"color--brown-70\"> {{ ndTitle }}</span>\n }\n </h3>\n } @if (links?.length) {\n <ul class=\"location-map--list\">\n @for (link of links; track $index) {\n <li>\n <span\n class=\"location-map--icon\"\n [ngClass]=\"{\n 'icon-home': $index === 0,\n 'icon-phone-2': $index === 1,\n 'icon-envelope': $index === 2\n }\"\n ></span>\n @if (link.linkType === 'nolink') {\n <span class=\"text text--18\" [innerHTML]=\"link.label\">\n </span>\n } @else {\n <a\n class=\"link\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n </ul>\n } @if (copyRight) {\n <ul class=\"location-map--list copyright\">\n <li>\n <span class=\"location-map--icon icon-copyright\"></span>\n <p class=\"text text--18\">{{ copyRight }}</p>\n </li>\n </ul>\n } @if (button) {\n <div class=\"location-map--btns\">\n <tent-button\n class=\"btn-book\"\n type=\"dark-box\"\n [label]=\"button.label\"\n [name]=\"button.name\"\n (btnClick)=\"btnMapClicked()\"\n ></tent-button>\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'tent-loyalty-form',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loyalty-form.component.html',\n styleUrl: './loyalty-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoyaltyFormComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() lang?: string;\n @Input() frame?: string;\n}\n","<section class=\"loyalty-form\">\n <div class=\"loyalty-form__container\">\n <div class=\"floating-box\">\n <div class=\"floating-box__left-column\">\n @if (title || description) {\n <div class=\"flex-col loyalty-form--header\">\n @if (title) {\n <h3 class=\"loyalty-form--title color--brown\">\n {{ title }}\n </h3>\n }\n @if (description) {\n <p class=\"loyalty-form--description\">\n {{ description }}\n </p>\n }\n </div>\n }\n </div>\n <div class=\"floating-box__right-column\">\n <div class=\"form-container\">\n @if (frame) {\n <div class=\"loyalty-form--form\">\n <div\n data-mirai-component=\"signup\"\n [attr.data-locale]=\"lang\"\n data-mirai-id=\"502045\"\n ></div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { RouterModule } from '@angular/router';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-books-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './books-modal.component.html',\n styleUrl: './books-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BooksModalComponent {\n @Input() lang?: String;\n\n constructor(\n private readonly dialogRef: MatDialogRef<BooksModalComponent>\n ) {}\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"books\">\n <div class=\"books--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n name=\"icon-close\"\n ></tent-button>\n </div>\n <div\n data-mirai-engine=\"mirai_cma\"\n [attr.data-lang]=\"lang\"\n data-idchain=\"502045\"\n ></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n inject,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle, SafeUrl } from '@angular/platform-browser';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-checkin-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './checkin-modal.component.html',\n styleUrl: './checkin-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckinModalComponent {\n @Input() image!: string;\n @Input() title?: string;\n @Input() script?: string;\n @Input() closeBtn!: ButtonI;\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n get urlScript(): SafeUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.script!);\n }\n\n private readonly sanitizer = inject(DomSanitizer);\n}\n","<div class=\"checkin\">\n @if (image) {\n <div class=\"checkin--image-wrapper\">\n <figure [style]=\"getImage\" class=\"checkin--image\"></figure>\n </div>\n }\n <div class=\"checkin--right-slot\">\n @if (title) {\n <div class=\"checkin--header\">\n <p class=\"checkin--title color--brown\">{{ title }}</p>\n </div>\n } @if (script) {\n <iframe\n [src]=\"urlScript\"\n width=\"600\"\n height=\"400\"\n frameborder=\"0\"\n allow=\"camera\"\n scrolling=\"yes\"\n ></iframe>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { GalleryFilterOption } from '../../generic-head/generic-head.component';\n\n@Component({\n selector: 'tent-gallery-category',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './gallery-category.component.html',\n styleUrl: './gallery-category.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GalleryCategoryComponent {\n @Input() title?: string;\n @Input() items?: GalleryFilterOption[];\n\n @Output() itemClick = new EventEmitter<GalleryFilterOption>();\n\n constructor(\n private readonly dialogRef: MatDialogRef<GalleryCategoryComponent>\n ) {}\n\n itemClicked(item: GalleryFilterOption): void {\n this.itemClick.emit(item);\n this.closeModal();\n }\n\n closeModal(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"gallery-category\">\n <div class=\"gallery-category--header\">\n @if (title) {\n <p class=\"color--brown\" [innerHTML]=\"title\"></p>\n }\n\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n (btnClick)=\"closeModal()\"\n name=\"close\"\n ></tent-button>\n </div>\n @if (items?.length) {\n <ul class=\"gallery-category--list\">\n @for (item of items; track $index) {\n <li class=\"gallery-category--item\" (click)=\"itemClicked(item)\">\n <p class=\"color--brown\">\n <span class=\"gallery-category--dot\"></span> {{ item.label }}\n </p>\n <span class=\"icon-pointer-down\"></span>\n </li>\n }\n </ul>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-languages-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, MatIconModule],\n templateUrl: './languages-modal.component.html',\n styleUrl: './languages-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LanguagesModalComponent {\n @Input() title?: string;\n @Input() closeBtn?: ButtonI;\n @Input() buttons?: ButtonI[];\n\n @Output() languageSelect = new EventEmitter<ButtonI>();\n\n selected = 'inglés';\n\n private readonly dialogRef: MatDialogRef<LanguagesModalComponent> =\n inject(MatDialogRef);\n\n selectLanguage(language: ButtonI): void {\n this.selected = language.label!;\n this.languageSelect.emit(language);\n this.close();\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","<div class=\"languages-modal\">\n @if (closeBtn?.icon) {\n <div class=\"languages-modal--close\">\n <tent-button\n type=\"dark-circle\"\n [icon]=\"closeBtn?.icon\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n [name]=\"closeBtn?.icon\"\n ></tent-button>\n </div>\n } @if (title) {\n <div class=\"languages-modal--header\">\n <h4 class=\"languages-modal--header--title\">{{ title }}</h4>\n </div>\n } @if (buttons?.length) {\n <div class=\"languages-modal--content\">\n @for (btn of buttons; track $index) {\n <tent-button\n [ngClass]=\"{\n 'languages-modal--selected': btn.label == selected\n }\"\n type=\"dark-box\"\n [label]=\"btn.label\"\n (btnClick)=\"selectLanguage(btn)\"\n [name]=\"btn.label\"\n ></tent-button>\n\n }\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../../interfaces/atomic/image.interface';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-loyalty-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './loyalty-modal.component.html',\n styleUrl: './loyalty-modal.component.scss',\n})\nexport class LoyaltyModalComponent {\n @Input() items?: LoyaltyModalItem[];\n @Input() button?: ButtonI;\n @Input() link?: ButtonI;\n @Input() image?: ImageI;\n\n @Output() linkClick = new EventEmitter();\n @Output() btnClick = new EventEmitter();\n\n constructor(\n private readonly dialogRef: MatDialogRef<LoyaltyModalComponent>\n ) {}\n\n close(): void {\n this.dialogRef.close();\n }\n}\n\nexport interface LoyaltyModalItem {\n titleDark?: string;\n title?: string;\n items?: LoyaltyModalSubItem[];\n}\n\nexport interface LoyaltyModalSubItem {\n icon?: string;\n title?: string;\n subtitle?: string;\n}\n","<div class=\"loyalty-modal\">\n <div class=\"loyalty-modal--close\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n name=\"icon-close\"\n ></tent-button>\n </div>\n @if (items?.[0]) {\n <div class=\"loyalty-modal--left-slot\">\n <div class=\"flex-col\">\n @if (items?.[0]?.title || items?.[0]?.titleDark) {\n <div class=\"loyalty-modal--header--wrapper\">\n <div class=\"loyalty-modal--header\">\n @if (items?.[0]?.titleDark) {\n <h3 class=\"loyalty-modal--title color--brown\">\n {{ items?.[0]?.titleDark }}\n </h3>\n } @if (items?.[0]?.title) {\n <h3 class=\"loyalty-modal--title color--camel\">\n {{ items?.[0]?.title }}\n </h3>\n }\n </div>\n </div>\n\n } @if (items?.[0]?.items?.length) { @for (item of items?.[0]?.items;\n track $index) {\n <div class=\"loyalty-modal--item\">\n @if (item.icon) {\n <span\n class=\"loyalty-modal--item--icon\"\n [ngClass]=\"item.icon\"\n ></span>\n } @if (item.title) {\n <div class=\"flex-col\">\n <p class=\"loyalty-modal--item--title color--brown\">\n {{ item.title }}\n </p>\n <p class=\"loyalty-modal--item--subtitle color--brown\">\n {{ item.subtitle }}\n </p>\n </div>\n }\n </div>\n } }\n </div>\n </div>\n\n } @if (items?.[1]) {\n <div class=\"loyalty-modal--right-slot\">\n <div class=\"flex-col\">\n @if (items?.[1]?.title || items?.[1]?.titleDark) {\n <div class=\"loyalty-modal--header--wrapper\">\n <div class=\"loyalty-modal--header\">\n @if (items?.[1]?.titleDark) {\n <h3 class=\"loyalty-modal--title color--brown\">\n {{ items?.[1]?.titleDark }}\n </h3>\n } @if (items?.[1]?.title) {\n <h3 class=\"loyalty-modal--title color--camel\">\n {{ items?.[1]?.title }}\n </h3>\n }\n </div>\n\n @if (image) {\n\n <img\n class=\"loyalty-modal--logo\"\n [src]=\"image.src\"\n [alt]=\"image.alt\"\n />\n }\n </div>\n } @if (items?.[1]?.items?.length) { @for (item of items?.[1]?.items;\n track $index) {\n <div class=\"loyalty-modal--item\">\n @if (item.icon) {\n <span\n class=\"loyalty-modal--item--icon\"\n [ngClass]=\"item.icon\"\n ></span>\n } @if (item.title) {\n <div class=\"flex-col\">\n <p class=\"loyalty-modal--item--title color--brown\">\n {{ item.title }}\n </p>\n <p class=\"loyalty-modal--item--subtitle color--brown\">\n {{ item.subtitle }}\n </p>\n </div>\n }\n </div>\n } }\n <div class=\"loyalty-modal--footer\">\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"button?.label\"\n (btnClick)=\"linkClick.emit()\"\n ></tent-button>\n <tent-button\n type=\"dark-link\"\n [label]=\"link?.label\"\n [url]=\"link?.url\"\n [linkType]=\"link?.linkType\"\n (btnClick)=\"btnClick.emit()\"\n ></tent-button>\n </div>\n </div>\n </div>\n\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tent-menu-modal',\n standalone: true,\n imports: [CommonModule, ButtonComponent, RouterModule],\n templateUrl: './menu-modal.component.html',\n styleUrl: './menu-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuModalComponent implements OnInit, OnDestroy {\n @Input() closeBtn!: ButtonI;\n @Input() logo?: string;\n @Input() checkinLabel?: string;\n @Input() altLogo?: string;\n @Input() items?: MenuItem[];\n @Input() booksBtn?: ButtonI;\n @Input() buttonItem?: ButtonI;\n @Input() phoneBtn?: ButtonI;\n @Input() newsletterBtn?: ButtonI;\n @Input() socialButtons?: ButtonI[];\n\n @Output() checkinClick = new EventEmitter<void>();\n @Output() newsletterClick = new EventEmitter<void>();\n @Output() booksClick = new EventEmitter<void>();\n @Output() elementClick = new EventEmitter<MenuItem>();\n\n isInternalLink(item: MenuItem): boolean {\n return item.type === 'internal';\n }\n\n private readonly dialogRef: MatDialogRef<MenuModalComponent> =\n inject(MatDialogRef);\n private readonly sanitizer = inject(DomSanitizer);\n\n ngOnInit(): void {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: hidden');\n }\n\n ngOnDestroy(): void {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: auto');\n }\n\n getImage(image?: string): SafeStyle | undefined {\n return image\n ? this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n )\n : undefined;\n }\n\n linkClicked(item: MenuItem, event: Event): void {\n if (item.type !== 'external') {\n event.preventDefault();\n }\n this.elementClick.emit(item);\n this.closeModal();\n }\n\n closeModal(): void {\n this.dialogRef.close();\n }\n}\n\nexport interface MenuItem {\n id?: string | number;\n title: string;\n image?: string;\n url?: string;\n type: 'internal' | 'external' | 'component';\n componentId?: string;\n}\n","<div class=\"menu-modal\">\n <div class=\"menu-modal--close\">\n <tent-button\n type=\"dark-circle\"\n [icon]=\"closeBtn.icon\"\n [closeButton]=\"true\"\n (btnClick)=\"closeModal()\"\n [name]=\"closeBtn.icon\"\n ></tent-button>\n </div>\n\n <div class=\"menu-modal--content\">\n @if (logo) {\n <div class=\"flex-row flex-row--center menu-modal--logo\">\n <img\n class=\"menu-modal--logo--img\"\n [src]=\"logo\"\n [alt]=\"altLogo\"\n loading=\"lazy\"\n width=\"100\"\n height=\"100\"\n />\n </div>\n }\n <div class=\"menu-modal--links\">\n @if (items?.length) { @for (item of items; track $index) { @if\n (item.title) {\n <a\n [href]=\"item.url\"\n [routerLink]=\"isInternalLink(item) ? [item.url] : null\"\n [attr.aria-label]=\"item.title\"\n class=\"menu-modal--link-wrapper\"\n (click)=\"linkClicked(item, $event)\"\n >\n @if (item.image) {\n <div class=\"menu-modal--image-wrapper\">\n <figure\n class=\"menu-modal--image\"\n [style]=\"getImage(item.image)\"\n ></figure>\n </div>\n }\n <div class=\"menu-modal--link\">\n <p>\n {{ item.title }}\n </p>\n @if (buttonItem) {\n <tent-button\n class=\"menu-modal--btn\"\n type=\"dark-circle\"\n [icon]=\"buttonItem.icon\"\n [name]=\"buttonItem.icon\"\n ></tent-button>\n }\n </div>\n </a>\n } }} @if (checkinLabel) {\n <div\n class=\"menu-modal--check-in--wrapper flex-row flex-row--center\"\n >\n <div class=\"menu-modal--check-in\" (click)=\"checkinClick.emit()\">\n <span class=\"color--white\">{{ checkinLabel }}</span>\n </div>\n </div>\n } @if (newsletterBtn || socialButtons) {\n <div class=\"flex-row flex-row--between menu-modal--social-media\">\n @if (newsletterBtn) {\n <tent-button\n type=\"dark-link\"\n [label]=\"newsletterBtn.label\"\n icon=\"icon-envelope-plus\"\n iconPosition=\"right\"\n (btnClick)=\"newsletterClick.emit()\"\n [name]=\"newsletterBtn.label\"\n ></tent-button>\n } @if (socialButtons?.length) {\n <ul class=\"menu-modal--socials\">\n @for (socialBtn of socialButtons; track $index) {\n <li>\n <a\n [attr.aria-label]=\"socialBtn.icon\"\n [href]=\"socialBtn.url\"\n rel=\"external\"\n target=\"_blank\"\n [ngClass]=\"socialBtn.icon\"\n class=\"module-travelers--social color--brown\"\n ></a>\n </li>\n\n }\n </ul>\n }\n </div>\n } @if (phoneBtn) {\n <div class=\"flex-row flex-row--center menu-modal--books\">\n <!-- <tent-button\n type=\"dark-link\"\n [label]=\"booksBtn.label\"\n [icon]=\"booksBtn.icon\"\n (btnClick)=\"booksClick.emit()\"\n ></tent-button> -->\n\n <tent-button\n type=\"dark-link\"\n [label]=\"phoneBtn.label\"\n [url]=\"phoneBtn.url\"\n icon=\"icon-phone\"\n iconPosition=\"left\"\n ></tent-button>\n </div>\n }\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ButtonComponent } from '../../../atomic/button/button.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ButtonI } from '../../../../interfaces/atomic/button.interface';\nimport { InputI } from '../../../../interfaces/atomic/input.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport {\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tent-newsletter-modal',\n standalone: true,\n imports: [\n MatCheckboxModule,\n ButtonComponent,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n ],\n templateUrl: './newsletter-modal.component.html',\n styleUrl: './newsletter-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NewsletterModalComponent implements OnInit {\n @Input() closeBtn?: ButtonI;\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() conditions?: string;\n @Input() image?: string;\n @Input() input?: InputI;\n\n @Output() submitForm = new EventEmitter<string>();\n\n get imageInstant(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n form!: FormGroup;\n\n constructor(\n private readonly dialogRef: MatDialogRef<NewsletterModalComponent>,\n private readonly sanitizer: DomSanitizer,\n private readonly fb: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.form = this.fb.group({\n input: ['', [Validators.email, Validators.required]],\n checkbox: [false, [Validators.requiredTrue]],\n });\n }\n\n validateInput(): void {\n this.input!.valid = this.form.controls['input'].errors === null;\n }\n\n inputChange(event: Event): void {\n this.input!.value = (event.target as HTMLInputElement).value;\n }\n\n close(): void {\n this.dialogRef.close();\n }\n\n submit(): void {\n this.submitForm.emit(this.input!.value as string);\n }\n}\n","<div class=\"newsletter-modal\">\n @if (closeBtn?.icon) {\n <div class=\"newsletter-modal--close\">\n <tent-button\n type=\"dark-circle\"\n [icon]=\"closeBtn?.icon\"\n [closeButton]=\"true\"\n (btnClick)=\"close()\"\n [name]=\"closeBtn?.icon\"\n ></tent-button>\n </div>\n } @if (image) {\n <div class=\"newsletter-modal--left-slot\">\n <figure class=\"figure-full\" [style]=\"imageInstant\"></figure>\n </div>\n\n }\n <div class=\"newsletter-modal--right-slot\">\n <div class=\"flex-col\">\n @if (title || titleDark) {\n <div>\n @if (titleDark) {\n <h3 class=\"newsletter-modal--title color--brown\">\n {{ titleDark }}\n </h3>\n } @if (title) {\n <h3 class=\"newsletter-modal--title color--camel\">\n {{ title }}\n </h3>\n }\n </div>\n } @if (description) {\n <p class=\"newsletter-modal--subtitle\">\n {{ description }}\n </p>\n }\n\n <form class=\"flex-col\" [formGroup]=\"form\">\n <div class=\"newsletter-modal--input\">\n @if (input) {\n <input\n type=\"email\"\n [value]=\"input.value\"\n [placeholder]=\"input.placeholder\"\n (blur)=\"validateInput()\"\n (change)=\"inputChange($event)\"\n formControlName=\"input\"\n />\n <span\n class=\"icon-pointer-down\"\n [ngClass]=\"{ invalid: !form.valid }\"\n (click)=\"submit()\"\n ></span>\n }\n </div>\n @if (!input?.valid) {\n <span class=\"form-error\">\n {{ input?.error }}\n </span>\n }\n\n <div class=\"flex-row\">\n <mat-checkbox\n class=\"newsletter-modal--checkbox\"\n formControlName=\"checkbox\"\n ></mat-checkbox>\n @if (conditions) {\n <span\n [innerHTML]=\"conditions\"\n class=\"newsletter-modal--conditions color--brown\"\n >\n </span>\n }\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-module-404',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './module-404.component.html',\n styleUrl: './module-404.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Module404Component {\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() description?: string;\n @Input() buttons?: ButtonI[];\n}\n","<section class=\"module-404 bg-beige\">\n <div class=\"module-404--content\">\n <div class=\"module-404--inner\">\n @if (title || subtitle) {\n <div class=\"module-404--card bg-camel\">\n <div class=\"module-404--card--box\">\n @if (title) {\n <h4\n class=\"module-404--titleTop title--42 color--brown\"\n >\n {{ title }}\n </h4>\n }\n @if (subtitle) {\n <p class=\"module-404--btn color--brown\">\n <span class=\"title--30\"> {{ subtitle }}</span>\n </p>\n }\n </div>\n </div>\n }\n @if (description || buttons?.length) {}\n <div class=\"module-404--info bg-white\">\n <div class=\"module-404--info--des\">\n @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n }\n @if (buttons?.length) {\n <div class=\"module-404--btns\">\n @for (btn of buttons; track $index) {\n <tent-button\n class=\"btn-book btn-small\"\n type=\"dark-box\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-module-brava',\n standalone: true,\n imports: [CommonModule, LazyBackgroundDirective, ButtonComponent],\n templateUrl: './module-brava.component.html',\n styleUrl: './module-brava.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModuleBravaComponent {\n @Input() description?: string;\n @Input() img?: string;\n @Input() buttons?: ButtonI[];\n}\n","<section class=\"module-brava module-spacer--bottom\">\n <div class=\"wrapper-big\">\n <div class=\"module-brava--wrapper\">\n <div class=\"module-brava--photo figure-content\">\n @if (img) {\n <figure class=\"figure-full\" [lazyBackground]=\"img\"></figure>\n }\n </div>\n @if (description) {\n <p class=\"module-brava--description\" [innerHTML]=\"description\"></p>\n } @if(buttons?.length) {\n <div class=\"module-brava--footer\">\n @for (btn of buttons; track $index) {\n <tent-button\n type=\"dark-box\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { GoogleMap, GoogleMapsModule } from '@angular/google-maps';\nimport { MarkerClusterer } from '@googlemaps/markerclusterer';\nimport { fromEvent, tap } from 'rxjs';\n\n@Component({\n selector: 'tent-module-google-maps',\n standalone: true,\n imports: [CommonModule, GoogleMapsModule],\n templateUrl: './module-google-maps.component.html',\n styleUrl: './module-google-maps.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModuleGoogleMapsComponent\n implements OnInit, AfterViewInit, OnChanges\n{\n @ViewChild('googleMap') googleMaps!: GoogleMap;\n @ViewChild('googleMap', { read: ElementRef })\n googleMapsElement!: ElementRef;\n @Input() markers?: GoogleMarker[];\n @Input() zoom = 6;\n @Input() markerImg?: string;\n\n existingScript?: boolean;\n\n private markersArray: google.maps.Marker[] = [];\n private customMarkersArray: google.maps.OverlayView[] = [];\n private markerCluster?: MarkerClusterer;\n\n //map config\n width!: number;\n map!: google.maps.Map;\n\n options: google.maps.MapOptions = {\n styles: [\n {\n elementType: 'geometry',\n stylers: [{ color: '#ebe3cd' }],\n },\n {\n elementType: 'labels.text.fill',\n stylers: [{ color: '#523735' }],\n },\n {\n elementType: 'labels.text.stroke',\n stylers: [{ color: '#f5f1e6' }],\n },\n {\n featureType: 'administrative',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#c9b2a6' }],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#dcd2be' }],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#ae9e90' }],\n },\n {\n featureType: 'landscape.natural',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#93817c' }],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry.fill',\n stylers: [{ color: '#a5b076' }],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#447530' }],\n },\n {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.arterial',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway.controlled_access',\n elementType: 'geometry',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.highway.controlled_access',\n elementType: 'geometry.stroke',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#ffffff' }],\n },\n {\n featureType: 'transit.line',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'transit.line',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#8f7d77' }],\n },\n {\n featureType: 'transit.line',\n elementType: 'labels.text.stroke',\n stylers: [{ color: '#f0d0e4' }],\n },\n {\n featureType: 'transit.station',\n elementType: 'geometry',\n stylers: [{ color: '#e9d1bd' }],\n },\n {\n featureType: 'water',\n elementType: 'geometry.fill',\n stylers: [{ color: '#c5d0d1' }],\n },\n {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [{ color: '#c5d0d1' }],\n },\n ],\n };\n\n get centerMark(): GoogleMarker['position'] {\n return this.markers?.[0]?.position!;\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n fromEvent(window, 'resize')\n .pipe(\n tap(() => {\n this.width = (\n this.googleMapsElement?.nativeElement as HTMLElement\n ).clientWidth;\n })\n )\n .subscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes['markers']?.currentValue &&\n !changes['markers']?.firstChange\n ) {\n this.addCustomMarkers();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.googleMaps?.googleMap) {\n this.width = (\n this.googleMapsElement?.nativeElement as HTMLElement\n ).clientWidth;\n this.map = this.googleMaps?.googleMap;\n this.cdr.detectChanges();\n this.addCustomMarkers();\n }\n }\n\n addCustomMarkers() {\n this.clearMarkers();\n this.markers?.forEach((data) => {\n const marker = new google.maps.Marker({\n position: new google.maps.LatLng(\n data.position.lat,\n data.position.lng\n ),\n map: null,\n });\n\n this.markersArray.push(marker);\n\n const markerDiv = document.createElement('div');\n markerDiv.classList.add('custom-marker');\n\n const img = document.createElement('img');\n img.src = this.markerImg ?? '/assets/tent/img/marker_maps.svg';\n\n const labelDiv = document.createElement('div');\n labelDiv.classList.add('label');\n labelDiv.innerText = data.label;\n\n markerDiv.appendChild(img);\n markerDiv.appendChild(labelDiv);\n\n if (this.markers && this.markers?.length < 1) {\n markerDiv.addEventListener('click', () => {\n window.open(data.url, '_blank');\n });\n }\n\n const customMarker = new google.maps.OverlayView();\n\n customMarker.onAdd = function () {\n const panes = this.getPanes();\n panes?.overlayMouseTarget.appendChild(markerDiv);\n };\n\n customMarker.draw = function () {\n const projection = this.getProjection();\n const position = projection.fromLatLngToDivPixel(\n new google.maps.LatLng(data.position.lat, data.position.lng)\n );\n if (position) {\n markerDiv.style.left = `${position.x}px`;\n markerDiv.style.top = `${position.y}px`;\n }\n };\n\n customMarker.onRemove = function () {\n if (markerDiv.parentNode) {\n markerDiv.parentNode.removeChild(markerDiv);\n }\n };\n\n customMarker.setMap(this.map);\n this.customMarkersArray.push(customMarker);\n });\n\n this.markerCluster = new MarkerClusterer({\n map: this.map,\n markers: this.markersArray,\n renderer: {\n render: ({ count, position }) => {\n const div = document.createElement('div');\n div.textContent = count.toString();\n div.className = 'custom-cluster';\n return new google.maps.Marker({\n position,\n icon: {\n url: '/assets/tent/img/marker_maps-empty.svg',\n scaledSize: new google.maps.Size(53, 53),\n anchor: new google.maps.Point(26.5, 53),\n labelOrigin: new google.maps.Point(26.5, 26.5),\n },\n label: {\n text: count.toString(),\n color: '#fff',\n fontWeight: 'bold',\n fontSize: '16px',\n },\n });\n },\n },\n });\n\n google.maps.event.addListener(\n this.markerCluster,\n 'clusteringend',\n () => {\n this.customMarkersArray.forEach((customMarker, index) => {\n const isVisible =\n this.markersArray[index].getMap() !== null;\n customMarker.getMap() && customMarker.onRemove();\n if (isVisible) {\n customMarker.setMap(this.map);\n } else {\n customMarker.setMap(null);\n }\n });\n }\n );\n }\n\n private clearMarkers() {\n // Limpiar los marcadores estándar\n this.markersArray.forEach((marker) => marker.setMap(null));\n this.markersArray = [];\n\n // Limpiar los custom markers (OverlayView)\n this.customMarkersArray.forEach((customMarker) =>\n customMarker.setMap(null)\n );\n this.customMarkersArray = [];\n\n // Limpiar el cluster anterior\n if (this.markerCluster) {\n this.markerCluster.clearMarkers(); // Quitar los marcadores del cluster\n this.markerCluster = undefined; // Resetear el cluster\n }\n }\n}\nexport interface GoogleMarker {\n position: {\n lat: number;\n lng: number;\n };\n label: string;\n url: string;\n hotelId: number;\n}\n","@if (markers?.length) {\n <section class=\"google-maps wrapper-medium module-spacer--bottom\">\n <google-map\n #googleMap\n [options]=\"options\"\n [width]=\"width\"\n [center]=\"centerMark\"\n [zoom]=\"zoom\"\n >\n </google-map>\n </section>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\n\n@Component({\n selector: 'tent-module-search',\n standalone: true,\n imports: [CommonModule, ButtonComponent, DropdownComponent],\n templateUrl: './module-search.component.html',\n styleUrl: './module-search.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModuleSearchComponent implements OnInit {\n @Input() theme?: string;\n @Input() title?: string;\n @Input() placeholder?: string;\n @Input() hotels?: ModuleSearchHotel[];\n\n itemsToShow: ModuleSearchHotel[] = [];\n\n options: DropdownOption[] = [];\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n if (this.hotels) {\n for (let i = 0; i < this.hotels.length; i++) {\n this.options.push({\n code: i.toString(),\n name: this.hotels[i].title!,\n });\n }\n }\n }\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n onSelect(option: DropdownOption): void {\n const selected = this.hotels?.find(\n (hotel) => hotel.title === option.name\n );\n this.itemsToShow = selected ? [selected] : [];\n }\n\n search(text: any): void {\n this.itemsToShow = [];\n\n this.hotels?.forEach((hotel) => {\n if (\n (hotel.title\n ?.toLowerCase()\n .includes(text.target.value.toLowerCase()) ||\n hotel.address\n ?.toLowerCase()\n .includes(text.target.value.toLowerCase())) &&\n text?.target.value !== ''\n ) {\n this.itemsToShow.push(hotel);\n }\n });\n }\n}\n\nexport interface ModuleSearchHotel {\n img?: string;\n title?: string;\n address?: string;\n contactLinks?: ButtonI[];\n links?: ButtonI[];\n footerTitle?: string;\n footerDescription?: string;\n}\n","<div class=\"module-spacer--bottom\">\n <section\n class=\"module-search wrapper-medium\"\n [ngClass]=\"{ 'module-search--laundry': theme === 'theme-laundry' }\"\n >\n <div class=\"module-search--header\">\n @if (title) {\n <p class=\"module-search--title color--brown\">\n {{ title }}\n </p>\n } @if (theme !== 'theme-laundry') {\n <div class=\"module-search--input--wrapper\">\n <input\n type=\"text\"\n class=\"module-search--input\"\n [placeholder]=\"placeholder\"\n (input)=\"search($event)\"\n />\n <span\n class=\"module-search--input--icon\"\n class=\"icon-search\"\n ></span>\n </div>\n } @else {\n <tent-dropdown\n [placeholder]=\"placeholder\"\n [options]=\"options\"\n theme=\"theme-laundry\"\n (change)=\"onSelect($event)\"\n ></tent-dropdown>\n }\n </div>\n\n @if (itemsToShow.length) {\n <div class=\"module-search--content\">\n @for (item of itemsToShow; track $index) {\n <div class=\"module-search--item\">\n @if (item.img) {\n <div class=\"module-search--item--image--wrapper\">\n <figure\n class=\"figure-full module-search--item--image\"\n [style]=\"getImage(item.img)\"\n ></figure>\n </div>\n }\n <div class=\"module-search--item--content\">\n @if (item.title || item.address) {\n <div class=\"module-search--item--header\">\n @if (item.title) {\n <p class=\"module-search--item--title color--brown\">\n {{ item.title }}\n </p>\n } @if (item.address) {\n <p\n class=\"module-search--item--address\"\n [innerHTML]=\"item.address\"\n ></p>\n }\n </div>\n } @if (theme !== 'theme-laundry') { @if (item.contactLinks)\n {\n <div class=\"module-search--item--links\">\n @for (link of item.contactLinks; track $index) {\n <a\n class=\"link\"\n [href]=\"link.url\"\n target=\"_blank\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n } @for (link of item.links; track $index) {\n <tent-button\n type=\"dark-link\"\n [label]=\"link.label\"\n [url]=\"link.url\"\n ></tent-button>\n }\n </div>\n } } @else {\n\n <img\n class=\"module-search--icon-map\"\n src=\"/assets/tent/img/icon-map-palma.svg\"\n loading=\"lazy\"\n width=\"130\"\n height=\"130\"\n alt=\"\"\n />\n @if (item.footerTitle || item.footerDescription) {\n <div class=\"module-search--footer\">\n @if (item.footerTitle) {\n <p class=\"module-search--footer--title\">\n {{ item.footerTitle }}\n </p>\n } @if (item.footerDescription) {\n <p class=\"module-search--footer--description\">\n {{ item.footerDescription }}\n </p>\n }\n </div>\n } }\n </div>\n </div>\n\n }\n </div>\n }\n </section>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DialogModule } from 'primeng/dialog';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DropdownI } from '../../../interfaces/atomic/dropdown.interface';\nimport { InputI } from '../../../interfaces/atomic/input.interface';\nimport { GuestsPopupI } from '../../../interfaces/core/guests-popup.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { DatepickerComponent } from '../../atomic/datepicker/datepicker.component';\nimport { DropdownComponent } from '../../atomic/dropdown/dropdown.component';\nimport {\n GuestsPopupComponent,\n GuestsValue,\n} from '../guests-popup/guests-popup.component';\n\n@Component({\n selector: 'tent-motor',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n DatepickerComponent,\n DropdownComponent,\n GuestsPopupComponent,\n FormsModule,\n ReactiveFormsModule,\n DialogModule,\n GuestsPopupComponent,\n MatIconModule,\n BadgeComponent,\n ],\n templateUrl: './motor.component.html',\n styleUrl: './motor.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MotorComponent implements OnDestroy, AfterViewInit, OnInit {\n @ViewChild('wrapper', { read: ElementRef }) wrapper!: ElementRef;\n @Input() modal = false;\n @Input() square = false;\n @Input() mirai = true;\n @Input({ required: true }) lang!: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() hotelId?: string | number;\n @Input() advantages?: BadgeI;\n @Input() date!: motorDate;\n @Input() dropdown!: DropdownI;\n @Input() promoInput!: InputI;\n @Input() guestsInput!: InputI;\n @Input() btnSubmit!: ButtonI;\n @Input() guestsPopup!: GuestsPopupI;\n @Input() isHome?: boolean;\n\n @Output() submit = new EventEmitter<MotorValue>();\n @Output() close = new EventEmitter<void>();\n @Output() advantagesClick = new EventEmitter<void>();\n\n motorForm!: FormGroup;\n dialogVisible = false;\n dialogReady = false;\n guestsValue?: GuestsValue;\n\n isComponent?: boolean = false;\n\n constructor(private readonly formBuilder: FormBuilder) {}\n\n ngOnInit(): void {\n if (!this.mirai) {\n this.motorForm = this.formBuilder.group({\n hotel: [],\n date: [],\n guests: [],\n promo: [],\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.isComponent = (\n this.wrapper.nativeElement as HTMLElement\n ).parentElement?.classList.contains('component');\n\n if (this.modal && !this.isComponent) {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: hidden');\n\n (\n this.wrapper.nativeElement as HTMLElement\n ).parentElement?.classList.add('modal');\n }\n if (this.square) {\n this.initMiraiMotor();\n }\n }\n\n private initMiraiMotor(): void {\n const tryInit = () => {\n if ((window as any).Mirai?.core) {\n (window as any).Mirai.core();\n } else {\n setTimeout(tryInit, 150);\n }\n };\n\n tryInit();\n }\n\n btnClicked(): void {\n if (!this.guestsValue) {\n this.guestsValue = {\n totalGuests: 1,\n adults: 1,\n kids: 0,\n babys: 0,\n kidsAges: [],\n };\n }\n this.submit.emit({\n formValue: this.motorForm.value,\n guestValue: this.guestsValue,\n url: this.btnSubmit.url!,\n });\n\n if (this.modal) {\n this.closeDialog();\n }\n }\n\n changeInput(event: any): void {\n this.promoInput.value = event.target.value;\n }\n\n togglePopup(): void {\n this.dialogVisible = !this.dialogVisible;\n\n if (!this.modal) {\n this.close.emit();\n }\n }\n\n closeDialog(): void {\n this.toggleMotorDialogReady();\n }\n\n ngOnDestroy(): void {\n if (this.modal && !this.isComponent) {\n document\n .getElementsByTagName('html')[0]\n .setAttribute('style', 'overflow: unset');\n }\n }\n\n closeModal(): void {\n this.close.emit();\n }\n\n toggleMotorDialogReady(): void {\n this.dialogReady = !this.dialogReady;\n }\n\n guestsChange(guests: GuestsValue) {\n this.guestsInput.value =\n guests.totalGuests < 10\n ? '0' + guests.totalGuests.toString()\n : guests.totalGuests.toString();\n\n this.guestsValue = guests;\n\n this.motorForm.get('guests')?.setValue(this.guestsInput.value);\n\n this.togglePopup();\n }\n}\n\nexport interface motorInput {\n title: string;\n icon: string;\n placeholder?: string;\n value: string;\n}\n\nexport interface motorDate {\n value: [Date, Date];\n title: string;\n icon: string;\n}\n\nexport interface MotorValue {\n formValue: any;\n guestValue: GuestsValue;\n url: string;\n}\n","<div\n #wrapper\n class=\"motor--wrapper\"\n [ngClass]=\"{\n 'motor--wrapper--modal': modal,\n }\"\n>\n @if (modal) {\n <div class=\"motor--close-button\">\n <tent-button\n type=\"dark-circle\"\n icon=\"icon-close\"\n (btnClick)=\"closeModal()\"\n name=\"close\"\n ></tent-button>\n </div>\n }\n @if (mirai) {\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n @if (!isHome) {\n <div\n data-type=\"chain\"\n data-currency=\"EUR\"\n [attr.data-locale]=\"lang\"\n [attr.data-hotel]=\"hotelId\"\n data-mirai-id=\"502045\"\n ></div>\n } @else {\n <div\n data-type=\"chain\"\n data-currency=\"EUR\"\n [attr.data-locale]=\"lang\"\n data-mirai-id=\"502045\"\n data-hotel=\"none\"\n ></div>\n }\n @if (square) {\n <div class=\"mi-be-square\">\n <div data-mirai-component=\"finder\" data-layout=\"column\"></div>\n </div>\n <span class=\"advantages--noBadge\" (click)=\"advantagesClick.emit()\">\n {{ advantages?.label }}\n </span>\n } @else {\n <ng-container *ngTemplateOutlet=\"advantagesRef\"></ng-container>\n\n <div data-mirai-component=\"finder\"></div>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n @if (!isComponent && !modal) {\n <ng-container *ngTemplateOutlet=\"advantagesRef\"></ng-container>\n }\n <form\n class=\"motor flex-row flex-row--center\"\n [formGroup]=\"motorForm\"\n [ngClass]=\"{ 'motor--modal': modal }\"\n >\n <tent-dropdown\n [options]=\"dropdown.options\"\n [placeholder]=\"dropdown.placeholder\"\n [sameTitlePlaceholder]=\"true\"\n formControlName=\"hotel\"\n [staticPosition]=\"false\"\n ></tent-dropdown>\n <tent-datepicker\n [placeholder]=\"date.title\"\n [icon]=\"date.icon\"\n [value]=\"date.value\"\n [sameTitlePlaceholder]=\"true\"\n formControlName=\"date\"\n ></tent-datepicker>\n <div\n class=\"motor--input--wrapper flex-row flex-row--between\"\n (click)=\"togglePopup()\"\n >\n <div class=\"motor--input--content\">\n @if (guestsInput.value) {\n <p class=\"motor--input--title\">\n {{ guestsInput.placeholder }}\n </p>\n }\n <input\n [disabled]=\"true\"\n class=\"motor--input\"\n type=\"text\"\n [value]=\"guestsInput.value\"\n [placeholder]=\"guestsInput.placeholder\"\n formControlName=\"guests\"\n />\n </div>\n\n <span\n class=\"motor--input--icon\"\n [ngClass]=\"guestsInput.icon\"\n ></span>\n </div>\n\n @if (!modal) {\n <p-dialog\n class=\"motor--dialog\"\n [(visible)]=\"dialogVisible\"\n (onShow)=\"toggleMotorDialogReady()\"\n (onHide)=\"toggleMotorDialogReady()\"\n >\n <tent-guests-popup\n [adultsDropdown]=\"guestsPopup.adultsDropdown\"\n [kidsDropdown]=\"guestsPopup.kidsDropdown\"\n [ageDropdown]=\"guestsPopup.ageDropdown\"\n [babysDropdown]=\"guestsPopup.babysDropdown\"\n [title]=\"guestsPopup.title\"\n [kidLabel]=\"guestsPopup.kidLabel\"\n [btnApply]=\"guestsPopup.btnApply\"\n (appliedData)=\"guestsChange($event)\"\n ></tent-guests-popup>\n </p-dialog>\n } @else if (dialogVisible) {\n <tent-guests-popup\n [adultsDropdown]=\"guestsPopup.adultsDropdown\"\n [kidsDropdown]=\"guestsPopup.kidsDropdown\"\n [ageDropdown]=\"guestsPopup.ageDropdown\"\n [babysDropdown]=\"guestsPopup.babysDropdown\"\n [title]=\"guestsPopup.title\"\n [kidLabel]=\"guestsPopup.kidLabel\"\n [btnApply]=\"guestsPopup.btnApply\"\n (appliedData)=\"guestsChange($event)\"\n ></tent-guests-popup>\n }\n\n <div\n class=\"motor--input--wrapper flex-row flex-row--between\"\n [ngClass]=\"{ 'motor--input--wrapper--left': !modal }\"\n (click)=\"promoInputRef.focus()\"\n >\n <div class=\"motor--input--content\">\n @if (promoInput.value) {\n <p class=\"motor--input--title\">\n {{ promoInput.placeholder }}\n </p>\n }\n <input\n #promoInputRef\n class=\"motor--input\"\n type=\"text\"\n [value]=\"promoInput.value\"\n [placeholder]=\"promoInput.placeholder\"\n formControlName=\"promo\"\n (input)=\"changeInput($event)\"\n />\n </div>\n\n <span\n class=\"motor--input--icon\"\n [ngClass]=\"promoInput.icon\"\n ></span>\n </div>\n\n <div class=\"motor--dark-btn-wrapper\">\n <tent-button\n [ngClass]=\"{ 'motor--dark-btn--modal': modal }\"\n class=\"motor--dark-btn\"\n type=\"dark-box-filled\"\n [label]=\"btnSubmit.label\"\n boxWidth=\"200px\"\n (btnClick)=\"btnClicked()\"\n [name]=\"btnSubmit.label\"\n ></tent-button>\n </div>\n </form>\n @if (modal && advantages) {\n <span class=\"advantages--noBadge\" (click)=\"advantagesClick.emit()\">\n {{ advantages.label }}\n </span>\n }\n }\n</div>\n\n<ng-template #header>\n @if ((title || subtitle) && modal) {\n <header class=\"motor--header\">\n @if (title) {\n <h3 class=\"motor--title color--brown\">\n {{ title }}\n </h3>\n }\n @if (subtitle) {\n <h3 class=\"motor--title color--camel\">\n {{ subtitle }}\n </h3>\n }\n </header>\n }\n</ng-template>\n\n<ng-template #advantagesRef>\n @if (advantages) {\n <tent-badge\n class=\"advantages\"\n [label]=\"advantages.label\"\n [icon]=\"advantages.icon\"\n [rounded]=\"true\"\n (click)=\"advantagesClick.emit()\"\n ></tent-badge>\n }\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { fromEvent, tap } from 'rxjs';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tent-offer-banner',\n standalone: true,\n imports: [\n CommonModule,\n BadgeComponent,\n ButtonComponent,\n RouterModule,\n CurrencyPipe,\n ],\n templateUrl: './offer-banner.component.html',\n styleUrl: './offer-banner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferBannerComponent implements AfterViewInit {\n @ViewChild('close', { read: ElementRef }) closeBtn!: ElementRef;\n @ViewChild('closeBanner', { read: ElementRef }) closeBanner!: ElementRef;\n @Input() badge?: BadgeI;\n @Input() btnClose?: ButtonI;\n @Input() mainLabel?: string;\n @Input() priceLabel?: string;\n @Input() closeLabel?: string;\n @Input() price?: string;\n @Input() currency?: string;\n @Input() btnInfo?: ButtonI;\n @Input() img?: ImageI;\n @Input() desktop?: boolean;\n @Input() left?: boolean;\n\n @Output() closeClick = new EventEmitter<void>();\n\n constructor() {}\n\n ngAfterViewInit(): void {\n fromEvent(this.closeBtn.nativeElement, 'mouseenter')\n .pipe(\n tap(() => {\n (\n this.closeBanner.nativeElement as HTMLElement\n ).classList.add(\n this.left\n ? 'offer-banner--close--container--displayed--left'\n : 'offer-banner--close--container--displayed'\n );\n if (this.desktop) {\n (\n this.closeBtn.nativeElement as HTMLElement\n ).style.opacity = '0';\n }\n })\n )\n .subscribe();\n fromEvent(\n document.getElementsByTagName('tent-offer-banner')[0],\n 'mouseleave'\n )\n .pipe(\n tap(() => {\n (\n this.closeBanner.nativeElement as HTMLElement\n ).classList.remove(\n this.left\n ? 'offer-banner--close--container--displayed--left'\n : 'offer-banner--close--container--displayed'\n );\n (this.closeBtn.nativeElement as HTMLElement).style.opacity =\n '1';\n })\n )\n .subscribe();\n }\n\n closeModal(): void {\n this.closeClick.emit();\n }\n\n bannerClicked(event: Event): void {\n event.preventDefault();\n }\n}\n","<div\n #closeBanner\n class=\"offer-banner--close--container\"\n [ngClass]=\"{ 'offer-banner--close--container--left': left }\"\n (click)=\"closeClick.emit()\"\n>\n {{ closeLabel }}\n</div>\n\n<div class=\"offer-banner\" [ngClass]=\"{ 'offer-banner--left': left }\">\n @if (badge) {\n <tent-badge\n class=\"offer-banner--badge\"\n [rounded]=\"true\"\n [label]=\"badge.label\"\n ></tent-badge>\n\n } @if (btnClose) {\n <tent-button\n #close\n class=\"offer-banner--close\"\n type=\"dark-circle\"\n [icon]=\"btnClose.icon\"\n (btnClick)=\"closeClick.emit()\"\n name=\"close\"\n ></tent-button>\n }\n <a\n [attr.aria-label]=\"mainLabel\"\n class=\"offer-banner--container\"\n [href]=\"btnInfo?.url\"\n [routerLink]=\"[btnInfo?.url]\"\n (click)=\"bannerClicked($event)\"\n >\n <div class=\"flex-col flex-col--between offer-banner--content\">\n @if (mainLabel) {\n <p class=\"offer-banner--title\">\n {{ mainLabel }}\n </p>\n }\n <div class=\"flex-row flex-row--between\">\n @if (price || priceLabel) {\n <div class=\"flex-row offer-banner--price\">\n @if (priceLabel) {\n <span class=\"color--white offer-banner--sublabel\">\n {{ priceLabel }}\n </span>\n } @if (price) {\n <span class=\"color--white offer-banner--offer\">\n {{ price }}\n @if (currency) {\n {{ currency | currencySymbol }}\n }\n </span>\n }\n </div>\n } @if (btnInfo) {\n <tent-button\n class=\"offer-banner--btn-info offer-banner--btn-info--desktop\"\n type=\"dark-box\"\n [label]=\"btnInfo.label\"\n [url]=\"btnInfo.url\"\n [linkType]=\"btnInfo.linkType!\"\n boxWidth=\"154px\"\n ></tent-button>\n <tent-button\n class=\"offer-banner--btn-info offer-banner--btn-info--mobile\"\n type=\"dark-box\"\n [label]=\"btnInfo.label\"\n [url]=\"btnInfo.url\"\n [linkType]=\"btnInfo.linkType!\"\n boxWidth=\"115px\"\n ></tent-button>\n }\n </div>\n </div>\n @if (img?.src) {\n <img\n [src]=\"img?.src\"\n [alt]=\"img?.alt\"\n class=\"offer-banner--image\"\n loading=\"lazy\"\n width=\"150\"\n height=\"100\"\n />\n }\n </a>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\n@Component({\n selector: 'tent-offer-details',\n standalone: true,\n imports: [CommonModule, ButtonComponent, BadgeComponent, CurrencyPipe],\n templateUrl: './offer-details.component.html',\n styleUrl: './offer-details.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferDetailsComponent {\n @Input() image?: string;\n @Input() badge?: BadgeI;\n @Input() innerBadge?: BadgeI;\n @Input() title?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n @Input() linkBack?: ButtonI;\n @Input() conditionsTitle?: string;\n @Input() conditions?: string[];\n @Input() priceLabel?: string;\n @Input() price?: string | number;\n @Input() currency?: string;\n @Input() button?: ButtonI;\n\n @Output() backClick = new EventEmitter();\n\n conditionActive = false;\n collapsed = true;\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n\n toggleConditions(): void {\n this.conditionActive = !this.conditionActive;\n }\n}\n","<section class=\"offer-detail module-spacer--bottom\">\n <div class=\"offer-detail--content wrapper-big\">\n <div class=\"offer-detail--picture\">\n @if (image) {\n <div class=\"offer-detail--photo figure-content\">\n <figure class=\"figure-full\" [style]=\"getImage\"></figure>\n </div>\n } @if (badge) {\n <tent-badge\n class=\"offer-detail--picture--badget\"\n [rounded]=\"true\"\n [label]=\"badge.label\"\n ></tent-badge>\n }\n </div>\n <div class=\"offer-detail--inner\">\n @if (title) {\n <h2 class=\"offer-detail--tit title--60 color--brown\">\n {{ title }}\n </h2>\n } @if (innerBadge) {\n <tent-badge\n class=\"offer-detail--inner--badget\"\n [rounded]=\"true\"\n [label]=\"innerBadge.label\"\n ></tent-badge>\n }\n\n <div\n class=\"offer-detail--info\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @if (description) {\n <p class=\"text\" [innerHTML]=\"description\"></p>\n } @if (additionalDescription) {\n <p\n class=\"text text-more\"\n [innerHTML]=\"additionalDescription\"\n ></p>\n } @if (additionalDescription && links && links.length) {\n <div class=\"offer-detail--info--btns\">\n @for (link of links; track $index; let first = $first) { @if\n ($index < 2) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"link.label\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n <div\n class=\"offer-detail--conditions\"\n [ngClass]=\"!conditionActive ? 'close' : 'open'\"\n >\n <div class=\"offer-detail--conditions--box\">\n @if (conditionsTitle) {\n <h3\n class=\"offer-detail--conditions--subtit subtitle color--brown-70\"\n >\n {{ conditionsTitle }}\n </h3>\n } @if (conditions && conditions.length) {\n <ul class=\"offer-detail--conditions--list\">\n @for (condition of conditions; track $index) {\n <li class=\"offer-detail--conditions--item\">\n <p class=\"text\">\n {{ condition }}\n </p>\n </li>\n }\n </ul>\n }\n </div>\n\n @if (conditions && conditions.length && links) {\n <div class=\"offer-detail--conditions--btns\">\n @for (link of links; track $index; let last = $last) { @if\n ($index > 1) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': !last,\n 'btn-minus': last\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleConditions()\"\n [name]=\"link.label\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n\n <div class=\"offer-detail--prices\">\n @if (price) {\n <div class=\"offer-detail--prices--info\">\n <div class=\"offer-detail--prices--price\">\n @if (priceLabel) {\n <span class=\"title--18 color--brown\">{{\n priceLabel\n }}</span>\n }\n <p class=\"title--42 color--brown\">\n {{ price }}\n @if (currency) {\n <span class=\"title--32\">{{\n currency | currencySymbol\n }}</span>\n }\n </p>\n </div>\n </div>\n } @if (button) {\n <div class=\"offer-detail--prices--btns\">\n <tent-button\n type=\"dark-box-filled\"\n [label]=\"button.label\"\n [name]=\"button.label\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType\"\n ></tent-button>\n </div>\n }\n </div>\n @if (linkBack) {\n <tent-button\n class=\"offer-detail--link-back\"\n type=\"dark-link\"\n icon=\"icon-signal-left\"\n [label]=\"linkBack.label\"\n [name]=\"linkBack.label\"\n [url]=\"linkBack.url\"\n [linkType]=\"linkBack.linkType\"\n (btnClick)=\"backClick.emit()\"\n ></tent-button>\n }\n </div>\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n@Component({\n selector: 'tent-offer',\n standalone: true,\n imports: [\n ButtonComponent,\n BadgeComponent,\n RouterModule,\n CurrencyPipe,\n RouterModule,\n ],\n templateUrl: './offer.component.html',\n styleUrl: './offer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferComponent {\n @Input() image!: string;\n @Input() id!: string | number;\n @Input() title!: string;\n @Input() price!: string;\n @Input() priceLabel!: string;\n @Input() currency!: string;\n @Input() badge?: BadgeI;\n @Input() badgePrice?: BadgeI;\n @Input() buttons?: ButtonI[];\n\n @Output() btnClicked = new EventEmitter();\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n offerClicked(event: Event): void {\n event.preventDefault();\n this.btnClicked.emit(this.buttons?.[0].url);\n }\n}\n","<section class=\"offer-box\">\n <div class=\"offer-box--content\">\n @if(badge) {\n <tent-badge\n class=\"offer-box--badgetHotel\"\n [rounded]=\"true\"\n [label]=\"badge.label\"\n ></tent-badge>\n } @if (image) {\n <a\n [attr.aria-label]=\"title\"\n [href]=\"buttons ? buttons?.[0]?.url : null\"\n [routerLink]=\"[buttons?.[0]?.url]\"\n (click)=\"offerClicked($event)\"\n class=\"offer-box--photo figure-content\"\n >\n <figure class=\"figure-full\" [style]=\"getImage\"></figure>\n </a>\n\n }\n\n <div class=\"offer-box--head\">\n <div class=\"offer-box--headinner\">\n <div class=\"offer-box--infocontent\">\n @if(badgePrice) {\n <tent-badge\n class=\"offer-box--badgetPrice\"\n [rounded]=\"true\"\n [label]=\"badgePrice.label\"\n ></tent-badge>\n }\n <div class=\"offer-box--info\">\n @if (title) {\n <h3 class=\"title--30 color--brown\">\n {{ title }}\n </h3>\n } @if (price && priceLabel && currency) {\n <div class=\"offer-box--price\">\n <span class=\"title--18 color--camel\">{{\n priceLabel\n }}</span>\n <p class=\"title--42 color--brown\">\n {{ price\n }}<span class=\"title--32\">{{\n currency | currencySymbol\n }}</span>\n </p>\n </div>\n }\n </div>\n @if (buttons?.length) {\n <div class=\"offer-box--btns\">\n @for (btn of buttons; track $index) {\n <tent-button\n [type]=\"btn.type!\"\n [icon]=\"btn.icon\"\n [iconPosition]=\"btn.iconPosition\"\n [label]=\"btn.label\"\n [url]=\"btn.url\"\n [linkType]=\"btn.linkType!\"\n boxWidth=\"auto\"\n (btnClick)=\"\n $index === 0 ? btnClicked.emit(btn.url) : ''\n \"\n ></tent-button>\n\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { OfferComponent } from '../offer/offer.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { OfferI } from '../../../interfaces/core/offer.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-offer-list',\n standalone: true,\n imports: [CommonModule, ButtonComponent, OfferComponent],\n templateUrl: './offer-list.component.html',\n styleUrl: './offer-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferListComponent {\n @Input() items?: OfferI[];\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() description?: string;\n @Input() additionalDescription?: string;\n @Input() links?: ButtonI[];\n\n @Output() offerClick = new EventEmitter();\n\n collapsed = true;\n\n toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n }\n}\n","<section class=\"offer-list module-spacer--bottom\">\n <div class=\"offer-list--content wrapper-big\">\n <div class=\"offer-list--inner\">\n @if (items && items.length) { @for (offer of items; track $index) {\n <div class=\"offer-list--item\">\n <tent-offer\n [id]=\"offer.id\"\n [badge]=\"offer.badge\"\n [badgePrice]=\"offer.badgePrice\"\n [title]=\"offer.title\"\n [buttons]=\"offer.buttons\"\n [image]=\"offer.image\"\n [price]=\"offer.price\"\n [priceLabel]=\"offer.priceLabel\"\n [currency]=\"offer.currency\"\n (btnClicked)=\"\n offerClick.emit({ id: offer.id, url: $event })\n \"\n ></tent-offer>\n </div>\n } }\n </div>\n </div>\n</section>\n<section class=\"offer-ours module-spacer--bottom\">\n <div class=\"offer-ours--content wrapper-big\">\n <div class=\"offer-ours--inner\">\n <div class=\"offer-ours--box bg-beige\">\n @if (title || titleDark) {\n <h3 class=\"offer-ours--title title--80 color--camel\">\n {{ title }}\n @if (titleDark) {\n <span class=\"color--brown\">{{ titleDark }}</span>\n }\n </h3>\n\n }\n <div\n class=\"offer-ours--des\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n >\n @if (description) {\n <p class=\"text\">\n {{ description }}\n </p>\n } @if (additionalDescription) {\n <p class=\"text text-more\">\n {{ additionalDescription }}\n </p>\n } @if (additionalDescription && links && links.length) {\n <div class=\"offer-ours--btns\">\n @for (link of links; track $index; let first = $first) {\n <tent-button\n [ngClass]=\"{\n 'btn-more': first,\n 'btn-minus': !first\n }\"\n type=\"dark-link\"\n [label]=\"link.label\"\n (click)=\"toggleCollapse()\"\n [name]=\"link.label\"\n ></tent-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { OfferI } from '../../../interfaces/core/offer.interface';\nimport { CurrencyPipe } from '../../../pipes/currency.pipe';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { OfferComponent } from '../offer/offer.component';\n@Component({\n selector: 'tent-offer-slider',\n standalone: true,\n imports: [CarouselModule, OfferComponent, ButtonComponent, CurrencyPipe],\n templateUrl: './offer-slider.component.html',\n styleUrl: './offer-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OfferSliderComponent implements OnInit {\n @Input() offers!: OfferI[];\n @Input() title!: string;\n @Input() titleDark!: string;\n @Input() iconControlLeft = 'icon-pointer-left';\n @Input() iconControlRight = 'icon-pointer-right';\n @Input() link?: ButtonI;\n @Input() defaultImage?: string;\n @Input() defaultLabel?: string;\n\n @Output() offerClick = new EventEmitter<OfferData>();\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 40,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n responsive: {\n 0: {\n items: 1,\n },\n 540: {\n items: 1,\n },\n 768: {\n items: 1,\n },\n\n 1000: {\n items: 1,\n },\n 1024: {\n items: 1,\n },\n\n 1280: {\n items: 2,\n },\n\n 1350: {\n items: 2,\n },\n },\n nav: true,\n };\n\n get getImage(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.defaultImage})`\n );\n }\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n\n if (this.offers.length === 1) {\n this.sliderOptions = {\n ...this.sliderOptions,\n loop: false,\n autoplay: false,\n nav: false,\n };\n }\n }\n\n offerClicked(id: number | string, url: string): void {\n this.offerClick.emit({ id, url });\n }\n}\n\nexport interface OfferData {\n id: number | string;\n url: string;\n}\n","<section class=\"offer-slider module-spacer--bottom\">\n <div class=\"offer-slider--content wrapper-big\">\n <div class=\"offer-slider--head\">\n @if (titleDark) {\n <h3 class=\"offer-slider--title title--80 color--brown\">\n {{ titleDark }} @if (title) {\n\n <span class=\"color--camel\">{{ title }}</span\n >}\n </h3>\n } @if (link) {\n <tent-button\n type=\"dark-link\"\n [icon]=\"link.icon\"\n [iconPosition]=\"link.iconPosition\"\n [label]=\"link.label\"\n [url]=\"link.url\"\n [linkType]=\"link.linkType!\"\n ></tent-button>\n\n }\n </div>\n <div class=\"offer-slider--inner\">\n <owl-carousel-o\n class=\"offer-slider--slider slider-circle--center slider-circle--center--centerFull\"\n [options]=\"sliderOptions\"\n >\n @for (offer of offers; track $index) {\n <ng-template carouselSlide>\n <tent-offer\n [id]=\"offer.id\"\n [badge]=\"offer.badge\"\n [badgePrice]=\"offer.badgePrice\"\n [title]=\"offer.title\"\n [buttons]=\"offer.buttons\"\n [image]=\"offer.image\"\n [price]=\"offer.price\"\n [priceLabel]=\"offer.priceLabel\"\n [currency]=\"offer.currency | currencySymbol\"\n (btnClicked)=\"offerClicked(offer.id, $event)\"\n ></tent-offer>\n </ng-template>\n } @if(offers.length === 1 && defaultImage) {\n <ng-template carouselSlide>\n <div class=\"offer-slider--photo figure-content\">\n <figure class=\"figure-full\" [style]=\"getImage\"></figure>\n @if (defaultLabel) {\n <p\n class=\"offer-slider--photo--text\"\n [innerHTML]=\"defaultLabel\"\n ></p>\n }\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport {\n DropdownComponent,\n DropdownOption,\n} from '../../atomic/dropdown/dropdown.component';\n\n@Component({\n selector: 'tent-registration',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n MatCheckboxModule,\n DropdownComponent,\n ],\n templateUrl: './registration.component.html',\n styleUrl: './registration.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RegistrationComponent {\n tabs = ['login', 'recuperar', 'registrarse'];\n\n selected = 'registrarse';\n\n days: DropdownOption[] = [\n {\n name: '01',\n code: '1',\n },\n {\n name: '02',\n code: '2',\n },\n {\n name: '03',\n code: '3',\n },\n {\n name: '04',\n code: '4',\n },\n {\n name: '05',\n code: '5',\n },\n {\n name: '06',\n code: '6',\n },\n {\n name: '07',\n code: '7',\n },\n {\n name: '08',\n code: '8',\n },\n {\n name: '09',\n code: '9',\n },\n {\n name: '10',\n code: '10',\n },\n {\n name: '11',\n code: '11',\n },\n {\n name: '12',\n code: '12',\n },\n {\n name: '13',\n code: '13',\n },\n {\n name: '14',\n code: '14',\n },\n {\n name: '15',\n code: '15',\n },\n {\n name: '16',\n code: '16',\n },\n {\n name: '17',\n code: '17',\n },\n {\n name: '18',\n code: '18',\n },\n {\n name: '19',\n code: '19',\n },\n {\n name: '20',\n code: '20',\n },\n {\n name: '21',\n code: '21',\n },\n {\n name: '22',\n code: '22',\n },\n {\n name: '23',\n code: '23',\n },\n {\n name: '24',\n code: '24',\n },\n {\n name: '25',\n code: '25',\n },\n {\n name: '26',\n code: '26',\n },\n {\n name: '27',\n code: '27',\n },\n {\n name: '28',\n code: '28',\n },\n {\n name: '29',\n code: '29',\n },\n {\n name: '30',\n code: '30',\n },\n {\n name: '31',\n code: '31',\n },\n ];\n\n months: DropdownOption[] = [\n {\n name: 'enero',\n code: '1',\n },\n {\n name: 'febrero',\n code: '2',\n },\n {\n name: 'marzo',\n code: '3',\n },\n {\n name: 'abril',\n code: '4',\n },\n {\n name: 'mayo',\n code: '5',\n },\n {\n name: 'junio',\n code: '6',\n },\n {\n name: 'julio',\n code: '7',\n },\n {\n name: 'agosto',\n code: '8',\n },\n {\n name: 'septiembre',\n code: '9',\n },\n {\n name: 'octubre',\n code: '10',\n },\n {\n name: 'noviembre',\n code: '11',\n },\n {\n name: 'diciembre',\n code: '12',\n },\n ];\n years: DropdownOption[] = [\n {\n name: '2024',\n code: '2024',\n },\n {\n name: '2023',\n code: '2023',\n },\n {\n name: '2022',\n code: '2022',\n },\n {\n name: '2021',\n code: '2021',\n },\n {\n name: '2020',\n code: '2020',\n },\n {\n name: '2019',\n code: '2019',\n },\n {\n name: '2018',\n code: '2018',\n },\n {\n name: '2017',\n code: '2017',\n },\n {\n name: '2016',\n code: '2016',\n },\n {\n name: '2015',\n code: '2015',\n },\n {\n name: '2014',\n code: '2014',\n },\n {\n name: '2013',\n code: '2013',\n },\n {\n name: '2012',\n code: '2012',\n },\n {\n name: '2011',\n code: '2011',\n },\n {\n name: '2010',\n code: '2010',\n },\n {\n name: '2009',\n code: '2009',\n },\n {\n name: '2008',\n code: '2008',\n },\n {\n name: '2007',\n code: '2007',\n },\n {\n name: '2006',\n code: '2006',\n },\n {\n name: '2005',\n code: '2005',\n },\n {\n name: '2004',\n code: '2004',\n },\n {\n name: '2003',\n code: '2003',\n },\n {\n name: '2002',\n code: '2002',\n },\n {\n name: '2001',\n code: '2001',\n },\n {\n name: '2000',\n code: '2000',\n },\n {\n name: '1999',\n code: '1999',\n },\n {\n name: '1998',\n code: '1998',\n },\n {\n name: '1997',\n code: '1997',\n },\n {\n name: '1996',\n code: '1996',\n },\n {\n name: '1995',\n code: '1995',\n },\n ];\n\n @Output() tabClick = new EventEmitter<string>();\n\n selectTab(tab: string): void {\n this.selected = tab;\n this.tabClick.emit(tab);\n\n if (tab === 'registrarse') {\n }\n }\n}\n","<div class=\"registration\">\n <div>\n <div class=\"registration--main-wrapper\">\n <div class=\"registration--main-content flex-col flex-col--center\">\n <h3 class=\"registration--title color--brown\">registrarse</h3>\n\n <form class=\"registration--form\">\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n nombre\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"text\"\n placeholder=\"...\"\n />\n <span\n class=\"registration--input--icon icon-user\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n apellidos\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"text\"\n placeholder=\"...\"\n />\n <span\n class=\"registration--input--icon icon-user\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n email\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"email\"\n placeholder=\"@...\"\n />\n <span\n class=\"registration--input--icon icon-envelope\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n repetir email\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"email\"\n placeholder=\"@...\"\n />\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">teléfono</p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"text\"\n placeholder=\"...\"\n />\n <span\n class=\"registration--input--icon icon-phone\"\n ></span>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n fecha de nacimiento\n </p>\n <div class=\"registration--date\">\n <tent-dropdown\n class=\"registration--dropdown registration--dropdown--days\"\n [options]=\"days\"\n [value]=\"days[0]\"\n ></tent-dropdown>\n <tent-dropdown\n class=\"registration--dropdown registration--dropdown--months\"\n [options]=\"months\"\n [value]=\"months[0]\"\n ></tent-dropdown>\n <tent-dropdown\n class=\"registration--dropdown registration--dropdown--years\"\n [options]=\"years\"\n [value]=\"years[0]\"\n ></tent-dropdown>\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n contraseña\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"password\"\n placeholder=\"mínimo 6 carácteres\"\n />\n </div>\n </div>\n <div class=\"flex-col\">\n <p class=\"registration--input--title\">\n <span class=\"registration--input--required\"></span>\n repetir contraseña\n </p>\n <div class=\"registration--input--wrapper\">\n <input\n class=\"registration--input\"\n type=\"password\"\n placeholder=\"...\"\n />\n </div>\n </div>\n\n <div class=\"flex-col\">\n <div class=\"registration--checkbox--wrapper\">\n <mat-checkbox\n class=\"registration--checkbox\"\n ></mat-checkbox>\n <span class=\"registration--conditions color--brown\"\n >he leído y\n <a\n class=\"registration--conditions--link color--brown\"\n href=\"\"\n >\n acepto el aviso</a\n >\n legal y la\n <a\n class=\"registration--conditions--link color--brown\"\n href=\"\"\n >\n política de privacidad\n </a>\n </span>\n </div>\n <span class=\"registration--required--text\">\n <span class=\"registration--input--required\"></span>\n campos obligatorios\n </span>\n </div>\n\n <tent-button\n class=\"registration--submit\"\n type=\"dark-box-filled\"\n boxWidth=\"240px\"\n label=\"acceder\"\n name=\"acceder\"\n ></tent-button>\n </form>\n </div>\n </div>\n\n <div class=\"registration--submenu flex-row flex-row--center\">\n <span\n class=\"registration--tab\"\n (click)=\"selectTab(tabs[0])\"\n [ngClass]=\"{\n 'registration--tab--selected': tabs[0] === selected\n }\"\n >{{ tabs[0] }}\n </span>\n |\n <span\n class=\"registration--tab\"\n (click)=\"selectTab(tabs[1])\"\n [ngClass]=\"{\n 'registration--tab--selected': tabs[1] === selected\n }\"\n >{{ tabs[1] }}\n </span>\n |\n <a\n class=\"registration--tab\"\n (click)=\"selectTab(tabs[2])\"\n href=\"\"\n [ngClass]=\"{\n 'registration--tab--selected': tabs[2] === selected\n }\"\n >\n {{ tabs[2] }}\n </a>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { fromEvent, tap } from 'rxjs';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { GalleryPhotosItem } from '../gallery-photos/gallery-photos.component';\nimport { RoomZoomModalComponent } from '../modals/room-zoom-modal/room-zoom-modal.component';\n@Component({\n selector: 'tent-room-slider',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n CarouselModule,\n BadgeComponent,\n LazyBackgroundDirective,\n ],\n templateUrl: './room-slider.component.html',\n styleUrl: './room-slider.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RoomSliderComponent implements OnInit, OnChanges, AfterViewInit {\n @Input({ required: true }) items!: RoomsSliderRoom[];\n @Input() linkDescriptionMore?: ButtonI;\n @Input() linkDescriptionLess?: ButtonI;\n @Input() linkEquipmentMore?: ButtonI;\n @Input() linkEquipmentLess?: ButtonI;\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 3000,\n navSpeed: 3000,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n\n collapsed: boolean[] = [];\n viewmore: boolean[] = [];\n\n itemsToShow = 4;\n constructor(\n private readonly dialog: MatDialog,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n ngOnInit(): void {\n this.collapsed = new Array(this.items.length).fill(true);\n this.viewmore = new Array(this.items.length).fill(true);\n this.itemsToShow = window.innerWidth >= 540 ? 6 : 3;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['items']?.currentValue) {\n this.collapsed = new Array(this.items.length).fill(true);\n this.viewmore = new Array(this.items.length).fill(true);\n }\n }\n\n ngAfterViewInit(): void {\n fromEvent(window, 'resize')\n .pipe(\n tap(() => {\n this.itemsToShow = window.innerWidth >= 540 ? 6 : 3;\n })\n )\n .subscribe();\n }\n\n toggleCollapse(index: number): void {\n this.collapsed[index] = !this.collapsed[index];\n }\n\n toggleViewmore(index: number): void {\n this.viewmore[index] = !this.viewmore[index];\n }\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n openRoomModal(item: RoomsSliderRoom, index: number): void {\n const dialogRef = this.dialog.open(RoomZoomModalComponent, {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n panelClass: 'full-screen',\n hasBackdrop: true,\n });\n\n dialogRef.componentInstance.images =\n index === 0\n ? item.images?.map(\n (img) => ({ image: img } as GalleryPhotosItem)\n )\n : item.images\n ?.slice(index)\n .concat(item.images.slice(0, index))\n ?.map((img) => ({ image: img } as GalleryPhotosItem));\n }\n}\n\nexport interface RoomsSliderRoom {\n id?: string | number;\n title?: string;\n info?: {\n label: string;\n icon: string;\n }[];\n description?: string;\n additionalDescription?: string;\n images?: string[];\n equipment?: {\n title?: string;\n items?: string[];\n };\n}\n","<section class=\"room-slider module-spacer--bottom\">\n <div class=\"room-slider--content wrapper-big\">\n @for (item of items; track mainIndex; let mainIndex = $index; let odd =\n $odd) {\n <div\n class=\"room-slider--box\"\n [ngClass]=\"{\n 'info-right': !odd,\n 'info-left': odd,\n 'module-spacer-small--bottom': mainIndex !== items.length - 1\n }\"\n >\n <owl-carousel-o\n class=\"room-slider--slider slider-circle--center figure-sticky\"\n [options]=\"sliderOptions\"\n >\n @for (img of item.images; track imageIndex; let imageIndex =\n $index) {\n <ng-template carouselSlide>\n <div class=\"room-slider--photo figure-content\">\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"img\"\n ></figure>\n <div class=\"btn_search--wrapper\">\n <div\n class=\"btn btn__circle btn__white btn_search--full\"\n (click)=\"openRoomModal(item, imageIndex)\"\n >\n <span class=\"btn_search--text\">\n ampliar foto</span\n >\n <span\n class=\"btn__circle-icon icon-search-plus icon--size22\"\n >\n </span>\n </div>\n <div\n class=\"btn btn__circle btn__white btn_search\"\n (click)=\"openRoomModal(item, imageIndex)\"\n >\n <span\n class=\"btn__circle-icon icon-search-plus icon--size22\"\n >\n </span>\n </div>\n </div>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n <div class=\"room-slider--info\">\n @if (item.title) {\n <h2 class=\"room-slider--info--title title--60 color--brown\">\n {{ item.title }}\n </h2>\n } @if (item.info) {\n <ul class=\"room-slider--info--icons\">\n @for (infoItem of item.info; track $index) {\n <li>\n <span class=\"info--icon\">\n <span\n class=\"info--icon--svg\"\n [ngClass]=\"infoItem.icon\"\n ></span>\n </span>\n <p class=\"text\">{{ infoItem.label }}</p>\n </li>\n }\n </ul>\n } @if (item.description || item.additionalDescription) {\n <div\n class=\"room-slider--info--des\"\n [ngClass]=\"collapsed[mainIndex] ? 'close' : 'open'\"\n >\n @if (item.description) {\n <p class=\"text\">\n {{ item.description }}\n </p>\n\n } @if (item.additionalDescription) {\n <p class=\"text text-more\">\n {{ item.additionalDescription }}\n </p>\n } @if (linkDescriptionMore && linkDescriptionLess &&\n item.additionalDescription) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"linkDescriptionMore.label\"\n (click)=\"toggleCollapse(mainIndex)\"\n [name]=\"linkDescriptionMore.label\"\n ></tent-button>\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"linkDescriptionLess.label\"\n (click)=\"toggleCollapse(mainIndex)\"\n [name]=\"linkDescriptionLess.label\"\n ></tent-button>\n }\n </div>\n }\n <div\n class=\"room-slider--info--equipament\"\n [ngClass]=\"viewmore[mainIndex] ? 'close' : 'open'\"\n >\n @if (item.equipment?.title) {\n <h2\n class=\"room-slider--info--subtit title--24 color--brown\"\n >\n {{ item.equipment?.title }}\n </h2>\n\n } @if (item.equipment?.items) {\n <ul>\n @for (equipmentItem of item.equipment?.items; track\n $index) {\n <li>\n <span class=\"icon-check\"></span>\n <p class=\"text\">{{ equipmentItem }}</p>\n </li>\n }\n </ul>\n }\n\n <div class=\"room-slider--info--btns\">\n @if (linkEquipmentMore && linkEquipmentLess &&\n item.equipment?.items?.length! > itemsToShow) {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"linkEquipmentMore.label\"\n (click)=\"toggleViewmore(mainIndex)\"\n [name]=\"linkEquipmentMore.label\"\n ></tent-button>\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"linkEquipmentLess.label\"\n (click)=\"toggleViewmore(mainIndex)\"\n [name]=\"linkEquipmentLess.label\"\n ></tent-button>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent } from '../../atomic/button/button.component';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'tent-services-details',\n standalone: true,\n imports: [CommonModule, ButtonComponent, CarouselModule, BadgeComponent],\n templateUrl: './services-details.component.html',\n styleUrl: './services-details.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ServicesDetailsComponent {\n @Input() items?: ServicesDetailsItem[];\n @Input() title?: string;\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n margin: 0,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: false,\n navText: [\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-left icon--size12 \"> </span></div>',\n '<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon icon-signal-right icon--size12 \"> </span></div>',\n ],\n responsive: {\n 0: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n nav: true,\n };\n collapsed1 = true;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n getImage(img: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${img})`\n );\n }\n\n toggleCollapse1(): void {\n this.collapsed1 = !this.collapsed1;\n }\n}\n\nexport interface ServicesDetailsItem {\n image?: string;\n title?: string;\n description?: string;\n links?: ButtonI[];\n}\n","<section class=\"services-details module-spacer--bottom\">\n <div class=\"services-details--content wrapper-big\">\n <div class=\"services-details--inner\">\n @if (title) {\n <h2\n class=\"services-details--title title--60 color--brown\"\n [innerHTML]=\"title\"\n ></h2>\n } @if (items?.length) {\n <div class=\"services-details--items\">\n @for (item of items; track $index) {\n <div class=\"services-details--item\">\n @if (item.image || item.title) {\n <div class=\"services-details--photo figure-content\">\n @if (item.image) {\n <figure\n class=\"figure-full\"\n [style]=\"getImage(item.image)\"\n ></figure>\n } @if (item.title) {\n <div class=\"services-details--info\">\n <h2\n class=\"services-details--tit title--38 color--white\"\n [innerHTML]=\"item.title\"\n ></h2>\n </div>\n }\n </div>\n } @if (item.description || item.links) {\n <div class=\"services-details--des\">\n @if (item.description) {\n <p class=\"text\">{{ item.description }}</p>\n\n } @if (item.links?.length && item.links) {\n <div class=\"flex-row\">\n @for (link of item.links; track $index) { @if (link)\n {\n <tent-button\n type=\"dark-link\"\n [url]=\"link.url\"\n [label]=\"link.label\"\n [linkType]=\"link.linkType\"\n ></tent-button>\n } }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-submenu',\n standalone: true,\n imports: [CommonModule, RouterModule],\n templateUrl: './submenu.component.html',\n styleUrl: './submenu.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SubmenuComponent {\n @Input() links?: ButtonI[];\n @Input() selected?: ButtonI;\n @Input() title?: string;\n}\n","<div class=\"submenu\">\n @if (title) {\n <h3 class=\"submenu--title color--camel\">{{ title }}</h3>\n } @if (links) {\n <div class=\"submenu--links\">\n @for (link of links; track $index) {\n <a\n [href]=\"link.url\"\n [routerLink]=\"[link.url]\"\n [attr.aria-label]=\"link.label\"\n [ngClass]=\"{\n 'submenu--link--selected':\n selected?.label?.toLowerCase() ===\n link?.label?.toLowerCase()\n }\"\n class=\"submenu--link link color--white\"\n >\n {{ link.label }}\n </a>\n }\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { ImageI } from '../../../../public-api';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\ntype Award = {\n img: string;\n alt: string;\n title: string;\n subtitle?: string;\n};\n\n@Component({\n selector: 'lib-tent-carrousel-img',\n standalone: true,\n imports: [CommonModule, CarouselModule, ButtonComponent],\n templateUrl: './tent-carrousel-img.component.html',\n styleUrl: './tent-carrousel-img.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TentCarrouselImgComponent implements OnInit {\n @Input() iconControlLeft = 'icon-signal-left';\n @Input() iconControlRight = 'icon-signal-right';\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() items?: ImageI[];\n\n /* slides: Award[] = [\n {\n img: 'assets/tent/img/slider1.png',\n alt: 'Skift IDEA Awards 2025 Finalist',\n title: 'Skift IDEA Awards 2025 – Innovación hacia la transformación hotelera',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider2.png',\n alt: 'Premios CAEB–Santander',\n title: 'Premios CAEB–Santander a la Innovación Empresarial',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider3.png',\n alt: 'Tripadvisor Travellers’ Choice 2023',\n title: 'Travellers’ Choice Awards (2023)',\n subtitle: 'tent Playa de Palma',\n },\n {\n img: 'assets/tent/img/slider4.png',\n alt: 'Tripadvisor Travellers’ Choice 2024',\n title: 'Travellers’ Choice Awards (2024)',\n subtitle: 'tent Capi Playa',\n },\n {\n img: 'assets/tent/img/slider1.png',\n alt: 'Skift IDEA Awards 2025 Finalist',\n title: 'Skift IDEA Awards 2025 – Innovación hacia la transformación hotelera',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider2.png',\n alt: 'Premios CAEB–Santander',\n title: 'Premios CAEB–Santander a la Innovación Empresarial',\n subtitle: '',\n },\n {\n img: 'assets/tent/img/slider3.png',\n alt: 'Tripadvisor Travellers’ Choice 2023',\n title: 'Travellers’ Choice Awards (2023)',\n subtitle: 'tent Playa de Palma',\n },\n ]; */\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: false,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n dots: false,\n nav: true,\n navText: ['', ''], // iconos por CSS\n margin: 24,\n smartSpeed: 450,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n stagePadding: 16,\n responsive: {\n 0: { items: 1, stagePadding: 16, margin: 16 },\n 540: { items: 2, stagePadding: 16, margin: 20 },\n 768: { items: 4, stagePadding: 40, margin: 40 },\n 1280: { items: 5, stagePadding: 40, margin: 40 },\n },\n };\n\n ngOnInit(): void {\n this.sliderOptions.navText = [\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlLeft} icon--size12 \"> <span><div>`,\n `<div class=\"btn btn__circle btn__circle-- btn__dark\"><span class=\"btn__circle-icon ${this.iconControlRight} icon--size12 \"> <span><div>`,\n ];\n }\n}\n","<section\n class=\"tent__carrousel-img\"\n aria-labelledby=\"tent__carrousel-img-title\"\n>\n <!-- Cabecera decorativa -->\n <div class=\"tent__carrousel-img__bg\" aria-hidden=\"true\"></div>\n <header class=\"tent__carrousel-img__header\">\n <h2\n id=\"tent__carrousel-img-title\"\n class=\"tent__carrousel-img__title\"\n >\n <span class=\"title--80 color--camel\">{{ title }}</span>\n <span class=\"title--80 color--brown\">{{ titleDark }}</span>\n </h2>\n </header>\n <div class=\"tent__carrousel-img__wrap\">\n\n <owl-carousel-o\n class=\"tent__carrousel-img__slider slider-circle--center\"\n [options]=\"sliderOptions\"\n >\n @for (s of items; track s.alt) {\n <ng-template carouselSlide>\n <div class=\"card-container\">\n <article class=\"tent__carrousel-card\">\n <div\n class=\"tent__carrousel-card__logo\"\n role=\"img\"\n [attr.aria-label]=\"s.alt\"\n >\n <img\n [src]=\"s.src\"\n [attr.alt]=\"s.alt\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n </div>\n\n <div class=\"tent__carrousel-card__text\">\n <h3 class=\"title--18 color--brown\">\n {{ s.title }}\n </h3>\n @if (s.subtitle) {\n <p class=\"text color--camel\">\n {{ s.subtitle }}\n </p>\n }\n </div>\n @if (s.buttons && s.buttons[0]) {\n <div class=\"tent__carrousel--btns pt--20\">\n <tent-button\n [type]=\"'dark-link'\"\n [icon]=\"undefined\"\n [iconPosition]=\"undefined\"\n [label]=\"s.buttons[0].label\"\n [url]=\"s.buttons[0].url\"\n [linkType]=\"undefined\"\n ></tent-button>\n </div>\n }\n </article>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n</section>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n signal,\n} from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n ButtonComponent,\n DynamicScriptService,\n LangCodeService,\n} from '../../../../public-api';\n\n@Component({\n selector: 'lib-tent-faq',\n standalone: true,\n imports: [CommonModule, MatIcon, ButtonComponent],\n templateUrl: './tent-faq.component.html',\n styleUrl: './tent-faq.component.scss',\n animations: [\n trigger('slideToggle', [\n state(\n 'open',\n style({ height: '*', opacity: 1, overflow: 'hidden' })\n ),\n state(\n 'closed',\n style({ height: '0px', opacity: 0, overflow: 'hidden' })\n ),\n transition('closed <=> open', animate('250ms ease')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TentFaqComponent {\n @Input() title?: string;\n @Input() pretitle?: string;\n @Input() licence?: string;\n @Input() lang?: string = 'en';\n @Input() top?: string;\n @Input() faqmore?: string;\n @Input() faqless?: string;\n @Input() description?: string;\n @Input() maxItems: number = 5;\n\n items?: TentFaqItem[] = [];\n\n selectedIndex = signal<number>(0);\n private scriptService = inject(DynamicScriptService);\n\n private _showAll = signal(false);\n showAll = this._showAll.asReadonly();\n\n private cdr = inject(ChangeDetectorRef);\n\n constructor(private langSvc: LangCodeService) {}\n\n async ngOnInit(): Promise<void> {\n if (this.licence && this.lang && this.top) {\n try {\n const faqs = await this.loadFaqsManually();\n this.items = faqs;\n this.cdr.markForCheck();\n } catch (e) {}\n }\n if (!this.faqmore || !this.faqless) {\n this._showAll.update((v) => true);\n }\n }\n\n selectItem(index: number) {\n this.selectedIndex.set(index);\n }\n\n private readonly QTXT_API = 'https://snippets.quicktext.im/v2/get/snippets';\n\n private async loadFaqsManually(): Promise<TentFaqItem[]> {\n const url = `https://snippets.quicktext.im/v2/get/snippets?license=${this.licence}&top=${this.top}&lang=${this.langSvc.toShort(this.lang ?? 'es')}`;\n\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Quicktext API error: ${res.status}`);\n\n const json = await res.json();\n\n if (!Array.isArray(json)) throw new Error('FAQs no válidas');\n\n return json.map((item: any) => ({\n label: item.name ?? 'Ask',\n description: item.acceptedAnswer?.text ?? 'Unanswered',\n }));\n }\n\n toggleShowAll(): void {\n this._showAll.update((v) => !v);\n }\n\n toggleItem(index: number, event: MouseEvent) {\n event.stopPropagation();\n\n if (this.selectedIndex() === index) {\n this.selectedIndex.set(-1);\n } else {\n this.selectedIndex.set(index);\n }\n }\n}\nexport interface TentFaqItem {\n label?: string;\n description?: string;\n}\n","<section class=\"tent__faq margin-main\">\n <div class=\"container faq-container\">\n <div class=\"row align-items-start\">\n <div class=\"col-lg-8 offset-lg-2\">\n @if (pretitle || title || description) {\n <div class=\"mb--40 text-center\">\n @if (pretitle) {\n <p\n class=\"text-uppercase subtitle color--brown title--40\"\n >\n {{ pretitle }}\n </p>\n }\n @if (title) {\n <h2 class=\"title title--60 color--camel\">\n {{ title }}\n </h2>\n }\n @if (description) {\n <h2 class=\"text color--camel\">\n {{ description }}\n </h2>\n }\n </div>\n }\n\n @if (items?.length) {\n <div\n class=\"tent-faq__list\"\n [class.is-collapsed]=\"!showAll()\"\n >\n @for (item of items; track $index) {\n <div\n class=\"tent-faq__item\"\n [class.active]=\"selectedIndex() === $index\"\n (click)=\"selectItem($index)\"\n *ngIf=\"showAll() || $index < maxItems\"\n >\n <button\n type=\"button\"\n class=\"tent-faq__question\"\n >\n <h3\n class=\"tent-faq__label color--brown title--24\"\n >\n {{ item.label }}\n </h3>\n <mat-icon\n class=\"color--brown icon-plus tent-faq__icon\"\n fontSet=\"icomoon\"\n (click)=\"toggleItem($index, $event)\"\n ></mat-icon>\n </button>\n <div\n class=\"tent-faq__answer\"\n [@slideToggle]=\"\n selectedIndex() === $index\n ? 'open'\n : 'closed'\n \"\n >\n <p\n class=\"text\"\n [innerHTML]=\"item.description\"\n ></p>\n </div>\n </div>\n }\n </div>\n\n @if (items && faqless && faqmore && maxItems) {\n @if (items.length > maxItems) {\n @if (showAll()) {\n <tent-button\n class=\"btn-minus\"\n type=\"dark-link\"\n [label]=\"faqless\"\n (click)=\"toggleShowAll()\"\n [name]=\"faqless\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"btn-more\"\n type=\"dark-link\"\n [label]=\"faqmore\"\n (click)=\"toggleShowAll()\"\n [name]=\"faqmore\"\n ></tent-button>\n }\n }\n }\n }\n </div>\n </div>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonComponent, ButtonI, ImageI } from '../../../../public-api';\n\n@Component({\n selector: 'tent-footer-logos',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './tent-footer-logos.component.html',\n styleUrl: './tent-footer-logos.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TentFooterLogosComponent {\n @Input() logos?: ImageI[];\n @Input() texts?: TentTexts;\n @Input() buttons?: ButtonI[];\n\n get filteredButtons() {\n return (this.buttons || []).filter((b) => !!b);\n }\n\n hasContent() {\n return (\n this.texts &&\n (this.texts.title || this.texts.pretitle || this.texts.text)\n );\n }\n}\n\nexport interface TentFooterLogoItemI {\n img?: ImageI;\n link?: ButtonI;\n}\n\nexport interface TentTexts {\n title?: string;\n pretitle?: string;\n text?: string;\n}\n","@if (hasContent()) {\n <section class=\"tent__footer-logos\">\n <div class=\"container footer-logos-container\">\n <div class=\"intro_info pt--20\">\n @if (texts?.pretitle) {\n <div class=\"text-pretitle\">\n <p\n class=\"text color--brown\"\n [innerHTML]=\"texts?.pretitle\"\n ></p>\n </div>\n }\n @if (texts?.title) {\n <h3 class=\"title--30 color--brown\">\n {{ texts?.title }}\n </h3>\n }\n @if (texts?.text) {\n <div class=\"text-description\">\n <p\n class=\"text color--brown\"\n [innerHTML]=\"texts?.text\"\n ></p>\n </div>\n }\n </div>\n @if (filteredButtons.length) {\n @for (button of filteredButtons; track $index) {\n @if (button.label || button.url) {\n <tent-button\n class=\"brunch--show-more\"\n type=\"dark-link\"\n [label]=\"button.label\"\n [name]=\"button.name\"\n [attr.aria-label]=\"button.label\"\n [url]=\"button.url\"\n >\n </tent-button>\n }\n }\n }\n @if (logos?.length) {\n <ul>\n @for (logo of logos; track $index) {\n <li>\n <img\n [src]=\"logo.src\"\n [alt]=\"logo.alt || ''\"\n loading=\"lazy\"\n />\n </li>\n }\n </ul>\n }\n </div>\n </section>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { TentLoyaltyI } from '../../../interfaces/core/tent-loyalty.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'lib-tent-loyalty',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './tent-loyalty.component.html',\n styleUrl: './tent-loyalty.component.scss',\n})\nexport class TentLoyaltyComponent {\n @Input() id: number = 0;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() percentage?: string;\n @Input() percentagetext1?: string;\n @Input() percentagetext2?: string;\n @Input() loyalties?: TentLoyaltyI;\n\n collapsed = true;\n toggleCollapse(event: Event): void {\n event.stopPropagation();\n this.collapsed = !this.collapsed;\n }\n}\n","<section\n class=\"tent-loyalty wrapper-big\"\n [ngClass]=\"{ 'module-spacer--bottom': id == 3 }\"\n>\n <div class=\"tent-loyalty--content\">\n @switch (id) {\n @case (0) {\n <div class=\"tent-loyalty--head\">\n @if (title) {\n <h2\n class=\"tent-loyalty--head--tit title--42 color--brown\"\n >\n {{ title }}\n </h2>\n }\n @if (subtitle) {\n <p class=\"tent-loyalty--head--text text\">\n {{ subtitle }}\n </p>\n }\n @if (percentage || percentagetext1 || percentagetext2) {\n <div class=\"discount-loyalty\">\n <div class=\"texts-container\">\n @if (percentagetext1) {\n <p\n class=\"text color--brown\"\n [innerHTML]=\"percentagetext1\"\n ></p>\n }\n @if (percentage) {\n <h2\n class=\"title--42 color--brown\"\n [innerHTML]=\"percentage\"\n ></h2>\n }\n @if (percentagetext2) {\n <p\n class=\"text color--brown\"\n [innerHTML]=\"percentagetext2\"\n ></p>\n }\n </div>\n <div class=\"img-container\">\n <img\n src=\"/assets/tent/img/loyalty-discount-bg.svg\"\n alt=\"left\"\n loading=\"lazy\"\n class=\"location-how--iconactive\"\n />\n </div>\n </div>\n }\n </div>\n }\n @case (1) {\n <div\n class=\"tent-loyalty--box bg-yellow\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n (click)=\"toggleCollapse($event)\"\n >\n <div class=\"tent-loyalty--box--inner\">\n <h3\n class=\"tent-loyalty--box--title title--42 color--brown\"\n >\n @if (loyalties?.icon) {\n <span\n class=\"loyalty-icon color--brown\"\n [ngClass]=\"'icon-' + loyalties?.icon\"\n ></span>\n }\n @if (loyalties?.levelName) {\n <div class=\"tent-loyalty--box--title--level\">\n <span class=\"text color--brown\">\n {{ loyalties?.levelName }}\n </span>\n @if (loyalties?.levelSubtitle) {\n <p\n class=\"tent-loyalty--info--text text color--brown\"\n [ngClass]=\"\n !collapsed\n ? 'visible'\n : 'hidden'\n \"\n >\n {{ loyalties?.levelSubtitle }}\n </p>\n }\n </div>\n }\n </h3>\n <div\n class=\"tent-loyalty--box--info\"\n [ngClass]=\"collapsed ? 'visible' : 'hidden'\"\n >\n @if (loyalties?.discount) {\n <span\n class=\"tent-loyalty--box--info--num title--42 color--brown\"\n >{{ loyalties?.discount }}</span\n >\n }\n @if (loyalties?.advantages) {\n <p\n class=\"tent-loyalty--info--text text color--brown\"\n >\n {{ loyalties?.advantages }}\n </p>\n }\n </div>\n @if (collapsed) {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seemore ?? '+'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow reverse without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seeless ?? '-'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n }\n </div>\n <ul class=\"tent-loyalty--box--list\">\n @if (loyalties?.items?.length) {\n @for (item of loyalties?.items; track $index) {\n <li\n [ngClass]=\"\n loyalties?.items?.length == 3 &&\n $index == 0\n ? 'first-item-big'\n : ''\n \"\n >\n <p\n class=\"tent-loyalty--box--item color--brown\"\n >\n @if (item.text) {\n <span\n class=\"text color--brown\"\n [innerHTML]=\"item.text\"\n ></span>\n }\n @if (item.icon) {\n <span\n class=\"tent-loyalty--box--item--icon\"\n [class]=\"'icon-' + item.icon\"\n ></span>\n }\n @if (item.title) {\n <span class=\"text color--brown\">{{\n item.title\n }}</span>\n }\n </p>\n </li>\n }\n }\n </ul>\n </div>\n }\n @case (2) {\n <div\n class=\"tent-loyalty--box bg-orange\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n (click)=\"toggleCollapse($event)\"\n >\n <div class=\"tent-loyalty--box--inner\">\n <h3\n class=\"tent-loyalty--box--title title--42 color--white\"\n >\n @if (loyalties?.icon) {\n <span\n class=\"loyalty-icon\"\n [ngClass]=\"'icon-' + loyalties?.icon\"\n ></span>\n }\n @if (loyalties?.levelName) {\n <div class=\"tent-loyalty--box--title--level\">\n <span class=\"text color--white\">\n {{ loyalties?.levelName }}\n </span>\n @if (loyalties?.levelSubtitle) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n [ngClass]=\"\n !collapsed\n ? 'visible'\n : 'hidden'\n \"\n >\n {{ loyalties?.levelSubtitle }}\n </p>\n }\n </div>\n }\n </h3>\n <div\n class=\"tent-loyalty--box--info\"\n [ngClass]=\"collapsed ? 'visible' : 'hidden'\"\n >\n @if (loyalties?.discount) {\n <span\n class=\"tent-loyalty--box--info--num title--42 color--white\"\n >{{ loyalties?.discount }}</span\n >\n }\n @if (loyalties?.advantages) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n >\n {{ loyalties?.advantages }}\n </p>\n }\n </div>\n @if (collapsed) {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seemore ?? '+'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow reverse without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seeless ?? '-'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n }\n </div>\n <ul class=\"tent-loyalty--box--list\">\n @if (loyalties?.items?.length) {\n @for (item of loyalties?.items; track $index) {\n <li>\n <p\n class=\"tent-loyalty--box--item color--brown\"\n >\n @if (item.text) {\n <span\n class=\"text color--brown\"\n [innerHTML]=\"item.text\"\n ></span>\n }\n @if (item.icon) {\n <span\n class=\"tent-loyalty--box--item--icon\"\n [class]=\"'icon-' + item.icon\"\n ></span>\n }\n @if (item.title) {\n <span class=\"text color--brown\">{{\n item.title\n }}</span>\n }\n </p>\n </li>\n }\n }\n </ul>\n </div>\n }\n @case (3) {\n <div\n class=\"tent-loyalty--box bg-brown\"\n [ngClass]=\"collapsed ? 'close' : 'open'\"\n (click)=\"toggleCollapse($event)\"\n >\n <div class=\"tent-loyalty--box--inner\">\n <h3\n class=\"tent-loyalty--box--title title--42 color--white\"\n >\n @if (loyalties?.icon) {\n <span\n class=\"loyalty-icon\"\n [ngClass]=\"'icon-' + loyalties?.icon\"\n ></span>\n }\n @if (loyalties?.levelName) {\n <div class=\"tent-loyalty--box--title--level\">\n <span class=\"text color--white\">\n {{ loyalties?.levelName }}\n </span>\n @if (loyalties?.levelSubtitle) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n [ngClass]=\"\n !collapsed\n ? 'visible'\n : 'hidden'\n \"\n >\n {{ loyalties?.levelSubtitle }}\n </p>\n }\n </div>\n }\n </h3>\n <div\n class=\"tent-loyalty--box--info\"\n [ngClass]=\"collapsed ? 'visible' : 'hidden'\"\n >\n @if (loyalties?.discount) {\n <span\n class=\"tent-loyalty--box--info--num title--42 color--white\"\n >{{ loyalties?.discount }}</span\n >\n }\n @if (loyalties?.advantages) {\n <p\n class=\"tent-loyalty--info--text text color--white\"\n >\n {{ loyalties?.advantages }}\n </p>\n }\n </div>\n @if (collapsed) {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seemore ?? '+'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow reverse without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n } @else {\n <tent-button\n class=\"tent-loyalty--btn-arrow with-label\"\n type=\"dark-box\"\n [label]=\"loyalties?.seeless ?? '-'\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n <tent-button\n class=\"tent-loyalty--btn-arrow without-label\"\n type=\"dark-circle-filled\"\n icon=\"icon-signal-up\"\n (click)=\"toggleCollapse($event)\"\n ></tent-button>\n }\n </div>\n <ul class=\"tent-loyalty--box--list\">\n @if (loyalties?.items?.length) {\n @for (item of loyalties?.items; track $index) {\n <li>\n <p\n class=\"tent-loyalty--box--item color--brown\"\n >\n @if (item.text) {\n <span\n class=\"text color--brown\"\n [innerHTML]=\"item.text\"\n >{{ item.text }}</span\n >\n }\n @if (item.icon) {\n <span\n class=\"tent-loyalty--box--item--icon\"\n [class]=\"'icon-' + item.icon\"\n ></span>\n }\n @if (item.title) {\n <span class=\"text color--brown\">{{\n item.title\n }}</span>\n }\n </p>\n </li>\n }\n }\n </ul>\n </div>\n }\n }\n </div>\n</section>\n","import { Component, Input } from '@angular/core';\nimport { ButtonI, ImageI } from '../../../../public-api';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-redirection',\n standalone: true,\n imports: [ButtonComponent, BadgeComponent],\n templateUrl: './tent-redirection.component.html',\n styleUrl: './tent-redirection.component.scss',\n})\nexport class TentRedirectionComponent {\n @Input() verticalText1?: string;\n @Input() verticalText2?: string;\n @Input() title?: string;\n @Input() description?: string;\n @Input() buttons?: ButtonI[];\n @Input() img?: ImageI;\n}\n\nexport interface TextsI {\n verticalText?: string;\n title?: string;\n description?: string;\n}\n","<section class=\"fergus-feature\">\n <span class=\"fergus-feature__bg\"></span>\n\n <div class=\"fergus-feature__inner\">\n @if (verticalText1 || verticalText2) {\n <span class=\"fergus-feature__vertical\">\n @if (verticalText1) {\n <span class=\"gold title--60\">{{ verticalText1 }}</span\n ><br />\n }\n @if (verticalText2) {\n <span class=\"brown title--60\">{{ verticalText2 }}</span>\n }\n </span>\n }\n\n <figure class=\"fergus-feature__media\">\n @if (img) {\n <div class=\"img__container\">\n <img [src]=\"img.src\" [alt]=\"img.alt\" />\n </div>\n }\n <figcaption class=\"fergus-feature__card\">\n @if (title) {\n <div class=\"title--60-container\">\n <h2\n class=\"fergus-feature__title title--60\"\n [innerHTML]=\"title\"\n ></h2>\n </div>\n }\n <div class=\"info-container\">\n @if (description) {\n <p\n class=\"fergus-feature__desc text\"\n [innerHTML]=\"description\"\n ></p>\n }\n\n @if (buttons?.length) {\n @for (button of buttons; track $index) {\n @if (button) {\n <div class=\"button-container\">\n <tent-button\n type=\"dark-box\"\n [label]=\"button.label\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType\"\n ></tent-button>\n </div>\n }\n }\n }\n </div>\n </figcaption>\n </figure>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-thanks',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './thanks.component.html',\n styleUrl: './thanks.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ThanksComponent {\n @Input() image?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() description?: string;\n @Input() button?: ButtonI;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n get imageInstant(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${this.image})`\n );\n }\n}\n","<div class=\"thanks\">\n <div class=\"thanks--left-slot\">\n <figure class=\"figure-full\" [style]=\"imageInstant\"></figure>\n </div>\n <div class=\"thanks--right-slot\">\n @if (title) {\n <p class=\"thanks--title\">{{ title }}</p>\n }\n\n <div class=\"thanks--footer\">\n @if (subtitle) {\n <p class=\"thanks--subtitle\">\n {{ subtitle }}\n </p>\n } @if (description) {\n <p class=\"thanks--description\" [innerHTML]=\"description\"></p>\n } @if (button) {\n <tent-button\n [label]=\"button.label\"\n type=\"dark-link\"\n [url]=\"button.url\"\n [linkType]=\"button.linkType\"\n ></tent-button>\n }\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport {\n CarouselComponent,\n CarouselModule,\n OwlOptions,\n} from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { BadgeI } from '../../../interfaces/atomic/badge.interface';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\nimport { ImageI } from '../../../interfaces/atomic/image.interface';\nimport { BadgeComponent } from '../../atomic/badge/badge.component';\nimport { ButtonComponent } from '../../atomic/button/button.component';\n\n@Component({\n selector: 'tent-top-module',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n BadgeComponent,\n CarouselModule,\n MatIconModule,\n LazyBackgroundDirective,\n ],\n templateUrl: './top-module.component.html',\n styleUrl: './top-module.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TopModuleComponent implements AfterViewInit, OnInit {\n @ViewChild(CarouselComponent) carousel!: CarouselComponent;\n @ViewChild('nav', { read: ElementRef }) nav!: ElementRef;\n @ViewChild('module', { read: ElementRef }) module!: ElementRef;\n @Input() btnScroll!: ButtonI;\n @Input() items!: TopModuleItem[];\n @Input() desktop?: boolean;\n @Input() scrollLabel?: string;\n @Input() video?: string;\n @Input() gift?: ImageI;\n @Input() logo?: ImageI;\n @Input() logoMobile?: ImageI;\n @Input() slim?: boolean;\n @Input() title?: string;\n @Input() subtitle?: string;\n\n showScrollLabel = false;\n\n sliderOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n dots: true,\n nav: false,\n navText: ['', ''],\n responsive: {\n 0: {\n items: 1,\n },\n 540: {\n items: 1,\n },\n 768: {\n items: 1,\n },\n 1024: {\n items: 1,\n },\n 1280: {\n items: 1,\n },\n 1366: {\n items: 1,\n },\n 1680: {\n items: 1,\n },\n },\n };\n\n get videoUrl(): string {\n return `{videoURL:\\'${this.video}\\', containment:'.youtube-bg',autoPlay:true, mute:true, startAt:1, opacity:1, showControls:false, loop:true, stopMovieOnBlur: false}`;\n }\n\n constructor(\n private readonly renderer: Renderer2,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n ngOnInit(): void {}\n\n getImage(image: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(\n `background-image: url(${image})`\n );\n }\n\n ngAfterViewInit(): void {\n if (!this.video && !this.gift) {\n const dots = document.getElementsByClassName('owl-dots')[0];\n this.renderer.appendChild(dots, this.nav.nativeElement);\n this.renderer.setStyle(\n this.nav.nativeElement,\n 'width',\n `${dots.clientWidth + 40}px`\n );\n }\n }\n\n prevClick(): void {\n this.carousel.prev();\n }\n\n nextClick(): void {\n this.carousel.next();\n }\n\n scrollClicked(): void {\n window.scrollTo({\n top:\n (this.module.nativeElement as HTMLElement).clientHeight +\n Number(\n window\n .getComputedStyle(this.module.nativeElement)\n .getPropertyValue('padding-bottom')\n .split('px')[0]\n ) -\n document.getElementsByTagName('tent-header')[0].clientHeight,\n behavior: 'smooth',\n });\n }\n\n toggleScrollLabel(): void {\n this.showScrollLabel = !this.showScrollLabel;\n }\n}\n\nexport interface TopModuleItem {\n mainBadge?: BadgeI;\n title?: string;\n badgePromo?: BadgeI;\n badgeDiscount?: BadgeI;\n btn?: ButtonI;\n img?: string;\n}\n","<section class=\"top-module module-spacer--bottom\" #module>\n @if (gift && slim) { @if (title) {\n <header class=\"top-module--header\">\n @if (title) {\n <h1 class=\"top-module--header--title color--brown\">\n {{ title }}\n </h1>\n } @if (subtitle) {\n <p class=\"top-module--header--subtitle color--camel\">\n {{ subtitle }}\n </p>\n }\n </header>\n } } @if( (!video && !gift) || (!gift && !desktop)) {\n <div class=\"top-module--nav flex-row flex-row--between\" #nav>\n <span\n class=\"icon-pointer-down color--white\"\n (click)=\"prevClick()\"\n ></span>\n <span\n class=\"icon-pointer-down color--white\"\n (click)=\"nextClick()\"\n ></span>\n </div>\n\n } @if (video && desktop) {\n <div class=\"youtube-bg\">\n <div\n id=\"bgndVideo\"\n class=\"player\"\n [attr.data-property]=\"videoUrl\"\n ></div>\n </div>\n } @else if(gift) {\n <ng-container\n *ngTemplateOutlet=\"content; context: { item: items[0] }\"\n ></ng-container>\n <img\n class=\"top-module--gift\"\n [ngClass]=\"{ 'top-module--gift--slim': slim }\"\n [src]=\"gift.src\"\n [alt]=\"gift.alt\"\n />\n @if (slim) {\n <div class=\"top-module--gift--header\">\n <h1 class=\"top-module--gift--title\">\n {{ title }}\n </h1>\n <p class=\"top-module--gift--subtitle\">\n {{ subtitle }}\n </p>\n @if (logo) {\n <img class=\"top-module--logo\" [src]=\"logo.src\" [alt]=\"logo.alt\" />\n }\n </div>\n\n } } @else if(items){\n <owl-carousel-o\n class=\"top-module--slider\"\n [options]=\"sliderOptions\"\n [ngClass]=\"{ 'no-loop': items.length < 2 }\"\n >\n @for (item of items; track $index) {\n <ng-template carouselSlide>\n <ng-container\n *ngTemplateOutlet=\"content; context: { item: item }\"\n ></ng-container>\n\n @if (item.img) {\n <figure\n class=\"top-module--image\"\n [lazyBackground]=\"item.img\"\n ></figure>\n }\n </ng-template>\n }\n </owl-carousel-o>\n\n }\n\n <div\n class=\"top-module--btn-scroll\"\n (mouseenter)=\"toggleScrollLabel()\"\n (mouseleave)=\"toggleScrollLabel()\"\n >\n @if (showScrollLabel && scrollLabel) {\n <p class=\"top-module--btn-scroll--label\">\n {{ scrollLabel }}\n </p>\n\n } @if(btnScroll.icon) {\n <tent-button\n type=\"light-circle\"\n [icon]=\"btnScroll.icon\"\n (click)=\"scrollClicked()\"\n name=\"tent-hotels\"\n ></tent-button>\n\n }\n </div>\n</section>\n\n<ng-template #content let-item=\"item\">\n @if (!slim) {\n <div class=\"top-module--content\">\n @if (item.mainBadge) {\n <div class=\"top-module--badge\">\n <tent-badge\n [rounded]=\"true\"\n [label]=\"item.mainBadge.label\"\n ></tent-badge>\n </div>\n } @if (item.title) {\n <h3 class=\"title--80 color--white\">{{ item.title }}</h3>\n } @if (item.badgePromo || item.badgeDiscount) {\n <div class=\"top-module--offers flex-row\">\n @if (item.badgePromo) {\n <tent-badge\n class=\"top-module--promo\"\n [rounded]=\"true\"\n [label]=\"item.badgePromo.label\"\n ></tent-badge>\n } @if (item.badgeDiscount) {\n <tent-badge\n class=\"top-module--discount\"\n [rounded]=\"true\"\n [label]=\"item.badgeDiscount.label\"\n ></tent-badge>\n }\n </div>\n } @if (item.btn) {\n <div class=\"top-module--btn-info\">\n <tent-button\n type=\"light-box\"\n [label]=\"item.btn.label\"\n [url]=\"item.btn.url\"\n [linkType]=\"item.btn.linkType!\"\n ></tent-button>\n </div>\n }\n </div>\n }\n</ng-template>\n","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';\nimport { LazyBackgroundDirective } from '../../../directives/lazy-background.directive';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n@Component({\n selector: 'tent-travelers',\n standalone: true,\n imports: [\n CommonModule,\n CarouselModule,\n LazyBackgroundDirective,\n ScrollingModule,\n ],\n templateUrl: './travelers.component.html',\n styleUrl: './travelers.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TravelersComponent {\n @Input() images?: string[];\n @Input() title?: string;\n @Input() titleDark?: string;\n @Input() links?: ButtonI[];\n\n get instagramLink(): string {\n return (\n this.links?.find((link) => link.icon === 'icon-instagram')?.url ??\n ''\n );\n }\n\n sliderOptions: OwlOptions = {\n loop: false,\n autoplay: false,\n autoWidth: true,\n autoplayTimeout: 5000,\n autoplaySpeed: 1500,\n navSpeed: 1500,\n responsiveRefreshRate: 100,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n center: false,\n dots: false,\n navText: [\n '<img width=\"12\" height=\"20\" src=\"/assets/tent/img/arrow-left.svg\" alt=\"left\" class=\" \" >',\n '<img width=\"12\" height=\"20\" src=\"/assets/tent/img/arrow-right.svg\" alt=\"left\" class=\" \" >',\n ],\n responsive: {\n 0: {\n items: 2,\n },\n 540: {\n items: 3,\n },\n 768: {\n items: 4,\n },\n 1024: {\n items: 5,\n },\n 1280: {\n items: 6,\n },\n 1366: {\n items: 7,\n },\n 1680: {\n items: 7,\n },\n },\n nav: true,\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n}\n","<section class=\"module-travelers wrapper-medium module-spacer-small--bottom\">\n @if (images?.length) {\n <div class=\"module-travelers--inner\">\n <owl-carousel-o\n class=\"module-travelers--slider slider-arrows--center\"\n [options]=\"sliderOptions\"\n >\n @for (img of images; track $index) {\n <ng-template carouselSlide>\n <div class=\"module-travelers--slide\">\n <a\n [href]=\"instagramLink\"\n aria-label=\"tent-hotels\"\n target=\"_blank\"\n class=\"module-travelers--img figure-zoom\"\n >\n <figure\n class=\"figure-full\"\n [lazyBackground]=\"img\"\n ></figure>\n </a>\n </div>\n </ng-template>\n }\n </owl-carousel-o>\n </div>\n }\n <div class=\"module-travelers--info mt--20\">\n <div class=\"flex-row flex-row--center\">\n @if (title) {\n <h2 class=\"module-travelers--title title--80 color--camel\">\n <!---->{{ title\n }}<!---->\n </h2>\n } @if (titleDark) {\n <span class=\"color--brown title--80\">{{ titleDark }}</span>\n }\n </div>\n @if (links?.length) {\n <ul class=\"module-travelers--socials\">\n @for (link of links; track $index) {\n <li>\n <a\n aria-label=\"tent-hotels\"\n [href]=\"link.url\"\n rel=\"external\"\n target=\"_blank\"\n class=\"module-travelers--social color--brown\"\n [ngClass]=\"link.icon\"\n ></a>\n </li>\n\n }\n </ul>\n }\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ButtonI } from '../../../interfaces/atomic/button.interface';\n\n@Component({\n selector: 'tent-webmap',\n standalone: true,\n imports: [],\n templateUrl: './webmap.component.html',\n styleUrl: './webmap.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WebmapComponent {\n @Input() title?: string;\n @Input() links?: ButtonI[];\n}\n","<section class=\"webmap bg-beige\">\n <div class=\"webmap--content\">\n <div class=\"webmap--inner\">\n @if (title) {\n <h3 class=\"webmap--title title--30 color--brown-70\">\n {{ title }}\n </h3>\n } @if (links && links.length) {\n <ul class=\"webmap--list\">\n @for (link of links; track $index) {\n <li class=\"webmap--item\">\n <a\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n class=\"text link-regular\"\n >{{ link.label }}</a\n >\n </li>\n }\n </ul>\n }\n </div>\n </div>\n</section>\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicScriptService {\n private loadedScripts = new Map<string, Promise<void>>();\n\n /**\n * Carga un script desde una URL con atributos extra. Solo se carga una vez por `name`.\n */\n loadScriptByUrl(\n name: string,\n src: string,\n attributes: Record<string, string> = {}\n ): Promise<void> {\n // Si ya se está cargando o se cargó, reutiliza la promesa\n if (this.loadedScripts.has(name)) {\n return this.loadedScripts.get(name)!;\n }\n\n const promise = new Promise<void>((resolve, reject) => {\n const script = document.createElement('script');\n script.src = src;\n script.async = true;\n\n for (const [key, value] of Object.entries(attributes)) {\n script.setAttribute(key, value);\n }\n\n script.onload = () => resolve();\n script.onerror = () => reject(`Error cargando el script \"${name}\"`);\n\n document.body.appendChild(script);\n });\n\n // Guarda la promesa (aunque esté pendiente)\n this.loadedScripts.set(name, promise);\n return promise;\n }\n\n /**\n * Ejecuta código JS en línea una sola vez.\n */\n executeInlineScript(name: string, code: string): void {\n if (this.loadedScripts.has(name)) return;\n\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.text = code;\n document.body.appendChild(script);\n\n this.loadedScripts.set(name, Promise.resolve());\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LangCodeService {\n private readonly langMap: Record<string, string> = {\n es: 'es-ES',\n en: 'en-GB',\n fr: 'fr-FR',\n de: 'de-DE',\n it: 'it-IT',\n pt: 'pt-PT',\n nl: 'nl-NL',\n sv: 'sv-SE',\n da: 'da-DK',\n fi: 'fi-FI',\n no: 'no-NO',\n ru: 'ru-RU',\n zh: 'zh-CN',\n ja: 'ja-JP',\n ko: 'ko-KR',\n ar: 'ar-SA',\n tr: 'tr-TR',\n pl: 'pl-PL',\n cs: 'cs-CZ',\n ro: 'ro-RO',\n hu: 'hu-HU',\n el: 'el-GR',\n th: 'th-TH',\n he: 'he-IL',\n hi: 'hi-IN',\n id: 'id-ID',\n ms: 'ms-MY',\n vi: 'vi-VN',\n uk: 'uk-UA',\n bg: 'bg-BG',\n sk: 'sk-SK',\n sl: 'sl-SI',\n hr: 'hr-HR',\n lt: 'lt-LT',\n lv: 'lv-LV',\n et: 'et-EE',\n };\n\n private readonly reverseMap: Record<string, string>;\n\n constructor(@Inject(DOCUMENT) private doc: Document) {\n this.reverseMap = Object.fromEntries(\n Object.entries(this.langMap).map(([short, full]) => [\n full.toLowerCase(),\n short,\n ])\n );\n }\n\n private normalize(loc: string): string {\n return loc?.replace('_', '-').toLowerCase();\n }\n\n toFull(loc: string, fallback: string = 'en-GB'): string {\n const norm = this.normalize(loc ?? '');\n if (!norm) return fallback;\n\n if (this.langMap[norm]) return this.langMap[norm];\n\n const shortFromFull = this.reverseMap[norm];\n if (shortFromFull) return this.langMap[shortFromFull];\n\n const guessShort = norm.split('-')[0];\n return this.langMap[guessShort] ?? norm ?? fallback;\n }\n\n toShort(loc: string, fallback: string = 'en'): string {\n const norm = this.normalize(loc ?? '');\n if (!norm) return fallback;\n\n if (this.langMap[norm]) return norm;\n\n const shortFromFull = this.reverseMap[norm];\n if (shortFromFull) return shortFromFull;\n\n const guessShort = norm.split('-')[0];\n return this.langMap[guessShort] ? guessShort : guessShort || fallback;\n }\n\n getHtmlLangCode(loc: string): string {\n return this.toFull(loc);\n }\n\n applyHtmlLang(loc: string): void {\n const full = this.toFull(loc);\n this.doc?.documentElement?.setAttribute('lang', full);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ScreenSizerParams } from './screen-sizer.interface';\n\nexport const SCREEN_SIZER_PARAMS_TOKEN = new InjectionToken<ScreenSizerParams>(\n 'ScreenSizerParams'\n);\n","import { Injectable, inject, signal } from '@angular/core';\nimport {\n debounceTime,\n distinctUntilChanged,\n fromEvent,\n map,\n startWith,\n} from 'rxjs';\nimport { SCREEN_SIZER_PARAMS_TOKEN } from './screen-sizer.service.token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizerService {\n readonly mobile = signal(false);\n readonly smallTablet = signal(false);\n readonly mediumTablet = signal(false);\n readonly fullTablet = signal(false);\n readonly smallDesktop = signal(false);\n readonly mediumDesktop = signal(false);\n readonly fullDesktop = signal(false);\n readonly fullBigDesktop = signal(false);\n readonly maxDesktop = signal(false);\n\n readonly minSmallTablet = signal(false);\n readonly minMediumTablet = signal(false);\n readonly minFullTablet = signal(false);\n readonly minSmallDesktop = signal(false);\n readonly minMediumDesktop = signal(false);\n readonly minFullDesktop = signal(false);\n readonly minFullBigDesktop = signal(false);\n\n get width(): number {\n if (window.innerWidth > window.outerWidth) {\n return window.outerWidth;\n }\n return window.innerWidth;\n }\n\n private readonly screenSizerParams = inject(SCREEN_SIZER_PARAMS_TOKEN)\n .pixelBreakpoints;\n\n constructor() {\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n map(() => this.width),\n distinctUntilChanged(),\n startWith(this.width)\n )\n .subscribe((size) => {\n if (size) {\n this.mobile.set(size < this.screenSizerParams.mobile);\n\n this.smallTablet.set(\n size < this.screenSizerParams.smallTablet\n );\n\n this.mediumTablet.set(\n size < this.screenSizerParams.mediumTablet\n );\n\n this.fullTablet.set(\n size < this.screenSizerParams.fullTablet\n );\n\n this.smallDesktop.set(\n size < this.screenSizerParams.smallDesktop\n );\n\n this.mediumDesktop.set(\n size < this.screenSizerParams.mediumDesktop\n );\n\n this.fullDesktop.set(\n size < this.screenSizerParams.fullDesktop\n );\n\n this.fullBigDesktop.set(\n size < this.screenSizerParams.fullBigDesktop\n );\n\n this.maxDesktop.set(\n size <= this.screenSizerParams.maxDesktop\n );\n\n this.minSmallTablet.set(\n size >= this.screenSizerParams.smallTablet\n );\n\n this.minMediumTablet.set(\n size >= this.screenSizerParams.mediumTablet\n );\n\n this.minFullTablet.set(\n size >= this.screenSizerParams.fullTablet\n );\n\n this.minSmallDesktop.set(\n size >= this.screenSizerParams.smallDesktop\n );\n\n this.minMediumDesktop.set(\n size >= this.screenSizerParams.mediumDesktop\n );\n\n this.minFullDesktop.set(\n size >= this.screenSizerParams.fullDesktop\n );\n\n this.minFullBigDesktop.set(\n size >= this.screenSizerParams.fullBigDesktop\n );\n }\n });\n }\n\n isMobileInstant(): boolean {\n return this.mobile();\n }\n\n isSmallTabletInstant(): boolean {\n return this.smallTablet();\n }\n\n isMediumTabletInstant(): boolean {\n return this.mediumTablet();\n }\n\n isFullTabletInstant(): boolean {\n return this.fullTablet();\n }\n\n isSmallDesktopInstant(): boolean {\n return this.smallDesktop();\n }\n\n isMediumDesktopInstant(): boolean {\n return this.mediumDesktop();\n }\n\n isFullDesktopInstant(): boolean {\n return this.fullDesktop();\n }\n\n isFullBigDesktopInstant(): boolean {\n return this.fullBigDesktop();\n }\n\n isMaxDesktopInstant(): boolean {\n return this.maxDesktop();\n }\n\n minSmallTabletInstant(): boolean {\n return this.minSmallTablet();\n }\n\n minMediumTabletInstant(): boolean {\n return this.minMediumTablet();\n }\n\n minFullTabletInstant(): boolean {\n return this.minFullTablet();\n }\n\n minSmallDesktopInstant(): boolean {\n return this.minSmallDesktop();\n }\n\n minMediumDesktopInstant(): boolean {\n return this.minMediumDesktop();\n }\n\n minFullDesktopInstant(): boolean {\n return this.minFullDesktop();\n }\n\n minFullBigDesktopInstant(): boolean {\n return this.minFullBigDesktop();\n }\n}\n","/*\n * Public API Surface of tent\n */\n\n/* ATOMIC COMPONENTS */\nexport * from './lib/components/atomic/badge/badge.component';\nexport * from './lib/components/atomic/breadcrump/breadcrump.component';\nexport * from './lib/components/atomic/button/button.component';\nexport * from './lib/components/atomic/datepicker/datepicker.component';\nexport * from './lib/components/atomic/dropdown/dropdown.component';\nexport * from './lib/components/atomic/input/input.component';\n\n/* CORE COMPONENTS */\nexport * from './lib/components/core/advantages/advantages.component';\nexport * from './lib/components/core/brunch-gallery/brunch-gallery.component';\nexport * from './lib/components/core/brunch/brunch.component';\nexport * from './lib/components/core/cards-2col/cards-2col.component';\nexport * from './lib/components/core/cards-3col/cards-3col.component';\nexport * from './lib/components/core/contact-form/contact-form.component';\nexport * from './lib/components/core/contact-office/contact-office.component';\nexport * from './lib/components/core/delivery-app/delivery-app.component';\nexport * from './lib/components/core/destination-hotels/destination-hotels.component';\nexport * from './lib/components/core/destination-info/destination-info.component';\nexport * from './lib/components/core/destination-list/destination-list.component';\nexport * from './lib/components/core/employment-benefits/employment-benefits.component';\nexport * from './lib/components/core/employment-form/employment-form.component';\nexport * from './lib/components/core/facilities-slider/facilities-slider.component';\nexport * from './lib/components/core/footer-a/footer-a.component';\nexport * from './lib/components/core/footer-b/footer-b.component';\nexport * from './lib/components/core/footer-static/footer-static.component';\nexport * from './lib/components/core/gallery-photos/gallery-photos.component';\nexport * from './lib/components/core/generic-head/generic-head.component';\nexport * from './lib/components/core/guests-popup/guests-popup.component';\nexport * from './lib/components/core/header-mobile/header-mobile.component';\nexport * from './lib/components/core/header/header.component';\nexport * from './lib/components/core/hotel-about/hotel-about.component';\nexport * from './lib/components/core/hotel-app/hotel-app.component';\nexport * from './lib/components/core/hotel-equipment/hotel-equipment.component';\nexport * from './lib/components/core/hotel-location/hotel-location.component';\nexport * from './lib/components/core/hotel-services/hotel-services.component';\nexport * from './lib/components/core/hotel-slider/hotel-slider.component';\nexport * from './lib/components/core/hotels-list/hotels-list.component';\nexport * from './lib/components/core/info-slider/info-slider.component';\nexport * from './lib/components/core/location-beach/location-beach.component';\nexport * from './lib/components/core/location-how/location-how.component';\nexport * from './lib/components/core/location-map/location-map.component';\nexport * from './lib/components/core/loyalty-form/loyalty-form.component';\nexport * from './lib/components/core/modals/books-modal/books-modal.component';\nexport * from './lib/components/core/modals/checkin-modal/checkin-modal.component';\nexport * from './lib/components/core/modals/gallery-category/gallery-category.component';\nexport * from './lib/components/core/modals/hotel-list-modal/hotel-list-modal.component';\nexport * from './lib/components/core/modals/languages-modal/languages-modal.component';\nexport * from './lib/components/core/modals/loyalty-modal/loyalty-modal.component';\nexport * from './lib/components/core/modals/menu-modal/menu-modal.component';\nexport * from './lib/components/core/modals/newsletter-modal/newsletter-modal.component';\nexport * from './lib/components/core/modals/room-zoom-modal/room-zoom-modal.component';\nexport * from './lib/components/core/module-404/module-404.component';\nexport * from './lib/components/core/module-brava/module-brava.component';\nexport * from './lib/components/core/module-google-maps/module-google-maps.component';\nexport * from './lib/components/core/module-search/module-search.component';\nexport * from './lib/components/core/motor/motor.component';\nexport * from './lib/components/core/offer-banner/offer-banner.component';\nexport * from './lib/components/core/offer-details/offer-details.component';\nexport * from './lib/components/core/offer-list/offer-list.component';\nexport * from './lib/components/core/offer-slider/offer-slider.component';\nexport * from './lib/components/core/offer/offer.component';\nexport * from './lib/components/core/registration/registration.component';\nexport * from './lib/components/core/room-slider/room-slider.component';\nexport * from './lib/components/core/services-details/services-details.component';\nexport * from './lib/components/core/submenu/submenu.component';\nexport * from './lib/components/core/tent-carrousel-img/index';\nexport * from './lib/components/core/tent-faq/index';\nexport * from './lib/components/core/tent-footer-logos/tent-footer-logos.component';\nexport * from './lib/components/core/tent-loyalty/tent-loyalty.component';\nexport * from './lib/components/core/tent-redirection/tent-redirection.component';\nexport * from './lib/components/core/thanks/thanks.component';\nexport * from './lib/components/core/top-module/top-module.component';\nexport * from './lib/components/core/travelers/travelers.component';\nexport * from './lib/components/core/webmap/webmap.component';\n\n/* ATOMIC INTERFACES */\nexport * from './lib/interfaces/atomic/badge.interface';\nexport * from './lib/interfaces/atomic/breadcrump.interface';\nexport * from './lib/interfaces/atomic/button.interface';\nexport * from './lib/interfaces/atomic/datepicker.interface';\nexport * from './lib/interfaces/atomic/dropdown.interface';\nexport * from './lib/interfaces/atomic/image.interface';\nexport * from './lib/interfaces/atomic/input.interface';\nexport * from './lib/interfaces/atomic/textarea.interface';\n\n/* CORE INTERFACES */\nexport * from './lib/interfaces/core/advantages.interface';\nexport * from './lib/interfaces/core/brunch-gallery.interface';\nexport * from './lib/interfaces/core/brunch.interface';\nexport * from './lib/interfaces/core/cards2col.interface';\nexport * from './lib/interfaces/core/cards3col.interface';\nexport * from './lib/interfaces/core/checkin-modal.interface';\nexport * from './lib/interfaces/core/contact-form.interface';\nexport * from './lib/interfaces/core/contact-office.interface';\nexport * from './lib/interfaces/core/delivery-app.interface';\nexport * from './lib/interfaces/core/destination-hotels.interface';\nexport * from './lib/interfaces/core/destination-info.interface';\nexport * from './lib/interfaces/core/destination-list.interface';\nexport * from './lib/interfaces/core/employment-benefits.interface';\nexport * from './lib/interfaces/core/employment-form.interface';\nexport * from './lib/interfaces/core/facilities-slider.interface';\nexport * from './lib/interfaces/core/footer-a.interface';\nexport * from './lib/interfaces/core/footer-b.interface';\nexport * from './lib/interfaces/core/footer-static.interface';\nexport * from './lib/interfaces/core/gallery-category.interface';\nexport * from './lib/interfaces/core/gallery-photos.interface';\nexport * from './lib/interfaces/core/generic-head.interface';\nexport * from './lib/interfaces/core/guests-popup.interface';\nexport * from './lib/interfaces/core/header-mobile.interface';\nexport * from './lib/interfaces/core/header.interface';\nexport * from './lib/interfaces/core/hotel-about.interface';\nexport * from './lib/interfaces/core/hotel-app.interface';\nexport * from './lib/interfaces/core/hotel-equipment.interface';\nexport * from './lib/interfaces/core/hotel-list-modal.interface';\nexport * from './lib/interfaces/core/hotel-location.interface';\nexport * from './lib/interfaces/core/hotel-services.interface';\nexport * from './lib/interfaces/core/hotel-slider.interface';\nexport * from './lib/interfaces/core/hotels-list.interface';\nexport * from './lib/interfaces/core/info-slider.interface';\nexport * from './lib/interfaces/core/languages-modal.interface';\nexport * from './lib/interfaces/core/location-beach.interface';\nexport * from './lib/interfaces/core/location-how.interface';\nexport * from './lib/interfaces/core/location-map.interface';\nexport * from './lib/interfaces/core/loyalty-form.interface';\nexport * from './lib/interfaces/core/loyalty-modal.interface';\nexport * from './lib/interfaces/core/menu-modal.interface';\nexport * from './lib/interfaces/core/module-404.interface';\nexport * from './lib/interfaces/core/module-brava.interface';\nexport * from './lib/interfaces/core/module-google-maps.interface';\nexport * from './lib/interfaces/core/module-search.interface';\nexport * from './lib/interfaces/core/motor.interface';\nexport * from './lib/interfaces/core/newsletter-modal.interface';\nexport * from './lib/interfaces/core/offer-banner.interface';\nexport * from './lib/interfaces/core/offer-details.interface';\nexport * from './lib/interfaces/core/offer-list.interface';\nexport * from './lib/interfaces/core/offer-slider.interface';\nexport * from './lib/interfaces/core/offer.interface';\nexport * from './lib/interfaces/core/room-slider.interface';\nexport * from './lib/interfaces/core/services-deatils.interface';\nexport * from './lib/interfaces/core/simple-card.interface';\nexport * from './lib/interfaces/core/submenu.interface';\nexport * from './lib/interfaces/core/tent-footer-logos.interface';\nexport * from './lib/interfaces/core/tent-loyalty.interface';\nexport * from './lib/interfaces/core/tent-redirection.inteface';\nexport * from './lib/interfaces/core/thanks.interface';\nexport * from './lib/interfaces/core/top-module.interface';\nexport * from './lib/interfaces/core/travelers.interface';\nexport * from './lib/interfaces/core/webmap.interface';\n\n/* SERVICES */\nexport * from './services';\n\n/* PIPES */\nexport * from './lib/pipes/currency.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4","i3","i1","i5","i1.LangCodeService"],"mappings":"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,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACb,aAAA;AACD,YAAA;AACI,gBAAA,I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"}