@rededor/site-front-end-lib 1.3.21 → 1.3.22

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":"rededor-site-front-end-lib.mjs","sources":["../../../projects/site-front-end-lib/src/lib/components/footer/helpers/footerTheme.func.ts","../../../projects/site-front-end-lib/src/lib/directives/rdsite-click-outside/rdsite-click-outside.directive.ts","../../../projects/site-front-end-lib/src/lib/tokens/LibConfig.ts","../../../projects/site-front-end-lib/src/lib/enums/RdsiteModalComponentStyle.enum.ts","../../../projects/site-front-end-lib/src/lib/helpers/formatPhone.func.ts","../../../projects/site-front-end-lib/src/lib/services/modal/modal.service.ts","../../../projects/site-front-end-lib/src/lib/services/phone/phone.service.ts","../../../projects/site-front-end-lib/src/lib/directives/rdsite-phone-modal/rdsite-phone-modal.directive.ts","../../../projects/site-front-end-lib/src/lib/directives/rdsite-link/rdsite-link.directive.ts","../../../projects/site-front-end-lib/src/lib/services/algolia/algolia.service.ts","../../../projects/site-front-end-lib/src/lib/enums/IconCuraDefaultType.enum.ts","../../../projects/site-front-end-lib/src/lib/tokens/CuraApi.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateObjectsFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateValuesFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/getSiteUrl.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeHtmlTags.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/toQueryParams.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/check-safari-agent.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/getCircularReplacer.func.ts","../../../projects/site-front-end-lib/src/lib/services/log/log.service.ts","../../../projects/site-front-end-lib/src/lib/services/cura/cura.service.ts","../../../projects/site-front-end-lib/src/lib/services/http-client/http-client.service.ts","../../../projects/site-front-end-lib/src/lib/services/modal-drawer/modal-drawer.service.ts","../../../projects/site-front-end-lib/src/lib/services/ngu-carousel/ngu-carousel.service.ts","../../../projects/site-front-end-lib/src/lib/services/privacy-tools/privacy-tools.service.ts","../../../projects/site-front-end-lib/src/lib/services/site-back-end/site-back-end.service.ts","../../../projects/site-front-end-lib/src/lib/services/seo/seo.service.ts","../../../projects/site-front-end-lib/src/lib/tokens/express.tokens.ts","../../../projects/site-front-end-lib/src/lib/services/server-response/server-response.service.ts","../../../projects/site-front-end-lib/src/lib/services/ssr-loading/ssr-loading.service.ts","../../../projects/site-front-end-lib/src/lib/services/transfer-state/transfer-state.service.ts","../../../projects/site-front-end-lib/src/lib/components/header/services/header.service.ts","../../../projects/site-front-end-lib/src/lib/services/algolia-search-api/algolia-search-api.service.ts","../../../projects/site-front-end-lib/src/lib/services/youtube/youtube.service.ts","../../../projects/site-front-end-lib/src/lib/services/mapbox/mapbox.service.ts","../../../projects/site-front-end-lib/src/lib/services/geoloc/geoloc.service.ts","../../../projects/site-front-end-lib/src/lib/components/footer/footer.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/footer.component.html","../../../projects/site-front-end-lib/src/lib/components/header/helpers/headerTheme.func.ts","../../../projects/site-front-end-lib/src/lib/components/overlay/overlay.component.ts","../../../projects/site-front-end-lib/src/lib/components/overlay/overlay.component.html","../../../projects/site-front-end-lib/src/lib/components/search/search.component.ts","../../../projects/site-front-end-lib/src/lib/components/search/search.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-logo/header-logo.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-logo/header-logo.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-action-menu/header-action-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-action-menu/header-action-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/header.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/header.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu/header-aux-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu/header-aux-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-container/header-aux-menu-container.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-container/header-aux-menu-container.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item/header-aux-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item/header-aux-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu/header-main-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu/header-main-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item/header-main-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item/header-main-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu/header-side-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu/header-side-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu-item/header-side-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu-item/header-side-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/load-screen/load-screen.component.ts","../../../projects/site-front-end-lib/src/lib/components/load-screen/load-screen.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/side-ctas.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/side-ctas.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-bottom/side-ctas-bottom.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-bottom/side-ctas-bottom.component.html","../../../projects/site-front-end-lib/src/lib/components/whatsapp/whatsapp.component.ts","../../../projects/site-front-end-lib/src/lib/components/whatsapp/whatsapp.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-top/side-ctas-right-top.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-top/side-ctas-right-top.component.html","../../../projects/site-front-end-lib/src/lib/components/algolia-dropdown/algolia-dropdown.component.ts","../../../projects/site-front-end-lib/src/lib/components/algolia-dropdown/algolia-dropdown.component.html","../../../projects/site-front-end-lib/src/lib/helpers/mediaQueries.ts","../../../projects/site-front-end-lib/src/lib/components/cta-wrapper/cta-wrapper.component.ts","../../../projects/site-front-end-lib/src/lib/components/cta-wrapper/cta-wrapper.component.html","../../../projects/site-front-end-lib/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/site-front-end-lib/src/lib/components/breadcrumbs/breadcrumbs.component.html","../../../projects/site-front-end-lib/src/lib/enums/Estados.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumDoencaTaxonomy.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/ImageMimeType.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/RdsiteModalDrawerComponentStyle.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumThemes.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumError.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/UnidadeCoverageType.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/Filter.enum.ts","../../../projects/site-front-end-lib/src/lib/components/error/error-service/error.service.ts","../../../projects/site-front-end-lib/src/lib/components/error/error.component.ts","../../../projects/site-front-end-lib/src/lib/components/error/error.component.html","../../../projects/site-front-end-lib/src/lib/components/page-header/page-header.component.ts","../../../projects/site-front-end-lib/src/lib/components/page-header/page-header.component.html","../../../projects/site-front-end-lib/src/lib/components/page-template-sidebar/page-template-sidebar.component.ts","../../../projects/site-front-end-lib/src/lib/components/page-template-sidebar/page-template-sidebar.component.html","../../../projects/site-front-end-lib/src/lib/components/filters/filter-generic/filter-generic.component.ts","../../../projects/site-front-end-lib/src/lib/components/filters/filter-generic/filter-generic.component.html","../../../projects/site-front-end-lib/src/lib/components/filters/filter-planos-convenios/filter-planos-convenios.component.ts","../../../projects/site-front-end-lib/src/lib/components/filters/filter-planos-convenios/filter-planos-convenios.component.html","../../../projects/site-front-end-lib/src/lib/components/filter-letter-and-terms/filter-letter-and-terms.component.ts","../../../projects/site-front-end-lib/src/lib/components/filter-letter-and-terms/filter-letter-and-terms.component.html","../../../projects/site-front-end-lib/src/lib/components/section-navigation/section-navigation.component.ts","../../../projects/site-front-end-lib/src/lib/components/section-navigation/section-navigation.component.html","../../../projects/site-front-end-lib/src/lib/components/image/image.component.ts","../../../projects/site-front-end-lib/src/lib/components/image/image.component.html","../../../projects/site-front-end-lib/src/lib/components/cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component.ts","../../../projects/site-front-end-lib/src/lib/components/cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component.html","../../../projects/site-front-end-lib/src/lib/components/cards/expandable-card/expandable-card.component.ts","../../../projects/site-front-end-lib/src/lib/components/cards/expandable-card/expandable-card.component.html","../../../projects/site-front-end-lib/src/lib/components/banner/content-banner/content-banner.component.ts","../../../projects/site-front-end-lib/src/lib/components/banner/content-banner/content-banner.component.html","../../../projects/site-front-end-lib/src/lib/components/pagination/pagination.component.ts","../../../projects/site-front-end-lib/src/lib/components/pagination/pagination.component.html","../../../projects/site-front-end-lib/src/lib/components/cards/testimonial-card/testimonial-card.component.ts","../../../projects/site-front-end-lib/src/lib/components/cards/testimonial-card/testimonial-card.component.html","../../../projects/site-front-end-lib/src/lib/components/carousels/testimonials-carousel/testimonials-carousel.component.ts","../../../projects/site-front-end-lib/src/lib/components/carousels/testimonials-carousel/testimonials-carousel.component.html","../../../projects/site-front-end-lib/src/lib/components/index.ts","../../../projects/site-front-end-lib/src/lib/pipes/phone/phone.pipe.ts","../../../projects/site-front-end-lib/src/lib/interceptors/error.interceptor.ts","../../../projects/site-front-end-lib/src/lib/interceptors/log.interceptor.ts","../../../projects/site-front-end-lib/src/public-api.ts","../../../projects/site-front-end-lib/src/rededor-site-front-end-lib.ts"],"sourcesContent":["import { CuraService } from '../../../services';\r\nimport { FooterTheme } from '../models/FooterTheme.model';\r\n\r\nexport const getFooterTheme = (project: string = 'site', themeStyle: string = 'default', curaService: CuraService) => {\r\n const theme: FooterTheme = {\r\n ftr: {},\r\n 'ftr-disc': {},\r\n 'ftr-menu': {},\r\n 'ftr-social': {},\r\n };\r\n\r\n const [primaryLighter, primaryLight, primaryBase, primaryDarker] = [\r\n curaService.getColor('primary-lighter'),\r\n curaService.getColor('primary-light'),\r\n curaService.getColor('primary-base'),\r\n curaService.getColor('primary-darker'),\r\n ];\r\n const [accentLight, accentBase] = [curaService.getColor('accent-light'), curaService.getColor('accent-base')];\r\n const [neutralPurewhite, neutralWhite, neutralBlack] = [\r\n curaService.getColor('neutral-purewhite'),\r\n curaService.getColor('neutral-white'),\r\n curaService.getColor('neutral-black'),\r\n ];\r\n\r\n switch (project) {\r\n case 'site':\r\n if (themeStyle === 'default') {\r\n theme.ftr = {\r\n 'bg-color': primaryDarker,\r\n color: neutralWhite,\r\n 'alt-color': primaryLighter,\r\n };\r\n theme['ftr-disc'] = {\r\n 'bg-color': neutralPurewhite,\r\n color: neutralBlack,\r\n 'alt-color': primaryBase,\r\n };\r\n theme['ftr-menu'] = {\r\n 'hover-color': accentLight,\r\n 'active-color': accentBase,\r\n 'alt-hover-color': primaryLight,\r\n 'alt-active-color': primaryBase,\r\n };\r\n theme['ftr-social'] = {\r\n color: neutralWhite,\r\n };\r\n } else {\r\n theme.ftr = {\r\n 'bg-color': primaryDarker,\r\n color: neutralWhite,\r\n 'alt-color': primaryLighter,\r\n };\r\n theme['ftr-disc'] = {\r\n 'bg-color': neutralPurewhite,\r\n color: neutralBlack,\r\n 'alt-color': primaryBase,\r\n };\r\n theme['ftr-menu'] = {\r\n 'hover-color': accentLight,\r\n 'active-color': accentBase,\r\n 'alt-hover-color': primaryLight,\r\n 'alt-active-color': primaryBase,\r\n };\r\n theme['ftr-social'] = {\r\n color: neutralWhite,\r\n };\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return theme;\r\n};\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsiteclickoutside]',\r\n standalone: true,\r\n})\r\nexport class RdsiteClickOutsideDirective {\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n @Output() rdsiteclickoutside = new EventEmitter<void>();\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: Event): void {\r\n if (!this.elementRef.nativeElement.contains(event.target)) {\r\n this.rdsiteclickoutside.emit();\r\n }\r\n }\r\n}\r\n","import { ElementRef, InjectionToken } from '@angular/core';\r\n\r\nexport interface LibConfig {\r\n production: boolean;\r\n environmentName: string;\r\n siteProject: string;\r\n server: boolean;\r\n siteName: string;\r\n siteUrl: string;\r\n siteSufix?: string;\r\n client_id: string;\r\n xOriginApplication: string;\r\n searchApiEnv: string;\r\n fallbackImgSrc: string;\r\n\r\n // Cura iconset\r\n iconsetDefaultList: string[];\r\n\r\n // site-back-end (SNF)\r\n siteApi: {\r\n auth: {\r\n user: string;\r\n password: string;\r\n };\r\n base: string;\r\n baseInternal: string;\r\n recaptcha: string;\r\n centroEstudos: string;\r\n };\r\n\r\n // Algolia Search\r\n algoliaConfig: {\r\n id: string;\r\n key: string;\r\n };\r\n\r\n // Wordpress\r\n wpUrl: string;\r\n\r\n // SEO\r\n keywords: string;\r\n logoPath?: string;\r\n\r\n // Mapbox\r\n mapboxAccessToken: string;\r\n mapboxSSRAccessToken: string;\r\n\r\n // rdsitelink custom anchor adjustment\r\n customAnchorAdjustment?: (document: Document) => number;\r\n customPhoneModalCondition?: (element: ElementRef<any>) => boolean;\r\n customInternalLinkNavigation?: (noBaseHref: string) => boolean;\r\n}\r\n\r\n// Configura a lib com informações especificas de cada projeto.\r\nexport const LIB_CONFIG = new InjectionToken<LibConfig>('libConfig');\r\n","export enum RdsiteModalComponentStyle {\r\n DEFAULT = 'default',\r\n ALERT = 'alert',\r\n LIGHT = 'light',\r\n DOCTORCARD = 'doctor-card',\r\n HOMESLIDE = 'home-slide',\r\n BASIC = 'basic',\r\n SHARING = 'sharing',\r\n FORMFALLBACK = 'form-fallback',\r\n FILTER = 'filter',\r\n FILTERDOENCAS = 'filter-doencas',\r\n}\r\n","export const formatPhone = (phone: string): string => {\r\n if (!phone) return '';\r\n\r\n const cleanPhone = phone.replace(/[^0-9]/gi, '');\r\n let formatedPhone = '';\r\n if (cleanPhone.length === 12) {\r\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 11) {\r\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 10) {\r\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 9) {\r\n formatedPhone = cleanPhone.replace(/(\\d{5})?(\\d{4})/, '$1-$2');\r\n } else if (cleanPhone.length === 8) {\r\n formatedPhone = cleanPhone.replace(/(\\d{4})?(\\d{4})/, '$1-$2');\r\n } else if (cleanPhone.length === 7) {\r\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{4})/, '$1-$2');\r\n } else {\r\n formatedPhone = cleanPhone;\r\n }\r\n return formatedPhone;\r\n};\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\r\n\r\nexport abstract class AbstractModalComponent {\r\n abstract id: string;\r\n abstract modalTitle: string | null;\r\n abstract modalHeader: TemplateRef<any> | null;\r\n abstract modalContent: TemplateRef<any> | null;\r\n abstract modalContentContext: Record<string, any> | null;\r\n abstract modalActions: TemplateRef<any> | null;\r\n abstract componentStyle: any;\r\n abstract modal: HTMLDialogElement;\r\n abstract open(): void;\r\n abstract close(): void;\r\n abstract reset(): void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModalService {\r\n reference: AbstractModalComponent | null = null;\r\n defaultPhoneModal!: TemplateRef<any>;\r\n\r\n open() {\r\n this.reference?.open();\r\n }\r\n\r\n setReference(element: AbstractModalComponent) {\r\n this.reference = element;\r\n }\r\n\r\n setHeader(header: TemplateRef<any>) {\r\n if (!this.reference) return;\r\n this.reference.modalHeader = header;\r\n }\r\n\r\n setTitle(title: string) {\r\n if (!this.reference) return;\r\n this.reference.modalTitle = title;\r\n }\r\n\r\n setContent(content: TemplateRef<any>, context: Record<string, any> = {}) {\r\n if (!this.reference) return;\r\n this.reference.modalContent = content;\r\n this.reference.modalContentContext = context;\r\n }\r\n\r\n setActions(actions: TemplateRef<any>) {\r\n if (!this.reference) return;\r\n this.reference.modalActions = actions;\r\n }\r\n\r\n setStyle(style: RdsiteModalComponentStyle) {\r\n if (!this.reference) return;\r\n this.reference.componentStyle = style;\r\n }\r\n\r\n setDefaultPhoneModal(modal: TemplateRef<any>) {\r\n this.defaultPhoneModal = modal;\r\n }\r\n\r\n close() {\r\n this.reference?.close();\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PhoneService {\r\n private telRegex = /tel:/;\r\n\r\n public phoneModalIsAllowed: boolean = true; // variavel utilizada para permitir/bloquear o modal de telefone\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document) {}\r\n\r\n /** Verifica se o 'href' é de telefone e se a janela está em tamanho desktop */\r\n public isPhoneModal(href: string) {\r\n const width = this.document.defaultView?.innerWidth ?? 0;\r\n const SMALL_BREAKPOINT = 718;\r\n return this.telRegex.test(href) && width > SMALL_BREAKPOINT;\r\n }\r\n}\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID, TemplateRef } from '@angular/core';\r\nimport { PhoneService } from '../../services/phone/phone.service';\r\nimport { ModalService } from '../../services/modal/modal.service';\r\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\r\nimport { formatPhone } from '../../helpers/formatPhone.func';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsitephonemodal]',\r\n standalone: true,\r\n})\r\nexport class RdsitePhoneModalDirective {\r\n @Input() rdsitephonemodal: TemplateRef<HTMLElement> | null = null;\r\n\r\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\r\n\r\n constructor(\r\n private modalService: ModalService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n private element: ElementRef<Element>,\r\n private phoneService: PhoneService,\r\n ) {}\r\n\r\n // Intercepta cliques em telefones e aplica comportamentos diferentes em tamanho desktop.\r\n @HostListener('click', ['$event'])\r\n public onClick(event: Event) {\r\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName) || !this.phoneService.phoneModalIsAllowed)\r\n return;\r\n\r\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\r\n if (this.phoneService.isPhoneModal(href)) {\r\n this.openPhoneModal(event, href);\r\n }\r\n }\r\n\r\n public openPhoneModal(event: Event, href: string) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.modalService.setContent(this.rdsitephonemodal || this.modalService.defaultPhoneModal, { phone: formatPhone(href) });\r\n this.modalService.setStyle(RdsiteModalComponentStyle.DEFAULT);\r\n this.modalService.open();\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { PhoneService } from '../../services/phone/phone.service';\r\nimport { RdsitePhoneModalDirective } from '../rdsite-phone-modal/rdsite-phone-modal.directive';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsitelink]',\r\n providers: [RdsitePhoneModalDirective],\r\n standalone: true,\r\n})\r\nexport class RdsiteLinkDirective {\r\n private externalRegex = /^http:|https:|tel:|www\\.|mailto:/;\r\n private telRegex = /tel:/;\r\n private mailRegex = /mailto:/;\r\n private siteUrlList = ['rededorsaoluiz', 'rededorlabs'];\r\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\r\n\r\n @Input() anchorAdjustment: number | null = null;\r\n @Input() anchorExtraAdjustment: number | null = null;\r\n\r\n @Input() phonemodal: TemplateRef<HTMLElement> | null = null;\r\n\r\n constructor(\r\n private router: Router,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n private element: ElementRef<any>,\r\n private phoneService: PhoneService,\r\n private rdsitePhoneModalDirective: RdsitePhoneModalDirective,\r\n private deviceDetectorService: DeviceDetectorService,\r\n ) {}\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event: Event) {\r\n event.preventDefault();\r\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName)) return;\r\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\r\n if (!href) return;\r\n\r\n if (this.isPhone(href)) {\r\n this.phoneClicked({\r\n href,\r\n event,\r\n element: this.element,\r\n phonemodal: this.phonemodal,\r\n });\r\n return;\r\n }\r\n\r\n const isMobile = this.deviceDetectorService.isMobile();\r\n const deviceInfo = this.deviceDetectorService.getDeviceInfo();\r\n\r\n if (this.isMail(href)) {\r\n const target = isMobile || deviceInfo.browser !== 'Chrome' ? '_self' : '_blank';\r\n window.open(href, target);\r\n return;\r\n }\r\n\r\n if (this.isExternalUrl(href)) {\r\n const target = this.isSiteUrl(href) ? '_self' : '_blank';\r\n window.open(href, target);\r\n return;\r\n }\r\n\r\n if (this.isAnchor(href)) {\r\n this.scrollToAnchor(href);\r\n return;\r\n }\r\n\r\n this.navigateTo(href);\r\n }\r\n\r\n private isPhone(href: string) {\r\n return this.telRegex.test(href);\r\n }\r\n\r\n private isMail(href: string) {\r\n return this.mailRegex.test(href);\r\n }\r\n\r\n private phoneClicked(value: { href: string; event: Event; element: ElementRef<any>; phonemodal: TemplateRef<HTMLElement> | null }) {\r\n const { href, event, element, phonemodal } = value;\r\n if (this.phoneService.isPhoneModal(href)) {\r\n this.setPhoneModal(element, phonemodal);\r\n this.rdsitePhoneModalDirective.openPhoneModal(event, href);\r\n } else {\r\n window.open(href, '_self');\r\n }\r\n }\r\n\r\n private setPhoneModal(element: ElementRef<any>, phonemodal: TemplateRef<HTMLElement> | null) {\r\n if (!this.phonemodal) return;\r\n if (!this.libConfig?.customPhoneModalCondition) {\r\n this.rdsitePhoneModalDirective.rdsitephonemodal = phonemodal;\r\n return;\r\n }\r\n if (this.libConfig?.customPhoneModalCondition(element)) {\r\n this.rdsitePhoneModalDirective.rdsitephonemodal = phonemodal;\r\n }\r\n }\r\n\r\n private isExternalUrl(href: string) {\r\n return this.externalRegex.test(href);\r\n }\r\n\r\n private isSiteUrl(href: string) {\r\n const exception = '/paciente';\r\n return this.siteUrlList.find((url) => href.includes(url) && !href.includes(exception));\r\n }\r\n\r\n private isAnchor(href: string) {\r\n return href.startsWith('#');\r\n }\r\n\r\n private scrollToAnchor(href: string) {\r\n if (href === '#') return;\r\n if (isPlatformBrowser(this.platformId)) {\r\n const docElement = this.document.documentElement;\r\n let adjustment = 0;\r\n\r\n if (this.libConfig.customAnchorAdjustment) {\r\n adjustment = this.libConfig.customAnchorAdjustment(this.document);\r\n }\r\n\r\n if (this.anchorAdjustment) {\r\n adjustment = this.anchorAdjustment;\r\n }\r\n\r\n if (this.anchorExtraAdjustment) {\r\n adjustment += this.anchorExtraAdjustment;\r\n }\r\n\r\n const bodyTop = this.document?.body?.getBoundingClientRect()?.top ?? 0;\r\n const hrefTop = this.document?.querySelector<HTMLElement>(href)?.getBoundingClientRect()?.top ?? 0;\r\n const scrollTop = bodyTop * -1 + hrefTop - adjustment;\r\n docElement.scrollTo({ top: scrollTop, behavior: 'smooth' });\r\n }\r\n }\r\n\r\n private navigateTo(href: string) {\r\n const siteBasePath = this.libConfig.siteSufix ?? '';\r\n const siteBasePathNoSlash = siteBasePath.replace(/\\//g, '');\r\n let noBaseHref = href;\r\n if (href.startsWith(siteBasePathNoSlash)) {\r\n noBaseHref = href.replace(siteBasePathNoSlash, '');\r\n } else if (href.startsWith(siteBasePath)) {\r\n noBaseHref = href.replace(siteBasePath, '');\r\n }\r\n if (this.libConfig?.customInternalLinkNavigation && this.libConfig.customInternalLinkNavigation(noBaseHref)) {\r\n return;\r\n }\r\n\r\n const [path, query] = noBaseHref.split('?');\r\n const queryParams: Record<string, any> = {};\r\n if (query) {\r\n const queryArray = query.split('&');\r\n queryArray.forEach((q) => {\r\n const arr = q.split('=');\r\n queryParams[arr[0]] = arr[1];\r\n });\r\n }\r\n this.router.navigate([path], { queryParams: queryParams });\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport algoliasearch, { SearchClient } from 'algoliasearch';\r\nimport {\r\n SearchOptions,\r\n SearchResponse,\r\n MultipleQueriesQuery,\r\n MultipleQueriesResponse,\r\n SearchForFacetValuesResponse,\r\n} from '@algolia/client-search';\r\nimport { Observable, from } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlgoliaService {\r\n private client: SearchClient;\r\n\r\n constructor(@Inject(LIB_CONFIG) private libConfig: LibConfig) {\r\n this.client = this.initClient();\r\n }\r\n\r\n search<T = any>(query: string, index: string, params?: SearchOptions): Observable<SearchResponse<T>> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchResponse<T>>>(algoliaIndex.search<T>(query, params));\r\n }\r\n\r\n searchMultipleIndexes<T = any>(config: MultipleQueriesQuery[]): Observable<MultipleQueriesResponse<T>> {\r\n return from<Promise<MultipleQueriesResponse<T>>>(this.client.multipleQueries<T>(config));\r\n }\r\n\r\n searchForFacetValues(\r\n index: string,\r\n facetName: string,\r\n facetQuery: string,\r\n params?: SearchOptions,\r\n ): Observable<SearchForFacetValuesResponse> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchForFacetValuesResponse>>(\r\n algoliaIndex.searchForFacetValues(facetName, facetQuery, params),\r\n );\r\n }\r\n\r\n initClient() {\r\n return algoliasearch(this.libConfig.algoliaConfig.id, this.libConfig.algoliaConfig.key);\r\n }\r\n}\r\n","export enum IconCuraDefaultType {\r\n 'icon-360' = '360',\r\n 'accessibility' = 'accessibility',\r\n 'icon-alerta-circ' = 'alertCircle',\r\n 'icon-alerta-tri' = 'alertTriangle',\r\n 'icon-seta-baixo' = 'arrowDown',\r\n 'icon-circle-chevron-down' = 'arrowDownCircle',\r\n 'icon-seta-esquerda' = 'arrowLeft',\r\n 'icon-circle-chevron-left' = 'arrowLeftCircle',\r\n 'icon-seta-direita' = 'arrowRight',\r\n 'icon-circle-chevron-right' = 'arrowRightCircle',\r\n 'icon-seta-cima' = 'arrowUp',\r\n 'icon-circle-chevron-up' = 'arrowUpCircle',\r\n 'icon-anexo' = 'attach',\r\n 'icon-avatar-f' = 'avatarF',\r\n 'icon-avatar-m' = 'avatarM',\r\n 'icon-hematologia' = 'bloodGroup',\r\n 'icon-agm-agendar' = 'calendar',\r\n 'icon-ouvidoria' = 'central',\r\n 'icon-chat-circle' = 'chatCircle',\r\n 'icon-check' = 'check',\r\n 'icon-parceria' = 'checkBadge',\r\n 'icon-check-sucesso' = 'checkCircle',\r\n 'icon-check-hard' = 'checkDouble',\r\n 'icon-hora' = 'clock',\r\n 'icon-fechar' = 'close',\r\n 'icon-collapse' = 'collapse',\r\n 'icon-configuracoes' = 'config',\r\n 'icon-nps-dislike' = 'npsDeslike',\r\n 'icon-download' = 'download',\r\n 'icon-duplicar' = 'duplicate',\r\n 'icon-editar' = 'edit',\r\n 'icon-exame' = 'exam',\r\n 'icon-expand' = 'expand',\r\n 'icon-facebook-2' = 'facebook',\r\n 'icon-facebook' = 'facebook',\r\n 'icon-pdf' = 'filePdf',\r\n 'icon-xls' = 'fileXls',\r\n 'icon-filter' = 'filter',\r\n 'icon-unidade' = 'geotag',\r\n 'icon-geotag' = 'geotag',\r\n 'icon-google' = 'google',\r\n 'icon-google-2' = 'google',\r\n 'icon-endereco-hospital' = 'geotagUnity',\r\n 'icon-nps-hate' = 'npsHate',\r\n 'icon-plano' = 'healthPlan',\r\n 'icon-height' = 'height',\r\n 'icon-altura' = 'height2',\r\n 'icon-home' = 'home',\r\n 'icon-enviar-foto' = 'imageUp',\r\n 'icon-info-2' = 'lamp',\r\n 'icon-info' = 'infoCircle',\r\n 'icon-key-lock' = 'key',\r\n 'icon-idioma' = 'language',\r\n 'icon-idioma-2' = 'language2',\r\n 'icon-idioma-en' = 'languageEN',\r\n 'icon-idioma-pt' = 'languagePT',\r\n 'icon-nps-like' = 'npsLike',\r\n 'icon-link' = 'link',\r\n 'icon-link-externo' = 'linkExternal',\r\n 'icon-lista' = 'list',\r\n 'icon-login' = 'login',\r\n 'icon-logout' = 'logout',\r\n 'icon-nps-love' = 'npsLove',\r\n 'icon-mail' = 'mail',\r\n 'icon-mail-2' = 'mail',\r\n 'icon-mail-input' = 'mail',\r\n 'icon-exame-resultado' = 'medDoc',\r\n 'icon-exame-imagem' = 'medImg',\r\n 'icon-medico' = 'medUser',\r\n 'icon-menu' = 'menuHamburguer',\r\n 'icon-minus' = 'minus',\r\n 'icon-minus-circle' = 'minusCircle',\r\n 'icon-minus-square' = 'minusSquare',\r\n 'icon-nps-neutral' = 'npsNeutral',\r\n 'icon-news' = 'news',\r\n 'icon-alert' = 'notification',\r\n 'icon-telefone' = 'phone',\r\n 'icon-plus' = 'plus',\r\n 'icon-plus-circle' = 'plusCircle',\r\n 'icon-plus-square' = 'plusSquare',\r\n 'icon-print' = 'print',\r\n 'icon-perfil' = 'profileCircle',\r\n 'icon-perfil-2' = 'profile',\r\n 'icon-pulldown' = 'down',\r\n 'icon-pulldown-small' = 'down',\r\n 'pullupG' = 'up',\r\n 'pullupP' = 'up',\r\n 'icon-tooltip' = 'questionCircle',\r\n 'icon-help' = 'questionSquare',\r\n 'icon-date-range' = 'range',\r\n 'icon-reload' = 'reload',\r\n 'icon-agendamento' = 'schedule',\r\n 'icon-agm-ok' = 'scheduleCheck',\r\n 'icon-buscar' = 'search',\r\n 'icon-secure' = 'secure',\r\n 'icon-share' = 'share',\r\n 'icon-share-2' = 'share',\r\n 'icon-sub-item' = 'subItem',\r\n 'icon-geotag-2' = 'target',\r\n 'icon-unlink' = 'unLink',\r\n 'icon-unsecure' = 'unSecure',\r\n 'icon-infraestrutura-idor' = 'unity',\r\n 'icon-upload' = 'upload',\r\n 'icon-view-off' = 'viewFalse',\r\n 'icon-view-on' = 'viewTrue',\r\n 'icon-zoom-in' = 'zoomIn',\r\n 'icon-zoom-out' = 'zoomOut',\r\n 'icon-twitter' = 'twitter',\r\n 'icon-twitter-2' = 'twitter',\r\n 'icon-x' = 'twitter',\r\n 'icon-instagram-2' = 'instagram',\r\n 'icon-instagram' = 'instagram',\r\n 'icon-whatsapp' = 'whatsapp',\r\n 'icon-whatsapp-2' = 'whatsapp',\r\n 'icon-linkedin' = 'linkedin',\r\n 'icon-linkedin-2' = 'linkedin',\r\n 'icon-telegram' = 'telegram',\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SSR_CURA_API = new InjectionToken<any>('SSR Cura API');\r\n","const removeDuplicateObjectsFromArray = <T = any>(arr: T[], key: string): T[] => {\r\n return [...new Map(arr.map((item) => [(item as any)[key], item])).values()];\r\n};\r\n\r\nexport { removeDuplicateObjectsFromArray };\r\n","const removeDuplicateValuesFromArray = <T = any>(arr: T[]): T[] => {\r\n return Array.from(new Set(arr));\r\n};\r\n\r\nexport {removeDuplicateValuesFromArray};\r\n","const getSiteUrl = (siteUrl: string = '', siteSufix: string = ''): string => {\r\n const baseUrl = siteUrl.endsWith('/')\r\n ? siteUrl.substring(0, siteUrl.length - 1)\r\n : siteUrl;\r\n const baseSufix = siteSufix.endsWith('/')\r\n ? siteSufix.substring(0, siteSufix.length - 1)\r\n : siteSufix;\r\n return `${baseUrl}${baseSufix}`;\r\n}\r\n\r\nexport { getSiteUrl };\r\n","function removeHtmlTags(content: string): string {\r\n content = content.replace(/<.*?>/g, \"\");\r\n return content;\r\n}\r\n\r\nexport { removeHtmlTags };\r\n","/**\r\n * Converte JSON para query string.\r\n * @param params JSON\r\n */\r\nexport function toQueryParams(params: any): string {\r\n return params ? `?${Object.keys(params).map(key => key + \"=\" + params[key]).join(\"&\")}` : \"\";\r\n}\r\n","const checkSafariAgent = (): boolean => {\r\n const safariAgent = navigator.userAgent.includes('Safari');\r\n const chromeAgent = navigator.userAgent.includes('Chrome');\r\n return !chromeAgent && safariAgent;\r\n};\r\nexport default checkSafariAgent;\r\n","/**\r\n * Função que retorna um replacer personalizado para o JSON.stringify que resolve problemas de estruturas circulares durante a serialização.\r\n */\r\nexport function getCircularReplacer(customOptions?: {\r\n ignoreKeys?: string[]; // Chaves específicas a serem sempre ignoradas (ex: ['_request', 'parent'])\r\n maxDepth?: number; // Profundidade máxima de objetos aninhados (opcional)\r\n}) {\r\n const seen = new WeakSet();\r\n const options = {\r\n ignoreKeys: customOptions?.ignoreKeys || [],\r\n maxDepth: customOptions?.maxDepth || 100,\r\n };\r\n\r\n let depth = 0;\r\n\r\n return (key: string, value: any) => {\r\n // Ignora chaves específicas configuradas\r\n if (options.ignoreKeys.includes(key)) {\r\n return undefined;\r\n }\r\n\r\n // Controle de profundidade (opcional)\r\n if (key === '') {\r\n depth = 0; // Reinicia a profundidade na raiz\r\n } else {\r\n depth += 1; // Incrementa apenas quando descer na hierarquia\r\n }\r\n\r\n if (depth > options.maxDepth) {\r\n return typeof value === 'object' ? '[Object]' : value;\r\n }\r\n\r\n // Lida com referências circulares\r\n if (typeof value === 'object' && value !== null) {\r\n // Se já vimos este objeto, é uma referência circular\r\n if (seen.has(value)) {\r\n return undefined; // Exclui valores circulares\r\n }\r\n // Adiciona o objeto ao conjunto de objetos vistos\r\n seen.add(value);\r\n }\r\n\r\n return value;\r\n };\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser, Location } from '@angular/common';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { getSiteUrl } from '../../helpers';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogService {\r\n constructor(\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private platformId: any,\r\n private location: Location,\r\n ) {}\r\n\r\n logMsg(msg: any, label?: string) {\r\n label = label ? `${label} ` : '';\r\n if (!isPlatformBrowser(this.platformId) || (isPlatformBrowser(this.platformId) && !this.libConfig?.production)) {\r\n console.log(`${label}${msg}`);\r\n }\r\n }\r\n\r\n logLoad(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, 'LOAD');\r\n }\r\n\r\n log404(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '404');\r\n }\r\n\r\n log500(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '500');\r\n }\r\n\r\n getPageURL() {\r\n return `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`;\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport { Inject, Injectable, OnDestroy, Optional, PLATFORM_ID } from '@angular/core';\r\nimport CuraAPI from '@rededor/cura/dist/types/api/cura-api';\r\nimport { Subscription, fromEvent, startWith } from 'rxjs';\r\nimport { LogService } from '../log/log.service';\r\nimport { IconCuraDefaultType } from '../../enums/IconCuraDefaultType.enum';\r\nimport { SSR_CURA_API } from '../../tokens/CuraApi';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuraService implements OnDestroy {\r\n private curaAPISubscription: Subscription | null = null;\r\n private curaApi: CuraAPI | null = null;\r\n\r\n constructor(\r\n private log: LogService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Optional() @Inject(SSR_CURA_API) private ssrCuraAPI: any,\r\n ) {\r\n this.curaInit();\r\n }\r\n\r\n curaInit() {\r\n if (!this.curaAPISubscription) {\r\n this.curaAPISubscriptionInit();\r\n }\r\n }\r\n\r\n private curaAPISubscriptionInit() {\r\n if (this.document.defaultView) {\r\n if (isPlatformServer(this.platformId)) {\r\n this.injectCuraAPI();\r\n }\r\n this.curaAPISubscription = fromEvent(this.document.defaultView, 'CuraAPIReady')\r\n .pipe(\r\n startWith({\r\n detail: { api: (this.document.defaultView as any)?.CuraAPI },\r\n }),\r\n )\r\n .subscribe({\r\n next: (event) => {\r\n this.curaApi = (event as CustomEvent)?.detail?.api as CuraAPI;\r\n },\r\n error: (error) => {\r\n this.log.logMsg(JSON.stringify(error), 'ERROR');\r\n },\r\n });\r\n }\r\n }\r\n\r\n private injectCuraAPI() {\r\n if (this.document.defaultView && !(this.document.defaultView as any)['CuraAPI']) {\r\n Object.defineProperty(this.document.defaultView, 'CuraAPI', {\r\n value: this.ssrCuraAPI,\r\n });\r\n }\r\n }\r\n\r\n loadTheme(theme: string) {\r\n this.curaApi?.theme?.load(theme);\r\n }\r\n\r\n getColor(colorWithDepth: string, opacity: number = 1): string | null {\r\n return this.curaApi?.theme?.colors.getColor(colorWithDepth, opacity) ?? null;\r\n }\r\n\r\n getSpacing(): string | null {\r\n return this.curaApi?.theme.spacing.getSpacing() ?? null;\r\n }\r\n\r\n getFontFamily(type: string): string | null {\r\n return this.curaApi?.theme.fonts.getFamily(type) ?? null;\r\n }\r\n\r\n getFontWeights(): { [alias: string]: string } {\r\n return this.curaApi?.theme.fonts.getWeights() ?? {};\r\n }\r\n\r\n getFontSize(): string {\r\n return this.curaApi?.theme.fonts.getSize() ?? '';\r\n }\r\n\r\n getFontColor(): string {\r\n return this.curaApi?.theme.fonts.getColor() ?? '';\r\n }\r\n\r\n getCuraIconName(icon: string): string {\r\n if (IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType]) {\r\n return IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType];\r\n } else {\r\n return this.getCuraSystemIconName(icon);\r\n }\r\n }\r\n\r\n private getCuraSystemIconName(icon: string): string {\r\n if (this.libConfig.iconsetDefaultList?.includes(icon)) return icon;\r\n return '';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.curaAPISubscription?.unsubscribe();\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\n/* Adiciona os Headers necessários para funcionamento do site back-end */\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpClientService {\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n private http: HttpClient,\r\n private deviceService: DeviceDetectorService,\r\n ) {}\r\n\r\n get<T = any>(url: string): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.get<T>(url, { headers });\r\n }\r\n\r\n post<T = any>(url: string, data?: any): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.post<T>(url, data, { headers });\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n const baseHeaders = new HttpHeaders()\r\n .set(\"x-origin-application\", this.libConfig.xOriginApplication)\r\n .set(\"x-origin-channel\", this.getOriginChannel())\r\n .set(\"x-origin-device\", this.getOriginDevice());\r\n\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return baseHeaders.append(\"authorization\", \"Basic \" + Buffer.from(`${this.libConfig.siteApi.auth.user}:${this.libConfig.siteApi.auth.password}`).toString('base64'));\r\n } else {\r\n return baseHeaders.append(\"client_id\", this.libConfig.client_id);\r\n }\r\n }\r\n\r\n private getOriginChannel(): string {\r\n return this.deviceService.isDesktop() ? 'desktop' : 'mobile';\r\n }\r\n\r\n private getOriginDevice(): string {\r\n return `app-${this.deviceService.getDeviceInfo().os}`;\r\n }\r\n}\r\n","import { ElementRef, Injectable } from '@angular/core';\r\nimport { RdsiteModalDrawerComponentStyle } from '../../enums';\r\n\r\nexport abstract class AbstractModalDrawerComponent {\r\n abstract sheet: HTMLElement;\r\n abstract sheetContents: HTMLElement;\r\n abstract draggableArea: HTMLElement;\r\n abstract sheetHeight: number;\r\n abstract dragPosition: number;\r\n abstract maxHeight: number;\r\n abstract closeHeight: number;\r\n abstract rdsiteModalComponentStyle: any;\r\n abstract id: string;\r\n abstract modalContent: ElementRef;\r\n abstract componentStyle: any;\r\n abstract modal: HTMLDialogElement;\r\n abstract setSheetHeight(value: number): void;\r\n abstract setIsSheetShown(isShown: boolean): void;\r\n abstract openSheet(): void;\r\n abstract closeSheet(): void;\r\n abstract touchPosition(event: any): void;\r\n abstract onDragStart(event: any): void;\r\n abstract onDragMove(event: any): void;\r\n abstract onDragEnd(): void;\r\n abstract reset(): void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModalDrawerService {\r\n reference: AbstractModalDrawerComponent | null = null;\r\n\r\n open() {\r\n this.reference?.openSheet();\r\n }\r\n\r\n setReference(element: AbstractModalDrawerComponent) {\r\n this.reference = element;\r\n }\r\n\r\n setContent(content: ElementRef) {\r\n if (!this.reference) return;\r\n this.reference.modalContent = content;\r\n }\r\n\r\n setStyle(style: RdsiteModalDrawerComponentStyle) {\r\n if (!this.reference) return;\r\n this.reference.componentStyle = style;\r\n }\r\n\r\n setHeight(value: number) {\r\n if (!this.reference) return;\r\n this.reference.maxHeight = value;\r\n }\r\n\r\n close() {\r\n this.reference?.closeSheet();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig } from '@ngu/carousel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NguCarouselService {\r\n private _defaultCarouselConfig: NguCarouselConfig = {\r\n grid: { xs: 1.2, sm: 1.2, md: 3.2, lg: 4.2, xl: 5.2, all: 0 },\r\n gridBreakpoints: { sm: 360, md: 768, lg: 1366, xl: 1920 },\r\n slide: 1,\r\n speed: 500,\r\n interval: {\r\n timing: 7000,\r\n initialDelay: 1000,\r\n },\r\n point: {\r\n visible: false,\r\n },\r\n velocity: 0.5,\r\n load: 1,\r\n loop: true,\r\n touch: true,\r\n easing: 'ease-in-out',\r\n };\r\n get defaultCarouselConfig() {\r\n return { ...JSON.parse(JSON.stringify(this._defaultCarouselConfig)) };\r\n }\r\n\r\n customCarouselConfig(config: Partial<NguCarouselConfig>) {\r\n return {\r\n ...this.defaultCarouselConfig,\r\n ...config,\r\n };\r\n }\r\n\r\n moveTo(carousel: NguCarousel<any, any>, index: number) {\r\n carousel.moveTo(index);\r\n }\r\n\r\n scrollLeft(carousel: NguCarousel<any, any>, loop = true) {\r\n if (carousel.isFirst || carousel.activePoint < 1) {\r\n if (loop) {\r\n carousel.moveTo(carousel.pointNumbers[carousel.pointNumbers.length - 1]);\r\n }\r\n } else {\r\n carousel.moveTo(carousel.activePoint - 1);\r\n }\r\n }\r\n\r\n scrollRight(carousel: NguCarousel<any, any>, loop = true) {\r\n if (carousel.isLast || carousel.activePoint > carousel.pointNumbers.length - 1) {\r\n if (loop) {\r\n carousel.moveTo(0);\r\n }\r\n } else {\r\n carousel.moveTo(carousel.activePoint + 1);\r\n }\r\n }\r\n\r\n needShowControls(config: NguCarouselConfig, width: number, itemsLength: number = 0) {\r\n const {\r\n grid: { xs, sm, md, lg, xl },\r\n gridBreakpoints,\r\n } = config;\r\n if (width > (gridBreakpoints?.xl ?? 0)) {\r\n return itemsLength > (xl ?? 0);\r\n }\r\n if (width > (gridBreakpoints?.lg ?? 0)) {\r\n return itemsLength > lg;\r\n }\r\n if (width > (gridBreakpoints?.md ?? 0)) {\r\n return itemsLength > md;\r\n }\r\n if (width > (gridBreakpoints?.sm ?? 0)) {\r\n return itemsLength > sm;\r\n }\r\n return itemsLength > xs;\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { PrivacyToolsConfigOptions, PrivacyToolsCookieBanner } from '../../models/privacy-tools/privacy-tools.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PrivacyToolsService {\r\n cookieBannerScriptId = 'PrivacyToolsScript';\r\n cookieBannerStyleId = 'PrivacyToolsStyle';\r\n cookieBannerScriptElement: HTMLScriptElement | null = null;\r\n configOptions: PrivacyToolsConfigOptions = {};\r\n cookieConsent: any = null;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) public document: Document,\r\n @Inject(PLATFORM_ID) public platformId: object,\r\n ) {}\r\n\r\n /* Config */\r\n public config(options: PrivacyToolsConfigOptions) {\r\n this.configOptions = options;\r\n }\r\n\r\n /* Setup cookie Banner */\r\n public setupCookieBanner(unidadeBasePath: string) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const banner = this.configOptions?.cookieBanners?.find((banner) => banner.basePath.includes(unidadeBasePath));\r\n\r\n if (banner) {\r\n this.addCookieBanner(banner);\r\n }\r\n }\r\n }\r\n\r\n public openCookieBanner() {\r\n if (this.cookieConsent && this.cookieBannerScriptElement) {\r\n this.cookieConsent.privacyToolsShowCookieNotice();\r\n }\r\n }\r\n\r\n /* Add cookie banner style and script */\r\n private addCookieBanner(banner: PrivacyToolsCookieBanner) {\r\n this.cookieBannerScriptElement = null;\r\n this.addCookieBannerStyle(banner.styleSrc);\r\n this.addCookieBannerScript(banner.scriptSrc);\r\n }\r\n\r\n /* Add cookie banner style. */\r\n public addCookieBannerStyle(src: string) {\r\n if (isPlatformServer(this.platformId)) return;\r\n\r\n this.document.getElementById('byRemovePortal')?.remove();\r\n\r\n const oldStyle = this.document.getElementById(this.cookieBannerStyleId);\r\n\r\n if (oldStyle) {\r\n oldStyle.remove();\r\n }\r\n\r\n const style = this.document.createElement('link');\r\n style.id = this.cookieBannerStyleId;\r\n style.rel = 'stylesheet';\r\n style.type = 'text/css';\r\n style.href = src;\r\n style.media = 'none';\r\n\r\n style.addEventListener('load', () => {\r\n style.media = 'all';\r\n });\r\n\r\n this.document.body.appendChild(style);\r\n }\r\n\r\n /* Add cookie banner script. */\r\n public addCookieBannerScript(src: string) {\r\n if (isPlatformServer(this.platformId) || typeof window === 'undefined') return;\r\n\r\n (window as any)['cookieconsent'] = null;\r\n\r\n const oldScript = this.document.getElementById(this.cookieBannerScriptId);\r\n\r\n if (oldScript) {\r\n oldScript.remove();\r\n }\r\n const script = this.document.createElement('script');\r\n script.id = this.cookieBannerScriptId;\r\n script.src = src;\r\n\r\n script.addEventListener('load', () => {\r\n this.cookieBannerScriptElement = script;\r\n this.cookieConsent = (window as any)['cookieconsent'];\r\n (window as any)['portalBanner']?.call();\r\n });\r\n\r\n this.document.body.appendChild(script);\r\n }\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { toQueryParams } from '../../helpers/toQueryParams.func';\r\nimport { HttpClientService } from '../http-client/http-client.service';\r\nimport { RDSLConvenio, RDSLConvenioParams } from '../../models/rdsl-convenio.model';\r\nimport { RDSLPlano, RDSLPlanoParams } from '../../models/rdsl-planos.model';\r\nimport { RDSLCobertura, RDSLCoberturaParams } from '../../models/rdsl-cobertura.model';\r\nimport { RDSLUnidade, RDSLUnidadesParams } from '../../models/rdsl-unidade.model';\r\nimport { RDSLEspecialidade, RDSLEspecialidadesParams } from '../../models/rdsl-especialidade.model';\r\nimport { DoencaBackend } from '../../models/doenca-backend.model';\r\nimport { TaxonomiasDoencasList } from '../../models/doenca-taxonomy.model';\r\nimport { ExameApiDados, ExameBackend } from '../../models/exame-backend.model';\r\nimport { EspecialidadeBackend, EspecialidadeGrupoBackend } from '../../models/especialidade-backend.model';\r\nimport { CentroEstudosBackendMedico } from '../../models/centro-estudos-backend.model';\r\nimport { WpUnidadeSite } from '../../models/wordpress/unidade/wp-unidade-site.model';\r\nimport { WpUnidadeOnco } from '../../models/wordpress/unidade/wp-unidade-onco.model';\r\nimport { UnifiedMenu } from '../../models/menu-item.model';\r\nimport { MedicoCv } from '../../models/medico-cv.model';\r\nimport { MenuDeUnidade } from '../../models/menu-de-unidade.model';\r\nimport { CentroMedico } from '../../models/centro-medico.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteBackendService {\r\n siteApiUrl: string;\r\n\r\n constructor(\r\n private httpClientService: HttpClientService,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) {\r\n this.siteApiUrl = this.getApiUrl();\r\n }\r\n\r\n private getApiUrl(): string {\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return this.libConfig.siteApi.baseInternal;\r\n }\r\n return this.libConfig.siteApi.base;\r\n }\r\n\r\n /**\r\n * GET para qualquer endpoint do back-end do site.\r\n * @param path - O caminho do recurso. (Inicia sem '/'. Ex: 'unidades/wp')\r\n * @param params - Parâmetros opcionais para a requisição.\r\n * @returns Observable que emite os dados retornados pelo back-end.\r\n */\r\n get<T = any>(path: string, params?: any): Observable<T> {\r\n return this.httpClientService.get<T>(`${this.siteApiUrl}${path}${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidades(params?: RDSLUnidadesParams): Observable<RDSLUnidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidadesList(): Observable<any> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades/lista`);\r\n }\r\n\r\n getUnidadesWP(): Observable<WpUnidadeSite[]> {\r\n return this.httpClientService.get<WpUnidadeSite[]>(`${this.siteApiUrl}unidades/wp`);\r\n }\r\n\r\n getUnidadesMenusWP(unidadeSlug = ''): Observable<UnifiedMenu> {\r\n const unidade = unidadeSlug && unidadeSlug !== '/' ? unidadeSlug : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades/wp/menus/${unidade}`);\r\n }\r\n\r\n getUnidadesOncoWP(): Observable<WpUnidadeOnco[]> {\r\n return this.httpClientService.get<WpUnidadeOnco[]>(`${this.siteApiUrl}unidades/wp-onco`);\r\n }\r\n\r\n /**\r\n * Retorna o 'menu de unidades' completo, baseado nos dados de /unidades/wp e /unidades/wp-onco do backend.\r\n * index 0 => rededor\r\n * index 1 => oncologia\r\n * index 2 => star\r\n **/\r\n getMenuDeUnidades(): Observable<MenuDeUnidade[]> {\r\n return this.httpClientService.get<MenuDeUnidade[]>(`${this.siteApiUrl}unidades/wp/menu-de-unidades`);\r\n }\r\n\r\n getConvenios(params?: RDSLConvenioParams): Observable<RDSLConvenio[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}convenios${toQueryParams(params)}`);\r\n }\r\n\r\n getPlanos(params?: RDSLPlanoParams): Observable<RDSLPlano[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos${toQueryParams(params)}`);\r\n }\r\n\r\n getCoberturas(planoIdQd: number, params?: RDSLCoberturaParams): Observable<RDSLCobertura[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos/${planoIdQd}/cobertura${toQueryParams(params)}`);\r\n }\r\n\r\n getDoencas(): Observable<DoencaBackend[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}doencas`);\r\n }\r\n\r\n getDoencasTaxonomies() {\r\n const url = `${this.siteApiUrl}doencas/taxonomias`;\r\n return this.httpClientService.get<TaxonomiasDoencasList>(url);\r\n }\r\n\r\n getDoencasUniqueLetters(): Observable<string[]> {\r\n const url = `${this.siteApiUrl}doencas/letters`;\r\n return this.httpClientService.get(url);\r\n }\r\n\r\n getVacinas(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas`);\r\n }\r\n\r\n getVacinasTaxonomies() {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas/taxonomias`);\r\n }\r\n\r\n getCirurgias(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias`);\r\n }\r\n\r\n getCirurgiasGrupos(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/grupos`);\r\n }\r\n\r\n getCirurgiasTaxonomies(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/taxonomias`);\r\n }\r\n\r\n getExamesList(listaDaUnidade: boolean, unidadeSlug: string, unidadeIdQd: string, unidadeIdMotion: string, unidadeIdLocal: string): Observable<any> {\r\n return this.httpClientService.get(\r\n `${this.siteApiUrl}exames-e-procedimentos/lista?listaDaUnidade=${listaDaUnidade}&unidadeSlug=${unidadeSlug}&unidadeIdQd=${unidadeIdQd}&unidadeIdMotion=${unidadeIdMotion}&unidadeIdLocal=${unidadeIdLocal}`,\r\n );\r\n }\r\n\r\n getExameDetails(\r\n unidadePossuiExames: boolean,\r\n unidadeSlug: string,\r\n unidadeIdQd: string,\r\n unidadeIdMotion: string,\r\n unidadeIdLocal: string,\r\n grupoSlug: string,\r\n exameSlug: string,\r\n ): Observable<any> {\r\n return this.httpClientService.get(\r\n `${this.siteApiUrl}exames-e-procedimentos/detalhes?unidadePossuiExames=${unidadePossuiExames}&unidadeSlug=${unidadeSlug}&unidadeIdQd=${unidadeIdQd}&unidadeIdMotion=${unidadeIdMotion}&unidadeIdLocal=${unidadeIdLocal}&grupoSlug=${grupoSlug}&exameSlug=${exameSlug}`,\r\n );\r\n }\r\n\r\n getGruposExames(unidadeSlug: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? '/';\r\n const params = slug ? `?unidade=${slug}` : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos${params}`);\r\n }\r\n\r\n getExamesByGrupo(unidadeSlug: string, slugGrupo: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? '/';\r\n const params = `?unidade=${slug}&slugGrupo=${slugGrupo}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/grupo${params}`);\r\n }\r\n\r\n getExamesByUnidade(unidadeId: string): Observable<string[]> {\r\n const params = `?unitId=${unidadeId}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/unidade${params}`);\r\n }\r\n\r\n getExamesApiDados(): Observable<ExameApiDados[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/api-dados`);\r\n }\r\n\r\n getEspecialidadesList(\r\n listaDaUnidade: boolean,\r\n unidadeSlug: string,\r\n unidadePossuiAgendamento: boolean,\r\n unidadeIdConsultas: string,\r\n unidadeIdMotion: string,\r\n unidadeIdLocal: string,\r\n ): Observable<any> {\r\n return this.httpClientService.get(\r\n `${this.siteApiUrl}especialidades/lista?listaDaUnidade=${listaDaUnidade}&unidadeSlug=${unidadeSlug}&unidadePossuiAgendamento=${unidadePossuiAgendamento}&unidadeIdConsultas=${unidadeIdConsultas}&unidadeIdMotion=${unidadeIdMotion}&unidadeIdLocal=${unidadeIdLocal}`,\r\n );\r\n }\r\n\r\n getGruposEspecialidades(unidadeSlug?: string): Observable<EspecialidadeGrupoBackend[]> {\r\n const params = unidadeSlug ? `?unidade=${unidadeSlug}` : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades${params}`);\r\n }\r\n\r\n getEspecialidadesByGrupo(tituloGrupo: string, unidadeSlug?: string): Observable<EspecialidadeBackend[]> {\r\n const titulo = `?tituloGrupo=${encodeURI(tituloGrupo)}`;\r\n const slug = unidadeSlug ? `&unidade=${unidadeSlug}` : '';\r\n const params = `${titulo}${slug}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupo${params}`);\r\n }\r\n\r\n getEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/especialidades-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getGruposEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupos-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getRecaptchaResult(token: string): Observable<any> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.recaptcha}`, { token });\r\n }\r\n\r\n getMedicoCv(medicoId: number): Observable<MedicoCv> {\r\n return this.httpClientService.get(`${this.siteApiUrl}medicos/${medicoId}`);\r\n }\r\n\r\n getCentrosMedicos(categoria = ''): Observable<CentroMedico[]> {\r\n const params = categoria ? `?categoria=${categoria}` : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}centro-medico-diagnostico${params}`);\r\n }\r\n\r\n // Centro de Estudos\r\n checkMedico(conselhoCodigo: string): Observable<any> {\r\n return this.httpClientService.get(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}?email=${conselhoCodigo}`);\r\n }\r\n\r\n saveMedico(novoMedico: CentroEstudosBackendMedico): Observable<CentroEstudosBackendMedico> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}`, novoMedico);\r\n }\r\n\r\n logClientError(error: string, origin: string, url: string) {\r\n return this.httpClientService.post(`${this.siteApiUrl}log/error`, {\r\n error,\r\n origin,\r\n url,\r\n });\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\n\r\nimport * as he from 'he';\r\n\r\nimport { SocialMetaProperties } from '../../models/social-meta-properties.model';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { BreadcrumbsJsonItem } from '../../models/breadcrumbs/breadcrumbs-json-item.model';\r\nimport { SeoData } from '../../models/seo/seo-data.model';\r\nimport { SeoUnidade } from '../../models/seo/seo-unidade.model';\r\nimport { WpPost } from '../../models/wordpress/post/post.model';\r\nimport { getSiteUrl, removeHtmlTags } from '../../helpers';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SeoService {\r\n public separator = ' - ';\r\n public defaultTitle = 'Rede D’Or';\r\n public activeDescription!: string;\r\n public sameAs = [\r\n 'https://www.facebook.com/rededor/',\r\n 'https://www.instagram.com/rededor_oficial/',\r\n 'https://www.linkedin.com/company/rededor-saoluiz',\r\n 'https://twitter.com/rededor',\r\n ];\r\n public twitterUser = '@rededor';\r\n\r\n private canonicalTag!: HTMLLinkElement;\r\n private jsonTag!: HTMLScriptElement;\r\n private jsonTagId = 'seoJSON';\r\n private breadcrumbsJsonTag!: HTMLScriptElement;\r\n private breadcrumbsJsonTagId = 'breadcrumbsJSON';\r\n\r\n public unidade: any = null;\r\n public unidadeName: string = '';\r\n public unidadePath: string = '';\r\n public unidadeSlug: string = '';\r\n\r\n public customJsonType: any[] = [];\r\n\r\n constructor(\r\n private title: Title,\r\n private meta: Meta,\r\n private location: Location,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(DOCUMENT) private document: Document,\r\n ) {}\r\n\r\n public setFullSeo(data: SeoData) {\r\n this.setTitle(data.title.text, !!data.title.sub);\r\n this.setDescription(data.description);\r\n this.setCanonicalHref(data.canonical);\r\n this.setPageJson();\r\n this.setSocialTags(data.socialTags);\r\n }\r\n\r\n /**\r\n * Define tag description da página\r\n * @param content conteúdo da descrição <string>\r\n */\r\n public setDescription(content: string): SeoService {\r\n const descTag = this.meta.getTag(\"name='description'\");\r\n if (content) {\r\n content = he.decode(content);\r\n content = removeHtmlTags(content);\r\n } else {\r\n content = '';\r\n }\r\n this.activeDescription = content;\r\n const tagContent = { name: 'description', content };\r\n if (descTag) {\r\n this.meta.updateTag(tagContent);\r\n } else {\r\n this.meta.addTag(tagContent);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Define meta tags para a página\r\n * @param tag nome da tag meta\r\n * @param content conteúdo da tag meta\r\n * @param type tipo de tag meta\r\n */\r\n public setMetaTag(tag: string, content: string, type = 'name') {\r\n const metatag = this.meta.getTag(`${type}='${tag}'`);\r\n content = he.decode(content);\r\n content = removeHtmlTags(content);\r\n const tagContent = {\r\n [type]: tag,\r\n content,\r\n };\r\n if (!metatag) {\r\n this.meta.addTag(tagContent);\r\n } else {\r\n this.meta.updateTag(tagContent);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove meta tags da página\r\n * @param tag nome da tag meta\r\n * @param content conteúdo da tag meta\r\n * @param attr atributo da tag meta\r\n * @param type tipo de tag meta\r\n */\r\n public removeTag(tag: string, content: string, attr: string, type = 'name') {\r\n const metatag = this.meta.getTag(`${type}='${tag}'`);\r\n if (metatag) {\r\n this.meta.removeTag(`${attr}=${content}`);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Define meta tags para Facebook\r\n * @param title título para o facebook\r\n * @param description descrição para o facebook\r\n * @param url url para definição do facebook\r\n * @param img imagem para definição no facebook\r\n */\r\n public setMetaFacebook(title: string, description: string, url: string, img: string | null = null) {\r\n this.setMetaTag('og:url', url, 'property');\r\n this.setMetaTag('og:title', title, 'property');\r\n this.setMetaTag('og:description', description, 'property');\r\n this.setMetaTag('og:type', 'website', 'property');\r\n this.setMetaTag('og:image', img ?? '', 'property');\r\n }\r\n\r\n /**\r\n * Define meta tags para Twitter\r\n * @param title título para o twitter\r\n * @param description descrição para o twitter\r\n * @param url url para o twitter\r\n * @param img imagem para definição no twitter\r\n */\r\n public setMetaTwitter(title: string, description: string, url: string, img: string | null = null) {\r\n this.setMetaTag('twitter:site', url, 'name');\r\n this.setMetaTag('twitter:title', title, 'name');\r\n this.setMetaTag('twitter:description', description, 'name');\r\n this.setMetaTag('twitter:image', img ?? '', 'name');\r\n }\r\n\r\n /**\r\n * Define tags de redes sociais (Twitter e Open Graph)\r\n * @param properties\r\n */\r\n setSocialTags(properties?: SocialMetaProperties) {\r\n const pagePath = this.location.path();\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n let defaultProperties: SocialMetaProperties = {\r\n twitterCard: 'summary',\r\n twitterSite: this.twitterUser,\r\n type: 'website',\r\n title: this.getTitle(),\r\n description: this.activeDescription || '',\r\n url: `${siteurl}${pagePath}`,\r\n image: this.libConfig?.logoPath ? `${siteurl}${this.libConfig.logoPath}` : 'https://www.rededorsaoluiz.com.br/assets/imgs/logo-rededor-blue.png',\r\n };\r\n if (properties) {\r\n defaultProperties = { ...defaultProperties, ...properties };\r\n }\r\n this.setMetaTag('twitter:card', defaultProperties.twitterCard || '', 'name')\r\n .setMetaTag('twitter:site', defaultProperties.twitterSite || '', 'name')\r\n .setMetaTag('og:type', defaultProperties.type || '', 'property')\r\n .setMetaTag('og:title', defaultProperties.title || '', 'property')\r\n .setMetaTag('og:description', defaultProperties.description || '', 'property')\r\n .setMetaTag('og:url', defaultProperties.url || '', 'property')\r\n .setMetaTag('og:image', defaultProperties.image || '', 'property');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Define título da página\r\n * @param title título da página <string>\r\n * @param sub Se é subsite acrescenta unidade <boolean>\r\n */\r\n public setTitle(title: string, sub = false) {\r\n if (title && title !== '') {\r\n title = he.decode(title);\r\n title = removeHtmlTags(title);\r\n if (sub) {\r\n title = he.decode(`${title}${this.separator}${this.unidadeName}`);\r\n }\r\n this.title.setTitle(title);\r\n }\r\n return this;\r\n }\r\n\r\n /** Obtem título atual da página */\r\n public getTitle(): string {\r\n return this.title.getTitle();\r\n }\r\n\r\n public set404Title(component: string = 'Default Component') {\r\n if (component && component !== '') {\r\n component = he.decode(component);\r\n component = removeHtmlTags(component);\r\n if (this.unidadeName) {\r\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\r\n }\r\n }\r\n const title = `Erro 404 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\r\n this.title.setTitle(title);\r\n return this;\r\n }\r\n\r\n public set500Title(component: string = 'Default Component') {\r\n if (component && component !== '') {\r\n component = he.decode(component);\r\n component = removeHtmlTags(component);\r\n if (this.unidadeName) {\r\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\r\n }\r\n }\r\n const title = `Erro 500 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\r\n this.title.setTitle(title);\r\n return this;\r\n }\r\n\r\n /** Cria tag script para JSON de breadcrumbs */\r\n private createBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const tag: HTMLScriptElement = this.document.createElement('script');\r\n tag.id = this.breadcrumbsJsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n this.breadcrumbsJsonTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\r\n private getBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLScriptElement;\r\n if (elem && elem.id === this.breadcrumbsJsonTagId) {\r\n return elem;\r\n }\r\n }\r\n return this.createBreadcrumbsJSONTag();\r\n }\r\n\r\n /** Define o JSON de breadcrumbs da página */\r\n public setBreadcrumbsJson(items: BreadcrumbsItems[]) {\r\n this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: this.getJsonBreadcrumbItems(items),\r\n };\r\n this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);\r\n return this;\r\n }\r\n\r\n /** Converte itens do breadcrumb em itens do JSON */\r\n private getJsonBreadcrumbItems(items: BreadcrumbsItems[]): BreadcrumbsJsonItem[] {\r\n const jsonItems = [\r\n {\r\n '@type': 'ListItem',\r\n position: 1,\r\n item: { '@id': this.getBreadcrumbItemUrl(['/']), name: he.encode('Página Inicial') },\r\n } as BreadcrumbsJsonItem,\r\n ];\r\n items.forEach((item, i) => {\r\n const jsonItem: BreadcrumbsJsonItem = {\r\n '@type': 'ListItem',\r\n position: i + 2,\r\n item: { '@id': this.getBreadcrumbItemUrl(item?.url || []), name: he.encode(item.label) },\r\n };\r\n jsonItems.push(jsonItem);\r\n });\r\n return jsonItems;\r\n }\r\n\r\n /**\r\n * Monta a url do item de breadcrumb proveniente do array de urls\r\n * ou do caminho da própria página, conforme caso do último item.\r\n */\r\n private getBreadcrumbItemUrl(url: string[]): string {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n if (!url || url.length <= 0) {\r\n const pagePath = this.location.path();\r\n return `${siteurl}${pagePath}`;\r\n }\r\n url = url.filter((u) => u !== this.unidadePath);\r\n const unidadePath = this.getUnidadePath();\r\n const fullPath = `${unidadePath}/${url.join('/').replace(/^\\/?/, '')}`;\r\n return `${siteurl}${fullPath}`.replace(/\\/$/, '');\r\n }\r\n\r\n /** Cria tag script para o JSON de SEO */\r\n private createJSONTag(): HTMLScriptElement {\r\n const tag: HTMLScriptElement = this.document.createElement('script');\r\n tag.id = this.jsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n this.jsonTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\r\n private getJSONTag(): HTMLScriptElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLScriptElement;\r\n if (elem && elem.id === this.jsonTagId) {\r\n return elem;\r\n }\r\n }\r\n return this.createJSONTag();\r\n }\r\n\r\n /** Define JSON para SEO somente quando no servidor */\r\n public setPageJson() {\r\n this.jsonTag = this.getJSONTag();\r\n\r\n const baseGraph = [this.getOrgJson(), this.getWebsiteJson(), this.getWebpageJson()];\r\n\r\n const extendedGraph = this.customJsonType.length ? [...baseGraph, ...this.customJsonType] : baseGraph;\r\n\r\n this.customJsonType = [];\r\n\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@graph': extendedGraph,\r\n };\r\n\r\n this.jsonTag.innerHTML = JSON.stringify(json);\r\n\r\n return this;\r\n }\r\n\r\n /** Obtem JSON da Organização */\r\n private getOrgJson() {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return {\r\n '@type': 'Organization',\r\n '@id': `${siteurl}#organization`,\r\n name: this.defaultTitle,\r\n keywords: this.libConfig?.keywords,\r\n url: `${siteurl}`,\r\n sameAs: this.sameAs,\r\n };\r\n }\r\n\r\n /** Obtem JSON do Website (portal, unidades, etc) */\r\n private getWebsiteJson() {\r\n const unidadePath = this.getUnidadePath();\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return {\r\n '@type': 'WebSite',\r\n '@id': `${siteurl}${unidadePath}#website`,\r\n url: `${siteurl}${unidadePath}`,\r\n name: this.unidadeName,\r\n keywords: this.libConfig?.keywords,\r\n };\r\n }\r\n\r\n /** Obtem Json da página */\r\n private getWebpageJson() {\r\n const unidadePath = this.getUnidadePath();\r\n const siteURL = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n const pagePath = `${siteURL}${this.location.path()}`;\r\n const desc = this.activeDescription ? this.activeDescription : '';\r\n return {\r\n '@type': 'WebPage',\r\n '@id': `${pagePath}#webpage`,\r\n url: pagePath,\r\n inLanguage: 'pt-BR',\r\n name: this.getTitle(),\r\n isPartOf: { '@id': `${siteURL}${unidadePath}#website` },\r\n about: { '@id': `${siteURL}#organization` },\r\n description: desc,\r\n };\r\n }\r\n\r\n private getUnidadePath() {\r\n let unidadePath = '';\r\n if (this.unidade && this.unidadePath) {\r\n unidadePath = this.unidade?.path === '/' ? '' : this.unidadePath?.substring(0, this.unidadePath?.length - 1);\r\n }\r\n return unidadePath;\r\n }\r\n\r\n /**\r\n * Obtém a URL canônica da página.\r\n * @returns A URL canônica da página.\r\n */\r\n public getCanonicalHref(): string {\r\n if (!this.canonicalTag) {\r\n this.canonicalTag = this.getCanonicalTag();\r\n }\r\n return this.canonicalTag.href;\r\n }\r\n\r\n /** Cria tag para links canonicals no head */\r\n private createCanonicalTag(): HTMLLinkElement {\r\n const tag = this.document.createElement('link');\r\n tag.setAttribute('rel', 'canonical');\r\n this.document.head.appendChild(tag);\r\n tag.setAttribute('href', this.document.URL);\r\n this.canonicalTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para link canonical existe ou cria se não houver. */\r\n private getCanonicalTag(): HTMLLinkElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLLinkElement;\r\n if (elem && elem.tagName === 'LINK' && elem.rel === 'canonical') {\r\n return elem;\r\n }\r\n }\r\n return this.createCanonicalTag();\r\n }\r\n\r\n /**\r\n * Define link canonical da página\r\n * @param url url canonical\r\n */\r\n public setCanonicalHref(url?: string) {\r\n if (!this.canonicalTag) {\r\n this.canonicalTag = this.getCanonicalTag();\r\n }\r\n\r\n let path = this.document.location.pathname;\r\n\r\n if (this.libConfig?.siteSufix && path.includes(this.libConfig?.siteSufix)) {\r\n path = path.replace(this.libConfig?.siteSufix, '');\r\n }\r\n\r\n if (!path.startsWith('/')) {\r\n path = `/${path}`;\r\n }\r\n\r\n const canonicalUrl = url && this.isCustomCanonical(url) ? url : `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${path}`;\r\n\r\n this.canonicalTag.setAttribute('href', canonicalUrl);\r\n return this;\r\n }\r\n\r\n /**\r\n * Verifica se a URL fornecida é um link canonical personalizado\r\n * @param url URL fornecida\r\n */\r\n public isCustomCanonical(url: string): boolean {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return url.startsWith(siteurl);\r\n }\r\n\r\n /**\r\n * Obtém uma url válida na aplicação proveniente de uma URL gerada\r\n * pelo plugin Yoast para canonical automático.\r\n * Ex.: https://wp.rededorsaoluiz.com.br/brasil/especialidades/cardiologia/\r\n * @param urlFromWpApi URL canonica gerada pelo Yoast Plugin.\r\n */\r\n toLocalCanonical(urlFromWpApi: string): string {\r\n const apiUrl = this.libConfig?.wpUrl ?? '';\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n const unidadeSlug = this.unidadeSlug;\r\n let converted = urlFromWpApi.replace(apiUrl, siteurl);\r\n if (unidadeSlug !== '/' && converted.includes(`/${unidadeSlug}/`)) {\r\n converted = converted.replace(`/${unidadeSlug}/`, `${this.unidadePath}`);\r\n }\r\n return converted;\r\n }\r\n\r\n getPostContent(post: WpPost): string {\r\n const content = post?.acf?.['rdsl_post_content'] ? post?.acf?.rdsl_post_content?.find((content: any) => content.acf_fc_layout === 'text_html') : null;\r\n return content?.content || post.content.rendered || '';\r\n }\r\n\r\n addArticleScript(post: WpPost, scriptName: string): void {\r\n const postContent = this.getPostContent(post);\r\n const postHeaderImage = post?.acf?.['rdsl_post_header_img']\r\n ? {\r\n url: post?.acf?.['rdsl_post_header_img'].url,\r\n width: post?.acf?.['rdsl_post_header_img'].width,\r\n height: post?.acf?.['rdsl_post_header_img'].height,\r\n }\r\n : null;\r\n\r\n const structuredData = {\r\n '@context': 'https://schema.org',\r\n '@type': 'Article',\r\n mainEntityOfPage: `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`,\r\n headline: post.title?.rendered,\r\n datePublished: post.date_gmt,\r\n publisher: {\r\n '@type': 'Organization',\r\n name: 'Rede D’Or',\r\n },\r\n description: post.title?.rendered,\r\n articleBody: removeHtmlTags(he.decode(postContent)),\r\n dateModified: post.modified_gmt,\r\n image: {\r\n '@type': 'ImageObject',\r\n url: postHeaderImage?.url || post.featured_media_path || '',\r\n height: postHeaderImage?.height || '',\r\n width: postHeaderImage?.width || '',\r\n },\r\n author: {\r\n '@type': 'Organization',\r\n name: 'Rede D’Or',\r\n },\r\n wordcount: postContent.split(' ').length,\r\n };\r\n\r\n const script = this.document.createElement('script');\r\n\r\n script.type = 'application/ld+json';\r\n script.id = scriptName;\r\n script.innerHTML = JSON.stringify(structuredData);\r\n\r\n this.document.head.appendChild(script);\r\n }\r\n\r\n removeArticleScript(scriptName: string): void {\r\n const script = this.document.getElementById(scriptName);\r\n script?.remove();\r\n }\r\n\r\n public setUnidade({ unidade = null, unidadeName = '', unidadePath = '', unidadeSlug = '' }: SeoUnidade) {\r\n this.unidade = unidade;\r\n this.unidadeName = unidadeName;\r\n this.unidadePath = unidadePath;\r\n this.unidadeSlug = unidadeSlug;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Request, Response } from 'express';\r\n\r\nexport const REQUEST = new InjectionToken<Request>('REQUEST');\r\nexport const RESPONSE = new InjectionToken<Response>('RESPONSE');\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Response } from 'express';\r\nimport { RESPONSE } from '../../tokens/express.tokens';\r\n\r\nexport interface IServerResponseService {\r\n getHeader(key: string): string;\r\n setHeader(key: string, value: string): this;\r\n setHeaders(dictionary: { [key: string]: string }): this;\r\n appendHeader(key: string, value: string, delimiter?: string): this;\r\n setStatus(code: number, message?: string): this;\r\n setNotFound(message?: string): this;\r\n setError(message?: string): this;\r\n setRedirect(redirectParams?: { statusCode: number; message: string; url?: string }): this;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ServerResponseService implements IServerResponseService {\r\n private response: Response;\r\n\r\n constructor(@Optional() @Inject(RESPONSE) response: any) {\r\n this.response = response;\r\n }\r\n\r\n getHeader(key: string): string {\r\n return this.response.getHeader(key) as string;\r\n }\r\n\r\n setHeader(key: string, value: string): this {\r\n if (this.response) {\r\n this.response.header(key, value);\r\n }\r\n return this;\r\n }\r\n\r\n appendHeader(key: string, value: string, delimiter = ','): this {\r\n if (this.response) {\r\n const current = this.getHeader(key);\r\n if (!current) {\r\n return this.setHeader(key, value);\r\n }\r\n const newValue = [...current.split(delimiter), value].filter((el, i, a) => i === a.indexOf(el)).join(delimiter);\r\n this.response.header(key, newValue);\r\n }\r\n return this;\r\n }\r\n\r\n setHeaders(dictionary: { [key: string]: string }): this {\r\n if (this.response) {\r\n Object.keys(dictionary).forEach((key) => this.setHeader(key, dictionary[key]));\r\n }\r\n return this;\r\n }\r\n\r\n setStatus(code: number, message?: string): this {\r\n if (this.response) {\r\n this.response.statusCode = code;\r\n if (message) {\r\n this.response.statusMessage = message;\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n setNotFound(message = 'Não encontrado'): this {\r\n if (this.response) {\r\n this.response.statusCode = 404;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setUnauthorized(message = 'Não autorizado'): this {\r\n if (this.response) {\r\n this.response.statusCode = 401;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setError(message = 'Erro interno de servidor'): this {\r\n if (this.response) {\r\n this.response.statusCode = 500;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setRedirect(\r\n { statusCode, message, url }: { statusCode?: number; message?: string; url?: string } = {\r\n statusCode: 301,\r\n message: 'Redirecionado permanentemente',\r\n url: undefined,\r\n },\r\n ): this {\r\n if (this.response) {\r\n this.response.statusCode = statusCode || 301;\r\n this.response.statusMessage = message || 'Redirecionado permanentemente';\r\n if (url) {\r\n this.response.locals['redirectUrl'] = url; // Utilizado no ssr para redirect\r\n }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nexport type HttpCacheDirective = 'public' | 'private' | 'no-store' | 'no-cache' | 'must-revalidate' | 'no-transform' | 'proxy-revalidate';\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { LogService } from '../log/log.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SsrLoadingService {\r\n public ssrIsLoading = false;\r\n private _loading = false;\r\n\r\n constructor(\r\n private logService: LogService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) {}\r\n\r\n startLoading(component = '', intervalMs = 200, timeoutMs = 20000) {\r\n if (!isPlatformServer(this.platformId)) return;\r\n\r\n this._loading = true;\r\n this.ssrIsLoading = true;\r\n\r\n const timeout = setTimeout(() => {\r\n this._loading = false;\r\n this.ssrIsLoading = false;\r\n this.logService.logMsg('SSR loading service Timeout ' + component, 'TIMEOUT');\r\n }, timeoutMs);\r\n\r\n const interval = setInterval(() => {\r\n if (this._loading === true) {\r\n this.ssrIsLoading = !this.ssrIsLoading;\r\n } else {\r\n clearInterval(interval);\r\n clearTimeout(timeout);\r\n this.ssrIsLoading = false;\r\n }\r\n }, intervalMs);\r\n }\r\n\r\n stopLoading() {\r\n this._loading = false;\r\n }\r\n}\r\n","import { Injectable, makeStateKey, StateKey, TransferState } from '@angular/core';\r\n// import * as CryptoJS from 'crypto-js'; // Caso seja necessário criptografar novamente, é necessário adicionar o pacote crypto-js nos package.json\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TransferStateService {\r\n private keys = new Map<string, StateKey<string>>();\r\n cryptoKey = '3c2d70ab27a420aca8cf4191611fa4ee';\r\n\r\n constructor(private readonly transferState: TransferState) {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setKey(name: any, response: any | any[]) {\r\n return; // teste removendo transferstate\r\n // let key = this.keys.get(name);\r\n // if (!key) {\r\n // key = makeStateKey(name);\r\n // this.keys.set(name, key);\r\n // }\r\n // const jsonString = JSON.stringify(response);\r\n // const cryptedResponse = CryptoJS.AES.encrypt(jsonString, this.cryptoKey).toString();\r\n // this.transferState.set(key, cryptedResponse);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getKey(name: string, defaultValue: any | any[] = null): any | any[] {\r\n return null; // teste removendo transferstate\r\n // let key = this.keys.get(name);\r\n // if (!key) {\r\n // key = makeStateKey(name);\r\n // this.keys.set(name, key);\r\n // }\r\n // const cryptedData = this.transferState.get(key, defaultValue);\r\n // if (!cryptedData) {\r\n // return defaultValue;\r\n // }\r\n // try {\r\n // const bytes = CryptoJS.AES.decrypt(cryptedData, this.cryptoKey);\r\n // const decryptedResponseJson = bytes.toString(CryptoJS.enc.Utf8);\r\n // const decryptedResponse = JSON.parse(decryptedResponseJson);\r\n // return decryptedResponse;\r\n // } catch (error) {\r\n // return defaultValue;\r\n // }\r\n }\r\n\r\n remove(name: string) {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n this.transferState.remove(key);\r\n }\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HeaderService {\r\n public showSearch = signal(false);\r\n public showSideMenu = signal(false);\r\n public showSearchOpacity = signal(false);\r\n\r\n toggleShowSearch(value?: boolean) {\r\n // reset showSideMenu to not overlap\r\n this.showSideMenu.update(() => false);\r\n\r\n if (typeof value === 'undefined') {\r\n this.showSearch.update((currentValue) => !currentValue);\r\n return;\r\n }\r\n this.showSearch.update(() => value);\r\n }\r\n\r\n toggleShowSearchOpacity(value?: boolean) {\r\n if (typeof value === 'undefined') {\r\n this.showSearchOpacity.update((currentValue) => !currentValue);\r\n return;\r\n }\r\n this.showSearchOpacity.update(() => value);\r\n }\r\n\r\n toggleShowSideMenu(value?: boolean) {\r\n // reset showSearch to not overlap\r\n this.showSearch.update(() => false);\r\n\r\n if (typeof value === 'undefined') {\r\n this.showSideMenu.update((currentValue) => !currentValue);\r\n return;\r\n }\r\n this.showSideMenu.update(() => value);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { RdslAlgoliaMultipleIndex } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaMultipleResults, AlgoliaResult } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaSearchParams } from '../../models/algolia-search-api.model';\r\nimport { Observable, Subscriber } from 'rxjs';\r\n// @ts-ignore\r\nimport { SearchAPISDK } from '@rededor/search-api-sdk/index.js';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlgoliaSearchApiService {\r\n constructor(@Inject(LIB_CONFIG) private libConfig: LibConfig) {}\r\n\r\n searchAPI: any;\r\n\r\n search(query: string, indexName: string, params: AlgoliaSearchParams = {}): Observable<AlgoliaResult<any>> {\r\n if (!this.searchAPI) {\r\n this.initAPI();\r\n }\r\n return new Observable((subscriber) => {\r\n if (indexName) {\r\n this.searchAPI\r\n .search({\r\n indexName,\r\n query,\r\n params,\r\n })\r\n .then(\r\n (response: any) => {\r\n this.subscriberNext(subscriber, response);\r\n },\r\n (err: any) => {\r\n this.subscriberError(subscriber, err);\r\n },\r\n );\r\n } else {\r\n this.subscriberError(subscriber, 'Atenção, você precisa definir um índice para a busca.');\r\n }\r\n });\r\n }\r\n\r\n searchMultipleIndexes(indexes: RdslAlgoliaMultipleIndex[]): Observable<AlgoliaMultipleResults> {\r\n if (!this.searchAPI) {\r\n this.initAPI();\r\n }\r\n return new Observable((subscriber) => {\r\n this.searchAPI.search(indexes).then(\r\n (response: any) => {\r\n this.subscriberNext(subscriber, response);\r\n },\r\n (err: any) => {\r\n this.subscriberError(subscriber, err);\r\n },\r\n );\r\n });\r\n }\r\n\r\n initAPI() {\r\n this.searchAPI = new SearchAPISDK(this.libConfig.environmentName, this.libConfig.siteProject, this.libConfig.client_id);\r\n }\r\n\r\n subscriberNext(subscriber: Subscriber<any>, value: any) {\r\n subscriber.next(value);\r\n subscriber.complete();\r\n subscriber.unsubscribe();\r\n }\r\n\r\n subscriberError(subscriber: Subscriber<any>, message: any) {\r\n subscriber.error(message);\r\n subscriber.complete();\r\n subscriber.unsubscribe();\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class YoutubeService {\r\n scriptId = 'youtubeApi';\r\n\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n ) {}\r\n\r\n setScript(): void {\r\n if (isPlatformBrowser(this.platformId) && !this.document.getElementById(this.scriptId)) {\r\n const script = this.document.createElement('script');\r\n script.id = this.scriptId;\r\n script.src = 'https://www.youtube.com/iframe_api';\r\n this.document.body.appendChild(script);\r\n }\r\n }\r\n\r\n removeScript(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const script = this.document.getElementById(this.scriptId);\r\n script?.remove();\r\n }\r\n }\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { LogService } from '../log/log.service';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\nexport interface MapBoxGeocodingParams {\r\n autocomplete?: boolean;\r\n bbox?: string; // minLon, minLat, maxLon, maxLat\r\n country?: string; // country codes separated by commas\r\n fuzzyMatch?: boolean;\r\n language?: string;\r\n limit?: number; // default: 5, max: 10\r\n proximity?: string; // longitude, latitude\r\n routing?: boolean;\r\n // Types can be comma separated\r\n types?: string; // \"country\" | \"region\" | \"postcode\" | \"district\" | \"place\" | \"locality\" | \"neighborhood\" | \"address\" | \"poi\"\r\n [propName: string]: any;\r\n}\r\n\r\nexport interface MapBoxReverseGeocodingParams {\r\n country?: string; // country codes separated by commas\r\n language?: string;\r\n limit?: number; // default: 5, max: 10\r\n reverseMode?: 'distance' | 'score';\r\n routing?: boolean;\r\n // Types can be comma separated\r\n types?: string; // \"country\" | \"region\" | \"postcode\" | \"district\" | \"place\" | \"locality\" | \"neighborhood\" | \"address\" | \"poi\"\r\n [propName: string]: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MapBoxService {\r\n private mapboxAccessToken = this.libConfig.mapboxAccessToken;\r\n private mapboxSSRAccessToken = this.libConfig.mapboxSSRAccessToken;\r\n private mapboxApiUrl = 'https://api.mapbox.com';\r\n private geocodingEp = 'search/geocode/v6';\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly logService: LogService,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n /**\r\n * Busca geocalizada por nome do local.\r\n * Ex.: barra da tijuca, rio de janeiro - rio de janeiro, brasil\r\n * @param query nome de local para a busca\r\n * @param params parâmetros opcionais de busca e filtro\r\n */\r\n forwardGeocoding(query: string, params: MapBoxGeocodingParams = {}, logContext?: string): Observable<any> {\r\n this.logMapbox('forwardGeocoding', logContext);\r\n if (query.length >= 256) {\r\n return throwError(() => 'Query length exceeds 255 characters.');\r\n }\r\n const url = `${this.mapboxApiUrl}/${this.geocodingEp}/forward?q=${query}`;\r\n params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;\r\n return this.http.get(url, { params, headers: this.getHeaders() });\r\n }\r\n\r\n /**\r\n * Busca local por longitude e latitude\r\n * @param lng formato longitude\r\n * @param lat formato latitude\r\n * @param params parâmetros opcionais de busca e filtro\r\n */\r\n reverseGeocoding(lng: string, lat: string, params: MapBoxReverseGeocodingParams = {}, logContext?: string): Observable<any> {\r\n this.logMapbox('reverseGeocoding', logContext);\r\n const url = `${this.mapboxApiUrl}/${this.geocodingEp}/reverse?longitude=${lng}&latitude=${lat}`;\r\n params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;\r\n return this.http.get(url, { params });\r\n }\r\n\r\n private logMapbox(callerFunction: string, context = 'no-context') {\r\n const platform = isPlatformServer(this.platformId) ? 'server' : 'browser';\r\n this.logService.logMsg(`${platform} - ${callerFunction} - ${context}`, 'MAPBOX');\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n return new HttpHeaders().set('Referrer-Policy', 'origin');\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { MapBoxReverseGeocodingParams, MapBoxService } from '../mapbox/mapbox.service';\r\nimport { BehaviorSubject, map, Observable } from 'rxjs';\r\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { LogService } from '../log/log.service';\r\nimport checkSafariAgent from '../../helpers/check-safari-agent.func';\r\nimport { getCircularReplacer } from '../../helpers';\r\n\r\nexport enum GeolocationPermissions {\r\n GRANTED = 'granted',\r\n PROMPT = 'prompt',\r\n DENIED = 'denied',\r\n}\r\n\r\nexport interface Geolocation {\r\n lat: number;\r\n lng: number;\r\n}\r\n\r\nexport interface Address {\r\n city: string;\r\n state: {\r\n name: string;\r\n shortCode: string;\r\n };\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GeolocService {\r\n private _mapboxGeocodingParams: MapBoxReverseGeocodingParams = {\r\n types: 'place',\r\n limit: 1,\r\n language: 'pt-BR',\r\n country: 'BR',\r\n };\r\n\r\n private _hasConsent = false;\r\n private _switchStatus = false;\r\n public get switchStatus(): boolean {\r\n return this._switchStatus;\r\n }\r\n private _address: Address | null = null;\r\n public get address(): Address | null {\r\n return this._address;\r\n }\r\n\r\n private _permission: PermissionState = GeolocationPermissions.PROMPT;\r\n public get permission(): PermissionState {\r\n return this._permission;\r\n }\r\n\r\n public geolocation: BehaviorSubject<Geolocation | null> = new BehaviorSubject<Geolocation | null>(null);\r\n public isChecked: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false); // Emite true quando o geoloc está estável\r\n\r\n private _isSafariAgent: boolean = false;\r\n private _disableSwitch = false;\r\n public get disableSwitch(): boolean {\r\n return this._disableSwitch;\r\n }\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private readonly document: Document,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n private mapboxService: MapBoxService,\r\n private readonly logService: LogService,\r\n ) {\r\n if (isPlatformServer(this.platformId)) {\r\n this.isChecked.next(true);\r\n return;\r\n }\r\n\r\n this._isSafariAgent = checkSafariAgent();\r\n if (this._isSafariAgent) {\r\n this._hasConsent = this.checkACookieExists('geolocation_consent');\r\n this.initGeolocation(this._hasConsent);\r\n return;\r\n }\r\n\r\n navigator?.permissions\r\n ?.query({ name: 'geolocation' })\r\n .then((permission) => {\r\n this._permission = permission.state;\r\n this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);\r\n\r\n permission.onchange = () => {\r\n this._permission = permission.state;\r\n this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);\r\n };\r\n })\r\n .catch((error) => {\r\n this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');\r\n this._permission = GeolocationPermissions.DENIED;\r\n this._disableSwitch = true;\r\n this.initGeolocation(false);\r\n });\r\n }\r\n\r\n initGeolocation(geolocAllowed = false): void {\r\n this._switchStatus = true;\r\n if (geolocAllowed) {\r\n this.getCurrentPosition().subscribe({\r\n next: (position) => {\r\n this._disableSwitch = false;\r\n this.setGeolocation(position);\r\n this.setConsentCookie(true, 3650);\r\n this._hasConsent = true;\r\n this._permission = GeolocationPermissions.GRANTED;\r\n },\r\n error: () => {\r\n if (this._permission === GeolocationPermissions.DENIED) {\r\n this._disableSwitch = true;\r\n this.setConsentCookie(false, 15);\r\n }\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._hasConsent = false;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n },\r\n });\r\n } else {\r\n if (this.permission === GeolocationPermissions.DENIED) {\r\n this._disableSwitch = true;\r\n this.setConsentCookie(false, 15);\r\n }\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._hasConsent = false;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n }\r\n }\r\n\r\n private getCurrentPosition(): Observable<GeolocationPosition> {\r\n return new Observable((observer) => {\r\n navigator.geolocation.getCurrentPosition(\r\n (position) => {\r\n observer.next(position);\r\n observer.complete();\r\n },\r\n (error) => observer.error(error),\r\n { enableHighAccuracy: true },\r\n );\r\n });\r\n }\r\n\r\n private setGeolocation(position: GeolocationPosition): void {\r\n if (position) {\r\n if (position.coords.latitude === this.geolocation.value?.lat && position.coords.longitude === this.geolocation.value?.lng) return;\r\n\r\n this.geolocation.next({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n });\r\n\r\n this.getMapboxAdress()\r\n .pipe(\r\n map((response) => {\r\n const city = response?.features[0]?.properties?.name;\r\n const state = {\r\n name: response?.features[0]?.properties?.context?.region?.name,\r\n shortCode: response?.features[0]?.properties?.context?.region?.region_code,\r\n };\r\n return { city, state };\r\n }),\r\n )\r\n .subscribe({\r\n next: (response) => {\r\n this._address = response;\r\n this._switchStatus = true;\r\n this.isChecked.next(true);\r\n },\r\n error: (error) => {\r\n this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');\r\n this._switchStatus = false;\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this.isChecked.next(true);\r\n },\r\n });\r\n } else {\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n }\r\n }\r\n\r\n private getMapboxAdress(): Observable<any> {\r\n const lng = `${this.geolocation.value?.lng}`;\r\n const lat = `${this.geolocation.value?.lat}`;\r\n return this.mapboxService.reverseGeocoding(lng, lat, this._mapboxGeocodingParams, 'geolocalizacao.service getMapboxAdress');\r\n }\r\n\r\n checkACookieExists(name: string): boolean {\r\n if (isPlatformServer(this.platformId) || typeof this.document === 'undefined' || !this.document?.cookie) {\r\n return false;\r\n }\r\n return this.document.cookie\r\n .split(';')\r\n .map((item) => item.trim())\r\n .some((item) => item.trim().startsWith(name));\r\n }\r\n\r\n private setConsentCookie(status: boolean, days: number): void {\r\n if (this.getCookieValue('geolocation_consent') !== status.toString()) {\r\n const lifetime = new Date(Date.now() + days * 86400000).toUTCString();\r\n this.document.cookie = `geolocation_consent=${status}; path=/; expires=${lifetime}; SameSite=None; Secure`;\r\n }\r\n }\r\n\r\n private getCookieValue(prop: string): string {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const value = this.document.cookie\r\n .split(';')\r\n .map((item) => item.trim())\r\n .find((item) => item.startsWith(`${prop}=`));\r\n\r\n return value ? value.slice(prop.length + 1) : '';\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, ElementRef, AfterViewInit, ViewEncapsulation, Inject } from '@angular/core';\r\nimport { CuraService, PrivacyToolsService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterTheme } from './models/FooterTheme.model';\r\nimport { getFooterTheme } from './helpers/footerTheme.func';\r\nimport { MenuItem, MenuSocialMedia } from '../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'footer[sl-ftr]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './footer.component.html',\r\n styleUrl: './footer.component.scss',\r\n})\r\nexport class FooterComponent implements AfterViewInit {\r\n @Input()\r\n get project() {\r\n return this._project;\r\n }\r\n set project(value: string) {\r\n this._project = value;\r\n this.updateFooterTheme();\r\n }\r\n private _project: string = 'site';\r\n\r\n @Input()\r\n get theme() {\r\n return this._theme;\r\n }\r\n set theme(value: string) {\r\n this._theme = value;\r\n this.updateFooterTheme();\r\n }\r\n private _theme: string = 'default';\r\n\r\n @Input() disclaimer: string = '';\r\n @Input() linkPrivacyFooter: string = '';\r\n @Output() footerPrivacyClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() footerCookieClick: EventEmitter<Event> = new EventEmitter();\r\n currentYear: number = new Date().getFullYear();\r\n\r\n @Input() logo: any = null;\r\n @Input() partnerLogo: any = null;\r\n @Input() phone: string = '';\r\n @Input() socialMenu: MenuSocialMedia[] = [];\r\n @Input() get logoWidth() {\r\n return this._logoWidth;\r\n }\r\n set logoWidth(value: number) {\r\n this._logoWidth = value;\r\n this.updateLogoWidth();\r\n }\r\n private _logoWidth: number = 72;\r\n\r\n @Output() footerSocialMediaClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @Input() footerMenu: MenuItem[] = [];\r\n @Output() footerMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(\r\n private curaService: CuraService,\r\n public privacyTools: PrivacyToolsService,\r\n private elementRef: ElementRef,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n this.updateFooterTheme();\r\n }\r\n\r\n private updateLogoWidth() {\r\n this.elementRef.nativeElement.style.setProperty('--logo-width', `${this.logoWidth}px`);\r\n }\r\n\r\n private updateFooterTheme() {\r\n const footerTheme: FooterTheme = getFooterTheme(this.project, this.theme, this.curaService);\r\n Object.entries(footerTheme).forEach(([key, value]) => {\r\n Object.entries(value).forEach(([prop, val]) => {\r\n const cssVar = `--${key}-${prop}`;\r\n this.elementRef.nativeElement.style.setProperty(cssVar, val as string);\r\n });\r\n });\r\n }\r\n\r\n footerSocialMediaClicked(event: Event) {\r\n this.footerSocialMediaClick.emit(event);\r\n }\r\n\r\n toggleSubMenu(event: Event, menu: Partial<MenuItem>) {\r\n event.stopPropagation();\r\n menu.active = !menu.active;\r\n }\r\n\r\n footerMenuItemClicked(event: Event) {\r\n this.footerMenuItemClick.emit(event);\r\n }\r\n\r\n footerPrivacyClicked(event: Event) {\r\n this.footerPrivacyClick.emit(event);\r\n }\r\n\r\n footerCookieClicked(event: Event) {\r\n this.footerCookieClick.emit(event);\r\n }\r\n}\r\n","<div class=\"sl-ftr-content\">\r\n <div>\r\n <div class=\"sl-ftr-contact\">\r\n @if (logo) {\r\n <div class=\"logo\">\r\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" [title]=\"logo?.title\" loading=\"lazy\" fetchpriority=\"low\" />\r\n </div>\r\n }\r\n @if (partnerLogo) {\r\n <div class=\"partner-logo\">\r\n <img [src]=\"partnerLogo?.url\" [alt]=\"partnerLogo?.alt\" [title]=\"partnerLogo?.title\" loading=\"lazy\" fetchpriority=\"low\" />\r\n </div>\r\n }\r\n @if (phone) {\r\n <div class=\"phone\">\r\n <a rdsitelink href=\"tel:{{ phone }}\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#phone'\"></use>\r\n </svg>\r\n {{ phone }}\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n\r\n <nav class=\"sl-ftr-medias\">\r\n <ul>\r\n @for (social of socialMenu; track social.title) {\r\n <li>\r\n <a [href]=\"social.link\" rdsitelink [title]=\"social.title\" (click)=\"footerSocialMediaClicked($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + social.icon\"></use>\r\n </svg>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n\r\n <div class=\"content-menu\">\r\n @if (footerMenu.length) {\r\n <div class=\"sl-ftr-menu\">\r\n <nav>\r\n <ul class=\"sl-ftr-menu-list\">\r\n @for (menu of footerMenu; track menu.title) {\r\n <li class=\"sl-ftr-menu-list-item\">\r\n @if (menu.title) {\r\n <div class=\"sl-ftr-menu-item\" [ngClass]=\"{ 'have-children': menu.children?.length }\" (click)=\"toggleSubMenu($event, menu)\">\r\n <a\r\n class=\"sl-ftr-menu-item-link\"\r\n [href]=\"menu.url\"\r\n rdsitelink\r\n [title]=\"menu.title\"\r\n (click)=\"toggleSubMenu($event, menu); footerMenuItemClicked($event)\"\r\n >\r\n {{ menu.title }}\r\n </a>\r\n\r\n @if (menu.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (menu.active ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </div>\r\n\r\n @if (menu.children?.length) {\r\n <ul class=\"sl-ftr-menu-item-children\" [ngClass]=\"{ closed: !menu.active }\">\r\n @for (submenu of menu.children; track submenu.title) {\r\n <li class=\"sl-ftr-menu-item-children-item\">\r\n <div class=\"sl-ftr-menu-item alt\">\r\n <a class=\"sl-ftr-menu-item-link\" [href]=\"submenu.url\" rdsitelink [title]=\"submenu.title\" (click)=\"footerMenuItemClicked($event)\">\r\n {{ submenu.title }}\r\n </a>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n<div class=\"sl-ftr-disc\">\r\n <div class=\"disc-content\">\r\n <div class=\"disc-content-copy\">©{{ currentYear }} {{ disclaimer }}</div>\r\n <ul class=\"disc-content-links\">\r\n <li>\r\n <a [href]=\"linkPrivacyFooter || '#'\" target=\"_blank\" data-testid=\"_avisoPrivacidade\" (click)=\"footerPrivacyClicked($event)\"> Aviso de Privacidade </a>\r\n </li>\r\n <li>\r\n <a (click)=\"privacyTools.openCookieBanner(); footerCookieClicked($event)\" data-testid=\"_avisoCookies\"> Aviso de Cookies </a>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n","import { CuraService } from '../../../services';\r\nimport { HeaderTheme } from '../models/HeaderTheme.model';\r\n\r\nexport const getHeaderTheme = (project: string = 'site', themeStyle: string = 'default', curaService: CuraService) => {\r\n const theme: HeaderTheme = {\r\n hdr: {},\r\n 'hdr-aux': {},\r\n 'hdr-act': {},\r\n 'hdr-main': {},\r\n 'hdr-side': {},\r\n };\r\n\r\n const [primaryLighter, primaryLight, primaryBase, primaryDark, primaryDarker] = [\r\n curaService.getColor('primary-lighter'),\r\n curaService.getColor('primary-light'),\r\n curaService.getColor('primary-base'),\r\n curaService.getColor('primary-dark'),\r\n curaService.getColor('primary-darker'),\r\n ];\r\n const [accentLighter, accentLight, accentBase] = [\r\n curaService.getColor('accent-lighter'),\r\n curaService.getColor('accent-light'),\r\n curaService.getColor('accent-base'),\r\n ];\r\n const [neutralPurewhite, neutralBase] = [curaService.getColor('neutral-purewhite'), curaService.getColor('neutral-base')];\r\n\r\n switch (project) {\r\n case 'site':\r\n if (themeStyle === 'default') {\r\n theme.hdr = {\r\n 'bg-color': primaryBase,\r\n 'over-bg-color': primaryDarker,\r\n };\r\n theme['hdr-aux'] = {\r\n 'bg-color': primaryBase,\r\n 'container-bg-color': primaryDarker,\r\n 'drop-bg-color': neutralPurewhite,\r\n color: neutralPurewhite,\r\n hover: accentLight,\r\n active: accentBase,\r\n 'color-alt': primaryLighter,\r\n 'hover-alt': primaryLight,\r\n 'active-alt': primaryBase,\r\n };\r\n theme['hdr-act'] = {\r\n 'bg-color': neutralBase,\r\n 'items-bg-color': neutralPurewhite,\r\n 'items-color': primaryBase,\r\n 'items-hover': primaryLight,\r\n 'items-active': primaryDark,\r\n };\r\n theme['hdr-main'] = {\r\n 'bg-color': primaryBase,\r\n color: neutralPurewhite,\r\n hover: primaryLighter,\r\n 'bg-hover': primaryDarker,\r\n active: primaryLight,\r\n 'dd-bg-color': primaryDarker,\r\n 'dd-color': neutralPurewhite,\r\n 'dd-icon-color': primaryLight,\r\n 'dd-alt-color': primaryLighter,\r\n 'dd-alt-hover': neutralPurewhite,\r\n 'dd-lv2-content-bg': primaryBase,\r\n 'dd-lv2-bg': primaryDarker,\r\n 'dd-lv3-bg': primaryBase,\r\n 'dd-lv4-bg': primaryDark,\r\n 'dd-cta-bg': neutralPurewhite,\r\n 'dd-cta-color': primaryBase,\r\n };\r\n theme['hdr-side'] = {\r\n 'bg-color': primaryDarker,\r\n 'border-bottom': primaryBase,\r\n 'open-color': primaryLight,\r\n color: neutralPurewhite,\r\n hover: accentLighter,\r\n active: accentLight,\r\n 'alt-color': primaryLighter,\r\n 'alt-hover': neutralPurewhite,\r\n 'alt-active': primaryLight,\r\n };\r\n } else {\r\n theme.hdr = {\r\n 'bg-color': neutralPurewhite,\r\n 'over-bg-color': primaryDarker,\r\n };\r\n theme['hdr-aux'] = {\r\n 'bg-color': primaryDark,\r\n 'container-bg-color': primaryBase,\r\n 'drop-bg-color': neutralPurewhite,\r\n color: neutralPurewhite,\r\n hover: accentLight,\r\n active: accentBase,\r\n 'color-alt': neutralPurewhite,\r\n 'hover-alt': primaryLighter,\r\n 'active-alt': primaryLight,\r\n };\r\n theme['hdr-act'] = {\r\n 'bg-color': primaryBase,\r\n 'items-bg-color': primaryDark,\r\n 'items-color': primaryLight,\r\n 'items-hover': primaryLighter,\r\n 'items-active': primaryBase,\r\n };\r\n theme['hdr-main'] = {\r\n 'bg-color': neutralPurewhite,\r\n color: primaryBase,\r\n hover: primaryLighter,\r\n 'bg-hover': primaryDarker,\r\n active: primaryLight,\r\n 'dd-bg-color': primaryDarker,\r\n 'dd-color': neutralPurewhite,\r\n 'dd-icon-color': primaryLight,\r\n 'dd-alt-color': primaryLighter,\r\n 'dd-alt-hover': neutralPurewhite,\r\n 'dd-lv2-content-bg': primaryBase,\r\n 'dd-lv2-bg': primaryDarker,\r\n 'dd-lv3-bg': primaryBase,\r\n 'dd-lv4-bg': primaryDark,\r\n 'dd-cta-bg': neutralPurewhite,\r\n 'dd-cta-color': primaryBase,\r\n };\r\n theme['hdr-side'] = {\r\n 'bg-color': primaryDarker,\r\n 'border-bottom': primaryBase,\r\n 'open-color': primaryLight,\r\n color: neutralPurewhite,\r\n hover: accentLighter,\r\n active: accentLight,\r\n 'alt-color': primaryLighter,\r\n 'alt-hover': neutralPurewhite,\r\n 'alt-active': primaryLight,\r\n };\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return theme;\r\n};\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-overlay',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './overlay.component.html',\r\n styleUrl: './overlay.component.scss',\r\n})\r\nexport class OverlayComponent {\r\n @Output() overlayClick: EventEmitter<any> = new EventEmitter();\r\n\r\n overlayClicked() {\r\n this.overlayClick.emit();\r\n }\r\n}\r\n","<div class=\"rdsite-overlay\" (click)=\"overlayClicked()\"></div>\r\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { debounceTime, Subscription } from 'rxjs';\r\nimport { CuraService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-search',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './search.component.html',\r\n styleUrl: './search.component.scss',\r\n})\r\nexport class SearchComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() searchControl = new UntypedFormControl('');\r\n @Input() showSearchButtonMobile = true;\r\n @Input() debounceTime = 300;\r\n @Input() label: string = '';\r\n @Input() canClean = false;\r\n @Output() controlBlur = new EventEmitter();\r\n @Output() controlFocus = new EventEmitter();\r\n @Output() controlReset = new EventEmitter();\r\n @Output() termChange: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() enterPress: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n _enable = true;\r\n @Input()\r\n get enable(): boolean {\r\n return this._enable;\r\n }\r\n set enable(value: boolean) {\r\n this._enable = value;\r\n this.setControlState();\r\n }\r\n\r\n _loading = false;\r\n @Input()\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n set loading(value: boolean) {\r\n this._loading = value;\r\n }\r\n\r\n @Input() setFocus = false;\r\n focus = false;\r\n\r\n controlSubscription: Subscription | null = null;\r\n\r\n @ViewChild('searchInput') searchInput?: ElementRef<HTMLInputElement>;\r\n\r\n @HostBinding('style') style = {\r\n '--color': this.curaService.getColor('neutral-black'),\r\n };\r\n\r\n constructor(\r\n private deviceService: DeviceDetectorService,\r\n private curaService: CuraService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.setFocus) this.setInitialFocus();\r\n }\r\n\r\n ngOnInit() {\r\n this.controlSubscription = this.searchControl.valueChanges.pipe(debounceTime(this.debounceTime)).subscribe((term) => this.onChange(term));\r\n }\r\n\r\n setInitialFocus() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.searchInput?.nativeElement?.focus();\r\n this.onFocus();\r\n }\r\n }\r\n\r\n onChange(term: string) {\r\n this.termChange.emit(term);\r\n }\r\n\r\n onFocus() {\r\n this.focus = true;\r\n this.controlFocus.emit();\r\n }\r\n\r\n onBlur() {\r\n this.focus = false;\r\n this.controlBlur.emit();\r\n }\r\n\r\n onSubmit($event: any) {\r\n if (this.searchControl.value) {\r\n this.enterPress.emit($event.target.value);\r\n if (this.deviceService.isMobile() && this.showSearchButtonMobile) {\r\n this.focus = false;\r\n $event.target.blur();\r\n }\r\n }\r\n }\r\n\r\n onSubmitByClick() {\r\n if (this.searchControl.value) {\r\n this.enterPress.emit(this.searchControl.value);\r\n if (this.deviceService.isMobile() && this.showSearchButtonMobile) {\r\n this.focus = false;\r\n }\r\n }\r\n }\r\n\r\n setControlState() {\r\n if (this.enable) {\r\n this.searchControl.enable();\r\n } else {\r\n this.searchControl.disable();\r\n }\r\n }\r\n\r\n clean() {\r\n this.searchControl.setValue('');\r\n this.controlReset.emit();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.controlSubscription?.unsubscribe();\r\n }\r\n}\r\n","<div class=\"rdsite-search-control\" [ngClass]=\"{ disabled: !enable || !searchControl.enabled, focus: focus }\">\r\n <label class=\"label-hidden\">{{ label }}</label>\r\n <input\r\n #searchInput\r\n class=\"rdsite-search-control-input\"\r\n [type]=\"'text'\"\r\n name=\"term\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"label\"\r\n [formControl]=\"searchControl\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.enter)=\"onSubmit($event)\"\r\n enterkeyhint=\"search\"\r\n (search)=\"onSubmit($event)\"\r\n />\r\n\r\n <div class=\"rdsite-search-control-icon\">\r\n <cura-icon\r\n name=\"closeCircle\"\r\n size=\"20\"\r\n color=\"primary-base\"\r\n (click)=\"clean()\"\r\n class=\"close\"\r\n [ngClass]=\"{ active: (searchControl.value || canClean) && !loading }\"\r\n ></cura-icon>\r\n <cura-icon name=\"search\" size=\"20\" color=\"primary-base\" (click)=\"onSubmitByClick()\" class=\"search\" [ngClass]=\"{ active: !loading }\"></cura-icon>\r\n @if (loading) {\r\n <cura-loader-circle color=\"primary\" size=\"small\"></cura-loader-circle>\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-logo]',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './header-logo.component.html',\r\n styleUrl: './header-logo.component.scss',\r\n})\r\nexport class HeaderLogoComponent {\r\n @Input() href: string = '';\r\n @Input() title: string = '';\r\n @Input() alt: string = '';\r\n @Input() src: string = '';\r\n @Output() headerLogoClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n headerLogoClicked(event: Event) {\r\n this.headerLogoClick.emit(event);\r\n }\r\n}\r\n","<a [href]=\"href\" (click)=\"headerLogoClicked($event)\" rdsitelink>\r\n <img loading=\"eager\" fetchpriority=\"high\" [src]=\"src\" [alt]=\"alt\" [title]=\"title\" />\r\n</a>\r\n","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-act]',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './header-action-menu.component.html',\r\n styleUrl: './header-action-menu.component.scss',\r\n})\r\nexport class HeaderActionMenuComponent {\r\n @Input() loginUrl: string = '';\r\n @Input() showSearch: boolean = true;\r\n @Input() homeUrl: string = '';\r\n @Output() headerLoginClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(\r\n public headerService: HeaderService,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n headerLoginClicked(event: Event) {\r\n this.headerLoginClick.emit(event);\r\n }\r\n}\r\n","@if (loginUrl) {\r\n <div class=\"sl-hdr-act-login\">\r\n <a [href]=\"loginUrl\" aria-label=\"Entrar\" (click)=\"headerLoginClicked($event)\" rdsitelink class=\"sl-hdr-act-login-link\">\r\n <svg class=\"icon-mobile\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#profileCircle'\"></use>\r\n </svg>\r\n <svg class=\"icon-desktop\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#profileCircle'\"></use>\r\n </svg>\r\n <span>ENTRAR</span>\r\n </a>\r\n </div>\r\n}\r\n@if (homeUrl) {\r\n <div class=\"sl-hdr-act-home\">\r\n <a [href]=\"homeUrl\" class=\"sl-hdr-act-home-link\" aria-label=\"Página inicial\" rdsitelink> Portal Rede D’Or </a>\r\n </div>\r\n}\r\n\r\n<div class=\"sl-hdr-act-acts\">\r\n @if (showSearch) {\r\n <button type=\"button\" aria-label=\"Buscar\" class=\"sl-hdr-act-acts-button\" (click)=\"headerService.toggleShowSearch()\">\r\n @if (!headerService.showSearch()) {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#search'\"></use>\r\n </svg>\r\n <span>BUSCAR</span>\r\n } @else {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#close'\"></use>\r\n </svg>\r\n <span>FECHAR</span>\r\n }\r\n </button>\r\n }\r\n <button type=\"button\" aria-label=\"Abrir menu lateral\" class=\"sl-hdr-act-acts-button\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#menuHamburguer'\"></use>\r\n </svg>\r\n </button>\r\n</div>\r\n","import { CommonModule, DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport { Component, effect, EventEmitter, Inject, Input, Output, PLATFORM_ID, ViewEncapsulation, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { getHeaderTheme } from './helpers/headerTheme.func';\r\nimport { HeaderTheme } from './models/HeaderTheme.model';\r\nimport { HeaderService } from './services/header.service';\r\nimport { OverlayComponent } from '../overlay/overlay.component';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { SearchComponent } from '../search/search.component';\r\nimport { HeaderLogoComponent } from './components/header-logo/header-logo.component';\r\nimport { HeaderActionMenuComponent } from './components/header-action-menu/header-action-menu.component';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'header[sl-hdr]',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent, SearchComponent, HeaderLogoComponent, HeaderActionMenuComponent],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header.component.html',\r\n styleUrl: './header.component.scss',\r\n})\r\nexport class HeaderComponent implements AfterViewInit {\r\n @Input()\r\n get project() {\r\n return this._project;\r\n }\r\n set project(value: string) {\r\n this._project = value;\r\n this.updateHeaderTheme();\r\n }\r\n private _project: string = 'site';\r\n\r\n @Input()\r\n get theme() {\r\n return this._theme;\r\n }\r\n set theme(value: string) {\r\n this._theme = value;\r\n this.updateHeaderTheme();\r\n }\r\n private _theme: string = 'default';\r\n\r\n @Input() loginUrl: string = '';\r\n @Input() homeUrl: string = '';\r\n @Input() showSearch: boolean = true;\r\n @Input() logo: { src: string; alt: string; title: string; href: string } = { src: '', alt: '', title: '', href: '' };\r\n\r\n scrollTop = 0;\r\n\r\n @Input() searchControl: UntypedFormControl | null = null;\r\n\r\n @Output() searchChange: EventEmitter<string> = new EventEmitter();\r\n\r\n constructor(\r\n private curaService: CuraService,\r\n public headerService: HeaderService,\r\n private elementRef: ElementRef,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) platformId: object,\r\n ) {\r\n effect(() => {\r\n if (isPlatformServer(platformId) || !this.document.defaultView) return;\r\n if (this.headerService.showSearch() || this.headerService.showSideMenu()) {\r\n this.scrollTop = this.document.documentElement.scrollTop ?? 0;\r\n this.document.defaultView.onscroll = () => {\r\n this.document.documentElement.scrollTo({ top: this.scrollTop, behavior: 'auto' });\r\n };\r\n } else {\r\n this.document.defaultView.onscroll = null;\r\n this.scrollTop = 0;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.updateHeaderTheme();\r\n }\r\n\r\n private updateHeaderTheme() {\r\n const headerTheme: HeaderTheme = getHeaderTheme(this.project, this.theme, this.curaService);\r\n Object.entries(headerTheme).forEach(([key, value]) => {\r\n Object.entries(value).forEach(([prop, val]) => {\r\n const cssVar = `--${key}-${prop}`;\r\n this.elementRef.nativeElement.style.setProperty(cssVar, val as string);\r\n });\r\n });\r\n }\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSearch(false);\r\n }\r\n\r\n doSearch(event: any) {\r\n this.searchChange.emit(event);\r\n this.headerService.toggleShowSearch(false);\r\n }\r\n}\r\n","<div class=\"sl-hdr-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div sl-hdr-logo [href]=\"logo.href\" [title]=\"logo.title\" [alt]=\"logo.alt\" [src]=\"logo.src\" (click)=\"overlayClick()\"></div>\r\n\r\n <nav class=\"sl-hdr-aux\" (click)=\"overlayClick()\">\r\n <ng-content select=\"div[sl-hdr-aux]\"></ng-content>\r\n </nav>\r\n\r\n <div sl-hdr-act [loginUrl]=\"loginUrl\" [showSearch]=\"showSearch\" [homeUrl]=\"homeUrl\"></div>\r\n\r\n <nav class=\"sl-hdr-main\">\r\n <ng-content select=\"ul[sl-hdr-main]\"></ng-content>\r\n </nav>\r\n\r\n <ng-content select=\"div[sl-hdr-side]\"></ng-content>\r\n\r\n @if (searchControl) {\r\n <rdsite-search\r\n class=\"sl-hdr-search\"\r\n [searchControl]=\"searchControl\"\r\n [label]=\"'O que você procura?'\"\r\n [debounceTime]=\"1500\"\r\n [setFocus]=\"true\"\r\n (enterPress)=\"doSearch($event)\"\r\n >\r\n </rdsite-search>\r\n }\r\n</div>\r\n\r\n<rdsite-overlay\r\n class=\"search-overlay\"\r\n [ngClass]=\"{ active: headerService.showSearch(), opacity: headerService.showSearchOpacity() }\"\r\n (overlayClick)=\"overlayClick()\"\r\n></rdsite-overlay>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-aux]',\r\n standalone: true,\r\n imports: [CommonModule],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-aux-menu.component.html',\r\n styleUrl: './header-aux-menu.component.scss',\r\n})\r\nexport class HeaderAuxMenuComponent {}\r\n","<ng-content select=\"ul[sl-hdr-aux-container]\"></ng-content>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ul[sl-hdr-aux-container]',\r\n standalone: true,\r\n imports: [CommonModule],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-aux-menu-container.component.html',\r\n styleUrl: './header-aux-menu-container.component.scss',\r\n})\r\nexport class HeaderAuxMenuContainerComponent {\r\n @Input() onlyDesktop: boolean = false;\r\n}\r\n","<ng-content select=\"li[sl-hdr-aux-item]\"></ng-content>\r\n<ng-content select=\"li#geoloc\"></ng-content>\r\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-aux-item-dropdown]',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-aux-menu-item-dropdown.component.html',\r\n styleUrl: './header-aux-menu-item-dropdown.component.scss',\r\n})\r\nexport class HeaderAuxMenuItemDropdownComponent {\r\n @Input() items: MenuItem[] = [];\r\n @Output() headerAuxMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n headerAuxMenuItemDDClicked(event: Event) {\r\n this.headerAuxMenuItemDDClick.emit(event);\r\n }\r\n}\r\n","<ul>\r\n @for (dropdownItem of items; track dropdownItem.title) {\r\n <li class=\"dropdown-item\">\r\n <a [href]=\"dropdownItem.url\" (click)=\"headerAuxMenuItemDDClicked($event)\" rdsitelink>{{ dropdownItem.title }}</a>\r\n </li>\r\n }\r\n</ul>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { HeaderAuxMenuItemDropdownComponent } from '../header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'li[sl-hdr-aux-item]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, HeaderAuxMenuItemDropdownComponent],\r\n encapsulation: ViewEncapsulation.None,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './header-aux-menu-item.component.html',\r\n styleUrl: './header-aux-menu-item.component.scss',\r\n})\r\nexport class HeaderAuxMenuItemComponent {\r\n @Input() item: MenuItem | null = null;\r\n @Input() altStyle: boolean = false;\r\n @Input() onlyDesktop: boolean = false;\r\n @Output() headerAuxMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerAuxMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n isMenuHover: boolean = false;\r\n isDropdownHover: boolean = false;\r\n\r\n constructor(@Inject(LIB_CONFIG) public libConfig: LibConfig) {}\r\n\r\n headerAuxMenuItemClicked(event: Event) {\r\n this.headerAuxMenuItemClick.emit(event);\r\n }\r\n\r\n headerAuxMenuItemDDClicked(event: Event) {\r\n this.headerAuxMenuItemDDClick.emit(event);\r\n }\r\n\r\n btnHoverChange(value: boolean) {\r\n this.isMenuHover = value;\r\n }\r\n\r\n dropdownHoverChange(value: boolean) {\r\n this.isDropdownHover = value;\r\n }\r\n}\r\n","@if (item) {\r\n <a\r\n class=\"sl-hdr-aux-item-link\"\r\n [ngClass]=\"{\r\n hover: isMenuHover || isDropdownHover,\r\n alt: altStyle,\r\n }\"\r\n (mouseenter)=\"btnHoverChange(true)\"\r\n (mouseleave)=\"btnHoverChange(false)\"\r\n [href]=\"item.url\"\r\n (click)=\"headerAuxMenuItemClicked($event)\"\r\n rdsitelink\r\n >\r\n {{ item.title }}\r\n @if (item.children?.length) {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (isMenuHover || isDropdownHover ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n sl-hdr-aux-item-dropdown\r\n class=\"sl-hdr-aux-item-dropdown\"\r\n [ngStyle]=\"{ display: isMenuHover || isDropdownHover ? 'block' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n [items]=\"item.children ?? []\"\r\n (headerAuxMenuItemDDClick)=\"headerAuxMenuItemDDClicked($event)\"\r\n ></div>\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ul[sl-hdr-main]',\r\n standalone: true,\r\n imports: [],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-main-menu.component.html',\r\n styleUrl: './header-main-menu.component.scss',\r\n})\r\nexport class HeaderMainMenuComponent {}\r\n","<ng-content select=\"li[sl-hdr-main-item]\"></ng-content>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, OnDestroy, Output, signal, ViewEncapsulation } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-main-item-dropdown]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-main-menu-item-dropdown.component.html',\r\n styleUrl: './header-main-menu-item-dropdown.component.scss',\r\n})\r\nexport class HeaderMainMenuItemDropdownComponent implements OnDestroy {\r\n @Input() item: MenuItem | null = null;\r\n @Output() headerMainMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuHighlightDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuCtaDDClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n // Também é controlado pelo HeaderMainMenuItemComponent\r\n opened = signal(false);\r\n\r\n selectedLv2Item: MenuItem | null = null;\r\n selectedLv3Item: MenuItem | null = null;\r\n lv2Item$ = new Subject<{ item: MenuItem | null; list: MenuItem[] }>();\r\n lv3Item$ = new Subject<{ item: MenuItem | null; list: MenuItem[] }>();\r\n lv2ItemSubscription: Subscription | null = null;\r\n lv3ItemSubscription: Subscription | null = null;\r\n\r\n isLv2ItemHover: boolean = false;\r\n isLv3ContainerHover: boolean = false;\r\n isLv3ItemHover: boolean = false;\r\n isLv4ContainerHover: boolean = false;\r\n\r\n constructor(@Inject(LIB_CONFIG) public libConfig: LibConfig) {\r\n const timeToDebounce = 50;\r\n\r\n this.lv2ItemSubscription = this.lv2Item$.pipe(debounceTime(timeToDebounce)).subscribe(({ item, list }) => {\r\n if (!this.isLv2ItemHover && !this.isLv3ContainerHover && !this.isLv3ItemHover && !this.isLv4ContainerHover) {\r\n list.forEach((i) => (i.active = false));\r\n this.selectedLv2Item = null;\r\n } else {\r\n list.forEach((i) => (i.active = i.title == item?.title));\r\n this.selectedLv2Item = item;\r\n }\r\n });\r\n\r\n this.lv3ItemSubscription = this.lv3Item$.pipe(debounceTime(timeToDebounce)).subscribe(({ item, list }) => {\r\n if (!this.isLv3ItemHover && !this.isLv4ContainerHover) {\r\n list.forEach((i) => (i.active = false));\r\n this.selectedLv3Item = null;\r\n } else {\r\n list.forEach((i) => (i.active = i.title == item?.title));\r\n this.selectedLv3Item = item;\r\n }\r\n });\r\n }\r\n\r\n lv2ItemHoverChange(value: boolean, lv2Item: MenuItem, lv2List: MenuItem[] = []) {\r\n this.isLv2ItemHover = value;\r\n this.lv2Item$.next({ item: lv2Item, list: lv2List });\r\n }\r\n\r\n lv3ContainerHoverChange(value: boolean, lv2List: MenuItem[] = []) {\r\n this.isLv3ContainerHover = value;\r\n this.lv2Item$.next({ item: this.selectedLv2Item, list: lv2List });\r\n }\r\n\r\n lv3ItemHoverChange(value: boolean, lv3Item: MenuItem, lv3List: MenuItem[] = []) {\r\n this.isLv3ItemHover = value;\r\n this.lv3Item$.next({ item: lv3Item, list: lv3List });\r\n }\r\n\r\n lv4ContainerHoverChange(value: boolean, lv3List: MenuItem[] = []) {\r\n this.isLv4ContainerHover = value;\r\n this.lv3Item$.next({ item: this.selectedLv3Item, list: lv3List });\r\n }\r\n\r\n closeDropdown() {\r\n this.opened.set(false);\r\n }\r\n\r\n headerMainMenuItemDDClicked(event: Event) {\r\n this.headerMainMenuItemDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuHighlightDDClicked(event: Event) {\r\n this.headerMainMenuHighlightDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuCtaDDClicked(event: Event) {\r\n this.headerMainMenuCtaDDClick.emit(event);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.lv2ItemSubscription?.unsubscribe();\r\n this.lv3ItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","@if (item) {\r\n <div class=\"sl-hdr-main-item-dropdown\">\r\n <div class=\"info\">\r\n <p class=\"info-title\">\r\n {{ item.title }}\r\n </p>\r\n\r\n <p class=\"info-description\">\r\n {{ item.description }}\r\n </p>\r\n </div>\r\n\r\n <nav class=\"links-lv2\">\r\n <ul class=\"links-lv2-content\">\r\n @for (itemLv2 of item.children; track itemLv2.title) {\r\n <li>\r\n <a\r\n class=\"link lv2\"\r\n [ngClass]=\"{ active: itemLv2.active }\"\r\n [href]=\"itemLv2.url\"\r\n rdsitelink\r\n (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\"\r\n (mouseenter)=\"lv2ItemHoverChange(true, itemLv2, item.children)\"\r\n (mouseleave)=\"lv2ItemHoverChange(false, itemLv2, item.children)\"\r\n >\r\n {{ itemLv2.title }}\r\n @if (itemLv2?.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#arrowRightCircle'\"></use>\r\n </svg>\r\n }\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n @if (selectedLv2Item?.children?.length) {\r\n <nav class=\"links-lv3\" (mouseenter)=\"lv3ContainerHoverChange(true, item.children)\" (mouseleave)=\"lv3ContainerHoverChange(false, item.children)\">\r\n <ul class=\"links-lv3-content\">\r\n @for (itemLv3 of selectedLv2Item?.children; track itemLv3.title) {\r\n <li>\r\n <a\r\n class=\"link lv3\"\r\n [ngClass]=\"{ active: itemLv3.active }\"\r\n [href]=\"itemLv3.url\"\r\n rdsitelink\r\n (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\"\r\n (mouseenter)=\"lv3ItemHoverChange(true, itemLv3, selectedLv2Item?.children)\"\r\n (mouseleave)=\"lv3ItemHoverChange(false, itemLv3, selectedLv2Item?.children)\"\r\n >\r\n {{ itemLv3.title }}\r\n @if (itemLv3?.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use xlink:href=\"/assets/icons/iconset-default.svg#arrowRightCircle\"></use>\r\n </svg>\r\n }\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n\r\n @if (selectedLv3Item?.children?.length) {\r\n <nav\r\n class=\"links-lv4\"\r\n (mouseenter)=\"lv4ContainerHoverChange(true, selectedLv2Item?.children)\"\r\n (mouseleave)=\"lv4ContainerHoverChange(false, selectedLv2Item?.children)\"\r\n >\r\n <ul class=\"links-lv4-content\">\r\n @for (itemLv4 of selectedLv3Item?.children; track itemLv4.title) {\r\n <li>\r\n <a class=\"link lv4\" [href]=\"itemLv4.url\" rdsitelink (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\">\r\n {{ itemLv4.title }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n }\r\n </nav>\r\n }\r\n </nav>\r\n\r\n <div class=\"ctas-container\">\r\n <div class=\"highlights\">\r\n @for (destaque of item.itens_destaque; track destaque.titulo) {\r\n <div class=\"highlight\">\r\n <a [href]=\"destaque.link\" rdsitelink (click)=\"closeDropdown(); headerMainMenuHighlightDDClicked($event)\">\r\n <img\r\n loading=\"lazy\"\r\n fetchpriority=\"low\"\r\n [src]=\"destaque.imagem?.webp_url || destaque.imagem?.url\"\r\n [alt]=\"destaque.imagem?.alt || destaque.titulo\"\r\n />\r\n <span class=\"highlight-title\">{{ destaque.titulo }}</span>\r\n </a>\r\n <span class=\"highlight-description\">{{ destaque.descricao }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ctas\">\r\n @for (cta of item.ctas; track cta.titulo) {\r\n <a [href]=\"cta.link\" rdsitelink (click)=\"closeDropdown(); headerMainMenuCtaDDClicked($event)\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + cta.icone\"></use>\r\n </svg>\r\n {{ cta.titulo }}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, Inject, Input, OnDestroy, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { HeaderMainMenuItemDropdownComponent } from '../header-main-menu-item-dropdown/header-main-menu-item-dropdown.component';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'li[sl-hdr-main-item]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, HeaderMainMenuItemDropdownComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-main-menu-item.component.html',\r\n styleUrl: './header-main-menu-item.component.scss',\r\n})\r\nexport class HeaderMainMenuItemComponent implements OnDestroy {\r\n @Input() item: MenuItem | null = null;\r\n @Output() headerMainMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuHighlightDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuCtaDDClick: EventEmitter<Event> = new EventEmitter();\r\n isMenuHover: boolean = false;\r\n isDropdownHover: boolean = false;\r\n\r\n @ViewChild(HeaderMainMenuItemDropdownComponent)\r\n dropdownComponent: HeaderMainMenuItemDropdownComponent | null = null;\r\n\r\n dropdownOpen$: Subject<boolean> = new Subject();\r\n dropdownSubscription: Subscription | null = null;\r\n\r\n constructor(@Inject(LIB_CONFIG) public libConfig: LibConfig) {\r\n effect(() => {\r\n if (!this.dropdownComponent?.opened()) {\r\n this.isMenuHover = false;\r\n this.isDropdownHover = false;\r\n }\r\n });\r\n\r\n const timeToDebounce = 50;\r\n this.dropdownSubscription = this.dropdownOpen$.pipe(debounceTime(timeToDebounce)).subscribe((open) => this.dropdownComponent?.opened?.set(open));\r\n }\r\n\r\n headerMainMenuItemClicked(event: Event) {\r\n this.headerMainMenuItemClick.emit(event);\r\n }\r\n\r\n headerMainMenuItemDDClicked(event: Event) {\r\n this.headerMainMenuItemDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuHighlightDDClicked(event: Event) {\r\n this.headerMainMenuHighlightDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuCtaDDClicked(event: Event) {\r\n this.headerMainMenuCtaDDClick.emit(event);\r\n }\r\n\r\n btnHoverChange(value: boolean) {\r\n this.isMenuHover = value;\r\n this.dropdownOpen$.next(this.isMenuHover || this.isDropdownHover);\r\n }\r\n\r\n dropdownHoverChange(value: boolean) {\r\n this.isDropdownHover = value;\r\n this.dropdownOpen$.next(this.isMenuHover || this.isDropdownHover);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.dropdownSubscription?.unsubscribe();\r\n }\r\n}\r\n","@if (item) {\r\n <a\r\n class=\"sl-hdr-main-item-link\"\r\n [ngClass]=\"{ hover: !!dropdownComponent?.opened() }\"\r\n (mouseenter)=\"btnHoverChange(true)\"\r\n (mouseleave)=\"btnHoverChange(false)\"\r\n (click)=\"headerMainMenuItemClicked($event)\"\r\n [href]=\"item.url\"\r\n rdsitelink\r\n >\r\n {{ item.title }}\r\n @if (item.children?.length) {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (!!dropdownComponent?.opened() ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n sl-hdr-main-item-dropdown\r\n class=\"sl-hdr-main-item-dropdown-container\"\r\n [ngStyle]=\"{ display: !!dropdownComponent?.opened() ? 'grid' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n [item]=\"item\"\r\n (headerMainMenuItemDDClick)=\"headerMainMenuItemDDClicked($event)\"\r\n (headerMainMenuHighlightDDClick)=\"headerMainMenuHighlightDDClicked($event)\"\r\n (headerMainMenuCtaDDClick)=\"headerMainMenuCtaDDClicked($event)\"\r\n ></div>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayComponent } from '../../../overlay/overlay.component';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-side]',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-side-menu.component.html',\r\n styleUrl: './header-side-menu.component.scss',\r\n})\r\nexport class HeaderSideMenuComponent {\r\n constructor(\r\n public headerService: HeaderService,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSideMenu(false);\r\n }\r\n}\r\n","<div class=\"sl-hdr-side\" [ngClass]=\"{ active: headerService.showSideMenu() }\">\r\n <div class=\"side-menu\">\r\n <div class=\"side-menu-close\">\r\n <button type=\"button\" aria-label=\"Fechar menu lateral\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#close'\"></use>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"#side-menu-geoloc\"></ng-content>\r\n\r\n <nav>\r\n <ul class=\"side-menu-content\">\r\n <ng-content select=\"li[sl-hdr-side-item]\"></ng-content>\r\n </ul>\r\n </nav>\r\n </div>\r\n</div>\r\n<rdsite-overlay class=\"side-menu-overlay\" [ngClass]=\"{ active: headerService.showSideMenu() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Inject, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'li[sl-hdr-side-item]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-side-menu-item.component.html',\r\n styleUrl: './header-side-menu-item.component.scss',\r\n})\r\nexport class HeaderSideMenuItemComponent {\r\n @Input() item: MenuItem | null = null;\r\n @Input() altStyle: boolean = false;\r\n @Input() fontSize: number = 14;\r\n @Output() headerSideMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @HostBinding() get style() {\r\n return {\r\n '--side-menu-item-font-size': `${this.fontSize}px`,\r\n };\r\n }\r\n\r\n constructor(\r\n public headerService: HeaderService,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSideMenu(false);\r\n }\r\n\r\n toggleList(event: Event, sideMenuItem: MenuItem, canCloseSideMenu: boolean) {\r\n event.stopPropagation();\r\n sideMenuItem.active = !sideMenuItem.active;\r\n if (canCloseSideMenu) return this.headerService.toggleShowSideMenu(false);\r\n }\r\n\r\n headerSideMenuItemClicked(event: Event) {\r\n this.headerSideMenuItemClick.emit(event);\r\n }\r\n}\r\n","@if (item) {\r\n <div class=\"sl-hdr-side-item\" [ngClass]=\"{ active: item.active, alt: altStyle }\" (click)=\"toggleList($event, item, false)\">\r\n <a [href]=\"item.url\" rdsitelink (click)=\"toggleList($event, item, !item.children?.length || !!item.url); headerSideMenuItemClicked($event)\">\r\n <span>{{ item.title }}</span>\r\n @if (!item.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#right'\"></use>\r\n </svg>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (item.active ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </div>\r\n\r\n @if (item.children?.length) {\r\n <ul class=\"sl-hdr-side-item-list\" [ngClass]=\"{ active: item.active }\">\r\n @for (child of item.children; track child.title) {\r\n <li sl-hdr-side-item [item]=\"child\" [fontSize]=\"fontSize\" [altStyle]=\"altStyle\" (headerSideMenuItemClick)=\"headerSideMenuItemClicked($event)\"></li>\r\n }\r\n </ul>\r\n }\r\n}\r\n","import { Component, HostBinding } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-load-screen',\r\n standalone: true,\r\n templateUrl: './load-screen.component.html',\r\n styleUrls: ['./load-screen.component.scss'],\r\n})\r\nexport class LoadScreenComponent {\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-pale': this.curaService.getColor('neutral-pale'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n '--color-one-base': this.curaService.getColor('primary-base'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n}\r\n","<svg\r\n id=\"eHMRpL82XFk1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"85 98 130 104\"\r\n shape-rendering=\"geometricPrecision\"\r\n text-rendering=\"geometricPrecision\"\r\n project-id=\"d6bcc811f04c4bd68a9b60e9a293b656\"\r\n export-id=\"07f9d4f6c8ae45db93f339ab9b65e3a6\"\r\n cached=\"false\"\r\n>\r\n <style>\r\n #eHMRpL82XFk2 {\r\n animation-name: eHMRpL82XFk2_c_o, eHMRpL82XFk2_s_do;\r\n animation-duration: 3000ms;\r\n animation-fill-mode: forwards;\r\n animation-timing-function: linear;\r\n animation-direction: normal;\r\n animation-iteration-count: infinite;\r\n }\r\n\r\n @keyframes eHMRpL82XFk2_c_o {\r\n 0% {\r\n opacity: 0;\r\n animation-timing-function: cubic-bezier(0, 0, 0.58, 1);\r\n }\r\n\r\n 33.333333% {\r\n opacity: 1;\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n @keyframes eHMRpL82XFk2_s_do {\r\n 0% {\r\n stroke-dashoffset: 1070.79;\r\n animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);\r\n }\r\n\r\n 33.333333% {\r\n stroke-dashoffset: 2141.58;\r\n }\r\n\r\n 100% {\r\n stroke-dashoffset: 2141.58;\r\n }\r\n }\r\n\r\n #eHMRpL82XFk3 {\r\n animation: eHMRpL82XFk3_c_o 3000ms linear infinite normal forwards;\r\n }\r\n\r\n @keyframes eHMRpL82XFk3_c_o {\r\n 0% {\r\n opacity: 0;\r\n }\r\n\r\n 33.333333% {\r\n opacity: 0;\r\n animation-timing-function: cubic-bezier(0, 0, 0.58, 1);\r\n }\r\n\r\n 73.333333% {\r\n opacity: 1;\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n #eHMRpL82XFk10_tr {\r\n animation: eHMRpL82XFk10_tr__tr 3000ms linear infinite normal forwards;\r\n }\r\n\r\n @keyframes eHMRpL82XFk10_tr__tr {\r\n 0% {\r\n transform: translate(135.33781px, 207.03926px) rotate(720deg);\r\n animation-timing-function: cubic-bezier(0.415, 0.08, 0.115, 0.955);\r\n }\r\n\r\n 100% {\r\n transform: translate(135.33781px, 207.03926px) rotate(439.480519deg);\r\n }\r\n }\r\n\r\n #eHMRpL82XFk11_tr {\r\n animation: eHMRpL82XFk11_tr__tr 3000ms linear infinite normal forwards;\r\n }\r\n\r\n @keyframes eHMRpL82XFk11_tr__tr {\r\n 0% {\r\n transform: translate(11.12px, 29.9px) rotate(-720deg);\r\n animation-timing-function: cubic-bezier(0.415, 0.08, 0.115, 0.955);\r\n }\r\n\r\n 100% {\r\n transform: translate(11.12px, 29.9px) rotate(-439.480519deg);\r\n }\r\n }\r\n </style>\r\n <path\r\n id=\"eHMRpL82XFk2\"\r\n d=\"M45.8896,122.909c-7.3496-3.448-13.8476-5.167-19.4941-5.157-3.078,0-5.5353.425-7.4437,1.301-1.9084.875-2.8677,1.994-2.8677,3.35c0,1.357,1.026,2.384,3.037,3.24c2.011.855,4.617,1.265,7.6951,1.265c6.115,0,12.4711-1.333,19.0683-3.999h.0051Zm5.4276.071c4.7003,2.399,9.9085,3.669,15.2003,3.705c7.7772,0,14.9267-2.785,21.4487-8.356c9.1417-7.761,15.7748-18.3767,19.8998-31.8469c2.305-7.5551,3.459-14.5602,3.462-21.0152-.02-4.2002-.6-8.3796-1.723-12.431-3.175,3.6665-6.13,7.5131-8.85,11.5199-2.6365,3.9041-6.4207,10.0285-11.3524,18.3731-4.9761,8.4358-9.1417,14.7458-12.4968,18.9301-3.677,4.514-7.8415,8.619-12.4198,12.243-2.6984,2.143-7.088,5.102-13.1688,8.878ZM111.103,51.5833c1.315,4.414,1.994,8.9891,2.016,13.59-.065,7.4184-1.21,14.7891-3.401,21.8858-4.289,14.4049-11.3396,25.6719-21.1516,33.8009-6.1174,5.274-13.9813,8.155-22.1053,8.098-2.6512.025-5.2956-.269-7.8746-.876-2.3496-.577-5.7063-1.786-10.0703-3.629-7.8284,3.148-15.1011,4.724-21.818,4.728-2.8272.064-5.6463-.325-8.3466-1.154-1.3689-.434-2.5854-1.241-3.5089-2.329-.8731-.909-1.3833-2.099-1.4365-3.35c0-2.143,1.1971-3.83,3.5911-5.062c2.394-1.231,5.614-1.866,9.6598-1.903c6.3613,0,13.6545,2.111,21.8797,6.332c5.6424-3.842,10.7329-8.419,15.1336-13.605c2.9446-3.447,5.3455-6.459,7.182-9.1109c1.8366-2.6522,6.5921-9.7535,14.2204-21.3847c5.9509-8.9554,13.7588-18.066,23.4242-27.3319-2.203-5.0614-4.712-8.9419-7.526-11.6414-5.7971-5.6789-13.6033-8.515-23.4188-8.5083-12.9071,0-23.8376,4.3124-32.7912,12.9371-4.3018,4.0733-7.8304,8.8729-10.4191,14.1721-2.2292,4.4289-3.413,9.2983-3.4628,14.243c0,4.7645,1.51,8.6163,4.5299,11.5553c2.8523,2.8142,6.7853,4.2229,11.7991,4.2263c6.9152,0,13.5535-2.6421,19.9148-7.9262c8.6492-7.2244,14.6342-17.425,17.9551-30.6016l1.3594.4302c-1.3133,8.4864-4.1108,15.974-8.3927,22.4628-4.3759,6.5799-9.7779,11.5047-16.2212,14.6782-4.4278,2.241-9.3313,3.4137-14.3076,3.4215-6.4981,0-11.4828-2.1578-14.9541-6.4736-3.078-3.8163-4.5914-8.5083-4.5914-14.0354c0-7.0861,2.0845-14.0169,6.2535-20.7925c4.1094-6.7327,9.9778-12.2517,16.9907-15.979c7.0658-3.7556,14.9318-5.6351,23.5982-5.6385c11.5186,0,20.6176,3.3439,27.2972,10.0318c2.777,2.7737,5.415,6.725,7.915,11.854c5.572-4.8523,10.855-8.6551,15.852-11.4086l.513,1.807c-4.627,2.8648-9.714,7.0337-15.262,12.5068l-.025-.0202Zm20.145-22.4729h10.553v10.7455c0,4.3326-.684,7.2008-2.052,8.6045-1.402,1.4476-3.935,2.281-7.598,2.5003-.581-.1338-1.178-.19-1.775-.167v-4.9147c1.693,0,2.947-.3745,3.761-1.1236.81-.7542,1.19-2.2068,1.138-4.3731h-4.052l.025-11.2719Z\"\r\n transform=\"translate(72.3964 71.999878)\"\r\n opacity=\"0\"\r\n fill=\"none\"\r\n stroke=\"#003da5\"\r\n stroke-linecap=\"square\"\r\n stroke-miterlimit=\"1\"\r\n stroke-dashoffset=\"1070.79\"\r\n stroke-dasharray=\"1070.79\"\r\n />\r\n <path\r\n id=\"eHMRpL82XFk3\"\r\n d=\"M45.8896,122.909c-7.3496-3.448-13.8476-5.167-19.4941-5.157-3.078,0-5.5353.425-7.4437,1.301-1.9084.875-2.8677,1.994-2.8677,3.35c0,1.357,1.026,2.384,3.037,3.24c2.011.855,4.617,1.265,7.6951,1.265c6.115,0,12.4711-1.333,19.0683-3.999h.0051Zm5.4276.071c4.7003,2.399,9.9085,3.669,15.2003,3.705c7.7772,0,14.9267-2.785,21.4487-8.356c9.1417-7.761,15.7748-18.3767,19.8998-31.8469c2.305-7.5551,3.459-14.5602,3.462-21.0152-.02-4.2002-.6-8.3796-1.723-12.431-3.175,3.6665-6.13,7.5131-8.85,11.5199-2.6365,3.9041-6.4207,10.0285-11.3524,18.3731-4.9761,8.4358-9.1417,14.7458-12.4968,18.9301-3.677,4.514-7.8415,8.619-12.4198,12.243-2.6984,2.143-7.088,5.102-13.1688,8.878ZM111.103,51.5833c1.315,4.414,1.994,8.9891,2.016,13.59-.065,7.4184-1.21,14.7891-3.401,21.8858-4.289,14.4049-11.3396,25.6719-21.1516,33.8009-6.1174,5.274-13.9813,8.155-22.1053,8.098-2.6512.025-5.2956-.269-7.8746-.876-2.3496-.577-5.7063-1.786-10.0703-3.629-7.8284,3.148-15.1011,4.724-21.818,4.728-2.8272.064-5.6463-.325-8.3466-1.154-1.3689-.434-2.5854-1.241-3.5089-2.329-.8731-.909-1.3833-2.099-1.4365-3.35c0-2.143,1.1971-3.83,3.5911-5.062c2.394-1.231,5.614-1.866,9.6598-1.903c6.3613,0,13.6545,2.111,21.8797,6.332c5.6424-3.842,10.7329-8.419,15.1336-13.605c2.9446-3.447,5.3455-6.459,7.182-9.1109c1.8366-2.6522,6.5921-9.7535,14.2204-21.3847c5.9509-8.9554,13.7588-18.066,23.4242-27.3319-2.203-5.0614-4.712-8.9419-7.526-11.6414-5.7971-5.6789-13.6033-8.515-23.4188-8.5083-12.9071,0-23.8376,4.3124-32.7912,12.9371-4.3018,4.0733-7.8304,8.8729-10.4191,14.1721-2.2292,4.4289-3.413,9.2983-3.4628,14.243c0,4.7645,1.51,8.6163,4.5299,11.5553c2.8523,2.8142,6.7853,4.2229,11.7991,4.2263c6.9152,0,13.5535-2.6421,19.9148-7.9262c8.6492-7.2244,14.6342-17.425,17.9551-30.6016l1.3594.4302c-1.3133,8.4864-4.1108,15.974-8.3927,22.4628-4.3759,6.5799-9.7779,11.5047-16.2212,14.6782-4.4278,2.241-9.3313,3.4137-14.3076,3.4215-6.4981,0-11.4828-2.1578-14.9541-6.4736-3.078-3.8163-4.5914-8.5083-4.5914-14.0354c0-7.0861,2.0845-14.0169,6.2535-20.7925c4.1094-6.7327,9.9778-12.2517,16.9907-15.979c7.0658-3.7556,14.9318-5.6351,23.5982-5.6385c11.5186,0,20.6176,3.3439,27.2972,10.0318c2.777,2.7737,5.415,6.725,7.915,11.854c5.572-4.8523,10.855-8.6551,15.852-11.4086l.513,1.807c-4.627,2.8648-9.714,7.0337-15.262,12.5068l-.025-.0202Zm20.145-22.4729h10.553v10.7455c0,4.3326-.684,7.2008-2.052,8.6045-1.402,1.4476-3.935,2.281-7.598,2.5003-.581-.1338-1.178-.19-1.775-.167v-4.9147c1.693,0,2.947-.3745,3.761-1.1236.81-.7542,1.19-2.2068,1.138-4.3731h-4.052l.025-11.2719Z\"\r\n transform=\"translate(72.3964 71.999878)\"\r\n opacity=\"0\"\r\n fill=\"#003da5\"\r\n />\r\n</svg>\r\n\r\n<h4>Aguarde mais um pouco</h4>\r\n\r\n<span>Estamos carregando as informações.</span>\r\n","import { Component, HostBinding } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './side-ctas.component.html',\r\n styleUrl: './side-ctas.component.scss',\r\n})\r\nexport class SideCtasComponent {\r\n @HostBinding('style') style = {\r\n '--color-right': this.curaService.getColor('primary-darker'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n}\r\n","<div\r\n class=\"rdsite-side-ctas-right\"\r\n [ngStyle]=\"{\r\n display: rightTop?.children?.length || rightMiddle?.children?.length || rightBottom?.children?.length ? 'flex' : 'none',\r\n }\"\r\n>\r\n <div #rightTop class=\"rdsite-side-ctas-right-top\">\r\n <ng-content select=\"rdsite-side-ctas-right-top\"></ng-content>\r\n </div>\r\n <div #rightMiddle class=\"rdsite-side-ctas-right-middle\">\r\n <ng-content select=\"rdsite-side-ctas-right-middle\"></ng-content>\r\n </div>\r\n <div #rightBottom class=\"rdsite-side-ctas-right-bottom\">\r\n <ng-content select=\"rdsite-side-ctas-right-bottom\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<div\r\n class=\"rdsite-side-ctas-bottom\"\r\n [ngStyle]=\"{\r\n display: bottom?.children?.length ? 'flex' : 'none',\r\n paddingRight: rightTop?.children?.length || rightMiddle?.children?.length || rightBottom?.children?.length ? '88px' : '0px',\r\n }\"\r\n>\r\n <div #bottom class=\"rdsite-side-ctas-bottom-container\">\r\n <ng-content select=\"rdsite-side-ctas-bottom\"></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { SideCta } from '../../models/SideCta.model';\r\nimport { CuraService } from '../../../../services';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-bottom',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './side-ctas-bottom.component.html',\r\n styleUrl: './side-ctas-bottom.component.scss',\r\n})\r\nexport class SideCtasBottomComponent {\r\n private _ctas: SideCta[] = [];\r\n @Input()\r\n set ctas(value: SideCta[]) {\r\n this._ctas = value;\r\n }\r\n get ctas() {\r\n return this._ctas;\r\n }\r\n @Output() sideCtaBottomItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @HostBinding('style') style = {\r\n '--font-color': this.curaService.getColor('neutral-black'),\r\n '--bg-color': this.curaService.getColor('primary-dark'),\r\n '--bg-cta-color': this.curaService.getColor('accent-base'),\r\n '--bg-cta-hover-color': this.curaService.getColor('accent-dark'),\r\n '--bg-cta-active-color': this.curaService.getColor('accent-darker'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n sideCtaBottomItemClicked(event: Event) {\r\n this.sideCtaBottomItemClick.emit(event);\r\n }\r\n}\r\n","@if (ctas.length) {\r\n @for (cta of ctas; track cta.text) {\r\n <a [href]=\"cta.url\" rdsitelink (click)=\"sideCtaBottomItemClicked($event)\">\r\n <cura-icon [attr.name]=\"cta.icon\" size=\"20\" color=\"neutral-black\"></cura-icon>\r\n <span>{{ cta.text }}</span>\r\n </a>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-whatsapp',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './whatsapp.component.html',\r\n styleUrl: './whatsapp.component.scss',\r\n})\r\nexport class WhatsappComponent {\r\n @Input() link: string = '';\r\n @Input() imgUrl: string = '';\r\n @Input() text: string = 'Agende por Whatsapp';\r\n @Input() bgColor: string = '#1DCD52';\r\n @Input() bgHover: string = '#016720';\r\n @Input() borderTop: boolean = false;\r\n\r\n @Output() whatsappClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n active: boolean = false;\r\n\r\n @HostBinding('style') style = {\r\n '--border-top-color': this.curaService.getColor('primary-light'),\r\n '--bg-color': this.curaService.getColor('primary-darker'),\r\n '--bg-button': this.bgColor,\r\n '--bg-button-hover': this.bgHover,\r\n '--color-button': this.curaService.getColor('neutral-black'),\r\n '--color-button-hover': this.curaService.getColor('neutral-white'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n whatsappClicked(event: Event) {\r\n this.whatsappClick.emit(event);\r\n }\r\n}\r\n","@if (link) {\r\n <a\r\n class=\"rdsite-whatsapp\"\r\n [ngClass]=\"{ 'border-top': borderTop }\"\r\n [href]=\"link\"\r\n rdsitelink\r\n (mouseenter)=\"active = true\"\r\n (mouseleave)=\"active = false\"\r\n (click)=\"whatsappClicked($event)\"\r\n >\r\n @if (imgUrl) {\r\n <div class=\"image\" [ngStyle]=\"{ 'background-image': imgUrl }\"></div>\r\n }\r\n <div class=\"icon\" [ngClass]=\"{ active: active }\">\r\n <cura-icon name=\"whatsapp\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n </div>\r\n\r\n <div class=\"rdsite-whatsapp-animation\" [ngClass]=\"{ active: active }\">\r\n <cura-icon name=\"whatsapp\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n <span>{{ text }}</span>\r\n </div>\r\n </a>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { WhatsappComponent } from '../../../whatsapp/whatsapp.component';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-right-bottom',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, WhatsappComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './side-ctas-right-bottom.component.html',\r\n styleUrl: './side-ctas-right-bottom.component.scss',\r\n})\r\nexport class SideCtasRightBottomComponent {\r\n @Input() link: string = '';\r\n @Input() imgUrl: string = '';\r\n @Input() text: string = '';\r\n @Input() bgColor: string = '#1DCD52';\r\n @Input() bgHover: string = '#016720';\r\n @Input() borderTop: boolean = false;\r\n\r\n @Output() sideCtaRightBottomItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n whatsappClicked(event: Event) {\r\n this.sideCtaRightBottomItemClick.emit(event);\r\n }\r\n}\r\n","@if (link && imgUrl) {\r\n <rdsite-whatsapp\r\n [link]=\"link\"\r\n [imgUrl]=\"imgUrl\"\r\n [text]=\"text\"\r\n [bgColor]=\"bgColor\"\r\n [bgHover]=\"bgHover\"\r\n [borderTop]=\"borderTop\"\r\n (whatsappClick)=\"whatsappClicked($event)\"\r\n ></rdsite-whatsapp>\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { SideCta } from '../../models/SideCta.model';\r\nimport { CuraService } from '../../../../services';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-right-middle',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './side-ctas-right-middle.component.html',\r\n styleUrl: './side-ctas-right-middle.component.scss',\r\n})\r\nexport class SideCtasRightMiddleComponent {\r\n private _ctas: SideCta[] = [];\r\n @Input()\r\n set ctas(value: SideCta[]) {\r\n this._ctas = value;\r\n }\r\n get ctas() {\r\n return this._ctas;\r\n }\r\n @Output() sideCtaRightMiddleItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @HostBinding('style') style = {\r\n '--icon-bg-color': this.curaService.getColor('primary-base'),\r\n '--font-color': this.curaService.getColor('primary-lighter'),\r\n '--font-hover': this.curaService.getColor('neutral-white'),\r\n '--font-active': this.curaService.getColor('primary-light'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n sideCtaRightMiddleItemClicked(event: Event) {\r\n this.sideCtaRightMiddleItemClick.emit(event);\r\n }\r\n}\r\n","@if (ctas.length) {\r\n @for (cta of ctas; track cta.text) {\r\n <a class=\"right-middle-cta\" [href]=\"cta.url\" rdsitelink (click)=\"sideCtaRightMiddleItemClicked($event)\">\r\n <div class=\"right-middle-cta-icon\">\r\n <cura-icon [attr.name]=\"cta.icon\" size=\"24\" color=\"neutral-purewhite\"></cura-icon>\r\n </div>\r\n <span>{{ cta.text }}</span>\r\n </a>\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-right-top',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './side-ctas-right-top.component.html',\r\n styleUrl: './side-ctas-right-top.component.scss',\r\n})\r\nexport class SideCtasRightTopComponent {}\r\n","<ng-content></ng-content>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AlgoliaConfig, AlgoliaSearchParams, RdslAlgoliaMultipleIndex } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaSearchApiService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-algolia-dropdown',\r\n standalone: true,\r\n imports: [],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './algolia-dropdown.component.html',\r\n styleUrl: './algolia-dropdown.component.scss',\r\n})\r\nexport class AlgoliaDropdownComponent {\r\n compAlgoliaConfig: AlgoliaConfig = { id: '', key: '' };\r\n get algoliaConfig() {\r\n return this.compAlgoliaConfig;\r\n }\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('algoliaConfig')\r\n set algoliaConfig(config: AlgoliaConfig) {\r\n this.ready = false;\r\n if (this.setupAlgolia(config)) {\r\n this.compAlgoliaConfig = config;\r\n this.ready = true;\r\n }\r\n }\r\n @Input() name!: string;\r\n @Input() value!: string;\r\n @Input() size!: string;\r\n @Input() label!: string;\r\n @Input() placeholder!: string;\r\n @Input() status!: string;\r\n @Input() icon!: string;\r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() maxheight!: string;\r\n @Input() searchdelay!: string;\r\n @Input() searchminchars: number = 2;\r\n @Input() helperText!: string;\r\n @Input() cssMaxHeight!: string;\r\n @Input() searchParams: AlgoliaSearchParams = {};\r\n\r\n public searchTerm: string = '';\r\n\r\n // Algolia\r\n isMultiple: boolean = false;\r\n\r\n // State\r\n ready: boolean = false;\r\n\r\n @Output() algoliaResults: EventEmitter<any> = new EventEmitter();\r\n @Output() resetResults: EventEmitter<any> = new EventEmitter();\r\n @Output() optionSelected: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private readonly algoliaSearchApiService: AlgoliaSearchApiService) {}\r\n\r\n setupAlgolia(config: AlgoliaConfig): boolean {\r\n if (config?.id && config?.key && (config?.index || config?.multipleIndex)) {\r\n if (config.multipleIndex) {\r\n this.isMultiple = true;\r\n } else {\r\n this.isMultiple = false;\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n termChange(event: any) {\r\n if (event.target.value) {\r\n this.searchTerm = event?.target?.value;\r\n this.search();\r\n } else {\r\n this.resetResults.emit(event);\r\n }\r\n }\r\n\r\n search(): void {\r\n if (this.searchTerm?.length >= this.searchminchars && this.ready) {\r\n if (!this.isMultiple) {\r\n this.algoliaSearchApiService.search(this.searchTerm, this.algoliaConfig.index!, this.searchParams).subscribe({\r\n next: (results) => {\r\n this.algoliaResults.emit(results);\r\n },\r\n });\r\n } else {\r\n const queries: RdslAlgoliaMultipleIndex[] = this.compAlgoliaConfig?.multipleIndex!.map((i: RdslAlgoliaMultipleIndex) => {\r\n return { ...i, query: this.searchTerm };\r\n });\r\n this.algoliaSearchApiService.searchMultipleIndexes(queries).subscribe({\r\n next: (results) => {\r\n this.algoliaResults.emit(results.results);\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n optionSelect(event: any) {\r\n this.optionSelected.emit(event.target.value);\r\n }\r\n}\r\n","<cura-dropdown-search\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [status]=\"status\"\r\n [icon]=\"icon\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [maxheight]=\"maxheight\"\r\n [searchdelay]=\"searchdelay\"\r\n [searchminchars]=\"searchminchars\"\r\n [helperText]=\"helperText\"\r\n [cssMaxHeight]=\"cssMaxHeight\"\r\n (termchange)=\"termChange($event)\"\r\n (optionselect)=\"optionSelect($event)\"\r\n>\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n","const xSmallBreakpoint = 361;\r\nconst smallBreakpoint = 769;\r\nconst mediumBreakPoint = 1024;\r\nconst largeBreakpoint = 1366;\r\n\r\nexport const MediaQueries = {\r\n xSmallBreakpoint,\r\n smallBreakpoint,\r\n mediumBreakPoint,\r\n largeBreakpoint,\r\n};\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, HostBinding, HostListener, Inject, Input, OnInit, PLATFORM_ID, ViewChild } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig, NguCarouselDefDirective, NguItemComponent } from '@ngu/carousel';\r\nimport { CuraService, NguCarouselService } from '../../services';\r\nimport { MediaQueries } from '../../helpers/mediaQueries';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { CtaWrapper } from '../../models/cta-wrapper.model';\r\n\r\n@Component({\r\n selector: 'rdsite-cta-wrapper',\r\n standalone: true,\r\n imports: [NguCarousel, NguItemComponent, NguCarouselDefDirective, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './cta-wrapper.component.html',\r\n styleUrl: './cta-wrapper.component.scss',\r\n})\r\nexport class CtaWrapperComponent implements OnInit {\r\n @Input() content: CtaWrapper | null = null;\r\n @Input() showTitleAndText = true;\r\n @Input() colors: { border: string; icon: string } = { border: 'primary-base', icon: 'primary-dark' };\r\n\r\n carouselCtasConfig!: NguCarouselConfig;\r\n\r\n bannerControl = false;\r\n seeMoreControl = false;\r\n\r\n @ViewChild('nguCarouselCtas') nguCarouselCtas!: NguCarousel<any, any>;\r\n\r\n @HostListener('window:resize')\r\n onWindowResize() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.bannerControl = window.innerWidth > MediaQueries.smallBreakpoint;\r\n }\r\n }\r\n\r\n @HostBinding('style')\r\n get style(): { [key: string]: string } {\r\n return {\r\n '--font-family': this.curaService.getFontFamily('') ?? '',\r\n '--border-color': this.curaService.getColor(this.colors.border) ?? '',\r\n '--icon-color': this.curaService.getColor(this.colors.icon) ?? '',\r\n };\r\n }\r\n\r\n @HostBinding('class') class = ['rdsite-container'];\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private nguService: NguCarouselService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.bannerControl = window.innerWidth > MediaQueries.smallBreakpoint;\r\n }\r\n\r\n this.carouselCtasConfig = this.nguService.customCarouselConfig({\r\n grid: { xs: 2.1, sm: 2.1, md: 2.1, lg: 2.1, all: 0 },\r\n loop: true,\r\n interval: {\r\n timing: 600000,\r\n initialDelay: 600000,\r\n },\r\n });\r\n }\r\n\r\n moreOptions(): void {\r\n this.seeMoreControl = !this.seeMoreControl;\r\n }\r\n}\r\n","@if (content?.ctas?.length) {\r\n @if (content?.title && showTitleAndText) {\r\n <h3 class=\"ctas-title\">{{ content?.title }}</h3>\r\n }\r\n\r\n @if (content?.text && showTitleAndText) {\r\n <p class=\"ctas-text\" [innerHTML]=\"content?.text\"></p>\r\n }\r\n\r\n @if (!seeMoreControl) {\r\n <nav class=\"ctas-wrapper\" data-testid=\"_rdsite-ctas-wrapper\">\r\n @if (!bannerControl) {\r\n <ngu-carousel #nguCarouselCtas [inputs]=\"carouselCtasConfig\" [dataSource]=\"content?.ctas\">\r\n <ngu-item *nguCarouselDef=\"let cta; let i = index\">\r\n <a rdsitelink class=\"cta\" [href]=\"cta?.link\">\r\n @if (cta?.icon) {\r\n <cura-icon [attr.name]=\"cta?.icon\" size=\"24\" [attr.color]=\"colors.icon\"></cura-icon>\r\n }\r\n <p>{{ cta?.label }}</p>\r\n </a>\r\n </ngu-item>\r\n </ngu-carousel>\r\n\r\n <div class=\"show-more\" data-testid=\"_rdsite-ctas-wrapper-show-more\">\r\n <button type=\"button\" (click)=\"moreOptions()\">Mais opções</button>\r\n </div>\r\n } @else {\r\n @for (cta of content?.ctas; track $index) {\r\n @if (cta?.label) {\r\n <a rdsitelink class=\"cta\" [href]=\"cta?.link\">\r\n @if (cta?.icon) {\r\n <cura-icon [attr.name]=\"cta?.icon\" size=\"24\" [attr.color]=\"colors.icon\"></cura-icon>\r\n }\r\n <p>{{ cta?.label }}</p>\r\n </a>\r\n }\r\n }\r\n }\r\n </nav>\r\n } @else {\r\n <nav class=\"more-options\" data-testid=\"_rdsite-ctas-wrapper-more-options\">\r\n @for (cta of content?.ctas; track $index) {\r\n @if (cta?.label) {\r\n <a rdsitelink class=\"cta\" [href]=\"cta?.link\">\r\n @if (cta?.icon) {\r\n <cura-icon [attr.name]=\"cta?.icon\" size=\"24\" [attr.color]=\"colors.icon\"></cura-icon>\r\n }\r\n <p>{{ cta?.label }}</p>\r\n </a>\r\n }\r\n }\r\n </nav>\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n ElementRef,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n PLATFORM_ID,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { CuraService } from '../../services/cura/cura.service';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { BreadcrumbsJsonItem } from '../../models/breadcrumbs/breadcrumbs-json-item.model';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport * as he from 'he';\r\nimport { MediaQueries } from '../../helpers/mediaQueries';\r\n\r\n@Component({\r\n selector: 'rdsite-breadcrumbs',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './breadcrumbs.component.html',\r\n styleUrl: './breadcrumbs.component.scss',\r\n})\r\nexport class BreadcrumbsComponent implements AfterViewInit, OnDestroy {\r\n @Input() labelIconColor: string = 'neutral-purewhite';\r\n @Input() fontWeight?: string;\r\n isDesktop: boolean | null = null;\r\n\r\n private _breadcrumbs: BreadcrumbsItems[] = [];\r\n @Input()\r\n set breadcrumbs(value: BreadcrumbsItems[]) {\r\n this._breadcrumbs = value || [];\r\n if (value?.length) {\r\n this.setBreadcrumbsJson(value);\r\n }\r\n }\r\n get breadcrumbs() {\r\n return this._breadcrumbs;\r\n }\r\n\r\n private breadcrumbsJsonTag!: HTMLScriptElement;\r\n private readonly breadcrumbsJsonTagId = 'breadcrumbsJSON';\r\n private resizeObserver!: ResizeObserver;\r\n\r\n @ViewChild('breadCrumbsElement') breadCrumbsElement!: ElementRef<HTMLDivElement>;\r\n\r\n constructor(\r\n private curaService: CuraService,\r\n private cdr: ChangeDetectorRef,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.getColors(this.labelIconColor);\r\n this.initViewportDetection();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n private initViewportDetection(): void {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n this.isDesktop = true;\r\n return;\r\n }\r\n\r\n this.checkViewportSize();\r\n this.setupResizeObserver();\r\n }\r\n\r\n private setupResizeObserver(): void {\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.checkViewportSize();\r\n });\r\n\r\n this.resizeObserver.observe(document.body);\r\n }\r\n\r\n private checkViewportSize(): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n\r\n const newValue = window.innerWidth > MediaQueries.smallBreakpoint;\r\n if (this.isDesktop !== newValue) {\r\n this.isDesktop = newValue;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n getColors(color: string): void {\r\n if (isPlatformBrowser(this.platformId) && this.breadCrumbsElement?.nativeElement) {\r\n const element = this.breadCrumbsElement.nativeElement;\r\n element.style.setProperty('--font-family', this.curaService.getFontFamily(''));\r\n element.style.setProperty('--label-icon-color', this.curaService.getColor(color));\r\n element.style.setProperty('--divider-color', this.curaService.getColor('neutral-light'));\r\n if (this.fontWeight) {\r\n element.style.setProperty('--font-weight', this.fontWeight);\r\n }\r\n\r\n const disabledColor = color?.includes('neutral') ? 'primary-lighter' : 'neutral-dark';\r\n element.style.setProperty('--disabled-color', this.curaService.getColor(disabledColor));\r\n }\r\n }\r\n\r\n getUrl(urls: string[] = []): string {\r\n return urls.join('');\r\n }\r\n\r\n private setBreadcrumbsJson(items: BreadcrumbsItems[]): void {\r\n this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: this.getJsonBreadcrumbItems(items),\r\n };\r\n this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);\r\n }\r\n\r\n private getBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const existingTag = this.document.getElementById(this.breadcrumbsJsonTagId) as HTMLScriptElement;\r\n return existingTag || this.createBreadcrumbsJSONTag();\r\n }\r\n\r\n private createBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const tag = this.document.createElement('script');\r\n tag.id = this.breadcrumbsJsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n return tag;\r\n }\r\n\r\n private getJsonBreadcrumbItems(items: BreadcrumbsItems[]): BreadcrumbsJsonItem[] {\r\n return items.map((item, i) => ({\r\n '@type': 'ListItem',\r\n position: i + 1,\r\n item: {\r\n '@id': `${this.libConfig.siteUrl.replace(/\\/$/, '')}${this.getUrl(item.url)}`,\r\n name: he.encode(item.label),\r\n },\r\n }));\r\n }\r\n}\r\n","@if (breadcrumbs.length) {\r\n <nav class=\"breadcrumb\" #breadCrumbsElement>\r\n <ol>\r\n @if (isDesktop !== null && (isDesktop || breadcrumbs.length < 3)) {\r\n <ng-container *ngTemplateOutlet=\"Desktop\"></ng-container>\r\n } @else if (isDesktop !== null) {\r\n <ng-container *ngTemplateOutlet=\"Mobile\"></ng-container>\r\n }\r\n </ol>\r\n </nav>\r\n}\r\n\r\n<ng-template #Desktop>\r\n @for (breadcrumb of breadcrumbs; track breadcrumb.label; let first = $first; let last = $last; let index = $index) {\r\n <li>\r\n @if (!last) {\r\n <a rdsitelink [href]=\"getUrl(breadcrumb.url)\">\r\n @if (first) {\r\n <cura-icon name=\"home\" [attr.color]=\"labelIconColor\" size=\"16\"> </cura-icon>\r\n }\r\n <span>\r\n {{ breadcrumb.label }}\r\n </span>\r\n </a>\r\n <span class=\"divider\">/</span>\r\n } @else {\r\n <span [class.last-item]=\"last && !first\">\r\n {{ breadcrumb.label }}\r\n </span>\r\n }\r\n </li>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #Mobile>\r\n @for (breadcrumb of breadcrumbs; track breadcrumb.label; let first = $first; let last = $last; let index = $index) {\r\n <li>\r\n @if (first) {\r\n <a rdsitelink [href]=\"getUrl(breadcrumb.url)\">\r\n <cura-icon name=\"home\" [attr.color]=\"labelIconColor\" size=\"16\"> </cura-icon>\r\n <span>\r\n {{ breadcrumb.label }}\r\n </span>\r\n </a>\r\n <span class=\"divider\">/</span>\r\n } @else if (index === breadcrumbs.length - 2) {\r\n <span class=\"back\"><</span>\r\n <a rdsitelink [href]=\"getUrl(breadcrumb.url)\">\r\n <span>\r\n {{ breadcrumb.label }}\r\n </span>\r\n </a>\r\n }\r\n </li>\r\n }\r\n</ng-template>\r\n","export enum Estados {\r\n AC = 'Acre',\r\n AL = 'Alagoas',\r\n AP = 'Amapá',\r\n AM = 'Amazonas',\r\n BA = 'Bahia',\r\n CE = 'Ceará',\r\n DF = 'Distrito Federal',\r\n ES = 'Espírito Santo',\r\n GO = 'Goías',\r\n MA = 'Maranhão',\r\n MT = 'Mato Grosso',\r\n MS = 'Mato Grosso do Sul',\r\n MG = 'Minas Gerais',\r\n PA = 'Pará',\r\n PB = 'Paraíba',\r\n PR = 'Paraná',\r\n PE = 'Pernambuco',\r\n PI = 'Piauí',\r\n RJ = 'Rio de Janeiro',\r\n RN = 'Rio Grande do Norte',\r\n RS = 'Rio Grande do Sul',\r\n RO = 'Rondônia',\r\n RR = 'Roraíma',\r\n SC = 'Santa Catarina',\r\n SP = 'São Paulo',\r\n SE = 'Sergipe',\r\n TO = 'Tocantins',\r\n}\r\n","export enum EnumDoencaTaxonomy {\r\n DOENCAS_CAT = \"doencas_cat\",\r\n DOENCAS_TAG = \"doencas_tag\",\r\n}\r\n\r\nexport enum EnumDoencaTaxonomyCat {\r\n DOENCA = \"doencas\",\r\n SINTOMA = \"sintomas\",\r\n}\r\n","export enum ImageMimeType {\r\n WEBP = 'image/webp',\r\n JPEG = 'image/jpeg',\r\n PNG = 'image/png',\r\n}\r\n","export enum RdsiteModalDrawerComponentStyle {\r\n DEFAULT = 'default',\r\n DRAWERDOCTOR = 'doctor-card',\r\n FORMFALLBACK = 'form-fallback',\r\n FILTERDOENCAS = 'filter-doencas',\r\n}\r\n","export enum Themes {\r\n REDE = 'default',\r\n MATERNIDADE = 'maternidade',\r\n ONCO = 'oncologia',\r\n RICHET = 'richet',\r\n STAR = 'star',\r\n}\r\n","export enum Errors {\r\n NOT_FOUND = 'not-found',\r\n SERVER_RESPONSE = 'server-response',\r\n}\r\n","export enum UnidadeCoverageType {\r\n TOTAL = 'Cobertura completa',\r\n PARTIAL = 'Cobertura apenas para',\r\n NONE = 'Esta unidade não oferece cobertura ao seu plano ou convênio',\r\n}\r\n","export enum FilterType {\r\n INPUT = 'input',\r\n SELECT = 'select',\r\n CHECKBOX_GROUP = 'checkbox-group',\r\n RADIO_GROUP = 'radio-group',\r\n CUSTOM = 'custom',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CtaWrapper } from '../../../models/cta-wrapper.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorService {\r\n ctas = new BehaviorSubject<CtaWrapper>({});\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, HostBinding, Inject, Input, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';\r\nimport { CtaWrapperComponent } from '../cta-wrapper/cta-wrapper.component';\r\nimport { ErrorService } from './error-service/error.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { CuraService, LogService, SeoService, ServerResponseService } from '../../services';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { BreadcrumbsComponent } from '../breadcrumbs/breadcrumbs.component';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { Errors, Themes } from '../../enums';\r\nimport { CtaWrapper } from '../../models/cta-wrapper.model';\r\n\r\n@Component({\r\n selector: 'rdsite-error',\r\n standalone: true,\r\n imports: [CtaWrapperComponent, RdsiteLinkDirective, BreadcrumbsComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './error.component.html',\r\n styleUrl: './error.component.scss',\r\n})\r\nexport class ErrorComponent implements OnInit, OnDestroy {\r\n @Input() theme: Themes = Themes.REDE;\r\n @Input() type!: Errors;\r\n @Input() returnRoute: string = '';\r\n @Input() returnLabel: string = '';\r\n @Input() pageTitle = 'Default component';\r\n @Input() component = 'DefaultComponent';\r\n @Input() breadcrumbsItems: BreadcrumbsItems[] = [];\r\n\r\n ctasSubscription!: Subscription;\r\n ctasContent!: CtaWrapper;\r\n responseText = '';\r\n\r\n backgroundColor: string = '';\r\n backgroundColorBadge: string = '';\r\n breadcrumbFontWeight: string = '';\r\n labelColor: string = '';\r\n labelTextColor: string = '';\r\n curaButtonColor: string = '';\r\n curaButtonOutlineColor: string = '';\r\n ctasBorderColor: string = '';\r\n ctasIconColor: string = '';\r\n public error = Errors;\r\n\r\n @HostBinding('style') get style() {\r\n switch (this.theme) {\r\n case Themes.REDE:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-white'),\r\n '--labelColor': this.curaService.getColor('primary-lighter'),\r\n };\r\n case Themes.ONCO:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-pale'),\r\n '--labelColor': this.curaService.getColor('success-lighter'),\r\n };\r\n case Themes.MATERNIDADE:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('accent-lighter'),\r\n '--labelColor': this.curaService.getColor('primary-light'),\r\n };\r\n case Themes.RICHET:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-white'),\r\n '--labelColor': this.curaService.getColor('primary-lighter'),\r\n };\r\n case Themes.STAR:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('secondary-lighter'),\r\n '--labelColor': this.curaService.getColor('secondary-light'),\r\n };\r\n default:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-white'),\r\n '--labelColor': this.curaService.getColor('primary-lighter'),\r\n };\r\n }\r\n }\r\n\r\n constructor(\r\n private errorService: ErrorService,\r\n private curaService: CuraService,\r\n private logService: LogService,\r\n private seoService: SeoService,\r\n private serverResponse: ServerResponseService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.type === Errors.NOT_FOUND) {\r\n this.responseText = 'A página que você acessou não existe mais ou foi movida para outra URL';\r\n if (isPlatformServer(this.platformId)) {\r\n this.serverResponse.setNotFound();\r\n }\r\n this.logService.log404(this.component);\r\n this.seoService.set404Title(this.pageTitle);\r\n } else if (this.type === Errors.SERVER_RESPONSE) {\r\n this.responseText = 'Recomendamos atualizar a página ou tentar novamente mais tarde.';\r\n if (isPlatformServer(this.platformId)) {\r\n this.serverResponse.setError();\r\n }\r\n this.logService.log500(this.component);\r\n this.seoService.set500Title(this.pageTitle);\r\n }\r\n this.ctasSubscription = this.errorService.ctas.subscribe((ctas) => {\r\n this.ctasContent = ctas;\r\n });\r\n this.setTheme(this.theme);\r\n }\r\n\r\n setTheme(theme: Themes) {\r\n switch (theme) {\r\n case Themes.REDE:\r\n this.labelTextColor = 'primary-dark';\r\n this.curaButtonColor = 'primary';\r\n this.curaButtonOutlineColor = 'primary';\r\n this.ctasBorderColor = 'primary-darker';\r\n this.ctasIconColor = 'primary-darker';\r\n break;\r\n case Themes.ONCO:\r\n this.labelTextColor = 'primary-dark';\r\n this.backgroundColorBadge = 'success-lighter';\r\n this.curaButtonColor = 'accent';\r\n this.curaButtonOutlineColor = 'accent';\r\n this.ctasBorderColor = 'accent-base';\r\n this.ctasIconColor = 'primary-dark';\r\n this.breadcrumbFontWeight = '700';\r\n break;\r\n case Themes.MATERNIDADE:\r\n this.labelTextColor = 'accent-base';\r\n this.curaButtonColor = 'accent';\r\n this.curaButtonOutlineColor = 'accent';\r\n this.ctasBorderColor = 'accent-base';\r\n this.ctasIconColor = 'accent-base';\r\n break;\r\n case Themes.RICHET:\r\n this.labelTextColor = 'primary-dark';\r\n this.curaButtonColor = 'primary';\r\n this.curaButtonOutlineColor = 'primary';\r\n this.ctasBorderColor = 'primary-darker';\r\n this.ctasIconColor = 'primary-darker';\r\n break;\r\n case Themes.STAR:\r\n this.labelTextColor = 'secondary-dark';\r\n this.curaButtonColor = 'secondary';\r\n this.curaButtonOutlineColor = 'secondary';\r\n this.ctasBorderColor = 'secondary-base';\r\n this.ctasIconColor = 'secondary-darker';\r\n break;\r\n }\r\n }\r\n\r\n reloadPage() {\r\n if (window !== undefined) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ctasSubscription?.unsubscribe();\r\n }\r\n}\r\n","<div class=\"rdsite-error\">\r\n @if (ctasIconColor && breadcrumbsItems.length) {\r\n <rdsite-breadcrumbs [breadcrumbs]=\"breadcrumbsItems\" [labelIconColor]=\"ctasIconColor\" [fontWeight]=\"breadcrumbFontWeight\"></rdsite-breadcrumbs>\r\n }\r\n <div class=\"rdsite-error-container\">\r\n @if (labelTextColor) {\r\n <cura-label [attr.color]=\"labelTextColor\">\r\n {{ type === 'server-response' ? '500' : '404' }}\r\n </cura-label>\r\n }\r\n\r\n <cura-heading color=\"neutral-black\" size=\"medium\" weight=\"bold\"> Algo deu errado :( </cura-heading>\r\n\r\n @if (responseText) {\r\n <cura-paragraph color=\"neutral-black\" size=\"large\">\r\n {{ responseText }}\r\n </cura-paragraph>\r\n }\r\n\r\n @if (type === error.NOT_FOUND && returnRoute && returnLabel) {\r\n <cura-button\r\n rdsitelink\r\n [href]=\"returnRoute\"\r\n size=\"medium\"\r\n type=\"button\"\r\n [color]=\"curaButtonColor\"\r\n font-color=\"light\"\r\n icon-name=\"arrowLeft\"\r\n target=\"_self\"\r\n >\r\n Voltar para {{ returnLabel }}\r\n </cura-button>\r\n }\r\n\r\n @if (type === error.SERVER_RESPONSE) {\r\n @if (curaButtonColor) {\r\n <cura-button size=\"medium\" type=\"button\" (click)=\"reloadPage()\" [attr.color]=\"curaButtonColor\" font-color=\"light\" icon-name=\"reload\" target=\"_self\">\r\n Atualizar página novamente\r\n </cura-button>\r\n }\r\n\r\n @if (returnLabel && returnRoute) {\r\n <cura-paragraph color=\"neutral-black\" size=\"large\">ou</cura-paragraph>\r\n @if (curaButtonOutlineColor) {\r\n <cura-button-outline\r\n rdsitelink\r\n [href]=\"returnRoute\"\r\n size=\"medium\"\r\n type=\"button\"\r\n [color]=\"curaButtonOutlineColor\"\r\n icon-name=\"arrowLeft\"\r\n target=\"_self\"\r\n >\r\n Voltar para {{ returnLabel }}\r\n </cura-button-outline>\r\n }\r\n }\r\n }\r\n @if (ctasContent.ctas!.length > 0 && ctasBorderColor && ctasIconColor) {\r\n <cura-paragraph class=\"wrapper-text\" color=\"neutral-black\" size=\"large\"> Você pode também: </cura-paragraph>\r\n\r\n <rdsite-cta-wrapper [content]=\"ctasContent\" [showTitleAndText]=\"false\" [colors]=\"{ border: ctasBorderColor, icon: ctasIconColor }\"></rdsite-cta-wrapper>\r\n }\r\n </div>\r\n</div>\r\n","import { Component, Input, CUSTOM_ELEMENTS_SCHEMA, HostBinding } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuraService } from '../../services';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { BreadcrumbsComponent } from '../breadcrumbs/breadcrumbs.component';\r\n\r\n@Component({\r\n selector: 'rdsite-page-header',\r\n standalone: true,\r\n imports: [CommonModule, BreadcrumbsComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './page-header.component.html',\r\n styleUrls: ['./page-header.component.scss'],\r\n})\r\nexport class PageHeaderComponent {\r\n @Input() pageTitle: string = '';\r\n @Input() pageHeaderText: string = '';\r\n @Input() hasPadding: boolean = false;\r\n @Input() breadcrumbs: BreadcrumbsItems[] = [];\r\n @Input() bgColor = 'primary-base';\r\n\r\n @HostBinding('style') get style() {\r\n return {\r\n '--bg-color': this.curaService.getColor(this.bgColor),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n }\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n}\r\n","<div class=\"page-header\" [ngClass]=\"{ 'more-padding': hasPadding }\">\r\n <div class=\"page-header-content\">\r\n @if (breadcrumbs.length) {\r\n <rdsite-breadcrumbs [breadcrumbs]=\"breadcrumbs\"></rdsite-breadcrumbs>\r\n }\r\n @if (pageTitle) {\r\n <h1>{{ pageTitle }}</h1>\r\n }\r\n @if (pageHeaderText) {\r\n <cura-paragraph color=\"neutral-purewhite\" margin-block=\"0\">{{ pageHeaderText }}</cura-paragraph>\r\n }\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-page-template-sidebar',\r\n standalone: true,\r\n imports: [CommonModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './page-template-sidebar.component.html',\r\n styleUrl: './page-template-sidebar.component.scss',\r\n})\r\nexport class PageTemplateSidebarComponent {\r\n @Input() header: TemplateRef<any> | null = null;\r\n @Input() stickyContent: TemplateRef<any> | null = null;\r\n @Input() beforeContent: TemplateRef<any> | null = null;\r\n @Input() content: TemplateRef<any> | null = null;\r\n @Input() afterContent: { template: TemplateRef<any>; show: boolean }[] | null = null;\r\n @Input() sidebarContent: TemplateRef<any> | null = null;\r\n @Input() isArticle = false;\r\n}\r\n","@if (isArticle) {\r\n <article class=\"rdsite-template-sidebar\">\r\n <ng-container *ngTemplateOutlet=\"mainContent\"></ng-container>\r\n </article>\r\n} @else {\r\n <section class=\"rdsite-template-sidebar\">\r\n <ng-container *ngTemplateOutlet=\"mainContent\"></ng-container>\r\n </section>\r\n}\r\n<ng-template #mainContent>\r\n @if (header) {\r\n <header class=\"rdsite-template-header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </header>\r\n }\r\n @if (stickyContent) {\r\n <div class=\"rdsite-template-sticky-content\">\r\n <ng-container *ngTemplateOutlet=\"stickyContent\"></ng-container>\r\n </div>\r\n }\r\n\r\n @if (beforeContent) {\r\n <div class=\"rdsite-template-before-content\">\r\n <ng-container *ngTemplateOutlet=\"beforeContent\"></ng-container>\r\n </div>\r\n }\r\n <div class=\"rdsite-template-container\">\r\n @if (content) {\r\n <section class=\"rdsite-content-container\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </section>\r\n }\r\n\r\n @if (sidebarContent) {\r\n <aside class=\"rdsite-sidebar-content-container\">\r\n <ng-container *ngTemplateOutlet=\"sidebarContent\"></ng-container>\r\n </aside>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n@if (afterContent?.length) {\r\n @for (tpl of afterContent; track $index) {\r\n @if (tpl.show) {\r\n <aside class=\"rdsite-template-after-content\">\r\n <ng-container *ngTemplateOutlet=\"tpl.template\"></ng-container>\r\n </aside>\r\n }\r\n }\r\n}\r\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Inject, Input, OnInit, Output, PLATFORM_ID } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { CuraService } from '../../../services';\r\nimport { MediaQueries } from '../../../helpers/mediaQueries';\r\nimport { FilterAction, FilterControlValue, FilterSection } from '../../../models/filters/filter-section.type';\r\nimport { FilterEvent, FilterPlanosConveniosChange } from '../../../models/filters/filter-planos-convenios.model';\r\n\r\n@Component({\r\n selector: 'rdsite-filter-generic',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './filter-generic.component.html',\r\n styleUrls: ['./filter-generic.component.scss'],\r\n})\r\nexport class FilterGenericComponent implements OnInit {\r\n @Output() filterChange = new EventEmitter<FilterEvent>();\r\n @Output() closeModal = new EventEmitter<boolean>();\r\n @Output() openMobileFilter = new EventEmitter<void>();\r\n\r\n @Input() withContainerStyle = true;\r\n @Input() showClearButton = true;\r\n @Input() showApplyButton = true;\r\n @Input() showCloseButton = false;\r\n @Input() disableButtonsWithoutSelection = false;\r\n @Input() showBadge = true;\r\n @Input() showToggleIcon = true;\r\n @Input() isFilterOpen = true;\r\n @Input() mobileBehavior = false;\r\n @Input() forceCollapsed = false;\r\n @Input() emitOnReset = false;\r\n @Input() textTitle = 'Filtrar por';\r\n @Input() sections: FilterSection[] = [];\r\n\r\n selectedFiltersCount: number = 0;\r\n windowWidth: number = 0;\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-opacity-black': this.curaService.getColor('neutral-black', 0.2),\r\n '--neutral-darker': this.curaService.getColor('neutral-darker'),\r\n '--neutral-medium': this.curaService.getColor('neutral-medium'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-lighter': this.curaService.getColor('neutral-lighter'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--primary-lighter': this.curaService.getColor('primary-lighter'),\r\n };\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private readonly cdr: ChangeDetectorRef,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.windowWidth = window.innerWidth;\r\n }\r\n\r\n if (this.forceCollapsed && this.isMobile()) {\r\n this.isFilterOpen = false;\r\n }\r\n }\r\n\r\n handleInputChange(event: any, control: FormControl): void {\r\n control.setValue(event.detail);\r\n this.updateSelectedFiltersCount();\r\n }\r\n\r\n handleSelectChange(event: any, control: FormControl): void {\r\n if (event?.detail !== undefined) {\r\n control.setValue(event.detail);\r\n this.updateSelectedFiltersCount();\r\n }\r\n }\r\n\r\n handleCheckboxChange(event: any, options: any[]): void {\r\n const changedOption = options.find((opt) => opt.value === event.detail.value);\r\n if (changedOption) changedOption.checked = event.detail.checked;\r\n\r\n this.updateCheckboxGroup(options);\r\n this.updateSelectedFiltersCount();\r\n }\r\n\r\n handleRadioChange(event: any, control: FormControl): void {\r\n const selectedValue = event.detail.value;\r\n control.setValue(control.value?.value === selectedValue ? null : { value: selectedValue });\r\n }\r\n\r\n filter(): void {\r\n this.emitFilterChange('filter');\r\n if (this.mobileBehavior || this.showCloseButton) this.close();\r\n }\r\n\r\n reset(): void {\r\n this.resetAllControls();\r\n this.updateSelectedFiltersCount();\r\n\r\n if (this.emitOnReset) {\r\n this.emitFilterChange('reset');\r\n this.close();\r\n }\r\n }\r\n\r\n close(): void {\r\n this.closeModal.emit(true);\r\n }\r\n\r\n toggleFilter(): void {\r\n if (this.mobileBehavior && this.isMobile()) {\r\n this.openMobileFilter.emit();\r\n } else {\r\n this.isFilterOpen = !this.isFilterOpen;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n hasSelection(): boolean {\r\n this.updateSelectedFiltersCount();\r\n return this.selectedFiltersCount > 0;\r\n }\r\n\r\n isMobile(): boolean {\r\n return this.windowWidth <= MediaQueries.smallBreakpoint;\r\n }\r\n\r\n getRadioGroupValue(control?: FormControl<FilterControlValue>): any {\r\n const value = control?.value;\r\n return value && typeof value === 'object' && 'value' in value ? value.value : null;\r\n }\r\n\r\n hasScroll(section: FilterSection): boolean {\r\n switch (section.type) {\r\n case 'checkbox-group':\r\n return section.config.options && section.config.options.length > 6;\r\n case 'radio-group':\r\n return section.config.options && section.config.options.length > 6;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n getSectionClass(section: FilterSection): string {\r\n return this.hasScroll(section) ? 'scrollable' : '';\r\n }\r\n\r\n shouldHandleMobileClick(): boolean {\r\n return this.mobileBehavior && this.isMobile() && this.forceCollapsed;\r\n }\r\n\r\n handleMobileClick(): void {\r\n if (this.shouldHandleMobileClick()) {\r\n this.openMobileFilter.emit();\r\n }\r\n }\r\n\r\n private emitFilterChange(action: FilterAction): void {\r\n const filterData = this.buildFilterData();\r\n const isEmpty = this.isFilterDataEmpty(filterData);\r\n\r\n this.filterChange.emit({\r\n data: this.emitOnReset || !isEmpty ? filterData : null,\r\n action: action,\r\n });\r\n }\r\n\r\n private updateSelectedFiltersCount(): void {\r\n this.selectedFiltersCount = this.sections.reduce((count, section) => {\r\n if (!section.config?.control) return count;\r\n\r\n const value = section.config.control.value;\r\n\r\n switch (section.type) {\r\n case 'checkbox-group':\r\n return count + (Array.isArray(value) ? value.filter((item) => item?.checked).length : 0);\r\n case 'radio-group':\r\n return count + (value?.value ? 1 : 0);\r\n default:\r\n return count + (value ? 1 : 0);\r\n }\r\n }, 0);\r\n }\r\n\r\n private resetAllControls(): void {\r\n this.sections.forEach((section) => {\r\n if (!section.config?.control) return;\r\n\r\n if (section.type === 'checkbox-group') {\r\n const resetOptions = section.config.options.map((option: any) => ({ ...option, checked: false }));\r\n section.config.options = resetOptions;\r\n section.config.control.setValue(resetOptions, { emitEvent: false });\r\n } else {\r\n section.config.control.reset('', { emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n private updateCheckboxGroup(options: any[]): void {\r\n this.sections\r\n .filter((section) => section.type === 'checkbox-group')\r\n .forEach((section) => {\r\n section.config.options = [...options];\r\n section.config.control.setValue([...options]);\r\n });\r\n }\r\n\r\n private buildFilterData(): FilterPlanosConveniosChange | any {\r\n const filterData: FilterPlanosConveniosChange = {\r\n unidade: '',\r\n estado: '',\r\n cobertura: [],\r\n };\r\n\r\n this.sections.forEach((section) => {\r\n if (!section.config?.control) return;\r\n\r\n const value = section.config.control.value;\r\n\r\n switch (section.type) {\r\n case 'input':\r\n filterData.unidade = value || '';\r\n break;\r\n case 'select':\r\n filterData.estado = value || '';\r\n break;\r\n case 'checkbox-group':\r\n filterData.cobertura = Array.isArray(value) ? value.filter((item) => item.checked) : [];\r\n break;\r\n }\r\n });\r\n\r\n return filterData;\r\n }\r\n\r\n private isFilterDataEmpty(filterData: FilterPlanosConveniosChange): boolean {\r\n return Object.values(filterData).every((val) => val === null || val === '' || (Array.isArray(val) && val.length === 0));\r\n }\r\n}\r\n","<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Faça a sua Seleção' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { Estados } from '../../../enums';\r\nimport { FilterPlanosConvenios, FilterPlanosConveniosChange, FilterPlanosConveniosCobertura } from '../../../models/filters/filter-planos-convenios.model';\r\nimport { CuraService } from '../../../services';\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nimport type * as _ from '@rededor/cura/dist/types/components.js';\r\n\r\ninterface CuraCheckboxOption<T = any> {\r\n value: T;\r\n checked: boolean;\r\n indeterminate?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'rdsite-filter-planos-convenios',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './filter-planos-convenios.component.html',\r\n styleUrls: ['./filter-planos-convenios.component.scss'],\r\n})\r\nexport class FilterPlanosConveniosComponent implements AfterViewInit {\r\n @Output() filterChange = new EventEmitter<FilterPlanosConveniosChange>();\r\n @Output() closeModal = new EventEmitter<boolean>();\r\n\r\n @Input() withContainerStyle: boolean = false;\r\n @Input() isLoading: boolean = false;\r\n @Input() emitOnChange: boolean = false;\r\n\r\n @Input() initialEstado: Estados | string | number | null = null;\r\n\r\n @Input() estados: FilterPlanosConvenios[] = Object.entries(Estados).map(([key, value]) => ({\r\n label: value,\r\n value: key,\r\n }));\r\n\r\n @Input() coberturas: FilterPlanosConveniosCobertura[] = [\r\n { label: 'Consultas', value: 'FLAG_ACEITA_AMBULATORIO', checked: false },\r\n { label: 'Emergência', value: 'FLAG_ACEITA_PS', checked: false },\r\n { label: 'Exames', value: 'FLAG_ACEITA_EXAME', checked: false },\r\n { label: 'Internação', value: 'FLAG_ACEITA_INTERNACAO', checked: false },\r\n ];\r\n\r\n @Input() unidadeControl = new FormControl<string | number | null>('');\r\n @Input() estadoControl = new FormControl<Estados | string | number | null>('');\r\n coberturaControl = new FormControl<FilterPlanosConveniosCobertura[]>(this.coberturas || []);\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-darker': this.curaService.getColor('neutral-darker'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-lighter': this.curaService.getColor('neutral-lighter'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n };\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.initialEstado && Array.isArray(this.estados) && this.estados.find((estado) => estado.value === this.initialEstado)) {\r\n setTimeout(() => {\r\n this.estadoControl.setValue(this.initialEstado);\r\n this.filter();\r\n }, 50);\r\n }\r\n }\r\n\r\n inputTextChange({ detail }: CustomEvent<number | string>) {\r\n this.unidadeControl.setValue(detail);\r\n if (this.emitOnChange) {\r\n this.filterChange.emit({\r\n unidade: detail,\r\n estado: this.estadoControl.value,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n }\r\n\r\n selectChange({ detail }: CustomEvent<number | string>) {\r\n this.estadoControl.setValue(detail);\r\n if (this.emitOnChange) {\r\n this.filterChange.emit({\r\n unidade: this.unidadeControl.value,\r\n estado: detail,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n }\r\n\r\n checkboxChange({ detail }: CustomEvent<CuraCheckboxOption<string>>) {\r\n if (!this.coberturas) return;\r\n const currOption: FilterPlanosConveniosCobertura | undefined = this.coberturas.find(\r\n (option: FilterPlanosConveniosCobertura) => option.value == detail.value,\r\n );\r\n if (currOption) {\r\n currOption.checked = detail.checked;\r\n }\r\n this.coberturaControl.setValue(this.coberturas);\r\n if (this.emitOnChange) {\r\n this.filterChange.emit({\r\n unidade: this.unidadeControl.value,\r\n estado: this.estadoControl.value,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n }\r\n\r\n filter(): void {\r\n this.filterChange.emit({\r\n unidade: this.unidadeControl.value,\r\n estado: this.estadoControl.value,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n\r\n reset(): void {\r\n const hasCoverage = this.coberturaControl.value!.some((cob) => cob.checked);\r\n const hasFilter = Boolean(this.unidadeControl.value) || Boolean(this.estadoControl.value) || Boolean(hasCoverage);\r\n this.closeModal.emit(!hasFilter);\r\n this.unidadeControl.reset('');\r\n this.estadoControl.reset('');\r\n this.coberturas.forEach((cobertura) => (cobertura.checked = false));\r\n this.coberturaControl.reset(this.coberturas);\r\n }\r\n}\r\n","<div class=\"filter-planos-convenios\" [ngClass]=\"{ 'container-style': withContainerStyle }\">\r\n @if (!isLoading) {\r\n <cura-heading size=\"small\" level=\"4\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\"> Refine sua busca </cura-heading>\r\n\r\n <div class=\"filter-planos-convenios-unidade\">\r\n <cura-input-text\r\n placeholder=\"Nome da unidade\"\r\n name=\"unidade-input\"\r\n icon-name=\"search\"\r\n autocomplete=\"off\"\r\n [attr.value]=\"unidadeControl.value\"\r\n (valueChange)=\"inputTextChange($event)\"\r\n ></cura-input-text>\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-estado\">\r\n @if (estados) {\r\n <cura-select\r\n label=\"Selecione o estado\"\r\n placeholder=\"Faça a sua Seleção\"\r\n mode=\"default\"\r\n size=\"medium\"\r\n status=\"default\"\r\n [attr.value]=\"estadoControl.value\"\r\n (selected)=\"selectChange($event)\"\r\n >\r\n <cura-select-option [attr.value]=\"''\">Faça a sua Seleção</cura-select-option>\r\n\r\n @for (estado of estados || []; track estado?.value) {\r\n <cura-select-option [attr.value]=\"estado?.value\">{{ estado?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-cobertura\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n Filtre pela cobertura do seu plano\r\n </cura-heading>\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-content\">\r\n <cura-heading size=\"xsmall\" level=\"5\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\"> Tipos de cobertura </cura-heading>\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n Você pode selecionar uma ou mais portas de entrada, de acordo com a cobertura do seu plano.\r\n </cura-paragraph>\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-checkboxes\">\r\n @for (option of coberturas || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"checkboxChange($event)\"\r\n >\r\n </cura-checkbox>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-buttons\">\r\n <cura-button-transparent size=\"small\" color=\"primary\" font-color=\"dark\" text-align=\"center\" (click)=\"reset()\">\r\n <span> Limpar todos os filtros </span>\r\n </cura-button-transparent>\r\n\r\n <cura-button size=\"medium\" color=\"primary\" font-color=\"light\" background=\"light\" text-align=\"center\" (click)=\"filter()\"> Filtrar </cura-button>\r\n </div>\r\n } @else {\r\n <cura-loader-circle color=\"primary\" size=\"small\"> </cura-loader-circle>\r\n }\r\n</div>\r\n","import { AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Inject, Input, Output, PLATFORM_ID } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-filter-letter-and-terms',\r\n standalone: true,\r\n imports: [],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './filter-letter-and-terms.component.html',\r\n styleUrl: './filter-letter-and-terms.component.scss',\r\n})\r\nexport class FilterLetterAndTermsComponent implements AfterViewInit {\r\n @Input() options: string[] = [];\r\n @Input() baseUrl: string = '';\r\n @Input() baseUrlAll: string = '';\r\n @Input() enableScroll = false;\r\n private isFirstScroll = true;\r\n private _selectedOption: string = '';\r\n\r\n @Input()\r\n set selectedOption(value: string) {\r\n if (this._selectedOption === value) return;\r\n this._selectedOption = value;\r\n if (this.enableScroll && !this.isFirstScroll) {\r\n this.scrollToSelectedOption(value);\r\n }\r\n }\r\n\r\n get selectedOption(): string {\r\n return this._selectedOption;\r\n }\r\n\r\n @Output() optionSelected: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding('style') get style() {\r\n return {\r\n '--font-family': this.curaService.getFontFamily(''),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-pale': this.curaService.getColor('neutral-pale'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--color-one-light': this.curaService.getColor('primary-light'),\r\n '--color-one-base': this.curaService.getColor('primary-base'),\r\n '--color-one-dark': this.curaService.getColor('primary-dark'),\r\n '--color-one-darker': this.curaService.getColor('primary-darker'),\r\n };\r\n }\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.selectedOption) {\r\n setTimeout(() => {\r\n this.scrollToSelectedOption(this.selectedOption);\r\n this.isFirstScroll = false;\r\n }, 100);\r\n }\r\n }\r\n\r\n selectOption(option: string, event: Event): void {\r\n event.preventDefault();\r\n if (this._selectedOption !== option) {\r\n this._selectedOption = option;\r\n this.optionSelected.emit(option);\r\n this.scrollToSelectedOption(option);\r\n }\r\n }\r\n\r\n scrollToSelectedOption(value: string) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const elementId = value || 'todas';\r\n const selectedElement = elementId === 'todas' ? this.document.getElementById('todas') : this.document.getElementById(value);\r\n if (selectedElement) {\r\n selectedElement.scrollIntoView({\r\n behavior: 'smooth',\r\n inline: 'center',\r\n block: 'nearest',\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"filter-letter-and-terms\">\r\n <a\r\n id=\"todas\"\r\n rdsitelink\r\n class=\"filter-option\"\r\n [class.selected]=\"selectedOption === ''\"\r\n [href]=\"baseUrlAll ? baseUrlAll : baseUrl ? baseUrl : '#'\"\r\n (click)=\"selectOption('', $event)\"\r\n >\r\n TODAS\r\n </a>\r\n\r\n @for (option of options; track option) {\r\n <a\r\n [id]=\"option\"\r\n rdsitelink\r\n class=\"filter-option\"\r\n [class.selected]=\"selectedOption === option\"\r\n [href]=\"baseUrl ? baseUrl + option.toLowerCase() : '#'\"\r\n (click)=\"selectOption(option, $event)\"\r\n >\r\n {{ option }}\r\n </a>\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n signal,\r\n effect,\r\n OnInit,\r\n ViewChild,\r\n ElementRef,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren,\r\n QueryList,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SectionNavigationData, SectionNavigationConfig } from '../../models/section-navigation.model';\r\nimport { CuraService } from '../../services/cura/cura.service';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { BehaviorSubject, debounceTime, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'nav[rdsite-section-navigation]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './section-navigation.component.html',\r\n styleUrls: ['./section-navigation.component.scss'],\r\n})\r\nexport class SectionNavigationComponent implements OnInit, OnDestroy {\r\n readonly sections = signal<SectionNavigationData[]>([]);\r\n readonly config = signal<SectionNavigationConfig | undefined>(undefined);\r\n readonly activeSection = signal<string>('');\r\n\r\n isMobile: boolean = window.innerWidth < 768;\r\n\r\n scrollToMenuAnchorSubscription: Subscription | null = null;\r\n scrollToMenuAnchorSubject: BehaviorSubject<string> = new BehaviorSubject('');\r\n\r\n @ViewChild('containerEl') containerEl!: ElementRef<HTMLDivElement>;\r\n @ViewChildren('anchorEl') anchorsEl!: QueryList<ElementRef<HTMLAnchorElement>>;\r\n\r\n @HostListener('window:resize')\r\n onWindowResize(): void {\r\n this.isMobile = window.innerWidth < 768;\r\n }\r\n\r\n @HostListener('window:scroll')\r\n onWindowScroll(): void {\r\n this.windowScroll();\r\n }\r\n\r\n @Input({ required: true })\r\n set navigationSections(value: SectionNavigationData[]) {\r\n if (!value?.length) {\r\n throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');\r\n }\r\n this.sections.set(value);\r\n\r\n if (!this.activeSection()) {\r\n this.activeSection.set(value[0].id);\r\n }\r\n }\r\n\r\n @Input()\r\n set navigationConfig(value: SectionNavigationConfig) {\r\n this.config.set(value);\r\n }\r\n\r\n @Input() ariaLabel = 'Navegação da página';\r\n @Input() anchorAdjustment = 0;\r\n\r\n @Output() sectionChange = new EventEmitter<SectionNavigationData>();\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n '--neutral-black': this.curaService.getColor('neutral-black', 0.16),\r\n '--color-base': this.curaService.getColor('primary-base'),\r\n '--font-size': this.curaService.getFontSize(),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n @ViewChild('navigationMenu', { static: true }) navigationMenu!: ElementRef<HTMLUListElement>;\r\n\r\n constructor(private curaService: CuraService) {\r\n effect(() => {\r\n const sections = this.sections();\r\n if (sections.length && !this.activeSection()) {\r\n this.activeSection.set(sections[0].id);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n const sections = this.sections();\r\n if (!sections.length) {\r\n throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');\r\n }\r\n\r\n if (!this.activeSection()) {\r\n this.activeSection.set(sections[0].id);\r\n }\r\n\r\n // Usado para evitar multiplos calculos desnecessários enquanto scrolla\r\n const TIME_TO_AVOID_UNECESSARY_CALCULATIONS = 50;\r\n this.scrollToMenuAnchorSubscription = this.scrollToMenuAnchorSubject.pipe(debounceTime(TIME_TO_AVOID_UNECESSARY_CALCULATIONS)).subscribe((anchorId) => {\r\n this.scrollToMenuAnchor(anchorId);\r\n });\r\n }\r\n\r\n private windowScroll(): void {\r\n const navHeight = document.querySelector<HTMLElement>('.rdsite-section-navigation')?.getBoundingClientRect().top || 0;\r\n const pageHeaderHeight = document.querySelector<HTMLElement>('.page-header')?.getBoundingClientRect().top || 0;\r\n let selectedIndex = -1;\r\n this.sections()?.forEach((section, index) => {\r\n const menuTop = document.querySelector<HTMLElement>(`#${section.id}`)?.getBoundingClientRect().top || 0;\r\n if (menuTop) {\r\n const calc = window.scrollY - menuTop + navHeight + pageHeaderHeight;\r\n if (calc >= 0) {\r\n selectedIndex = index;\r\n if (this.sections()?.[selectedIndex]) {\r\n this.activeSection.set(this.sections()?.[selectedIndex]?.id);\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (this.sections()?.[selectedIndex]) {\r\n this.scrollToMenuAnchorSubject.next(this.sections()?.[selectedIndex]?.id);\r\n }\r\n }\r\n\r\n scrollToMenuAnchor(anchorId: string): void {\r\n const anchor = this.anchorsEl.find((anchor) => anchor.nativeElement.id == `anchor-${anchorId}`);\r\n if (!anchor) return;\r\n const distanceFromTheCenterOfTheAnchor = (anchor.nativeElement.offsetLeft + anchor.nativeElement.offsetLeft + anchor?.nativeElement.offsetWidth) / 2;\r\n const centerOfContainerEl = this.containerEl?.nativeElement.clientWidth / 2;\r\n const left = distanceFromTheCenterOfTheAnchor - centerOfContainerEl;\r\n this.containerEl.nativeElement.scrollTo({\r\n left: left,\r\n behavior: 'smooth',\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.scrollToMenuAnchorSubscription?.unsubscribe();\r\n }\r\n}\r\n","<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n <ul #containerEl class=\"rdsite-section-navigation-menu\" role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n @if (section.title) {\r\n <li role=\"none\">\r\n <a\r\n #anchorEl\r\n id=\"anchor-{{ section.id }}\"\r\n role=\"menuitem\"\r\n [href]=\"'#' + section.id\"\r\n rdsitelink\r\n [anchorAdjustment]=\"anchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n [ngClass]=\"{ active: activeSection() === section.id }\"\r\n >\r\n {{ section.title }}\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n</nav>\r\n","import { Component, Inject, Input, OnInit, PLATFORM_ID } from '@angular/core';\r\nimport { CommonModule, isPlatformServer } from '@angular/common';\r\nimport { ImageMimeType } from '../../enums/ImageMimeType.enum';\r\nimport { RdsiteImage } from '../../models/images/rdsite-image.model';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Component({\r\n selector: 'rdsite-image',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './image.component.html',\r\n styleUrl: './image.component.scss',\r\n})\r\nexport class ImageComponent implements OnInit {\r\n @Input() imageWebpSrc: string = '';\r\n @Input() imageDefaultSrc: string = '';\r\n @Input() imageSizes: RdsiteImage[] = [];\r\n @Input() mimeType: ImageMimeType = ImageMimeType.JPEG;\r\n @Input() alt: string = '';\r\n @Input() title: string = '';\r\n @Input() loading: 'eager' | 'lazy' = 'lazy';\r\n\r\n constructor(\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.imageWebpSrc) {\r\n this.mimeType = ImageMimeType.WEBP;\r\n }\r\n\r\n if (isPlatformServer(this.platformId)) {\r\n this.handleServerImageError();\r\n }\r\n }\r\n\r\n private handleServerImageError() {\r\n if (!this.imageDefaultSrc) {\r\n this.handleImageError();\r\n }\r\n }\r\n\r\n handleImageError(): void {\r\n this.imageDefaultSrc = this.libConfig.fallbackImgSrc || '';\r\n }\r\n}\r\n","<picture>\r\n @if (imageWebpSrc) {\r\n <source [srcset]=\"imageWebpSrc\" [type]=\"mimeType\" />\r\n }\r\n @for (image of imageSizes; track image.source_url) {\r\n <source [srcset]=\"image.source_url\" [media]=\"image.media\" [type]=\"image.mime_type\" />\r\n }\r\n <img [src]=\"imageDefaultSrc\" [alt]=\"alt\" [title]=\"title\" [attr.loading]=\"loading\" (error)=\"handleImageError()\" />\r\n</picture>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, HostBinding, Input } from '@angular/core';\r\nimport { CuraService } from '../../../services';\r\nimport { ImageComponent } from '../../image/image.component';\r\nimport { RdsiteImage } from '../../../models/images/rdsite-image.model';\r\nimport { ImageMimeType } from '../../../enums/ImageMimeType.enum';\r\nimport { RdsiteLinkDirective } from '../../../directives';\r\nimport { UnidadeCoverageType } from '../../../enums';\r\n\r\n@Component({\r\n selector: 'rdsite-card-unidade-planos-convenios',\r\n standalone: true,\r\n imports: [ImageComponent, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './card-unidade-planos-convenios.component.html',\r\n styleUrl: './card-unidade-planos-convenios.component.scss',\r\n})\r\nexport class CardUnidadePlanosConveniosComponent {\r\n @Input() title: string = '';\r\n @Input() subtitle?: string = '';\r\n @Input() coverage?: {\r\n title: UnidadeCoverageType;\r\n list?: {\r\n title: string;\r\n isCovered: boolean;\r\n }[];\r\n };\r\n @Input() address?: string = '';\r\n @Input() cta1?: {\r\n label: string;\r\n link: string;\r\n };\r\n @Input() cta2?: {\r\n label: string;\r\n link: string;\r\n };\r\n\r\n @Input() logoWebpSrc: string = '';\r\n @Input() logoDefaultSrc: string = '';\r\n @Input() logoSizes: RdsiteImage[] = [];\r\n @Input() logoMimeType: ImageMimeType = ImageMimeType.JPEG;\r\n @Input() logoAlt: string = '';\r\n @Input() logoTitle: string = '';\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-white': this.curaService.getColor('neutral-white'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--color-base': this.curaService.getColor('primary-base'),\r\n };\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n}\r\n","<div class=\"rdsite-card-unidade-planos-convenios\">\r\n <rdsite-image\r\n class=\"rdsite-card-unidade-planos-convenios-logo\"\r\n [imageWebpSrc]=\"logoWebpSrc\"\r\n [imageDefaultSrc]=\"logoDefaultSrc\"\r\n [imageSizes]=\"logoSizes\"\r\n [mimeType]=\"logoMimeType\"\r\n [alt]=\"logoAlt\"\r\n [title]=\"logoTitle\"\r\n loading=\"lazy\"\r\n ></rdsite-image>\r\n\r\n <div class=\"rdsite-card-unidade-planos-convenios-heading\">\r\n @if (title) {\r\n <cura-heading size=\"small\" level=\"2\" color=\"neutral-black\" weight=\"bold\" margin-block=\"0\" line-height=\"150%\">\r\n {{ title }}\r\n </cura-heading>\r\n }\r\n\r\n @if (subtitle) {\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" weight=\"bold\" margin-block=\"0\" line-height=\"130%\">\r\n <span class=\"cura-paragraph-weight\">\r\n {{ subtitle }}\r\n </span>\r\n </cura-paragraph>\r\n }\r\n </div>\r\n\r\n <div class=\"rdsite-card-unidade-planos-convenios-content\">\r\n @if (coverage) {\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-black\" margin-block=\"0\" line-height=\"130%\">\r\n <span class=\"cura-paragraph-weight\">\r\n {{ coverage.title }}\r\n </span>\r\n </cura-paragraph>\r\n\r\n @if (coverage.list?.length) {\r\n <div class=\"coverage-list\">\r\n @for (item of coverage.list; track item.title) {\r\n <cura-badge-pill type=\"solid\" color=\"success\" [attr.disabled]=\"!item.isCovered\" [attr.icon-name]=\"item.isCovered ? 'check' : 'close'\">\r\n {{ item.title }}\r\n </cura-badge-pill>\r\n }\r\n </div>\r\n }\r\n }\r\n\r\n @if (address) {\r\n <div class=\"address\">\r\n <cura-icon name=\"geotag\" color=\"neutral-dark\" size=\"20\"></cura-icon>\r\n\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-black\" margin-block=\"0\" line-height=\"130%\">\r\n <span class=\"cura-paragraph-weight\"> {{ address }} • </span>\r\n <a rdsitelink href=\"https://www.google.com/maps?q={{ address }}\">Mapa</a>\r\n </cura-paragraph>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"rdsite-card-unidade-planos-convenios-ctas\">\r\n @if (cta2 && cta2.label && cta2.link) {\r\n <cura-button type=\"button\" size=\"medium\" icon-name=\"calendar\" color=\"accent\" rdsitelink [href]=\"cta2.link\">\r\n {{ cta2.label }}\r\n </cura-button>\r\n }\r\n\r\n @if (cta1 && cta1.label && cta1.link) {\r\n <cura-button type=\"button\" size=\"medium\" icon-name=\"exam\" color=\"accent\" rdsitelink [href]=\"cta1.link\">\r\n {{ cta1.label }}\r\n </cura-button>\r\n }\r\n </div>\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, OnChanges, Output } from '@angular/core';\r\nimport { CuraService } from '../../../services';\r\nimport { RdsiteLinkDirective } from '../../../directives';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-expandable-card',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './expandable-card.component.html',\r\n styleUrls: ['./expandable-card.component.scss'],\r\n})\r\nexport class ExpandableCardComponent implements OnChanges {\r\n @Input() opened = false;\r\n @Input() label: string = '';\r\n @Input() link: string = '';\r\n @Input() badgeLabel: string = '';\r\n @Input() openIcon: string = 'plus';\r\n @Input() closeIcon: string = 'minus';\r\n @Input() disabled = false;\r\n\r\n @Output() toggle: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-base': this.curaService.getColor('neutral-base'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--color-one-dark': this.curaService.getColor('primary-dark'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n @HostBinding('class') classes: string[] = [];\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n\r\n ngOnChanges(): void {\r\n this.checkDisabledCard();\r\n }\r\n\r\n toggleCard() {\r\n this.opened = !this.opened;\r\n this.toggle.emit(this.opened);\r\n }\r\n\r\n checkDisabledCard() {\r\n this.classes = this.disabled ? ['disabled'] : [];\r\n }\r\n}\r\n","@if (label) {\r\n <div class=\"card-header\" [ngClass]=\"{ noBadge: !badgeLabel }\" (click)=\"toggleCard()\">\r\n @if (link && label) {\r\n <a rdsitelink class=\"card-link\" [href]=\"link\">\r\n {{ label }}\r\n <cura-icon name=\"arrowRight\" color=\"primary-dark\" size=\"16\"></cura-icon>\r\n </a>\r\n }\r\n\r\n @if (badgeLabel) {\r\n <cura-badge-pill type=\"solid\" color=\"primary\">\r\n {{ badgeLabel }}\r\n </cura-badge-pill>\r\n }\r\n\r\n <cura-icon [attr.name]=\"opened ? closeIcon : openIcon\" color=\"primary-dark\" size=\"20\"></cura-icon>\r\n </div>\r\n\r\n <div class=\"card-content\" [ngClass]=\"{ opened: opened }\">\r\n <ng-content></ng-content>\r\n </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../directives';\r\nimport { CuraService } from '../../../services';\r\nimport { ContentBanner } from '../../../models/content-banner.model';\r\nimport { ImageComponent } from '../../image/image.component';\r\n\r\n@Component({\r\n selector: 'rdsite-content-banner',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, ImageComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './content-banner.component.html',\r\n styleUrls: ['./content-banner.component.scss'],\r\n})\r\nexport class ContentBannerComponent {\r\n @Input() content: ContentBanner | null = null;\r\n @Output() ctaClick: EventEmitter<{ text: string; link: string }> = new EventEmitter<{ text: string; link: string }>();\r\n\r\n @HostBinding('style') get styleBinding() {\r\n return {\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--color-one-lighter': this.curaService.getColor('primary-lighter', 0.5),\r\n };\r\n }\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n onCtaClick(text: string, link: string) {\r\n this.ctaClick.emit({ text, link });\r\n }\r\n}\r\n","@if (content?.title) {\r\n <cura-heading level=\"4\" weight=\"bold\" color=\"neutral-purewhite\" margin-block=\"0\">\r\n {{ content?.title }}\r\n </cura-heading>\r\n}\r\n\r\n@if (content?.text) {\r\n <cura-paragraph color=\"neutral-purewhite\" margin-block=\"0\">\r\n {{ content?.text }}\r\n </cura-paragraph>\r\n}\r\n\r\n@if (content?.info?.length) {\r\n <div class=\"info\" data-testid=\"_content-banner-info\">\r\n @for (item of content?.info || []; track $index) {\r\n @if (item.text) {\r\n <a [ngClass]=\"{ disabled: !item.link }\" rdsitelink [href]=\"item.link || ''\">\r\n @if (item.icon) {\r\n <cura-icon [name]=\"item.icon\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n }\r\n {{ item.text }}\r\n </a>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n@if (content?.cta?.text && content?.cta?.link) {\r\n <cura-button\r\n (click)=\"onCtaClick(content?.cta?.text || '', content?.cta?.link || '')\"\r\n size=\"large\"\r\n type=\"button\"\r\n color=\"accent\"\r\n [attr.icon-name]=\"content?.cta?.icon || ''\"\r\n [href]=\"content?.cta?.link\"\r\n target=\"_self\"\r\n >\r\n {{ content?.cta?.text }}\r\n </cura-button>\r\n}\r\n\r\n@if (content?.image) {\r\n <rdsite-image [imageDefaultSrc]=\"content?.image.url\" [imageWebpSrc]=\"content?.image?.webp_url\" [title]=\"content?.image.title\" [alt]=\"content?.image.alt\">\r\n </rdsite-image>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-pagination',\r\n standalone: true,\r\n imports: [CommonModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './pagination.component.html',\r\n styleUrl: './pagination.component.scss',\r\n})\r\nexport class PaginationComponent {\r\n @Input() totalPages!: number;\r\n @Input() activePage!: number;\r\n @Input() perPage: number = 10;\r\n @Input() perPageOptions = [10, 30, 50];\r\n @Input() customStyle: { [key: string]: string } = {};\r\n @Input() containerClass = true;\r\n @Input() darkMode: boolean = false;\r\n\r\n @Output() pageChange: EventEmitter<number> = new EventEmitter();\r\n @Output() perPageChange: EventEmitter<number> = new EventEmitter();\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--font-family': this.curaService.getFontFamily(''),\r\n '--primary-base': this.curaService.getColor('primary-base'),\r\n '--primary-dark': this.curaService.getColor('primary-dark'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n };\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n\r\n next() {\r\n if (this.activePage < this.totalPages) {\r\n this.pageChange.emit(this.activePage + 1);\r\n }\r\n }\r\n\r\n prev() {\r\n if (this.activePage > 1) {\r\n this.pageChange.emit(this.activePage - 1);\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"rdsite-pagination\"\r\n [ngClass]=\"{ 'rdsite-container': containerClass, 'dark-mode': darkMode }\"\r\n [style]=\"customStyle\"\r\n data-testid=\"_rdsite-rdsite-pagination\"\r\n>\r\n @if (totalPages && totalPages > 1) {\r\n <nav class=\"rdsite-pagination-nav\" aria-label=\"Pagination nav\">\r\n <button (click)=\"prev()\" type=\"button\" title=\"Página anterior\" class=\"button-link\" [attr.disabled]=\"activePage === 1 ? true : null\">\r\n <cura-icon\r\n name=\"arrowLeftCircle\"\r\n size=\"24\"\r\n [attr.color]=\"activePage === 1 ? (darkMode ? 'primary-base' : 'neutral-dark') : darkMode ? 'neutral-purewhite' : 'primary-base'\"\r\n >\r\n </cura-icon>\r\n </button>\r\n\r\n <span>Página {{ activePage }} - {{ totalPages }}</span>\r\n\r\n <button (click)=\"next()\" type=\"button\" title=\"Próxima página\" class=\"button-link\" [attr.disabled]=\"activePage === totalPages ? true : null\">\r\n <cura-icon\r\n name=\"arrowRightCircle\"\r\n size=\"24\"\r\n [attr.color]=\"activePage === totalPages ? (darkMode ? 'primary-base' : 'neutral-dark') : darkMode ? 'neutral-purewhite' : 'primary-base'\"\r\n >\r\n </cura-icon>\r\n </button>\r\n </nav>\r\n }\r\n\r\n @if (perPageOptions.length) {\r\n <div class=\"rdsite-pagination-pp-options\" data-testid=\"_rdsite-rdsite-pagination-pp-options\">\r\n <span>Resultados por página</span>\r\n\r\n <div class=\"rdsite-pagination-pp-options-controls\" data-testid=\"_rdsite-rdsite-pagination-pp-options-controls\">\r\n @for (option of perPageOptions; let i = $index; track option) {\r\n <button\r\n type=\"button\"\r\n (click)=\"perPageChange.emit(option)\"\r\n [attr.disabled]=\"option === perPage ? true : null\"\r\n title=\"Exibir {{ option }} resultados por página.\"\r\n class=\"button-link\"\r\n >\r\n {{ option }}\r\n @if (i < perPageOptions.length - 1) {\r\n <span class=\"bar\">|</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, HostBinding, Inject, input, OnDestroy, OnInit, PLATFORM_ID, signal, ViewChild } from '@angular/core';\r\nimport { CuraService, YoutubeService } from '../../../services';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { YouTubePlayer, YouTubePlayerModule } from '@angular/youtube-player';\r\nimport { ImageComponent } from '../../image/image.component';\r\n\r\n@Component({\r\n selector: 'rdsite-testimonial-card',\r\n standalone: true,\r\n imports: [ImageComponent, YouTubePlayerModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './testimonial-card.component.html',\r\n styleUrls: ['./testimonial-card.component.scss'],\r\n})\r\nexport class TestimonialCardComponent implements OnInit, OnDestroy {\r\n type = input('image');\r\n image = input<any | null>(null);\r\n videoUrl = input('');\r\n text = input('');\r\n author = input('');\r\n position = input('');\r\n\r\n videoId = signal<string | null>('');\r\n\r\n platformBrowser = signal<any | null>(null);\r\n\r\n @ViewChild('youtubePlayer') youtubePlayer!: YouTubePlayer;\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--color-one-darker': this.curaService.getColor('primary-darker'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private readonly youtubeService: YoutubeService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {\r\n this.youtubeService.setScript();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.platformBrowser.set(isPlatformBrowser(this.platformId));\r\n\r\n if (this.type() === 'video' && this.videoUrl()) {\r\n this.getVideoId();\r\n }\r\n }\r\n\r\n getVideoId(): string {\r\n const params = new URLSearchParams(this.videoUrl().split('?')[1]);\r\n return params.get('v') || '';\r\n }\r\n\r\n stopVideo(): void {\r\n if (this.getVideoId() && this.youtubePlayer) {\r\n this.youtubePlayer.stopVideo();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.youtubeService.removeScript();\r\n }\r\n}\r\n","@if ((image() || getVideoId()) && text()) {\r\n @switch (type()) {\r\n @case ('image') {\r\n @if (image()) {\r\n <rdsite-image\r\n [imageWebpSrc]=\"image()?.webp_sizes?.['rdsl-card-unidades']\"\r\n [imageDefaultSrc]=\"image()?.sizes?.['rdsl-card-unidades']\"\r\n [mimeType]=\"image()?.mime_type\"\r\n [alt]=\"image()?.alt\"\r\n >\r\n </rdsite-image>\r\n }\r\n }\r\n @case ('video') {\r\n @if (getVideoId() && platformBrowser()) {\r\n <youtube-player #youtubePlayer [videoId]=\"getVideoId()\" [disablePlaceholder]=\"true\"></youtube-player>\r\n }\r\n }\r\n }\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"26\" viewBox=\"0 0 32 26\" fill=\"none\">\r\n <path\r\n d=\"M14.375 3.3125C12.9062 4.15625 11.7188 4.89062 10.8125 5.51562C9.90625 6.10938 8.98438 6.90625 8.04688 7.90625C7.17188 8.84375 6.5 9.82812 6.03125 10.8594C5.5625 11.8906 5.23438 13.2188 5.04688 14.8438H7.29688C9.23438 14.8438 10.75 15.3281 11.8438 16.2969C12.9688 17.2344 13.5312 18.625 13.5312 20.4688C13.5312 21.7812 13.0312 23.0156 12.0312 24.1719C11.0625 25.2969 9.71875 25.8594 8 25.8594C5.3125 25.8594 3.39062 24.9844 2.23438 23.2344C1.07812 21.4531 0.5 19.125 0.5 16.25C0.5 14.2188 0.9375 12.375 1.8125 10.7188C2.6875 9.03125 3.75 7.53125 5 6.21875C6.28125 4.875 7.64062 3.73438 9.07812 2.79688C10.5156 1.85938 11.7188 1.09375 12.6875 0.5L14.375 3.3125ZM31.7188 3.3125C30.25 4.15625 29.0625 4.89062 28.1562 5.51562C27.25 6.10938 26.3281 6.90625 25.3906 7.90625C24.4844 8.875 23.7969 9.875 23.3281 10.9062C22.8906 11.9062 22.5781 13.2188 22.3906 14.8438H24.6406C26.5781 14.8438 28.0938 15.3281 29.1875 16.2969C30.3125 17.2344 30.875 18.625 30.875 20.4688C30.875 21.7812 30.375 23.0156 29.375 24.1719C28.4062 25.2969 27.0625 25.8594 25.3438 25.8594C22.6562 25.8594 20.7344 24.9844 19.5781 23.2344C18.4219 21.4531 17.8438 19.125 17.8438 16.25C17.8438 14.2188 18.2812 12.375 19.1562 10.7188C20.0312 9.03125 21.0938 7.53125 22.3438 6.21875C23.625 4.875 24.9844 3.73438 26.4219 2.79688C27.8594 1.85938 29.0625 1.09375 30.0312 0.5L31.7188 3.3125Z\"\r\n fill=\"#202122\"\r\n />\r\n </svg>\r\n\r\n <div class=\"testimonials-text\">\r\n <q class=\"quote\" [innerHTML]=\"text()\" (click)=\"stopVideo()\"></q>\r\n\r\n @if (author()) {\r\n <span class=\"author\">{{ author() }}</span>\r\n }\r\n\r\n @if (position()) {\r\n <span class=\"position\">\r\n {{ position() }}\r\n </span>\r\n }\r\n </div>\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, HostBinding, input, OnInit, QueryList, signal, ViewChild, ViewChildren } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig, NguCarouselDefDirective, NguItemComponent } from '@ngu/carousel';\r\nimport { CuraService, NguCarouselService } from '../../../services';\r\nimport { TestimonialCardComponent } from '../../cards/testimonial-card/testimonial-card.component';\r\n\r\n@Component({\r\n selector: 'rdsite-testimonials-carousel',\r\n standalone: true,\r\n imports: [NguCarousel, NguItemComponent, NguCarouselDefDirective, TestimonialCardComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './testimonials-carousel.component.html',\r\n styleUrls: ['./testimonials-carousel.component.scss'],\r\n})\r\nexport class TestimonialsCarouselComponent implements OnInit {\r\n title = input('');\r\n items = input<any[] | null>([]);\r\n\r\n carouselTestimonialsConfig = signal<NguCarouselConfig | null>(null);\r\n\r\n @ViewChild('carouselTestimonials', { static: true }) carouselTestimonials!: NguCarousel<any[]>;\r\n @ViewChildren('testimonialCard') testimonialCards!: QueryList<TestimonialCardComponent>;\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private nguService: NguCarouselService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.carouselTestimonialsConfig.set(\r\n this.nguService.customCarouselConfig({\r\n grid: { xs: 1, sm: 1, md: 1, lg: 1.1, all: 0 },\r\n gridBreakpoints: { sm: 360, md: 768, lg: 1024, xl: 1920 },\r\n loop: true,\r\n interval: {\r\n timing: 600000,\r\n initialDelay: 600000,\r\n },\r\n }),\r\n );\r\n }\r\n\r\n nextSlide(): void {\r\n this.nguService.scrollRight(this.carouselTestimonials);\r\n }\r\n\r\n prevSlide(): void {\r\n this.nguService.scrollLeft(this.carouselTestimonials);\r\n }\r\n\r\n moveTo(pointerNumber: number): void {\r\n this.nguService.moveTo(this.carouselTestimonials, pointerNumber);\r\n }\r\n\r\n stopVideos(): void {\r\n this.testimonialCards.forEach((card) => {\r\n if (card.type() === 'video') {\r\n card.stopVideo();\r\n }\r\n });\r\n }\r\n}\r\n","@if (title()) {\r\n <h3 class=\"testimonials-carousel-title\">{{ title() }}</h3>\r\n}\r\n\r\n<ngu-carousel #carouselTestimonials [inputs]=\"carouselTestimonialsConfig()!\" [dataSource]=\"items()\" (onMove)=\"stopVideos()\">\r\n <ngu-item *nguCarouselDef=\"let item\">\r\n <rdsite-testimonial-card\r\n #testimonialCard\r\n [type]=\"item.type\"\r\n [image]=\"item.image\"\r\n [videoUrl]=\"item.video_url\"\r\n [text]=\"item.text\"\r\n [author]=\"item.author\"\r\n [position]=\"item.role\"\r\n >\r\n </rdsite-testimonial-card>\r\n </ngu-item>\r\n</ngu-carousel>\r\n\r\n<div class=\"testimonials-carousel-controls\">\r\n <cura-icon name=\"arrowLeftCircle\" size=\"40\" color=\"primary-base\" (click)=\"prevSlide()\"></cura-icon>\r\n\r\n <cura-icon name=\"arrowRightCircle\" size=\"40\" color=\"primary-base\" (click)=\"nextSlide()\"></cura-icon>\r\n\r\n <ul>\r\n @for (item of carouselTestimonials.pointNumbers; track i; let i = $index) {\r\n <li [class.active]=\"i === carouselTestimonials.activePoint\" (click)=\"moveTo(i)\"></li>\r\n }\r\n </ul>\r\n</div>\r\n","// Components\r\nexport * from './footer/footer.component';\r\nexport * from './header/header.component';\r\nexport * from './header/components/header-action-menu/header-action-menu.component';\r\nexport * from './header/components/header-aux-menu/header-aux-menu.component';\r\nexport * from './header/components/header-aux-menu-container/header-aux-menu-container.component';\r\nexport * from './header/components/header-aux-menu-item/header-aux-menu-item.component';\r\nexport * from './header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component';\r\nexport * from './header/components/header-logo/header-logo.component';\r\nexport * from './header/components/header-main-menu/header-main-menu.component';\r\nexport * from './header/components/header-main-menu-item/header-main-menu-item.component';\r\nexport * from './header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component';\r\nexport * from './header/components/header-side-menu/header-side-menu.component';\r\nexport * from './header/components/header-side-menu-item/header-side-menu-item.component';\r\nexport * from './load-screen/load-screen.component';\r\nexport * from './overlay/overlay.component';\r\nexport * from './search/search.component';\r\nexport * from './side-ctas/side-ctas.component';\r\nexport * from './side-ctas/components/side-ctas-bottom/side-ctas-bottom.component';\r\nexport * from './side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component';\r\nexport * from './side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component';\r\nexport * from './side-ctas/components/side-ctas-right-top/side-ctas-right-top.component';\r\nexport * from './whatsapp/whatsapp.component';\r\nexport * from './algolia-dropdown/algolia-dropdown.component';\r\nexport * from './error/error.component';\r\nexport * from './error/error-service/error.service';\r\nexport * from './cta-wrapper/cta-wrapper.component';\r\nexport * from './page-header/page-header.component';\r\nexport * from './breadcrumbs/breadcrumbs.component';\r\nexport * from './page-template-sidebar/page-template-sidebar.component';\r\nexport * from './filters/filter-generic/filter-generic.component';\r\nexport * from './filters/filter-planos-convenios/filter-planos-convenios.component';\r\nexport * from './filter-letter-and-terms/filter-letter-and-terms.component';\r\nexport * from './section-navigation/section-navigation.component';\r\nexport * from './image/image.component';\r\nexport * from './cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component';\r\nexport * from './cards/expandable-card/expandable-card.component';\r\nexport * from './banner/content-banner/content-banner.component';\r\nexport * from './pagination/pagination.component';\r\nexport * from './cards/testimonial-card/testimonial-card.component';\r\nexport * from './carousels/testimonials-carousel/testimonials-carousel.component';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatPhone } from '../../helpers/formatPhone.func';\r\n\r\n@Pipe({\r\n name: 'phone',\r\n standalone: true,\r\n})\r\nexport class PhonePipe implements PipeTransform {\r\n transform(phone: string): string {\r\n return formatPhone(phone);\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { LogService, SiteBackendService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private readonly logService: LogService,\r\n private readonly siteBackendService: SiteBackendService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n this.logService.logMsg(`REQUEST ERROR => ${req.method} ${req.url}`, 'ERROR_INTERCEPTOR');\r\n\r\n if (isPlatformBrowser(this.platformId) && !req.url.includes('/log/error')) {\r\n const errorMessage = typeof error === 'string' ? error : error instanceof Error ? error.message : JSON.stringify(error);\r\n\r\n this.siteBackendService.logClientError(errorMessage, window.location.href, req.urlWithParams).subscribe();\r\n }\r\n\r\n return throwError(() => error);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Observable, tap } from 'rxjs';\r\nimport { LogService } from '../services';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { differenceInMilliseconds } from 'date-fns';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogInterceptor implements HttpInterceptor {\r\n constructor(private log: LogService) {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const requestId = uuidv4();\r\n const startTime = Date.now();\r\n this.log.logMsg(`REQUEST ${requestId} => ${req.method} ${req.url}`, 'INTERCEPTOR');\r\n\r\n return next.handle(req).pipe(\r\n tap((response) => {\r\n const res = response as HttpResponse<any>;\r\n if (res?.status) {\r\n const elapsedTime = differenceInMilliseconds(Date.now(), startTime);\r\n this.log.logMsg(\r\n `RESPONSE ${requestId} => ${req.method} ${req.url} | Duração: ${elapsedTime}ms | Status: ${res.status} - ${res.statusText} | Body: ${!!res.body}`,\r\n 'INTERCEPTOR',\r\n );\r\n }\r\n }),\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of site-front-end-lib\r\n */\r\n\r\n// Components\r\nexport * from './lib/components';\r\n\r\n// Directives\r\nexport * from './lib/directives';\r\n\r\n// Pipes\r\nexport * from './lib/pipes';\r\n\r\n//Services\r\nexport * from './lib/services';\r\n\r\n// Interceptors\r\nexport * from './lib/interceptors';\r\n\r\n// Helpers\r\nexport * from './lib/helpers';\r\n\r\n// Enums\r\nexport * from './lib/enums';\r\n\r\n// Tokens\r\nexport * from './lib/tokens/CuraApi';\r\nexport * from './lib/tokens/express.tokens';\r\nexport * from './lib/tokens/LibConfig';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.PhoneService","i3.RdsitePhoneModalDirective","i1","i2","i1.HttpClientService","i2.LogService","i1.MapBoxService","i4","i1.CuraService","i2.HeaderService","i3","i1.AlgoliaSearchApiService","i1.NguCarouselService","uuidv4","i1.LogService"],"mappings":"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"}
1
+ {"version":3,"file":"rededor-site-front-end-lib.mjs","sources":["../../../projects/site-front-end-lib/src/lib/components/footer/helpers/footerTheme.func.ts","../../../projects/site-front-end-lib/src/lib/directives/rdsite-click-outside/rdsite-click-outside.directive.ts","../../../projects/site-front-end-lib/src/lib/tokens/LibConfig.ts","../../../projects/site-front-end-lib/src/lib/enums/RdsiteModalComponentStyle.enum.ts","../../../projects/site-front-end-lib/src/lib/helpers/formatPhone.func.ts","../../../projects/site-front-end-lib/src/lib/services/modal/modal.service.ts","../../../projects/site-front-end-lib/src/lib/services/phone/phone.service.ts","../../../projects/site-front-end-lib/src/lib/directives/rdsite-phone-modal/rdsite-phone-modal.directive.ts","../../../projects/site-front-end-lib/src/lib/directives/rdsite-link/rdsite-link.directive.ts","../../../projects/site-front-end-lib/src/lib/services/algolia/algolia.service.ts","../../../projects/site-front-end-lib/src/lib/enums/IconCuraDefaultType.enum.ts","../../../projects/site-front-end-lib/src/lib/tokens/CuraApi.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateObjectsFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateValuesFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/getSiteUrl.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeHtmlTags.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/toQueryParams.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/check-safari-agent.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/getCircularReplacer.func.ts","../../../projects/site-front-end-lib/src/lib/services/log/log.service.ts","../../../projects/site-front-end-lib/src/lib/services/cura/cura.service.ts","../../../projects/site-front-end-lib/src/lib/services/http-client/http-client.service.ts","../../../projects/site-front-end-lib/src/lib/services/modal-drawer/modal-drawer.service.ts","../../../projects/site-front-end-lib/src/lib/services/ngu-carousel/ngu-carousel.service.ts","../../../projects/site-front-end-lib/src/lib/services/privacy-tools/privacy-tools.service.ts","../../../projects/site-front-end-lib/src/lib/services/site-back-end/site-back-end.service.ts","../../../projects/site-front-end-lib/src/lib/services/seo/seo.service.ts","../../../projects/site-front-end-lib/src/lib/tokens/express.tokens.ts","../../../projects/site-front-end-lib/src/lib/services/server-response/server-response.service.ts","../../../projects/site-front-end-lib/src/lib/services/ssr-loading/ssr-loading.service.ts","../../../projects/site-front-end-lib/src/lib/services/transfer-state/transfer-state.service.ts","../../../projects/site-front-end-lib/src/lib/components/header/services/header.service.ts","../../../projects/site-front-end-lib/src/lib/services/algolia-search-api/algolia-search-api.service.ts","../../../projects/site-front-end-lib/src/lib/services/youtube/youtube.service.ts","../../../projects/site-front-end-lib/src/lib/services/mapbox/mapbox.service.ts","../../../projects/site-front-end-lib/src/lib/services/geoloc/geoloc.service.ts","../../../projects/site-front-end-lib/src/lib/components/footer/footer.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/footer.component.html","../../../projects/site-front-end-lib/src/lib/components/header/helpers/headerTheme.func.ts","../../../projects/site-front-end-lib/src/lib/components/overlay/overlay.component.ts","../../../projects/site-front-end-lib/src/lib/components/overlay/overlay.component.html","../../../projects/site-front-end-lib/src/lib/components/search/search.component.ts","../../../projects/site-front-end-lib/src/lib/components/search/search.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-logo/header-logo.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-logo/header-logo.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-action-menu/header-action-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-action-menu/header-action-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/header.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/header.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu/header-aux-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu/header-aux-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-container/header-aux-menu-container.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-container/header-aux-menu-container.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item/header-aux-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-aux-menu-item/header-aux-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu/header-main-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu/header-main-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item/header-main-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-main-menu-item/header-main-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu/header-side-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu/header-side-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu-item/header-side-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/header/components/header-side-menu-item/header-side-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/load-screen/load-screen.component.ts","../../../projects/site-front-end-lib/src/lib/components/load-screen/load-screen.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/side-ctas.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/side-ctas.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-bottom/side-ctas-bottom.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-bottom/side-ctas-bottom.component.html","../../../projects/site-front-end-lib/src/lib/components/whatsapp/whatsapp.component.ts","../../../projects/site-front-end-lib/src/lib/components/whatsapp/whatsapp.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component.html","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-top/side-ctas-right-top.component.ts","../../../projects/site-front-end-lib/src/lib/components/side-ctas/components/side-ctas-right-top/side-ctas-right-top.component.html","../../../projects/site-front-end-lib/src/lib/components/algolia-dropdown/algolia-dropdown.component.ts","../../../projects/site-front-end-lib/src/lib/components/algolia-dropdown/algolia-dropdown.component.html","../../../projects/site-front-end-lib/src/lib/helpers/mediaQueries.ts","../../../projects/site-front-end-lib/src/lib/components/cta-wrapper/cta-wrapper.component.ts","../../../projects/site-front-end-lib/src/lib/components/cta-wrapper/cta-wrapper.component.html","../../../projects/site-front-end-lib/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/site-front-end-lib/src/lib/components/breadcrumbs/breadcrumbs.component.html","../../../projects/site-front-end-lib/src/lib/enums/Estados.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumDoencaTaxonomy.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/ImageMimeType.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/RdsiteModalDrawerComponentStyle.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumThemes.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumError.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/UnidadeCoverageType.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/Filter.enum.ts","../../../projects/site-front-end-lib/src/lib/components/error/error-service/error.service.ts","../../../projects/site-front-end-lib/src/lib/components/error/error.component.ts","../../../projects/site-front-end-lib/src/lib/components/error/error.component.html","../../../projects/site-front-end-lib/src/lib/components/page-header/page-header.component.ts","../../../projects/site-front-end-lib/src/lib/components/page-header/page-header.component.html","../../../projects/site-front-end-lib/src/lib/components/page-template-sidebar/page-template-sidebar.component.ts","../../../projects/site-front-end-lib/src/lib/components/page-template-sidebar/page-template-sidebar.component.html","../../../projects/site-front-end-lib/src/lib/components/filters/filter-generic/filter-generic.component.ts","../../../projects/site-front-end-lib/src/lib/components/filters/filter-generic/filter-generic.component.html","../../../projects/site-front-end-lib/src/lib/components/filters/filter-planos-convenios/filter-planos-convenios.component.ts","../../../projects/site-front-end-lib/src/lib/components/filters/filter-planos-convenios/filter-planos-convenios.component.html","../../../projects/site-front-end-lib/src/lib/components/filter-letter-and-terms/filter-letter-and-terms.component.ts","../../../projects/site-front-end-lib/src/lib/components/filter-letter-and-terms/filter-letter-and-terms.component.html","../../../projects/site-front-end-lib/src/lib/components/section-navigation/section-navigation.component.ts","../../../projects/site-front-end-lib/src/lib/components/section-navigation/section-navigation.component.html","../../../projects/site-front-end-lib/src/lib/components/image/image.component.ts","../../../projects/site-front-end-lib/src/lib/components/image/image.component.html","../../../projects/site-front-end-lib/src/lib/components/cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component.ts","../../../projects/site-front-end-lib/src/lib/components/cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component.html","../../../projects/site-front-end-lib/src/lib/components/cards/expandable-card/expandable-card.component.ts","../../../projects/site-front-end-lib/src/lib/components/cards/expandable-card/expandable-card.component.html","../../../projects/site-front-end-lib/src/lib/components/banner/content-banner/content-banner.component.ts","../../../projects/site-front-end-lib/src/lib/components/banner/content-banner/content-banner.component.html","../../../projects/site-front-end-lib/src/lib/components/pagination/pagination.component.ts","../../../projects/site-front-end-lib/src/lib/components/pagination/pagination.component.html","../../../projects/site-front-end-lib/src/lib/components/cards/testimonial-card/testimonial-card.component.ts","../../../projects/site-front-end-lib/src/lib/components/cards/testimonial-card/testimonial-card.component.html","../../../projects/site-front-end-lib/src/lib/components/carousels/testimonials-carousel/testimonials-carousel.component.ts","../../../projects/site-front-end-lib/src/lib/components/carousels/testimonials-carousel/testimonials-carousel.component.html","../../../projects/site-front-end-lib/src/lib/components/index.ts","../../../projects/site-front-end-lib/src/lib/pipes/phone/phone.pipe.ts","../../../projects/site-front-end-lib/src/lib/interceptors/error.interceptor.ts","../../../projects/site-front-end-lib/src/lib/interceptors/log.interceptor.ts","../../../projects/site-front-end-lib/src/public-api.ts","../../../projects/site-front-end-lib/src/rededor-site-front-end-lib.ts"],"sourcesContent":["import { CuraService } from '../../../services';\r\nimport { FooterTheme } from '../models/FooterTheme.model';\r\n\r\nexport const getFooterTheme = (project: string = 'site', themeStyle: string = 'default', curaService: CuraService) => {\r\n const theme: FooterTheme = {\r\n ftr: {},\r\n 'ftr-disc': {},\r\n 'ftr-menu': {},\r\n 'ftr-social': {},\r\n };\r\n\r\n const [primaryLighter, primaryLight, primaryBase, primaryDarker] = [\r\n curaService.getColor('primary-lighter'),\r\n curaService.getColor('primary-light'),\r\n curaService.getColor('primary-base'),\r\n curaService.getColor('primary-darker'),\r\n ];\r\n const [accentLight, accentBase] = [curaService.getColor('accent-light'), curaService.getColor('accent-base')];\r\n const [neutralPurewhite, neutralWhite, neutralBlack] = [\r\n curaService.getColor('neutral-purewhite'),\r\n curaService.getColor('neutral-white'),\r\n curaService.getColor('neutral-black'),\r\n ];\r\n\r\n switch (project) {\r\n case 'site':\r\n if (themeStyle === 'default') {\r\n theme.ftr = {\r\n 'bg-color': primaryDarker,\r\n color: neutralWhite,\r\n 'alt-color': primaryLighter,\r\n };\r\n theme['ftr-disc'] = {\r\n 'bg-color': neutralPurewhite,\r\n color: neutralBlack,\r\n 'alt-color': primaryBase,\r\n };\r\n theme['ftr-menu'] = {\r\n 'hover-color': accentLight,\r\n 'active-color': accentBase,\r\n 'alt-hover-color': primaryLight,\r\n 'alt-active-color': primaryBase,\r\n };\r\n theme['ftr-social'] = {\r\n color: neutralWhite,\r\n };\r\n } else {\r\n theme.ftr = {\r\n 'bg-color': primaryDarker,\r\n color: neutralWhite,\r\n 'alt-color': primaryLighter,\r\n };\r\n theme['ftr-disc'] = {\r\n 'bg-color': neutralPurewhite,\r\n color: neutralBlack,\r\n 'alt-color': primaryBase,\r\n };\r\n theme['ftr-menu'] = {\r\n 'hover-color': accentLight,\r\n 'active-color': accentBase,\r\n 'alt-hover-color': primaryLight,\r\n 'alt-active-color': primaryBase,\r\n };\r\n theme['ftr-social'] = {\r\n color: neutralWhite,\r\n };\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return theme;\r\n};\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsiteclickoutside]',\r\n standalone: true,\r\n})\r\nexport class RdsiteClickOutsideDirective {\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n @Output() rdsiteclickoutside = new EventEmitter<void>();\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: Event): void {\r\n if (!this.elementRef.nativeElement.contains(event.target)) {\r\n this.rdsiteclickoutside.emit();\r\n }\r\n }\r\n}\r\n","import { ElementRef, InjectionToken } from '@angular/core';\r\n\r\nexport interface LibConfig {\r\n production: boolean;\r\n environmentName: string;\r\n siteProject: string;\r\n server: boolean;\r\n siteName: string;\r\n siteUrl: string;\r\n siteSufix?: string;\r\n client_id: string;\r\n xOriginApplication: string;\r\n searchApiEnv: string;\r\n fallbackImgSrc: string;\r\n\r\n // Cura iconset\r\n iconsetDefaultList: string[];\r\n\r\n // site-back-end (SNF)\r\n siteApi: {\r\n auth: {\r\n user: string;\r\n password: string;\r\n };\r\n base: string;\r\n baseInternal: string;\r\n recaptcha: string;\r\n centroEstudos: string;\r\n };\r\n\r\n // Algolia Search\r\n algoliaConfig: {\r\n id: string;\r\n key: string;\r\n };\r\n\r\n // Wordpress\r\n wpUrl: string;\r\n\r\n // SEO\r\n keywords: string;\r\n logoPath?: string;\r\n\r\n // Mapbox\r\n mapboxAccessToken: string;\r\n mapboxSSRAccessToken: string;\r\n\r\n // rdsitelink custom anchor adjustment\r\n customAnchorAdjustment?: (document: Document) => number;\r\n customPhoneModalCondition?: (element: ElementRef<any>) => boolean;\r\n customInternalLinkNavigation?: (noBaseHref: string) => boolean;\r\n}\r\n\r\n// Configura a lib com informações especificas de cada projeto.\r\nexport const LIB_CONFIG = new InjectionToken<LibConfig>('libConfig');\r\n","export enum RdsiteModalComponentStyle {\r\n DEFAULT = 'default',\r\n ALERT = 'alert',\r\n LIGHT = 'light',\r\n DOCTORCARD = 'doctor-card',\r\n HOMESLIDE = 'home-slide',\r\n BASIC = 'basic',\r\n SHARING = 'sharing',\r\n FORMFALLBACK = 'form-fallback',\r\n FILTER = 'filter',\r\n FILTERDOENCAS = 'filter-doencas',\r\n}\r\n","export const formatPhone = (phone: string): string => {\r\n if (!phone) return '';\r\n\r\n const cleanPhone = phone.replace(/[^0-9]/gi, '');\r\n let formatedPhone = '';\r\n if (cleanPhone.length === 12) {\r\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 11) {\r\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 10) {\r\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 9) {\r\n formatedPhone = cleanPhone.replace(/(\\d{5})?(\\d{4})/, '$1-$2');\r\n } else if (cleanPhone.length === 8) {\r\n formatedPhone = cleanPhone.replace(/(\\d{4})?(\\d{4})/, '$1-$2');\r\n } else if (cleanPhone.length === 7) {\r\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{4})/, '$1-$2');\r\n } else {\r\n formatedPhone = cleanPhone;\r\n }\r\n return formatedPhone;\r\n};\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\r\n\r\nexport abstract class AbstractModalComponent {\r\n abstract id: string;\r\n abstract modalTitle: string | null;\r\n abstract modalHeader: TemplateRef<any> | null;\r\n abstract modalContent: TemplateRef<any> | null;\r\n abstract modalContentContext: Record<string, any> | null;\r\n abstract modalActions: TemplateRef<any> | null;\r\n abstract componentStyle: any;\r\n abstract modal: HTMLDialogElement;\r\n abstract open(): void;\r\n abstract close(): void;\r\n abstract reset(): void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModalService {\r\n reference: AbstractModalComponent | null = null;\r\n defaultPhoneModal!: TemplateRef<any>;\r\n\r\n open() {\r\n this.reference?.open();\r\n }\r\n\r\n setReference(element: AbstractModalComponent) {\r\n this.reference = element;\r\n }\r\n\r\n setHeader(header: TemplateRef<any>) {\r\n if (!this.reference) return;\r\n this.reference.modalHeader = header;\r\n }\r\n\r\n setTitle(title: string) {\r\n if (!this.reference) return;\r\n this.reference.modalTitle = title;\r\n }\r\n\r\n setContent(content: TemplateRef<any>, context: Record<string, any> = {}) {\r\n if (!this.reference) return;\r\n this.reference.modalContent = content;\r\n this.reference.modalContentContext = context;\r\n }\r\n\r\n setActions(actions: TemplateRef<any>) {\r\n if (!this.reference) return;\r\n this.reference.modalActions = actions;\r\n }\r\n\r\n setStyle(style: RdsiteModalComponentStyle) {\r\n if (!this.reference) return;\r\n this.reference.componentStyle = style;\r\n }\r\n\r\n setDefaultPhoneModal(modal: TemplateRef<any>) {\r\n this.defaultPhoneModal = modal;\r\n }\r\n\r\n close() {\r\n this.reference?.close();\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PhoneService {\r\n private telRegex = /tel:/;\r\n\r\n public phoneModalIsAllowed: boolean = true; // variavel utilizada para permitir/bloquear o modal de telefone\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document) {}\r\n\r\n /** Verifica se o 'href' é de telefone e se a janela está em tamanho desktop */\r\n public isPhoneModal(href: string) {\r\n const width = this.document.defaultView?.innerWidth ?? 0;\r\n const SMALL_BREAKPOINT = 718;\r\n return this.telRegex.test(href) && width > SMALL_BREAKPOINT;\r\n }\r\n}\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID, TemplateRef } from '@angular/core';\r\nimport { PhoneService } from '../../services/phone/phone.service';\r\nimport { ModalService } from '../../services/modal/modal.service';\r\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\r\nimport { formatPhone } from '../../helpers/formatPhone.func';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsitephonemodal]',\r\n standalone: true,\r\n})\r\nexport class RdsitePhoneModalDirective {\r\n @Input() rdsitephonemodal: TemplateRef<HTMLElement> | null = null;\r\n\r\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\r\n\r\n constructor(\r\n private modalService: ModalService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n private element: ElementRef<Element>,\r\n private phoneService: PhoneService,\r\n ) {}\r\n\r\n // Intercepta cliques em telefones e aplica comportamentos diferentes em tamanho desktop.\r\n @HostListener('click', ['$event'])\r\n public onClick(event: Event) {\r\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName) || !this.phoneService.phoneModalIsAllowed)\r\n return;\r\n\r\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\r\n if (this.phoneService.isPhoneModal(href)) {\r\n this.openPhoneModal(event, href);\r\n }\r\n }\r\n\r\n public openPhoneModal(event: Event, href: string) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.modalService.setContent(this.rdsitephonemodal || this.modalService.defaultPhoneModal, { phone: formatPhone(href) });\r\n this.modalService.setStyle(RdsiteModalComponentStyle.DEFAULT);\r\n this.modalService.open();\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { PhoneService } from '../../services/phone/phone.service';\r\nimport { RdsitePhoneModalDirective } from '../rdsite-phone-modal/rdsite-phone-modal.directive';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsitelink]',\r\n providers: [RdsitePhoneModalDirective],\r\n standalone: true,\r\n})\r\nexport class RdsiteLinkDirective {\r\n private externalRegex = /^http:|https:|tel:|www\\.|mailto:/;\r\n private telRegex = /tel:/;\r\n private mailRegex = /mailto:/;\r\n private siteUrlList = ['rededorsaoluiz', 'rededorlabs'];\r\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\r\n\r\n @Input() anchorAdjustment: number | null = null;\r\n @Input() anchorExtraAdjustment: number | null = null;\r\n\r\n @Input() phonemodal: TemplateRef<HTMLElement> | null = null;\r\n\r\n constructor(\r\n private router: Router,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n private element: ElementRef<any>,\r\n private phoneService: PhoneService,\r\n private rdsitePhoneModalDirective: RdsitePhoneModalDirective,\r\n private deviceDetectorService: DeviceDetectorService,\r\n ) {}\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event: Event) {\r\n event.preventDefault();\r\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName)) return;\r\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\r\n if (!href) return;\r\n\r\n if (this.isPhone(href)) {\r\n this.phoneClicked({\r\n href,\r\n event,\r\n element: this.element,\r\n phonemodal: this.phonemodal,\r\n });\r\n return;\r\n }\r\n\r\n const isMobile = this.deviceDetectorService.isMobile();\r\n const deviceInfo = this.deviceDetectorService.getDeviceInfo();\r\n\r\n if (this.isMail(href)) {\r\n const target = isMobile || deviceInfo.browser !== 'Chrome' ? '_self' : '_blank';\r\n window.open(href, target);\r\n return;\r\n }\r\n\r\n if (this.isExternalUrl(href)) {\r\n const target = this.isSiteUrl(href) ? '_self' : '_blank';\r\n window.open(href, target);\r\n return;\r\n }\r\n\r\n if (this.isAnchor(href)) {\r\n this.scrollToAnchor(href);\r\n return;\r\n }\r\n\r\n this.navigateTo(href);\r\n }\r\n\r\n private isPhone(href: string) {\r\n return this.telRegex.test(href);\r\n }\r\n\r\n private isMail(href: string) {\r\n return this.mailRegex.test(href);\r\n }\r\n\r\n private phoneClicked(value: { href: string; event: Event; element: ElementRef<any>; phonemodal: TemplateRef<HTMLElement> | null }) {\r\n const { href, event, element, phonemodal } = value;\r\n if (this.phoneService.isPhoneModal(href)) {\r\n this.setPhoneModal(element, phonemodal);\r\n this.rdsitePhoneModalDirective.openPhoneModal(event, href);\r\n } else {\r\n window.open(href, '_self');\r\n }\r\n }\r\n\r\n private setPhoneModal(element: ElementRef<any>, phonemodal: TemplateRef<HTMLElement> | null) {\r\n if (!this.phonemodal) return;\r\n if (!this.libConfig?.customPhoneModalCondition) {\r\n this.rdsitePhoneModalDirective.rdsitephonemodal = phonemodal;\r\n return;\r\n }\r\n if (this.libConfig?.customPhoneModalCondition(element)) {\r\n this.rdsitePhoneModalDirective.rdsitephonemodal = phonemodal;\r\n }\r\n }\r\n\r\n private isExternalUrl(href: string) {\r\n return this.externalRegex.test(href);\r\n }\r\n\r\n private isSiteUrl(href: string) {\r\n const exception = '/paciente';\r\n return this.siteUrlList.find((url) => href.includes(url) && !href.includes(exception));\r\n }\r\n\r\n private isAnchor(href: string) {\r\n return href.startsWith('#');\r\n }\r\n\r\n private scrollToAnchor(href: string) {\r\n if (href === '#') return;\r\n if (isPlatformBrowser(this.platformId)) {\r\n const docElement = this.document.documentElement;\r\n let adjustment = 0;\r\n\r\n if (this.libConfig.customAnchorAdjustment) {\r\n adjustment = this.libConfig.customAnchorAdjustment(this.document);\r\n }\r\n\r\n if (this.anchorAdjustment) {\r\n adjustment = this.anchorAdjustment;\r\n }\r\n\r\n if (this.anchorExtraAdjustment) {\r\n adjustment += this.anchorExtraAdjustment;\r\n }\r\n\r\n const bodyTop = this.document?.body?.getBoundingClientRect()?.top ?? 0;\r\n const hrefTop = this.document?.querySelector<HTMLElement>(href)?.getBoundingClientRect()?.top ?? 0;\r\n const scrollTop = bodyTop * -1 + hrefTop - adjustment;\r\n docElement.scrollTo({ top: scrollTop, behavior: 'smooth' });\r\n }\r\n }\r\n\r\n private navigateTo(href: string) {\r\n const siteBasePath = this.libConfig.siteSufix ?? '';\r\n const siteBasePathNoSlash = siteBasePath.replace(/\\//g, '');\r\n let noBaseHref = href;\r\n if (href.startsWith(siteBasePathNoSlash)) {\r\n noBaseHref = href.replace(siteBasePathNoSlash, '');\r\n } else if (href.startsWith(siteBasePath)) {\r\n noBaseHref = href.replace(siteBasePath, '');\r\n }\r\n if (this.libConfig?.customInternalLinkNavigation && this.libConfig.customInternalLinkNavigation(noBaseHref)) {\r\n return;\r\n }\r\n\r\n const [path, query] = noBaseHref.split('?');\r\n const queryParams: Record<string, any> = {};\r\n if (query) {\r\n const queryArray = query.split('&');\r\n queryArray.forEach((q) => {\r\n const arr = q.split('=');\r\n queryParams[arr[0]] = arr[1];\r\n });\r\n }\r\n this.router.navigate([path], { queryParams: queryParams });\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport algoliasearch, { SearchClient } from 'algoliasearch';\r\nimport {\r\n SearchOptions,\r\n SearchResponse,\r\n MultipleQueriesQuery,\r\n MultipleQueriesResponse,\r\n SearchForFacetValuesResponse,\r\n} from '@algolia/client-search';\r\nimport { Observable, from } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlgoliaService {\r\n private client: SearchClient;\r\n\r\n constructor(@Inject(LIB_CONFIG) private libConfig: LibConfig) {\r\n this.client = this.initClient();\r\n }\r\n\r\n search<T = any>(query: string, index: string, params?: SearchOptions): Observable<SearchResponse<T>> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchResponse<T>>>(algoliaIndex.search<T>(query, params));\r\n }\r\n\r\n searchMultipleIndexes<T = any>(config: MultipleQueriesQuery[]): Observable<MultipleQueriesResponse<T>> {\r\n return from<Promise<MultipleQueriesResponse<T>>>(this.client.multipleQueries<T>(config));\r\n }\r\n\r\n searchForFacetValues(\r\n index: string,\r\n facetName: string,\r\n facetQuery: string,\r\n params?: SearchOptions,\r\n ): Observable<SearchForFacetValuesResponse> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchForFacetValuesResponse>>(\r\n algoliaIndex.searchForFacetValues(facetName, facetQuery, params),\r\n );\r\n }\r\n\r\n initClient() {\r\n return algoliasearch(this.libConfig.algoliaConfig.id, this.libConfig.algoliaConfig.key);\r\n }\r\n}\r\n","export enum IconCuraDefaultType {\r\n 'icon-360' = '360',\r\n 'accessibility' = 'accessibility',\r\n 'icon-alerta-circ' = 'alertCircle',\r\n 'icon-alerta-tri' = 'alertTriangle',\r\n 'icon-seta-baixo' = 'arrowDown',\r\n 'icon-circle-chevron-down' = 'arrowDownCircle',\r\n 'icon-seta-esquerda' = 'arrowLeft',\r\n 'icon-circle-chevron-left' = 'arrowLeftCircle',\r\n 'icon-seta-direita' = 'arrowRight',\r\n 'icon-circle-chevron-right' = 'arrowRightCircle',\r\n 'icon-seta-cima' = 'arrowUp',\r\n 'icon-circle-chevron-up' = 'arrowUpCircle',\r\n 'icon-anexo' = 'attach',\r\n 'icon-avatar-f' = 'avatarF',\r\n 'icon-avatar-m' = 'avatarM',\r\n 'icon-hematologia' = 'bloodGroup',\r\n 'icon-agm-agendar' = 'calendar',\r\n 'icon-ouvidoria' = 'central',\r\n 'icon-chat-circle' = 'chatCircle',\r\n 'icon-check' = 'check',\r\n 'icon-parceria' = 'checkBadge',\r\n 'icon-check-sucesso' = 'checkCircle',\r\n 'icon-check-hard' = 'checkDouble',\r\n 'icon-hora' = 'clock',\r\n 'icon-fechar' = 'close',\r\n 'icon-collapse' = 'collapse',\r\n 'icon-configuracoes' = 'config',\r\n 'icon-nps-dislike' = 'npsDeslike',\r\n 'icon-download' = 'download',\r\n 'icon-duplicar' = 'duplicate',\r\n 'icon-editar' = 'edit',\r\n 'icon-exame' = 'exam',\r\n 'icon-expand' = 'expand',\r\n 'icon-facebook-2' = 'facebook',\r\n 'icon-facebook' = 'facebook',\r\n 'icon-pdf' = 'filePdf',\r\n 'icon-xls' = 'fileXls',\r\n 'icon-filter' = 'filter',\r\n 'icon-unidade' = 'geotag',\r\n 'icon-geotag' = 'geotag',\r\n 'icon-google' = 'google',\r\n 'icon-google-2' = 'google',\r\n 'icon-endereco-hospital' = 'geotagUnity',\r\n 'icon-nps-hate' = 'npsHate',\r\n 'icon-plano' = 'healthPlan',\r\n 'icon-height' = 'height',\r\n 'icon-altura' = 'height2',\r\n 'icon-home' = 'home',\r\n 'icon-enviar-foto' = 'imageUp',\r\n 'icon-info-2' = 'lamp',\r\n 'icon-info' = 'infoCircle',\r\n 'icon-key-lock' = 'key',\r\n 'icon-idioma' = 'language',\r\n 'icon-idioma-2' = 'language2',\r\n 'icon-idioma-en' = 'languageEN',\r\n 'icon-idioma-pt' = 'languagePT',\r\n 'icon-nps-like' = 'npsLike',\r\n 'icon-link' = 'link',\r\n 'icon-link-externo' = 'linkExternal',\r\n 'icon-lista' = 'list',\r\n 'icon-login' = 'login',\r\n 'icon-logout' = 'logout',\r\n 'icon-nps-love' = 'npsLove',\r\n 'icon-mail' = 'mail',\r\n 'icon-mail-2' = 'mail',\r\n 'icon-mail-input' = 'mail',\r\n 'icon-exame-resultado' = 'medDoc',\r\n 'icon-exame-imagem' = 'medImg',\r\n 'icon-medico' = 'medUser',\r\n 'icon-menu' = 'menuHamburguer',\r\n 'icon-minus' = 'minus',\r\n 'icon-minus-circle' = 'minusCircle',\r\n 'icon-minus-square' = 'minusSquare',\r\n 'icon-nps-neutral' = 'npsNeutral',\r\n 'icon-news' = 'news',\r\n 'icon-alert' = 'notification',\r\n 'icon-telefone' = 'phone',\r\n 'icon-plus' = 'plus',\r\n 'icon-plus-circle' = 'plusCircle',\r\n 'icon-plus-square' = 'plusSquare',\r\n 'icon-print' = 'print',\r\n 'icon-perfil' = 'profileCircle',\r\n 'icon-perfil-2' = 'profile',\r\n 'icon-pulldown' = 'down',\r\n 'icon-pulldown-small' = 'down',\r\n 'pullupG' = 'up',\r\n 'pullupP' = 'up',\r\n 'icon-tooltip' = 'questionCircle',\r\n 'icon-help' = 'questionSquare',\r\n 'icon-date-range' = 'range',\r\n 'icon-reload' = 'reload',\r\n 'icon-agendamento' = 'schedule',\r\n 'icon-agm-ok' = 'scheduleCheck',\r\n 'icon-buscar' = 'search',\r\n 'icon-secure' = 'secure',\r\n 'icon-share' = 'share',\r\n 'icon-share-2' = 'share',\r\n 'icon-sub-item' = 'subItem',\r\n 'icon-geotag-2' = 'target',\r\n 'icon-unlink' = 'unLink',\r\n 'icon-unsecure' = 'unSecure',\r\n 'icon-infraestrutura-idor' = 'unity',\r\n 'icon-upload' = 'upload',\r\n 'icon-view-off' = 'viewFalse',\r\n 'icon-view-on' = 'viewTrue',\r\n 'icon-zoom-in' = 'zoomIn',\r\n 'icon-zoom-out' = 'zoomOut',\r\n 'icon-twitter' = 'twitter',\r\n 'icon-twitter-2' = 'twitter',\r\n 'icon-x' = 'twitter',\r\n 'icon-instagram-2' = 'instagram',\r\n 'icon-instagram' = 'instagram',\r\n 'icon-whatsapp' = 'whatsapp',\r\n 'icon-whatsapp-2' = 'whatsapp',\r\n 'icon-linkedin' = 'linkedin',\r\n 'icon-linkedin-2' = 'linkedin',\r\n 'icon-telegram' = 'telegram',\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SSR_CURA_API = new InjectionToken<any>('SSR Cura API');\r\n","const removeDuplicateObjectsFromArray = <T = any>(arr: T[], key: string): T[] => {\r\n return [...new Map(arr.map((item) => [(item as any)[key], item])).values()];\r\n};\r\n\r\nexport { removeDuplicateObjectsFromArray };\r\n","const removeDuplicateValuesFromArray = <T = any>(arr: T[]): T[] => {\r\n return Array.from(new Set(arr));\r\n};\r\n\r\nexport {removeDuplicateValuesFromArray};\r\n","const getSiteUrl = (siteUrl: string = '', siteSufix: string = ''): string => {\r\n const baseUrl = siteUrl.endsWith('/')\r\n ? siteUrl.substring(0, siteUrl.length - 1)\r\n : siteUrl;\r\n const baseSufix = siteSufix.endsWith('/')\r\n ? siteSufix.substring(0, siteSufix.length - 1)\r\n : siteSufix;\r\n return `${baseUrl}${baseSufix}`;\r\n}\r\n\r\nexport { getSiteUrl };\r\n","function removeHtmlTags(content: string): string {\r\n content = content.replace(/<.*?>/g, \"\");\r\n return content;\r\n}\r\n\r\nexport { removeHtmlTags };\r\n","/**\r\n * Converte JSON para query string.\r\n * @param params JSON\r\n */\r\nexport function toQueryParams(params: any): string {\r\n return params ? `?${Object.keys(params).map(key => key + \"=\" + params[key]).join(\"&\")}` : \"\";\r\n}\r\n","const checkSafariAgent = (): boolean => {\r\n const safariAgent = navigator.userAgent.includes('Safari');\r\n const chromeAgent = navigator.userAgent.includes('Chrome');\r\n return !chromeAgent && safariAgent;\r\n};\r\nexport default checkSafariAgent;\r\n","/**\r\n * Função que retorna um replacer personalizado para o JSON.stringify que resolve problemas de estruturas circulares durante a serialização.\r\n */\r\nexport function getCircularReplacer(customOptions?: {\r\n ignoreKeys?: string[]; // Chaves específicas a serem sempre ignoradas (ex: ['_request', 'parent'])\r\n maxDepth?: number; // Profundidade máxima de objetos aninhados (opcional)\r\n}) {\r\n const seen = new WeakSet();\r\n const options = {\r\n ignoreKeys: customOptions?.ignoreKeys || [],\r\n maxDepth: customOptions?.maxDepth || 100,\r\n };\r\n\r\n let depth = 0;\r\n\r\n return (key: string, value: any) => {\r\n // Ignora chaves específicas configuradas\r\n if (options.ignoreKeys.includes(key)) {\r\n return undefined;\r\n }\r\n\r\n // Controle de profundidade (opcional)\r\n if (key === '') {\r\n depth = 0; // Reinicia a profundidade na raiz\r\n } else {\r\n depth += 1; // Incrementa apenas quando descer na hierarquia\r\n }\r\n\r\n if (depth > options.maxDepth) {\r\n return typeof value === 'object' ? '[Object]' : value;\r\n }\r\n\r\n // Lida com referências circulares\r\n if (typeof value === 'object' && value !== null) {\r\n // Se já vimos este objeto, é uma referência circular\r\n if (seen.has(value)) {\r\n return undefined; // Exclui valores circulares\r\n }\r\n // Adiciona o objeto ao conjunto de objetos vistos\r\n seen.add(value);\r\n }\r\n\r\n return value;\r\n };\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser, Location } from '@angular/common';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { getSiteUrl } from '../../helpers';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogService {\r\n constructor(\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private platformId: any,\r\n private location: Location,\r\n ) {}\r\n\r\n logMsg(msg: any, label?: string) {\r\n label = label ? `${label} ` : '';\r\n if (!isPlatformBrowser(this.platformId) || (isPlatformBrowser(this.platformId) && !this.libConfig?.production)) {\r\n console.log(`${label}${msg}`);\r\n }\r\n }\r\n\r\n logLoad(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, 'LOAD');\r\n }\r\n\r\n log404(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '404');\r\n }\r\n\r\n log500(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '500');\r\n }\r\n\r\n getPageURL() {\r\n return `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`;\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport { Inject, Injectable, OnDestroy, Optional, PLATFORM_ID } from '@angular/core';\r\nimport CuraAPI from '@rededor/cura/dist/types/api/cura-api';\r\nimport { Subscription, fromEvent, startWith } from 'rxjs';\r\nimport { LogService } from '../log/log.service';\r\nimport { IconCuraDefaultType } from '../../enums/IconCuraDefaultType.enum';\r\nimport { SSR_CURA_API } from '../../tokens/CuraApi';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuraService implements OnDestroy {\r\n private curaAPISubscription: Subscription | null = null;\r\n private curaApi: CuraAPI | null = null;\r\n\r\n constructor(\r\n private log: LogService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Optional() @Inject(SSR_CURA_API) private ssrCuraAPI: any,\r\n ) {\r\n this.curaInit();\r\n }\r\n\r\n curaInit() {\r\n if (!this.curaAPISubscription) {\r\n this.curaAPISubscriptionInit();\r\n }\r\n }\r\n\r\n private curaAPISubscriptionInit() {\r\n if (this.document.defaultView) {\r\n if (isPlatformServer(this.platformId)) {\r\n this.injectCuraAPI();\r\n }\r\n this.curaAPISubscription = fromEvent(this.document.defaultView, 'CuraAPIReady')\r\n .pipe(\r\n startWith({\r\n detail: { api: (this.document.defaultView as any)?.CuraAPI },\r\n }),\r\n )\r\n .subscribe({\r\n next: (event) => {\r\n this.curaApi = (event as CustomEvent)?.detail?.api as CuraAPI;\r\n },\r\n error: (error) => {\r\n this.log.logMsg(JSON.stringify(error), 'ERROR');\r\n },\r\n });\r\n }\r\n }\r\n\r\n private injectCuraAPI() {\r\n if (this.document.defaultView && !(this.document.defaultView as any)['CuraAPI']) {\r\n Object.defineProperty(this.document.defaultView, 'CuraAPI', {\r\n value: this.ssrCuraAPI,\r\n });\r\n }\r\n }\r\n\r\n loadTheme(theme: string) {\r\n this.curaApi?.theme?.load(theme);\r\n }\r\n\r\n getColor(colorWithDepth: string, opacity: number = 1): string | null {\r\n return this.curaApi?.theme?.colors.getColor(colorWithDepth, opacity) ?? null;\r\n }\r\n\r\n getSpacing(): string | null {\r\n return this.curaApi?.theme.spacing.getSpacing() ?? null;\r\n }\r\n\r\n getFontFamily(type: string): string | null {\r\n return this.curaApi?.theme.fonts.getFamily(type) ?? null;\r\n }\r\n\r\n getFontWeights(): { [alias: string]: string } {\r\n return this.curaApi?.theme.fonts.getWeights() ?? {};\r\n }\r\n\r\n getFontSize(): string {\r\n return this.curaApi?.theme.fonts.getSize() ?? '';\r\n }\r\n\r\n getFontColor(): string {\r\n return this.curaApi?.theme.fonts.getColor() ?? '';\r\n }\r\n\r\n getCuraIconName(icon: string): string {\r\n if (IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType]) {\r\n return IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType];\r\n } else {\r\n return this.getCuraSystemIconName(icon);\r\n }\r\n }\r\n\r\n private getCuraSystemIconName(icon: string): string {\r\n if (this.libConfig.iconsetDefaultList?.includes(icon)) return icon;\r\n return '';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.curaAPISubscription?.unsubscribe();\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\n/* Adiciona os Headers necessários para funcionamento do site back-end */\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpClientService {\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n private http: HttpClient,\r\n private deviceService: DeviceDetectorService,\r\n ) {}\r\n\r\n get<T = any>(url: string): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.get<T>(url, { headers });\r\n }\r\n\r\n post<T = any>(url: string, data?: any): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.post<T>(url, data, { headers });\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n const baseHeaders = new HttpHeaders()\r\n .set(\"x-origin-application\", this.libConfig.xOriginApplication)\r\n .set(\"x-origin-channel\", this.getOriginChannel())\r\n .set(\"x-origin-device\", this.getOriginDevice());\r\n\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return baseHeaders.append(\"authorization\", \"Basic \" + Buffer.from(`${this.libConfig.siteApi.auth.user}:${this.libConfig.siteApi.auth.password}`).toString('base64'));\r\n } else {\r\n return baseHeaders.append(\"client_id\", this.libConfig.client_id);\r\n }\r\n }\r\n\r\n private getOriginChannel(): string {\r\n return this.deviceService.isDesktop() ? 'desktop' : 'mobile';\r\n }\r\n\r\n private getOriginDevice(): string {\r\n return `app-${this.deviceService.getDeviceInfo().os}`;\r\n }\r\n}\r\n","import { ElementRef, Injectable } from '@angular/core';\r\nimport { RdsiteModalDrawerComponentStyle } from '../../enums';\r\n\r\nexport abstract class AbstractModalDrawerComponent {\r\n abstract sheet: HTMLElement;\r\n abstract sheetContents: HTMLElement;\r\n abstract draggableArea: HTMLElement;\r\n abstract sheetHeight: number;\r\n abstract dragPosition: number;\r\n abstract maxHeight: number;\r\n abstract closeHeight: number;\r\n abstract rdsiteModalComponentStyle: any;\r\n abstract id: string;\r\n abstract modalContent: ElementRef;\r\n abstract componentStyle: any;\r\n abstract modal: HTMLDialogElement;\r\n abstract setSheetHeight(value: number): void;\r\n abstract setIsSheetShown(isShown: boolean): void;\r\n abstract openSheet(): void;\r\n abstract closeSheet(): void;\r\n abstract touchPosition(event: any): void;\r\n abstract onDragStart(event: any): void;\r\n abstract onDragMove(event: any): void;\r\n abstract onDragEnd(): void;\r\n abstract reset(): void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModalDrawerService {\r\n reference: AbstractModalDrawerComponent | null = null;\r\n\r\n open() {\r\n this.reference?.openSheet();\r\n }\r\n\r\n setReference(element: AbstractModalDrawerComponent) {\r\n this.reference = element;\r\n }\r\n\r\n setContent(content: ElementRef) {\r\n if (!this.reference) return;\r\n this.reference.modalContent = content;\r\n }\r\n\r\n setStyle(style: RdsiteModalDrawerComponentStyle) {\r\n if (!this.reference) return;\r\n this.reference.componentStyle = style;\r\n }\r\n\r\n setHeight(value: number) {\r\n if (!this.reference) return;\r\n this.reference.maxHeight = value;\r\n }\r\n\r\n close() {\r\n this.reference?.closeSheet();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig } from '@ngu/carousel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NguCarouselService {\r\n private _defaultCarouselConfig: NguCarouselConfig = {\r\n grid: { xs: 1.2, sm: 1.2, md: 3.2, lg: 4.2, xl: 5.2, all: 0 },\r\n gridBreakpoints: { sm: 360, md: 768, lg: 1366, xl: 1920 },\r\n slide: 1,\r\n speed: 500,\r\n interval: {\r\n timing: 7000,\r\n initialDelay: 1000,\r\n },\r\n point: {\r\n visible: false,\r\n },\r\n velocity: 0.5,\r\n load: 1,\r\n loop: true,\r\n touch: true,\r\n easing: 'ease-in-out',\r\n };\r\n get defaultCarouselConfig() {\r\n return { ...JSON.parse(JSON.stringify(this._defaultCarouselConfig)) };\r\n }\r\n\r\n customCarouselConfig(config: Partial<NguCarouselConfig>) {\r\n return {\r\n ...this.defaultCarouselConfig,\r\n ...config,\r\n };\r\n }\r\n\r\n moveTo(carousel: NguCarousel<any, any>, index: number) {\r\n carousel.moveTo(index);\r\n }\r\n\r\n scrollLeft(carousel: NguCarousel<any, any>, loop = true) {\r\n if (carousel.isFirst || carousel.activePoint < 1) {\r\n if (loop) {\r\n carousel.moveTo(carousel.pointNumbers[carousel.pointNumbers.length - 1]);\r\n }\r\n } else {\r\n carousel.moveTo(carousel.activePoint - 1);\r\n }\r\n }\r\n\r\n scrollRight(carousel: NguCarousel<any, any>, loop = true) {\r\n if (carousel.isLast || carousel.activePoint > carousel.pointNumbers.length - 1) {\r\n if (loop) {\r\n carousel.moveTo(0);\r\n }\r\n } else {\r\n carousel.moveTo(carousel.activePoint + 1);\r\n }\r\n }\r\n\r\n needShowControls(config: NguCarouselConfig, width: number, itemsLength: number = 0) {\r\n const {\r\n grid: { xs, sm, md, lg, xl },\r\n gridBreakpoints,\r\n } = config;\r\n if (width > (gridBreakpoints?.xl ?? 0)) {\r\n return itemsLength > (xl ?? 0);\r\n }\r\n if (width > (gridBreakpoints?.lg ?? 0)) {\r\n return itemsLength > lg;\r\n }\r\n if (width > (gridBreakpoints?.md ?? 0)) {\r\n return itemsLength > md;\r\n }\r\n if (width > (gridBreakpoints?.sm ?? 0)) {\r\n return itemsLength > sm;\r\n }\r\n return itemsLength > xs;\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { PrivacyToolsConfigOptions, PrivacyToolsCookieBanner } from '../../models/privacy-tools/privacy-tools.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PrivacyToolsService {\r\n cookieBannerScriptId = 'PrivacyToolsScript';\r\n cookieBannerStyleId = 'PrivacyToolsStyle';\r\n cookieBannerScriptElement: HTMLScriptElement | null = null;\r\n configOptions: PrivacyToolsConfigOptions = {};\r\n cookieConsent: any = null;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) public document: Document,\r\n @Inject(PLATFORM_ID) public platformId: object,\r\n ) {}\r\n\r\n /* Config */\r\n public config(options: PrivacyToolsConfigOptions) {\r\n this.configOptions = options;\r\n }\r\n\r\n /* Setup cookie Banner */\r\n public setupCookieBanner(unidadeBasePath: string) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const banner = this.configOptions?.cookieBanners?.find((banner) => banner.basePath.includes(unidadeBasePath));\r\n\r\n if (banner) {\r\n this.addCookieBanner(banner);\r\n }\r\n }\r\n }\r\n\r\n public openCookieBanner() {\r\n if (this.cookieConsent && this.cookieBannerScriptElement) {\r\n this.cookieConsent.privacyToolsShowCookieNotice();\r\n }\r\n }\r\n\r\n /* Add cookie banner style and script */\r\n private addCookieBanner(banner: PrivacyToolsCookieBanner) {\r\n this.cookieBannerScriptElement = null;\r\n this.addCookieBannerStyle(banner.styleSrc);\r\n this.addCookieBannerScript(banner.scriptSrc);\r\n }\r\n\r\n /* Add cookie banner style. */\r\n public addCookieBannerStyle(src: string) {\r\n if (isPlatformServer(this.platformId)) return;\r\n\r\n this.document.getElementById('byRemovePortal')?.remove();\r\n\r\n const oldStyle = this.document.getElementById(this.cookieBannerStyleId);\r\n\r\n if (oldStyle) {\r\n oldStyle.remove();\r\n }\r\n\r\n const style = this.document.createElement('link');\r\n style.id = this.cookieBannerStyleId;\r\n style.rel = 'stylesheet';\r\n style.type = 'text/css';\r\n style.href = src;\r\n style.media = 'none';\r\n\r\n style.addEventListener('load', () => {\r\n style.media = 'all';\r\n });\r\n\r\n this.document.body.appendChild(style);\r\n }\r\n\r\n /* Add cookie banner script. */\r\n public addCookieBannerScript(src: string) {\r\n if (isPlatformServer(this.platformId) || typeof window === 'undefined') return;\r\n\r\n (window as any)['cookieconsent'] = null;\r\n\r\n const oldScript = this.document.getElementById(this.cookieBannerScriptId);\r\n\r\n if (oldScript) {\r\n oldScript.remove();\r\n }\r\n const script = this.document.createElement('script');\r\n script.id = this.cookieBannerScriptId;\r\n script.src = src;\r\n\r\n script.addEventListener('load', () => {\r\n this.cookieBannerScriptElement = script;\r\n this.cookieConsent = (window as any)['cookieconsent'];\r\n (window as any)['portalBanner']?.call();\r\n });\r\n\r\n this.document.body.appendChild(script);\r\n }\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { toQueryParams } from '../../helpers/toQueryParams.func';\r\nimport { HttpClientService } from '../http-client/http-client.service';\r\nimport { RDSLConvenio, RDSLConvenioParams } from '../../models/rdsl-convenio.model';\r\nimport { RDSLPlano, RDSLPlanoParams } from '../../models/rdsl-planos.model';\r\nimport { RDSLCobertura, RDSLCoberturaParams } from '../../models/rdsl-cobertura.model';\r\nimport { RDSLUnidade, RDSLUnidadesParams } from '../../models/rdsl-unidade.model';\r\nimport { RDSLEspecialidade, RDSLEspecialidadesParams } from '../../models/rdsl-especialidade.model';\r\nimport { DoencaBackend } from '../../models/doenca-backend.model';\r\nimport { TaxonomiasDoencasList } from '../../models/doenca-taxonomy.model';\r\nimport { ExameApiDados, ExameBackend } from '../../models/exame-backend.model';\r\nimport { EspecialidadeBackend, EspecialidadeGrupoBackend } from '../../models/especialidade-backend.model';\r\nimport { CentroEstudosBackendMedico } from '../../models/centro-estudos-backend.model';\r\nimport { WpUnidadeSite } from '../../models/wordpress/unidade/wp-unidade-site.model';\r\nimport { WpUnidadeOnco } from '../../models/wordpress/unidade/wp-unidade-onco.model';\r\nimport { UnifiedMenu } from '../../models/menu-item.model';\r\nimport { MedicoCv } from '../../models/medico-cv.model';\r\nimport { MenuDeUnidade } from '../../models/menu-de-unidade.model';\r\nimport { CentroMedico } from '../../models/centro-medico.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteBackendService {\r\n siteApiUrl: string;\r\n\r\n constructor(\r\n private httpClientService: HttpClientService,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) {\r\n this.siteApiUrl = this.getApiUrl();\r\n }\r\n\r\n private getApiUrl(): string {\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return this.libConfig.siteApi.baseInternal;\r\n }\r\n return this.libConfig.siteApi.base;\r\n }\r\n\r\n /**\r\n * GET para qualquer endpoint do back-end do site.\r\n * @param path - O caminho do recurso. (Inicia sem '/'. Ex: 'unidades/wp')\r\n * @param params - Parâmetros opcionais para a requisição.\r\n * @returns Observable que emite os dados retornados pelo back-end.\r\n */\r\n get<T = any>(path: string, params?: any): Observable<T> {\r\n return this.httpClientService.get<T>(`${this.siteApiUrl}${path}${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidades(params?: RDSLUnidadesParams): Observable<RDSLUnidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidadesList(): Observable<any> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades/lista`);\r\n }\r\n\r\n getUnidadesWP(): Observable<WpUnidadeSite[]> {\r\n return this.httpClientService.get<WpUnidadeSite[]>(`${this.siteApiUrl}unidades/wp`);\r\n }\r\n\r\n getUnidadesMenusWP(unidadeSlug = ''): Observable<UnifiedMenu> {\r\n const unidade = unidadeSlug && unidadeSlug !== '/' ? unidadeSlug : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades/wp/menus/${unidade}`);\r\n }\r\n\r\n getUnidadesOncoWP(): Observable<WpUnidadeOnco[]> {\r\n return this.httpClientService.get<WpUnidadeOnco[]>(`${this.siteApiUrl}unidades/wp-onco`);\r\n }\r\n\r\n /**\r\n * Retorna o 'menu de unidades' completo, baseado nos dados de /unidades/wp e /unidades/wp-onco do backend.\r\n * index 0 => rededor\r\n * index 1 => oncologia\r\n * index 2 => star\r\n **/\r\n getMenuDeUnidades(): Observable<MenuDeUnidade[]> {\r\n return this.httpClientService.get<MenuDeUnidade[]>(`${this.siteApiUrl}unidades/wp/menu-de-unidades`);\r\n }\r\n\r\n getConvenios(params?: RDSLConvenioParams): Observable<RDSLConvenio[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}convenios${toQueryParams(params)}`);\r\n }\r\n\r\n getPlanos(params?: RDSLPlanoParams): Observable<RDSLPlano[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos${toQueryParams(params)}`);\r\n }\r\n\r\n getCoberturas(planoIdQd: number, params?: RDSLCoberturaParams): Observable<RDSLCobertura[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos/${planoIdQd}/cobertura${toQueryParams(params)}`);\r\n }\r\n\r\n getDoencas(): Observable<DoencaBackend[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}doencas`);\r\n }\r\n\r\n getDoencasTaxonomies() {\r\n const url = `${this.siteApiUrl}doencas/taxonomias`;\r\n return this.httpClientService.get<TaxonomiasDoencasList>(url);\r\n }\r\n\r\n getDoencasUniqueLetters(): Observable<string[]> {\r\n const url = `${this.siteApiUrl}doencas/letters`;\r\n return this.httpClientService.get(url);\r\n }\r\n\r\n getVacinas(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas`);\r\n }\r\n\r\n getVacinasTaxonomies() {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas/taxonomias`);\r\n }\r\n\r\n getCirurgias(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias`);\r\n }\r\n\r\n getCirurgiasGrupos(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/grupos`);\r\n }\r\n\r\n getCirurgiasTaxonomies(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/taxonomias`);\r\n }\r\n\r\n getExamesList(listaDaUnidade: boolean, unidadeSlug: string, unidadeIdQd: string, unidadeIdMotion: string, unidadeIdLocal: string): Observable<any> {\r\n return this.httpClientService.get(\r\n `${this.siteApiUrl}exames-e-procedimentos/lista?listaDaUnidade=${listaDaUnidade}&unidadeSlug=${unidadeSlug}&unidadeIdQd=${unidadeIdQd}&unidadeIdMotion=${unidadeIdMotion}&unidadeIdLocal=${unidadeIdLocal}`,\r\n );\r\n }\r\n\r\n getExameDetails(\r\n unidadePossuiExames: boolean,\r\n unidadeSlug: string,\r\n unidadeIdQd: string,\r\n unidadeIdMotion: string,\r\n unidadeIdLocal: string,\r\n grupoSlug: string,\r\n exameSlug: string,\r\n ): Observable<any> {\r\n return this.httpClientService.get(\r\n `${this.siteApiUrl}exames-e-procedimentos/detalhes?unidadePossuiExames=${unidadePossuiExames}&unidadeSlug=${unidadeSlug}&unidadeIdQd=${unidadeIdQd}&unidadeIdMotion=${unidadeIdMotion}&unidadeIdLocal=${unidadeIdLocal}&grupoSlug=${grupoSlug}&exameSlug=${exameSlug}`,\r\n );\r\n }\r\n\r\n getGruposExames(unidadeSlug: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? '/';\r\n const params = slug ? `?unidade=${slug}` : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos${params}`);\r\n }\r\n\r\n getExamesByGrupo(unidadeSlug: string, slugGrupo: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? '/';\r\n const params = `?unidade=${slug}&slugGrupo=${slugGrupo}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/grupo${params}`);\r\n }\r\n\r\n getExamesByUnidade(unidadeId: string): Observable<string[]> {\r\n const params = `?unitId=${unidadeId}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/unidade${params}`);\r\n }\r\n\r\n getExamesApiDados(): Observable<ExameApiDados[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/api-dados`);\r\n }\r\n\r\n getEspecialidadesList(\r\n listaDaUnidade: boolean,\r\n unidadeSlug: string,\r\n unidadePossuiAgendamento: boolean,\r\n unidadeIdConsultas: string,\r\n unidadeIdMotion: string,\r\n unidadeIdLocal: string,\r\n ): Observable<any> {\r\n return this.httpClientService.get(\r\n `${this.siteApiUrl}especialidades/lista?listaDaUnidade=${listaDaUnidade}&unidadeSlug=${unidadeSlug}&unidadePossuiAgendamento=${unidadePossuiAgendamento}&unidadeIdConsultas=${unidadeIdConsultas}&unidadeIdMotion=${unidadeIdMotion}&unidadeIdLocal=${unidadeIdLocal}`,\r\n );\r\n }\r\n\r\n getGruposEspecialidades(unidadeSlug?: string): Observable<EspecialidadeGrupoBackend[]> {\r\n const params = unidadeSlug ? `?unidade=${unidadeSlug}` : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades${params}`);\r\n }\r\n\r\n getEspecialidadesByGrupo(tituloGrupo: string, unidadeSlug?: string): Observable<EspecialidadeBackend[]> {\r\n const titulo = `?tituloGrupo=${encodeURI(tituloGrupo)}`;\r\n const slug = unidadeSlug ? `&unidade=${unidadeSlug}` : '';\r\n const params = `${titulo}${slug}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupo${params}`);\r\n }\r\n\r\n getEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/especialidades-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getGruposEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupos-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getRecaptchaResult(token: string): Observable<any> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.recaptcha}`, { token });\r\n }\r\n\r\n getMedicoCv(medicoId: number): Observable<MedicoCv> {\r\n return this.httpClientService.get(`${this.siteApiUrl}medicos/${medicoId}`);\r\n }\r\n\r\n getCentrosMedicos(categoria = ''): Observable<CentroMedico[]> {\r\n const params = categoria ? `?categoria=${categoria}` : '';\r\n return this.httpClientService.get(`${this.siteApiUrl}centro-medico-diagnostico${params}`);\r\n }\r\n\r\n // Centro de Estudos\r\n checkMedico(conselhoCodigo: string): Observable<any> {\r\n return this.httpClientService.get(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}?email=${conselhoCodigo}`);\r\n }\r\n\r\n saveMedico(novoMedico: CentroEstudosBackendMedico): Observable<CentroEstudosBackendMedico> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}`, novoMedico);\r\n }\r\n\r\n logClientError(error: string, origin: string, url: string) {\r\n return this.httpClientService.post(`${this.siteApiUrl}log/error`, {\r\n error,\r\n origin,\r\n url,\r\n });\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\n\r\nimport * as he from 'he';\r\n\r\nimport { SocialMetaProperties } from '../../models/social-meta-properties.model';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { BreadcrumbsJsonItem } from '../../models/breadcrumbs/breadcrumbs-json-item.model';\r\nimport { SeoData } from '../../models/seo/seo-data.model';\r\nimport { SeoUnidade } from '../../models/seo/seo-unidade.model';\r\nimport { WpPost } from '../../models/wordpress/post/post.model';\r\nimport { getSiteUrl, removeHtmlTags } from '../../helpers';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SeoService {\r\n public separator = ' - ';\r\n public defaultTitle = 'Rede D’Or';\r\n public activeDescription!: string;\r\n public sameAs = [\r\n 'https://www.facebook.com/rededor/',\r\n 'https://www.instagram.com/rededor_oficial/',\r\n 'https://www.linkedin.com/company/rededor-saoluiz',\r\n 'https://twitter.com/rededor',\r\n ];\r\n public twitterUser = '@rededor';\r\n\r\n private canonicalTag!: HTMLLinkElement;\r\n private jsonTag!: HTMLScriptElement;\r\n private jsonTagId = 'seoJSON';\r\n private breadcrumbsJsonTag!: HTMLScriptElement;\r\n private breadcrumbsJsonTagId = 'breadcrumbsJSON';\r\n\r\n public unidade: any = null;\r\n public unidadeName: string = '';\r\n public unidadePath: string = '';\r\n public unidadeSlug: string = '';\r\n\r\n public customJsonType: any[] = [];\r\n\r\n constructor(\r\n private title: Title,\r\n private meta: Meta,\r\n private location: Location,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(DOCUMENT) private document: Document,\r\n ) {}\r\n\r\n public setFullSeo(data: SeoData) {\r\n this.setTitle(data.title.text, !!data.title.sub);\r\n this.setDescription(data.description);\r\n this.setCanonicalHref(data.canonical);\r\n this.setPageJson();\r\n this.setSocialTags(data.socialTags);\r\n }\r\n\r\n /**\r\n * Define tag description da página\r\n * @param content conteúdo da descrição <string>\r\n */\r\n public setDescription(content: string): SeoService {\r\n const descTag = this.meta.getTag(\"name='description'\");\r\n if (content) {\r\n content = he.decode(content);\r\n content = removeHtmlTags(content);\r\n } else {\r\n content = '';\r\n }\r\n this.activeDescription = content;\r\n const tagContent = { name: 'description', content };\r\n if (descTag) {\r\n this.meta.updateTag(tagContent);\r\n } else {\r\n this.meta.addTag(tagContent);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Define meta tags para a página\r\n * @param tag nome da tag meta\r\n * @param content conteúdo da tag meta\r\n * @param type tipo de tag meta\r\n */\r\n public setMetaTag(tag: string, content: string, type = 'name') {\r\n const metatag = this.meta.getTag(`${type}='${tag}'`);\r\n content = he.decode(content);\r\n content = removeHtmlTags(content);\r\n const tagContent = {\r\n [type]: tag,\r\n content,\r\n };\r\n if (!metatag) {\r\n this.meta.addTag(tagContent);\r\n } else {\r\n this.meta.updateTag(tagContent);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove meta tags da página\r\n * @param tag nome da tag meta\r\n * @param content conteúdo da tag meta\r\n * @param attr atributo da tag meta\r\n * @param type tipo de tag meta\r\n */\r\n public removeTag(tag: string, content: string, attr: string, type = 'name') {\r\n const metatag = this.meta.getTag(`${type}='${tag}'`);\r\n if (metatag) {\r\n this.meta.removeTag(`${attr}=${content}`);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Define meta tags para Facebook\r\n * @param title título para o facebook\r\n * @param description descrição para o facebook\r\n * @param url url para definição do facebook\r\n * @param img imagem para definição no facebook\r\n */\r\n public setMetaFacebook(title: string, description: string, url: string, img: string | null = null) {\r\n this.setMetaTag('og:url', url, 'property');\r\n this.setMetaTag('og:title', title, 'property');\r\n this.setMetaTag('og:description', description, 'property');\r\n this.setMetaTag('og:type', 'website', 'property');\r\n this.setMetaTag('og:image', img ?? '', 'property');\r\n }\r\n\r\n /**\r\n * Define meta tags para Twitter\r\n * @param title título para o twitter\r\n * @param description descrição para o twitter\r\n * @param url url para o twitter\r\n * @param img imagem para definição no twitter\r\n */\r\n public setMetaTwitter(title: string, description: string, url: string, img: string | null = null) {\r\n this.setMetaTag('twitter:site', url, 'name');\r\n this.setMetaTag('twitter:title', title, 'name');\r\n this.setMetaTag('twitter:description', description, 'name');\r\n this.setMetaTag('twitter:image', img ?? '', 'name');\r\n }\r\n\r\n /**\r\n * Define tags de redes sociais (Twitter e Open Graph)\r\n * @param properties\r\n */\r\n setSocialTags(properties?: SocialMetaProperties) {\r\n const pagePath = this.location.path();\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n let defaultProperties: SocialMetaProperties = {\r\n twitterCard: 'summary',\r\n twitterSite: this.twitterUser,\r\n type: 'website',\r\n title: this.getTitle(),\r\n description: this.activeDescription || '',\r\n url: `${siteurl}${pagePath}`,\r\n image: this.libConfig?.logoPath ? `${siteurl}${this.libConfig.logoPath}` : 'https://www.rededorsaoluiz.com.br/assets/imgs/logo-rededor-blue.png',\r\n };\r\n if (properties) {\r\n defaultProperties = { ...defaultProperties, ...properties };\r\n }\r\n this.setMetaTag('twitter:card', defaultProperties.twitterCard || '', 'name')\r\n .setMetaTag('twitter:site', defaultProperties.twitterSite || '', 'name')\r\n .setMetaTag('og:type', defaultProperties.type || '', 'property')\r\n .setMetaTag('og:title', defaultProperties.title || '', 'property')\r\n .setMetaTag('og:description', defaultProperties.description || '', 'property')\r\n .setMetaTag('og:url', defaultProperties.url || '', 'property')\r\n .setMetaTag('og:image', defaultProperties.image || '', 'property');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Define título da página\r\n * @param title título da página <string>\r\n * @param sub Se é subsite acrescenta unidade <boolean>\r\n */\r\n public setTitle(title: string, sub = false) {\r\n if (title && title !== '') {\r\n title = he.decode(title);\r\n title = removeHtmlTags(title);\r\n if (sub) {\r\n title = he.decode(`${title}${this.separator}${this.unidadeName}`);\r\n }\r\n this.title.setTitle(title);\r\n }\r\n return this;\r\n }\r\n\r\n /** Obtem título atual da página */\r\n public getTitle(): string {\r\n return this.title.getTitle();\r\n }\r\n\r\n public set404Title(component: string = 'Default Component') {\r\n if (component && component !== '') {\r\n component = he.decode(component);\r\n component = removeHtmlTags(component);\r\n if (this.unidadeName) {\r\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\r\n }\r\n }\r\n const title = `Erro 404 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\r\n this.title.setTitle(title);\r\n return this;\r\n }\r\n\r\n public set500Title(component: string = 'Default Component') {\r\n if (component && component !== '') {\r\n component = he.decode(component);\r\n component = removeHtmlTags(component);\r\n if (this.unidadeName) {\r\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\r\n }\r\n }\r\n const title = `Erro 500 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\r\n this.title.setTitle(title);\r\n return this;\r\n }\r\n\r\n /** Cria tag script para JSON de breadcrumbs */\r\n private createBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const tag: HTMLScriptElement = this.document.createElement('script');\r\n tag.id = this.breadcrumbsJsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n this.breadcrumbsJsonTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\r\n private getBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLScriptElement;\r\n if (elem && elem.id === this.breadcrumbsJsonTagId) {\r\n return elem;\r\n }\r\n }\r\n return this.createBreadcrumbsJSONTag();\r\n }\r\n\r\n /** Define o JSON de breadcrumbs da página */\r\n public setBreadcrumbsJson(items: BreadcrumbsItems[]) {\r\n this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: this.getJsonBreadcrumbItems(items),\r\n };\r\n this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);\r\n return this;\r\n }\r\n\r\n /** Converte itens do breadcrumb em itens do JSON */\r\n private getJsonBreadcrumbItems(items: BreadcrumbsItems[]): BreadcrumbsJsonItem[] {\r\n const jsonItems = [\r\n {\r\n '@type': 'ListItem',\r\n position: 1,\r\n item: { '@id': this.getBreadcrumbItemUrl(['/']), name: he.encode('Página Inicial') },\r\n } as BreadcrumbsJsonItem,\r\n ];\r\n items.forEach((item, i) => {\r\n const jsonItem: BreadcrumbsJsonItem = {\r\n '@type': 'ListItem',\r\n position: i + 2,\r\n item: { '@id': this.getBreadcrumbItemUrl(item?.url || []), name: he.encode(item.label) },\r\n };\r\n jsonItems.push(jsonItem);\r\n });\r\n return jsonItems;\r\n }\r\n\r\n /**\r\n * Monta a url do item de breadcrumb proveniente do array de urls\r\n * ou do caminho da própria página, conforme caso do último item.\r\n */\r\n private getBreadcrumbItemUrl(url: string[]): string {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n if (!url || url.length <= 0) {\r\n const pagePath = this.location.path();\r\n return `${siteurl}${pagePath}`;\r\n }\r\n url = url.filter((u) => u !== this.unidadePath);\r\n const unidadePath = this.getUnidadePath();\r\n const fullPath = `${unidadePath}/${url.join('/').replace(/^\\/?/, '')}`;\r\n return `${siteurl}${fullPath}`.replace(/\\/$/, '');\r\n }\r\n\r\n /** Cria tag script para o JSON de SEO */\r\n private createJSONTag(): HTMLScriptElement {\r\n const tag: HTMLScriptElement = this.document.createElement('script');\r\n tag.id = this.jsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n this.jsonTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\r\n private getJSONTag(): HTMLScriptElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLScriptElement;\r\n if (elem && elem.id === this.jsonTagId) {\r\n return elem;\r\n }\r\n }\r\n return this.createJSONTag();\r\n }\r\n\r\n /** Define JSON para SEO somente quando no servidor */\r\n public setPageJson() {\r\n this.jsonTag = this.getJSONTag();\r\n\r\n const baseGraph = [this.getOrgJson(), this.getWebsiteJson(), this.getWebpageJson()];\r\n\r\n const extendedGraph = this.customJsonType.length ? [...baseGraph, ...this.customJsonType] : baseGraph;\r\n\r\n this.customJsonType = [];\r\n\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@graph': extendedGraph,\r\n };\r\n\r\n this.jsonTag.innerHTML = JSON.stringify(json);\r\n\r\n return this;\r\n }\r\n\r\n /** Obtem JSON da Organização */\r\n private getOrgJson() {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return {\r\n '@type': 'Organization',\r\n '@id': `${siteurl}#organization`,\r\n name: this.defaultTitle,\r\n keywords: this.libConfig?.keywords,\r\n url: `${siteurl}`,\r\n sameAs: this.sameAs,\r\n };\r\n }\r\n\r\n /** Obtem JSON do Website (portal, unidades, etc) */\r\n private getWebsiteJson() {\r\n const unidadePath = this.getUnidadePath();\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return {\r\n '@type': 'WebSite',\r\n '@id': `${siteurl}${unidadePath}#website`,\r\n url: `${siteurl}${unidadePath}`,\r\n name: this.unidadeName,\r\n keywords: this.libConfig?.keywords,\r\n };\r\n }\r\n\r\n /** Obtem Json da página */\r\n private getWebpageJson() {\r\n const unidadePath = this.getUnidadePath();\r\n const siteURL = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n const pagePath = `${siteURL}${this.location.path()}`;\r\n const desc = this.activeDescription ? this.activeDescription : '';\r\n return {\r\n '@type': 'WebPage',\r\n '@id': `${pagePath}#webpage`,\r\n url: pagePath,\r\n inLanguage: 'pt-BR',\r\n name: this.getTitle(),\r\n isPartOf: { '@id': `${siteURL}${unidadePath}#website` },\r\n about: { '@id': `${siteURL}#organization` },\r\n description: desc,\r\n };\r\n }\r\n\r\n private getUnidadePath() {\r\n let unidadePath = '';\r\n if (this.unidade && this.unidadePath) {\r\n unidadePath = this.unidade?.path === '/' ? '' : this.unidadePath?.substring(0, this.unidadePath?.length - 1);\r\n }\r\n return unidadePath;\r\n }\r\n\r\n /**\r\n * Obtém a URL canônica da página.\r\n * @returns A URL canônica da página.\r\n */\r\n public getCanonicalHref(): string {\r\n if (!this.canonicalTag) {\r\n this.canonicalTag = this.getCanonicalTag();\r\n }\r\n return this.canonicalTag.href;\r\n }\r\n\r\n /** Cria tag para links canonicals no head */\r\n private createCanonicalTag(): HTMLLinkElement {\r\n const tag = this.document.createElement('link');\r\n tag.setAttribute('rel', 'canonical');\r\n this.document.head.appendChild(tag);\r\n tag.setAttribute('href', this.document.URL);\r\n this.canonicalTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para link canonical existe ou cria se não houver. */\r\n private getCanonicalTag(): HTMLLinkElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLLinkElement;\r\n if (elem && elem.tagName === 'LINK' && elem.rel === 'canonical') {\r\n return elem;\r\n }\r\n }\r\n return this.createCanonicalTag();\r\n }\r\n\r\n /**\r\n * Define link canonical da página\r\n * @param url url canonical\r\n */\r\n public setCanonicalHref(url?: string) {\r\n if (!this.canonicalTag) {\r\n this.canonicalTag = this.getCanonicalTag();\r\n }\r\n\r\n let path = this.document.location.pathname;\r\n\r\n if (this.libConfig?.siteSufix && path.includes(this.libConfig?.siteSufix)) {\r\n path = path.replace(this.libConfig?.siteSufix, '');\r\n }\r\n\r\n if (!path.startsWith('/')) {\r\n path = `/${path}`;\r\n }\r\n\r\n const canonicalUrl = url && this.isCustomCanonical(url) ? url : `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${path}`;\r\n\r\n this.canonicalTag.setAttribute('href', canonicalUrl);\r\n return this;\r\n }\r\n\r\n /**\r\n * Verifica se a URL fornecida é um link canonical personalizado\r\n * @param url URL fornecida\r\n */\r\n public isCustomCanonical(url: string): boolean {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return url.startsWith(siteurl);\r\n }\r\n\r\n /**\r\n * Obtém uma url válida na aplicação proveniente de uma URL gerada\r\n * pelo plugin Yoast para canonical automático.\r\n * Ex.: https://wp.rededorsaoluiz.com.br/brasil/especialidades/cardiologia/\r\n * @param urlFromWpApi URL canonica gerada pelo Yoast Plugin.\r\n */\r\n toLocalCanonical(urlFromWpApi: string): string {\r\n const apiUrl = this.libConfig?.wpUrl ?? '';\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n const unidadeSlug = this.unidadeSlug;\r\n let converted = urlFromWpApi.replace(apiUrl, siteurl);\r\n if (unidadeSlug !== '/' && converted.includes(`/${unidadeSlug}/`)) {\r\n converted = converted.replace(`/${unidadeSlug}/`, `${this.unidadePath}`);\r\n }\r\n return converted;\r\n }\r\n\r\n getPostContent(post: WpPost): string {\r\n const content = post?.acf?.['rdsl_post_content'] ? post?.acf?.rdsl_post_content?.find((content: any) => content.acf_fc_layout === 'text_html') : null;\r\n return content?.content || post.content.rendered || '';\r\n }\r\n\r\n addArticleScript(post: WpPost, scriptName: string): void {\r\n const postContent = this.getPostContent(post);\r\n const postHeaderImage = post?.acf?.['rdsl_post_header_img']\r\n ? {\r\n url: post?.acf?.['rdsl_post_header_img'].url,\r\n width: post?.acf?.['rdsl_post_header_img'].width,\r\n height: post?.acf?.['rdsl_post_header_img'].height,\r\n }\r\n : null;\r\n\r\n const structuredData = {\r\n '@context': 'https://schema.org',\r\n '@type': 'Article',\r\n mainEntityOfPage: `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`,\r\n headline: post.title?.rendered,\r\n datePublished: post.date_gmt,\r\n publisher: {\r\n '@type': 'Organization',\r\n name: 'Rede D’Or',\r\n },\r\n description: post.title?.rendered,\r\n articleBody: removeHtmlTags(he.decode(postContent)),\r\n dateModified: post.modified_gmt,\r\n image: {\r\n '@type': 'ImageObject',\r\n url: postHeaderImage?.url || post.featured_media_path || '',\r\n height: postHeaderImage?.height || '',\r\n width: postHeaderImage?.width || '',\r\n },\r\n author: {\r\n '@type': 'Organization',\r\n name: 'Rede D’Or',\r\n },\r\n wordcount: postContent.split(' ').length,\r\n };\r\n\r\n const script = this.document.createElement('script');\r\n\r\n script.type = 'application/ld+json';\r\n script.id = scriptName;\r\n script.innerHTML = JSON.stringify(structuredData);\r\n\r\n this.document.head.appendChild(script);\r\n }\r\n\r\n removeArticleScript(scriptName: string): void {\r\n const script = this.document.getElementById(scriptName);\r\n script?.remove();\r\n }\r\n\r\n public setUnidade({ unidade = null, unidadeName = '', unidadePath = '', unidadeSlug = '' }: SeoUnidade) {\r\n this.unidade = unidade;\r\n this.unidadeName = unidadeName;\r\n this.unidadePath = unidadePath;\r\n this.unidadeSlug = unidadeSlug;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Request, Response } from 'express';\r\n\r\nexport const REQUEST = new InjectionToken<Request>('REQUEST');\r\nexport const RESPONSE = new InjectionToken<Response>('RESPONSE');\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Response } from 'express';\r\nimport { RESPONSE } from '../../tokens/express.tokens';\r\n\r\nexport interface IServerResponseService {\r\n getHeader(key: string): string;\r\n setHeader(key: string, value: string): this;\r\n setHeaders(dictionary: { [key: string]: string }): this;\r\n appendHeader(key: string, value: string, delimiter?: string): this;\r\n setStatus(code: number, message?: string): this;\r\n setNotFound(message?: string): this;\r\n setError(message?: string): this;\r\n setRedirect(redirectParams?: { statusCode: number; message: string; url?: string }): this;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ServerResponseService implements IServerResponseService {\r\n private response: Response;\r\n\r\n constructor(@Optional() @Inject(RESPONSE) response: any) {\r\n this.response = response;\r\n }\r\n\r\n getHeader(key: string): string {\r\n return this.response.getHeader(key) as string;\r\n }\r\n\r\n setHeader(key: string, value: string): this {\r\n if (this.response) {\r\n this.response.header(key, value);\r\n }\r\n return this;\r\n }\r\n\r\n appendHeader(key: string, value: string, delimiter = ','): this {\r\n if (this.response) {\r\n const current = this.getHeader(key);\r\n if (!current) {\r\n return this.setHeader(key, value);\r\n }\r\n const newValue = [...current.split(delimiter), value].filter((el, i, a) => i === a.indexOf(el)).join(delimiter);\r\n this.response.header(key, newValue);\r\n }\r\n return this;\r\n }\r\n\r\n setHeaders(dictionary: { [key: string]: string }): this {\r\n if (this.response) {\r\n Object.keys(dictionary).forEach((key) => this.setHeader(key, dictionary[key]));\r\n }\r\n return this;\r\n }\r\n\r\n setStatus(code: number, message?: string): this {\r\n if (this.response) {\r\n this.response.statusCode = code;\r\n if (message) {\r\n this.response.statusMessage = message;\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n setNotFound(message = 'Não encontrado'): this {\r\n if (this.response) {\r\n this.response.statusCode = 404;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setUnauthorized(message = 'Não autorizado'): this {\r\n if (this.response) {\r\n this.response.statusCode = 401;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setError(message = 'Erro interno de servidor'): this {\r\n if (this.response) {\r\n this.response.statusCode = 500;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setRedirect(\r\n { statusCode, message, url }: { statusCode?: number; message?: string; url?: string } = {\r\n statusCode: 301,\r\n message: 'Redirecionado permanentemente',\r\n url: undefined,\r\n },\r\n ): this {\r\n if (this.response) {\r\n this.response.statusCode = statusCode || 301;\r\n this.response.statusMessage = message || 'Redirecionado permanentemente';\r\n if (url) {\r\n this.response.locals['redirectUrl'] = url; // Utilizado no ssr para redirect\r\n }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nexport type HttpCacheDirective = 'public' | 'private' | 'no-store' | 'no-cache' | 'must-revalidate' | 'no-transform' | 'proxy-revalidate';\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { LogService } from '../log/log.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SsrLoadingService {\r\n public ssrIsLoading = false;\r\n private _loading = false;\r\n\r\n constructor(\r\n private logService: LogService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) {}\r\n\r\n startLoading(component = '', intervalMs = 200, timeoutMs = 20000) {\r\n if (!isPlatformServer(this.platformId)) return;\r\n\r\n this._loading = true;\r\n this.ssrIsLoading = true;\r\n\r\n const timeout = setTimeout(() => {\r\n this._loading = false;\r\n this.ssrIsLoading = false;\r\n this.logService.logMsg('SSR loading service Timeout ' + component, 'TIMEOUT');\r\n }, timeoutMs);\r\n\r\n const interval = setInterval(() => {\r\n if (this._loading === true) {\r\n this.ssrIsLoading = !this.ssrIsLoading;\r\n } else {\r\n clearInterval(interval);\r\n clearTimeout(timeout);\r\n this.ssrIsLoading = false;\r\n }\r\n }, intervalMs);\r\n }\r\n\r\n stopLoading() {\r\n this._loading = false;\r\n }\r\n}\r\n","import { Injectable, makeStateKey, StateKey, TransferState } from '@angular/core';\r\n// import * as CryptoJS from 'crypto-js'; // Caso seja necessário criptografar novamente, é necessário adicionar o pacote crypto-js nos package.json\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TransferStateService {\r\n private keys = new Map<string, StateKey<string>>();\r\n cryptoKey = '3c2d70ab27a420aca8cf4191611fa4ee';\r\n\r\n constructor(private readonly transferState: TransferState) {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setKey(name: any, response: any | any[]) {\r\n return; // teste removendo transferstate\r\n // let key = this.keys.get(name);\r\n // if (!key) {\r\n // key = makeStateKey(name);\r\n // this.keys.set(name, key);\r\n // }\r\n // const jsonString = JSON.stringify(response);\r\n // const cryptedResponse = CryptoJS.AES.encrypt(jsonString, this.cryptoKey).toString();\r\n // this.transferState.set(key, cryptedResponse);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getKey(name: string, defaultValue: any | any[] = null): any | any[] {\r\n return null; // teste removendo transferstate\r\n // let key = this.keys.get(name);\r\n // if (!key) {\r\n // key = makeStateKey(name);\r\n // this.keys.set(name, key);\r\n // }\r\n // const cryptedData = this.transferState.get(key, defaultValue);\r\n // if (!cryptedData) {\r\n // return defaultValue;\r\n // }\r\n // try {\r\n // const bytes = CryptoJS.AES.decrypt(cryptedData, this.cryptoKey);\r\n // const decryptedResponseJson = bytes.toString(CryptoJS.enc.Utf8);\r\n // const decryptedResponse = JSON.parse(decryptedResponseJson);\r\n // return decryptedResponse;\r\n // } catch (error) {\r\n // return defaultValue;\r\n // }\r\n }\r\n\r\n remove(name: string) {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n this.transferState.remove(key);\r\n }\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HeaderService {\r\n public showSearch = signal(false);\r\n public showSideMenu = signal(false);\r\n public showSearchOpacity = signal(false);\r\n\r\n toggleShowSearch(value?: boolean) {\r\n // reset showSideMenu to not overlap\r\n this.showSideMenu.update(() => false);\r\n\r\n if (typeof value === 'undefined') {\r\n this.showSearch.update((currentValue) => !currentValue);\r\n return;\r\n }\r\n this.showSearch.update(() => value);\r\n }\r\n\r\n toggleShowSearchOpacity(value?: boolean) {\r\n if (typeof value === 'undefined') {\r\n this.showSearchOpacity.update((currentValue) => !currentValue);\r\n return;\r\n }\r\n this.showSearchOpacity.update(() => value);\r\n }\r\n\r\n toggleShowSideMenu(value?: boolean) {\r\n // reset showSearch to not overlap\r\n this.showSearch.update(() => false);\r\n\r\n if (typeof value === 'undefined') {\r\n this.showSideMenu.update((currentValue) => !currentValue);\r\n return;\r\n }\r\n this.showSideMenu.update(() => value);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { RdslAlgoliaMultipleIndex } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaMultipleResults, AlgoliaResult } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaSearchParams } from '../../models/algolia-search-api.model';\r\nimport { Observable, Subscriber } from 'rxjs';\r\n// @ts-ignore\r\nimport { SearchAPISDK } from '@rededor/search-api-sdk/index.js';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlgoliaSearchApiService {\r\n constructor(@Inject(LIB_CONFIG) private libConfig: LibConfig) {}\r\n\r\n searchAPI: any;\r\n\r\n search(query: string, indexName: string, params: AlgoliaSearchParams = {}): Observable<AlgoliaResult<any>> {\r\n if (!this.searchAPI) {\r\n this.initAPI();\r\n }\r\n return new Observable((subscriber) => {\r\n if (indexName) {\r\n this.searchAPI\r\n .search({\r\n indexName,\r\n query,\r\n params,\r\n })\r\n .then(\r\n (response: any) => {\r\n this.subscriberNext(subscriber, response);\r\n },\r\n (err: any) => {\r\n this.subscriberError(subscriber, err);\r\n },\r\n );\r\n } else {\r\n this.subscriberError(subscriber, 'Atenção, você precisa definir um índice para a busca.');\r\n }\r\n });\r\n }\r\n\r\n searchMultipleIndexes(indexes: RdslAlgoliaMultipleIndex[]): Observable<AlgoliaMultipleResults> {\r\n if (!this.searchAPI) {\r\n this.initAPI();\r\n }\r\n return new Observable((subscriber) => {\r\n this.searchAPI.search(indexes).then(\r\n (response: any) => {\r\n this.subscriberNext(subscriber, response);\r\n },\r\n (err: any) => {\r\n this.subscriberError(subscriber, err);\r\n },\r\n );\r\n });\r\n }\r\n\r\n initAPI() {\r\n this.searchAPI = new SearchAPISDK(this.libConfig.environmentName, this.libConfig.siteProject, this.libConfig.client_id);\r\n }\r\n\r\n subscriberNext(subscriber: Subscriber<any>, value: any) {\r\n subscriber.next(value);\r\n subscriber.complete();\r\n subscriber.unsubscribe();\r\n }\r\n\r\n subscriberError(subscriber: Subscriber<any>, message: any) {\r\n subscriber.error(message);\r\n subscriber.complete();\r\n subscriber.unsubscribe();\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class YoutubeService {\r\n scriptId = 'youtubeApi';\r\n\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n ) {}\r\n\r\n setScript(): void {\r\n if (isPlatformBrowser(this.platformId) && !this.document.getElementById(this.scriptId)) {\r\n const script = this.document.createElement('script');\r\n script.id = this.scriptId;\r\n script.src = 'https://www.youtube.com/iframe_api';\r\n this.document.body.appendChild(script);\r\n }\r\n }\r\n\r\n removeScript(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const script = this.document.getElementById(this.scriptId);\r\n script?.remove();\r\n }\r\n }\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { LogService } from '../log/log.service';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\nexport interface MapBoxGeocodingParams {\r\n autocomplete?: boolean;\r\n bbox?: string; // minLon, minLat, maxLon, maxLat\r\n country?: string; // country codes separated by commas\r\n fuzzyMatch?: boolean;\r\n language?: string;\r\n limit?: number; // default: 5, max: 10\r\n proximity?: string; // longitude, latitude\r\n routing?: boolean;\r\n // Types can be comma separated\r\n types?: string; // \"country\" | \"region\" | \"postcode\" | \"district\" | \"place\" | \"locality\" | \"neighborhood\" | \"address\" | \"poi\"\r\n [propName: string]: any;\r\n}\r\n\r\nexport interface MapBoxReverseGeocodingParams {\r\n country?: string; // country codes separated by commas\r\n language?: string;\r\n limit?: number; // default: 5, max: 10\r\n reverseMode?: 'distance' | 'score';\r\n routing?: boolean;\r\n // Types can be comma separated\r\n types?: string; // \"country\" | \"region\" | \"postcode\" | \"district\" | \"place\" | \"locality\" | \"neighborhood\" | \"address\" | \"poi\"\r\n [propName: string]: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MapBoxService {\r\n private mapboxAccessToken = this.libConfig.mapboxAccessToken;\r\n private mapboxSSRAccessToken = this.libConfig.mapboxSSRAccessToken;\r\n private mapboxApiUrl = 'https://api.mapbox.com';\r\n private geocodingEp = 'search/geocode/v6';\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly logService: LogService,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n /**\r\n * Busca geocalizada por nome do local.\r\n * Ex.: barra da tijuca, rio de janeiro - rio de janeiro, brasil\r\n * @param query nome de local para a busca\r\n * @param params parâmetros opcionais de busca e filtro\r\n */\r\n forwardGeocoding(query: string, params: MapBoxGeocodingParams = {}, logContext?: string): Observable<any> {\r\n this.logMapbox('forwardGeocoding', logContext);\r\n if (query.length >= 256) {\r\n return throwError(() => 'Query length exceeds 255 characters.');\r\n }\r\n const url = `${this.mapboxApiUrl}/${this.geocodingEp}/forward?q=${query}`;\r\n params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;\r\n return this.http.get(url, { params, headers: this.getHeaders() });\r\n }\r\n\r\n /**\r\n * Busca local por longitude e latitude\r\n * @param lng formato longitude\r\n * @param lat formato latitude\r\n * @param params parâmetros opcionais de busca e filtro\r\n */\r\n reverseGeocoding(lng: string, lat: string, params: MapBoxReverseGeocodingParams = {}, logContext?: string): Observable<any> {\r\n this.logMapbox('reverseGeocoding', logContext);\r\n const url = `${this.mapboxApiUrl}/${this.geocodingEp}/reverse?longitude=${lng}&latitude=${lat}`;\r\n params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;\r\n return this.http.get(url, { params });\r\n }\r\n\r\n private logMapbox(callerFunction: string, context = 'no-context') {\r\n const platform = isPlatformServer(this.platformId) ? 'server' : 'browser';\r\n this.logService.logMsg(`${platform} - ${callerFunction} - ${context}`, 'MAPBOX');\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n return new HttpHeaders().set('Referrer-Policy', 'origin');\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { MapBoxReverseGeocodingParams, MapBoxService } from '../mapbox/mapbox.service';\r\nimport { BehaviorSubject, map, Observable } from 'rxjs';\r\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { LogService } from '../log/log.service';\r\nimport checkSafariAgent from '../../helpers/check-safari-agent.func';\r\nimport { getCircularReplacer } from '../../helpers';\r\n\r\nexport enum GeolocationPermissions {\r\n GRANTED = 'granted',\r\n PROMPT = 'prompt',\r\n DENIED = 'denied',\r\n}\r\n\r\nexport interface Geolocation {\r\n lat: number;\r\n lng: number;\r\n}\r\n\r\nexport interface Address {\r\n city: string;\r\n state: {\r\n name: string;\r\n shortCode: string;\r\n };\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GeolocService {\r\n private _mapboxGeocodingParams: MapBoxReverseGeocodingParams = {\r\n types: 'place',\r\n limit: 1,\r\n language: 'pt-BR',\r\n country: 'BR',\r\n };\r\n\r\n private _hasConsent = false;\r\n private _switchStatus = false;\r\n public get switchStatus(): boolean {\r\n return this._switchStatus;\r\n }\r\n private _address: Address | null = null;\r\n public get address(): Address | null {\r\n return this._address;\r\n }\r\n\r\n private _permission: PermissionState = GeolocationPermissions.PROMPT;\r\n public get permission(): PermissionState {\r\n return this._permission;\r\n }\r\n\r\n public geolocation: BehaviorSubject<Geolocation | null> = new BehaviorSubject<Geolocation | null>(null);\r\n public isChecked: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false); // Emite true quando o geoloc está estável\r\n\r\n private _isSafariAgent: boolean = false;\r\n private _disableSwitch = false;\r\n public get disableSwitch(): boolean {\r\n return this._disableSwitch;\r\n }\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private readonly document: Document,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n private mapboxService: MapBoxService,\r\n private readonly logService: LogService,\r\n ) {\r\n if (isPlatformServer(this.platformId)) {\r\n this.isChecked.next(true);\r\n return;\r\n }\r\n\r\n this._isSafariAgent = checkSafariAgent();\r\n if (this._isSafariAgent) {\r\n this._hasConsent = this.checkACookieExists('geolocation_consent');\r\n this.initGeolocation(this._hasConsent);\r\n return;\r\n }\r\n\r\n navigator?.permissions\r\n ?.query({ name: 'geolocation' })\r\n .then((permission) => {\r\n this._permission = permission.state;\r\n this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);\r\n\r\n permission.onchange = () => {\r\n this._permission = permission.state;\r\n this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);\r\n };\r\n })\r\n .catch((error) => {\r\n this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');\r\n this._permission = GeolocationPermissions.DENIED;\r\n this._disableSwitch = true;\r\n this.initGeolocation(false);\r\n });\r\n }\r\n\r\n initGeolocation(geolocAllowed = false): void {\r\n this._switchStatus = true;\r\n if (geolocAllowed) {\r\n this.getCurrentPosition().subscribe({\r\n next: (position) => {\r\n this._disableSwitch = false;\r\n this.setGeolocation(position);\r\n this.setConsentCookie(true, 3650);\r\n this._hasConsent = true;\r\n this._permission = GeolocationPermissions.GRANTED;\r\n },\r\n error: () => {\r\n if (this._permission === GeolocationPermissions.DENIED) {\r\n this._disableSwitch = true;\r\n this.setConsentCookie(false, 15);\r\n }\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._hasConsent = false;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n },\r\n });\r\n } else {\r\n if (this.permission === GeolocationPermissions.DENIED) {\r\n this._disableSwitch = true;\r\n this.setConsentCookie(false, 15);\r\n }\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._hasConsent = false;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n }\r\n }\r\n\r\n private getCurrentPosition(): Observable<GeolocationPosition> {\r\n return new Observable((observer) => {\r\n navigator.geolocation.getCurrentPosition(\r\n (position) => {\r\n observer.next(position);\r\n observer.complete();\r\n },\r\n (error) => observer.error(error),\r\n { enableHighAccuracy: true },\r\n );\r\n });\r\n }\r\n\r\n private setGeolocation(position: GeolocationPosition): void {\r\n if (position) {\r\n if (position.coords.latitude === this.geolocation.value?.lat && position.coords.longitude === this.geolocation.value?.lng) return;\r\n\r\n this.geolocation.next({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n });\r\n\r\n this.getMapboxAdress()\r\n .pipe(\r\n map((response) => {\r\n const city = response?.features[0]?.properties?.name;\r\n const state = {\r\n name: response?.features[0]?.properties?.context?.region?.name,\r\n shortCode: response?.features[0]?.properties?.context?.region?.region_code,\r\n };\r\n return { city, state };\r\n }),\r\n )\r\n .subscribe({\r\n next: (response) => {\r\n this._address = response;\r\n this._switchStatus = true;\r\n this.isChecked.next(true);\r\n },\r\n error: (error) => {\r\n this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');\r\n this._switchStatus = false;\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this.isChecked.next(true);\r\n },\r\n });\r\n } else {\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n }\r\n }\r\n\r\n private getMapboxAdress(): Observable<any> {\r\n const lng = `${this.geolocation.value?.lng}`;\r\n const lat = `${this.geolocation.value?.lat}`;\r\n return this.mapboxService.reverseGeocoding(lng, lat, this._mapboxGeocodingParams, 'geolocalizacao.service getMapboxAdress');\r\n }\r\n\r\n checkACookieExists(name: string): boolean {\r\n if (isPlatformServer(this.platformId) || typeof this.document === 'undefined' || !this.document?.cookie) {\r\n return false;\r\n }\r\n return this.document.cookie\r\n .split(';')\r\n .map((item) => item.trim())\r\n .some((item) => item.trim().startsWith(name));\r\n }\r\n\r\n private setConsentCookie(status: boolean, days: number): void {\r\n if (this.getCookieValue('geolocation_consent') !== status.toString()) {\r\n const lifetime = new Date(Date.now() + days * 86400000).toUTCString();\r\n this.document.cookie = `geolocation_consent=${status}; path=/; expires=${lifetime}; SameSite=None; Secure`;\r\n }\r\n }\r\n\r\n private getCookieValue(prop: string): string {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const value = this.document.cookie\r\n .split(';')\r\n .map((item) => item.trim())\r\n .find((item) => item.startsWith(`${prop}=`));\r\n\r\n return value ? value.slice(prop.length + 1) : '';\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, ElementRef, AfterViewInit, ViewEncapsulation, Inject } from '@angular/core';\r\nimport { CuraService, PrivacyToolsService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterTheme } from './models/FooterTheme.model';\r\nimport { getFooterTheme } from './helpers/footerTheme.func';\r\nimport { MenuItem, MenuSocialMedia } from '../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'footer[sl-ftr]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './footer.component.html',\r\n styleUrl: './footer.component.scss',\r\n})\r\nexport class FooterComponent implements AfterViewInit {\r\n @Input()\r\n get project() {\r\n return this._project;\r\n }\r\n set project(value: string) {\r\n this._project = value;\r\n this.updateFooterTheme();\r\n }\r\n private _project: string = 'site';\r\n\r\n @Input()\r\n get theme() {\r\n return this._theme;\r\n }\r\n set theme(value: string) {\r\n this._theme = value;\r\n this.updateFooterTheme();\r\n }\r\n private _theme: string = 'default';\r\n\r\n @Input() disclaimer: string = '';\r\n @Input() linkPrivacyFooter: string = '';\r\n @Output() footerPrivacyClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() footerCookieClick: EventEmitter<Event> = new EventEmitter();\r\n currentYear: number = new Date().getFullYear();\r\n\r\n @Input() logo: any = null;\r\n @Input() partnerLogo: any = null;\r\n @Input() phone: string = '';\r\n @Input() socialMenu: MenuSocialMedia[] = [];\r\n @Input() get logoWidth() {\r\n return this._logoWidth;\r\n }\r\n set logoWidth(value: number) {\r\n this._logoWidth = value;\r\n this.updateLogoWidth();\r\n }\r\n private _logoWidth: number = 72;\r\n\r\n @Output() footerSocialMediaClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @Input() footerMenu: MenuItem[] = [];\r\n @Output() footerMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(\r\n private curaService: CuraService,\r\n public privacyTools: PrivacyToolsService,\r\n private elementRef: ElementRef,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n this.updateFooterTheme();\r\n }\r\n\r\n private updateLogoWidth() {\r\n this.elementRef.nativeElement.style.setProperty('--logo-width', `${this.logoWidth}px`);\r\n }\r\n\r\n private updateFooterTheme() {\r\n const footerTheme: FooterTheme = getFooterTheme(this.project, this.theme, this.curaService);\r\n Object.entries(footerTheme).forEach(([key, value]) => {\r\n Object.entries(value).forEach(([prop, val]) => {\r\n const cssVar = `--${key}-${prop}`;\r\n this.elementRef.nativeElement.style.setProperty(cssVar, val as string);\r\n });\r\n });\r\n }\r\n\r\n footerSocialMediaClicked(event: Event) {\r\n this.footerSocialMediaClick.emit(event);\r\n }\r\n\r\n toggleSubMenu(event: Event, menu: Partial<MenuItem>) {\r\n event.stopPropagation();\r\n menu.active = !menu.active;\r\n }\r\n\r\n footerMenuItemClicked(event: Event) {\r\n this.footerMenuItemClick.emit(event);\r\n }\r\n\r\n footerPrivacyClicked(event: Event) {\r\n this.footerPrivacyClick.emit(event);\r\n }\r\n\r\n footerCookieClicked(event: Event) {\r\n this.footerCookieClick.emit(event);\r\n }\r\n}\r\n","<div class=\"sl-ftr-content\">\r\n <div>\r\n <div class=\"sl-ftr-contact\">\r\n @if (logo) {\r\n <div class=\"logo\">\r\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" [title]=\"logo?.title\" loading=\"lazy\" fetchpriority=\"low\" />\r\n </div>\r\n }\r\n @if (partnerLogo) {\r\n <div class=\"partner-logo\">\r\n <img [src]=\"partnerLogo?.url\" [alt]=\"partnerLogo?.alt\" [title]=\"partnerLogo?.title\" loading=\"lazy\" fetchpriority=\"low\" />\r\n </div>\r\n }\r\n @if (phone) {\r\n <div class=\"phone\">\r\n <a rdsitelink href=\"tel:{{ phone }}\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#phone'\"></use>\r\n </svg>\r\n {{ phone }}\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n\r\n <nav class=\"sl-ftr-medias\">\r\n <ul>\r\n @for (social of socialMenu; track social.title) {\r\n <li>\r\n <a [href]=\"social.link\" rdsitelink [title]=\"social.title\" (click)=\"footerSocialMediaClicked($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + social.icon\"></use>\r\n </svg>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n\r\n <div class=\"content-menu\">\r\n @if (footerMenu.length) {\r\n <div class=\"sl-ftr-menu\">\r\n <nav>\r\n <ul class=\"sl-ftr-menu-list\">\r\n @for (menu of footerMenu; track menu.title) {\r\n <li class=\"sl-ftr-menu-list-item\">\r\n @if (menu.title) {\r\n <div class=\"sl-ftr-menu-item\" [ngClass]=\"{ 'have-children': menu.children?.length }\" (click)=\"toggleSubMenu($event, menu)\">\r\n <a\r\n class=\"sl-ftr-menu-item-link\"\r\n [href]=\"menu.url\"\r\n rdsitelink\r\n [title]=\"menu.title\"\r\n (click)=\"toggleSubMenu($event, menu); footerMenuItemClicked($event)\"\r\n >\r\n {{ menu.title }}\r\n </a>\r\n\r\n @if (menu.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (menu.active ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </div>\r\n\r\n @if (menu.children?.length) {\r\n <ul class=\"sl-ftr-menu-item-children\" [ngClass]=\"{ closed: !menu.active }\">\r\n @for (submenu of menu.children; track submenu.title) {\r\n <li class=\"sl-ftr-menu-item-children-item\">\r\n <div class=\"sl-ftr-menu-item alt\">\r\n <a class=\"sl-ftr-menu-item-link\" [href]=\"submenu.url\" rdsitelink [title]=\"submenu.title\" (click)=\"footerMenuItemClicked($event)\">\r\n {{ submenu.title }}\r\n </a>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n<div class=\"sl-ftr-disc\">\r\n <div class=\"disc-content\">\r\n <div class=\"disc-content-copy\">©{{ currentYear }} {{ disclaimer }}</div>\r\n <ul class=\"disc-content-links\">\r\n <li>\r\n <a [href]=\"linkPrivacyFooter || '#'\" target=\"_blank\" data-testid=\"_avisoPrivacidade\" (click)=\"footerPrivacyClicked($event)\"> Aviso de Privacidade </a>\r\n </li>\r\n <li>\r\n <a (click)=\"privacyTools.openCookieBanner(); footerCookieClicked($event)\" data-testid=\"_avisoCookies\"> Aviso de Cookies </a>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n","import { CuraService } from '../../../services';\r\nimport { HeaderTheme } from '../models/HeaderTheme.model';\r\n\r\nexport const getHeaderTheme = (project: string = 'site', themeStyle: string = 'default', curaService: CuraService) => {\r\n const theme: HeaderTheme = {\r\n hdr: {},\r\n 'hdr-aux': {},\r\n 'hdr-act': {},\r\n 'hdr-main': {},\r\n 'hdr-side': {},\r\n };\r\n\r\n const [primaryLighter, primaryLight, primaryBase, primaryDark, primaryDarker] = [\r\n curaService.getColor('primary-lighter'),\r\n curaService.getColor('primary-light'),\r\n curaService.getColor('primary-base'),\r\n curaService.getColor('primary-dark'),\r\n curaService.getColor('primary-darker'),\r\n ];\r\n const [accentLighter, accentLight, accentBase] = [\r\n curaService.getColor('accent-lighter'),\r\n curaService.getColor('accent-light'),\r\n curaService.getColor('accent-base'),\r\n ];\r\n const [neutralPurewhite, neutralBase] = [curaService.getColor('neutral-purewhite'), curaService.getColor('neutral-base')];\r\n\r\n switch (project) {\r\n case 'site':\r\n if (themeStyle === 'default') {\r\n theme.hdr = {\r\n 'bg-color': primaryBase,\r\n 'over-bg-color': primaryDarker,\r\n };\r\n theme['hdr-aux'] = {\r\n 'bg-color': primaryBase,\r\n 'container-bg-color': primaryDarker,\r\n 'drop-bg-color': neutralPurewhite,\r\n color: neutralPurewhite,\r\n hover: accentLight,\r\n active: accentBase,\r\n 'color-alt': primaryLighter,\r\n 'hover-alt': primaryLight,\r\n 'active-alt': primaryBase,\r\n };\r\n theme['hdr-act'] = {\r\n 'bg-color': neutralBase,\r\n 'items-bg-color': neutralPurewhite,\r\n 'items-color': primaryBase,\r\n 'items-hover': primaryLight,\r\n 'items-active': primaryDark,\r\n };\r\n theme['hdr-main'] = {\r\n 'bg-color': primaryBase,\r\n color: neutralPurewhite,\r\n hover: primaryLighter,\r\n 'bg-hover': primaryDarker,\r\n active: primaryLight,\r\n 'dd-bg-color': primaryDarker,\r\n 'dd-color': neutralPurewhite,\r\n 'dd-icon-color': primaryLight,\r\n 'dd-alt-color': primaryLighter,\r\n 'dd-alt-hover': neutralPurewhite,\r\n 'dd-lv2-content-bg': primaryBase,\r\n 'dd-lv2-bg': primaryDarker,\r\n 'dd-lv3-bg': primaryBase,\r\n 'dd-lv4-bg': primaryDark,\r\n 'dd-cta-bg': neutralPurewhite,\r\n 'dd-cta-color': primaryBase,\r\n };\r\n theme['hdr-side'] = {\r\n 'bg-color': primaryDarker,\r\n 'border-bottom': primaryBase,\r\n 'open-color': primaryLight,\r\n color: neutralPurewhite,\r\n hover: accentLighter,\r\n active: accentLight,\r\n 'alt-color': primaryLighter,\r\n 'alt-hover': neutralPurewhite,\r\n 'alt-active': primaryLight,\r\n };\r\n } else {\r\n theme.hdr = {\r\n 'bg-color': neutralPurewhite,\r\n 'over-bg-color': primaryDarker,\r\n };\r\n theme['hdr-aux'] = {\r\n 'bg-color': primaryDark,\r\n 'container-bg-color': primaryBase,\r\n 'drop-bg-color': neutralPurewhite,\r\n color: neutralPurewhite,\r\n hover: accentLight,\r\n active: accentBase,\r\n 'color-alt': neutralPurewhite,\r\n 'hover-alt': primaryLighter,\r\n 'active-alt': primaryLight,\r\n };\r\n theme['hdr-act'] = {\r\n 'bg-color': primaryBase,\r\n 'items-bg-color': primaryDark,\r\n 'items-color': primaryLight,\r\n 'items-hover': primaryLighter,\r\n 'items-active': primaryBase,\r\n };\r\n theme['hdr-main'] = {\r\n 'bg-color': neutralPurewhite,\r\n color: primaryBase,\r\n hover: primaryLighter,\r\n 'bg-hover': primaryDarker,\r\n active: primaryLight,\r\n 'dd-bg-color': primaryDarker,\r\n 'dd-color': neutralPurewhite,\r\n 'dd-icon-color': primaryLight,\r\n 'dd-alt-color': primaryLighter,\r\n 'dd-alt-hover': neutralPurewhite,\r\n 'dd-lv2-content-bg': primaryBase,\r\n 'dd-lv2-bg': primaryDarker,\r\n 'dd-lv3-bg': primaryBase,\r\n 'dd-lv4-bg': primaryDark,\r\n 'dd-cta-bg': neutralPurewhite,\r\n 'dd-cta-color': primaryBase,\r\n };\r\n theme['hdr-side'] = {\r\n 'bg-color': primaryDarker,\r\n 'border-bottom': primaryBase,\r\n 'open-color': primaryLight,\r\n color: neutralPurewhite,\r\n hover: accentLighter,\r\n active: accentLight,\r\n 'alt-color': primaryLighter,\r\n 'alt-hover': neutralPurewhite,\r\n 'alt-active': primaryLight,\r\n };\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return theme;\r\n};\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-overlay',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './overlay.component.html',\r\n styleUrl: './overlay.component.scss',\r\n})\r\nexport class OverlayComponent {\r\n @Output() overlayClick: EventEmitter<any> = new EventEmitter();\r\n\r\n overlayClicked() {\r\n this.overlayClick.emit();\r\n }\r\n}\r\n","<div class=\"rdsite-overlay\" (click)=\"overlayClicked()\"></div>\r\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { debounceTime, Subscription } from 'rxjs';\r\nimport { CuraService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-search',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './search.component.html',\r\n styleUrl: './search.component.scss',\r\n})\r\nexport class SearchComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() searchControl = new UntypedFormControl('');\r\n @Input() showSearchButtonMobile = true;\r\n @Input() debounceTime = 300;\r\n @Input() label: string = '';\r\n @Input() canClean = false;\r\n @Output() controlBlur = new EventEmitter();\r\n @Output() controlFocus = new EventEmitter();\r\n @Output() controlReset = new EventEmitter();\r\n @Output() termChange: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() enterPress: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n _enable = true;\r\n @Input()\r\n get enable(): boolean {\r\n return this._enable;\r\n }\r\n set enable(value: boolean) {\r\n this._enable = value;\r\n this.setControlState();\r\n }\r\n\r\n _loading = false;\r\n @Input()\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n set loading(value: boolean) {\r\n this._loading = value;\r\n }\r\n\r\n @Input() setFocus = false;\r\n focus = false;\r\n\r\n controlSubscription: Subscription | null = null;\r\n\r\n @ViewChild('searchInput') searchInput?: ElementRef<HTMLInputElement>;\r\n\r\n @HostBinding('style') style = {\r\n '--color': this.curaService.getColor('neutral-black'),\r\n };\r\n\r\n constructor(\r\n private deviceService: DeviceDetectorService,\r\n private curaService: CuraService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.setFocus) this.setInitialFocus();\r\n }\r\n\r\n ngOnInit() {\r\n this.controlSubscription = this.searchControl.valueChanges.pipe(debounceTime(this.debounceTime)).subscribe((term) => this.onChange(term));\r\n }\r\n\r\n setInitialFocus() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.searchInput?.nativeElement?.focus();\r\n this.onFocus();\r\n }\r\n }\r\n\r\n onChange(term: string) {\r\n this.termChange.emit(term);\r\n }\r\n\r\n onFocus() {\r\n this.focus = true;\r\n this.controlFocus.emit();\r\n }\r\n\r\n onBlur() {\r\n this.focus = false;\r\n this.controlBlur.emit();\r\n }\r\n\r\n onSubmit($event: any) {\r\n if (this.searchControl.value) {\r\n this.enterPress.emit($event.target.value);\r\n if (this.deviceService.isMobile() && this.showSearchButtonMobile) {\r\n this.focus = false;\r\n $event.target.blur();\r\n }\r\n }\r\n }\r\n\r\n onSubmitByClick() {\r\n if (this.searchControl.value) {\r\n this.enterPress.emit(this.searchControl.value);\r\n if (this.deviceService.isMobile() && this.showSearchButtonMobile) {\r\n this.focus = false;\r\n }\r\n }\r\n }\r\n\r\n setControlState() {\r\n if (this.enable) {\r\n this.searchControl.enable();\r\n } else {\r\n this.searchControl.disable();\r\n }\r\n }\r\n\r\n clean() {\r\n this.searchControl.setValue('');\r\n this.controlReset.emit();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.controlSubscription?.unsubscribe();\r\n }\r\n}\r\n","<div class=\"rdsite-search-control\" [ngClass]=\"{ disabled: !enable || !searchControl.enabled, focus: focus }\">\r\n <label class=\"label-hidden\">{{ label }}</label>\r\n <input\r\n #searchInput\r\n class=\"rdsite-search-control-input\"\r\n [type]=\"'text'\"\r\n name=\"term\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"label\"\r\n [formControl]=\"searchControl\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.enter)=\"onSubmit($event)\"\r\n enterkeyhint=\"search\"\r\n (search)=\"onSubmit($event)\"\r\n />\r\n\r\n <div class=\"rdsite-search-control-icon\">\r\n <cura-icon\r\n name=\"closeCircle\"\r\n size=\"20\"\r\n color=\"primary-base\"\r\n (click)=\"clean()\"\r\n class=\"close\"\r\n [ngClass]=\"{ active: (searchControl.value || canClean) && !loading }\"\r\n ></cura-icon>\r\n <cura-icon name=\"search\" size=\"20\" color=\"primary-base\" (click)=\"onSubmitByClick()\" class=\"search\" [ngClass]=\"{ active: !loading }\"></cura-icon>\r\n @if (loading) {\r\n <cura-loader-circle color=\"primary\" size=\"small\"></cura-loader-circle>\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-logo]',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './header-logo.component.html',\r\n styleUrl: './header-logo.component.scss',\r\n})\r\nexport class HeaderLogoComponent {\r\n @Input() href: string = '';\r\n @Input() title: string = '';\r\n @Input() alt: string = '';\r\n @Input() src: string = '';\r\n @Output() headerLogoClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n headerLogoClicked(event: Event) {\r\n this.headerLogoClick.emit(event);\r\n }\r\n}\r\n","<a [href]=\"href\" (click)=\"headerLogoClicked($event)\" rdsitelink>\r\n <img loading=\"eager\" fetchpriority=\"high\" [src]=\"src\" [alt]=\"alt\" [title]=\"title\" />\r\n</a>\r\n","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-act]',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './header-action-menu.component.html',\r\n styleUrl: './header-action-menu.component.scss',\r\n})\r\nexport class HeaderActionMenuComponent {\r\n @Input() loginUrl: string = '';\r\n @Input() showSearch: boolean = true;\r\n @Input() homeUrl: string = '';\r\n @Output() headerLoginClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(\r\n public headerService: HeaderService,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n headerLoginClicked(event: Event) {\r\n this.headerLoginClick.emit(event);\r\n }\r\n}\r\n","@if (loginUrl) {\r\n <div class=\"sl-hdr-act-login\">\r\n <a [href]=\"loginUrl\" aria-label=\"Entrar\" (click)=\"headerLoginClicked($event)\" rdsitelink class=\"sl-hdr-act-login-link\">\r\n <svg class=\"icon-mobile\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#profileCircle'\"></use>\r\n </svg>\r\n <svg class=\"icon-desktop\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#profileCircle'\"></use>\r\n </svg>\r\n <span>ENTRAR</span>\r\n </a>\r\n </div>\r\n}\r\n@if (homeUrl) {\r\n <div class=\"sl-hdr-act-home\">\r\n <a [href]=\"homeUrl\" class=\"sl-hdr-act-home-link\" aria-label=\"Página inicial\" rdsitelink> Portal Rede D’Or </a>\r\n </div>\r\n}\r\n\r\n<div class=\"sl-hdr-act-acts\">\r\n @if (showSearch) {\r\n <button type=\"button\" aria-label=\"Buscar\" class=\"sl-hdr-act-acts-button\" (click)=\"headerService.toggleShowSearch()\">\r\n @if (!headerService.showSearch()) {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#search'\"></use>\r\n </svg>\r\n <span>BUSCAR</span>\r\n } @else {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#close'\"></use>\r\n </svg>\r\n <span>FECHAR</span>\r\n }\r\n </button>\r\n }\r\n <button type=\"button\" aria-label=\"Abrir menu lateral\" class=\"sl-hdr-act-acts-button\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#menuHamburguer'\"></use>\r\n </svg>\r\n </button>\r\n</div>\r\n","import { CommonModule, DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport { Component, effect, EventEmitter, Inject, Input, Output, PLATFORM_ID, ViewEncapsulation, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { getHeaderTheme } from './helpers/headerTheme.func';\r\nimport { HeaderTheme } from './models/HeaderTheme.model';\r\nimport { HeaderService } from './services/header.service';\r\nimport { OverlayComponent } from '../overlay/overlay.component';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { SearchComponent } from '../search/search.component';\r\nimport { HeaderLogoComponent } from './components/header-logo/header-logo.component';\r\nimport { HeaderActionMenuComponent } from './components/header-action-menu/header-action-menu.component';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'header[sl-hdr]',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent, SearchComponent, HeaderLogoComponent, HeaderActionMenuComponent],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header.component.html',\r\n styleUrl: './header.component.scss',\r\n})\r\nexport class HeaderComponent implements AfterViewInit {\r\n @Input()\r\n get project() {\r\n return this._project;\r\n }\r\n set project(value: string) {\r\n this._project = value;\r\n this.updateHeaderTheme();\r\n }\r\n private _project: string = 'site';\r\n\r\n @Input()\r\n get theme() {\r\n return this._theme;\r\n }\r\n set theme(value: string) {\r\n this._theme = value;\r\n this.updateHeaderTheme();\r\n }\r\n private _theme: string = 'default';\r\n\r\n @Input() loginUrl: string = '';\r\n @Input() homeUrl: string = '';\r\n @Input() showSearch: boolean = true;\r\n @Input() logo: { src: string; alt: string; title: string; href: string } = { src: '', alt: '', title: '', href: '' };\r\n\r\n scrollTop = 0;\r\n\r\n @Input() searchControl: UntypedFormControl | null = null;\r\n\r\n @Output() searchChange: EventEmitter<string> = new EventEmitter();\r\n\r\n constructor(\r\n private curaService: CuraService,\r\n public headerService: HeaderService,\r\n private elementRef: ElementRef,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) platformId: object,\r\n ) {\r\n effect(() => {\r\n if (isPlatformServer(platformId) || !this.document.defaultView) return;\r\n if (this.headerService.showSearch() || this.headerService.showSideMenu()) {\r\n this.scrollTop = this.document.documentElement.scrollTop ?? 0;\r\n this.document.defaultView.onscroll = () => {\r\n this.document.documentElement.scrollTo({ top: this.scrollTop, behavior: 'auto' });\r\n };\r\n } else {\r\n this.document.defaultView.onscroll = null;\r\n this.scrollTop = 0;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.updateHeaderTheme();\r\n }\r\n\r\n private updateHeaderTheme() {\r\n const headerTheme: HeaderTheme = getHeaderTheme(this.project, this.theme, this.curaService);\r\n Object.entries(headerTheme).forEach(([key, value]) => {\r\n Object.entries(value).forEach(([prop, val]) => {\r\n const cssVar = `--${key}-${prop}`;\r\n this.elementRef.nativeElement.style.setProperty(cssVar, val as string);\r\n });\r\n });\r\n }\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSearch(false);\r\n }\r\n\r\n doSearch(event: any) {\r\n this.searchChange.emit(event);\r\n this.headerService.toggleShowSearch(false);\r\n }\r\n}\r\n","<div class=\"sl-hdr-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div sl-hdr-logo [href]=\"logo.href\" [title]=\"logo.title\" [alt]=\"logo.alt\" [src]=\"logo.src\" (click)=\"overlayClick()\"></div>\r\n\r\n <nav class=\"sl-hdr-aux\" (click)=\"overlayClick()\">\r\n <ng-content select=\"div[sl-hdr-aux]\"></ng-content>\r\n </nav>\r\n\r\n <div sl-hdr-act [loginUrl]=\"loginUrl\" [showSearch]=\"showSearch\" [homeUrl]=\"homeUrl\"></div>\r\n\r\n <nav class=\"sl-hdr-main\">\r\n <ng-content select=\"ul[sl-hdr-main]\"></ng-content>\r\n </nav>\r\n\r\n <ng-content select=\"div[sl-hdr-side]\"></ng-content>\r\n\r\n @if (searchControl) {\r\n <rdsite-search\r\n class=\"sl-hdr-search\"\r\n [searchControl]=\"searchControl\"\r\n [label]=\"'O que você procura?'\"\r\n [debounceTime]=\"1500\"\r\n [setFocus]=\"true\"\r\n (enterPress)=\"doSearch($event)\"\r\n >\r\n </rdsite-search>\r\n }\r\n</div>\r\n\r\n<rdsite-overlay\r\n class=\"search-overlay\"\r\n [ngClass]=\"{ active: headerService.showSearch(), opacity: headerService.showSearchOpacity() }\"\r\n (overlayClick)=\"overlayClick()\"\r\n></rdsite-overlay>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-aux]',\r\n standalone: true,\r\n imports: [CommonModule],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-aux-menu.component.html',\r\n styleUrl: './header-aux-menu.component.scss',\r\n})\r\nexport class HeaderAuxMenuComponent {}\r\n","<ng-content select=\"ul[sl-hdr-aux-container]\"></ng-content>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ul[sl-hdr-aux-container]',\r\n standalone: true,\r\n imports: [CommonModule],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-aux-menu-container.component.html',\r\n styleUrl: './header-aux-menu-container.component.scss',\r\n})\r\nexport class HeaderAuxMenuContainerComponent {\r\n @Input() onlyDesktop: boolean = false;\r\n}\r\n","<ng-content select=\"li[sl-hdr-aux-item]\"></ng-content>\r\n<ng-content select=\"li#geoloc\"></ng-content>\r\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-aux-item-dropdown]',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-aux-menu-item-dropdown.component.html',\r\n styleUrl: './header-aux-menu-item-dropdown.component.scss',\r\n})\r\nexport class HeaderAuxMenuItemDropdownComponent {\r\n @Input() items: MenuItem[] = [];\r\n @Output() headerAuxMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n headerAuxMenuItemDDClicked(event: Event) {\r\n this.headerAuxMenuItemDDClick.emit(event);\r\n }\r\n}\r\n","<ul>\r\n @for (dropdownItem of items; track dropdownItem.title) {\r\n <li class=\"dropdown-item\">\r\n <a [href]=\"dropdownItem.url\" (click)=\"headerAuxMenuItemDDClicked($event)\" rdsitelink>{{ dropdownItem.title }}</a>\r\n </li>\r\n }\r\n</ul>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { HeaderAuxMenuItemDropdownComponent } from '../header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'li[sl-hdr-aux-item]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, HeaderAuxMenuItemDropdownComponent],\r\n encapsulation: ViewEncapsulation.None,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './header-aux-menu-item.component.html',\r\n styleUrl: './header-aux-menu-item.component.scss',\r\n})\r\nexport class HeaderAuxMenuItemComponent {\r\n @Input() item: MenuItem | null = null;\r\n @Input() altStyle: boolean = false;\r\n @Input() onlyDesktop: boolean = false;\r\n @Output() headerAuxMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerAuxMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n isMenuHover: boolean = false;\r\n isDropdownHover: boolean = false;\r\n\r\n constructor(@Inject(LIB_CONFIG) public libConfig: LibConfig) {}\r\n\r\n headerAuxMenuItemClicked(event: Event) {\r\n this.headerAuxMenuItemClick.emit(event);\r\n }\r\n\r\n headerAuxMenuItemDDClicked(event: Event) {\r\n this.headerAuxMenuItemDDClick.emit(event);\r\n }\r\n\r\n btnHoverChange(value: boolean) {\r\n this.isMenuHover = value;\r\n }\r\n\r\n dropdownHoverChange(value: boolean) {\r\n this.isDropdownHover = value;\r\n }\r\n}\r\n","@if (item) {\r\n <a\r\n class=\"sl-hdr-aux-item-link\"\r\n [ngClass]=\"{\r\n hover: isMenuHover || isDropdownHover,\r\n alt: altStyle,\r\n }\"\r\n (mouseenter)=\"btnHoverChange(true)\"\r\n (mouseleave)=\"btnHoverChange(false)\"\r\n [href]=\"item.url\"\r\n (click)=\"headerAuxMenuItemClicked($event)\"\r\n rdsitelink\r\n >\r\n {{ item.title }}\r\n @if (item.children?.length) {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (isMenuHover || isDropdownHover ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n sl-hdr-aux-item-dropdown\r\n class=\"sl-hdr-aux-item-dropdown\"\r\n [ngStyle]=\"{ display: isMenuHover || isDropdownHover ? 'block' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n [items]=\"item.children ?? []\"\r\n (headerAuxMenuItemDDClick)=\"headerAuxMenuItemDDClicked($event)\"\r\n ></div>\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ul[sl-hdr-main]',\r\n standalone: true,\r\n imports: [],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-main-menu.component.html',\r\n styleUrl: './header-main-menu.component.scss',\r\n})\r\nexport class HeaderMainMenuComponent {}\r\n","<ng-content select=\"li[sl-hdr-main-item]\"></ng-content>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, OnDestroy, Output, signal, ViewEncapsulation } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-main-item-dropdown]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-main-menu-item-dropdown.component.html',\r\n styleUrl: './header-main-menu-item-dropdown.component.scss',\r\n})\r\nexport class HeaderMainMenuItemDropdownComponent implements OnDestroy {\r\n @Input() item: MenuItem | null = null;\r\n @Output() headerMainMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuHighlightDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuCtaDDClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n // Também é controlado pelo HeaderMainMenuItemComponent\r\n opened = signal(false);\r\n\r\n selectedLv2Item: MenuItem | null = null;\r\n selectedLv3Item: MenuItem | null = null;\r\n lv2Item$ = new Subject<{ item: MenuItem | null; list: MenuItem[] }>();\r\n lv3Item$ = new Subject<{ item: MenuItem | null; list: MenuItem[] }>();\r\n lv2ItemSubscription: Subscription | null = null;\r\n lv3ItemSubscription: Subscription | null = null;\r\n\r\n isLv2ItemHover: boolean = false;\r\n isLv3ContainerHover: boolean = false;\r\n isLv3ItemHover: boolean = false;\r\n isLv4ContainerHover: boolean = false;\r\n\r\n constructor(@Inject(LIB_CONFIG) public libConfig: LibConfig) {\r\n const timeToDebounce = 50;\r\n\r\n this.lv2ItemSubscription = this.lv2Item$.pipe(debounceTime(timeToDebounce)).subscribe(({ item, list }) => {\r\n if (!this.isLv2ItemHover && !this.isLv3ContainerHover && !this.isLv3ItemHover && !this.isLv4ContainerHover) {\r\n list.forEach((i) => (i.active = false));\r\n this.selectedLv2Item = null;\r\n } else {\r\n list.forEach((i) => (i.active = i.title == item?.title));\r\n this.selectedLv2Item = item;\r\n }\r\n });\r\n\r\n this.lv3ItemSubscription = this.lv3Item$.pipe(debounceTime(timeToDebounce)).subscribe(({ item, list }) => {\r\n if (!this.isLv3ItemHover && !this.isLv4ContainerHover) {\r\n list.forEach((i) => (i.active = false));\r\n this.selectedLv3Item = null;\r\n } else {\r\n list.forEach((i) => (i.active = i.title == item?.title));\r\n this.selectedLv3Item = item;\r\n }\r\n });\r\n }\r\n\r\n lv2ItemHoverChange(value: boolean, lv2Item: MenuItem, lv2List: MenuItem[] = []) {\r\n this.isLv2ItemHover = value;\r\n this.lv2Item$.next({ item: lv2Item, list: lv2List });\r\n }\r\n\r\n lv3ContainerHoverChange(value: boolean, lv2List: MenuItem[] = []) {\r\n this.isLv3ContainerHover = value;\r\n this.lv2Item$.next({ item: this.selectedLv2Item, list: lv2List });\r\n }\r\n\r\n lv3ItemHoverChange(value: boolean, lv3Item: MenuItem, lv3List: MenuItem[] = []) {\r\n this.isLv3ItemHover = value;\r\n this.lv3Item$.next({ item: lv3Item, list: lv3List });\r\n }\r\n\r\n lv4ContainerHoverChange(value: boolean, lv3List: MenuItem[] = []) {\r\n this.isLv4ContainerHover = value;\r\n this.lv3Item$.next({ item: this.selectedLv3Item, list: lv3List });\r\n }\r\n\r\n closeDropdown() {\r\n this.opened.set(false);\r\n }\r\n\r\n headerMainMenuItemDDClicked(event: Event) {\r\n this.headerMainMenuItemDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuHighlightDDClicked(event: Event) {\r\n this.headerMainMenuHighlightDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuCtaDDClicked(event: Event) {\r\n this.headerMainMenuCtaDDClick.emit(event);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.lv2ItemSubscription?.unsubscribe();\r\n this.lv3ItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","@if (item) {\r\n <div class=\"sl-hdr-main-item-dropdown\">\r\n <div class=\"info\">\r\n <p class=\"info-title\">\r\n {{ item.title }}\r\n </p>\r\n\r\n <p class=\"info-description\">\r\n {{ item.description }}\r\n </p>\r\n </div>\r\n\r\n <nav class=\"links-lv2\">\r\n <ul class=\"links-lv2-content\">\r\n @for (itemLv2 of item.children; track itemLv2.title) {\r\n <li>\r\n <a\r\n class=\"link lv2\"\r\n [ngClass]=\"{ active: itemLv2.active }\"\r\n [href]=\"itemLv2.url\"\r\n rdsitelink\r\n (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\"\r\n (mouseenter)=\"lv2ItemHoverChange(true, itemLv2, item.children)\"\r\n (mouseleave)=\"lv2ItemHoverChange(false, itemLv2, item.children)\"\r\n >\r\n {{ itemLv2.title }}\r\n @if (itemLv2?.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#arrowRightCircle'\"></use>\r\n </svg>\r\n }\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n @if (selectedLv2Item?.children?.length) {\r\n <nav class=\"links-lv3\" (mouseenter)=\"lv3ContainerHoverChange(true, item.children)\" (mouseleave)=\"lv3ContainerHoverChange(false, item.children)\">\r\n <ul class=\"links-lv3-content\">\r\n @for (itemLv3 of selectedLv2Item?.children; track itemLv3.title) {\r\n <li>\r\n <a\r\n class=\"link lv3\"\r\n [ngClass]=\"{ active: itemLv3.active }\"\r\n [href]=\"itemLv3.url\"\r\n rdsitelink\r\n (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\"\r\n (mouseenter)=\"lv3ItemHoverChange(true, itemLv3, selectedLv2Item?.children)\"\r\n (mouseleave)=\"lv3ItemHoverChange(false, itemLv3, selectedLv2Item?.children)\"\r\n >\r\n {{ itemLv3.title }}\r\n @if (itemLv3?.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use xlink:href=\"/assets/icons/iconset-default.svg#arrowRightCircle\"></use>\r\n </svg>\r\n }\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n\r\n @if (selectedLv3Item?.children?.length) {\r\n <nav\r\n class=\"links-lv4\"\r\n (mouseenter)=\"lv4ContainerHoverChange(true, selectedLv2Item?.children)\"\r\n (mouseleave)=\"lv4ContainerHoverChange(false, selectedLv2Item?.children)\"\r\n >\r\n <ul class=\"links-lv4-content\">\r\n @for (itemLv4 of selectedLv3Item?.children; track itemLv4.title) {\r\n <li>\r\n <a class=\"link lv4\" [href]=\"itemLv4.url\" rdsitelink (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\">\r\n {{ itemLv4.title }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n }\r\n </nav>\r\n }\r\n </nav>\r\n\r\n <div class=\"ctas-container\">\r\n <div class=\"highlights\">\r\n @for (destaque of item.itens_destaque; track destaque.titulo) {\r\n <div class=\"highlight\">\r\n <a [href]=\"destaque.link\" rdsitelink (click)=\"closeDropdown(); headerMainMenuHighlightDDClicked($event)\">\r\n <img\r\n loading=\"lazy\"\r\n fetchpriority=\"low\"\r\n [src]=\"destaque.imagem?.webp_url || destaque.imagem?.url\"\r\n [alt]=\"destaque.imagem?.alt || destaque.titulo\"\r\n />\r\n <span class=\"highlight-title\">{{ destaque.titulo }}</span>\r\n </a>\r\n <span class=\"highlight-description\">{{ destaque.descricao }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ctas\">\r\n @for (cta of item.ctas; track cta.titulo) {\r\n <a [href]=\"cta.link\" rdsitelink (click)=\"closeDropdown(); headerMainMenuCtaDDClicked($event)\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + cta.icone\"></use>\r\n </svg>\r\n {{ cta.titulo }}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, Inject, Input, OnDestroy, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { HeaderMainMenuItemDropdownComponent } from '../header-main-menu-item-dropdown/header-main-menu-item-dropdown.component';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'li[sl-hdr-main-item]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, HeaderMainMenuItemDropdownComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-main-menu-item.component.html',\r\n styleUrl: './header-main-menu-item.component.scss',\r\n})\r\nexport class HeaderMainMenuItemComponent implements OnDestroy {\r\n @Input() item: MenuItem | null = null;\r\n @Output() headerMainMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuItemDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuHighlightDDClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() headerMainMenuCtaDDClick: EventEmitter<Event> = new EventEmitter();\r\n isMenuHover: boolean = false;\r\n isDropdownHover: boolean = false;\r\n\r\n @ViewChild(HeaderMainMenuItemDropdownComponent)\r\n dropdownComponent: HeaderMainMenuItemDropdownComponent | null = null;\r\n\r\n dropdownOpen$: Subject<boolean> = new Subject();\r\n dropdownSubscription: Subscription | null = null;\r\n\r\n constructor(@Inject(LIB_CONFIG) public libConfig: LibConfig) {\r\n effect(() => {\r\n if (!this.dropdownComponent?.opened()) {\r\n this.isMenuHover = false;\r\n this.isDropdownHover = false;\r\n }\r\n });\r\n\r\n const timeToDebounce = 50;\r\n this.dropdownSubscription = this.dropdownOpen$.pipe(debounceTime(timeToDebounce)).subscribe((open) => this.dropdownComponent?.opened?.set(open));\r\n }\r\n\r\n headerMainMenuItemClicked(event: Event) {\r\n this.headerMainMenuItemClick.emit(event);\r\n }\r\n\r\n headerMainMenuItemDDClicked(event: Event) {\r\n this.headerMainMenuItemDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuHighlightDDClicked(event: Event) {\r\n this.headerMainMenuHighlightDDClick.emit(event);\r\n }\r\n\r\n headerMainMenuCtaDDClicked(event: Event) {\r\n this.headerMainMenuCtaDDClick.emit(event);\r\n }\r\n\r\n btnHoverChange(value: boolean) {\r\n this.isMenuHover = value;\r\n this.dropdownOpen$.next(this.isMenuHover || this.isDropdownHover);\r\n }\r\n\r\n dropdownHoverChange(value: boolean) {\r\n this.isDropdownHover = value;\r\n this.dropdownOpen$.next(this.isMenuHover || this.isDropdownHover);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.dropdownSubscription?.unsubscribe();\r\n }\r\n}\r\n","@if (item) {\r\n <a\r\n class=\"sl-hdr-main-item-link\"\r\n [ngClass]=\"{ hover: !!dropdownComponent?.opened() }\"\r\n (mouseenter)=\"btnHoverChange(true)\"\r\n (mouseleave)=\"btnHoverChange(false)\"\r\n (click)=\"headerMainMenuItemClicked($event)\"\r\n [href]=\"item.url\"\r\n rdsitelink\r\n >\r\n {{ item.title }}\r\n @if (item.children?.length) {\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (!!dropdownComponent?.opened() ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n sl-hdr-main-item-dropdown\r\n class=\"sl-hdr-main-item-dropdown-container\"\r\n [ngStyle]=\"{ display: !!dropdownComponent?.opened() ? 'grid' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n [item]=\"item\"\r\n (headerMainMenuItemDDClick)=\"headerMainMenuItemDDClicked($event)\"\r\n (headerMainMenuHighlightDDClick)=\"headerMainMenuHighlightDDClicked($event)\"\r\n (headerMainMenuCtaDDClick)=\"headerMainMenuCtaDDClicked($event)\"\r\n ></div>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayComponent } from '../../../overlay/overlay.component';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'div[sl-hdr-side]',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-side-menu.component.html',\r\n styleUrl: './header-side-menu.component.scss',\r\n})\r\nexport class HeaderSideMenuComponent {\r\n constructor(\r\n public headerService: HeaderService,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSideMenu(false);\r\n }\r\n}\r\n","<div class=\"sl-hdr-side\" [ngClass]=\"{ active: headerService.showSideMenu() }\">\r\n <div class=\"side-menu\">\r\n <div class=\"side-menu-close\">\r\n <button type=\"button\" aria-label=\"Fechar menu lateral\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#close'\"></use>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"#side-menu-geoloc\"></ng-content>\r\n\r\n <nav>\r\n <ul class=\"side-menu-content\">\r\n <ng-content select=\"li[sl-hdr-side-item]\"></ng-content>\r\n </ul>\r\n </nav>\r\n </div>\r\n</div>\r\n<rdsite-overlay class=\"side-menu-overlay\" [ngClass]=\"{ active: headerService.showSideMenu() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Inject, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { LIB_CONFIG, LibConfig } from '../../../../tokens/LibConfig';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'li[sl-hdr-side-item]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './header-side-menu-item.component.html',\r\n styleUrl: './header-side-menu-item.component.scss',\r\n})\r\nexport class HeaderSideMenuItemComponent {\r\n @Input() item: MenuItem | null = null;\r\n @Input() altStyle: boolean = false;\r\n @Input() fontSize: number = 14;\r\n @Output() headerSideMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @HostBinding() get style() {\r\n return {\r\n '--side-menu-item-font-size': `${this.fontSize}px`,\r\n };\r\n }\r\n\r\n constructor(\r\n public headerService: HeaderService,\r\n @Inject(LIB_CONFIG) public libConfig: LibConfig,\r\n ) {}\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSideMenu(false);\r\n }\r\n\r\n toggleList(event: Event, sideMenuItem: MenuItem, canCloseSideMenu: boolean) {\r\n event.stopPropagation();\r\n sideMenuItem.active = !sideMenuItem.active;\r\n if (canCloseSideMenu) return this.headerService.toggleShowSideMenu(false);\r\n }\r\n\r\n headerSideMenuItemClicked(event: Event) {\r\n this.headerSideMenuItemClick.emit(event);\r\n }\r\n}\r\n","@if (item) {\r\n <div class=\"sl-hdr-side-item\" [ngClass]=\"{ active: item.active, alt: altStyle }\" (click)=\"toggleList($event, item, false)\">\r\n <a [href]=\"item.url\" rdsitelink (click)=\"toggleList($event, item, !item.children?.length || !!item.url); headerSideMenuItemClicked($event)\">\r\n <span>{{ item.title }}</span>\r\n @if (!item.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#right'\"></use>\r\n </svg>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\">\r\n <use [attr.xlink:href]=\"libConfig.siteSufix + '/assets/icons/iconset-default.svg#' + (item.active ? 'up' : 'down')\"></use>\r\n </svg>\r\n }\r\n </div>\r\n\r\n @if (item.children?.length) {\r\n <ul class=\"sl-hdr-side-item-list\" [ngClass]=\"{ active: item.active }\">\r\n @for (child of item.children; track child.title) {\r\n <li sl-hdr-side-item [item]=\"child\" [fontSize]=\"fontSize\" [altStyle]=\"altStyle\" (headerSideMenuItemClick)=\"headerSideMenuItemClicked($event)\"></li>\r\n }\r\n </ul>\r\n }\r\n}\r\n","import { Component, HostBinding } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-load-screen',\r\n standalone: true,\r\n templateUrl: './load-screen.component.html',\r\n styleUrls: ['./load-screen.component.scss'],\r\n})\r\nexport class LoadScreenComponent {\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-pale': this.curaService.getColor('neutral-pale'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n '--color-one-base': this.curaService.getColor('primary-base'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n}\r\n","<svg\r\n id=\"eHMRpL82XFk1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"85 98 130 104\"\r\n shape-rendering=\"geometricPrecision\"\r\n text-rendering=\"geometricPrecision\"\r\n project-id=\"d6bcc811f04c4bd68a9b60e9a293b656\"\r\n export-id=\"07f9d4f6c8ae45db93f339ab9b65e3a6\"\r\n cached=\"false\"\r\n>\r\n <style>\r\n #eHMRpL82XFk2 {\r\n animation-name: eHMRpL82XFk2_c_o, eHMRpL82XFk2_s_do;\r\n animation-duration: 3000ms;\r\n animation-fill-mode: forwards;\r\n animation-timing-function: linear;\r\n animation-direction: normal;\r\n animation-iteration-count: infinite;\r\n }\r\n\r\n @keyframes eHMRpL82XFk2_c_o {\r\n 0% {\r\n opacity: 0;\r\n animation-timing-function: cubic-bezier(0, 0, 0.58, 1);\r\n }\r\n\r\n 33.333333% {\r\n opacity: 1;\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n @keyframes eHMRpL82XFk2_s_do {\r\n 0% {\r\n stroke-dashoffset: 1070.79;\r\n animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);\r\n }\r\n\r\n 33.333333% {\r\n stroke-dashoffset: 2141.58;\r\n }\r\n\r\n 100% {\r\n stroke-dashoffset: 2141.58;\r\n }\r\n }\r\n\r\n #eHMRpL82XFk3 {\r\n animation: eHMRpL82XFk3_c_o 3000ms linear infinite normal forwards;\r\n }\r\n\r\n @keyframes eHMRpL82XFk3_c_o {\r\n 0% {\r\n opacity: 0;\r\n }\r\n\r\n 33.333333% {\r\n opacity: 0;\r\n animation-timing-function: cubic-bezier(0, 0, 0.58, 1);\r\n }\r\n\r\n 73.333333% {\r\n opacity: 1;\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n #eHMRpL82XFk10_tr {\r\n animation: eHMRpL82XFk10_tr__tr 3000ms linear infinite normal forwards;\r\n }\r\n\r\n @keyframes eHMRpL82XFk10_tr__tr {\r\n 0% {\r\n transform: translate(135.33781px, 207.03926px) rotate(720deg);\r\n animation-timing-function: cubic-bezier(0.415, 0.08, 0.115, 0.955);\r\n }\r\n\r\n 100% {\r\n transform: translate(135.33781px, 207.03926px) rotate(439.480519deg);\r\n }\r\n }\r\n\r\n #eHMRpL82XFk11_tr {\r\n animation: eHMRpL82XFk11_tr__tr 3000ms linear infinite normal forwards;\r\n }\r\n\r\n @keyframes eHMRpL82XFk11_tr__tr {\r\n 0% {\r\n transform: translate(11.12px, 29.9px) rotate(-720deg);\r\n animation-timing-function: cubic-bezier(0.415, 0.08, 0.115, 0.955);\r\n }\r\n\r\n 100% {\r\n transform: translate(11.12px, 29.9px) rotate(-439.480519deg);\r\n }\r\n }\r\n </style>\r\n <path\r\n id=\"eHMRpL82XFk2\"\r\n d=\"M45.8896,122.909c-7.3496-3.448-13.8476-5.167-19.4941-5.157-3.078,0-5.5353.425-7.4437,1.301-1.9084.875-2.8677,1.994-2.8677,3.35c0,1.357,1.026,2.384,3.037,3.24c2.011.855,4.617,1.265,7.6951,1.265c6.115,0,12.4711-1.333,19.0683-3.999h.0051Zm5.4276.071c4.7003,2.399,9.9085,3.669,15.2003,3.705c7.7772,0,14.9267-2.785,21.4487-8.356c9.1417-7.761,15.7748-18.3767,19.8998-31.8469c2.305-7.5551,3.459-14.5602,3.462-21.0152-.02-4.2002-.6-8.3796-1.723-12.431-3.175,3.6665-6.13,7.5131-8.85,11.5199-2.6365,3.9041-6.4207,10.0285-11.3524,18.3731-4.9761,8.4358-9.1417,14.7458-12.4968,18.9301-3.677,4.514-7.8415,8.619-12.4198,12.243-2.6984,2.143-7.088,5.102-13.1688,8.878ZM111.103,51.5833c1.315,4.414,1.994,8.9891,2.016,13.59-.065,7.4184-1.21,14.7891-3.401,21.8858-4.289,14.4049-11.3396,25.6719-21.1516,33.8009-6.1174,5.274-13.9813,8.155-22.1053,8.098-2.6512.025-5.2956-.269-7.8746-.876-2.3496-.577-5.7063-1.786-10.0703-3.629-7.8284,3.148-15.1011,4.724-21.818,4.728-2.8272.064-5.6463-.325-8.3466-1.154-1.3689-.434-2.5854-1.241-3.5089-2.329-.8731-.909-1.3833-2.099-1.4365-3.35c0-2.143,1.1971-3.83,3.5911-5.062c2.394-1.231,5.614-1.866,9.6598-1.903c6.3613,0,13.6545,2.111,21.8797,6.332c5.6424-3.842,10.7329-8.419,15.1336-13.605c2.9446-3.447,5.3455-6.459,7.182-9.1109c1.8366-2.6522,6.5921-9.7535,14.2204-21.3847c5.9509-8.9554,13.7588-18.066,23.4242-27.3319-2.203-5.0614-4.712-8.9419-7.526-11.6414-5.7971-5.6789-13.6033-8.515-23.4188-8.5083-12.9071,0-23.8376,4.3124-32.7912,12.9371-4.3018,4.0733-7.8304,8.8729-10.4191,14.1721-2.2292,4.4289-3.413,9.2983-3.4628,14.243c0,4.7645,1.51,8.6163,4.5299,11.5553c2.8523,2.8142,6.7853,4.2229,11.7991,4.2263c6.9152,0,13.5535-2.6421,19.9148-7.9262c8.6492-7.2244,14.6342-17.425,17.9551-30.6016l1.3594.4302c-1.3133,8.4864-4.1108,15.974-8.3927,22.4628-4.3759,6.5799-9.7779,11.5047-16.2212,14.6782-4.4278,2.241-9.3313,3.4137-14.3076,3.4215-6.4981,0-11.4828-2.1578-14.9541-6.4736-3.078-3.8163-4.5914-8.5083-4.5914-14.0354c0-7.0861,2.0845-14.0169,6.2535-20.7925c4.1094-6.7327,9.9778-12.2517,16.9907-15.979c7.0658-3.7556,14.9318-5.6351,23.5982-5.6385c11.5186,0,20.6176,3.3439,27.2972,10.0318c2.777,2.7737,5.415,6.725,7.915,11.854c5.572-4.8523,10.855-8.6551,15.852-11.4086l.513,1.807c-4.627,2.8648-9.714,7.0337-15.262,12.5068l-.025-.0202Zm20.145-22.4729h10.553v10.7455c0,4.3326-.684,7.2008-2.052,8.6045-1.402,1.4476-3.935,2.281-7.598,2.5003-.581-.1338-1.178-.19-1.775-.167v-4.9147c1.693,0,2.947-.3745,3.761-1.1236.81-.7542,1.19-2.2068,1.138-4.3731h-4.052l.025-11.2719Z\"\r\n transform=\"translate(72.3964 71.999878)\"\r\n opacity=\"0\"\r\n fill=\"none\"\r\n stroke=\"#003da5\"\r\n stroke-linecap=\"square\"\r\n stroke-miterlimit=\"1\"\r\n stroke-dashoffset=\"1070.79\"\r\n stroke-dasharray=\"1070.79\"\r\n />\r\n <path\r\n id=\"eHMRpL82XFk3\"\r\n d=\"M45.8896,122.909c-7.3496-3.448-13.8476-5.167-19.4941-5.157-3.078,0-5.5353.425-7.4437,1.301-1.9084.875-2.8677,1.994-2.8677,3.35c0,1.357,1.026,2.384,3.037,3.24c2.011.855,4.617,1.265,7.6951,1.265c6.115,0,12.4711-1.333,19.0683-3.999h.0051Zm5.4276.071c4.7003,2.399,9.9085,3.669,15.2003,3.705c7.7772,0,14.9267-2.785,21.4487-8.356c9.1417-7.761,15.7748-18.3767,19.8998-31.8469c2.305-7.5551,3.459-14.5602,3.462-21.0152-.02-4.2002-.6-8.3796-1.723-12.431-3.175,3.6665-6.13,7.5131-8.85,11.5199-2.6365,3.9041-6.4207,10.0285-11.3524,18.3731-4.9761,8.4358-9.1417,14.7458-12.4968,18.9301-3.677,4.514-7.8415,8.619-12.4198,12.243-2.6984,2.143-7.088,5.102-13.1688,8.878ZM111.103,51.5833c1.315,4.414,1.994,8.9891,2.016,13.59-.065,7.4184-1.21,14.7891-3.401,21.8858-4.289,14.4049-11.3396,25.6719-21.1516,33.8009-6.1174,5.274-13.9813,8.155-22.1053,8.098-2.6512.025-5.2956-.269-7.8746-.876-2.3496-.577-5.7063-1.786-10.0703-3.629-7.8284,3.148-15.1011,4.724-21.818,4.728-2.8272.064-5.6463-.325-8.3466-1.154-1.3689-.434-2.5854-1.241-3.5089-2.329-.8731-.909-1.3833-2.099-1.4365-3.35c0-2.143,1.1971-3.83,3.5911-5.062c2.394-1.231,5.614-1.866,9.6598-1.903c6.3613,0,13.6545,2.111,21.8797,6.332c5.6424-3.842,10.7329-8.419,15.1336-13.605c2.9446-3.447,5.3455-6.459,7.182-9.1109c1.8366-2.6522,6.5921-9.7535,14.2204-21.3847c5.9509-8.9554,13.7588-18.066,23.4242-27.3319-2.203-5.0614-4.712-8.9419-7.526-11.6414-5.7971-5.6789-13.6033-8.515-23.4188-8.5083-12.9071,0-23.8376,4.3124-32.7912,12.9371-4.3018,4.0733-7.8304,8.8729-10.4191,14.1721-2.2292,4.4289-3.413,9.2983-3.4628,14.243c0,4.7645,1.51,8.6163,4.5299,11.5553c2.8523,2.8142,6.7853,4.2229,11.7991,4.2263c6.9152,0,13.5535-2.6421,19.9148-7.9262c8.6492-7.2244,14.6342-17.425,17.9551-30.6016l1.3594.4302c-1.3133,8.4864-4.1108,15.974-8.3927,22.4628-4.3759,6.5799-9.7779,11.5047-16.2212,14.6782-4.4278,2.241-9.3313,3.4137-14.3076,3.4215-6.4981,0-11.4828-2.1578-14.9541-6.4736-3.078-3.8163-4.5914-8.5083-4.5914-14.0354c0-7.0861,2.0845-14.0169,6.2535-20.7925c4.1094-6.7327,9.9778-12.2517,16.9907-15.979c7.0658-3.7556,14.9318-5.6351,23.5982-5.6385c11.5186,0,20.6176,3.3439,27.2972,10.0318c2.777,2.7737,5.415,6.725,7.915,11.854c5.572-4.8523,10.855-8.6551,15.852-11.4086l.513,1.807c-4.627,2.8648-9.714,7.0337-15.262,12.5068l-.025-.0202Zm20.145-22.4729h10.553v10.7455c0,4.3326-.684,7.2008-2.052,8.6045-1.402,1.4476-3.935,2.281-7.598,2.5003-.581-.1338-1.178-.19-1.775-.167v-4.9147c1.693,0,2.947-.3745,3.761-1.1236.81-.7542,1.19-2.2068,1.138-4.3731h-4.052l.025-11.2719Z\"\r\n transform=\"translate(72.3964 71.999878)\"\r\n opacity=\"0\"\r\n fill=\"#003da5\"\r\n />\r\n</svg>\r\n\r\n<h4>Aguarde mais um pouco</h4>\r\n\r\n<span>Estamos carregando as informações.</span>\r\n","import { Component, HostBinding } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './side-ctas.component.html',\r\n styleUrl: './side-ctas.component.scss',\r\n})\r\nexport class SideCtasComponent {\r\n @HostBinding('style') style = {\r\n '--color-right': this.curaService.getColor('primary-darker'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n}\r\n","<div\r\n class=\"rdsite-side-ctas-right\"\r\n [ngStyle]=\"{\r\n display: rightTop?.children?.length || rightMiddle?.children?.length || rightBottom?.children?.length ? 'flex' : 'none',\r\n }\"\r\n>\r\n <div #rightTop class=\"rdsite-side-ctas-right-top\">\r\n <ng-content select=\"rdsite-side-ctas-right-top\"></ng-content>\r\n </div>\r\n <div #rightMiddle class=\"rdsite-side-ctas-right-middle\">\r\n <ng-content select=\"rdsite-side-ctas-right-middle\"></ng-content>\r\n </div>\r\n <div #rightBottom class=\"rdsite-side-ctas-right-bottom\">\r\n <ng-content select=\"rdsite-side-ctas-right-bottom\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<div\r\n class=\"rdsite-side-ctas-bottom\"\r\n [ngStyle]=\"{\r\n display: bottom?.children?.length ? 'flex' : 'none',\r\n paddingRight: rightTop?.children?.length || rightMiddle?.children?.length || rightBottom?.children?.length ? '88px' : '0px',\r\n }\"\r\n>\r\n <div #bottom class=\"rdsite-side-ctas-bottom-container\">\r\n <ng-content select=\"rdsite-side-ctas-bottom\"></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { SideCta } from '../../models/SideCta.model';\r\nimport { CuraService } from '../../../../services';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-bottom',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './side-ctas-bottom.component.html',\r\n styleUrl: './side-ctas-bottom.component.scss',\r\n})\r\nexport class SideCtasBottomComponent {\r\n private _ctas: SideCta[] = [];\r\n @Input()\r\n set ctas(value: SideCta[]) {\r\n this._ctas = value;\r\n }\r\n get ctas() {\r\n return this._ctas;\r\n }\r\n @Output() sideCtaBottomItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @HostBinding('style') style = {\r\n '--font-family': this.curaService.getFontFamily(''),\r\n '--font-color': this.curaService.getColor('neutral-black'),\r\n '--bg-color': this.curaService.getColor('primary-dark'),\r\n '--bg-cta-color': this.curaService.getColor('accent-base'),\r\n '--bg-cta-hover-color': this.curaService.getColor('accent-dark'),\r\n '--bg-cta-active-color': this.curaService.getColor('accent-darker'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n sideCtaBottomItemClicked(event: Event) {\r\n this.sideCtaBottomItemClick.emit(event);\r\n }\r\n}\r\n","@if (ctas.length) {\r\n @for (cta of ctas; track cta.text) {\r\n <a [href]=\"cta.url\" rdsitelink (click)=\"sideCtaBottomItemClicked($event)\">\r\n <cura-icon [attr.name]=\"cta.icon\" size=\"20\" color=\"neutral-black\"></cura-icon>\r\n <span>{{ cta.text }}</span>\r\n </a>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-whatsapp',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './whatsapp.component.html',\r\n styleUrl: './whatsapp.component.scss',\r\n})\r\nexport class WhatsappComponent {\r\n @Input() link: string = '';\r\n @Input() imgUrl: string = '';\r\n @Input() text: string = 'Agende por Whatsapp';\r\n @Input() bgColor: string = '#1DCD52';\r\n @Input() bgHover: string = '#016720';\r\n @Input() borderTop: boolean = false;\r\n\r\n @Output() whatsappClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n active: boolean = false;\r\n\r\n @HostBinding('style') style = {\r\n '--font-family': this.curaService.getFontFamily(''),\r\n '--border-top-color': this.curaService.getColor('primary-light'),\r\n '--bg-color': this.curaService.getColor('primary-darker'),\r\n '--bg-button': this.bgColor,\r\n '--bg-button-hover': this.bgHover,\r\n '--color-button': this.curaService.getColor('neutral-black'),\r\n '--color-button-hover': this.curaService.getColor('neutral-white'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n whatsappClicked(event: Event) {\r\n this.whatsappClick.emit(event);\r\n }\r\n}\r\n","@if (link) {\r\n <a\r\n class=\"rdsite-whatsapp\"\r\n [ngClass]=\"{ 'border-top': borderTop }\"\r\n [href]=\"link\"\r\n rdsitelink\r\n (mouseenter)=\"active = true\"\r\n (mouseleave)=\"active = false\"\r\n (click)=\"whatsappClicked($event)\"\r\n >\r\n @if (imgUrl) {\r\n <div class=\"image\" [ngStyle]=\"{ 'background-image': imgUrl }\"></div>\r\n }\r\n <div class=\"icon\" [ngClass]=\"{ active: active }\">\r\n <cura-icon name=\"whatsapp\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n </div>\r\n\r\n <div class=\"rdsite-whatsapp-animation\" [ngClass]=\"{ active: active }\">\r\n <cura-icon name=\"whatsapp\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n <span>{{ text }}</span>\r\n </div>\r\n </a>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { WhatsappComponent } from '../../../whatsapp/whatsapp.component';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-right-bottom',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, WhatsappComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './side-ctas-right-bottom.component.html',\r\n styleUrl: './side-ctas-right-bottom.component.scss',\r\n})\r\nexport class SideCtasRightBottomComponent {\r\n @Input() link: string = '';\r\n @Input() imgUrl: string = '';\r\n @Input() text: string = '';\r\n @Input() bgColor: string = '#1DCD52';\r\n @Input() bgHover: string = '#016720';\r\n @Input() borderTop: boolean = false;\r\n\r\n @Output() sideCtaRightBottomItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n whatsappClicked(event: Event) {\r\n this.sideCtaRightBottomItemClick.emit(event);\r\n }\r\n}\r\n","@if (link && imgUrl) {\r\n <rdsite-whatsapp\r\n [link]=\"link\"\r\n [imgUrl]=\"imgUrl\"\r\n [text]=\"text\"\r\n [bgColor]=\"bgColor\"\r\n [bgHover]=\"bgHover\"\r\n [borderTop]=\"borderTop\"\r\n (whatsappClick)=\"whatsappClicked($event)\"\r\n ></rdsite-whatsapp>\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { SideCta } from '../../models/SideCta.model';\r\nimport { CuraService } from '../../../../services';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-right-middle',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './side-ctas-right-middle.component.html',\r\n styleUrl: './side-ctas-right-middle.component.scss',\r\n})\r\nexport class SideCtasRightMiddleComponent {\r\n private _ctas: SideCta[] = [];\r\n @Input()\r\n set ctas(value: SideCta[]) {\r\n this._ctas = value;\r\n }\r\n get ctas() {\r\n return this._ctas;\r\n }\r\n @Output() sideCtaRightMiddleItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n @HostBinding('style') style = {\r\n '--font-family': this.curaService.getFontFamily(''),\r\n '--icon-bg-color': this.curaService.getColor('primary-base'),\r\n '--font-color': this.curaService.getColor('primary-lighter'),\r\n '--font-hover': this.curaService.getColor('neutral-white'),\r\n '--font-active': this.curaService.getColor('primary-light'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n sideCtaRightMiddleItemClicked(event: Event) {\r\n this.sideCtaRightMiddleItemClick.emit(event);\r\n }\r\n}\r\n","@if (ctas.length) {\r\n @for (cta of ctas; track cta.text) {\r\n <a class=\"right-middle-cta\" [href]=\"cta.url\" rdsitelink (click)=\"sideCtaRightMiddleItemClicked($event)\">\r\n <div class=\"right-middle-cta-icon\">\r\n <cura-icon [attr.name]=\"cta.icon\" size=\"24\" color=\"neutral-purewhite\"></cura-icon>\r\n </div>\r\n <span>{{ cta.text }}</span>\r\n </a>\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-side-ctas-right-top',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './side-ctas-right-top.component.html',\r\n styleUrl: './side-ctas-right-top.component.scss',\r\n})\r\nexport class SideCtasRightTopComponent {}\r\n","<ng-content></ng-content>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AlgoliaConfig, AlgoliaSearchParams, RdslAlgoliaMultipleIndex } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaSearchApiService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-algolia-dropdown',\r\n standalone: true,\r\n imports: [],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './algolia-dropdown.component.html',\r\n styleUrl: './algolia-dropdown.component.scss',\r\n})\r\nexport class AlgoliaDropdownComponent {\r\n compAlgoliaConfig: AlgoliaConfig = { id: '', key: '' };\r\n get algoliaConfig() {\r\n return this.compAlgoliaConfig;\r\n }\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('algoliaConfig')\r\n set algoliaConfig(config: AlgoliaConfig) {\r\n this.ready = false;\r\n if (this.setupAlgolia(config)) {\r\n this.compAlgoliaConfig = config;\r\n this.ready = true;\r\n }\r\n }\r\n @Input() name!: string;\r\n @Input() value!: string;\r\n @Input() size!: string;\r\n @Input() label!: string;\r\n @Input() placeholder!: string;\r\n @Input() status!: string;\r\n @Input() icon!: string;\r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() maxheight!: string;\r\n @Input() searchdelay!: string;\r\n @Input() searchminchars: number = 2;\r\n @Input() helperText!: string;\r\n @Input() cssMaxHeight!: string;\r\n @Input() searchParams: AlgoliaSearchParams = {};\r\n\r\n public searchTerm: string = '';\r\n\r\n // Algolia\r\n isMultiple: boolean = false;\r\n\r\n // State\r\n ready: boolean = false;\r\n\r\n @Output() algoliaResults: EventEmitter<any> = new EventEmitter();\r\n @Output() resetResults: EventEmitter<any> = new EventEmitter();\r\n @Output() optionSelected: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private readonly algoliaSearchApiService: AlgoliaSearchApiService) {}\r\n\r\n setupAlgolia(config: AlgoliaConfig): boolean {\r\n if (config?.id && config?.key && (config?.index || config?.multipleIndex)) {\r\n if (config.multipleIndex) {\r\n this.isMultiple = true;\r\n } else {\r\n this.isMultiple = false;\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n termChange(event: any) {\r\n if (event.target.value) {\r\n this.searchTerm = event?.target?.value;\r\n this.search();\r\n } else {\r\n this.resetResults.emit(event);\r\n }\r\n }\r\n\r\n search(): void {\r\n if (this.searchTerm?.length >= this.searchminchars && this.ready) {\r\n if (!this.isMultiple) {\r\n this.algoliaSearchApiService.search(this.searchTerm, this.algoliaConfig.index!, this.searchParams).subscribe({\r\n next: (results) => {\r\n this.algoliaResults.emit(results);\r\n },\r\n });\r\n } else {\r\n const queries: RdslAlgoliaMultipleIndex[] = this.compAlgoliaConfig?.multipleIndex!.map((i: RdslAlgoliaMultipleIndex) => {\r\n return { ...i, query: this.searchTerm };\r\n });\r\n this.algoliaSearchApiService.searchMultipleIndexes(queries).subscribe({\r\n next: (results) => {\r\n this.algoliaResults.emit(results.results);\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n optionSelect(event: any) {\r\n this.optionSelected.emit(event.target.value);\r\n }\r\n}\r\n","<cura-dropdown-search\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [status]=\"status\"\r\n [icon]=\"icon\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [maxheight]=\"maxheight\"\r\n [searchdelay]=\"searchdelay\"\r\n [searchminchars]=\"searchminchars\"\r\n [helperText]=\"helperText\"\r\n [cssMaxHeight]=\"cssMaxHeight\"\r\n (termchange)=\"termChange($event)\"\r\n (optionselect)=\"optionSelect($event)\"\r\n>\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n","const xSmallBreakpoint = 361;\r\nconst smallBreakpoint = 769;\r\nconst mediumBreakPoint = 1024;\r\nconst largeBreakpoint = 1366;\r\n\r\nexport const MediaQueries = {\r\n xSmallBreakpoint,\r\n smallBreakpoint,\r\n mediumBreakPoint,\r\n largeBreakpoint,\r\n};\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, HostBinding, HostListener, Inject, Input, OnInit, PLATFORM_ID, ViewChild } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig, NguCarouselDefDirective, NguItemComponent } from '@ngu/carousel';\r\nimport { CuraService, NguCarouselService } from '../../services';\r\nimport { MediaQueries } from '../../helpers/mediaQueries';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { CtaWrapper } from '../../models/cta-wrapper.model';\r\n\r\n@Component({\r\n selector: 'rdsite-cta-wrapper',\r\n standalone: true,\r\n imports: [NguCarousel, NguItemComponent, NguCarouselDefDirective, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './cta-wrapper.component.html',\r\n styleUrl: './cta-wrapper.component.scss',\r\n})\r\nexport class CtaWrapperComponent implements OnInit {\r\n @Input() content: CtaWrapper | null = null;\r\n @Input() showTitleAndText = true;\r\n @Input() colors: { border: string; icon: string } = { border: 'primary-base', icon: 'primary-dark' };\r\n\r\n carouselCtasConfig!: NguCarouselConfig;\r\n\r\n bannerControl = false;\r\n seeMoreControl = false;\r\n\r\n @ViewChild('nguCarouselCtas') nguCarouselCtas!: NguCarousel<any, any>;\r\n\r\n @HostListener('window:resize')\r\n onWindowResize() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.bannerControl = window.innerWidth > MediaQueries.smallBreakpoint;\r\n }\r\n }\r\n\r\n @HostBinding('style')\r\n get style(): { [key: string]: string } {\r\n return {\r\n '--font-family': this.curaService.getFontFamily('') ?? '',\r\n '--border-color': this.curaService.getColor(this.colors.border) ?? '',\r\n '--icon-color': this.curaService.getColor(this.colors.icon) ?? '',\r\n };\r\n }\r\n\r\n @HostBinding('class') class = ['rdsite-container'];\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private nguService: NguCarouselService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.bannerControl = window.innerWidth > MediaQueries.smallBreakpoint;\r\n }\r\n\r\n this.carouselCtasConfig = this.nguService.customCarouselConfig({\r\n grid: { xs: 2.1, sm: 2.1, md: 2.1, lg: 2.1, all: 0 },\r\n loop: true,\r\n interval: {\r\n timing: 600000,\r\n initialDelay: 600000,\r\n },\r\n });\r\n }\r\n\r\n moreOptions(): void {\r\n this.seeMoreControl = !this.seeMoreControl;\r\n }\r\n}\r\n","@if (content?.ctas?.length) {\r\n @if (content?.title && showTitleAndText) {\r\n <h3 class=\"ctas-title\">{{ content?.title }}</h3>\r\n }\r\n\r\n @if (content?.text && showTitleAndText) {\r\n <p class=\"ctas-text\" [innerHTML]=\"content?.text\"></p>\r\n }\r\n\r\n @if (!seeMoreControl) {\r\n <nav class=\"ctas-wrapper\" data-testid=\"_rdsite-ctas-wrapper\">\r\n @if (!bannerControl) {\r\n <ngu-carousel #nguCarouselCtas [inputs]=\"carouselCtasConfig\" [dataSource]=\"content?.ctas\">\r\n <ngu-item *nguCarouselDef=\"let cta; let i = index\">\r\n <a rdsitelink class=\"cta\" [href]=\"cta?.link\">\r\n @if (cta?.icon) {\r\n <cura-icon [attr.name]=\"cta?.icon\" size=\"24\" [attr.color]=\"colors.icon\"></cura-icon>\r\n }\r\n <p>{{ cta?.label }}</p>\r\n </a>\r\n </ngu-item>\r\n </ngu-carousel>\r\n\r\n <div class=\"show-more\" data-testid=\"_rdsite-ctas-wrapper-show-more\">\r\n <button type=\"button\" (click)=\"moreOptions()\">Mais opções</button>\r\n </div>\r\n } @else {\r\n @for (cta of content?.ctas; track $index) {\r\n @if (cta?.label) {\r\n <a rdsitelink class=\"cta\" [href]=\"cta?.link\">\r\n @if (cta?.icon) {\r\n <cura-icon [attr.name]=\"cta?.icon\" size=\"24\" [attr.color]=\"colors.icon\"></cura-icon>\r\n }\r\n <p>{{ cta?.label }}</p>\r\n </a>\r\n }\r\n }\r\n }\r\n </nav>\r\n } @else {\r\n <nav class=\"more-options\" data-testid=\"_rdsite-ctas-wrapper-more-options\">\r\n @for (cta of content?.ctas; track $index) {\r\n @if (cta?.label) {\r\n <a rdsitelink class=\"cta\" [href]=\"cta?.link\">\r\n @if (cta?.icon) {\r\n <cura-icon [attr.name]=\"cta?.icon\" size=\"24\" [attr.color]=\"colors.icon\"></cura-icon>\r\n }\r\n <p>{{ cta?.label }}</p>\r\n </a>\r\n }\r\n }\r\n </nav>\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n ElementRef,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n PLATFORM_ID,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { CuraService } from '../../services/cura/cura.service';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { BreadcrumbsJsonItem } from '../../models/breadcrumbs/breadcrumbs-json-item.model';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport * as he from 'he';\r\nimport { MediaQueries } from '../../helpers/mediaQueries';\r\n\r\n@Component({\r\n selector: 'rdsite-breadcrumbs',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './breadcrumbs.component.html',\r\n styleUrl: './breadcrumbs.component.scss',\r\n})\r\nexport class BreadcrumbsComponent implements AfterViewInit, OnDestroy {\r\n @Input() labelIconColor: string = 'neutral-purewhite';\r\n @Input() fontWeight?: string;\r\n isDesktop: boolean | null = null;\r\n\r\n private _breadcrumbs: BreadcrumbsItems[] = [];\r\n @Input()\r\n set breadcrumbs(value: BreadcrumbsItems[]) {\r\n this._breadcrumbs = value || [];\r\n if (value?.length) {\r\n this.setBreadcrumbsJson(value);\r\n }\r\n }\r\n get breadcrumbs() {\r\n return this._breadcrumbs;\r\n }\r\n\r\n private breadcrumbsJsonTag!: HTMLScriptElement;\r\n private readonly breadcrumbsJsonTagId = 'breadcrumbsJSON';\r\n private resizeObserver!: ResizeObserver;\r\n\r\n @ViewChild('breadCrumbsElement') breadCrumbsElement!: ElementRef<HTMLDivElement>;\r\n\r\n constructor(\r\n private curaService: CuraService,\r\n private cdr: ChangeDetectorRef,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.getColors(this.labelIconColor);\r\n this.initViewportDetection();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n private initViewportDetection(): void {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n this.isDesktop = true;\r\n return;\r\n }\r\n\r\n this.checkViewportSize();\r\n this.setupResizeObserver();\r\n }\r\n\r\n private setupResizeObserver(): void {\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.checkViewportSize();\r\n });\r\n\r\n this.resizeObserver.observe(document.body);\r\n }\r\n\r\n private checkViewportSize(): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n\r\n const newValue = window.innerWidth > MediaQueries.smallBreakpoint;\r\n if (this.isDesktop !== newValue) {\r\n this.isDesktop = newValue;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n getColors(color: string): void {\r\n if (isPlatformBrowser(this.platformId) && this.breadCrumbsElement?.nativeElement) {\r\n const element = this.breadCrumbsElement.nativeElement;\r\n element.style.setProperty('--font-family', this.curaService.getFontFamily(''));\r\n element.style.setProperty('--label-icon-color', this.curaService.getColor(color));\r\n element.style.setProperty('--divider-color', this.curaService.getColor('neutral-light'));\r\n if (this.fontWeight) {\r\n element.style.setProperty('--font-weight', this.fontWeight);\r\n }\r\n\r\n const disabledColor = color?.includes('neutral') ? 'primary-lighter' : 'neutral-dark';\r\n element.style.setProperty('--disabled-color', this.curaService.getColor(disabledColor));\r\n }\r\n }\r\n\r\n getUrl(urls: string[] = []): string {\r\n return urls.join('');\r\n }\r\n\r\n private setBreadcrumbsJson(items: BreadcrumbsItems[]): void {\r\n this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: this.getJsonBreadcrumbItems(items),\r\n };\r\n this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);\r\n }\r\n\r\n private getBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const existingTag = this.document.getElementById(this.breadcrumbsJsonTagId) as HTMLScriptElement;\r\n return existingTag || this.createBreadcrumbsJSONTag();\r\n }\r\n\r\n private createBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const tag = this.document.createElement('script');\r\n tag.id = this.breadcrumbsJsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n return tag;\r\n }\r\n\r\n private getJsonBreadcrumbItems(items: BreadcrumbsItems[]): BreadcrumbsJsonItem[] {\r\n return items.map((item, i) => ({\r\n '@type': 'ListItem',\r\n position: i + 1,\r\n item: {\r\n '@id': `${this.libConfig.siteUrl.replace(/\\/$/, '')}${this.getUrl(item.url)}`,\r\n name: he.encode(item.label),\r\n },\r\n }));\r\n }\r\n}\r\n","@if (breadcrumbs.length) {\r\n <nav class=\"breadcrumb\" #breadCrumbsElement>\r\n <ol>\r\n @if (isDesktop !== null && (isDesktop || breadcrumbs.length < 3)) {\r\n <ng-container *ngTemplateOutlet=\"Desktop\"></ng-container>\r\n } @else if (isDesktop !== null) {\r\n <ng-container *ngTemplateOutlet=\"Mobile\"></ng-container>\r\n }\r\n </ol>\r\n </nav>\r\n}\r\n\r\n<ng-template #Desktop>\r\n @for (breadcrumb of breadcrumbs; track breadcrumb.label; let first = $first; let last = $last; let index = $index) {\r\n <li>\r\n @if (!last) {\r\n <a rdsitelink [href]=\"getUrl(breadcrumb.url)\">\r\n @if (first) {\r\n <cura-icon name=\"home\" [attr.color]=\"labelIconColor\" size=\"16\"> </cura-icon>\r\n }\r\n <span>\r\n {{ breadcrumb.label }}\r\n </span>\r\n </a>\r\n <span class=\"divider\">/</span>\r\n } @else {\r\n <span [class.last-item]=\"last && !first\">\r\n {{ breadcrumb.label }}\r\n </span>\r\n }\r\n </li>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #Mobile>\r\n @for (breadcrumb of breadcrumbs; track breadcrumb.label; let first = $first; let last = $last; let index = $index) {\r\n <li>\r\n @if (first) {\r\n <a rdsitelink [href]=\"getUrl(breadcrumb.url)\">\r\n <cura-icon name=\"home\" [attr.color]=\"labelIconColor\" size=\"16\"> </cura-icon>\r\n <span>\r\n {{ breadcrumb.label }}\r\n </span>\r\n </a>\r\n <span class=\"divider\">/</span>\r\n } @else if (index === breadcrumbs.length - 2) {\r\n <span class=\"back\"><</span>\r\n <a rdsitelink [href]=\"getUrl(breadcrumb.url)\">\r\n <span>\r\n {{ breadcrumb.label }}\r\n </span>\r\n </a>\r\n }\r\n </li>\r\n }\r\n</ng-template>\r\n","export enum Estados {\r\n AC = 'Acre',\r\n AL = 'Alagoas',\r\n AP = 'Amapá',\r\n AM = 'Amazonas',\r\n BA = 'Bahia',\r\n CE = 'Ceará',\r\n DF = 'Distrito Federal',\r\n ES = 'Espírito Santo',\r\n GO = 'Goías',\r\n MA = 'Maranhão',\r\n MT = 'Mato Grosso',\r\n MS = 'Mato Grosso do Sul',\r\n MG = 'Minas Gerais',\r\n PA = 'Pará',\r\n PB = 'Paraíba',\r\n PR = 'Paraná',\r\n PE = 'Pernambuco',\r\n PI = 'Piauí',\r\n RJ = 'Rio de Janeiro',\r\n RN = 'Rio Grande do Norte',\r\n RS = 'Rio Grande do Sul',\r\n RO = 'Rondônia',\r\n RR = 'Roraíma',\r\n SC = 'Santa Catarina',\r\n SP = 'São Paulo',\r\n SE = 'Sergipe',\r\n TO = 'Tocantins',\r\n}\r\n","export enum EnumDoencaTaxonomy {\r\n DOENCAS_CAT = \"doencas_cat\",\r\n DOENCAS_TAG = \"doencas_tag\",\r\n}\r\n\r\nexport enum EnumDoencaTaxonomyCat {\r\n DOENCA = \"doencas\",\r\n SINTOMA = \"sintomas\",\r\n}\r\n","export enum ImageMimeType {\r\n WEBP = 'image/webp',\r\n JPEG = 'image/jpeg',\r\n PNG = 'image/png',\r\n}\r\n","export enum RdsiteModalDrawerComponentStyle {\r\n DEFAULT = 'default',\r\n DRAWERDOCTOR = 'doctor-card',\r\n FORMFALLBACK = 'form-fallback',\r\n FILTERDOENCAS = 'filter-doencas',\r\n}\r\n","export enum Themes {\r\n REDE = 'default',\r\n MATERNIDADE = 'maternidade',\r\n ONCO = 'oncologia',\r\n RICHET = 'richet',\r\n STAR = 'star',\r\n}\r\n","export enum Errors {\r\n NOT_FOUND = 'not-found',\r\n SERVER_RESPONSE = 'server-response',\r\n}\r\n","export enum UnidadeCoverageType {\r\n TOTAL = 'Cobertura completa',\r\n PARTIAL = 'Cobertura apenas para',\r\n NONE = 'Esta unidade não oferece cobertura ao seu plano ou convênio',\r\n}\r\n","export enum FilterType {\r\n INPUT = 'input',\r\n SELECT = 'select',\r\n CHECKBOX_GROUP = 'checkbox-group',\r\n RADIO_GROUP = 'radio-group',\r\n CUSTOM = 'custom',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CtaWrapper } from '../../../models/cta-wrapper.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorService {\r\n ctas = new BehaviorSubject<CtaWrapper>({});\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, HostBinding, Inject, Input, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';\r\nimport { CtaWrapperComponent } from '../cta-wrapper/cta-wrapper.component';\r\nimport { ErrorService } from './error-service/error.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { CuraService, LogService, SeoService, ServerResponseService } from '../../services';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { BreadcrumbsComponent } from '../breadcrumbs/breadcrumbs.component';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { Errors, Themes } from '../../enums';\r\nimport { CtaWrapper } from '../../models/cta-wrapper.model';\r\n\r\n@Component({\r\n selector: 'rdsite-error',\r\n standalone: true,\r\n imports: [CtaWrapperComponent, RdsiteLinkDirective, BreadcrumbsComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './error.component.html',\r\n styleUrl: './error.component.scss',\r\n})\r\nexport class ErrorComponent implements OnInit, OnDestroy {\r\n @Input() theme: Themes = Themes.REDE;\r\n @Input() type!: Errors;\r\n @Input() returnRoute: string = '';\r\n @Input() returnLabel: string = '';\r\n @Input() pageTitle = 'Default component';\r\n @Input() component = 'DefaultComponent';\r\n @Input() breadcrumbsItems: BreadcrumbsItems[] = [];\r\n\r\n ctasSubscription!: Subscription;\r\n ctasContent!: CtaWrapper;\r\n responseText = '';\r\n\r\n backgroundColor: string = '';\r\n backgroundColorBadge: string = '';\r\n breadcrumbFontWeight: string = '';\r\n labelColor: string = '';\r\n labelTextColor: string = '';\r\n curaButtonColor: string = '';\r\n curaButtonOutlineColor: string = '';\r\n ctasBorderColor: string = '';\r\n ctasIconColor: string = '';\r\n public error = Errors;\r\n\r\n @HostBinding('style') get style() {\r\n switch (this.theme) {\r\n case Themes.REDE:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-white'),\r\n '--labelColor': this.curaService.getColor('primary-lighter'),\r\n };\r\n case Themes.ONCO:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-pale'),\r\n '--labelColor': this.curaService.getColor('success-lighter'),\r\n };\r\n case Themes.MATERNIDADE:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('accent-lighter'),\r\n '--labelColor': this.curaService.getColor('primary-light'),\r\n };\r\n case Themes.RICHET:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-white'),\r\n '--labelColor': this.curaService.getColor('primary-lighter'),\r\n };\r\n case Themes.STAR:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('secondary-lighter'),\r\n '--labelColor': this.curaService.getColor('secondary-light'),\r\n };\r\n default:\r\n return {\r\n '--backgroundColor': this.curaService.getColor('neutral-white'),\r\n '--labelColor': this.curaService.getColor('primary-lighter'),\r\n };\r\n }\r\n }\r\n\r\n constructor(\r\n private errorService: ErrorService,\r\n private curaService: CuraService,\r\n private logService: LogService,\r\n private seoService: SeoService,\r\n private serverResponse: ServerResponseService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.type === Errors.NOT_FOUND) {\r\n this.responseText = 'A página que você acessou não existe mais ou foi movida para outra URL';\r\n if (isPlatformServer(this.platformId)) {\r\n this.serverResponse.setNotFound();\r\n }\r\n this.logService.log404(this.component);\r\n this.seoService.set404Title(this.pageTitle);\r\n } else if (this.type === Errors.SERVER_RESPONSE) {\r\n this.responseText = 'Recomendamos atualizar a página ou tentar novamente mais tarde.';\r\n if (isPlatformServer(this.platformId)) {\r\n this.serverResponse.setError();\r\n }\r\n this.logService.log500(this.component);\r\n this.seoService.set500Title(this.pageTitle);\r\n }\r\n this.ctasSubscription = this.errorService.ctas.subscribe((ctas) => {\r\n this.ctasContent = ctas;\r\n });\r\n this.setTheme(this.theme);\r\n }\r\n\r\n setTheme(theme: Themes) {\r\n switch (theme) {\r\n case Themes.REDE:\r\n this.labelTextColor = 'primary-dark';\r\n this.curaButtonColor = 'primary';\r\n this.curaButtonOutlineColor = 'primary';\r\n this.ctasBorderColor = 'primary-darker';\r\n this.ctasIconColor = 'primary-darker';\r\n break;\r\n case Themes.ONCO:\r\n this.labelTextColor = 'primary-dark';\r\n this.backgroundColorBadge = 'success-lighter';\r\n this.curaButtonColor = 'accent';\r\n this.curaButtonOutlineColor = 'accent';\r\n this.ctasBorderColor = 'accent-base';\r\n this.ctasIconColor = 'primary-dark';\r\n this.breadcrumbFontWeight = '700';\r\n break;\r\n case Themes.MATERNIDADE:\r\n this.labelTextColor = 'accent-base';\r\n this.curaButtonColor = 'accent';\r\n this.curaButtonOutlineColor = 'accent';\r\n this.ctasBorderColor = 'accent-base';\r\n this.ctasIconColor = 'accent-base';\r\n break;\r\n case Themes.RICHET:\r\n this.labelTextColor = 'primary-dark';\r\n this.curaButtonColor = 'primary';\r\n this.curaButtonOutlineColor = 'primary';\r\n this.ctasBorderColor = 'primary-darker';\r\n this.ctasIconColor = 'primary-darker';\r\n break;\r\n case Themes.STAR:\r\n this.labelTextColor = 'secondary-dark';\r\n this.curaButtonColor = 'secondary';\r\n this.curaButtonOutlineColor = 'secondary';\r\n this.ctasBorderColor = 'secondary-base';\r\n this.ctasIconColor = 'secondary-darker';\r\n break;\r\n }\r\n }\r\n\r\n reloadPage() {\r\n if (window !== undefined) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ctasSubscription?.unsubscribe();\r\n }\r\n}\r\n","<div class=\"rdsite-error\">\r\n @if (ctasIconColor && breadcrumbsItems.length) {\r\n <rdsite-breadcrumbs [breadcrumbs]=\"breadcrumbsItems\" [labelIconColor]=\"ctasIconColor\" [fontWeight]=\"breadcrumbFontWeight\"></rdsite-breadcrumbs>\r\n }\r\n <div class=\"rdsite-error-container\">\r\n @if (labelTextColor) {\r\n <cura-label [attr.color]=\"labelTextColor\">\r\n {{ type === 'server-response' ? '500' : '404' }}\r\n </cura-label>\r\n }\r\n\r\n <cura-heading color=\"neutral-black\" size=\"medium\" weight=\"bold\"> Algo deu errado :( </cura-heading>\r\n\r\n @if (responseText) {\r\n <cura-paragraph color=\"neutral-black\" size=\"large\">\r\n {{ responseText }}\r\n </cura-paragraph>\r\n }\r\n\r\n @if (type === error.NOT_FOUND && returnRoute && returnLabel) {\r\n <cura-button\r\n rdsitelink\r\n [href]=\"returnRoute\"\r\n size=\"medium\"\r\n type=\"button\"\r\n [color]=\"curaButtonColor\"\r\n font-color=\"light\"\r\n icon-name=\"arrowLeft\"\r\n target=\"_self\"\r\n >\r\n Voltar para {{ returnLabel }}\r\n </cura-button>\r\n }\r\n\r\n @if (type === error.SERVER_RESPONSE) {\r\n @if (curaButtonColor) {\r\n <cura-button size=\"medium\" type=\"button\" (click)=\"reloadPage()\" [attr.color]=\"curaButtonColor\" font-color=\"light\" icon-name=\"reload\" target=\"_self\">\r\n Atualizar página novamente\r\n </cura-button>\r\n }\r\n\r\n @if (returnLabel && returnRoute) {\r\n <cura-paragraph color=\"neutral-black\" size=\"large\">ou</cura-paragraph>\r\n @if (curaButtonOutlineColor) {\r\n <cura-button-outline\r\n rdsitelink\r\n [href]=\"returnRoute\"\r\n size=\"medium\"\r\n type=\"button\"\r\n [color]=\"curaButtonOutlineColor\"\r\n icon-name=\"arrowLeft\"\r\n target=\"_self\"\r\n >\r\n Voltar para {{ returnLabel }}\r\n </cura-button-outline>\r\n }\r\n }\r\n }\r\n @if (ctasContent.ctas!.length > 0 && ctasBorderColor && ctasIconColor) {\r\n <cura-paragraph class=\"wrapper-text\" color=\"neutral-black\" size=\"large\"> Você pode também: </cura-paragraph>\r\n\r\n <rdsite-cta-wrapper [content]=\"ctasContent\" [showTitleAndText]=\"false\" [colors]=\"{ border: ctasBorderColor, icon: ctasIconColor }\"></rdsite-cta-wrapper>\r\n }\r\n </div>\r\n</div>\r\n","import { Component, Input, CUSTOM_ELEMENTS_SCHEMA, HostBinding } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuraService } from '../../services';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { BreadcrumbsComponent } from '../breadcrumbs/breadcrumbs.component';\r\n\r\n@Component({\r\n selector: 'rdsite-page-header',\r\n standalone: true,\r\n imports: [CommonModule, BreadcrumbsComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './page-header.component.html',\r\n styleUrls: ['./page-header.component.scss'],\r\n})\r\nexport class PageHeaderComponent {\r\n @Input() pageTitle: string = '';\r\n @Input() pageHeaderText: string = '';\r\n @Input() hasPadding: boolean = false;\r\n @Input() breadcrumbs: BreadcrumbsItems[] = [];\r\n @Input() bgColor = 'primary-base';\r\n\r\n @HostBinding('style') get style() {\r\n return {\r\n '--bg-color': this.curaService.getColor(this.bgColor),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n }\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n}\r\n","<div class=\"page-header\" [ngClass]=\"{ 'more-padding': hasPadding }\">\r\n <div class=\"page-header-content\">\r\n @if (breadcrumbs.length) {\r\n <rdsite-breadcrumbs [breadcrumbs]=\"breadcrumbs\"></rdsite-breadcrumbs>\r\n }\r\n @if (pageTitle) {\r\n <h1>{{ pageTitle }}</h1>\r\n }\r\n @if (pageHeaderText) {\r\n <cura-paragraph color=\"neutral-purewhite\" margin-block=\"0\">{{ pageHeaderText }}</cura-paragraph>\r\n }\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-page-template-sidebar',\r\n standalone: true,\r\n imports: [CommonModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './page-template-sidebar.component.html',\r\n styleUrl: './page-template-sidebar.component.scss',\r\n})\r\nexport class PageTemplateSidebarComponent {\r\n @Input() header: TemplateRef<any> | null = null;\r\n @Input() stickyContent: TemplateRef<any> | null = null;\r\n @Input() beforeContent: TemplateRef<any> | null = null;\r\n @Input() content: TemplateRef<any> | null = null;\r\n @Input() afterContent: { template: TemplateRef<any>; show: boolean }[] | null = null;\r\n @Input() sidebarContent: TemplateRef<any> | null = null;\r\n @Input() isArticle = false;\r\n}\r\n","@if (isArticle) {\r\n <article class=\"rdsite-template-sidebar\">\r\n <ng-container *ngTemplateOutlet=\"mainContent\"></ng-container>\r\n </article>\r\n} @else {\r\n <section class=\"rdsite-template-sidebar\">\r\n <ng-container *ngTemplateOutlet=\"mainContent\"></ng-container>\r\n </section>\r\n}\r\n<ng-template #mainContent>\r\n @if (header) {\r\n <header class=\"rdsite-template-header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </header>\r\n }\r\n @if (stickyContent) {\r\n <div class=\"rdsite-template-sticky-content\">\r\n <ng-container *ngTemplateOutlet=\"stickyContent\"></ng-container>\r\n </div>\r\n }\r\n\r\n @if (beforeContent) {\r\n <div class=\"rdsite-template-before-content\">\r\n <ng-container *ngTemplateOutlet=\"beforeContent\"></ng-container>\r\n </div>\r\n }\r\n <div class=\"rdsite-template-container\">\r\n @if (content) {\r\n <section class=\"rdsite-content-container\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </section>\r\n }\r\n\r\n @if (sidebarContent) {\r\n <aside class=\"rdsite-sidebar-content-container\">\r\n <ng-container *ngTemplateOutlet=\"sidebarContent\"></ng-container>\r\n </aside>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n@if (afterContent?.length) {\r\n @for (tpl of afterContent; track $index) {\r\n @if (tpl.show) {\r\n <aside class=\"rdsite-template-after-content\">\r\n <ng-container *ngTemplateOutlet=\"tpl.template\"></ng-container>\r\n </aside>\r\n }\r\n }\r\n}\r\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Inject, Input, OnInit, Output, PLATFORM_ID } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { CuraService } from '../../../services';\r\nimport { MediaQueries } from '../../../helpers/mediaQueries';\r\nimport { FilterAction, FilterControlValue, FilterSection } from '../../../models/filters/filter-section.type';\r\nimport { FilterEvent, FilterPlanosConveniosChange } from '../../../models/filters/filter-planos-convenios.model';\r\n\r\n@Component({\r\n selector: 'rdsite-filter-generic',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './filter-generic.component.html',\r\n styleUrls: ['./filter-generic.component.scss'],\r\n})\r\nexport class FilterGenericComponent implements OnInit {\r\n @Output() filterChange = new EventEmitter<FilterEvent>();\r\n @Output() closeModal = new EventEmitter<boolean>();\r\n @Output() openMobileFilter = new EventEmitter<void>();\r\n\r\n @Input() withContainerStyle = true;\r\n @Input() showClearButton = true;\r\n @Input() showApplyButton = true;\r\n @Input() showCloseButton = false;\r\n @Input() disableButtonsWithoutSelection = false;\r\n @Input() showBadge = true;\r\n @Input() showToggleIcon = true;\r\n @Input() isFilterOpen = true;\r\n @Input() mobileBehavior = false;\r\n @Input() forceCollapsed = false;\r\n @Input() emitOnReset = false;\r\n @Input() textTitle = 'Filtrar por';\r\n @Input() sections: FilterSection[] = [];\r\n\r\n selectedFiltersCount: number = 0;\r\n windowWidth: number = 0;\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-opacity-black': this.curaService.getColor('neutral-black', 0.2),\r\n '--neutral-darker': this.curaService.getColor('neutral-darker'),\r\n '--neutral-medium': this.curaService.getColor('neutral-medium'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-lighter': this.curaService.getColor('neutral-lighter'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--primary-lighter': this.curaService.getColor('primary-lighter'),\r\n };\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private readonly cdr: ChangeDetectorRef,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.windowWidth = window.innerWidth;\r\n }\r\n\r\n if (this.forceCollapsed && this.isMobile()) {\r\n this.isFilterOpen = false;\r\n }\r\n }\r\n\r\n handleInputChange(event: any, control: FormControl): void {\r\n control.setValue(event.detail);\r\n this.updateSelectedFiltersCount();\r\n }\r\n\r\n handleSelectChange(event: any, control: FormControl): void {\r\n if (event?.detail !== undefined) {\r\n control.setValue(event.detail);\r\n this.updateSelectedFiltersCount();\r\n }\r\n }\r\n\r\n handleCheckboxChange(event: any, options: any[]): void {\r\n const changedOption = options.find((opt) => opt.value === event.detail.value);\r\n if (changedOption) changedOption.checked = event.detail.checked;\r\n\r\n this.updateCheckboxGroup(options);\r\n this.updateSelectedFiltersCount();\r\n }\r\n\r\n handleRadioChange(event: any, control: FormControl): void {\r\n const selectedValue = event.detail.value;\r\n control.setValue(control.value?.value === selectedValue ? null : { value: selectedValue });\r\n }\r\n\r\n filter(): void {\r\n this.emitFilterChange('filter');\r\n if (this.mobileBehavior || this.showCloseButton) this.close();\r\n }\r\n\r\n reset(): void {\r\n this.resetAllControls();\r\n this.updateSelectedFiltersCount();\r\n\r\n if (this.emitOnReset) {\r\n this.emitFilterChange('reset');\r\n this.close();\r\n }\r\n }\r\n\r\n close(): void {\r\n this.closeModal.emit(true);\r\n }\r\n\r\n toggleFilter(): void {\r\n if (this.mobileBehavior && this.isMobile()) {\r\n this.openMobileFilter.emit();\r\n } else {\r\n this.isFilterOpen = !this.isFilterOpen;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n hasSelection(): boolean {\r\n this.updateSelectedFiltersCount();\r\n return this.selectedFiltersCount > 0;\r\n }\r\n\r\n isMobile(): boolean {\r\n return this.windowWidth <= MediaQueries.smallBreakpoint;\r\n }\r\n\r\n getRadioGroupValue(control?: FormControl<FilterControlValue>): any {\r\n const value = control?.value;\r\n return value && typeof value === 'object' && 'value' in value ? value.value : null;\r\n }\r\n\r\n hasScroll(section: FilterSection): boolean {\r\n switch (section.type) {\r\n case 'checkbox-group':\r\n return section.config.options && section.config.options.length > 6;\r\n case 'radio-group':\r\n return section.config.options && section.config.options.length > 6;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n getSectionClass(section: FilterSection): string {\r\n return this.hasScroll(section) ? 'scrollable' : '';\r\n }\r\n\r\n shouldHandleMobileClick(): boolean {\r\n return this.mobileBehavior && this.isMobile() && this.forceCollapsed;\r\n }\r\n\r\n handleMobileClick(): void {\r\n if (this.shouldHandleMobileClick()) {\r\n this.openMobileFilter.emit();\r\n }\r\n }\r\n\r\n private emitFilterChange(action: FilterAction): void {\r\n const filterData = this.buildFilterData();\r\n const isEmpty = this.isFilterDataEmpty(filterData);\r\n\r\n this.filterChange.emit({\r\n data: this.emitOnReset || !isEmpty ? filterData : null,\r\n action: action,\r\n });\r\n }\r\n\r\n private updateSelectedFiltersCount(): void {\r\n this.selectedFiltersCount = this.sections.reduce((count, section) => {\r\n if (!section.config?.control) return count;\r\n\r\n const value = section.config.control.value;\r\n\r\n switch (section.type) {\r\n case 'checkbox-group':\r\n return count + (Array.isArray(value) ? value.filter((item) => item?.checked).length : 0);\r\n case 'radio-group':\r\n return count + (value?.value ? 1 : 0);\r\n default:\r\n return count + (value ? 1 : 0);\r\n }\r\n }, 0);\r\n }\r\n\r\n private resetAllControls(): void {\r\n this.sections.forEach((section) => {\r\n if (!section.config?.control) return;\r\n\r\n if (section.type === 'checkbox-group') {\r\n const resetOptions = section.config.options.map((option: any) => ({ ...option, checked: false }));\r\n section.config.options = resetOptions;\r\n section.config.control.setValue(resetOptions, { emitEvent: false });\r\n } else {\r\n section.config.control.reset('', { emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n private updateCheckboxGroup(options: any[]): void {\r\n this.sections\r\n .filter((section) => section.type === 'checkbox-group')\r\n .forEach((section) => {\r\n section.config.options = [...options];\r\n section.config.control.setValue([...options]);\r\n });\r\n }\r\n\r\n private buildFilterData(): FilterPlanosConveniosChange | any {\r\n const filterData: FilterPlanosConveniosChange = {\r\n unidade: '',\r\n estado: '',\r\n cobertura: [],\r\n };\r\n\r\n this.sections.forEach((section) => {\r\n if (!section.config?.control) return;\r\n\r\n const value = section.config.control.value;\r\n\r\n switch (section.type) {\r\n case 'input':\r\n filterData.unidade = value || '';\r\n break;\r\n case 'select':\r\n filterData.estado = value || '';\r\n break;\r\n case 'checkbox-group':\r\n filterData.cobertura = Array.isArray(value) ? value.filter((item) => item.checked) : [];\r\n break;\r\n }\r\n });\r\n\r\n return filterData;\r\n }\r\n\r\n private isFilterDataEmpty(filterData: FilterPlanosConveniosChange): boolean {\r\n return Object.values(filterData).every((val) => val === null || val === '' || (Array.isArray(val) && val.length === 0));\r\n }\r\n}\r\n","<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Faça a sua Seleção' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { Estados } from '../../../enums';\r\nimport { FilterPlanosConvenios, FilterPlanosConveniosChange, FilterPlanosConveniosCobertura } from '../../../models/filters/filter-planos-convenios.model';\r\nimport { CuraService } from '../../../services';\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nimport type * as _ from '@rededor/cura/dist/types/components.js';\r\n\r\ninterface CuraCheckboxOption<T = any> {\r\n value: T;\r\n checked: boolean;\r\n indeterminate?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'rdsite-filter-planos-convenios',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './filter-planos-convenios.component.html',\r\n styleUrls: ['./filter-planos-convenios.component.scss'],\r\n})\r\nexport class FilterPlanosConveniosComponent implements AfterViewInit {\r\n @Output() filterChange = new EventEmitter<FilterPlanosConveniosChange>();\r\n @Output() closeModal = new EventEmitter<boolean>();\r\n\r\n @Input() withContainerStyle: boolean = false;\r\n @Input() isLoading: boolean = false;\r\n @Input() emitOnChange: boolean = false;\r\n\r\n @Input() initialEstado: Estados | string | number | null = null;\r\n\r\n @Input() estados: FilterPlanosConvenios[] = Object.entries(Estados).map(([key, value]) => ({\r\n label: value,\r\n value: key,\r\n }));\r\n\r\n @Input() coberturas: FilterPlanosConveniosCobertura[] = [\r\n { label: 'Consultas', value: 'FLAG_ACEITA_AMBULATORIO', checked: false },\r\n { label: 'Emergência', value: 'FLAG_ACEITA_PS', checked: false },\r\n { label: 'Exames', value: 'FLAG_ACEITA_EXAME', checked: false },\r\n { label: 'Internação', value: 'FLAG_ACEITA_INTERNACAO', checked: false },\r\n ];\r\n\r\n @Input() unidadeControl = new FormControl<string | number | null>('');\r\n @Input() estadoControl = new FormControl<Estados | string | number | null>('');\r\n coberturaControl = new FormControl<FilterPlanosConveniosCobertura[]>(this.coberturas || []);\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-darker': this.curaService.getColor('neutral-darker'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-lighter': this.curaService.getColor('neutral-lighter'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n };\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.initialEstado && Array.isArray(this.estados) && this.estados.find((estado) => estado.value === this.initialEstado)) {\r\n setTimeout(() => {\r\n this.estadoControl.setValue(this.initialEstado);\r\n this.filter();\r\n }, 50);\r\n }\r\n }\r\n\r\n inputTextChange({ detail }: CustomEvent<number | string>) {\r\n this.unidadeControl.setValue(detail);\r\n if (this.emitOnChange) {\r\n this.filterChange.emit({\r\n unidade: detail,\r\n estado: this.estadoControl.value,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n }\r\n\r\n selectChange({ detail }: CustomEvent<number | string>) {\r\n this.estadoControl.setValue(detail);\r\n if (this.emitOnChange) {\r\n this.filterChange.emit({\r\n unidade: this.unidadeControl.value,\r\n estado: detail,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n }\r\n\r\n checkboxChange({ detail }: CustomEvent<CuraCheckboxOption<string>>) {\r\n if (!this.coberturas) return;\r\n const currOption: FilterPlanosConveniosCobertura | undefined = this.coberturas.find(\r\n (option: FilterPlanosConveniosCobertura) => option.value == detail.value,\r\n );\r\n if (currOption) {\r\n currOption.checked = detail.checked;\r\n }\r\n this.coberturaControl.setValue(this.coberturas);\r\n if (this.emitOnChange) {\r\n this.filterChange.emit({\r\n unidade: this.unidadeControl.value,\r\n estado: this.estadoControl.value,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n }\r\n\r\n filter(): void {\r\n this.filterChange.emit({\r\n unidade: this.unidadeControl.value,\r\n estado: this.estadoControl.value,\r\n cobertura: this.coberturaControl.value || [],\r\n });\r\n }\r\n\r\n reset(): void {\r\n const hasCoverage = this.coberturaControl.value!.some((cob) => cob.checked);\r\n const hasFilter = Boolean(this.unidadeControl.value) || Boolean(this.estadoControl.value) || Boolean(hasCoverage);\r\n this.closeModal.emit(!hasFilter);\r\n this.unidadeControl.reset('');\r\n this.estadoControl.reset('');\r\n this.coberturas.forEach((cobertura) => (cobertura.checked = false));\r\n this.coberturaControl.reset(this.coberturas);\r\n }\r\n}\r\n","<div class=\"filter-planos-convenios\" [ngClass]=\"{ 'container-style': withContainerStyle }\">\r\n @if (!isLoading) {\r\n <cura-heading size=\"small\" level=\"4\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\"> Refine sua busca </cura-heading>\r\n\r\n <div class=\"filter-planos-convenios-unidade\">\r\n <cura-input-text\r\n placeholder=\"Nome da unidade\"\r\n name=\"unidade-input\"\r\n icon-name=\"search\"\r\n autocomplete=\"off\"\r\n [attr.value]=\"unidadeControl.value\"\r\n (valueChange)=\"inputTextChange($event)\"\r\n ></cura-input-text>\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-estado\">\r\n @if (estados) {\r\n <cura-select\r\n label=\"Selecione o estado\"\r\n placeholder=\"Faça a sua Seleção\"\r\n mode=\"default\"\r\n size=\"medium\"\r\n status=\"default\"\r\n [attr.value]=\"estadoControl.value\"\r\n (selected)=\"selectChange($event)\"\r\n >\r\n <cura-select-option [attr.value]=\"''\">Faça a sua Seleção</cura-select-option>\r\n\r\n @for (estado of estados || []; track estado?.value) {\r\n <cura-select-option [attr.value]=\"estado?.value\">{{ estado?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-cobertura\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n Filtre pela cobertura do seu plano\r\n </cura-heading>\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-content\">\r\n <cura-heading size=\"xsmall\" level=\"5\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\"> Tipos de cobertura </cura-heading>\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n Você pode selecionar uma ou mais portas de entrada, de acordo com a cobertura do seu plano.\r\n </cura-paragraph>\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-checkboxes\">\r\n @for (option of coberturas || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"checkboxChange($event)\"\r\n >\r\n </cura-checkbox>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-planos-convenios-buttons\">\r\n <cura-button-transparent size=\"small\" color=\"primary\" font-color=\"dark\" text-align=\"center\" (click)=\"reset()\">\r\n <span> Limpar todos os filtros </span>\r\n </cura-button-transparent>\r\n\r\n <cura-button size=\"medium\" color=\"primary\" font-color=\"light\" background=\"light\" text-align=\"center\" (click)=\"filter()\"> Filtrar </cura-button>\r\n </div>\r\n } @else {\r\n <cura-loader-circle color=\"primary\" size=\"small\"> </cura-loader-circle>\r\n }\r\n</div>\r\n","import { AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Inject, Input, Output, PLATFORM_ID } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-filter-letter-and-terms',\r\n standalone: true,\r\n imports: [],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './filter-letter-and-terms.component.html',\r\n styleUrl: './filter-letter-and-terms.component.scss',\r\n})\r\nexport class FilterLetterAndTermsComponent implements AfterViewInit {\r\n @Input() options: string[] = [];\r\n @Input() baseUrl: string = '';\r\n @Input() baseUrlAll: string = '';\r\n @Input() enableScroll = false;\r\n private isFirstScroll = true;\r\n private _selectedOption: string = '';\r\n\r\n @Input()\r\n set selectedOption(value: string) {\r\n if (this._selectedOption === value) return;\r\n this._selectedOption = value;\r\n if (this.enableScroll && !this.isFirstScroll) {\r\n this.scrollToSelectedOption(value);\r\n }\r\n }\r\n\r\n get selectedOption(): string {\r\n return this._selectedOption;\r\n }\r\n\r\n @Output() optionSelected: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding('style') get style() {\r\n return {\r\n '--font-family': this.curaService.getFontFamily(''),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-pale': this.curaService.getColor('neutral-pale'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--color-one-light': this.curaService.getColor('primary-light'),\r\n '--color-one-base': this.curaService.getColor('primary-base'),\r\n '--color-one-dark': this.curaService.getColor('primary-dark'),\r\n '--color-one-darker': this.curaService.getColor('primary-darker'),\r\n };\r\n }\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.selectedOption) {\r\n setTimeout(() => {\r\n this.scrollToSelectedOption(this.selectedOption);\r\n this.isFirstScroll = false;\r\n }, 100);\r\n }\r\n }\r\n\r\n selectOption(option: string, event: Event): void {\r\n event.preventDefault();\r\n if (this._selectedOption !== option) {\r\n this._selectedOption = option;\r\n this.optionSelected.emit(option);\r\n this.scrollToSelectedOption(option);\r\n }\r\n }\r\n\r\n scrollToSelectedOption(value: string) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const elementId = value || 'todas';\r\n const selectedElement = elementId === 'todas' ? this.document.getElementById('todas') : this.document.getElementById(value);\r\n if (selectedElement) {\r\n selectedElement.scrollIntoView({\r\n behavior: 'smooth',\r\n inline: 'center',\r\n block: 'nearest',\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"filter-letter-and-terms\">\r\n <a\r\n id=\"todas\"\r\n rdsitelink\r\n class=\"filter-option\"\r\n [class.selected]=\"selectedOption === ''\"\r\n [href]=\"baseUrlAll ? baseUrlAll : baseUrl ? baseUrl : '#'\"\r\n (click)=\"selectOption('', $event)\"\r\n >\r\n TODAS\r\n </a>\r\n\r\n @for (option of options; track option) {\r\n <a\r\n [id]=\"option\"\r\n rdsitelink\r\n class=\"filter-option\"\r\n [class.selected]=\"selectedOption === option\"\r\n [href]=\"baseUrl ? baseUrl + option.toLowerCase() : '#'\"\r\n (click)=\"selectOption(option, $event)\"\r\n >\r\n {{ option }}\r\n </a>\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n signal,\r\n effect,\r\n OnInit,\r\n ViewChild,\r\n ElementRef,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren,\r\n QueryList,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SectionNavigationData, SectionNavigationConfig } from '../../models/section-navigation.model';\r\nimport { CuraService } from '../../services/cura/cura.service';\r\nimport { RdsiteLinkDirective } from '../../directives';\r\nimport { BehaviorSubject, debounceTime, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'nav[rdsite-section-navigation]',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './section-navigation.component.html',\r\n styleUrls: ['./section-navigation.component.scss'],\r\n})\r\nexport class SectionNavigationComponent implements OnInit, OnDestroy {\r\n readonly sections = signal<SectionNavigationData[]>([]);\r\n readonly config = signal<SectionNavigationConfig | undefined>(undefined);\r\n readonly activeSection = signal<string>('');\r\n\r\n isMobile: boolean = window.innerWidth < 768;\r\n\r\n scrollToMenuAnchorSubscription: Subscription | null = null;\r\n scrollToMenuAnchorSubject: BehaviorSubject<string> = new BehaviorSubject('');\r\n\r\n @ViewChild('containerEl') containerEl!: ElementRef<HTMLDivElement>;\r\n @ViewChildren('anchorEl') anchorsEl!: QueryList<ElementRef<HTMLAnchorElement>>;\r\n\r\n @HostListener('window:resize')\r\n onWindowResize(): void {\r\n this.isMobile = window.innerWidth < 768;\r\n }\r\n\r\n @HostListener('window:scroll')\r\n onWindowScroll(): void {\r\n this.windowScroll();\r\n }\r\n\r\n @Input({ required: true })\r\n set navigationSections(value: SectionNavigationData[]) {\r\n if (!value?.length) {\r\n throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');\r\n }\r\n this.sections.set(value);\r\n\r\n if (!this.activeSection()) {\r\n this.activeSection.set(value[0].id);\r\n }\r\n }\r\n\r\n @Input()\r\n set navigationConfig(value: SectionNavigationConfig) {\r\n this.config.set(value);\r\n }\r\n\r\n @Input() ariaLabel = 'Navegação da página';\r\n @Input() anchorAdjustment = 0;\r\n\r\n @Output() sectionChange = new EventEmitter<SectionNavigationData>();\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n '--neutral-black': this.curaService.getColor('neutral-black', 0.16),\r\n '--color-base': this.curaService.getColor('primary-base'),\r\n '--font-size': this.curaService.getFontSize(),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n @ViewChild('navigationMenu', { static: true }) navigationMenu!: ElementRef<HTMLUListElement>;\r\n\r\n constructor(private curaService: CuraService) {\r\n effect(() => {\r\n const sections = this.sections();\r\n if (sections.length && !this.activeSection()) {\r\n this.activeSection.set(sections[0].id);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n const sections = this.sections();\r\n if (!sections.length) {\r\n throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');\r\n }\r\n\r\n if (!this.activeSection()) {\r\n this.activeSection.set(sections[0].id);\r\n }\r\n\r\n // Usado para evitar multiplos calculos desnecessários enquanto scrolla\r\n const TIME_TO_AVOID_UNECESSARY_CALCULATIONS = 50;\r\n this.scrollToMenuAnchorSubscription = this.scrollToMenuAnchorSubject.pipe(debounceTime(TIME_TO_AVOID_UNECESSARY_CALCULATIONS)).subscribe((anchorId) => {\r\n this.scrollToMenuAnchor(anchorId);\r\n });\r\n }\r\n\r\n private windowScroll(): void {\r\n const navHeight = document.querySelector<HTMLElement>('.rdsite-section-navigation')?.getBoundingClientRect().top || 0;\r\n const pageHeaderHeight = document.querySelector<HTMLElement>('.page-header')?.getBoundingClientRect().top || 0;\r\n let selectedIndex = -1;\r\n this.sections()?.forEach((section, index) => {\r\n const menuTop = document.querySelector<HTMLElement>(`#${section.id}`)?.getBoundingClientRect().top || 0;\r\n if (menuTop) {\r\n const calc = window.scrollY - menuTop + navHeight + pageHeaderHeight;\r\n if (calc >= 0) {\r\n selectedIndex = index;\r\n if (this.sections()?.[selectedIndex]) {\r\n this.activeSection.set(this.sections()?.[selectedIndex]?.id);\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (this.sections()?.[selectedIndex]) {\r\n this.scrollToMenuAnchorSubject.next(this.sections()?.[selectedIndex]?.id);\r\n }\r\n }\r\n\r\n scrollToMenuAnchor(anchorId: string): void {\r\n const anchor = this.anchorsEl.find((anchor) => anchor.nativeElement.id == `anchor-${anchorId}`);\r\n if (!anchor) return;\r\n const distanceFromTheCenterOfTheAnchor = (anchor.nativeElement.offsetLeft + anchor.nativeElement.offsetLeft + anchor?.nativeElement.offsetWidth) / 2;\r\n const centerOfContainerEl = this.containerEl?.nativeElement.clientWidth / 2;\r\n const left = distanceFromTheCenterOfTheAnchor - centerOfContainerEl;\r\n this.containerEl.nativeElement.scrollTo({\r\n left: left,\r\n behavior: 'smooth',\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.scrollToMenuAnchorSubscription?.unsubscribe();\r\n }\r\n}\r\n","<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n <ul #containerEl class=\"rdsite-section-navigation-menu\" role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n @if (section.title) {\r\n <li role=\"none\">\r\n <a\r\n #anchorEl\r\n id=\"anchor-{{ section.id }}\"\r\n role=\"menuitem\"\r\n [href]=\"'#' + section.id\"\r\n rdsitelink\r\n [anchorAdjustment]=\"anchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n [ngClass]=\"{ active: activeSection() === section.id }\"\r\n >\r\n {{ section.title }}\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n</nav>\r\n","import { Component, Inject, Input, OnInit, PLATFORM_ID } from '@angular/core';\r\nimport { CommonModule, isPlatformServer } from '@angular/common';\r\nimport { ImageMimeType } from '../../enums/ImageMimeType.enum';\r\nimport { RdsiteImage } from '../../models/images/rdsite-image.model';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Component({\r\n selector: 'rdsite-image',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './image.component.html',\r\n styleUrl: './image.component.scss',\r\n})\r\nexport class ImageComponent implements OnInit {\r\n @Input() imageWebpSrc: string = '';\r\n @Input() imageDefaultSrc: string = '';\r\n @Input() imageSizes: RdsiteImage[] = [];\r\n @Input() mimeType: ImageMimeType = ImageMimeType.JPEG;\r\n @Input() alt: string = '';\r\n @Input() title: string = '';\r\n @Input() loading: 'eager' | 'lazy' = 'lazy';\r\n\r\n constructor(\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.imageWebpSrc) {\r\n this.mimeType = ImageMimeType.WEBP;\r\n }\r\n\r\n if (isPlatformServer(this.platformId)) {\r\n this.handleServerImageError();\r\n }\r\n }\r\n\r\n private handleServerImageError() {\r\n if (!this.imageDefaultSrc) {\r\n this.handleImageError();\r\n }\r\n }\r\n\r\n handleImageError(): void {\r\n this.imageDefaultSrc = this.libConfig.fallbackImgSrc || '';\r\n }\r\n}\r\n","<picture>\r\n @if (imageWebpSrc) {\r\n <source [srcset]=\"imageWebpSrc\" [type]=\"mimeType\" />\r\n }\r\n @for (image of imageSizes; track image.source_url) {\r\n <source [srcset]=\"image.source_url\" [media]=\"image.media\" [type]=\"image.mime_type\" />\r\n }\r\n <img [src]=\"imageDefaultSrc\" [alt]=\"alt\" [title]=\"title\" [attr.loading]=\"loading\" (error)=\"handleImageError()\" />\r\n</picture>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, HostBinding, Input } from '@angular/core';\r\nimport { CuraService } from '../../../services';\r\nimport { ImageComponent } from '../../image/image.component';\r\nimport { RdsiteImage } from '../../../models/images/rdsite-image.model';\r\nimport { ImageMimeType } from '../../../enums/ImageMimeType.enum';\r\nimport { RdsiteLinkDirective } from '../../../directives';\r\nimport { UnidadeCoverageType } from '../../../enums';\r\n\r\n@Component({\r\n selector: 'rdsite-card-unidade-planos-convenios',\r\n standalone: true,\r\n imports: [ImageComponent, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './card-unidade-planos-convenios.component.html',\r\n styleUrl: './card-unidade-planos-convenios.component.scss',\r\n})\r\nexport class CardUnidadePlanosConveniosComponent {\r\n @Input() title: string = '';\r\n @Input() subtitle?: string = '';\r\n @Input() coverage?: {\r\n title: UnidadeCoverageType;\r\n list?: {\r\n title: string;\r\n isCovered: boolean;\r\n }[];\r\n };\r\n @Input() address?: string = '';\r\n @Input() cta1?: {\r\n label: string;\r\n link: string;\r\n };\r\n @Input() cta2?: {\r\n label: string;\r\n link: string;\r\n };\r\n\r\n @Input() logoWebpSrc: string = '';\r\n @Input() logoDefaultSrc: string = '';\r\n @Input() logoSizes: RdsiteImage[] = [];\r\n @Input() logoMimeType: ImageMimeType = ImageMimeType.JPEG;\r\n @Input() logoAlt: string = '';\r\n @Input() logoTitle: string = '';\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-white': this.curaService.getColor('neutral-white'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--color-base': this.curaService.getColor('primary-base'),\r\n };\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n}\r\n","<div class=\"rdsite-card-unidade-planos-convenios\">\r\n <rdsite-image\r\n class=\"rdsite-card-unidade-planos-convenios-logo\"\r\n [imageWebpSrc]=\"logoWebpSrc\"\r\n [imageDefaultSrc]=\"logoDefaultSrc\"\r\n [imageSizes]=\"logoSizes\"\r\n [mimeType]=\"logoMimeType\"\r\n [alt]=\"logoAlt\"\r\n [title]=\"logoTitle\"\r\n loading=\"lazy\"\r\n ></rdsite-image>\r\n\r\n <div class=\"rdsite-card-unidade-planos-convenios-heading\">\r\n @if (title) {\r\n <cura-heading size=\"small\" level=\"2\" color=\"neutral-black\" weight=\"bold\" margin-block=\"0\" line-height=\"150%\">\r\n {{ title }}\r\n </cura-heading>\r\n }\r\n\r\n @if (subtitle) {\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" weight=\"bold\" margin-block=\"0\" line-height=\"130%\">\r\n <span class=\"cura-paragraph-weight\">\r\n {{ subtitle }}\r\n </span>\r\n </cura-paragraph>\r\n }\r\n </div>\r\n\r\n <div class=\"rdsite-card-unidade-planos-convenios-content\">\r\n @if (coverage) {\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-black\" margin-block=\"0\" line-height=\"130%\">\r\n <span class=\"cura-paragraph-weight\">\r\n {{ coverage.title }}\r\n </span>\r\n </cura-paragraph>\r\n\r\n @if (coverage.list?.length) {\r\n <div class=\"coverage-list\">\r\n @for (item of coverage.list; track item.title) {\r\n <cura-badge-pill type=\"solid\" color=\"success\" [attr.disabled]=\"!item.isCovered\" [attr.icon-name]=\"item.isCovered ? 'check' : 'close'\">\r\n {{ item.title }}\r\n </cura-badge-pill>\r\n }\r\n </div>\r\n }\r\n }\r\n\r\n @if (address) {\r\n <div class=\"address\">\r\n <cura-icon name=\"geotag\" color=\"neutral-dark\" size=\"20\"></cura-icon>\r\n\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-black\" margin-block=\"0\" line-height=\"130%\">\r\n <span class=\"cura-paragraph-weight\"> {{ address }} • </span>\r\n <a rdsitelink href=\"https://www.google.com/maps?q={{ address }}\">Mapa</a>\r\n </cura-paragraph>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"rdsite-card-unidade-planos-convenios-ctas\">\r\n @if (cta2 && cta2.label && cta2.link) {\r\n <cura-button type=\"button\" size=\"medium\" icon-name=\"calendar\" color=\"accent\" rdsitelink [href]=\"cta2.link\">\r\n {{ cta2.label }}\r\n </cura-button>\r\n }\r\n\r\n @if (cta1 && cta1.label && cta1.link) {\r\n <cura-button type=\"button\" size=\"medium\" icon-name=\"exam\" color=\"accent\" rdsitelink [href]=\"cta1.link\">\r\n {{ cta1.label }}\r\n </cura-button>\r\n }\r\n </div>\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, OnChanges, Output } from '@angular/core';\r\nimport { CuraService } from '../../../services';\r\nimport { RdsiteLinkDirective } from '../../../directives';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-expandable-card',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './expandable-card.component.html',\r\n styleUrls: ['./expandable-card.component.scss'],\r\n})\r\nexport class ExpandableCardComponent implements OnChanges {\r\n @Input() opened = false;\r\n @Input() label: string = '';\r\n @Input() link: string = '';\r\n @Input() badgeLabel: string = '';\r\n @Input() openIcon: string = 'plus';\r\n @Input() closeIcon: string = 'minus';\r\n @Input() disabled = false;\r\n\r\n @Output() toggle: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-base': this.curaService.getColor('neutral-base'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--color-one-dark': this.curaService.getColor('primary-dark'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n @HostBinding('class') classes: string[] = [];\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n\r\n ngOnChanges(): void {\r\n this.checkDisabledCard();\r\n }\r\n\r\n toggleCard() {\r\n this.opened = !this.opened;\r\n this.toggle.emit(this.opened);\r\n }\r\n\r\n checkDisabledCard() {\r\n this.classes = this.disabled ? ['disabled'] : [];\r\n }\r\n}\r\n","@if (label) {\r\n <div class=\"card-header\" [ngClass]=\"{ noBadge: !badgeLabel }\" (click)=\"toggleCard()\">\r\n @if (link && label) {\r\n <a rdsitelink class=\"card-link\" [href]=\"link\">\r\n {{ label }}\r\n <cura-icon name=\"arrowRight\" color=\"primary-dark\" size=\"16\"></cura-icon>\r\n </a>\r\n }\r\n\r\n @if (badgeLabel) {\r\n <cura-badge-pill type=\"solid\" color=\"primary\">\r\n {{ badgeLabel }}\r\n </cura-badge-pill>\r\n }\r\n\r\n <cura-icon [attr.name]=\"opened ? closeIcon : openIcon\" color=\"primary-dark\" size=\"20\"></cura-icon>\r\n </div>\r\n\r\n <div class=\"card-content\" [ngClass]=\"{ opened: opened }\">\r\n <ng-content></ng-content>\r\n </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../directives';\r\nimport { CuraService } from '../../../services';\r\nimport { ContentBanner } from '../../../models/content-banner.model';\r\nimport { ImageComponent } from '../../image/image.component';\r\n\r\n@Component({\r\n selector: 'rdsite-content-banner',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, ImageComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './content-banner.component.html',\r\n styleUrls: ['./content-banner.component.scss'],\r\n})\r\nexport class ContentBannerComponent {\r\n @Input() content: ContentBanner | null = null;\r\n @Output() ctaClick: EventEmitter<{ text: string; link: string }> = new EventEmitter<{ text: string; link: string }>();\r\n\r\n @HostBinding('style') get styleBinding() {\r\n return {\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--color-one-lighter': this.curaService.getColor('primary-lighter', 0.5),\r\n };\r\n }\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n onCtaClick(text: string, link: string) {\r\n this.ctaClick.emit({ text, link });\r\n }\r\n}\r\n","@if (content?.title) {\r\n <cura-heading level=\"4\" weight=\"bold\" color=\"neutral-purewhite\" margin-block=\"0\">\r\n {{ content?.title }}\r\n </cura-heading>\r\n}\r\n\r\n@if (content?.text) {\r\n <cura-paragraph color=\"neutral-purewhite\" margin-block=\"0\">\r\n {{ content?.text }}\r\n </cura-paragraph>\r\n}\r\n\r\n@if (content?.info?.length) {\r\n <div class=\"info\" data-testid=\"_content-banner-info\">\r\n @for (item of content?.info || []; track $index) {\r\n @if (item.text) {\r\n <a [ngClass]=\"{ disabled: !item.link }\" rdsitelink [href]=\"item.link || ''\">\r\n @if (item.icon) {\r\n <cura-icon [name]=\"item.icon\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n }\r\n {{ item.text }}\r\n </a>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n@if (content?.cta?.text && content?.cta?.link) {\r\n <cura-button\r\n (click)=\"onCtaClick(content?.cta?.text || '', content?.cta?.link || '')\"\r\n size=\"large\"\r\n type=\"button\"\r\n color=\"accent\"\r\n [attr.icon-name]=\"content?.cta?.icon || ''\"\r\n [href]=\"content?.cta?.link\"\r\n target=\"_self\"\r\n >\r\n {{ content?.cta?.text }}\r\n </cura-button>\r\n}\r\n\r\n@if (content?.image) {\r\n <rdsite-image [imageDefaultSrc]=\"content?.image.url\" [imageWebpSrc]=\"content?.image?.webp_url\" [title]=\"content?.image.title\" [alt]=\"content?.image.alt\">\r\n </rdsite-image>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-pagination',\r\n standalone: true,\r\n imports: [CommonModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './pagination.component.html',\r\n styleUrl: './pagination.component.scss',\r\n})\r\nexport class PaginationComponent {\r\n @Input() totalPages!: number;\r\n @Input() activePage!: number;\r\n @Input() perPage: number = 10;\r\n @Input() perPageOptions = [10, 30, 50];\r\n @Input() customStyle: { [key: string]: string } = {};\r\n @Input() containerClass = true;\r\n @Input() darkMode: boolean = false;\r\n\r\n @Output() pageChange: EventEmitter<number> = new EventEmitter();\r\n @Output() perPageChange: EventEmitter<number> = new EventEmitter();\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--font-family': this.curaService.getFontFamily(''),\r\n '--primary-base': this.curaService.getColor('primary-base'),\r\n '--primary-dark': this.curaService.getColor('primary-dark'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-light': this.curaService.getColor('neutral-light'),\r\n '--neutral-dark': this.curaService.getColor('neutral-dark'),\r\n };\r\n\r\n constructor(private readonly curaService: CuraService) {}\r\n\r\n next() {\r\n if (this.activePage < this.totalPages) {\r\n this.pageChange.emit(this.activePage + 1);\r\n }\r\n }\r\n\r\n prev() {\r\n if (this.activePage > 1) {\r\n this.pageChange.emit(this.activePage - 1);\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"rdsite-pagination\"\r\n [ngClass]=\"{ 'rdsite-container': containerClass, 'dark-mode': darkMode }\"\r\n [style]=\"customStyle\"\r\n data-testid=\"_rdsite-rdsite-pagination\"\r\n>\r\n @if (totalPages && totalPages > 1) {\r\n <nav class=\"rdsite-pagination-nav\" aria-label=\"Pagination nav\">\r\n <button (click)=\"prev()\" type=\"button\" title=\"Página anterior\" class=\"button-link\" [attr.disabled]=\"activePage === 1 ? true : null\">\r\n <cura-icon\r\n name=\"arrowLeftCircle\"\r\n size=\"24\"\r\n [attr.color]=\"activePage === 1 ? (darkMode ? 'primary-base' : 'neutral-dark') : darkMode ? 'neutral-purewhite' : 'primary-base'\"\r\n >\r\n </cura-icon>\r\n </button>\r\n\r\n <span>Página {{ activePage }} - {{ totalPages }}</span>\r\n\r\n <button (click)=\"next()\" type=\"button\" title=\"Próxima página\" class=\"button-link\" [attr.disabled]=\"activePage === totalPages ? true : null\">\r\n <cura-icon\r\n name=\"arrowRightCircle\"\r\n size=\"24\"\r\n [attr.color]=\"activePage === totalPages ? (darkMode ? 'primary-base' : 'neutral-dark') : darkMode ? 'neutral-purewhite' : 'primary-base'\"\r\n >\r\n </cura-icon>\r\n </button>\r\n </nav>\r\n }\r\n\r\n @if (perPageOptions.length) {\r\n <div class=\"rdsite-pagination-pp-options\" data-testid=\"_rdsite-rdsite-pagination-pp-options\">\r\n <span>Resultados por página</span>\r\n\r\n <div class=\"rdsite-pagination-pp-options-controls\" data-testid=\"_rdsite-rdsite-pagination-pp-options-controls\">\r\n @for (option of perPageOptions; let i = $index; track option) {\r\n <button\r\n type=\"button\"\r\n (click)=\"perPageChange.emit(option)\"\r\n [attr.disabled]=\"option === perPage ? true : null\"\r\n title=\"Exibir {{ option }} resultados por página.\"\r\n class=\"button-link\"\r\n >\r\n {{ option }}\r\n @if (i < perPageOptions.length - 1) {\r\n <span class=\"bar\">|</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, HostBinding, Inject, input, OnDestroy, OnInit, PLATFORM_ID, signal, ViewChild } from '@angular/core';\r\nimport { CuraService, YoutubeService } from '../../../services';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { YouTubePlayer, YouTubePlayerModule } from '@angular/youtube-player';\r\nimport { ImageComponent } from '../../image/image.component';\r\n\r\n@Component({\r\n selector: 'rdsite-testimonial-card',\r\n standalone: true,\r\n imports: [ImageComponent, YouTubePlayerModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './testimonial-card.component.html',\r\n styleUrls: ['./testimonial-card.component.scss'],\r\n})\r\nexport class TestimonialCardComponent implements OnInit, OnDestroy {\r\n type = input('image');\r\n image = input<any | null>(null);\r\n videoUrl = input('');\r\n text = input('');\r\n author = input('');\r\n position = input('');\r\n\r\n videoId = signal<string | null>('');\r\n\r\n platformBrowser = signal<any | null>(null);\r\n\r\n @ViewChild('youtubePlayer') youtubePlayer!: YouTubePlayer;\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--color-one-darker': this.curaService.getColor('primary-darker'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private readonly youtubeService: YoutubeService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {\r\n this.youtubeService.setScript();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.platformBrowser.set(isPlatformBrowser(this.platformId));\r\n\r\n if (this.type() === 'video' && this.videoUrl()) {\r\n this.getVideoId();\r\n }\r\n }\r\n\r\n getVideoId(): string {\r\n const params = new URLSearchParams(this.videoUrl().split('?')[1]);\r\n return params.get('v') || '';\r\n }\r\n\r\n stopVideo(): void {\r\n if (this.getVideoId() && this.youtubePlayer) {\r\n this.youtubePlayer.stopVideo();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.youtubeService.removeScript();\r\n }\r\n}\r\n","@if ((image() || getVideoId()) && text()) {\r\n @switch (type()) {\r\n @case ('image') {\r\n @if (image()) {\r\n <rdsite-image\r\n [imageWebpSrc]=\"image()?.webp_sizes?.['rdsl-card-unidades']\"\r\n [imageDefaultSrc]=\"image()?.sizes?.['rdsl-card-unidades']\"\r\n [mimeType]=\"image()?.mime_type\"\r\n [alt]=\"image()?.alt\"\r\n >\r\n </rdsite-image>\r\n }\r\n }\r\n @case ('video') {\r\n @if (getVideoId() && platformBrowser()) {\r\n <youtube-player #youtubePlayer [videoId]=\"getVideoId()\" [disablePlaceholder]=\"true\"></youtube-player>\r\n }\r\n }\r\n }\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"26\" viewBox=\"0 0 32 26\" fill=\"none\">\r\n <path\r\n d=\"M14.375 3.3125C12.9062 4.15625 11.7188 4.89062 10.8125 5.51562C9.90625 6.10938 8.98438 6.90625 8.04688 7.90625C7.17188 8.84375 6.5 9.82812 6.03125 10.8594C5.5625 11.8906 5.23438 13.2188 5.04688 14.8438H7.29688C9.23438 14.8438 10.75 15.3281 11.8438 16.2969C12.9688 17.2344 13.5312 18.625 13.5312 20.4688C13.5312 21.7812 13.0312 23.0156 12.0312 24.1719C11.0625 25.2969 9.71875 25.8594 8 25.8594C5.3125 25.8594 3.39062 24.9844 2.23438 23.2344C1.07812 21.4531 0.5 19.125 0.5 16.25C0.5 14.2188 0.9375 12.375 1.8125 10.7188C2.6875 9.03125 3.75 7.53125 5 6.21875C6.28125 4.875 7.64062 3.73438 9.07812 2.79688C10.5156 1.85938 11.7188 1.09375 12.6875 0.5L14.375 3.3125ZM31.7188 3.3125C30.25 4.15625 29.0625 4.89062 28.1562 5.51562C27.25 6.10938 26.3281 6.90625 25.3906 7.90625C24.4844 8.875 23.7969 9.875 23.3281 10.9062C22.8906 11.9062 22.5781 13.2188 22.3906 14.8438H24.6406C26.5781 14.8438 28.0938 15.3281 29.1875 16.2969C30.3125 17.2344 30.875 18.625 30.875 20.4688C30.875 21.7812 30.375 23.0156 29.375 24.1719C28.4062 25.2969 27.0625 25.8594 25.3438 25.8594C22.6562 25.8594 20.7344 24.9844 19.5781 23.2344C18.4219 21.4531 17.8438 19.125 17.8438 16.25C17.8438 14.2188 18.2812 12.375 19.1562 10.7188C20.0312 9.03125 21.0938 7.53125 22.3438 6.21875C23.625 4.875 24.9844 3.73438 26.4219 2.79688C27.8594 1.85938 29.0625 1.09375 30.0312 0.5L31.7188 3.3125Z\"\r\n fill=\"#202122\"\r\n />\r\n </svg>\r\n\r\n <div class=\"testimonials-text\">\r\n <q class=\"quote\" [innerHTML]=\"text()\" (click)=\"stopVideo()\"></q>\r\n\r\n @if (author()) {\r\n <span class=\"author\">{{ author() }}</span>\r\n }\r\n\r\n @if (position()) {\r\n <span class=\"position\">\r\n {{ position() }}\r\n </span>\r\n }\r\n </div>\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, HostBinding, input, OnInit, QueryList, signal, ViewChild, ViewChildren } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig, NguCarouselDefDirective, NguItemComponent } from '@ngu/carousel';\r\nimport { CuraService, NguCarouselService } from '../../../services';\r\nimport { TestimonialCardComponent } from '../../cards/testimonial-card/testimonial-card.component';\r\n\r\n@Component({\r\n selector: 'rdsite-testimonials-carousel',\r\n standalone: true,\r\n imports: [NguCarousel, NguItemComponent, NguCarouselDefDirective, TestimonialCardComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './testimonials-carousel.component.html',\r\n styleUrls: ['./testimonials-carousel.component.scss'],\r\n})\r\nexport class TestimonialsCarouselComponent implements OnInit {\r\n title = input('');\r\n items = input<any[] | null>([]);\r\n\r\n carouselTestimonialsConfig = signal<NguCarouselConfig | null>(null);\r\n\r\n @ViewChild('carouselTestimonials', { static: true }) carouselTestimonials!: NguCarousel<any[]>;\r\n @ViewChildren('testimonialCard') testimonialCards!: QueryList<TestimonialCardComponent>;\r\n\r\n @HostBinding('style') styleBinding = {\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n '--neutral-black': this.curaService.getColor('neutral-black'),\r\n '--font-family': this.curaService.getFontFamily(''),\r\n };\r\n\r\n constructor(\r\n private readonly curaService: CuraService,\r\n private nguService: NguCarouselService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.carouselTestimonialsConfig.set(\r\n this.nguService.customCarouselConfig({\r\n grid: { xs: 1, sm: 1, md: 1, lg: 1.1, all: 0 },\r\n gridBreakpoints: { sm: 360, md: 768, lg: 1024, xl: 1920 },\r\n loop: true,\r\n interval: {\r\n timing: 600000,\r\n initialDelay: 600000,\r\n },\r\n }),\r\n );\r\n }\r\n\r\n nextSlide(): void {\r\n this.nguService.scrollRight(this.carouselTestimonials);\r\n }\r\n\r\n prevSlide(): void {\r\n this.nguService.scrollLeft(this.carouselTestimonials);\r\n }\r\n\r\n moveTo(pointerNumber: number): void {\r\n this.nguService.moveTo(this.carouselTestimonials, pointerNumber);\r\n }\r\n\r\n stopVideos(): void {\r\n this.testimonialCards.forEach((card) => {\r\n if (card.type() === 'video') {\r\n card.stopVideo();\r\n }\r\n });\r\n }\r\n}\r\n","@if (title()) {\r\n <h3 class=\"testimonials-carousel-title\">{{ title() }}</h3>\r\n}\r\n\r\n<ngu-carousel #carouselTestimonials [inputs]=\"carouselTestimonialsConfig()!\" [dataSource]=\"items()\" (onMove)=\"stopVideos()\">\r\n <ngu-item *nguCarouselDef=\"let item\">\r\n <rdsite-testimonial-card\r\n #testimonialCard\r\n [type]=\"item.type\"\r\n [image]=\"item.image\"\r\n [videoUrl]=\"item.video_url\"\r\n [text]=\"item.text\"\r\n [author]=\"item.author\"\r\n [position]=\"item.role\"\r\n >\r\n </rdsite-testimonial-card>\r\n </ngu-item>\r\n</ngu-carousel>\r\n\r\n<div class=\"testimonials-carousel-controls\">\r\n <cura-icon name=\"arrowLeftCircle\" size=\"40\" color=\"primary-base\" (click)=\"prevSlide()\"></cura-icon>\r\n\r\n <cura-icon name=\"arrowRightCircle\" size=\"40\" color=\"primary-base\" (click)=\"nextSlide()\"></cura-icon>\r\n\r\n <ul>\r\n @for (item of carouselTestimonials.pointNumbers; track i; let i = $index) {\r\n <li [class.active]=\"i === carouselTestimonials.activePoint\" (click)=\"moveTo(i)\"></li>\r\n }\r\n </ul>\r\n</div>\r\n","// Components\r\nexport * from './footer/footer.component';\r\nexport * from './header/header.component';\r\nexport * from './header/components/header-action-menu/header-action-menu.component';\r\nexport * from './header/components/header-aux-menu/header-aux-menu.component';\r\nexport * from './header/components/header-aux-menu-container/header-aux-menu-container.component';\r\nexport * from './header/components/header-aux-menu-item/header-aux-menu-item.component';\r\nexport * from './header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component';\r\nexport * from './header/components/header-logo/header-logo.component';\r\nexport * from './header/components/header-main-menu/header-main-menu.component';\r\nexport * from './header/components/header-main-menu-item/header-main-menu-item.component';\r\nexport * from './header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component';\r\nexport * from './header/components/header-side-menu/header-side-menu.component';\r\nexport * from './header/components/header-side-menu-item/header-side-menu-item.component';\r\nexport * from './load-screen/load-screen.component';\r\nexport * from './overlay/overlay.component';\r\nexport * from './search/search.component';\r\nexport * from './side-ctas/side-ctas.component';\r\nexport * from './side-ctas/components/side-ctas-bottom/side-ctas-bottom.component';\r\nexport * from './side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component';\r\nexport * from './side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component';\r\nexport * from './side-ctas/components/side-ctas-right-top/side-ctas-right-top.component';\r\nexport * from './whatsapp/whatsapp.component';\r\nexport * from './algolia-dropdown/algolia-dropdown.component';\r\nexport * from './error/error.component';\r\nexport * from './error/error-service/error.service';\r\nexport * from './cta-wrapper/cta-wrapper.component';\r\nexport * from './page-header/page-header.component';\r\nexport * from './breadcrumbs/breadcrumbs.component';\r\nexport * from './page-template-sidebar/page-template-sidebar.component';\r\nexport * from './filters/filter-generic/filter-generic.component';\r\nexport * from './filters/filter-planos-convenios/filter-planos-convenios.component';\r\nexport * from './filter-letter-and-terms/filter-letter-and-terms.component';\r\nexport * from './section-navigation/section-navigation.component';\r\nexport * from './image/image.component';\r\nexport * from './cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component';\r\nexport * from './cards/expandable-card/expandable-card.component';\r\nexport * from './banner/content-banner/content-banner.component';\r\nexport * from './pagination/pagination.component';\r\nexport * from './cards/testimonial-card/testimonial-card.component';\r\nexport * from './carousels/testimonials-carousel/testimonials-carousel.component';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatPhone } from '../../helpers/formatPhone.func';\r\n\r\n@Pipe({\r\n name: 'phone',\r\n standalone: true,\r\n})\r\nexport class PhonePipe implements PipeTransform {\r\n transform(phone: string): string {\r\n return formatPhone(phone);\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { LogService, SiteBackendService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private readonly logService: LogService,\r\n private readonly siteBackendService: SiteBackendService,\r\n @Inject(PLATFORM_ID) private readonly platformId: object,\r\n ) {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n this.logService.logMsg(`REQUEST ERROR => ${req.method} ${req.url}`, 'ERROR_INTERCEPTOR');\r\n\r\n if (isPlatformBrowser(this.platformId) && !req.url.includes('/log/error')) {\r\n const errorMessage = typeof error === 'string' ? error : error instanceof Error ? error.message : JSON.stringify(error);\r\n\r\n this.siteBackendService.logClientError(errorMessage, window.location.href, req.urlWithParams).subscribe();\r\n }\r\n\r\n return throwError(() => error);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Observable, tap } from 'rxjs';\r\nimport { LogService } from '../services';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { differenceInMilliseconds } from 'date-fns';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogInterceptor implements HttpInterceptor {\r\n constructor(private log: LogService) {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const requestId = uuidv4();\r\n const startTime = Date.now();\r\n this.log.logMsg(`REQUEST ${requestId} => ${req.method} ${req.url}`, 'INTERCEPTOR');\r\n\r\n return next.handle(req).pipe(\r\n tap((response) => {\r\n const res = response as HttpResponse<any>;\r\n if (res?.status) {\r\n const elapsedTime = differenceInMilliseconds(Date.now(), startTime);\r\n this.log.logMsg(\r\n `RESPONSE ${requestId} => ${req.method} ${req.url} | Duração: ${elapsedTime}ms | Status: ${res.status} - ${res.statusText} | Body: ${!!res.body}`,\r\n 'INTERCEPTOR',\r\n );\r\n }\r\n }),\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of site-front-end-lib\r\n */\r\n\r\n// Components\r\nexport * from './lib/components';\r\n\r\n// Directives\r\nexport * from './lib/directives';\r\n\r\n// Pipes\r\nexport * from './lib/pipes';\r\n\r\n//Services\r\nexport * from './lib/services';\r\n\r\n// Interceptors\r\nexport * from './lib/interceptors';\r\n\r\n// Helpers\r\nexport * from './lib/helpers';\r\n\r\n// Enums\r\nexport * from './lib/enums';\r\n\r\n// Tokens\r\nexport * from './lib/tokens/CuraApi';\r\nexport * from './lib/tokens/express.tokens';\r\nexport * from './lib/tokens/LibConfig';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.PhoneService","i3.RdsitePhoneModalDirective","i1","i2","i1.HttpClientService","i2.LogService","i1.MapBoxService","i4","i1.CuraService","i2.HeaderService","i3","i1.AlgoliaSearchApiService","i1.NguCarouselService","uuidv4","i1.LogService"],"mappings":"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"}