ctt-babylon 0.12.22 → 0.12.24

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.
Files changed (36) hide show
  1. package/esm2022/lib/components/core/babylon-ba-sli-img-txt/babylon-ba-sli-img-txt.component.mjs +89 -3
  2. package/esm2022/lib/components/core/babylon-breadcrumb-v2/babylon-breadcrumb-v2.component.mjs +5 -3
  3. package/esm2022/lib/components/core/babylon-fo-addr-cont-img/babylon-fo-addr-cont-img.component.mjs +27 -3
  4. package/esm2022/lib/components/core/babylon-fo-c3-img-txt/babylon-fo-c3-img-txt.component.mjs +16 -3
  5. package/esm2022/lib/components/core/babylon-fo-lis-c4-txt/babylon-fo-lis-c4-txt.component.mjs +3 -3
  6. package/esm2022/lib/components/core/babylon-he-svg-list/babylon-he-svg-list.component.mjs +27 -13
  7. package/esm2022/lib/components/core/babylon-language-modal-v3/babylon-language-modal-v3.component.mjs +4 -3
  8. package/esm2022/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.mjs +16 -3
  9. package/esm2022/lib/components/external/core/c2-txt-cta-des/c2-txt-cta-des.component.mjs +3 -3
  10. package/esm2022/lib/components/external/core/c2-txt-rrss/c2-txt-rrss.component.mjs +11 -3
  11. package/esm2022/lib/components/external/core/c4-txt-svg/c4-txt-svg.component.mjs +3 -3
  12. package/esm2022/lib/components/external/core/car-c2-txt-cta/car-c2-txt-cta.component.mjs +3 -3
  13. package/esm2022/lib/components/external/core/lis-c2-img-txt-cv4/lis-c2-img-txt-cv4.component.mjs +3 -3
  14. package/esm2022/lib/components/external/core/lis-c4-txt-des-cta/lis-c4-txt-des-cta.component.mjs +289 -67
  15. package/esm2022/lib/components/external/core/sli-c1-img-svg/sli-c1-img-svg.component.mjs +3 -3
  16. package/esm2022/lib/components/external/core/sli-c2-img-txt-cv5/sli-c2-img-txt-cv5.component.mjs +3 -3
  17. package/esm2022/lib/components/external/core/sli-c2-txt-car-img-c/sli-c2-txt-car-img-c.component.mjs +3 -3
  18. package/esm2022/lib/interfaces/babylon-button.interface.mjs +1 -1
  19. package/esm2022/lib/interfaces/babylon-hotel.interface.mjs +1 -1
  20. package/esm2022/lib/interfaces/babylon-text-info.interface.mjs +1 -1
  21. package/esm2022/lib/services/mapper/mapper.service.mjs +3 -1
  22. package/esm2022/lib/utils/utils.mjs +56 -3
  23. package/fesm2022/ctt-babylon.mjs +539 -108
  24. package/fesm2022/ctt-babylon.mjs.map +1 -1
  25. package/lib/components/core/babylon-ba-sli-img-txt/babylon-ba-sli-img-txt.component.d.ts +19 -0
  26. package/lib/components/core/babylon-fo-addr-cont-img/babylon-fo-addr-cont-img.component.d.ts +3 -0
  27. package/lib/components/core/babylon-fo-c3-img-txt/babylon-fo-c3-img-txt.component.d.ts +2 -1
  28. package/lib/components/core/babylon-he-svg-list/babylon-he-svg-list.component.d.ts +1 -3
  29. package/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.d.ts +2 -1
  30. package/lib/components/external/core/c2-txt-rrss/c2-txt-rrss.component.d.ts +1 -0
  31. package/lib/components/external/core/lis-c4-txt-des-cta/lis-c4-txt-des-cta.component.d.ts +25 -6
  32. package/lib/interfaces/babylon-button.interface.d.ts +1 -0
  33. package/lib/interfaces/babylon-hotel.interface.d.ts +1 -0
  34. package/lib/interfaces/babylon-text-info.interface.d.ts +1 -0
  35. package/lib/utils/utils.d.ts +8 -0
  36. package/package.json +1 -1
