@rededor/site-front-end-lib 0.0.38 → 0.0.40

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/tokens/LibConfig.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/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/modal.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/phone/phone.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/components/footer/components/footer-disclaimer/footer-disclaimer.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-disclaimer/footer-disclaimer.component.html","../../../projects/site-front-end-lib/src/lib/directives/rdsite-click-outside/rdsite-click-outside.directive.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/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/components/footer/components/footer-menu-item/footer-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-menu-item/footer-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-menu/footer-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-menu/footer-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-social-medias/footer-social-medias.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-social-medias/footer-social-medias.component.html","../../../projects/site-front-end-lib/src/lib/components/footer/helpers/footerTheme.func.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/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-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/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-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-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/services/algolia-search-api/algolia-search-api.service.ts","../../../projects/site-front-end-lib/src/lib/components/algolia/algolia.component.ts","../../../projects/site-front-end-lib/src/lib/components/algolia/algolia.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/enums/Estados.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumDoencaTaxonomy.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/RdsiteModalDrawerComponentStyle.enum.ts","../../../projects/site-front-end-lib/src/public-api.ts","../../../projects/site-front-end-lib/src/rededor-site-front-end-lib.ts"],"sourcesContent":["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\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 // 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","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","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\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 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';\nimport { Inject, Injectable, OnDestroy, Optional, PLATFORM_ID } from '@angular/core';\nimport CuraAPI from '@rededor/cura/dist/types/api/cura-api';\nimport { Subscription, fromEvent, startWith } from 'rxjs';\nimport { LogService } from '../log/log.service';\nimport { IconCuraDefaultType } from '../../enums/IconCuraDefaultType.enum';\nimport { SSR_CURA_API } from '../../tokens/CuraApi';\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CuraService implements OnDestroy {\n private curaAPISubscription: Subscription | null = null;\n private curaApi: CuraAPI | null = null;\n\n constructor(\n private log: LogService,\n @Inject(PLATFORM_ID) private platformId: object,\n @Inject(DOCUMENT) private document: Document,\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\n @Optional() @Inject(SSR_CURA_API) private ssrCuraAPI: any,\n ) {\n this.curaInit();\n }\n\n curaInit() {\n if (!this.curaAPISubscription) {\n this.curaAPISubscriptionInit();\n }\n }\n\n private curaAPISubscriptionInit() {\n if (this.document.defaultView) {\n if (isPlatformServer(this.platformId)) {\n this.injectCuraAPI();\n }\n this.curaAPISubscription = fromEvent(this.document.defaultView, 'CuraAPIReady')\n .pipe(\n startWith({\n detail: { api: (this.document.defaultView as any)?.CuraAPI },\n }),\n )\n .subscribe({\n next: (event) => {\n this.curaApi = (event as CustomEvent)?.detail?.api as CuraAPI;\n },\n error: (error) => {\n this.log.logMsg(JSON.stringify(error), 'ERROR');\n },\n });\n }\n }\n\n private injectCuraAPI() {\n if (this.document.defaultView && !(this.document.defaultView as any)['CuraAPI']) {\n Object.defineProperty(this.document.defaultView, 'CuraAPI', {\n value: this.ssrCuraAPI,\n });\n }\n }\n\n loadTheme(theme: string) {\n this.curaApi?.theme?.load(theme);\n }\n\n getColor(colorWithDepth: string): string | null {\n return this.curaApi?.theme?.colors.getColor(colorWithDepth) ?? null;\n }\n\n getSpacing(): string | null {\n return this.curaApi?.theme.spacing.getSpacing() ?? null;\n }\n\n getFontFamily(type: string): string | null {\n return this.curaApi?.theme.fonts.getFamily(type) ?? null;\n }\n\n getFontWeights(): { [alias: string]: string } {\n return this.curaApi?.theme.fonts.getWeights() ?? {};\n }\n\n getFontSize(): string {\n return this.curaApi?.theme.fonts.getSize() ?? '';\n }\n\n getFontColor(): string {\n return this.curaApi?.theme.fonts.getColor() ?? '';\n }\n\n getCuraIconName(icon: string): string {\n if (IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType]) {\n return IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType];\n } else {\n return this.getCuraSystemIconName(icon);\n }\n }\n\n private getCuraSystemIconName(icon: string): string {\n if (this.libConfig.iconsetDefaultList?.includes(icon)) return icon;\n return '';\n }\n\n ngOnDestroy() {\n this.curaAPISubscription?.unsubscribe();\n }\n}\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 { Injectable, TemplateRef } from '@angular/core';\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\n\nexport abstract class AbstractModalComponent {\n abstract id: string;\n abstract modalTitle: string | null;\n abstract modalHeader: TemplateRef<any> | null;\n abstract modalContent: TemplateRef<any> | null;\n abstract modalContentContext: Record<string, any> | null;\n abstract modalActions: TemplateRef<any> | null;\n abstract componentStyle: any;\n abstract modal: HTMLDialogElement;\n abstract open(): void;\n abstract close(): void;\n abstract reset(): void;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n reference: AbstractModalComponent | null = null;\n defaultPhoneModal!: TemplateRef<any>;\n\n open() {\n this.reference?.open();\n }\n\n setReference(element: AbstractModalComponent) {\n this.reference = element;\n }\n\n setHeader(header: TemplateRef<any>) {\n if (!this.reference) return;\n this.reference.modalHeader = header;\n }\n\n setTitle(title: string) {\n if (!this.reference) return;\n this.reference.modalTitle = title;\n }\n\n setContent(content: TemplateRef<any>, context: Record<string, any> = {}) {\n if (!this.reference) return;\n this.reference.modalContent = content;\n this.reference.modalContentContext = context;\n }\n\n setActions(actions: TemplateRef<any>) {\n if (!this.reference) return;\n this.reference.modalActions = actions;\n }\n\n setStyle(style: RdsiteModalComponentStyle) {\n if (!this.reference) return;\n this.reference.componentStyle = style;\n }\n\n setDefaultPhoneModal(modal: TemplateRef<any>) {\n this.defaultPhoneModal = modal;\n }\n\n close() {\n this.reference?.close();\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { RdsiteModalDrawerComponentStyle } from '../../enums';\n\nexport abstract class AbstractModalDrawerComponent {\n abstract sheet: HTMLElement;\n abstract sheetContents: HTMLElement;\n abstract draggableArea: HTMLElement;\n abstract sheetHeight: number;\n abstract dragPosition: number;\n abstract maxHeight: number;\n abstract closeHeight: number;\n abstract rdsiteModalComponentStyle: any;\n abstract id: string;\n abstract modalContent: ElementRef;\n abstract componentStyle: any;\n abstract modal: HTMLDialogElement;\n abstract setSheetHeight(value: number): void;\n abstract setIsSheetShown(isShown: boolean): void;\n abstract openSheet(): void;\n abstract closeSheet(): void;\n abstract touchPosition(event: any): void;\n abstract onDragStart(event: any): void;\n abstract onDragMove(event: any): void;\n abstract onDragEnd(): void;\n abstract reset(): void;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalDrawerService {\n reference: AbstractModalDrawerComponent | null = null;\n\n open() {\n this.reference?.openSheet();\n }\n\n setReference(element: AbstractModalDrawerComponent) {\n this.reference = element;\n }\n\n setContent(content: ElementRef) {\n if (!this.reference) return;\n this.reference.modalContent = content;\n }\n\n setStyle(style: RdsiteModalDrawerComponentStyle) {\n if (!this.reference) return;\n this.reference.componentStyle = style;\n }\n\n setHeight(value: number) {\n if (!this.reference) return;\n this.reference.maxHeight = value;\n }\n\n close() {\n this.reference?.closeSheet();\n }\n}\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 } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PhoneService {\n private telRegex = /tel:/;\n\n public phoneModalIsAllowed: boolean = true; // variavel utilizada para permitir/bloquear o modal de telefone\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n /** Verifica se o 'href' é de telefone e se a janela está em tamanho desktop */\n public isPhoneModal(href: string) {\n const width = this.document.defaultView?.innerWidth ?? 0;\n const SMALL_BREAKPOINT = 718;\n return this.telRegex.test(href) && width > SMALL_BREAKPOINT;\n }\n}\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 { catchError, Observable, of, timeout } 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 { LogService } from '../log/log.service';\r\n\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\n\r\nimport * as unidadesWpMock from '../../json/unidades.json';\r\nimport * as unidadesOncoWpMock from '../../json/unidadesOnco.json';\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 private log: LogService,\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 getUnidades(params?: RDSLUnidadesParams): Observable<RDSLUnidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidadesWP(): Observable<WpUnidadeSite[]> {\r\n return this.httpClientService.get<WpUnidadeSite[]>(`${this.siteApiUrl}unidades/wp`).pipe(\r\n timeout(1500),\r\n catchError((err) => {\r\n this.log.logMsg(JSON.stringify(err), 'ERROR');\r\n this.log.logMsg('Utilizando json de unidades wordpress.', 'FALLBACK');\r\n return of(Array.from(unidadesWpMock) as unknown as WpUnidadeSite[]);\r\n }),\r\n );\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`).pipe(\r\n timeout(1500),\r\n catchError((err) => {\r\n this.log.logMsg(JSON.stringify(err), 'ERROR');\r\n this.log.logMsg('Utilizando json de unidades onco wordpress.', 'FALLBACK');\r\n return of(Array.from(unidadesOncoWpMock) as unknown as WpUnidadeOnco[]);\r\n }),\r\n );\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 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 getExamesApiDados(): Observable<ExameApiDados[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/api-dados`);\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 // 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","import { Inject, Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { DOCUMENT, Location } from '@angular/common';\n\nimport * as he from 'he';\n\nimport { SocialMetaProperties } from '../../models/social-meta-properties.model';\nimport { BreadcrumbItem } from '../../models/breadcrumb/breadcrumb-item.model';\nimport { BreadcrumbJsonItem } from '../../models/breadcrumb/breadcrumb-json-item.model';\nimport { SeoData } from '../../models/seo/seo-data.model';\nimport { SeoUnidade } from '../../models/seo/seo-unidade.model';\nimport { WpPost } from '../../models/wordpress/post/post.model';\nimport { getSiteUrl, removeHtmlTags } from '../../helpers';\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SeoService {\n public separator = ' - ';\n public defaultTitle = 'Rede D’Or';\n public activeDescription!: string;\n public sameAs = [\n 'https://www.facebook.com/rededor/',\n 'https://www.instagram.com/rededor_oficial/',\n 'https://www.linkedin.com/company/rededor-saoluiz',\n 'https://twitter.com/rededor',\n ];\n public twitterUser = '@rededor';\n\n private canonicalTag!: HTMLLinkElement;\n private jsonTag!: HTMLScriptElement;\n private jsonTagId = 'seoJSON';\n private breadcrumbsJsonTag!: HTMLScriptElement;\n private breadcrumbsJsonTagId = 'breadcrumbsJSON';\n\n public unidade: any = null;\n public unidadeName: string = '';\n public unidadePath: string = '';\n public unidadeSlug: string = '';\n\n constructor(\n private title: Title,\n private meta: Meta,\n private location: Location,\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n public setFullSeo(data: SeoData) {\n this.setTitle(data.title.text, !!data.title.sub);\n this.setDescription(data.description);\n this.setCanonicalHref(data.canonical);\n this.setPageJson();\n this.setSocialTags(data.socialTags);\n }\n\n /**\n * Define tag description da página\n * @param content conteúdo da descrição <string>\n */\n public setDescription(content: string): SeoService {\n const descTag = this.meta.getTag(\"name='description'\");\n if (content) {\n content = he.decode(content);\n content = removeHtmlTags(content);\n } else {\n content = '';\n }\n this.activeDescription = content;\n const tagContent = { name: 'description', content };\n if (descTag) {\n this.meta.updateTag(tagContent);\n } else {\n this.meta.addTag(tagContent);\n }\n return this;\n }\n\n /**\n * Define meta tags para a página\n * @param tag nome da tag meta\n * @param content conteúdo da tag meta\n * @param type tipo de tag meta\n */\n public setMetaTag(tag: string, content: string, type = 'name') {\n const metatag = this.meta.getTag(`${type}='${tag}'`);\n content = he.decode(content);\n content = removeHtmlTags(content);\n const tagContent = {\n [type]: tag,\n content,\n };\n if (!metatag) {\n this.meta.addTag(tagContent);\n } else {\n this.meta.updateTag(tagContent);\n }\n return this;\n }\n\n /**\n * Remove meta tags da página\n * @param tag nome da tag meta\n * @param content conteúdo da tag meta\n * @param attr atributo da tag meta\n * @param type tipo de tag meta\n */\n public removeTag(tag: string, content: string, attr: string, type = 'name') {\n const metatag = this.meta.getTag(`${type}='${tag}'`);\n if (metatag) {\n this.meta.removeTag(`${attr}=${content}`);\n }\n return this;\n }\n\n /**\n * Define meta tags para Facebook\n * @param title título para o facebook\n * @param description descrição para o facebook\n * @param url url para definição do facebook\n * @param img imagem para definição no facebook\n */\n public setMetaFacebook(title: string, description: string, url: string, img: string | null = null) {\n this.setMetaTag('og:url', url, 'property');\n this.setMetaTag('og:title', title, 'property');\n this.setMetaTag('og:description', description, 'property');\n this.setMetaTag('og:type', 'website', 'property');\n this.setMetaTag('og:image', img ?? '', 'property');\n }\n\n /**\n * Define meta tags para Twitter\n * @param title título para o twitter\n * @param description descrição para o twitter\n * @param url url para o twitter\n * @param img imagem para definição no twitter\n */\n public setMetaTwitter(title: string, description: string, url: string, img: string | null = null) {\n this.setMetaTag('twitter:site', url, 'name');\n this.setMetaTag('twitter:title', title, 'name');\n this.setMetaTag('twitter:description', description, 'name');\n this.setMetaTag('twitter:image', img ?? '', 'name');\n }\n\n /**\n * Define tags de redes sociais (Twitter e Open Graph)\n * @param properties\n */\n setSocialTags(properties?: SocialMetaProperties) {\n const pagePath = this.location.path();\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n let defaultProperties: SocialMetaProperties = {\n twitterCard: 'summary',\n twitterSite: this.twitterUser,\n type: 'website',\n title: this.getTitle(),\n description: this.activeDescription || '',\n url: `${siteurl}${pagePath}`,\n image: this.libConfig?.logoPath ? `${siteurl}${this.libConfig.logoPath}` : 'https://www.rededorsaoluiz.com.br/assets/imgs/logo-rededor-blue.png',\n };\n if (properties) {\n defaultProperties = { ...defaultProperties, ...properties };\n }\n this.setMetaTag('twitter:card', defaultProperties.twitterCard || '', 'name')\n .setMetaTag('twitter:site', defaultProperties.twitterSite || '', 'name')\n .setMetaTag('og:type', defaultProperties.type || '', 'property')\n .setMetaTag('og:title', defaultProperties.title || '', 'property')\n .setMetaTag('og:description', defaultProperties.description || '', 'property')\n .setMetaTag('og:url', defaultProperties.url || '', 'property')\n .setMetaTag('og:image', defaultProperties.image || '', 'property');\n\n return this;\n }\n\n /**\n * Define título da página\n * @param title título da página <string>\n * @param sub Se é subsite acrescenta unidade <boolean>\n */\n public setTitle(title: string, sub = false) {\n if (title && title !== '') {\n title = he.decode(title);\n title = removeHtmlTags(title);\n if (sub) {\n title = he.decode(`${title}${this.separator}${this.unidadeName}`);\n }\n this.title.setTitle(title);\n }\n return this;\n }\n\n /** Obtem título atual da página */\n public getTitle(): string {\n return this.title.getTitle();\n }\n\n public set404Title(component: string = 'Default Component') {\n if (component && component !== '') {\n component = he.decode(component);\n component = removeHtmlTags(component);\n if (this.unidadeName) {\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\n }\n }\n const title = `Erro 404 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\n this.title.setTitle(title);\n return this;\n }\n\n /** Cria tag script para JSON de breadcrumbs */\n private createBreadcrumbsJSONTag(): HTMLScriptElement {\n const tag: HTMLScriptElement = this.document.createElement('script');\n tag.id = this.breadcrumbsJsonTagId;\n tag.type = 'application/ld+json';\n this.document.head.appendChild(tag);\n this.breadcrumbsJsonTag = tag;\n return tag;\n }\n\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\n private getBreadcrumbsJSONTag(): HTMLScriptElement {\n const elements = this.document.head.children;\n let i: number;\n for (i = 0; i < elements.length; i++) {\n const elem = elements[i] as HTMLScriptElement;\n if (elem && elem.id === this.breadcrumbsJsonTagId) {\n return elem;\n }\n }\n return this.createBreadcrumbsJSONTag();\n }\n\n /** Define o JSON de breadcrumbs da página */\n public setBreadcrumbsJson(items: BreadcrumbItem[]) {\n this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();\n const json = {\n '@context': 'http://schema.org',\n '@type': 'BreadcrumbList',\n itemListElement: this.getJsonBreadcrumbItems(items),\n };\n this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);\n return this;\n }\n\n /** Converte itens do breadcrumb em itens do JSON */\n private getJsonBreadcrumbItems(items: BreadcrumbItem[]): BreadcrumbJsonItem[] {\n const jsonItems = [\n {\n '@type': 'ListItem',\n position: 1,\n item: { '@id': this.getBreadcrumbItemUrl(['/']), name: he.encode('Página Inicial') },\n } as BreadcrumbJsonItem,\n ];\n items.forEach((item, i) => {\n const jsonItem: BreadcrumbJsonItem = {\n '@type': 'ListItem',\n position: i + 2,\n item: { '@id': this.getBreadcrumbItemUrl(item?.url || []), name: he.encode(item.label) },\n };\n jsonItems.push(jsonItem);\n });\n return jsonItems;\n }\n\n /**\n * Monta a url do item de breadcrumb proveniente do array de urls\n * ou do caminho da própria página, conforme caso do último item.\n */\n private getBreadcrumbItemUrl(url: string[]): string {\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n if (!url || url.length <= 0) {\n const pagePath = this.location.path();\n return `${siteurl}${pagePath}`;\n }\n url = url.filter((u) => u !== this.unidadePath);\n const unidadePath = this.getUnidadePath();\n const fullPath = `${unidadePath}/${url.join('/').replace(/^\\/?/, '')}`;\n return `${siteurl}${fullPath}`.replace(/\\/$/, '');\n }\n\n /** Cria tag script para o JSON de SEO */\n private createJSONTag(): HTMLScriptElement {\n const tag: HTMLScriptElement = this.document.createElement('script');\n tag.id = this.jsonTagId;\n tag.type = 'application/ld+json';\n this.document.head.appendChild(tag);\n this.jsonTag = tag;\n return tag;\n }\n\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\n private getJSONTag(): HTMLScriptElement {\n const elements = this.document.head.children;\n let i: number;\n for (i = 0; i < elements.length; i++) {\n const elem = elements[i] as HTMLScriptElement;\n if (elem && elem.id === this.jsonTagId) {\n return elem;\n }\n }\n return this.createJSONTag();\n }\n\n /** Define JSON para SEO somente quando no servidor */\n public setPageJson() {\n this.jsonTag = this.getJSONTag();\n const graph = [this.getOrgJson(), this.getWebsiteJson(), this.getWebpageJson()];\n const json = { '@context': 'http://schema.org', '@graph': graph };\n this.jsonTag.innerHTML = JSON.stringify(json);\n return this;\n }\n\n /** Obtem JSON da Organização */\n private getOrgJson() {\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n return {\n '@type': 'Organization',\n '@id': `${siteurl}#organization`,\n name: this.defaultTitle,\n keywords: this.libConfig?.keywords,\n url: `${siteurl}`,\n sameAs: this.sameAs,\n };\n }\n\n /** Obtem JSON do Website (portal, unidades, etc) */\n private getWebsiteJson() {\n const unidadePath = this.getUnidadePath();\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n return {\n '@type': 'WebSite',\n '@id': `${siteurl}${unidadePath}#website`,\n url: `${siteurl}${unidadePath}`,\n name: this.unidadeName,\n keywords: this.libConfig?.keywords,\n };\n }\n\n /** Obtem Json da página */\n private getWebpageJson() {\n const unidadePath = this.getUnidadePath();\n const siteURL = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n const pagePath = `${siteURL}${this.location.path()}`;\n const desc = this.activeDescription ? this.activeDescription : '';\n return {\n '@type': 'WebPage',\n '@id': `${pagePath}#webpage`,\n url: pagePath,\n inLanguage: 'pt-BR',\n name: this.getTitle(),\n isPartOf: { '@id': `${siteURL}${unidadePath}#website` },\n about: { '@id': `${siteURL}#organization` },\n description: desc,\n };\n }\n\n private getUnidadePath() {\n let unidadePath = '';\n if (this.unidade && this.unidadePath) {\n unidadePath = this.unidade?.path === '/' ? '' : this.unidadePath?.substring(0, this.unidadePath?.length - 1);\n }\n return unidadePath;\n }\n\n /**\n * Obtém a URL canônica da página.\n * @returns A URL canônica da página.\n */\n public getCanonicalHref(): string {\n if (!this.canonicalTag) {\n this.canonicalTag = this.getCanonicalTag();\n }\n return this.canonicalTag.href;\n }\n\n /** Cria tag para links canonicals no head */\n private createCanonicalTag(): HTMLLinkElement {\n const tag = this.document.createElement('link');\n tag.setAttribute('rel', 'canonical');\n this.document.head.appendChild(tag);\n tag.setAttribute('href', this.document.URL);\n this.canonicalTag = tag;\n return tag;\n }\n\n /** Retorna tag para link canonical existe ou cria se não houver. */\n private getCanonicalTag(): HTMLLinkElement {\n const elements = this.document.head.children;\n let i: number;\n for (i = 0; i < elements.length; i++) {\n const elem = elements[i] as HTMLLinkElement;\n if (elem && elem.tagName === 'LINK' && elem.rel === 'canonical') {\n return elem;\n }\n }\n return this.createCanonicalTag();\n }\n\n /**\n * Define link canonical da página\n * @param url url canonical\n */\n public setCanonicalHref(url?: string) {\n if (!this.canonicalTag) {\n this.canonicalTag = this.getCanonicalTag();\n }\n\n let path = this.location.path();\n if (!path.startsWith('/')) {\n path = `/${path}`;\n }\n\n const canonicalUrl = url && this.isCustomCanonical(url) ? url : `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${path}`;\n\n this.canonicalTag.setAttribute('href', canonicalUrl);\n return this;\n }\n\n /**\n * Verifica se a URL fornecida é um link canonical personalizado\n * @param url URL fornecida\n */\n public isCustomCanonical(url: string): boolean {\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n return url.startsWith(siteurl);\n }\n\n /**\n * Obtém uma url válida na aplicação proveniente de uma URL gerada\n * pelo plugin Yoast para canonical automático.\n * Ex.: https://wp.rededorsaoluiz.com.br/brasil/especialidades/cardiologia/\n * @param urlFromWpApi URL canonica gerada pelo Yoast Plugin.\n */\n toLocalCanonical(urlFromWpApi: string): string {\n const apiUrl = this.libConfig?.wpUrl ?? '';\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n const unidadeSlug = this.unidadeSlug;\n let converted = urlFromWpApi.replace(apiUrl, siteurl);\n if (unidadeSlug !== '/' && converted.includes(`/${unidadeSlug}/`)) {\n converted = converted.replace(`/${unidadeSlug}/`, `${this.unidadePath}`);\n }\n return converted;\n }\n\n getPostContent(post: WpPost): string {\n const content = post.acf['rdsl_post_content'] ? post.acf.rdsl_post_content.find((content: any) => content.acf_fc_layout === 'text_html') : null;\n return content?.content || post.content.rendered || '';\n }\n\n addArticleScript(post: WpPost, scriptName: string): void {\n const postContent = this.getPostContent(post);\n const postHeaderImage = post.acf['rdsl_post_header_img']\n ? {\n url: post.acf['rdsl_post_header_img'].url,\n width: post.acf['rdsl_post_header_img'].width,\n height: post.acf['rdsl_post_header_img'].height,\n }\n : null;\n\n const structuredData = {\n '@context': 'https://schema.org',\n '@type': 'Article',\n mainEntityOfPage: `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`,\n headline: post.title?.rendered,\n datePublished: post.date_gmt,\n publisher: {\n '@type': 'Organization',\n name: 'Rede D’Or',\n },\n description: post.title?.rendered,\n articleBody: removeHtmlTags(he.decode(postContent)),\n dateModified: post.modified_gmt,\n image: {\n '@type': 'ImageObject',\n url: postHeaderImage?.url || post.featured_media_path || '',\n height: postHeaderImage?.height || '',\n width: postHeaderImage?.width || '',\n },\n author: {\n '@type': 'Organization',\n name: 'Rede D’Or',\n },\n wordcount: postContent.split(' ').length,\n };\n\n const script = this.document.createElement('script');\n\n script.type = 'application/ld+json';\n script.id = scriptName;\n script.innerHTML = JSON.stringify(structuredData);\n\n this.document.head.appendChild(script);\n }\n\n removeArticleScript(scriptName: string): void {\n const script = this.document.getElementById(scriptName);\n script?.remove();\n }\n\n public setUnidade({ unidade = null, unidadeName = '', unidadePath = '', unidadeSlug = '' }: SeoUnidade) {\n this.unidade = unidade;\n this.unidadeName = unidadeName;\n this.unidadePath = unidadePath;\n this.unidadeSlug = unidadeSlug;\n }\n}\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(message?: 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(message = 'Redirecionado permanentemente'): this {\r\n if (this.response) {\r\n this.response.statusCode = 301;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nexport type HttpCacheDirective =\r\n | 'public'\r\n | 'private'\r\n | 'no-store'\r\n | 'no-cache'\r\n | 'must-revalidate'\r\n | 'no-transform'\r\n | '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';\n// import * as CryptoJS from 'crypto-js';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TransferStateService {\n private keys = new Map<string, StateKey<string>>();\n cryptoKey = '3c2d70ab27a420aca8cf4191611fa4ee';\n\n constructor(private readonly transferState: TransferState) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setKey(name: any, response: any | any[]) {\n return; // teste removendo transferstate\n // let key = this.keys.get(name);\n // if (!key) {\n // key = makeStateKey(name);\n // this.keys.set(name, key);\n // }\n // const jsonString = JSON.stringify(response);\n // const cryptedResponse = CryptoJS.AES.encrypt(jsonString, this.cryptoKey).toString();\n // this.transferState.set(key, cryptedResponse);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getKey(name: string, defaultValue: any | any[] = null): any | any[] {\n return null; // teste removendo transferstate\n // let key = this.keys.get(name);\n // if (!key) {\n // key = makeStateKey(name);\n // this.keys.set(name, key);\n // }\n // const cryptedData = this.transferState.get(key, defaultValue);\n // if (!cryptedData) {\n // return defaultValue;\n // }\n // try {\n // const bytes = CryptoJS.AES.decrypt(cryptedData, this.cryptoKey);\n // const decryptedResponseJson = bytes.toString(CryptoJS.enc.Utf8);\n // const decryptedResponse = JSON.parse(decryptedResponseJson);\n // return decryptedResponse;\n // } catch (error) {\n // return defaultValue;\n // }\n }\n\n remove(name: string) {\n let key = this.keys.get(name);\n if (!key) {\n key = makeStateKey(name);\n this.keys.set(name, key);\n }\n this.transferState.remove(key);\n }\n}\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\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 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 { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { PrivacyToolsService } from '../../../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-disclaimer',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './footer-disclaimer.component.html',\r\n styleUrl: './footer-disclaimer.component.scss',\r\n})\r\nexport class FooterDisclaimerComponent {\r\n @Input() currentYear: number = new Date().getFullYear();\r\n @Input() disclaimerText: string = '';\r\n @Output() footerPrivacyClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() footerCookieClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(public privacyTools: PrivacyToolsService) {}\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=\"rdsite-footer-disclaimer\">\r\n <div class=\"rdsite-footer-disclaimer-copy\">©{{ currentYear }} {{ disclaimerText }}</div>\r\n <ul class=\"rdsite-footer-disclaimer-links\">\r\n <li>\r\n <a\r\n href=\"https://dpo.privacytools.com.br/policy-view/DPO8r0aQk/1/aviso-de-privacidade/pt_BR\"\r\n target=\"_blank\"\r\n data-testid=\"_avisoPrivacidade\"\r\n (click)=\"footerPrivacyClicked($event)\"\r\n >\r\n Aviso de Privacidade\r\n </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","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","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}\r\n","export const formatPhone = (phone: string): string => {\n if (!phone) return '';\n\n const cleanPhone = phone.replace(/[^0-9]/gi, '');\n let formatedPhone = '';\n if (cleanPhone.length === 12) {\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (cleanPhone.length === 11) {\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (cleanPhone.length === 10) {\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (cleanPhone.length === 9) {\n formatedPhone = cleanPhone.replace(/(\\d{5})?(\\d{4})/, '$1-$2');\n } else if (cleanPhone.length === 8) {\n formatedPhone = cleanPhone.replace(/(\\d{4})?(\\d{4})/, '$1-$2');\n } else if (cleanPhone.length === 7) {\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{4})/, '$1-$2');\n } else {\n formatedPhone = cleanPhone;\n }\n return formatedPhone;\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID, TemplateRef } from '@angular/core';\nimport { PhoneService } from '../../services/phone/phone.service';\nimport { ModalService } from '../../services/modal/modal.service';\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\nimport { formatPhone } from '../../helpers/formatPhone.func';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[rdsitephonemodal]',\n standalone: true,\n})\nexport class RdsitePhoneModalDirective {\n @Input() rdsitephonemodal: TemplateRef<HTMLElement> | null = null;\n\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\n\n constructor(\n private modalService: ModalService,\n @Inject(PLATFORM_ID) private platformId: object,\n private element: ElementRef<Element>,\n private phoneService: PhoneService,\n ) {}\n\n // Intercepta cliques em telefones e aplica comportamentos diferentes em tamanho desktop.\n @HostListener('click', ['$event'])\n public onClick(event: Event) {\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName) || !this.phoneService.phoneModalIsAllowed)\n return;\n\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\n if (this.phoneService.isPhoneModal(href)) {\n this.openPhoneModal(event, href);\n }\n }\n\n public openPhoneModal(event: Event, href: string) {\n event.preventDefault();\n event.stopPropagation();\n this.modalService.setContent(this.rdsitephonemodal || this.modalService.defaultPhoneModal, { phone: formatPhone(href) });\n this.modalService.setStyle(RdsiteModalComponentStyle.DEFAULT);\n this.modalService.open();\n }\n}\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\n\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 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 ) {}\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 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 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, '_blank');\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 noBaseHref = href.includes(siteBasePath) ? href.replace(siteBasePath, '') : href;\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 { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './footer-menu-item.component.html',\r\n styleUrl: './footer-menu-item.component.scss',\r\n})\r\nexport class FooterMenuItemComponent {\r\n @Input() url: string = '';\r\n @Input() title: string = '';\r\n @Input() children: MenuItem[] = [];\r\n @Input() altStyle: boolean = false;\r\n @Output() footerMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n active: boolean = false;\r\n\r\n toggleSubMenu(event: Event) {\r\n event.stopPropagation();\r\n this.active = !this.active;\r\n }\r\n\r\n footerMenuItemClicked(event: Event) {\r\n this.footerMenuItemClick.emit(event);\r\n }\r\n}\r\n","@if (title) {\r\n <div class=\"rdsite-footer-menu-item\" [ngClass]=\"{ alt: altStyle, 'have-children': children.length }\" (click)=\"toggleSubMenu($event)\">\r\n <a class=\"rdsite-footer-menu-item-link\" [href]=\"url\" rdsitelink [title]=\"title\" (click)=\"toggleSubMenu($event); footerMenuItemClicked($event)\">\r\n <span>{{ title }}</span>\r\n </a>\r\n\r\n @if (children.length) {\r\n <cura-icon [attr.name]=\"active ? 'up' : 'down'\" size=\"20\" color=\"neutral-purewhite\"></cura-icon>\r\n }\r\n </div>\r\n\r\n @if (children.length) {\r\n <ul class=\"rdsite-footer-menu-item-children\" [ngClass]=\"{ closed: !active }\">\r\n @for (submenu of children; track submenu.title) {\r\n <li class=\"rdsite-footer-menu-item-children-item\">\r\n <rdsite-footer-menu-item\r\n [url]=\"submenu.url\"\r\n [title]=\"submenu.title\"\r\n [children]=\"submenu?.children ?? []\"\r\n [altStyle]=\"true\"\r\n (footerMenuItemClick)=\"footerMenuItemClicked($event)\"\r\n ></rdsite-footer-menu-item>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterMenuItemComponent } from '../footer-menu-item/footer-menu-item.component';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-menu',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, FooterMenuItemComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './footer-menu.component.html',\r\n styleUrl: './footer-menu.component.scss',\r\n})\r\nexport class FooterMenuComponent {\r\n @Input() footerMenu: MenuItem[] = [];\r\n @Input() partnerships: Partial<MenuItem> | null = null;\r\n @Output() footerMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n footerMenuItemClicked(event: Event) {\r\n this.footerMenuItemClick.emit(event);\r\n }\r\n}\r\n","@if (footerMenu.length) {\r\n <div class=\"rdsite-footer-menu\">\r\n <nav>\r\n <ul class=\"rdsite-footer-menu-list\">\r\n @for (menu of footerMenu; track menu.title) {\r\n <li class=\"rdsite-footer-menu-list-item\">\r\n <rdsite-footer-menu-item\r\n [url]=\"menu.url\"\r\n [title]=\"menu.title\"\r\n [children]=\"menu?.children ?? []\"\r\n (footerMenuItemClick)=\"footerMenuItemClicked($event)\"\r\n ></rdsite-footer-menu-item>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n}\r\n\r\n@if (partnerships) {\r\n <div class=\"rdsite-footer-partnerships\">\r\n <rdsite-footer-menu-item\r\n url=\"\"\r\n [title]=\"partnerships.title ?? ''\"\r\n [children]=\"partnerships.children ?? []\"\r\n (footerMenuItemClick)=\"footerMenuItemClicked($event)\"\r\n ></rdsite-footer-menu-item>\r\n </div>\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { MenuSocialMedia } from '../../../../models/menu-item.model';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-social-medias',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './footer-social-medias.component.html',\r\n styleUrl: './footer-social-medias.component.scss',\r\n})\r\nexport class FooterSocialMediasComponent {\r\n @Input() logo: any = null;\r\n @Input() partnershipLogo: any = null;\r\n @Input() phone: string = '';\r\n @Input() socialMenu: MenuSocialMedia[] = [];\r\n @Output() footerSocialMediaClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n footerSocialMediaClicked(event: Event) {\r\n this.footerSocialMediaClick.emit(event);\r\n }\r\n}\r\n","@if (logo || phone) {\r\n <div class=\"rdsite-footer-social-medias-contact\">\r\n @if (logo) {\r\n <div class=\"logo\">\r\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" [title]=\"logo?.title\" />\r\n </div>\r\n }\r\n @if (partnershipLogo) {\r\n <div class=\"partnership-logo\">\r\n <img [src]=\"partnershipLogo?.url\" [alt]=\"partnershipLogo?.alt\" [title]=\"partnershipLogo?.title\" />\r\n </div>\r\n }\r\n @if (phone) {\r\n <div class=\"phone\">\r\n <a rdsitelink href=\"tel:{{ phone }}\">\r\n <cura-icon name=\"phone\" size=\"20\" color=\"neutral-purewhite\"></cura-icon>\r\n {{ phone }}\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n}\r\n\r\n<div class=\"rdsite-footer-social-medias-social\">\r\n <nav>\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 <cura-icon [name]=\"social.icon\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n</div>\r\n","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 footer: {},\r\n disclaimer: {},\r\n menu: {},\r\n 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.footer = {\r\n '--footer-bg-color': primaryDarker,\r\n '--footer-color': neutralWhite,\r\n '--footer-alt-color': primaryLighter,\r\n };\r\n theme.disclaimer = {\r\n '--footer-disc-bg-color': neutralPurewhite,\r\n '--footer-disc-color': neutralBlack,\r\n '--footer-disc-alt-color': primaryBase,\r\n };\r\n theme.menu = {\r\n '--footer-menu-hover-color': accentLight,\r\n '--footer-menu-active-color': accentBase,\r\n '--footer-menu-alt-hover-color': primaryLight,\r\n '--footer-menu-alt-active-color': primaryBase,\r\n };\r\n theme.social = {\r\n '--footer-social-color': neutralWhite,\r\n };\r\n } else {\r\n theme.footer = {\r\n '--footer-bg-color': primaryDarker,\r\n '--footer-color': neutralWhite,\r\n '--footer-alt-color': primaryLighter,\r\n };\r\n theme.disclaimer = {\r\n '--footer-disc-bg-color': neutralPurewhite,\r\n '--footer-disc-color': neutralBlack,\r\n '--footer-disc-alt-color': primaryBase,\r\n };\r\n theme.menu = {\r\n '--footer-menu-hover-color': accentLight,\r\n '--footer-menu-active-color': accentBase,\r\n '--footer-menu-alt-hover-color': primaryLight,\r\n '--footer-menu-alt-active-color': primaryBase,\r\n };\r\n theme.social = {\r\n '--footer-social-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 { Component, Input } from '@angular/core';\r\nimport { FooterDisclaimerComponent } from './components/footer-disclaimer/footer-disclaimer.component';\r\nimport { FooterMenuComponent } from './components/footer-menu/footer-menu.component';\r\nimport { FooterSocialMediasComponent } from './components/footer-social-medias/footer-social-medias.component';\r\nimport { CuraService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterTheme, FooterThemeKeys } from './models/FooterTheme.model';\r\nimport { getFooterTheme } from './helpers/footerTheme.func';\r\n\r\n@Component({\r\n selector: 'rdsite-footer',\r\n standalone: true,\r\n imports: [CommonModule, FooterDisclaimerComponent, FooterMenuComponent, FooterSocialMediasComponent],\r\n templateUrl: './footer.component.html',\r\n styleUrl: './footer.component.scss',\r\n})\r\nexport class FooterComponent {\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.footerTheme = getFooterTheme(this.project, this.theme, this.curaService);\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.footerTheme = getFooterTheme(this.project, this.theme, this.curaService);\r\n }\r\n private _theme: string = 'default';\r\n\r\n footerTheme: FooterTheme = {\r\n footer: {},\r\n disclaimer: {},\r\n menu: {},\r\n social: {},\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n getCuraCssVars(context: FooterThemeKeys) {\r\n return this.footerTheme[context];\r\n }\r\n}\r\n","<footer class=\"rdsite-footer\" [ngStyle]=\"getCuraCssVars('footer')\">\r\n <div class=\"content\">\r\n <div class=\"content-social\" [ngStyle]=\"getCuraCssVars('social')\">\r\n <ng-content select=\"rdsite-footer-social-medias\"></ng-content>\r\n </div>\r\n <div class=\"content-menu\" [ngStyle]=\"getCuraCssVars('menu')\">\r\n <ng-content select=\"rdsite-footer-menu\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"disclaimer\" [ngStyle]=\"getCuraCssVars('disclaimer')\">\r\n <div class=\"disclaimer-content\">\r\n <ng-content select=\"rdsite-footer-disclaimer\"></ng-content>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { CuraService } from '../../../services';\nimport { HeaderTheme } from '../models/HeaderTheme.model';\n\nexport const getHeaderTheme = (project: string = 'site', themeStyle: string = 'default', curaService: CuraService) => {\n const theme: HeaderTheme = {\n header: {},\n aux: {},\n action: {},\n main: {},\n side: {},\n };\n\n const [primaryLighter, primaryLight, primaryBase, primaryDark, primaryDarker] = [\n curaService.getColor('primary-lighter'),\n curaService.getColor('primary-light'),\n curaService.getColor('primary-base'),\n curaService.getColor('primary-dark'),\n curaService.getColor('primary-darker'),\n ];\n const [accentLighter, accentLight, accentBase] = [\n curaService.getColor('accent-lighter'),\n curaService.getColor('accent-light'),\n curaService.getColor('accent-base'),\n ];\n const [neutralPurewhite, neutralBase] = [curaService.getColor('neutral-purewhite'), curaService.getColor('neutral-base')];\n\n switch (project) {\n case 'site':\n if (themeStyle === 'default') {\n theme.header = {\n '--header-bg-color': primaryBase,\n '--header-overlay-bg-color': primaryDarker,\n };\n theme.aux = {\n '--header-aux-bg-color': primaryBase,\n '--header-aux-container-bg-color': primaryDarker,\n '--header-aux-drop-bg-color': neutralPurewhite,\n '--header-aux-color': neutralPurewhite,\n '--header-aux-hover': accentLight,\n '--header-aux-active': accentBase,\n '--header-aux-color-alt': primaryLighter,\n '--header-aux-hover-alt': primaryLight,\n '--header-aux-active-alt': primaryBase,\n };\n theme.action = {\n '--header-act-bg-color': neutralBase,\n '--header-act-items-bg-color': neutralPurewhite,\n '--header-act-items-color': primaryBase,\n '--header-act-items-hover': primaryLight,\n '--header-act-items-active': primaryDark,\n };\n theme.main = {\n '--header-main-bg-color': primaryBase,\n '--header-main-color': neutralPurewhite,\n '--header-main-hover': primaryLighter,\n '--header-main-bg-hover': primaryDarker,\n '--header-main-active': primaryLight,\n '--header-main-dd-bg-color': primaryDarker,\n '--header-main-dd-color': neutralPurewhite,\n '--header-main-dd-alt-color': primaryLighter,\n '--header-main-dd-alt-hover': neutralPurewhite,\n '--header-main-dd-lv2-content-bg': primaryBase,\n '--header-main-dd-lv2-bg': primaryDarker,\n '--header-main-dd-lv3-bg': primaryBase,\n '--header-main-dd-lv4-bg': primaryDark,\n '--header-main-dd-cta-bg': neutralPurewhite,\n '--header-main-dd-cta-color': primaryBase,\n };\n theme.side = {\n '--header-side-bg-color': primaryDarker,\n '--header-side-border-bottom': primaryBase,\n '--header-side-open-color': primaryLight,\n '--header-side-color': neutralPurewhite,\n '--header-side-hover': accentLighter,\n '--header-side-active': accentLight,\n '--header-side-alt-color': primaryLighter,\n '--header-side-alt-hover': neutralPurewhite,\n '--header-side-alt-active': primaryLight,\n };\n } else {\n theme.header = {\n '--header-bg-color': neutralPurewhite,\n '--header-overlay-bg-color': primaryDarker,\n };\n theme.aux = {\n '--header-aux-bg-color': primaryDark,\n '--header-aux-container-bg-color': primaryBase,\n '--header-aux-drop-bg-color': neutralPurewhite,\n '--header-aux-color': neutralPurewhite,\n '--header-aux-hover': accentLight,\n '--header-aux-active': accentBase,\n '--header-aux-color-alt': neutralPurewhite,\n '--header-aux-hover-alt': primaryLighter,\n '--header-aux-active-alt': primaryLight,\n };\n theme.action = {\n '--header-act-bg-color': primaryBase,\n '--header-act-items-bg-color': primaryDark,\n '--header-act-items-color': primaryLight,\n '--header-act-items-hover': primaryLighter,\n '--header-act-items-active': primaryBase,\n };\n theme.main = {\n '--header-main-bg-color': neutralPurewhite,\n '--header-main-color': primaryBase,\n '--header-main-hover': primaryLighter,\n '--header-main-bg-hover': primaryDarker,\n '--header-main-active': primaryLight,\n '--header-main-dd-bg-color': primaryDarker,\n '--header-main-dd-color': neutralPurewhite,\n '--header-main-dd-alt-color': primaryLighter,\n '--header-main-dd-alt-hover': neutralPurewhite,\n '--header-main-dd-lv2-content-bg': primaryBase,\n '--header-main-dd-lv2-bg': primaryDarker,\n '--header-main-dd-lv3-bg': primaryBase,\n '--header-main-dd-lv4-bg': primaryDark,\n '--header-main-dd-cta-bg': neutralPurewhite,\n '--header-main-dd-cta-color': primaryBase,\n };\n theme.side = {\n '--header-side-bg-color': primaryDarker,\n '--header-side-border-bottom': primaryBase,\n '--header-side-open-color': primaryLight,\n '--header-side-color': neutralPurewhite,\n '--header-side-hover': accentLighter,\n '--header-side-active': accentLight,\n '--header-side-alt-color': primaryLighter,\n '--header-side-alt-hover': neutralPurewhite,\n '--header-side-alt-active': primaryLight,\n };\n }\n break;\n\n default:\n break;\n }\n\n return theme;\n};\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\">\n <div class=\"rdsite-search-control\" [ngClass]=\"{ disabled: !enable || !searchControl.enabled, focus: focus }\">\n <label class=\"label-hidden\">{{ label }}</label>\n <input\n #searchInput\n class=\"rdsite-search-control-input\"\n [type]=\"'text'\"\n name=\"term\"\n autocomplete=\"off\"\n [placeholder]=\"label\"\n [formControl]=\"searchControl\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keyup.enter)=\"onSubmit($event)\"\n enterkeyhint=\"search\"\n (search)=\"onSubmit($event)\"\n />\n\n <div class=\"rdsite-search-control-icon\">\n <cura-icon\n name=\"closeCircle\"\n size=\"20\"\n color=\"primary-base\"\n (click)=\"clean()\"\n class=\"close\"\n [ngClass]=\"{ active: (searchControl.value || canClean) && !loading }\"\n ></cura-icon>\n <cura-icon name=\"search\" size=\"20\" color=\"primary-base\" (click)=\"onSubmitByClick()\" class=\"search\" [ngClass]=\"{ active: !loading }\"></cura-icon>\n @if (loading) {\n <cura-loader-circle color=\"primary\" size=\"small\"></cura-loader-circle>\n }\n </div>\n </div>\n</div>\n","import { CommonModule, DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport { Component, effect, EventEmitter, Inject, Input, Output, PLATFORM_ID } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { getHeaderTheme } from './helpers/headerTheme.func';\r\nimport { HeaderTheme, HeaderThemeKeys } 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\n\r\n@Component({\r\n selector: 'rdsite-header',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent, SearchComponent],\r\n templateUrl: './header.component.html',\r\n styleUrl: './header.component.scss',\r\n})\r\nexport class HeaderComponent {\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.headerTheme = getHeaderTheme(this.project, this.theme, this.curaService);\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.headerTheme = getHeaderTheme(this.project, this.theme, this.curaService);\r\n }\r\n private _theme: string = 'default';\r\n\r\n headerTheme: HeaderTheme = {\r\n header: {},\r\n aux: {},\r\n action: {},\r\n main: {},\r\n side: {},\r\n };\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 @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 getCuraCssVars(context: HeaderThemeKeys) {\r\n return this.headerTheme[context];\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","<header class=\"rdsite-header\" [ngStyle]=\"getCuraCssVars('header')\">\r\n <div class=\"rdsite-header-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div class=\"rdsite-header-logo\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-logo\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-aux-menu\" [ngStyle]=\"getCuraCssVars('aux')\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-aux-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-action-menu\" [ngStyle]=\"getCuraCssVars('action')\">\r\n <ng-content select=\"rdsite-header-action-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-main-menu\" [ngStyle]=\"getCuraCssVars('main')\">\r\n <ng-content select=\"rdsite-header-main-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-side-menu\" [ngStyle]=\"getCuraCssVars('side')\">\r\n <!-- <ng-content select=\"rdsite-header-side-menu\"></ng-content> -->\r\n <ng-content select=\"#rdsite-header-side-menu\"></ng-content>\r\n </div>\r\n @if (searchControl) {\r\n <div class=\"rdsite-header-search\">\r\n <rdsite-search [searchControl]=\"searchControl\" [label]=\"'O que você procura?'\" [debounceTime]=\"1500\" [setFocus]=\"true\" (enterPress)=\"doSearch($event)\">\r\n </rdsite-search>\r\n </div>\r\n }\r\n </div>\r\n\r\n <rdsite-overlay class=\"search-overlay\" [ngClass]=\"{ active: headerService.showSearch() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n</header>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-header-action-menu',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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 @Output() headerLoginClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(public headerService: HeaderService) {}\r\n\r\n headerLoginClicked(event: Event) {\r\n this.headerLoginClick.emit(event);\r\n }\r\n}\r\n","<div class=\"rdsite-header-action-menu\">\r\n @if (loginUrl) {\r\n <div class=\"rdsite-header-action-menu-login\">\r\n <a [href]=\"loginUrl\" (click)=\"headerLoginClicked($event)\" rdsitelink class=\"rdsite-header-action-menu-login-link\">\r\n <cura-icon class=\"icon-mobile\" name=\"profileCircle\" size=\"20\" color=\"primary-base\"></cura-icon>\r\n <cura-icon class=\"icon-desktop\" name=\"profileCircle\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n <span>ENTRAR</span>\r\n </a>\r\n </div>\r\n }\r\n\r\n <div class=\"rdsite-header-action-menu-actions\">\r\n @if (showSearch) {\r\n <button type=\"button\" class=\"rdsite-header-action-menu-actions-button\" (click)=\"headerService.toggleShowSearch()\">\r\n @if (!headerService.showSearch()) {\r\n <cura-icon name=\"search\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n <span>BUSCAR</span>\r\n } @else {\r\n <cura-icon name=\"close\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n <span>FECHAR</span>\r\n }\r\n </button>\r\n }\r\n <button type=\"button\" class=\"rdsite-header-action-menu-actions-button\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <cura-icon name=\"menuHamburguer\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n </button>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu',\r\n standalone: true,\r\n imports: [CommonModule],\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=\"rdsite-header-aux-menu-container\"></ng-content>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu-container',\r\n standalone: true,\r\n imports: [CommonModule],\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","<nav>\r\n <ul>\r\n <ng-content select=\"#rdsite-header-aux-menu-item\"></ng-content>\r\n <ng-content select=\"#geoloc\"></ng-content>\r\n </ul>\r\n</nav>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu-item-dropdown',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\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 class=\"dropdown-list\">\r\n @for (dropdownItem of items; track dropdownItem.ID) {\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, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { RdsitePhoneModalDirective } from '../../../../directives/rdsite-phone-modal/rdsite-phone-modal.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\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, RdsitePhoneModalDirective, HeaderAuxMenuItemDropdownComponent],\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 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=\"header-aux-menu-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 <cura-icon [name]=\"isMenuHover || isDropdownHover ? 'up' : 'down'\" size=\"16\"></cura-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n class=\"header-aux-menu-item-dropdown\"\r\n [ngStyle]=\"{ display: isMenuHover || isDropdownHover ? 'block' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n >\r\n <rdsite-header-aux-menu-item-dropdown\r\n [items]=\"item.children ?? []\"\r\n (headerAuxMenuItemDDClick)=\"headerAuxMenuItemDDClicked($event)\"\r\n ></rdsite-header-aux-menu-item-dropdown>\r\n </div>\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-header-logo',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\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=\"lazy\" [src]=\"src\" [alt]=\"alt\" [title]=\"title\" />\r\n</a>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-header-main-menu',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './header-main-menu.component.html',\r\n styleUrl: './header-main-menu.component.scss',\r\n})\r\nexport class HeaderMainMenuComponent {}\r\n","<nav>\r\n <ul>\r\n <ng-content select=\"#rdsite-header-main-menu-item\"></ng-content>\r\n </ul>\r\n</nav>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, signal } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { BehaviorSubject, debounceTime } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-header-main-menu-item-dropdown',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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 {\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 BehaviorSubject<{ item: MenuItem | null; list: MenuItem[] }>({ item: null, list: [] });\r\n lv3Item$ = new BehaviorSubject<{ item: MenuItem | null; list: MenuItem[] }>({ item: null, list: [] });\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() {\r\n const timeToDebounce = 50;\r\n\r\n 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.ID == item?.ID));\r\n this.selectedLv2Item = item;\r\n }\r\n });\r\n\r\n 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.ID == item?.ID));\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","@if (item) {\r\n <div class=\"header-main-menu-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.ID) {\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 <span>{{ itemLv2.title }}</span>\r\n @if (itemLv2?.children?.length) {\r\n <cura-icon name=\"arrowRightCircle\" size=\"20\" color=\"primary-light\"></cura-icon>\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.ID) {\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 <span>{{ itemLv3.title }}</span>\r\n @if (itemLv3?.children?.length) {\r\n <cura-icon name=\"arrowRightCircle\" size=\"20\" color=\"primary-light\"></cura-icon>\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.ID) {\r\n <li>\r\n <a class=\"link lv4\" [href]=\"itemLv4.url\" rdsitelink (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\">\r\n <span>{{ itemLv4.title }}</span>\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 [src]=\"destaque.imagem?.url\" [alt]=\"destaque.titulo\" />\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 <cura-icon [name]=\"cta.icone\" size=\"20\" color=\"primary-base\"></cura-icon>\r\n <span>{{ cta.titulo }}</span>\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, Input, OnDestroy, Output, ViewChild } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { RdsitePhoneModalDirective } from '../../../../directives/rdsite-phone-modal/rdsite-phone-modal.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 { BehaviorSubject, debounceTime } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'rdsite-header-main-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, RdsitePhoneModalDirective, HeaderMainMenuItemDropdownComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n constructor() {\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.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.dropdownOpen$.unsubscribe();\r\n }\r\n}\r\n","@if (item) {\r\n <a\r\n class=\"header-main-menu-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 <cura-icon [name]=\"dropdownComponent?.opened() ? 'up' : 'down'\" size=\"16\"></cura-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n class=\"header-main-menu-item-dropdown-container\"\r\n [ngStyle]=\"{ display: dropdownComponent?.opened() ? 'block' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n >\r\n <rdsite-header-main-menu-item-dropdown\r\n [item]=\"item\"\r\n (headerMainMenuItemDDClick)=\"headerMainMenuItemDDClicked($event)\"\r\n (headerMainMenuHighlightDDClick)=\"headerMainMenuHighlightDDClicked($event)\"\r\n (headerMainMenuCtaDDClick)=\"headerMainMenuCtaDDClicked($event)\"\r\n ></rdsite-header-main-menu-item-dropdown>\r\n </div>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayComponent } from '../../../overlay/overlay.component';\r\n\r\n@Component({\r\n selector: 'rdsite-header-side-menu',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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(public headerService: HeaderService) {}\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSideMenu(false);\r\n }\r\n}\r\n","<div class=\"rdsite-header-side-menu\" [ngClass]=\"{ active: headerService.showSideMenu() }\">\r\n <div class=\"side-menu\">\r\n <div class=\"side-menu-close\">\r\n <button type=\"button\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <cura-icon name=\"close\" size=\"20\" color=\"neutral-purewhite\"></cura-icon>\r\n </button>\r\n </div>\r\n\r\n <nav>\r\n <ul class=\"side-menu-content\">\r\n <ng-content select=\"#rdsite-header-side-menu-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, Input, Output } 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\n\r\n@Component({\r\n selector: 'rdsite-header-side-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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() level: number = 1;\r\n @Input() fontSize: number = 16;\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(public headerService: HeaderService) {}\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=\"rdsite-header-side-menu-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 [ngClass]=\"{ 'fourth-level': level >= 4 }\">{{ item.title }}</span>\r\n @if (!item.children?.length) {\r\n <cura-icon name=\"right\" size=\"20\" color=\"primary-lighter\"></cura-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <cura-icon [attr.name]=\"item.active ? 'up' : 'down'\" size=\"20\" [attr.color]=\"item.active ? 'primary-light' : 'neutral-purewhite'\"></cura-icon>\r\n }\r\n </div>\r\n\r\n @if (item.children?.length) {\r\n <ul class=\"rdsite-header-side-menu-item-list\" [ngClass]=\"{ active: item.active }\">\r\n @for (child of item.children; track item.title) {\r\n <li>\r\n <rdsite-header-side-menu-item\r\n [item]=\"child\"\r\n [fontSize]=\"fontSize\"\r\n [altStyle]=\"altStyle\"\r\n [level]=\"level + 1\"\r\n (headerSideMenuItemClick)=\"headerSideMenuItemClicked($event)\"\r\n ></rdsite-header-side-menu-item>\r\n </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';\nimport { CuraService } from '../../services';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rdsite-side-ctas',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './side-ctas.component.html',\n styleUrl: './side-ctas.component.scss',\n})\nexport class SideCtasComponent {\n @HostBinding('style') style = {\n '--color-right': this.curaService.getColor('primary-darker'),\n };\n\n constructor(private curaService: CuraService) {}\n}\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('neutral-purewhite'),\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';\n\n@Component({\n selector: 'rdsite-side-ctas-right-top',\n standalone: true,\n imports: [],\n templateUrl: './side-ctas-right-top.component.html',\n styleUrl: './side-ctas-right-top.component.scss',\n})\nexport class SideCtasRightTopComponent {}\n","<ng-content></ng-content>\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 { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AlgoliaConfig, AlgoliaSearchParams, RdslAlgoliaMultipleIndex } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaSearchApiService } from '../../services/algolia-search-api/algolia-search-api.service';\r\nimport { AlgoliaOption } from '../../models/algolia.model';\r\n\r\n@Component({\r\n selector: 'rdsite-algolia',\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './algolia.component.html',\r\n styleUrl: './algolia.component.scss',\r\n})\r\nexport class AlgoliaComponent {\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\r\n @Input() label = '';\r\n @Input() name = 'cura-dropdown';\r\n @Input() required = false;\r\n @Input() selected = false;\r\n @Input() value = '';\r\n @Input() placeholder = 'Faça a sua busca';\r\n @Input() deleteButton = false;\r\n @Input() iconName = 'search';\r\n @Input() status: 'default' | 'error' = 'default';\r\n\r\n @Input() startSearchAtCharLen: number = 2;\r\n @Input() hintTitle = 'Mais Buscados';\r\n @Input() hints: AlgoliaOption[] = [];\r\n @Input() searchParams: AlgoliaSearchParams = {};\r\n\r\n 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() resetItem: EventEmitter<{}> = new EventEmitter();\r\n @Output() algoliaResults: EventEmitter<{}> = new EventEmitter();\r\n\r\n constructor(private readonly algoliaSearchApiService: AlgoliaSearchApiService) {}\r\n\r\n resetValues() {\r\n this.resetItem.emit();\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.resetValues();\r\n }\r\n }\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 search(): void {\r\n if (this.searchTerm?.length >= this.startSearchAtCharLen && 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","<cura-dropdown-search\r\n [value]=\"value\"\r\n [status]=\"status\"\r\n [name]=\"name\"\r\n [required]=\"required\"\r\n [selected]=\"selected\"\r\n [label]=\"label\"\r\n [iconName]=\"iconName\"\r\n [placeholder]=\"placeholder\"\r\n (valueChange)=\"resetValues()\"\r\n (input)=\"termChange($event)\"\r\n>\r\n @if (status === 'error') {\r\n <cura-dropdown-search-option name=\"error\">\r\n <div class=\"head\">\r\n <cura-icon size=\"24\" name=\"alertCircle\" color=\"error-700\"></cura-icon>\r\n <cura-paragraph size=\"small\" color=\"error-700\" weight=\"bold\"> Não há nenhum resultado para \"{{ searchTerm.toUpperCase() }}\".</cura-paragraph>\r\n </div>\r\n </cura-dropdown-search-option>\r\n }\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n","// Components\r\nexport * from './footer/footer.component';\r\nexport * from './footer/components/footer-disclaimer/footer-disclaimer.component';\r\nexport * from './footer/components/footer-menu/footer-menu.component';\r\nexport * from './footer/components/footer-menu-item/footer-menu-item.component';\r\nexport * from './footer/components/footer-social-medias/footer-social-medias.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/algolia.component';\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatPhone } from '../../helpers/formatPhone.func';\n\n@Pipe({\n name: 'phone',\n standalone: true,\n})\nexport class PhonePipe implements PipeTransform {\n transform(phone: string): string {\n return formatPhone(phone);\n }\n}\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 RdsiteModalDrawerComponentStyle {\n DEFAULT = 'default',\n DRAWERDOCTOR = 'doctor-card',\n}\n","/*\n * Public API Surface of site-front-end-lib\n */\n\n// Components\nexport * from './lib/components';\n\n// Directives\nexport * from './lib/directives';\n\n// Pipes\nexport * from './lib/pipes';\n\n//Services\nexport * from './lib/services';\n\n// Helpers\nexport * from './lib/helpers';\n\n// Enums\nexport * from './lib/enums';\n\n// Tokens\nexport * from './lib/tokens/CuraApi';\nexport * from './lib/tokens/express.tokens';\nexport * from './lib/tokens/LibConfig';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.HttpClientService","i2.LogService","i2","i1.PrivacyToolsService","i2.PhoneService","i3.RdsitePhoneModalDirective","i1.CuraService","i2.HeaderService","i3","i1.HeaderService","i1.AlgoliaSearchApiService"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"rededor-site-front-end-lib.mjs","sources":["../../../projects/site-front-end-lib/src/lib/tokens/LibConfig.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/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/modal.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/phone/phone.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/components/footer/components/footer-disclaimer/footer-disclaimer.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-disclaimer/footer-disclaimer.component.html","../../../projects/site-front-end-lib/src/lib/directives/rdsite-click-outside/rdsite-click-outside.directive.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/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/components/footer/components/footer-menu-item/footer-menu-item.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-menu-item/footer-menu-item.component.html","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-menu/footer-menu.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-menu/footer-menu.component.html","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-social-medias/footer-social-medias.component.ts","../../../projects/site-front-end-lib/src/lib/components/footer/components/footer-social-medias/footer-social-medias.component.html","../../../projects/site-front-end-lib/src/lib/components/footer/helpers/footerTheme.func.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/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-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/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-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-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/services/algolia-search-api/algolia-search-api.service.ts","../../../projects/site-front-end-lib/src/lib/components/algolia/algolia.component.ts","../../../projects/site-front-end-lib/src/lib/components/algolia/algolia.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/enums/Estados.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumDoencaTaxonomy.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/RdsiteModalDrawerComponentStyle.enum.ts","../../../projects/site-front-end-lib/src/public-api.ts","../../../projects/site-front-end-lib/src/rededor-site-front-end-lib.ts"],"sourcesContent":["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\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 // 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","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","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\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 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';\nimport { Inject, Injectable, OnDestroy, Optional, PLATFORM_ID } from '@angular/core';\nimport CuraAPI from '@rededor/cura/dist/types/api/cura-api';\nimport { Subscription, fromEvent, startWith } from 'rxjs';\nimport { LogService } from '../log/log.service';\nimport { IconCuraDefaultType } from '../../enums/IconCuraDefaultType.enum';\nimport { SSR_CURA_API } from '../../tokens/CuraApi';\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CuraService implements OnDestroy {\n private curaAPISubscription: Subscription | null = null;\n private curaApi: CuraAPI | null = null;\n\n constructor(\n private log: LogService,\n @Inject(PLATFORM_ID) private platformId: object,\n @Inject(DOCUMENT) private document: Document,\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\n @Optional() @Inject(SSR_CURA_API) private ssrCuraAPI: any,\n ) {\n this.curaInit();\n }\n\n curaInit() {\n if (!this.curaAPISubscription) {\n this.curaAPISubscriptionInit();\n }\n }\n\n private curaAPISubscriptionInit() {\n if (this.document.defaultView) {\n if (isPlatformServer(this.platformId)) {\n this.injectCuraAPI();\n }\n this.curaAPISubscription = fromEvent(this.document.defaultView, 'CuraAPIReady')\n .pipe(\n startWith({\n detail: { api: (this.document.defaultView as any)?.CuraAPI },\n }),\n )\n .subscribe({\n next: (event) => {\n this.curaApi = (event as CustomEvent)?.detail?.api as CuraAPI;\n },\n error: (error) => {\n this.log.logMsg(JSON.stringify(error), 'ERROR');\n },\n });\n }\n }\n\n private injectCuraAPI() {\n if (this.document.defaultView && !(this.document.defaultView as any)['CuraAPI']) {\n Object.defineProperty(this.document.defaultView, 'CuraAPI', {\n value: this.ssrCuraAPI,\n });\n }\n }\n\n loadTheme(theme: string) {\n this.curaApi?.theme?.load(theme);\n }\n\n getColor(colorWithDepth: string): string | null {\n return this.curaApi?.theme?.colors.getColor(colorWithDepth) ?? null;\n }\n\n getSpacing(): string | null {\n return this.curaApi?.theme.spacing.getSpacing() ?? null;\n }\n\n getFontFamily(type: string): string | null {\n return this.curaApi?.theme.fonts.getFamily(type) ?? null;\n }\n\n getFontWeights(): { [alias: string]: string } {\n return this.curaApi?.theme.fonts.getWeights() ?? {};\n }\n\n getFontSize(): string {\n return this.curaApi?.theme.fonts.getSize() ?? '';\n }\n\n getFontColor(): string {\n return this.curaApi?.theme.fonts.getColor() ?? '';\n }\n\n getCuraIconName(icon: string): string {\n if (IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType]) {\n return IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType];\n } else {\n return this.getCuraSystemIconName(icon);\n }\n }\n\n private getCuraSystemIconName(icon: string): string {\n if (this.libConfig.iconsetDefaultList?.includes(icon)) return icon;\n return '';\n }\n\n ngOnDestroy() {\n this.curaAPISubscription?.unsubscribe();\n }\n}\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 { Injectable, TemplateRef } from '@angular/core';\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\n\nexport abstract class AbstractModalComponent {\n abstract id: string;\n abstract modalTitle: string | null;\n abstract modalHeader: TemplateRef<any> | null;\n abstract modalContent: TemplateRef<any> | null;\n abstract modalContentContext: Record<string, any> | null;\n abstract modalActions: TemplateRef<any> | null;\n abstract componentStyle: any;\n abstract modal: HTMLDialogElement;\n abstract open(): void;\n abstract close(): void;\n abstract reset(): void;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n reference: AbstractModalComponent | null = null;\n defaultPhoneModal!: TemplateRef<any>;\n\n open() {\n this.reference?.open();\n }\n\n setReference(element: AbstractModalComponent) {\n this.reference = element;\n }\n\n setHeader(header: TemplateRef<any>) {\n if (!this.reference) return;\n this.reference.modalHeader = header;\n }\n\n setTitle(title: string) {\n if (!this.reference) return;\n this.reference.modalTitle = title;\n }\n\n setContent(content: TemplateRef<any>, context: Record<string, any> = {}) {\n if (!this.reference) return;\n this.reference.modalContent = content;\n this.reference.modalContentContext = context;\n }\n\n setActions(actions: TemplateRef<any>) {\n if (!this.reference) return;\n this.reference.modalActions = actions;\n }\n\n setStyle(style: RdsiteModalComponentStyle) {\n if (!this.reference) return;\n this.reference.componentStyle = style;\n }\n\n setDefaultPhoneModal(modal: TemplateRef<any>) {\n this.defaultPhoneModal = modal;\n }\n\n close() {\n this.reference?.close();\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { RdsiteModalDrawerComponentStyle } from '../../enums';\n\nexport abstract class AbstractModalDrawerComponent {\n abstract sheet: HTMLElement;\n abstract sheetContents: HTMLElement;\n abstract draggableArea: HTMLElement;\n abstract sheetHeight: number;\n abstract dragPosition: number;\n abstract maxHeight: number;\n abstract closeHeight: number;\n abstract rdsiteModalComponentStyle: any;\n abstract id: string;\n abstract modalContent: ElementRef;\n abstract componentStyle: any;\n abstract modal: HTMLDialogElement;\n abstract setSheetHeight(value: number): void;\n abstract setIsSheetShown(isShown: boolean): void;\n abstract openSheet(): void;\n abstract closeSheet(): void;\n abstract touchPosition(event: any): void;\n abstract onDragStart(event: any): void;\n abstract onDragMove(event: any): void;\n abstract onDragEnd(): void;\n abstract reset(): void;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalDrawerService {\n reference: AbstractModalDrawerComponent | null = null;\n\n open() {\n this.reference?.openSheet();\n }\n\n setReference(element: AbstractModalDrawerComponent) {\n this.reference = element;\n }\n\n setContent(content: ElementRef) {\n if (!this.reference) return;\n this.reference.modalContent = content;\n }\n\n setStyle(style: RdsiteModalDrawerComponentStyle) {\n if (!this.reference) return;\n this.reference.componentStyle = style;\n }\n\n setHeight(value: number) {\n if (!this.reference) return;\n this.reference.maxHeight = value;\n }\n\n close() {\n this.reference?.closeSheet();\n }\n}\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 } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PhoneService {\n private telRegex = /tel:/;\n\n public phoneModalIsAllowed: boolean = true; // variavel utilizada para permitir/bloquear o modal de telefone\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n /** Verifica se o 'href' é de telefone e se a janela está em tamanho desktop */\n public isPhoneModal(href: string) {\n const width = this.document.defaultView?.innerWidth ?? 0;\n const SMALL_BREAKPOINT = 718;\n return this.telRegex.test(href) && width > SMALL_BREAKPOINT;\n }\n}\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 { catchError, Observable, of, timeout } 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 { LogService } from '../log/log.service';\r\n\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\n\r\nimport * as unidadesWpMock from '../../json/unidades.json';\r\nimport * as unidadesOncoWpMock from '../../json/unidadesOnco.json';\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 private log: LogService,\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 getUnidades(params?: RDSLUnidadesParams): Observable<RDSLUnidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidadesWP(): Observable<WpUnidadeSite[]> {\r\n return this.httpClientService.get<WpUnidadeSite[]>(`${this.siteApiUrl}unidades/wp`).pipe(\r\n timeout(1500),\r\n catchError((err) => {\r\n this.log.logMsg(JSON.stringify(err), 'ERROR');\r\n this.log.logMsg('Utilizando json de unidades wordpress.', 'FALLBACK');\r\n return of(Array.from(unidadesWpMock) as unknown as WpUnidadeSite[]);\r\n }),\r\n );\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`).pipe(\r\n timeout(1500),\r\n catchError((err) => {\r\n this.log.logMsg(JSON.stringify(err), 'ERROR');\r\n this.log.logMsg('Utilizando json de unidades onco wordpress.', 'FALLBACK');\r\n return of(Array.from(unidadesOncoWpMock) as unknown as WpUnidadeOnco[]);\r\n }),\r\n );\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 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 getExamesApiDados(): Observable<ExameApiDados[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/api-dados`);\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 // 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","import { Inject, Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { DOCUMENT, Location } from '@angular/common';\n\nimport * as he from 'he';\n\nimport { SocialMetaProperties } from '../../models/social-meta-properties.model';\nimport { BreadcrumbItem } from '../../models/breadcrumb/breadcrumb-item.model';\nimport { BreadcrumbJsonItem } from '../../models/breadcrumb/breadcrumb-json-item.model';\nimport { SeoData } from '../../models/seo/seo-data.model';\nimport { SeoUnidade } from '../../models/seo/seo-unidade.model';\nimport { WpPost } from '../../models/wordpress/post/post.model';\nimport { getSiteUrl, removeHtmlTags } from '../../helpers';\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SeoService {\n public separator = ' - ';\n public defaultTitle = 'Rede D’Or';\n public activeDescription!: string;\n public sameAs = [\n 'https://www.facebook.com/rededor/',\n 'https://www.instagram.com/rededor_oficial/',\n 'https://www.linkedin.com/company/rededor-saoluiz',\n 'https://twitter.com/rededor',\n ];\n public twitterUser = '@rededor';\n\n private canonicalTag!: HTMLLinkElement;\n private jsonTag!: HTMLScriptElement;\n private jsonTagId = 'seoJSON';\n private breadcrumbsJsonTag!: HTMLScriptElement;\n private breadcrumbsJsonTagId = 'breadcrumbsJSON';\n\n public unidade: any = null;\n public unidadeName: string = '';\n public unidadePath: string = '';\n public unidadeSlug: string = '';\n\n constructor(\n private title: Title,\n private meta: Meta,\n private location: Location,\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n public setFullSeo(data: SeoData) {\n this.setTitle(data.title.text, !!data.title.sub);\n this.setDescription(data.description);\n this.setCanonicalHref(data.canonical);\n this.setPageJson();\n this.setSocialTags(data.socialTags);\n }\n\n /**\n * Define tag description da página\n * @param content conteúdo da descrição <string>\n */\n public setDescription(content: string): SeoService {\n const descTag = this.meta.getTag(\"name='description'\");\n if (content) {\n content = he.decode(content);\n content = removeHtmlTags(content);\n } else {\n content = '';\n }\n this.activeDescription = content;\n const tagContent = { name: 'description', content };\n if (descTag) {\n this.meta.updateTag(tagContent);\n } else {\n this.meta.addTag(tagContent);\n }\n return this;\n }\n\n /**\n * Define meta tags para a página\n * @param tag nome da tag meta\n * @param content conteúdo da tag meta\n * @param type tipo de tag meta\n */\n public setMetaTag(tag: string, content: string, type = 'name') {\n const metatag = this.meta.getTag(`${type}='${tag}'`);\n content = he.decode(content);\n content = removeHtmlTags(content);\n const tagContent = {\n [type]: tag,\n content,\n };\n if (!metatag) {\n this.meta.addTag(tagContent);\n } else {\n this.meta.updateTag(tagContent);\n }\n return this;\n }\n\n /**\n * Remove meta tags da página\n * @param tag nome da tag meta\n * @param content conteúdo da tag meta\n * @param attr atributo da tag meta\n * @param type tipo de tag meta\n */\n public removeTag(tag: string, content: string, attr: string, type = 'name') {\n const metatag = this.meta.getTag(`${type}='${tag}'`);\n if (metatag) {\n this.meta.removeTag(`${attr}=${content}`);\n }\n return this;\n }\n\n /**\n * Define meta tags para Facebook\n * @param title título para o facebook\n * @param description descrição para o facebook\n * @param url url para definição do facebook\n * @param img imagem para definição no facebook\n */\n public setMetaFacebook(title: string, description: string, url: string, img: string | null = null) {\n this.setMetaTag('og:url', url, 'property');\n this.setMetaTag('og:title', title, 'property');\n this.setMetaTag('og:description', description, 'property');\n this.setMetaTag('og:type', 'website', 'property');\n this.setMetaTag('og:image', img ?? '', 'property');\n }\n\n /**\n * Define meta tags para Twitter\n * @param title título para o twitter\n * @param description descrição para o twitter\n * @param url url para o twitter\n * @param img imagem para definição no twitter\n */\n public setMetaTwitter(title: string, description: string, url: string, img: string | null = null) {\n this.setMetaTag('twitter:site', url, 'name');\n this.setMetaTag('twitter:title', title, 'name');\n this.setMetaTag('twitter:description', description, 'name');\n this.setMetaTag('twitter:image', img ?? '', 'name');\n }\n\n /**\n * Define tags de redes sociais (Twitter e Open Graph)\n * @param properties\n */\n setSocialTags(properties?: SocialMetaProperties) {\n const pagePath = this.location.path();\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n let defaultProperties: SocialMetaProperties = {\n twitterCard: 'summary',\n twitterSite: this.twitterUser,\n type: 'website',\n title: this.getTitle(),\n description: this.activeDescription || '',\n url: `${siteurl}${pagePath}`,\n image: this.libConfig?.logoPath ? `${siteurl}${this.libConfig.logoPath}` : 'https://www.rededorsaoluiz.com.br/assets/imgs/logo-rededor-blue.png',\n };\n if (properties) {\n defaultProperties = { ...defaultProperties, ...properties };\n }\n this.setMetaTag('twitter:card', defaultProperties.twitterCard || '', 'name')\n .setMetaTag('twitter:site', defaultProperties.twitterSite || '', 'name')\n .setMetaTag('og:type', defaultProperties.type || '', 'property')\n .setMetaTag('og:title', defaultProperties.title || '', 'property')\n .setMetaTag('og:description', defaultProperties.description || '', 'property')\n .setMetaTag('og:url', defaultProperties.url || '', 'property')\n .setMetaTag('og:image', defaultProperties.image || '', 'property');\n\n return this;\n }\n\n /**\n * Define título da página\n * @param title título da página <string>\n * @param sub Se é subsite acrescenta unidade <boolean>\n */\n public setTitle(title: string, sub = false) {\n if (title && title !== '') {\n title = he.decode(title);\n title = removeHtmlTags(title);\n if (sub) {\n title = he.decode(`${title}${this.separator}${this.unidadeName}`);\n }\n this.title.setTitle(title);\n }\n return this;\n }\n\n /** Obtem título atual da página */\n public getTitle(): string {\n return this.title.getTitle();\n }\n\n public set404Title(component: string = 'Default Component') {\n if (component && component !== '') {\n component = he.decode(component);\n component = removeHtmlTags(component);\n if (this.unidadeName) {\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\n }\n }\n const title = `Erro 404 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\n this.title.setTitle(title);\n return this;\n }\n\n /** Cria tag script para JSON de breadcrumbs */\n private createBreadcrumbsJSONTag(): HTMLScriptElement {\n const tag: HTMLScriptElement = this.document.createElement('script');\n tag.id = this.breadcrumbsJsonTagId;\n tag.type = 'application/ld+json';\n this.document.head.appendChild(tag);\n this.breadcrumbsJsonTag = tag;\n return tag;\n }\n\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\n private getBreadcrumbsJSONTag(): HTMLScriptElement {\n const elements = this.document.head.children;\n let i: number;\n for (i = 0; i < elements.length; i++) {\n const elem = elements[i] as HTMLScriptElement;\n if (elem && elem.id === this.breadcrumbsJsonTagId) {\n return elem;\n }\n }\n return this.createBreadcrumbsJSONTag();\n }\n\n /** Define o JSON de breadcrumbs da página */\n public setBreadcrumbsJson(items: BreadcrumbItem[]) {\n this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();\n const json = {\n '@context': 'http://schema.org',\n '@type': 'BreadcrumbList',\n itemListElement: this.getJsonBreadcrumbItems(items),\n };\n this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);\n return this;\n }\n\n /** Converte itens do breadcrumb em itens do JSON */\n private getJsonBreadcrumbItems(items: BreadcrumbItem[]): BreadcrumbJsonItem[] {\n const jsonItems = [\n {\n '@type': 'ListItem',\n position: 1,\n item: { '@id': this.getBreadcrumbItemUrl(['/']), name: he.encode('Página Inicial') },\n } as BreadcrumbJsonItem,\n ];\n items.forEach((item, i) => {\n const jsonItem: BreadcrumbJsonItem = {\n '@type': 'ListItem',\n position: i + 2,\n item: { '@id': this.getBreadcrumbItemUrl(item?.url || []), name: he.encode(item.label) },\n };\n jsonItems.push(jsonItem);\n });\n return jsonItems;\n }\n\n /**\n * Monta a url do item de breadcrumb proveniente do array de urls\n * ou do caminho da própria página, conforme caso do último item.\n */\n private getBreadcrumbItemUrl(url: string[]): string {\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n if (!url || url.length <= 0) {\n const pagePath = this.location.path();\n return `${siteurl}${pagePath}`;\n }\n url = url.filter((u) => u !== this.unidadePath);\n const unidadePath = this.getUnidadePath();\n const fullPath = `${unidadePath}/${url.join('/').replace(/^\\/?/, '')}`;\n return `${siteurl}${fullPath}`.replace(/\\/$/, '');\n }\n\n /** Cria tag script para o JSON de SEO */\n private createJSONTag(): HTMLScriptElement {\n const tag: HTMLScriptElement = this.document.createElement('script');\n tag.id = this.jsonTagId;\n tag.type = 'application/ld+json';\n this.document.head.appendChild(tag);\n this.jsonTag = tag;\n return tag;\n }\n\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\n private getJSONTag(): HTMLScriptElement {\n const elements = this.document.head.children;\n let i: number;\n for (i = 0; i < elements.length; i++) {\n const elem = elements[i] as HTMLScriptElement;\n if (elem && elem.id === this.jsonTagId) {\n return elem;\n }\n }\n return this.createJSONTag();\n }\n\n /** Define JSON para SEO somente quando no servidor */\n public setPageJson() {\n this.jsonTag = this.getJSONTag();\n const graph = [this.getOrgJson(), this.getWebsiteJson(), this.getWebpageJson()];\n const json = { '@context': 'http://schema.org', '@graph': graph };\n this.jsonTag.innerHTML = JSON.stringify(json);\n return this;\n }\n\n /** Obtem JSON da Organização */\n private getOrgJson() {\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n return {\n '@type': 'Organization',\n '@id': `${siteurl}#organization`,\n name: this.defaultTitle,\n keywords: this.libConfig?.keywords,\n url: `${siteurl}`,\n sameAs: this.sameAs,\n };\n }\n\n /** Obtem JSON do Website (portal, unidades, etc) */\n private getWebsiteJson() {\n const unidadePath = this.getUnidadePath();\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n return {\n '@type': 'WebSite',\n '@id': `${siteurl}${unidadePath}#website`,\n url: `${siteurl}${unidadePath}`,\n name: this.unidadeName,\n keywords: this.libConfig?.keywords,\n };\n }\n\n /** Obtem Json da página */\n private getWebpageJson() {\n const unidadePath = this.getUnidadePath();\n const siteURL = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n const pagePath = `${siteURL}${this.location.path()}`;\n const desc = this.activeDescription ? this.activeDescription : '';\n return {\n '@type': 'WebPage',\n '@id': `${pagePath}#webpage`,\n url: pagePath,\n inLanguage: 'pt-BR',\n name: this.getTitle(),\n isPartOf: { '@id': `${siteURL}${unidadePath}#website` },\n about: { '@id': `${siteURL}#organization` },\n description: desc,\n };\n }\n\n private getUnidadePath() {\n let unidadePath = '';\n if (this.unidade && this.unidadePath) {\n unidadePath = this.unidade?.path === '/' ? '' : this.unidadePath?.substring(0, this.unidadePath?.length - 1);\n }\n return unidadePath;\n }\n\n /**\n * Obtém a URL canônica da página.\n * @returns A URL canônica da página.\n */\n public getCanonicalHref(): string {\n if (!this.canonicalTag) {\n this.canonicalTag = this.getCanonicalTag();\n }\n return this.canonicalTag.href;\n }\n\n /** Cria tag para links canonicals no head */\n private createCanonicalTag(): HTMLLinkElement {\n const tag = this.document.createElement('link');\n tag.setAttribute('rel', 'canonical');\n this.document.head.appendChild(tag);\n tag.setAttribute('href', this.document.URL);\n this.canonicalTag = tag;\n return tag;\n }\n\n /** Retorna tag para link canonical existe ou cria se não houver. */\n private getCanonicalTag(): HTMLLinkElement {\n const elements = this.document.head.children;\n let i: number;\n for (i = 0; i < elements.length; i++) {\n const elem = elements[i] as HTMLLinkElement;\n if (elem && elem.tagName === 'LINK' && elem.rel === 'canonical') {\n return elem;\n }\n }\n return this.createCanonicalTag();\n }\n\n /**\n * Define link canonical da página\n * @param url url canonical\n */\n public setCanonicalHref(url?: string) {\n if (!this.canonicalTag) {\n this.canonicalTag = this.getCanonicalTag();\n }\n\n let path = this.location.path();\n if (!path.startsWith('/')) {\n path = `/${path}`;\n }\n\n const canonicalUrl = url && this.isCustomCanonical(url) ? url : `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${path}`;\n\n this.canonicalTag.setAttribute('href', canonicalUrl);\n return this;\n }\n\n /**\n * Verifica se a URL fornecida é um link canonical personalizado\n * @param url URL fornecida\n */\n public isCustomCanonical(url: string): boolean {\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n return url.startsWith(siteurl);\n }\n\n /**\n * Obtém uma url válida na aplicação proveniente de uma URL gerada\n * pelo plugin Yoast para canonical automático.\n * Ex.: https://wp.rededorsaoluiz.com.br/brasil/especialidades/cardiologia/\n * @param urlFromWpApi URL canonica gerada pelo Yoast Plugin.\n */\n toLocalCanonical(urlFromWpApi: string): string {\n const apiUrl = this.libConfig?.wpUrl ?? '';\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\n const unidadeSlug = this.unidadeSlug;\n let converted = urlFromWpApi.replace(apiUrl, siteurl);\n if (unidadeSlug !== '/' && converted.includes(`/${unidadeSlug}/`)) {\n converted = converted.replace(`/${unidadeSlug}/`, `${this.unidadePath}`);\n }\n return converted;\n }\n\n getPostContent(post: WpPost): string {\n const content = post.acf['rdsl_post_content'] ? post.acf.rdsl_post_content.find((content: any) => content.acf_fc_layout === 'text_html') : null;\n return content?.content || post.content.rendered || '';\n }\n\n addArticleScript(post: WpPost, scriptName: string): void {\n const postContent = this.getPostContent(post);\n const postHeaderImage = post.acf['rdsl_post_header_img']\n ? {\n url: post.acf['rdsl_post_header_img'].url,\n width: post.acf['rdsl_post_header_img'].width,\n height: post.acf['rdsl_post_header_img'].height,\n }\n : null;\n\n const structuredData = {\n '@context': 'https://schema.org',\n '@type': 'Article',\n mainEntityOfPage: `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`,\n headline: post.title?.rendered,\n datePublished: post.date_gmt,\n publisher: {\n '@type': 'Organization',\n name: 'Rede D’Or',\n },\n description: post.title?.rendered,\n articleBody: removeHtmlTags(he.decode(postContent)),\n dateModified: post.modified_gmt,\n image: {\n '@type': 'ImageObject',\n url: postHeaderImage?.url || post.featured_media_path || '',\n height: postHeaderImage?.height || '',\n width: postHeaderImage?.width || '',\n },\n author: {\n '@type': 'Organization',\n name: 'Rede D’Or',\n },\n wordcount: postContent.split(' ').length,\n };\n\n const script = this.document.createElement('script');\n\n script.type = 'application/ld+json';\n script.id = scriptName;\n script.innerHTML = JSON.stringify(structuredData);\n\n this.document.head.appendChild(script);\n }\n\n removeArticleScript(scriptName: string): void {\n const script = this.document.getElementById(scriptName);\n script?.remove();\n }\n\n public setUnidade({ unidade = null, unidadeName = '', unidadePath = '', unidadeSlug = '' }: SeoUnidade) {\n this.unidade = unidade;\n this.unidadeName = unidadeName;\n this.unidadePath = unidadePath;\n this.unidadeSlug = unidadeSlug;\n }\n}\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(message?: 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(message = 'Redirecionado permanentemente'): this {\r\n if (this.response) {\r\n this.response.statusCode = 301;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nexport type HttpCacheDirective =\r\n | 'public'\r\n | 'private'\r\n | 'no-store'\r\n | 'no-cache'\r\n | 'must-revalidate'\r\n | 'no-transform'\r\n | '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';\n// import * as CryptoJS from 'crypto-js';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TransferStateService {\n private keys = new Map<string, StateKey<string>>();\n cryptoKey = '3c2d70ab27a420aca8cf4191611fa4ee';\n\n constructor(private readonly transferState: TransferState) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setKey(name: any, response: any | any[]) {\n return; // teste removendo transferstate\n // let key = this.keys.get(name);\n // if (!key) {\n // key = makeStateKey(name);\n // this.keys.set(name, key);\n // }\n // const jsonString = JSON.stringify(response);\n // const cryptedResponse = CryptoJS.AES.encrypt(jsonString, this.cryptoKey).toString();\n // this.transferState.set(key, cryptedResponse);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getKey(name: string, defaultValue: any | any[] = null): any | any[] {\n return null; // teste removendo transferstate\n // let key = this.keys.get(name);\n // if (!key) {\n // key = makeStateKey(name);\n // this.keys.set(name, key);\n // }\n // const cryptedData = this.transferState.get(key, defaultValue);\n // if (!cryptedData) {\n // return defaultValue;\n // }\n // try {\n // const bytes = CryptoJS.AES.decrypt(cryptedData, this.cryptoKey);\n // const decryptedResponseJson = bytes.toString(CryptoJS.enc.Utf8);\n // const decryptedResponse = JSON.parse(decryptedResponseJson);\n // return decryptedResponse;\n // } catch (error) {\n // return defaultValue;\n // }\n }\n\n remove(name: string) {\n let key = this.keys.get(name);\n if (!key) {\n key = makeStateKey(name);\n this.keys.set(name, key);\n }\n this.transferState.remove(key);\n }\n}\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\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 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 { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { PrivacyToolsService } from '../../../../services';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-disclaimer',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './footer-disclaimer.component.html',\r\n styleUrl: './footer-disclaimer.component.scss',\r\n})\r\nexport class FooterDisclaimerComponent {\r\n @Input() currentYear: number = new Date().getFullYear();\r\n @Input() disclaimerText: string = '';\r\n @Output() footerPrivacyClick: EventEmitter<Event> = new EventEmitter();\r\n @Output() footerCookieClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(public privacyTools: PrivacyToolsService) {}\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=\"rdsite-footer-disclaimer\">\r\n <div class=\"rdsite-footer-disclaimer-copy\">©{{ currentYear }} {{ disclaimerText }}</div>\r\n <ul class=\"rdsite-footer-disclaimer-links\">\r\n <li>\r\n <a\r\n href=\"https://dpo.privacytools.com.br/policy-view/DPO8r0aQk/1/aviso-de-privacidade/pt_BR\"\r\n target=\"_blank\"\r\n data-testid=\"_avisoPrivacidade\"\r\n (click)=\"footerPrivacyClicked($event)\"\r\n >\r\n Aviso de Privacidade\r\n </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","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","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}\r\n","export const formatPhone = (phone: string): string => {\n if (!phone) return '';\n\n const cleanPhone = phone.replace(/[^0-9]/gi, '');\n let formatedPhone = '';\n if (cleanPhone.length === 12) {\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (cleanPhone.length === 11) {\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (cleanPhone.length === 10) {\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (cleanPhone.length === 9) {\n formatedPhone = cleanPhone.replace(/(\\d{5})?(\\d{4})/, '$1-$2');\n } else if (cleanPhone.length === 8) {\n formatedPhone = cleanPhone.replace(/(\\d{4})?(\\d{4})/, '$1-$2');\n } else if (cleanPhone.length === 7) {\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{4})/, '$1-$2');\n } else {\n formatedPhone = cleanPhone;\n }\n return formatedPhone;\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID, TemplateRef } from '@angular/core';\nimport { PhoneService } from '../../services/phone/phone.service';\nimport { ModalService } from '../../services/modal/modal.service';\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\nimport { formatPhone } from '../../helpers/formatPhone.func';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[rdsitephonemodal]',\n standalone: true,\n})\nexport class RdsitePhoneModalDirective {\n @Input() rdsitephonemodal: TemplateRef<HTMLElement> | null = null;\n\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\n\n constructor(\n private modalService: ModalService,\n @Inject(PLATFORM_ID) private platformId: object,\n private element: ElementRef<Element>,\n private phoneService: PhoneService,\n ) {}\n\n // Intercepta cliques em telefones e aplica comportamentos diferentes em tamanho desktop.\n @HostListener('click', ['$event'])\n public onClick(event: Event) {\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName) || !this.phoneService.phoneModalIsAllowed)\n return;\n\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\n if (this.phoneService.isPhoneModal(href)) {\n this.openPhoneModal(event, href);\n }\n }\n\n public openPhoneModal(event: Event, href: string) {\n event.preventDefault();\n event.stopPropagation();\n this.modalService.setContent(this.rdsitephonemodal || this.modalService.defaultPhoneModal, { phone: formatPhone(href) });\n this.modalService.setStyle(RdsiteModalComponentStyle.DEFAULT);\n this.modalService.open();\n }\n}\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\n\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 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 ) {}\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 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 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, '_blank');\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 noBaseHref = href.includes(siteBasePath) ? href.replace(siteBasePath, '') : href;\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 { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './footer-menu-item.component.html',\r\n styleUrl: './footer-menu-item.component.scss',\r\n})\r\nexport class FooterMenuItemComponent {\r\n @Input() url: string = '';\r\n @Input() title: string = '';\r\n @Input() children: MenuItem[] = [];\r\n @Input() altStyle: boolean = false;\r\n @Output() footerMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n active: boolean = false;\r\n\r\n toggleSubMenu(event: Event) {\r\n event.stopPropagation();\r\n this.active = !this.active;\r\n }\r\n\r\n footerMenuItemClicked(event: Event) {\r\n this.footerMenuItemClick.emit(event);\r\n }\r\n}\r\n","@if (title) {\r\n <div class=\"rdsite-footer-menu-item\" [ngClass]=\"{ alt: altStyle, 'have-children': children.length }\" (click)=\"toggleSubMenu($event)\">\r\n <a class=\"rdsite-footer-menu-item-link\" [href]=\"url\" rdsitelink [title]=\"title\" (click)=\"toggleSubMenu($event); footerMenuItemClicked($event)\">\r\n <span>{{ title }}</span>\r\n </a>\r\n\r\n @if (children.length) {\r\n <cura-icon [attr.name]=\"active ? 'up' : 'down'\" size=\"20\" color=\"neutral-purewhite\"></cura-icon>\r\n }\r\n </div>\r\n\r\n @if (children.length) {\r\n <ul class=\"rdsite-footer-menu-item-children\" [ngClass]=\"{ closed: !active }\">\r\n @for (submenu of children; track submenu.title) {\r\n <li class=\"rdsite-footer-menu-item-children-item\">\r\n <rdsite-footer-menu-item\r\n [url]=\"submenu.url\"\r\n [title]=\"submenu.title\"\r\n [children]=\"submenu?.children ?? []\"\r\n [altStyle]=\"true\"\r\n (footerMenuItemClick)=\"footerMenuItemClicked($event)\"\r\n ></rdsite-footer-menu-item>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterMenuItemComponent } from '../footer-menu-item/footer-menu-item.component';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-menu',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, FooterMenuItemComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './footer-menu.component.html',\r\n styleUrl: './footer-menu.component.scss',\r\n})\r\nexport class FooterMenuComponent {\r\n @Input() footerMenu: MenuItem[] = [];\r\n @Input() partnerships: Partial<MenuItem> | null = null;\r\n @Output() footerMenuItemClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n footerMenuItemClicked(event: Event) {\r\n this.footerMenuItemClick.emit(event);\r\n }\r\n}\r\n","@if (footerMenu.length) {\r\n <div class=\"rdsite-footer-menu\">\r\n <nav>\r\n <ul class=\"rdsite-footer-menu-list\">\r\n @for (menu of footerMenu; track menu.title) {\r\n <li class=\"rdsite-footer-menu-list-item\">\r\n <rdsite-footer-menu-item\r\n [url]=\"menu.url\"\r\n [title]=\"menu.title\"\r\n [children]=\"menu?.children ?? []\"\r\n (footerMenuItemClick)=\"footerMenuItemClicked($event)\"\r\n ></rdsite-footer-menu-item>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n}\r\n\r\n@if (partnerships) {\r\n <div class=\"rdsite-footer-partnerships\">\r\n <rdsite-footer-menu-item\r\n url=\"\"\r\n [title]=\"partnerships.title ?? ''\"\r\n [children]=\"partnerships.children ?? []\"\r\n (footerMenuItemClick)=\"footerMenuItemClicked($event)\"\r\n ></rdsite-footer-menu-item>\r\n </div>\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { MenuSocialMedia } from '../../../../models/menu-item.model';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-footer-social-medias',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './footer-social-medias.component.html',\r\n styleUrl: './footer-social-medias.component.scss',\r\n})\r\nexport class FooterSocialMediasComponent {\r\n @Input() logo: any = null;\r\n @Input() partnershipLogo: any = null;\r\n @Input() phone: string = '';\r\n @Input() socialMenu: MenuSocialMedia[] = [];\r\n @Output() footerSocialMediaClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n footerSocialMediaClicked(event: Event) {\r\n this.footerSocialMediaClick.emit(event);\r\n }\r\n}\r\n","@if (logo || phone) {\r\n <div class=\"rdsite-footer-social-medias-contact\">\r\n @if (logo) {\r\n <div class=\"logo\">\r\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" [title]=\"logo?.title\" />\r\n </div>\r\n }\r\n @if (partnershipLogo) {\r\n <div class=\"partnership-logo\">\r\n <img [src]=\"partnershipLogo?.url\" [alt]=\"partnershipLogo?.alt\" [title]=\"partnershipLogo?.title\" />\r\n </div>\r\n }\r\n @if (phone) {\r\n <div class=\"phone\">\r\n <a rdsitelink href=\"tel:{{ phone }}\">\r\n <cura-icon name=\"phone\" size=\"20\" color=\"neutral-purewhite\"></cura-icon>\r\n {{ phone }}\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n}\r\n\r\n<div class=\"rdsite-footer-social-medias-social\">\r\n <nav>\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 <cura-icon [name]=\"social.icon\" size=\"16\" color=\"neutral-purewhite\"></cura-icon>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n</div>\r\n","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 footer: {},\r\n disclaimer: {},\r\n menu: {},\r\n 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.footer = {\r\n '--footer-bg-color': primaryDarker,\r\n '--footer-color': neutralWhite,\r\n '--footer-alt-color': primaryLighter,\r\n };\r\n theme.disclaimer = {\r\n '--footer-disc-bg-color': neutralPurewhite,\r\n '--footer-disc-color': neutralBlack,\r\n '--footer-disc-alt-color': primaryBase,\r\n };\r\n theme.menu = {\r\n '--footer-menu-hover-color': accentLight,\r\n '--footer-menu-active-color': accentBase,\r\n '--footer-menu-alt-hover-color': primaryLight,\r\n '--footer-menu-alt-active-color': primaryBase,\r\n };\r\n theme.social = {\r\n '--footer-social-color': neutralWhite,\r\n };\r\n } else {\r\n theme.footer = {\r\n '--footer-bg-color': primaryDarker,\r\n '--footer-color': neutralWhite,\r\n '--footer-alt-color': primaryLighter,\r\n };\r\n theme.disclaimer = {\r\n '--footer-disc-bg-color': neutralPurewhite,\r\n '--footer-disc-color': neutralBlack,\r\n '--footer-disc-alt-color': primaryBase,\r\n };\r\n theme.menu = {\r\n '--footer-menu-hover-color': accentLight,\r\n '--footer-menu-active-color': accentBase,\r\n '--footer-menu-alt-hover-color': primaryLight,\r\n '--footer-menu-alt-active-color': primaryBase,\r\n };\r\n theme.social = {\r\n '--footer-social-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 { Component, Input } from '@angular/core';\r\nimport { FooterDisclaimerComponent } from './components/footer-disclaimer/footer-disclaimer.component';\r\nimport { FooterMenuComponent } from './components/footer-menu/footer-menu.component';\r\nimport { FooterSocialMediasComponent } from './components/footer-social-medias/footer-social-medias.component';\r\nimport { CuraService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterTheme, FooterThemeKeys } from './models/FooterTheme.model';\r\nimport { getFooterTheme } from './helpers/footerTheme.func';\r\n\r\n@Component({\r\n selector: 'rdsite-footer',\r\n standalone: true,\r\n imports: [CommonModule, FooterDisclaimerComponent, FooterMenuComponent, FooterSocialMediasComponent],\r\n templateUrl: './footer.component.html',\r\n styleUrl: './footer.component.scss',\r\n})\r\nexport class FooterComponent {\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.footerTheme = getFooterTheme(this.project, this.theme, this.curaService);\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.footerTheme = getFooterTheme(this.project, this.theme, this.curaService);\r\n }\r\n private _theme: string = 'default';\r\n\r\n footerTheme: FooterTheme = {\r\n footer: {},\r\n disclaimer: {},\r\n menu: {},\r\n social: {},\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n\r\n getCuraCssVars(context: FooterThemeKeys) {\r\n return this.footerTheme[context];\r\n }\r\n}\r\n","<footer class=\"rdsite-footer\" [ngStyle]=\"getCuraCssVars('footer')\">\r\n <div class=\"content\">\r\n <div class=\"content-social\" [ngStyle]=\"getCuraCssVars('social')\">\r\n <ng-content select=\"rdsite-footer-social-medias\"></ng-content>\r\n </div>\r\n <div class=\"content-menu\" [ngStyle]=\"getCuraCssVars('menu')\">\r\n <ng-content select=\"rdsite-footer-menu\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"disclaimer\" [ngStyle]=\"getCuraCssVars('disclaimer')\">\r\n <div class=\"disclaimer-content\">\r\n <ng-content select=\"rdsite-footer-disclaimer\"></ng-content>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { CuraService } from '../../../services';\nimport { HeaderTheme } from '../models/HeaderTheme.model';\n\nexport const getHeaderTheme = (project: string = 'site', themeStyle: string = 'default', curaService: CuraService) => {\n const theme: HeaderTheme = {\n header: {},\n aux: {},\n action: {},\n main: {},\n side: {},\n };\n\n const [primaryLighter, primaryLight, primaryBase, primaryDark, primaryDarker] = [\n curaService.getColor('primary-lighter'),\n curaService.getColor('primary-light'),\n curaService.getColor('primary-base'),\n curaService.getColor('primary-dark'),\n curaService.getColor('primary-darker'),\n ];\n const [accentLighter, accentLight, accentBase] = [\n curaService.getColor('accent-lighter'),\n curaService.getColor('accent-light'),\n curaService.getColor('accent-base'),\n ];\n const [neutralPurewhite, neutralBase] = [curaService.getColor('neutral-purewhite'), curaService.getColor('neutral-base')];\n\n switch (project) {\n case 'site':\n if (themeStyle === 'default') {\n theme.header = {\n '--header-bg-color': primaryBase,\n '--header-overlay-bg-color': primaryDarker,\n };\n theme.aux = {\n '--header-aux-bg-color': primaryBase,\n '--header-aux-container-bg-color': primaryDarker,\n '--header-aux-drop-bg-color': neutralPurewhite,\n '--header-aux-color': neutralPurewhite,\n '--header-aux-hover': accentLight,\n '--header-aux-active': accentBase,\n '--header-aux-color-alt': primaryLighter,\n '--header-aux-hover-alt': primaryLight,\n '--header-aux-active-alt': primaryBase,\n };\n theme.action = {\n '--header-act-bg-color': neutralBase,\n '--header-act-items-bg-color': neutralPurewhite,\n '--header-act-items-color': primaryBase,\n '--header-act-items-hover': primaryLight,\n '--header-act-items-active': primaryDark,\n };\n theme.main = {\n '--header-main-bg-color': primaryBase,\n '--header-main-color': neutralPurewhite,\n '--header-main-hover': primaryLighter,\n '--header-main-bg-hover': primaryDarker,\n '--header-main-active': primaryLight,\n '--header-main-dd-bg-color': primaryDarker,\n '--header-main-dd-color': neutralPurewhite,\n '--header-main-dd-alt-color': primaryLighter,\n '--header-main-dd-alt-hover': neutralPurewhite,\n '--header-main-dd-lv2-content-bg': primaryBase,\n '--header-main-dd-lv2-bg': primaryDarker,\n '--header-main-dd-lv3-bg': primaryBase,\n '--header-main-dd-lv4-bg': primaryDark,\n '--header-main-dd-cta-bg': neutralPurewhite,\n '--header-main-dd-cta-color': primaryBase,\n };\n theme.side = {\n '--header-side-bg-color': primaryDarker,\n '--header-side-border-bottom': primaryBase,\n '--header-side-open-color': primaryLight,\n '--header-side-color': neutralPurewhite,\n '--header-side-hover': accentLighter,\n '--header-side-active': accentLight,\n '--header-side-alt-color': primaryLighter,\n '--header-side-alt-hover': neutralPurewhite,\n '--header-side-alt-active': primaryLight,\n };\n } else {\n theme.header = {\n '--header-bg-color': neutralPurewhite,\n '--header-overlay-bg-color': primaryDarker,\n };\n theme.aux = {\n '--header-aux-bg-color': primaryDark,\n '--header-aux-container-bg-color': primaryBase,\n '--header-aux-drop-bg-color': neutralPurewhite,\n '--header-aux-color': neutralPurewhite,\n '--header-aux-hover': accentLight,\n '--header-aux-active': accentBase,\n '--header-aux-color-alt': neutralPurewhite,\n '--header-aux-hover-alt': primaryLighter,\n '--header-aux-active-alt': primaryLight,\n };\n theme.action = {\n '--header-act-bg-color': primaryBase,\n '--header-act-items-bg-color': primaryDark,\n '--header-act-items-color': primaryLight,\n '--header-act-items-hover': primaryLighter,\n '--header-act-items-active': primaryBase,\n };\n theme.main = {\n '--header-main-bg-color': neutralPurewhite,\n '--header-main-color': primaryBase,\n '--header-main-hover': primaryLighter,\n '--header-main-bg-hover': primaryDarker,\n '--header-main-active': primaryLight,\n '--header-main-dd-bg-color': primaryDarker,\n '--header-main-dd-color': neutralPurewhite,\n '--header-main-dd-alt-color': primaryLighter,\n '--header-main-dd-alt-hover': neutralPurewhite,\n '--header-main-dd-lv2-content-bg': primaryBase,\n '--header-main-dd-lv2-bg': primaryDarker,\n '--header-main-dd-lv3-bg': primaryBase,\n '--header-main-dd-lv4-bg': primaryDark,\n '--header-main-dd-cta-bg': neutralPurewhite,\n '--header-main-dd-cta-color': primaryBase,\n };\n theme.side = {\n '--header-side-bg-color': primaryDarker,\n '--header-side-border-bottom': primaryBase,\n '--header-side-open-color': primaryLight,\n '--header-side-color': neutralPurewhite,\n '--header-side-hover': accentLighter,\n '--header-side-active': accentLight,\n '--header-side-alt-color': primaryLighter,\n '--header-side-alt-hover': neutralPurewhite,\n '--header-side-alt-active': primaryLight,\n };\n }\n break;\n\n default:\n break;\n }\n\n return theme;\n};\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\">\n <div class=\"rdsite-search-control\" [ngClass]=\"{ disabled: !enable || !searchControl.enabled, focus: focus }\">\n <label class=\"label-hidden\">{{ label }}</label>\n <input\n #searchInput\n class=\"rdsite-search-control-input\"\n [type]=\"'text'\"\n name=\"term\"\n autocomplete=\"off\"\n [placeholder]=\"label\"\n [formControl]=\"searchControl\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keyup.enter)=\"onSubmit($event)\"\n enterkeyhint=\"search\"\n (search)=\"onSubmit($event)\"\n />\n\n <div class=\"rdsite-search-control-icon\">\n <cura-icon\n name=\"closeCircle\"\n size=\"20\"\n color=\"primary-base\"\n (click)=\"clean()\"\n class=\"close\"\n [ngClass]=\"{ active: (searchControl.value || canClean) && !loading }\"\n ></cura-icon>\n <cura-icon name=\"search\" size=\"20\" color=\"primary-base\" (click)=\"onSubmitByClick()\" class=\"search\" [ngClass]=\"{ active: !loading }\"></cura-icon>\n @if (loading) {\n <cura-loader-circle color=\"primary\" size=\"small\"></cura-loader-circle>\n }\n </div>\n </div>\n</div>\n","import { CommonModule, DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport { Component, effect, EventEmitter, Inject, Input, Output, PLATFORM_ID } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { getHeaderTheme } from './helpers/headerTheme.func';\r\nimport { HeaderTheme, HeaderThemeKeys } 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\n\r\n@Component({\r\n selector: 'rdsite-header',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent, SearchComponent],\r\n templateUrl: './header.component.html',\r\n styleUrl: './header.component.scss',\r\n})\r\nexport class HeaderComponent {\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.headerTheme = getHeaderTheme(this.project, this.theme, this.curaService);\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.headerTheme = getHeaderTheme(this.project, this.theme, this.curaService);\r\n }\r\n private _theme: string = 'default';\r\n\r\n headerTheme: HeaderTheme = {\r\n header: {},\r\n aux: {},\r\n action: {},\r\n main: {},\r\n side: {},\r\n };\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 @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 getCuraCssVars(context: HeaderThemeKeys) {\r\n return this.headerTheme[context];\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","<header class=\"rdsite-header\" [ngStyle]=\"getCuraCssVars('header')\">\r\n <div class=\"rdsite-header-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div class=\"rdsite-header-logo\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-logo\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-aux-menu\" [ngStyle]=\"getCuraCssVars('aux')\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-aux-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-action-menu\" [ngStyle]=\"getCuraCssVars('action')\">\r\n <ng-content select=\"rdsite-header-action-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-main-menu\" [ngStyle]=\"getCuraCssVars('main')\">\r\n <ng-content select=\"rdsite-header-main-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-side-menu\" [ngStyle]=\"getCuraCssVars('side')\">\r\n <!-- <ng-content select=\"rdsite-header-side-menu\"></ng-content> -->\r\n <ng-content select=\"#rdsite-header-side-menu\"></ng-content>\r\n </div>\r\n @if (searchControl) {\r\n <div class=\"rdsite-header-search\">\r\n <rdsite-search [searchControl]=\"searchControl\" [label]=\"'O que você procura?'\" [debounceTime]=\"1500\" [setFocus]=\"true\" (enterPress)=\"doSearch($event)\">\r\n </rdsite-search>\r\n </div>\r\n }\r\n </div>\r\n\r\n <rdsite-overlay class=\"search-overlay\" [ngClass]=\"{ active: headerService.showSearch() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n</header>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-header-action-menu',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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 @Output() headerLoginClick: EventEmitter<Event> = new EventEmitter();\r\n\r\n constructor(public headerService: HeaderService) {}\r\n\r\n headerLoginClicked(event: Event) {\r\n this.headerLoginClick.emit(event);\r\n }\r\n}\r\n","<div class=\"rdsite-header-action-menu\">\r\n @if (loginUrl) {\r\n <div class=\"rdsite-header-action-menu-login\">\r\n <a [href]=\"loginUrl\" (click)=\"headerLoginClicked($event)\" rdsitelink class=\"rdsite-header-action-menu-login-link\">\r\n <cura-icon class=\"icon-mobile\" name=\"profileCircle\" size=\"20\" color=\"primary-base\"></cura-icon>\r\n <cura-icon class=\"icon-desktop\" name=\"profileCircle\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n <span>ENTRAR</span>\r\n </a>\r\n </div>\r\n }\r\n\r\n <div class=\"rdsite-header-action-menu-actions\">\r\n @if (showSearch) {\r\n <button type=\"button\" class=\"rdsite-header-action-menu-actions-button\" (click)=\"headerService.toggleShowSearch()\">\r\n @if (!headerService.showSearch()) {\r\n <cura-icon name=\"search\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n <span>BUSCAR</span>\r\n } @else {\r\n <cura-icon name=\"close\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n <span>FECHAR</span>\r\n }\r\n </button>\r\n }\r\n <button type=\"button\" class=\"rdsite-header-action-menu-actions-button\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <cura-icon name=\"menuHamburguer\" size=\"16\" color=\"primary-base\"></cura-icon>\r\n </button>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu',\r\n standalone: true,\r\n imports: [CommonModule],\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=\"rdsite-header-aux-menu-container\"></ng-content>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu-container',\r\n standalone: true,\r\n imports: [CommonModule],\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","<nav>\r\n <ul>\r\n <ng-content select=\"#rdsite-header-aux-menu-item\"></ng-content>\r\n <ng-content select=\"#geoloc\"></ng-content>\r\n </ul>\r\n</nav>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu-item-dropdown',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\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 class=\"dropdown-list\">\r\n @for (dropdownItem of items; track dropdownItem.ID) {\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, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { RdsitePhoneModalDirective } from '../../../../directives/rdsite-phone-modal/rdsite-phone-modal.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\n\r\n@Component({\r\n selector: 'rdsite-header-aux-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, RdsitePhoneModalDirective, HeaderAuxMenuItemDropdownComponent],\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 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=\"header-aux-menu-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 <cura-icon [name]=\"isMenuHover || isDropdownHover ? 'up' : 'down'\" size=\"16\"></cura-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n class=\"header-aux-menu-item-dropdown\"\r\n [ngStyle]=\"{ display: isMenuHover || isDropdownHover ? 'block' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n >\r\n <rdsite-header-aux-menu-item-dropdown\r\n [items]=\"item.children ?? []\"\r\n (headerAuxMenuItemDDClick)=\"headerAuxMenuItemDDClicked($event)\"\r\n ></rdsite-header-aux-menu-item-dropdown>\r\n </div>\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\n\r\n@Component({\r\n selector: 'rdsite-header-logo',\r\n standalone: true,\r\n imports: [RdsiteLinkDirective],\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=\"lazy\" [src]=\"src\" [alt]=\"alt\" [title]=\"title\" />\r\n</a>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rdsite-header-main-menu',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './header-main-menu.component.html',\r\n styleUrl: './header-main-menu.component.scss',\r\n})\r\nexport class HeaderMainMenuComponent {}\r\n","<nav>\r\n <ul>\r\n <ng-content select=\"#rdsite-header-main-menu-item\"></ng-content>\r\n </ul>\r\n</nav>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, signal } from '@angular/core';\r\nimport { MenuItem } from '../../../../models/menu-item.model';\r\nimport { RdsiteLinkDirective } from '../../../../directives';\r\nimport { BehaviorSubject, debounceTime } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-header-main-menu-item-dropdown',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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 {\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 BehaviorSubject<{ item: MenuItem | null; list: MenuItem[] }>({ item: null, list: [] });\r\n lv3Item$ = new BehaviorSubject<{ item: MenuItem | null; list: MenuItem[] }>({ item: null, list: [] });\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() {\r\n const timeToDebounce = 50;\r\n\r\n 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.ID == item?.ID));\r\n this.selectedLv2Item = item;\r\n }\r\n });\r\n\r\n 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.ID == item?.ID));\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","@if (item) {\r\n <div class=\"header-main-menu-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.ID) {\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 <span>{{ itemLv2.title }}</span>\r\n @if (itemLv2?.children?.length) {\r\n <cura-icon name=\"arrowRightCircle\" size=\"20\" color=\"primary-light\"></cura-icon>\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.ID) {\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 <span>{{ itemLv3.title }}</span>\r\n @if (itemLv3?.children?.length) {\r\n <cura-icon name=\"arrowRightCircle\" size=\"20\" color=\"primary-light\"></cura-icon>\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.ID) {\r\n <li>\r\n <a class=\"link lv4\" [href]=\"itemLv4.url\" rdsitelink (click)=\"closeDropdown(); headerMainMenuItemDDClicked($event)\">\r\n <span>{{ itemLv4.title }}</span>\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 [src]=\"destaque.imagem?.url\" [alt]=\"destaque.titulo\" />\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 <cura-icon [name]=\"cta.icone\" size=\"20\" color=\"primary-base\"></cura-icon>\r\n <span>{{ cta.titulo }}</span>\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, Input, OnDestroy, Output, ViewChild } from '@angular/core';\r\nimport { RdsiteLinkDirective } from '../../../../directives/rdsite-link/rdsite-link.directive';\r\nimport { RdsitePhoneModalDirective } from '../../../../directives/rdsite-phone-modal/rdsite-phone-modal.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 { BehaviorSubject, debounceTime } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'rdsite-header-main-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective, RdsitePhoneModalDirective, HeaderMainMenuItemDropdownComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n constructor() {\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.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.dropdownOpen$.unsubscribe();\r\n }\r\n}\r\n","@if (item) {\r\n <a\r\n class=\"header-main-menu-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 <cura-icon [name]=\"!!dropdownComponent?.opened() ? 'up' : 'down'\" size=\"16\"></cura-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <div\r\n class=\"header-main-menu-item-dropdown-container\"\r\n [ngStyle]=\"{ display: !!dropdownComponent?.opened() ? 'block' : 'none' }\"\r\n (mouseenter)=\"dropdownHoverChange(true)\"\r\n (mouseleave)=\"dropdownHoverChange(false)\"\r\n >\r\n <rdsite-header-main-menu-item-dropdown\r\n [item]=\"item\"\r\n (headerMainMenuItemDDClick)=\"headerMainMenuItemDDClicked($event)\"\r\n (headerMainMenuHighlightDDClick)=\"headerMainMenuHighlightDDClicked($event)\"\r\n (headerMainMenuCtaDDClick)=\"headerMainMenuCtaDDClicked($event)\"\r\n ></rdsite-header-main-menu-item-dropdown>\r\n </div>\r\n }\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { HeaderService } from '../../services/header.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayComponent } from '../../../overlay/overlay.component';\r\n\r\n@Component({\r\n selector: 'rdsite-header-side-menu',\r\n standalone: true,\r\n imports: [CommonModule, OverlayComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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(public headerService: HeaderService) {}\r\n\r\n overlayClick() {\r\n this.headerService.toggleShowSideMenu(false);\r\n }\r\n}\r\n","<div class=\"rdsite-header-side-menu\" [ngClass]=\"{ active: headerService.showSideMenu() }\">\r\n <div class=\"side-menu\">\r\n <div class=\"side-menu-close\">\r\n <button type=\"button\" (click)=\"headerService.toggleShowSideMenu()\">\r\n <cura-icon name=\"close\" size=\"20\" color=\"neutral-purewhite\"></cura-icon>\r\n </button>\r\n </div>\r\n\r\n <nav>\r\n <ul class=\"side-menu-content\">\r\n <ng-content select=\"#rdsite-header-side-menu-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, Input, Output } 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\n\r\n@Component({\r\n selector: 'rdsite-header-side-menu-item',\r\n standalone: true,\r\n imports: [CommonModule, RdsiteLinkDirective],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\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() level: number = 1;\r\n @Input() fontSize: number = 16;\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(public headerService: HeaderService) {}\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=\"rdsite-header-side-menu-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 [ngClass]=\"{ 'fourth-level': level >= 4 }\">{{ item.title }}</span>\r\n @if (!item.children?.length) {\r\n <cura-icon name=\"right\" size=\"20\" color=\"primary-lighter\"></cura-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <cura-icon [attr.name]=\"item.active ? 'up' : 'down'\" size=\"20\" [attr.color]=\"item.active ? 'primary-light' : 'neutral-purewhite'\"></cura-icon>\r\n }\r\n </div>\r\n\r\n @if (item.children?.length) {\r\n <ul class=\"rdsite-header-side-menu-item-list\" [ngClass]=\"{ active: item.active }\">\r\n @for (child of item.children; track item.title) {\r\n <li>\r\n <rdsite-header-side-menu-item\r\n [item]=\"child\"\r\n [fontSize]=\"fontSize\"\r\n [altStyle]=\"altStyle\"\r\n [level]=\"level + 1\"\r\n (headerSideMenuItemClick)=\"headerSideMenuItemClicked($event)\"\r\n ></rdsite-header-side-menu-item>\r\n </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';\nimport { CuraService } from '../../services';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rdsite-side-ctas',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './side-ctas.component.html',\n styleUrl: './side-ctas.component.scss',\n})\nexport class SideCtasComponent {\n @HostBinding('style') style = {\n '--color-right': this.curaService.getColor('primary-darker'),\n };\n\n constructor(private curaService: CuraService) {}\n}\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('neutral-purewhite'),\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';\n\n@Component({\n selector: 'rdsite-side-ctas-right-top',\n standalone: true,\n imports: [],\n templateUrl: './side-ctas-right-top.component.html',\n styleUrl: './side-ctas-right-top.component.scss',\n})\nexport class SideCtasRightTopComponent {}\n","<ng-content></ng-content>\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 { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AlgoliaConfig, AlgoliaSearchParams, RdslAlgoliaMultipleIndex } from '../../models/algolia-search-api.model';\r\nimport { AlgoliaSearchApiService } from '../../services/algolia-search-api/algolia-search-api.service';\r\nimport { AlgoliaOption } from '../../models/algolia.model';\r\n\r\n@Component({\r\n selector: 'rdsite-algolia',\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './algolia.component.html',\r\n styleUrl: './algolia.component.scss',\r\n})\r\nexport class AlgoliaComponent {\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\r\n @Input() label = '';\r\n @Input() name = 'cura-dropdown';\r\n @Input() required = false;\r\n @Input() selected = false;\r\n @Input() value = '';\r\n @Input() placeholder = 'Faça a sua busca';\r\n @Input() deleteButton = false;\r\n @Input() iconName = 'search';\r\n @Input() status: 'default' | 'error' = 'default';\r\n\r\n @Input() startSearchAtCharLen: number = 2;\r\n @Input() hintTitle = 'Mais Buscados';\r\n @Input() hints: AlgoliaOption[] = [];\r\n @Input() searchParams: AlgoliaSearchParams = {};\r\n\r\n 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() resetItem: EventEmitter<{}> = new EventEmitter();\r\n @Output() algoliaResults: EventEmitter<{}> = new EventEmitter();\r\n\r\n constructor(private readonly algoliaSearchApiService: AlgoliaSearchApiService) {}\r\n\r\n resetValues() {\r\n this.resetItem.emit();\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.resetValues();\r\n }\r\n }\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 search(): void {\r\n if (this.searchTerm?.length >= this.startSearchAtCharLen && 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","<cura-dropdown-search\r\n [value]=\"value\"\r\n [status]=\"status\"\r\n [name]=\"name\"\r\n [required]=\"required\"\r\n [selected]=\"selected\"\r\n [label]=\"label\"\r\n [iconName]=\"iconName\"\r\n [placeholder]=\"placeholder\"\r\n (valueChange)=\"resetValues()\"\r\n (input)=\"termChange($event)\"\r\n>\r\n @if (status === 'error') {\r\n <cura-dropdown-search-option name=\"error\">\r\n <div class=\"head\">\r\n <cura-icon size=\"24\" name=\"alertCircle\" color=\"error-700\"></cura-icon>\r\n <cura-paragraph size=\"small\" color=\"error-700\" weight=\"bold\"> Não há nenhum resultado para \"{{ searchTerm.toUpperCase() }}\".</cura-paragraph>\r\n </div>\r\n </cura-dropdown-search-option>\r\n }\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n","// Components\r\nexport * from './footer/footer.component';\r\nexport * from './footer/components/footer-disclaimer/footer-disclaimer.component';\r\nexport * from './footer/components/footer-menu/footer-menu.component';\r\nexport * from './footer/components/footer-menu-item/footer-menu-item.component';\r\nexport * from './footer/components/footer-social-medias/footer-social-medias.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/algolia.component';\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatPhone } from '../../helpers/formatPhone.func';\n\n@Pipe({\n name: 'phone',\n standalone: true,\n})\nexport class PhonePipe implements PipeTransform {\n transform(phone: string): string {\n return formatPhone(phone);\n }\n}\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 RdsiteModalDrawerComponentStyle {\n DEFAULT = 'default',\n DRAWERDOCTOR = 'doctor-card',\n}\n","/*\n * Public API Surface of site-front-end-lib\n */\n\n// Components\nexport * from './lib/components';\n\n// Directives\nexport * from './lib/directives';\n\n// Pipes\nexport * from './lib/pipes';\n\n//Services\nexport * from './lib/services';\n\n// Helpers\nexport * from './lib/helpers';\n\n// Enums\nexport * from './lib/enums';\n\n// Tokens\nexport * from './lib/tokens/CuraApi';\nexport * from './lib/tokens/express.tokens';\nexport * from './lib/tokens/LibConfig';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.HttpClientService","i2.LogService","i2","i1.PrivacyToolsService","i2.PhoneService","i3.RdsitePhoneModalDirective","i1.CuraService","i2.HeaderService","i3","i1.HeaderService","i1.AlgoliaSearchApiService"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}