@@ -2,6 +2,14 @@ import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
2
2
  import { BabylonButtonI, BabylonItemI, BabylonMultimediaI, BabylonTextInfoI } from '../../../interfaces';
3
3
  import { BabylonAdvantageItemI } from '../../../interfaces/babylon-advantages-item.interface';
4
4
  import * as i0 from "@angular/core";
5
+ type ContactMeta = {
6
+ cssClass: 'phone' | 'whatsapp' | 'mail' | 'web' | 'unknown';
7
+ href?: string;
8
+ target?: '_blank';
9
+ rel?: string;
10
+ iconSrc?: string;
11
+ onClick?: (ev: MouseEvent) => void;
12
+ };
5
13
  export declare class BabylonBaSliImgTxtComponent implements AfterViewInit {
6
14
  private el;
7
15
  texts?: BabylonTextInfoI;
@@ -22,6 +30,17 @@ export declare class BabylonBaSliImgTxtComponent implements AfterViewInit {
22
30
  private updateScrollButtonsVisibility;
23
31
  onWindowScroll(): void;
24
32
  openNewletterModal(): void;
33
+ getContactMeta(item: {
34
+ url?: string;
35
+ linkType?: string;
36
+ icon?: string;
37
+ label?: string;
38
+ }): ContactMeta;
39
+ looksLikePhone(value: string): boolean;
40
+ getWhatsappLink(raw?: string): string;
41
+ private toWaMe;
42
+ onContactClick(ev: MouseEvent, item: any): void;
25
43
  static ɵfac: i0.ɵɵFactoryDeclaration<BabylonBaSliImgTxtComponent, never>;
26
44
  static ɵcmp: i0.ɵɵComponentDeclaration<BabylonBaSliImgTxtComponent, "lib-babylon-ba-sli-img-txt", never, { "texts": { "alias": "texts"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "links": { "alias": "links"; "required": false; }; "items": { "alias": "items"; "required": false; }; "multimedia": { "alias": "multimedia"; "required": false; }; "advantages": { "alias": "advantages"; "required": false; }; }, { "openNewsletter": "openNewsletter"; }, never, never, true, never>;
27
45
  }
46
+ export {};
@@ -7,6 +7,9 @@ export declare class BabylonFoAddrContImgComponent {
7
7
  buttons?: BabylonButtonI[];
8
8
  links?: BabylonButtonI[];
9
9
  address?: BabylonAddressItemI[];
10
+ buildContactHref(value?: string | null): string;
11
+ private isEmail;
12
+ private looksLikePhone;
10
13
  static ɵfac: i0.ɵɵFactoryDeclaration<BabylonFoAddrContImgComponent, never>;
11
14
  static ɵcmp: i0.ɵɵComponentDeclaration<BabylonFoAddrContImgComponent, "lib-babylon-fo-addr-cont-img", never, { "texts": { "alias": "texts"; "required": false; }; "multimedia": { "alias": "multimedia"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "links": { "alias": "links"; "required": false; }; "address": { "alias": "address"; "required": false; }; }, {}, never, never, true, never>;
12
15
  }
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, ElementRef } from '@angular/core';
2
- import { BabylonMultimediaI, BabylonTextInfoI } from '../../../interfaces';
2
+ import { BabylonButtonI, BabylonMultimediaI, BabylonTextInfoI } from '../../../interfaces';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class BabylonFoC3ImgTxtComponent implements AfterViewInit {
5
5
  private el;
@@ -15,6 +15,7 @@ export declare class BabylonFoC3ImgTxtComponent implements AfterViewInit {
15
15
  private setHasFooterClassIfNeeded;
16
16
  getImagesByTag(tagName: string): import("../../../interfaces").BabylonImageI[];
17
17
  getFirstImageByTag(tagName: string): import("../../../interfaces").BabylonImageI | undefined;
18
+ buildMenuUrl(item: BabylonButtonI | undefined): string;
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<BabylonFoC3ImgTxtComponent, never>;
19
20
  static ɵcmp: i0.ɵɵComponentDeclaration<BabylonFoC3ImgTxtComponent, "lib-babylon-fo-c3-img-txt", never, { "texts": { "alias": "texts"; "required": false; }; "multimedia": { "alias": "multimedia"; "required": false; }; }, {}, never, never, true, never>;
20
21
  }
@@ -28,12 +28,9 @@ export declare class BabylonHeSvgListComponent implements AfterViewInit, OnDestr
28
28
  private navSub?;
29
29
  constructor(el: ElementRef<HTMLElement>, dialog: MatDialog);
30
30
  ngAfterViewInit(): void;
31
- /** Equivalente a showMenuBurger() de jQuery */
32
31
  showMenuBurger(): void;
33
32
  closeMenuBurger(reload?: boolean): void;
34
- /** Listener global de scroll */
35
33
  onWindowScroll(): void;
36
- /** Sticky del header según el “motor” esté fuera de viewport */
37
34
  private updateHeaderSticky;
38
35
  /** Añade .v-no-hotel al breadcrumb si el header NO es hotel-card */
39
36
  private initBreadcrumbFlag;
@@ -42,6 +39,7 @@ export declare class BabylonHeSvgListComponent implements AfterViewInit, OnDestr
42
39
  ngOnDestroy(): void;
43
40
  openEngineModal(): void;
44
41
  buildMenuUrl(item: BabylonButtonI): string;
42
+ private canonicalSlug;
45
43
  static ɵfac: i0.ɵɵFactoryDeclaration<BabylonHeSvgListComponent, never>;
46
44
  static ɵcmp: i0.ɵɵComponentDeclaration<BabylonHeSvgListComponent, "lib-babylon-he-svg-list", never, { "dinamyHeader": { "alias": "dinamyHeader"; "required": false; }; "hotelPage": { "alias": "hotelPage"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "logos": { "alias": "logos"; "required": false; }; "floatingButtons": { "alias": "floatingButtons"; "required": false; }; "links": { "alias": "links"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "hotel": { "alias": "hotel"; "required": false; }; "items": { "alias": "items"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "styles": { "alias": "styles"; "required": false; }; "widgetConfig": { "alias": "widgetConfig"; "required": false; }; }, { "openLanguages": "openLanguages"; "openOfferPop": "openOfferPop"; }, never, never, true, never>;
47
45
  }
@@ -1,9 +1,10 @@
1
- import { BabylonTextInfoI } from '../../../interfaces';
1
+ import { BabylonButtonI, BabylonTextInfoI } from '../../../interfaces';
2
2
  import { BabylonItemI } from '../../../interfaces/babylon-item.interface';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class BabylonListC3ImgTxtComponent {
5
5
  texts?: BabylonTextInfoI;
6
6
  items?: BabylonItemI[];
7
+ buildMenuUrl(item: BabylonButtonI | undefined): string;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<BabylonListC3ImgTxtComponent, never>;
8
9
  static ɵcmp: i0.ɵɵComponentDeclaration<BabylonListC3ImgTxtComponent, "lib-babylon-list-c3-img-txt", never, { "texts": { "alias": "texts"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
9
10
  }
@@ -16,6 +16,7 @@ export declare class C2TxtRrssComponent {
16
16
  texts?: BabylonTextInfoI;
17
17
  socials?: BabylonButtonI[];
18
18
  trackByIcon(index: number, item: C2TxtRrssIcon): string;
19
+ normalizeText(value?: string | null): string;
19
20
  static ɵfac: i0.ɵɵFactoryDeclaration<C2TxtRrssComponent, never>;
20
21
  static ɵcmp: i0.ɵɵComponentDeclaration<C2TxtRrssComponent, "c2-txt-rrss", never, { "texts": { "alias": "texts"; "required": false; }; "socials": { "alias": "socials"; "required": false; }; }, {}, never, never, true, never>;
21
22
  }
@@ -1,34 +1,53 @@
1
1
  import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
- import { BabylonImageI, BabylonTextInfoI } from '../../../../interfaces';
2
+ import { BabylonButtonI, BabylonImageI, BabylonTextInfoI } from '../../../../interfaces';
3
3
  import { BabylonHotelGlobalItem } from '../../../../interfaces/babylon-hotel.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class LisC4TxtDesCtaComponent implements OnInit, OnChanges, OnDestroy {
6
6
  texts?: BabylonTextInfoI;
7
7
  filters?: any;
8
8
  items?: BabylonHotelGlobalItem[];
9
+ links?: BabylonButtonI[];
10
+ additional1LikeMarca?: boolean;
9
11
  tagName: string;
10
12
  selectedHotelType: string;
11
13
  selectedDestination: string;
14
+ selectedBrand: string;
12
15
  hotelTypeOptions: string[];
13
16
  destinationOptions: string[];
17
+ brandOptions: string[];
18
+ private pendingFilterSlug;
19
+ private pendingDestinationSlug;
20
+ private pendingBrandSlug;
21
+ private filterSlugToLabel;
22
+ private destinationSlugToLabel;
23
+ private brandSlugToLabel;
24
+ private filterLabelToSlug;
25
+ private destinationLabelToSlug;
26
+ private brandLabelToSlug;
14
27
  private readonly route;
28
+ private readonly router;
15
29
  private qpSub?;
30
+ private readonly cdr;
31
+ private isSyncingFromUrl;
16
32
  ngOnInit(): void;
17
33
  ngOnChanges(changes: SimpleChanges): void;
18
34
  ngOnDestroy(): void;
19
35
  private buildFilterOptions;
36
+ private getItemBrand;
20
37
  get filteredItems(): BabylonHotelGlobalItem[];
21
38
  get hasActiveFilters(): boolean;
22
39
  onHotelTypeChange(value: string | undefined): void;
23
40
  onDestinationChange(value: string): void;
41
+ onBrandChange(value: string): void;
24
42
  clearFilters(): void;
43
+ private syncQueryParams;
44
+ private canonicalSlug;
25
45
  getKeysArray(count: number | undefined): number[];
26
46
  trackByIndex(index: number): number;
27
47
  getFirstImageByTag(tagName: string, imagenes: BabylonImageI[]): BabylonImageI | undefined;
28
- private norm;
29
- private singularize;
30
- /** Devuelve la opción más parecida dentro de options, o '' */
31
- private matchSimilar;
48
+ getNumber(text: string): number[];
49
+ private resolvePendingFromMaps;
50
+ private forceOptionMatch;
32
51
  static ɵfac: i0.ɵɵFactoryDeclaration<LisC4TxtDesCtaComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<LisC4TxtDesCtaComponent, "lis-c4-txt-des-cta", never, { "texts": { "alias": "texts"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<LisC4TxtDesCtaComponent, "lis-c4-txt-des-cta", never, { "texts": { "alias": "texts"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "items": { "alias": "items"; "required": false; }; "links": { "alias": "links"; "required": false; }; "additional1LikeMarca": { "alias": "additional1LikeMarca"; "required": false; }; }, {}, never, never, true, never>;
34
53
  }
@@ -9,4 +9,5 @@ export interface BabylonButtonI {
9
9
  name?: string;
10
10
  styles?: BabylonHotelStylesItem;
11
11
  order?: string;
12
+ vars?: string;
12
13
  }
@@ -59,4 +59,5 @@ export interface BabylonHotelGlobalItem {
59
59
  onlyAdults?: boolean;
60
60
  hotelcategory?: string;
61
61
  hoteltype?: string;
62
+ marca?: string;
62
63
  }
@@ -64,4 +64,5 @@ export interface BabylonTextInfoI {
64
64
  contactEmail?: string;
65
65
  contactOffice?: string;
66
66
  contactTel?: string;
67
+ marca?: string;
67
68
  }
@@ -12,4 +12,12 @@ export declare class Utils {
12
12
  static loadStyle$(href: string): Observable<boolean>;
13
13
  static safeOpenExternal(url: string): void;
14
14
  static extractNumberRange(value?: string | null, fallback?: number[]): number[];
15
+ static sortButtonsByOrder<T extends {
16
+ order?: any;
17
+ }>(buttons?: Array<T | undefined | null> | null, opts?: {
18
+ keepOriginal?: boolean;
19
+ }): T[];
20
+ static toSlug(input: string): string;
21
+ static uniqueSlug(label: string, used: Set<string>): string;
22
+ static canonicalHotelTypeSlug(label: string): string;
15
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctt-babylon",
3
- "version": "0.12.22",
3
+ "version": "0.12.24",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.8",
6
6
  "@angular/core": "^17.3.8",