@rededor/site-front-end-lib 4.0.0-alpha.4 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/README.md +0 -9
  2. package/esm2022/lib/components/algolia-dropdown/algolia-dropdown.component.mjs +126 -0
  3. package/esm2022/lib/components/avatar/avatar.component.mjs +66 -0
  4. package/esm2022/lib/components/banner/content-banner/content-banner.component.mjs +41 -0
  5. package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +133 -0
  6. package/esm2022/lib/components/cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component.mjs +65 -0
  7. package/esm2022/lib/components/cards/expandable-card/expandable-card.component.mjs +69 -0
  8. package/esm2022/lib/components/cards/testimonial-card/testimonial-card.component.mjs +63 -0
  9. package/esm2022/lib/components/carousels/testimonials-carousel/testimonials-carousel.component.mjs +64 -0
  10. package/esm2022/lib/components/cta-wrapper/cta-wrapper.component.mjs +84 -0
  11. package/esm2022/lib/components/dropdown-search/dropdown-search-category.component.mjs +24 -0
  12. package/esm2022/lib/components/dropdown-search/dropdown-search-not-found.component.mjs +24 -0
  13. package/esm2022/lib/components/dropdown-search/dropdown-search-option.component.mjs +65 -0
  14. package/esm2022/lib/components/dropdown-search/dropdown-search.component.mjs +292 -0
  15. package/esm2022/lib/components/error/error-service/error.service.mjs +17 -0
  16. package/esm2022/lib/components/error/error.component.mjs +183 -0
  17. package/esm2022/lib/components/filter-letter-and-terms/filter-letter-and-terms.component.mjs +103 -0
  18. package/esm2022/lib/components/filters/filter-generic/filter-generic.component.mjs +235 -0
  19. package/esm2022/lib/components/filters/filter-planos-convenios/filter-planos-convenios.component.mjs +150 -0
  20. package/esm2022/lib/components/footer/footer.component.mjs +125 -0
  21. package/esm2022/lib/components/footer/helpers/footerTheme.func.mjs +70 -0
  22. package/esm2022/lib/components/footer/models/FooterTheme.model.mjs +2 -0
  23. package/esm2022/lib/components/header/components/header-action-menu/header-action-menu.component.mjs +36 -0
  24. package/esm2022/lib/components/header/components/header-aux-menu/header-aux-menu.component.mjs +12 -0
  25. package/esm2022/lib/components/header/components/header-aux-menu-container/header-aux-menu-container.component.mjs +17 -0
  26. package/esm2022/lib/components/header/components/header-aux-menu-item/header-aux-menu-item.component.mjs +51 -0
  27. package/esm2022/lib/components/header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component.mjs +23 -0
  28. package/esm2022/lib/components/header/components/header-logo/header-logo.component.mjs +32 -0
  29. package/esm2022/lib/components/header/components/header-main-menu/header-main-menu.component.mjs +11 -0
  30. package/esm2022/lib/components/header/components/header-main-menu-item/header-main-menu-item.component.mjs +77 -0
  31. package/esm2022/lib/components/header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component.mjs +99 -0
  32. package/esm2022/lib/components/header/components/header-side-menu/header-side-menu.component.mjs +26 -0
  33. package/esm2022/lib/components/header/components/header-side-menu-item/header-side-menu-item.component.mjs +54 -0
  34. package/esm2022/lib/components/header/header.component.mjs +104 -0
  35. package/esm2022/lib/components/header/helpers/headerTheme.func.mjs +136 -0
  36. package/esm2022/lib/components/header/models/HeaderTheme.model.mjs +2 -0
  37. package/esm2022/lib/components/header/services/header.service.mjs +43 -0
  38. package/esm2022/lib/components/image/image.component.mjs +61 -0
  39. package/esm2022/lib/components/index.mjs +52 -0
  40. package/esm2022/lib/components/input-file/input-file.component.mjs +304 -0
  41. package/esm2022/lib/components/load-screen/load-screen.component.mjs +23 -0
  42. package/esm2022/lib/components/overlay/overlay.component.mjs +19 -0
  43. package/esm2022/lib/components/page-header/page-header.component.mjs +47 -0
  44. package/esm2022/lib/components/page-template-fullcontent/page-template-fullcontent.component.mjs +30 -0
  45. package/esm2022/lib/components/page-template-sidebar/page-template-sidebar.component.mjs +39 -0
  46. package/esm2022/lib/components/pagination/pagination.component.mjs +64 -0
  47. package/esm2022/lib/components/post-header/post-header.component.mjs +56 -0
  48. package/esm2022/lib/components/search/search.component.mjs +147 -0
  49. package/esm2022/lib/components/section-navigation/section-navigation.component.mjs +149 -0
  50. package/esm2022/lib/components/side-ctas/components/side-ctas-bottom/side-ctas-bottom.component.mjs +43 -0
  51. package/esm2022/lib/components/side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component.mjs +43 -0
  52. package/esm2022/lib/components/side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component.mjs +42 -0
  53. package/esm2022/lib/components/side-ctas/components/side-ctas-right-top/side-ctas-right-top.component.mjs +11 -0
  54. package/esm2022/lib/components/side-ctas/models/SideCta.model.mjs +2 -0
  55. package/esm2022/lib/components/side-ctas/side-ctas.component.mjs +23 -0
  56. package/esm2022/lib/components/sidebar-navigation/sidebar-navigation.component.mjs +119 -0
  57. package/esm2022/lib/components/sticky-navigation/sticky-navigation.component.mjs +132 -0
  58. package/esm2022/lib/components/whatsapp/whatsapp.component.mjs +60 -0
  59. package/esm2022/lib/directives/index.mjs +4 -0
  60. package/esm2022/lib/directives/rdsite-click-outside/rdsite-click-outside.directive.mjs +29 -0
  61. package/esm2022/lib/directives/rdsite-link/rdsite-link.directive.mjs +197 -0
  62. package/esm2022/lib/directives/rdsite-phone-modal/rdsite-phone-modal.directive.mjs +52 -0
  63. package/esm2022/lib/enums/EnumDoencaTaxonomy.enum.mjs +11 -0
  64. package/esm2022/lib/enums/EnumError.enum.mjs +6 -0
  65. package/esm2022/lib/enums/EnumThemes.enum.mjs +9 -0
  66. package/esm2022/lib/enums/Estados.enum.mjs +31 -0
  67. package/esm2022/lib/enums/Filter.enum.mjs +9 -0
  68. package/esm2022/lib/enums/IconCuraDefaultType.enum.mjs +121 -0
  69. package/esm2022/lib/enums/ImageMimeType.enum.mjs +7 -0
  70. package/esm2022/lib/enums/RdsiteModalComponentStyle.enum.mjs +16 -0
  71. package/esm2022/lib/enums/RdsiteModalDrawerComponentStyle.enum.mjs +9 -0
  72. package/esm2022/lib/enums/UnidadeCoverageType.enum.mjs +7 -0
  73. package/esm2022/lib/enums/index.mjs +11 -0
  74. package/esm2022/lib/helpers/check-safari-agent.func.mjs +7 -0
  75. package/esm2022/lib/helpers/formatPhone.func.mjs +29 -0
  76. package/esm2022/lib/helpers/getCircularReplacer.func.mjs +38 -0
  77. package/esm2022/lib/helpers/getSiteUrl.func.mjs +11 -0
  78. package/esm2022/lib/helpers/index.mjs +9 -0
  79. package/esm2022/lib/helpers/mediaQueries.mjs +11 -0
  80. package/esm2022/lib/helpers/removeDuplicateObjectsFromArray.func.mjs +5 -0
  81. package/esm2022/lib/helpers/removeDuplicateValuesFromArray.func.mjs +5 -0
  82. package/esm2022/lib/helpers/removeHtmlTags.func.mjs +6 -0
  83. package/esm2022/lib/helpers/toQueryParams.func.mjs +8 -0
  84. package/esm2022/lib/interceptors/error.interceptor.mjs +36 -0
  85. package/esm2022/lib/interceptors/index.mjs +3 -0
  86. package/esm2022/lib/interceptors/log.interceptor.mjs +35 -0
  87. package/esm2022/lib/middlewares/index.mjs +5 -0
  88. package/esm2022/lib/middlewares/ssr-initialization.middleware.mjs +8 -0
  89. package/esm2022/lib/middlewares/url-validation-default-logo.mjs +38 -0
  90. package/esm2022/lib/middlewares/url-validation-error-page.mjs +209 -0
  91. package/esm2022/lib/middlewares/url-validation.middleware.mjs +41 -0
  92. package/esm2022/lib/models/algolia-search-api.model.mjs +2 -0
  93. package/esm2022/lib/models/breadcrumbs/breadcrumbs-items.model.mjs +2 -0
  94. package/esm2022/lib/models/breadcrumbs/breadcrumbs-json-item.model.mjs +2 -0
  95. package/esm2022/lib/models/centro-estudos-backend.model.mjs +2 -0
  96. package/esm2022/lib/models/centro-medico.model.mjs +2 -0
  97. package/esm2022/lib/models/content-banner.model.mjs +2 -0
  98. package/esm2022/lib/models/cta-wrapper.model.mjs +2 -0
  99. package/esm2022/lib/models/doenca-backend.model.mjs +2 -0
  100. package/esm2022/lib/models/doenca-taxonomy.model.mjs +2 -0
  101. package/esm2022/lib/models/especialidade-backend.model.mjs +2 -0
  102. package/esm2022/lib/models/exame-backend.model.mjs +2 -0
  103. package/esm2022/lib/models/filters/filter-planos-convenios.model.mjs +2 -0
  104. package/esm2022/lib/models/filters/filter-section.type.mjs +2 -0
  105. package/esm2022/lib/models/filters/filter-sections.model.mjs +2 -0
  106. package/esm2022/lib/models/images/rdsite-image.model.mjs +2 -0
  107. package/esm2022/lib/models/medico-cv.model.mjs +2 -0
  108. package/esm2022/lib/models/medico.model.mjs +2 -0
  109. package/esm2022/lib/models/menu-de-unidade.model.mjs +2 -0
  110. package/esm2022/lib/models/menu-item.model.mjs +2 -0
  111. package/esm2022/lib/models/privacy-tools/privacy-tools.model.mjs +2 -0
  112. package/esm2022/lib/models/rdsl-cobertura.model.mjs +2 -0
  113. package/esm2022/lib/models/rdsl-convenio.model.mjs +2 -0
  114. package/esm2022/lib/models/rdsl-especialidade.model.mjs +2 -0
  115. package/esm2022/lib/models/rdsl-planos.model.mjs +2 -0
  116. package/esm2022/lib/models/rdsl-post-category.model.mjs +2 -0
  117. package/esm2022/lib/models/rdsl-unidade.model.mjs +2 -0
  118. package/esm2022/lib/models/section-navigation.model.mjs +2 -0
  119. package/esm2022/lib/models/seo/seo-data.model.mjs +2 -0
  120. package/esm2022/lib/models/seo/seo-unidade.model.mjs +2 -0
  121. package/esm2022/lib/models/social-meta-properties.model.mjs +2 -0
  122. package/esm2022/lib/models/wordpress/WpResponse.model.mjs +2 -0
  123. package/esm2022/lib/models/wordpress/category/wpCategory.model.mjs +2 -0
  124. package/esm2022/lib/models/wordpress/general/content.model.mjs +2 -0
  125. package/esm2022/lib/models/wordpress/general/excerpt.model.mjs +2 -0
  126. package/esm2022/lib/models/wordpress/general/featuredMedia.model.mjs +2 -0
  127. package/esm2022/lib/models/wordpress/general/guid.model.mjs +2 -0
  128. package/esm2022/lib/models/wordpress/general/index.mjs +11 -0
  129. package/esm2022/lib/models/wordpress/general/links.model.mjs +2 -0
  130. package/esm2022/lib/models/wordpress/general/meta.model.mjs +2 -0
  131. package/esm2022/lib/models/wordpress/general/title.model.mjs +2 -0
  132. package/esm2022/lib/models/wordpress/general/yoastData.model.mjs +2 -0
  133. package/esm2022/lib/models/wordpress/general/yoastHeadJson.model.mjs +2 -0
  134. package/esm2022/lib/models/wordpress/general/yoastMeta.model.mjs +2 -0
  135. package/esm2022/lib/models/wordpress/page/page.model.mjs +2 -0
  136. package/esm2022/lib/models/wordpress/post/post.model.mjs +2 -0
  137. package/esm2022/lib/models/wordpress/unidade/wp-unidade-onco.model.mjs +2 -0
  138. package/esm2022/lib/models/wordpress/unidade/wp-unidade-site-detalhe.model.mjs +2 -0
  139. package/esm2022/lib/models/wordpress/unidade/wp-unidade-site.model.mjs +2 -0
  140. package/esm2022/lib/pipes/index.mjs +2 -0
  141. package/esm2022/lib/pipes/phone/phone.pipe.mjs +18 -0
  142. package/esm2022/lib/services/algolia/algolia.service.mjs +37 -0
  143. package/esm2022/lib/services/algolia-search-api/algolia-search-api.service.mjs +71 -0
  144. package/esm2022/lib/services/geoloc/geoloc.service.mjs +202 -0
  145. package/esm2022/lib/services/http-client/http-client.service.mjs +55 -0
  146. package/esm2022/lib/services/index.mjs +19 -0
  147. package/esm2022/lib/services/log/log.service.mjs +46 -0
  148. package/esm2022/lib/services/mapbox/mapbox.service.mjs +69 -0
  149. package/esm2022/lib/services/modal/modal.service.mjs +56 -0
  150. package/esm2022/lib/services/modal-drawer/modal-drawer.service.mjs +42 -0
  151. package/esm2022/lib/services/ngu-carousel/ngu-carousel.service.mjs +81 -0
  152. package/esm2022/lib/services/phone/phone.service.mjs +28 -0
  153. package/esm2022/lib/services/privacy-tools/privacy-tools.service.mjs +92 -0
  154. package/esm2022/lib/services/seo/seo.service.mjs +489 -0
  155. package/esm2022/lib/services/server-response/server-response.service.mjs +92 -0
  156. package/esm2022/lib/services/site-back-end/site-back-end.service.mjs +197 -0
  157. package/esm2022/lib/services/ssr-loading/ssr-loading.service.mjs +48 -0
  158. package/esm2022/lib/services/transfer-state/transfer-state.service.mjs +33 -0
  159. package/esm2022/lib/services/youtube/youtube.service.mjs +39 -0
  160. package/esm2022/lib/tokens/LibConfig.mjs +4 -0
  161. package/esm2022/lib/tokens/express.tokens.mjs +4 -0
  162. package/esm2022/public-api.mjs +23 -0
  163. package/esm2022/rededor-site-front-end-lib.mjs +5 -0
  164. package/fesm2022/rededor-site-front-end-lib.mjs +6408 -2
  165. package/fesm2022/rededor-site-front-end-lib.mjs.map +1 -1
  166. package/index.d.ts +5 -3
  167. package/lib/components/algolia-dropdown/algolia-dropdown.component.d.ts +38 -0
  168. package/lib/components/avatar/avatar.component.d.ts +26 -0
  169. package/lib/components/banner/content-banner/content-banner.component.d.ts +20 -0
  170. package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +36 -0
  171. package/lib/components/cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component.d.ts +41 -0
  172. package/lib/components/cards/expandable-card/expandable-card.component.d.ts +29 -0
  173. package/lib/components/cards/testimonial-card/testimonial-card.component.d.ts +31 -0
  174. package/lib/components/carousels/testimonials-carousel/testimonials-carousel.component.d.ts +28 -0
  175. package/lib/components/cta-wrapper/cta-wrapper.component.d.ts +33 -0
  176. package/lib/components/dropdown-search/dropdown-search-category.component.d.ts +9 -0
  177. package/lib/components/dropdown-search/dropdown-search-not-found.component.d.ts +9 -0
  178. package/lib/components/dropdown-search/dropdown-search-option.component.d.ts +26 -0
  179. package/lib/components/dropdown-search/dropdown-search.component.d.ts +71 -0
  180. package/lib/components/error/error-service/error.service.d.ts +8 -0
  181. package/lib/components/error/error.component.d.ts +48 -0
  182. package/lib/components/filter-letter-and-terms/filter-letter-and-terms.component.d.ts +36 -0
  183. package/lib/components/filters/filter-generic/filter-generic.component.d.ts +77 -0
  184. package/lib/components/filters/filter-planos-convenios/filter-planos-convenios.component.d.ts +45 -0
  185. package/lib/components/footer/footer.component.d.ts +49 -0
  186. package/lib/components/footer/helpers/footerTheme.func.d.ts +3 -0
  187. package/lib/components/footer/models/FooterTheme.model.d.ts +7 -0
  188. package/lib/components/header/components/header-action-menu/header-action-menu.component.d.ts +16 -0
  189. package/lib/components/header/components/header-aux-menu/header-aux-menu.component.d.ts +5 -0
  190. package/lib/components/header/components/header-aux-menu-container/header-aux-menu-container.component.d.ts +6 -0
  191. package/lib/components/header/components/header-aux-menu-item/header-aux-menu-item.component.d.ts +21 -0
  192. package/lib/components/header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component.d.ts +10 -0
  193. package/lib/components/header/components/header-logo/header-logo.component.d.ts +12 -0
  194. package/lib/components/header/components/header-main-menu/header-main-menu.component.d.ts +5 -0
  195. package/lib/components/header/components/header-main-menu-item/header-main-menu-item.component.d.ts +29 -0
  196. package/lib/components/header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component.d.ts +41 -0
  197. package/lib/components/header/components/header-side-menu/header-side-menu.component.d.ts +11 -0
  198. package/lib/components/header/components/header-side-menu-item/header-side-menu-item.component.d.ts +22 -0
  199. package/lib/components/header/header.component.d.ts +36 -0
  200. package/lib/components/header/helpers/headerTheme.func.d.ts +3 -0
  201. package/lib/components/header/models/HeaderTheme.model.d.ts +8 -0
  202. package/lib/components/header/services/header.service.d.ts +11 -0
  203. package/lib/components/image/image.component.d.ts +22 -0
  204. package/lib/components/index.d.ts +50 -0
  205. package/lib/components/input-file/input-file.component.d.ts +88 -0
  206. package/{components/load-screen/index.d.ts → lib/components/load-screen/load-screen.component.d.ts} +5 -6
  207. package/{components/overlay/index.d.ts → lib/components/overlay/overlay.component.d.ts} +4 -6
  208. package/lib/components/page-header/page-header.component.d.ts +20 -0
  209. package/lib/components/page-template-fullcontent/page-template-fullcontent.component.d.ts +14 -0
  210. package/lib/components/page-template-sidebar/page-template-sidebar.component.d.ts +17 -0
  211. package/lib/components/pagination/pagination.component.d.ts +30 -0
  212. package/lib/components/post-header/post-header.component.d.ts +31 -0
  213. package/lib/components/search/search.component.d.ts +48 -0
  214. package/lib/components/section-navigation/section-navigation.component.d.ts +44 -0
  215. package/lib/components/side-ctas/components/side-ctas-bottom/side-ctas-bottom.component.d.ts +23 -0
  216. package/lib/components/side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component.d.ts +15 -0
  217. package/lib/components/side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component.d.ts +22 -0
  218. package/lib/components/side-ctas/components/side-ctas-right-top/side-ctas-right-top.component.d.ts +5 -0
  219. package/lib/components/side-ctas/models/SideCta.model.d.ts +5 -0
  220. package/lib/components/side-ctas/side-ctas.component.d.ts +11 -0
  221. package/lib/components/sidebar-navigation/sidebar-navigation.component.d.ts +39 -0
  222. package/lib/components/sticky-navigation/sticky-navigation.component.d.ts +43 -0
  223. package/lib/components/whatsapp/whatsapp.component.d.ts +29 -0
  224. package/lib/directives/index.d.ts +3 -0
  225. package/lib/directives/rdsite-click-outside/rdsite-click-outside.directive.d.ts +10 -0
  226. package/lib/directives/rdsite-link/rdsite-link.directive.d.ts +40 -0
  227. package/lib/directives/rdsite-phone-modal/rdsite-phone-modal.directive.d.ts +17 -0
  228. package/lib/enums/EnumDoencaTaxonomy.enum.d.ts +8 -0
  229. package/lib/enums/EnumError.enum.d.ts +4 -0
  230. package/lib/enums/EnumThemes.enum.d.ts +7 -0
  231. package/lib/enums/Estados.enum.d.ts +29 -0
  232. package/lib/enums/Filter.enum.d.ts +7 -0
  233. package/{enums/index.d.ts → lib/enums/IconCuraDefaultType.enum.d.ts} +1 -58
  234. package/lib/enums/ImageMimeType.enum.d.ts +5 -0
  235. package/lib/enums/RdsiteModalComponentStyle.enum.d.ts +14 -0
  236. package/lib/enums/RdsiteModalDrawerComponentStyle.enum.d.ts +7 -0
  237. package/lib/enums/UnidadeCoverageType.enum.d.ts +5 -0
  238. package/lib/enums/index.d.ts +10 -0
  239. package/lib/helpers/check-safari-agent.func.d.ts +2 -0
  240. package/lib/helpers/formatPhone.func.d.ts +1 -0
  241. package/lib/helpers/getCircularReplacer.func.d.ts +7 -0
  242. package/lib/helpers/getSiteUrl.func.d.ts +2 -0
  243. package/lib/helpers/index.d.ts +8 -0
  244. package/lib/helpers/mediaQueries.d.ts +6 -0
  245. package/lib/helpers/removeDuplicateObjectsFromArray.func.d.ts +2 -0
  246. package/lib/helpers/removeDuplicateValuesFromArray.func.d.ts +2 -0
  247. package/lib/helpers/removeHtmlTags.func.d.ts +2 -0
  248. package/lib/helpers/toQueryParams.func.d.ts +5 -0
  249. package/lib/interceptors/error.interceptor.d.ts +13 -0
  250. package/lib/interceptors/index.d.ts +2 -0
  251. package/lib/interceptors/log.interceptor.d.ts +11 -0
  252. package/lib/middlewares/index.d.ts +4 -0
  253. package/lib/middlewares/ssr-initialization.middleware.d.ts +2 -0
  254. package/lib/middlewares/url-validation-default-logo.d.ts +1 -0
  255. package/lib/middlewares/url-validation-error-page.d.ts +22 -0
  256. package/lib/middlewares/url-validation.middleware.d.ts +13 -0
  257. package/lib/models/algolia-search-api.model.d.ts +179 -0
  258. package/lib/models/breadcrumbs/breadcrumbs-items.model.d.ts +10 -0
  259. package/lib/models/breadcrumbs/breadcrumbs-json-item.model.d.ts +8 -0
  260. package/lib/models/centro-estudos-backend.model.d.ts +8 -0
  261. package/lib/models/centro-medico.model.d.ts +33 -0
  262. package/lib/models/content-banner.model.d.ts +15 -0
  263. package/lib/models/cta-wrapper.model.d.ts +9 -0
  264. package/lib/models/doenca-backend.model.d.ts +25 -0
  265. package/lib/models/doenca-taxonomy.model.d.ts +11 -0
  266. package/lib/models/especialidade-backend.model.d.ts +24 -0
  267. package/lib/models/exame-backend.model.d.ts +25 -0
  268. package/lib/models/filters/filter-planos-convenios.model.d.ts +28 -0
  269. package/lib/models/filters/filter-section.type.d.ts +13 -0
  270. package/lib/models/filters/filter-sections.model.d.ts +52 -0
  271. package/lib/models/images/rdsite-image.model.d.ts +5 -0
  272. package/lib/models/medico-cv.model.d.ts +10 -0
  273. package/lib/models/medico.model.d.ts +68 -0
  274. package/lib/models/menu-de-unidade.model.d.ts +14 -0
  275. package/lib/models/menu-item.model.d.ts +67 -0
  276. package/lib/models/privacy-tools/privacy-tools.model.d.ts +8 -0
  277. package/lib/models/rdsl-cobertura.model.d.ts +71 -0
  278. package/lib/models/rdsl-convenio.model.d.ts +17 -0
  279. package/lib/models/rdsl-especialidade.model.d.ts +33 -0
  280. package/lib/models/rdsl-planos.model.d.ts +13 -0
  281. package/lib/models/rdsl-post-category.model.d.ts +8 -0
  282. package/lib/models/rdsl-unidade.model.d.ts +50 -0
  283. package/lib/models/section-navigation.model.d.ts +9 -0
  284. package/lib/models/seo/seo-data.model.d.ts +11 -0
  285. package/lib/models/seo/seo-unidade.model.d.ts +6 -0
  286. package/lib/models/social-meta-properties.model.d.ts +9 -0
  287. package/lib/models/wordpress/WpResponse.model.d.ts +31 -0
  288. package/lib/models/wordpress/category/wpCategory.model.d.ts +14 -0
  289. package/lib/models/wordpress/general/content.model.d.ts +4 -0
  290. package/lib/models/wordpress/general/excerpt.model.d.ts +4 -0
  291. package/lib/models/wordpress/general/featuredMedia.model.d.ts +26 -0
  292. package/lib/models/wordpress/general/guid.model.d.ts +3 -0
  293. package/lib/models/wordpress/general/index.d.ts +10 -0
  294. package/lib/models/wordpress/general/links.model.d.ts +47 -0
  295. package/lib/models/wordpress/general/meta.model.d.ts +3 -0
  296. package/lib/models/wordpress/general/title.model.d.ts +3 -0
  297. package/lib/models/wordpress/general/yoastData.model.d.ts +4 -0
  298. package/lib/models/wordpress/general/yoastHeadJson.model.d.ts +56 -0
  299. package/lib/models/wordpress/general/yoastMeta.model.d.ts +5 -0
  300. package/lib/models/wordpress/page/page.model.d.ts +10 -0
  301. package/lib/models/wordpress/post/post.model.d.ts +33 -0
  302. package/lib/models/wordpress/unidade/wp-unidade-onco.model.d.ts +56 -0
  303. package/lib/models/wordpress/unidade/wp-unidade-site-detalhe.model.d.ts +166 -0
  304. package/lib/models/wordpress/unidade/wp-unidade-site.model.d.ts +45 -0
  305. package/lib/pipes/index.d.ts +1 -0
  306. package/lib/pipes/phone/phone.pipe.d.ts +7 -0
  307. package/{services/algolia/index.d.ts → lib/services/algolia/algolia.service.d.ts} +4 -6
  308. package/{services/algolia-search-api/index.d.ts → lib/services/algolia-search-api/algolia-search-api.service.d.ts} +7 -6
  309. package/lib/services/geoloc/geoloc.service.d.ts +49 -0
  310. package/lib/services/http-client/http-client.service.d.ts +19 -0
  311. package/lib/services/index.d.ts +18 -0
  312. package/lib/services/log/log.service.d.ts +16 -0
  313. package/lib/services/mapbox/mapbox.service.d.ts +55 -0
  314. package/lib/services/modal/modal.service.d.ts +31 -0
  315. package/lib/services/modal-drawer/modal-drawer.service.d.ts +37 -0
  316. package/{services/ngu-carousel/index.d.ts → lib/services/ngu-carousel/ngu-carousel.service.d.ts} +3 -6
  317. package/lib/services/phone/phone.service.d.ts +11 -0
  318. package/lib/services/privacy-tools/privacy-tools.service.d.ts +20 -0
  319. package/lib/services/seo/seo.service.d.ts +142 -0
  320. package/lib/services/server-response/server-response.service.d.ts +39 -0
  321. package/lib/services/site-back-end/site-back-end.service.d.ts +87 -0
  322. package/{services/ssr-loading/index.d.ts → lib/services/ssr-loading/ssr-loading.service.d.ts} +4 -5
  323. package/lib/services/transfer-state/transfer-state.service.d.ts +12 -0
  324. package/{services/youtube/index.d.ts → lib/services/youtube/youtube.service.d.ts} +3 -5
  325. package/lib/tokens/LibConfig.d.ts +38 -0
  326. package/lib/tokens/express.tokens.d.ts +4 -0
  327. package/package.json +13 -283
  328. package/public-api.d.ts +10 -0
  329. package/components/algolia-dropdown/index.d.ts +0 -38
  330. package/components/algolia-search/index.d.ts +0 -292
  331. package/components/banner/index.d.ts +0 -20
  332. package/components/breadcrumbs/index.d.ts +0 -35
  333. package/components/cards/index.d.ts +0 -96
  334. package/components/carousels/index.d.ts +0 -28
  335. package/components/cta-wrapper/index.d.ts +0 -31
  336. package/components/error/index.d.ts +0 -46
  337. package/components/filter-letter-and-terms/index.d.ts +0 -36
  338. package/components/filters/filter-generic/index.d.ts +0 -68
  339. package/components/filters/filter-planos-convenios/index.d.ts +0 -41
  340. package/components/footer/index.d.ts +0 -38
  341. package/components/header/components/action/index.d.ts +0 -17
  342. package/components/header/components/auxiliar/index.d.ts +0 -29
  343. package/components/header/components/main/index.d.ts +0 -70
  344. package/components/header/components/side/index.d.ts +0 -33
  345. package/components/header/index.d.ts +0 -60
  346. package/components/header/services/index.d.ts +0 -14
  347. package/components/image/index.d.ts +0 -23
  348. package/components/modal/index.d.ts +0 -29
  349. package/components/modal-drawer/index.d.ts +0 -49
  350. package/components/page-header/index.d.ts +0 -20
  351. package/components/page-template-sidebar/index.d.ts +0 -20
  352. package/components/pagination/index.d.ts +0 -30
  353. package/components/search/index.d.ts +0 -45
  354. package/components/section-navigation/index.d.ts +0 -41
  355. package/components/side-ctas/index.d.ts +0 -70
  356. package/components/whatsapp/index.d.ts +0 -27
  357. package/core/index.d.ts +0 -1984
  358. package/cura/accordion/index.d.ts +0 -120
  359. package/cura/api/index.d.ts +0 -359
  360. package/cura/badges/cura-badge-counter/index.d.ts +0 -38
  361. package/cura/badges/cura-badge-distance/index.d.ts +0 -21
  362. package/cura/badges/cura-badge-dot/index.d.ts +0 -29
  363. package/cura/badges/cura-badge-pill/index.d.ts +0 -47
  364. package/cura/badges/index.d.ts +0 -5
  365. package/cura/buttons/cura-button/index.d.ts +0 -85
  366. package/cura/buttons/cura-button-outline/index.d.ts +0 -85
  367. package/cura/buttons/cura-button-select/index.d.ts +0 -34
  368. package/cura/buttons/cura-button-transparent/index.d.ts +0 -82
  369. package/cura/buttons/index.d.ts +0 -15
  370. package/cura/cards/cura-card/index.d.ts +0 -54
  371. package/cura/feedback/cura-alert/index.d.ts +0 -55
  372. package/cura/feedback/cura-modal/index.d.ts +0 -97
  373. package/cura/forms/cura-checkbox/index.d.ts +0 -152
  374. package/cura/forms/cura-input-text/index.d.ts +0 -234
  375. package/cura/forms/cura-label/index.d.ts +0 -51
  376. package/cura/forms/cura-radio/index.d.ts +0 -143
  377. package/cura/forms/cura-select/index.d.ts +0 -151
  378. package/cura/forms/cura-select-option/index.d.ts +0 -49
  379. package/cura/forms/cura-switch/index.d.ts +0 -113
  380. package/cura/forms/index.d.ts +0 -20
  381. package/cura/icons/cura-icon/index.d.ts +0 -46
  382. package/cura/loaders/cura-loader-bar/index.d.ts +0 -22
  383. package/cura/loaders/cura-loader-circle/index.d.ts +0 -24
  384. package/cura/texts/cura-display/index.d.ts +0 -54
  385. package/cura/texts/cura-heading/index.d.ts +0 -65
  386. package/cura/texts/cura-paragraph/index.d.ts +0 -54
  387. package/cura/texts/index.d.ts +0 -7
  388. package/fesm2022/rededor-site-front-end-lib-components-algolia-dropdown.mjs +0 -108
  389. package/fesm2022/rededor-site-front-end-lib-components-algolia-dropdown.mjs.map +0 -1
  390. package/fesm2022/rededor-site-front-end-lib-components-algolia-search.mjs +0 -583
  391. package/fesm2022/rededor-site-front-end-lib-components-algolia-search.mjs.map +0 -1
  392. package/fesm2022/rededor-site-front-end-lib-components-banner.mjs +0 -44
  393. package/fesm2022/rededor-site-front-end-lib-components-banner.mjs.map +0 -1
  394. package/fesm2022/rededor-site-front-end-lib-components-breadcrumbs.mjs +0 -119
  395. package/fesm2022/rededor-site-front-end-lib-components-breadcrumbs.mjs.map +0 -1
  396. package/fesm2022/rededor-site-front-end-lib-components-cards.mjs +0 -152
  397. package/fesm2022/rededor-site-front-end-lib-components-cards.mjs.map +0 -1
  398. package/fesm2022/rededor-site-front-end-lib-components-carousels.mjs +0 -75
  399. package/fesm2022/rededor-site-front-end-lib-components-carousels.mjs.map +0 -1
  400. package/fesm2022/rededor-site-front-end-lib-components-cta-wrapper.mjs +0 -74
  401. package/fesm2022/rededor-site-front-end-lib-components-cta-wrapper.mjs.map +0 -1
  402. package/fesm2022/rededor-site-front-end-lib-components-error.mjs +0 -173
  403. package/fesm2022/rededor-site-front-end-lib-components-error.mjs.map +0 -1
  404. package/fesm2022/rededor-site-front-end-lib-components-filter-letter-and-terms.mjs +0 -91
  405. package/fesm2022/rededor-site-front-end-lib-components-filter-letter-and-terms.mjs.map +0 -1
  406. package/fesm2022/rededor-site-front-end-lib-components-filters-filter-generic.mjs +0 -243
  407. package/fesm2022/rededor-site-front-end-lib-components-filters-filter-generic.mjs.map +0 -1
  408. package/fesm2022/rededor-site-front-end-lib-components-filters-filter-planos-convenios.mjs +0 -139
  409. package/fesm2022/rededor-site-front-end-lib-components-filters-filter-planos-convenios.mjs.map +0 -1
  410. package/fesm2022/rededor-site-front-end-lib-components-footer.mjs +0 -150
  411. package/fesm2022/rededor-site-front-end-lib-components-footer.mjs.map +0 -1
  412. package/fesm2022/rededor-site-front-end-lib-components-header-components-action.mjs +0 -31
  413. package/fesm2022/rededor-site-front-end-lib-components-header-components-action.mjs.map +0 -1
  414. package/fesm2022/rededor-site-front-end-lib-components-header-components-auxiliar.mjs +0 -59
  415. package/fesm2022/rededor-site-front-end-lib-components-header-components-auxiliar.mjs.map +0 -1
  416. package/fesm2022/rededor-site-front-end-lib-components-header-components-main.mjs +0 -164
  417. package/fesm2022/rededor-site-front-end-lib-components-header-components-main.mjs.map +0 -1
  418. package/fesm2022/rededor-site-front-end-lib-components-header-components-side.mjs +0 -68
  419. package/fesm2022/rededor-site-front-end-lib-components-header-components-side.mjs.map +0 -1
  420. package/fesm2022/rededor-site-front-end-lib-components-header-services.mjs +0 -50
  421. package/fesm2022/rededor-site-front-end-lib-components-header-services.mjs.map +0 -1
  422. package/fesm2022/rededor-site-front-end-lib-components-header.mjs +0 -259
  423. package/fesm2022/rededor-site-front-end-lib-components-header.mjs.map +0 -1
  424. package/fesm2022/rededor-site-front-end-lib-components-image.mjs +0 -48
  425. package/fesm2022/rededor-site-front-end-lib-components-image.mjs.map +0 -1
  426. package/fesm2022/rededor-site-front-end-lib-components-load-screen.mjs +0 -30
  427. package/fesm2022/rededor-site-front-end-lib-components-load-screen.mjs.map +0 -1
  428. package/fesm2022/rededor-site-front-end-lib-components-modal-drawer.mjs +0 -162
  429. package/fesm2022/rededor-site-front-end-lib-components-modal-drawer.mjs.map +0 -1
  430. package/fesm2022/rededor-site-front-end-lib-components-modal.mjs +0 -82
  431. package/fesm2022/rededor-site-front-end-lib-components-modal.mjs.map +0 -1
  432. package/fesm2022/rededor-site-front-end-lib-components-overlay.mjs +0 -24
  433. package/fesm2022/rededor-site-front-end-lib-components-overlay.mjs.map +0 -1
  434. package/fesm2022/rededor-site-front-end-lib-components-page-header.mjs +0 -41
  435. package/fesm2022/rededor-site-front-end-lib-components-page-header.mjs.map +0 -1
  436. package/fesm2022/rededor-site-front-end-lib-components-page-template-sidebar.mjs +0 -30
  437. package/fesm2022/rededor-site-front-end-lib-components-page-template-sidebar.mjs.map +0 -1
  438. package/fesm2022/rededor-site-front-end-lib-components-pagination.mjs +0 -55
  439. package/fesm2022/rededor-site-front-end-lib-components-pagination.mjs.map +0 -1
  440. package/fesm2022/rededor-site-front-end-lib-components-search.mjs +0 -119
  441. package/fesm2022/rededor-site-front-end-lib-components-search.mjs.map +0 -1
  442. package/fesm2022/rededor-site-front-end-lib-components-section-navigation.mjs +0 -134
  443. package/fesm2022/rededor-site-front-end-lib-components-section-navigation.mjs.map +0 -1
  444. package/fesm2022/rededor-site-front-end-lib-components-side-ctas.mjs +0 -118
  445. package/fesm2022/rededor-site-front-end-lib-components-side-ctas.mjs.map +0 -1
  446. package/fesm2022/rededor-site-front-end-lib-components-whatsapp.mjs +0 -49
  447. package/fesm2022/rededor-site-front-end-lib-components-whatsapp.mjs.map +0 -1
  448. package/fesm2022/rededor-site-front-end-lib-core.mjs +0 -1600
  449. package/fesm2022/rededor-site-front-end-lib-core.mjs.map +0 -1
  450. package/fesm2022/rededor-site-front-end-lib-cura-accordion.mjs +0 -252
  451. package/fesm2022/rededor-site-front-end-lib-cura-accordion.mjs.map +0 -1
  452. package/fesm2022/rededor-site-front-end-lib-cura-api.mjs +0 -541
  453. package/fesm2022/rededor-site-front-end-lib-cura-api.mjs.map +0 -1
  454. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-counter.mjs +0 -90
  455. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-counter.mjs.map +0 -1
  456. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-distance.mjs +0 -55
  457. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-distance.mjs.map +0 -1
  458. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-dot.mjs +0 -66
  459. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-dot.mjs.map +0 -1
  460. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-pill.mjs +0 -96
  461. package/fesm2022/rededor-site-front-end-lib-cura-badges-cura-badge-pill.mjs.map +0 -1
  462. package/fesm2022/rededor-site-front-end-lib-cura-badges.mjs +0 -4
  463. package/fesm2022/rededor-site-front-end-lib-cura-badges.mjs.map +0 -1
  464. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button-outline.mjs +0 -165
  465. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button-outline.mjs.map +0 -1
  466. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button-select.mjs +0 -130
  467. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button-select.mjs.map +0 -1
  468. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button-transparent.mjs +0 -156
  469. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button-transparent.mjs.map +0 -1
  470. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button.mjs +0 -165
  471. package/fesm2022/rededor-site-front-end-lib-cura-buttons-cura-button.mjs.map +0 -1
  472. package/fesm2022/rededor-site-front-end-lib-cura-buttons.mjs +0 -13
  473. package/fesm2022/rededor-site-front-end-lib-cura-buttons.mjs.map +0 -1
  474. package/fesm2022/rededor-site-front-end-lib-cura-cards-cura-card.mjs +0 -96
  475. package/fesm2022/rededor-site-front-end-lib-cura-cards-cura-card.mjs.map +0 -1
  476. package/fesm2022/rededor-site-front-end-lib-cura-feedback-cura-alert.mjs +0 -90
  477. package/fesm2022/rededor-site-front-end-lib-cura-feedback-cura-alert.mjs.map +0 -1
  478. package/fesm2022/rededor-site-front-end-lib-cura-feedback-cura-modal.mjs +0 -105
  479. package/fesm2022/rededor-site-front-end-lib-cura-feedback-cura-modal.mjs.map +0 -1
  480. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-checkbox.mjs +0 -253
  481. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-checkbox.mjs.map +0 -1
  482. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-input-text.mjs +0 -547
  483. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-input-text.mjs.map +0 -1
  484. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-label.mjs +0 -88
  485. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-label.mjs.map +0 -1
  486. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-radio.mjs +0 -237
  487. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-radio.mjs.map +0 -1
  488. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-select-option.mjs +0 -82
  489. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-select-option.mjs.map +0 -1
  490. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-select.mjs +0 -377
  491. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-select.mjs.map +0 -1
  492. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-switch.mjs +0 -182
  493. package/fesm2022/rededor-site-front-end-lib-cura-forms-cura-switch.mjs.map +0 -1
  494. package/fesm2022/rededor-site-front-end-lib-cura-forms.mjs +0 -21
  495. package/fesm2022/rededor-site-front-end-lib-cura-forms.mjs.map +0 -1
  496. package/fesm2022/rededor-site-front-end-lib-cura-icons-cura-icon.mjs +0 -88
  497. package/fesm2022/rededor-site-front-end-lib-cura-icons-cura-icon.mjs.map +0 -1
  498. package/fesm2022/rededor-site-front-end-lib-cura-loaders-cura-loader-bar.mjs +0 -44
  499. package/fesm2022/rededor-site-front-end-lib-cura-loaders-cura-loader-bar.mjs.map +0 -1
  500. package/fesm2022/rededor-site-front-end-lib-cura-loaders-cura-loader-circle.mjs +0 -49
  501. package/fesm2022/rededor-site-front-end-lib-cura-loaders-cura-loader-circle.mjs.map +0 -1
  502. package/fesm2022/rededor-site-front-end-lib-cura-texts-cura-display.mjs +0 -84
  503. package/fesm2022/rededor-site-front-end-lib-cura-texts-cura-display.mjs.map +0 -1
  504. package/fesm2022/rededor-site-front-end-lib-cura-texts-cura-heading.mjs +0 -104
  505. package/fesm2022/rededor-site-front-end-lib-cura-texts-cura-heading.mjs.map +0 -1
  506. package/fesm2022/rededor-site-front-end-lib-cura-texts-cura-paragraph.mjs +0 -89
  507. package/fesm2022/rededor-site-front-end-lib-cura-texts-cura-paragraph.mjs.map +0 -1
  508. package/fesm2022/rededor-site-front-end-lib-cura-texts.mjs +0 -4
  509. package/fesm2022/rededor-site-front-end-lib-cura-texts.mjs.map +0 -1
  510. package/fesm2022/rededor-site-front-end-lib-enums.mjs +0 -187
  511. package/fesm2022/rededor-site-front-end-lib-enums.mjs.map +0 -1
  512. package/fesm2022/rededor-site-front-end-lib-services-algolia-search-api.mjs +0 -74
  513. package/fesm2022/rededor-site-front-end-lib-services-algolia-search-api.mjs.map +0 -1
  514. package/fesm2022/rededor-site-front-end-lib-services-algolia.mjs +0 -41
  515. package/fesm2022/rededor-site-front-end-lib-services-algolia.mjs.map +0 -1
  516. package/fesm2022/rededor-site-front-end-lib-services-ngu-carousel.mjs +0 -88
  517. package/fesm2022/rededor-site-front-end-lib-services-ngu-carousel.mjs.map +0 -1
  518. package/fesm2022/rededor-site-front-end-lib-services-ssr-loading.mjs +0 -52
  519. package/fesm2022/rededor-site-front-end-lib-services-ssr-loading.mjs.map +0 -1
  520. package/fesm2022/rededor-site-front-end-lib-services-youtube.mjs +0 -40
  521. package/fesm2022/rededor-site-front-end-lib-services-youtube.mjs.map +0 -1
  522. package/fesm2022/rededor-site-front-end-lib-shared.mjs +0 -110
  523. package/fesm2022/rededor-site-front-end-lib-shared.mjs.map +0 -1
  524. package/shared/index.d.ts +0 -40
@@ -1,1600 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, DOCUMENT, Injectable, signal, PLATFORM_ID, ElementRef, model, HostListener, Directive, input } from '@angular/core';
3
- import { isPlatformBrowser, Location, isPlatformServer } from '@angular/common';
4
- import { Router } from '@angular/router';
5
- import { DeviceDetectorService } from 'ngx-device-detector';
6
- import { catchError, throwError, tap, BehaviorSubject, Observable, map } from 'rxjs';
7
- import { HttpClient, HttpHeaders } from '@angular/common/http';
8
- import { differenceInMilliseconds } from 'date-fns';
9
- import { v4 } from 'uuid';
10
- import { Title, Meta } from '@angular/platform-browser';
11
- import * as he from 'he';
12
-
13
- // Configura a lib com informações especificas de cada projeto.
14
- const LIB_CONFIG = new InjectionToken('libConfig');
15
-
16
- const REQUEST = new InjectionToken('REQUEST');
17
- const RESPONSE = new InjectionToken('RESPONSE');
18
-
19
- class PhoneService {
20
- constructor() {
21
- this.document = inject(DOCUMENT);
22
- this.telRegex = /tel:/;
23
- this.phoneModalIsAllowed = true; // variavel utilizada para permitir/bloquear o modal de telefone
24
- }
25
- /** Verifica se o 'href' é de telefone e se a janela está em tamanho desktop */
26
- isPhoneModal(href) {
27
- const width = this.document.defaultView?.innerWidth ?? 0;
28
- const SMALL_BREAKPOINT = 718;
29
- return this.telRegex.test(href) && width > SMALL_BREAKPOINT;
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PhoneService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PhoneService, providedIn: 'root' }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PhoneService, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root',
38
- }]
39
- }] });
40
-
41
- /**
42
- * Executa uma função recursivamente até que uma condição seja atendida ou atinja o máximo de tentativas
43
- * @param fn - Função a ser executada quando a condição for atendida
44
- * @param condition - Função que retorna true quando a condição for satisfeita
45
- * @param maxTries - Número máximo de tentativas (padrão: 10)
46
- * @param delay - Delay entre tentativas em ms (padrão: 200)
47
- * @param currentTry - Contador interno de tentativas (padrão: 0)
48
- * @param args - Argumentos que serão passados para a função fn
49
- */
50
- function executeWithRetry(fn, condition, maxTries = 10, delay = 200, currentTry = 0, ...args) {
51
- if (!condition() && currentTry < maxTries) {
52
- setTimeout(() => {
53
- executeWithRetry(fn, condition, maxTries, delay, currentTry + 1, ...args);
54
- }, delay);
55
- }
56
- else {
57
- fn(...args);
58
- }
59
- }
60
-
61
- class AbstractModalComponent {
62
- }
63
- class ModalService {
64
- constructor() {
65
- this.reference = null;
66
- this.firstInteraction = signal(false, ...(ngDevMode ? [{ debugName: "firstInteraction" }] : []));
67
- this.maxTries = 10;
68
- this.delay = 200;
69
- }
70
- open() {
71
- this.firstInteraction.set(true);
72
- executeWithRetry(() => {
73
- this.reference?.open();
74
- }, () => !!this.reference, this.maxTries, this.delay);
75
- }
76
- setReference(element) {
77
- this.reference = element;
78
- }
79
- setHeader(header) {
80
- executeWithRetry(() => {
81
- if (this.reference) {
82
- this.reference.modalHeader = header;
83
- }
84
- }, () => !!this.reference, this.maxTries, this.delay);
85
- }
86
- setTitle(title) {
87
- executeWithRetry(() => {
88
- if (this.reference) {
89
- this.reference.modalTitle = title;
90
- }
91
- }, () => !!this.reference, this.maxTries, this.delay);
92
- }
93
- setContent(content, context = {}) {
94
- executeWithRetry(() => {
95
- if (this.reference) {
96
- this.reference.modalContent = content;
97
- this.reference.modalContentContext = context;
98
- }
99
- }, () => !!this.reference, this.maxTries, this.delay);
100
- }
101
- setActions(actions) {
102
- executeWithRetry(() => {
103
- if (this.reference) {
104
- this.reference.modalActions = actions;
105
- }
106
- }, () => !!this.reference, this.maxTries, this.delay);
107
- }
108
- setStyle(style) {
109
- executeWithRetry(() => {
110
- if (this.reference) {
111
- this.reference.componentStyle = style;
112
- }
113
- }, () => !!this.reference, this.maxTries, this.delay);
114
- }
115
- setDefaultPhoneModal(modal) {
116
- this.defaultPhoneModal = modal;
117
- }
118
- close() {
119
- executeWithRetry(() => this.reference?.close(), () => !!this.reference, this.maxTries, this.delay);
120
- }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
122
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ModalService, providedIn: 'root' }); }
123
- }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ModalService, decorators: [{
125
- type: Injectable,
126
- args: [{
127
- providedIn: 'root',
128
- }]
129
- }] });
130
-
131
- var RdsiteModalComponentStyle;
132
- (function (RdsiteModalComponentStyle) {
133
- RdsiteModalComponentStyle["DEFAULT"] = "default";
134
- RdsiteModalComponentStyle["ALERT"] = "alert";
135
- RdsiteModalComponentStyle["LIGHT"] = "light";
136
- RdsiteModalComponentStyle["DOCTORCARD"] = "doctor-card";
137
- RdsiteModalComponentStyle["HOMESLIDE"] = "home-slide";
138
- RdsiteModalComponentStyle["BASIC"] = "basic";
139
- RdsiteModalComponentStyle["SHARING"] = "sharing";
140
- RdsiteModalComponentStyle["FORMFALLBACK"] = "form-fallback";
141
- RdsiteModalComponentStyle["FILTER"] = "filter";
142
- RdsiteModalComponentStyle["FILTERDOENCAS"] = "filter-doencas";
143
- })(RdsiteModalComponentStyle || (RdsiteModalComponentStyle = {}));
144
-
145
- const formatPhone = (phone) => {
146
- if (!phone)
147
- return '';
148
- const cleanPhone = phone.replace(/[^0-9]/gi, '');
149
- let formatedPhone = '';
150
- if (cleanPhone.length === 12) {
151
- formatedPhone = cleanPhone.replace(/(\d{3})?(\d{5})?(\d{4})/, '($1) $2-$3');
152
- }
153
- else if (cleanPhone.length === 11) {
154
- formatedPhone = cleanPhone.replace(/(\d{2})?(\d{5})?(\d{4})/, '($1) $2-$3');
155
- }
156
- else if (cleanPhone.length === 10) {
157
- formatedPhone = cleanPhone.replace(/(\d{2})?(\d{4})?(\d{4})/, '($1) $2-$3');
158
- }
159
- else if (cleanPhone.length === 9) {
160
- formatedPhone = cleanPhone.replace(/(\d{5})?(\d{4})/, '$1-$2');
161
- }
162
- else if (cleanPhone.length === 8) {
163
- formatedPhone = cleanPhone.replace(/(\d{4})?(\d{4})/, '$1-$2');
164
- }
165
- else if (cleanPhone.length === 7) {
166
- formatedPhone = cleanPhone.replace(/(\d{3})?(\d{4})/, '$1-$2');
167
- }
168
- else {
169
- formatedPhone = cleanPhone;
170
- }
171
- return formatedPhone;
172
- };
173
-
174
- class RdsitePhoneModalDirective {
175
- constructor() {
176
- this.modalService = inject(ModalService);
177
- this.platformId = inject(PLATFORM_ID);
178
- this.element = inject((ElementRef));
179
- this.phoneService = inject(PhoneService);
180
- this.rdsitephonemodal = model(null, ...(ngDevMode ? [{ debugName: "rdsitephonemodal" }] : []));
181
- this.allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];
182
- }
183
- // Intercepta cliques em telefones e aplica comportamentos diferentes em tamanho desktop.
184
- onClick(event) {
185
- if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName) || !this.phoneService.phoneModalIsAllowed)
186
- return;
187
- const href = this.element?.nativeElement?.getAttribute('href') ?? '';
188
- if (this.phoneService.isPhoneModal(href)) {
189
- this.openPhoneModal(event, href);
190
- }
191
- }
192
- openPhoneModal(event, href) {
193
- event.preventDefault();
194
- event.stopPropagation();
195
- this.modalService.setContent(this.rdsitephonemodal() || this.modalService.defaultPhoneModal, { phone: formatPhone(href) });
196
- this.modalService.setStyle(RdsiteModalComponentStyle.DEFAULT);
197
- this.modalService.open();
198
- }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: RdsitePhoneModalDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
200
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.2", type: RdsitePhoneModalDirective, isStandalone: true, selector: "[rdsitephonemodal]", inputs: { rdsitephonemodal: { classPropertyName: "rdsitephonemodal", publicName: "rdsitephonemodal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rdsitephonemodal: "rdsitephonemodalChange" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
201
- }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: RdsitePhoneModalDirective, decorators: [{
203
- type: Directive,
204
- args: [{
205
- // eslint-disable-next-line @angular-eslint/directive-selector
206
- selector: '[rdsitephonemodal]',
207
- }]
208
- }], propDecorators: { onClick: [{
209
- type: HostListener,
210
- args: ['click', ['$event']]
211
- }] } });
212
-
213
- class RdsiteLinkDirective {
214
- constructor() {
215
- this.router = inject(Router);
216
- this.platformId = inject(PLATFORM_ID);
217
- this.document = inject(DOCUMENT);
218
- this.libConfig = inject(LIB_CONFIG);
219
- this.element = inject((ElementRef));
220
- this.phoneService = inject(PhoneService);
221
- this.rdsitePhoneModalDirective = inject(RdsitePhoneModalDirective);
222
- this.deviceDetectorService = inject(DeviceDetectorService);
223
- this.anchorAdjustment = input(null, ...(ngDevMode ? [{ debugName: "anchorAdjustment" }] : []));
224
- this.anchorExtraAdjustment = input(null, ...(ngDevMode ? [{ debugName: "anchorExtraAdjustment" }] : []));
225
- this.phonemodal = input(null, ...(ngDevMode ? [{ debugName: "phonemodal" }] : []));
226
- this.externalRegex = /^http:|https:|tel:|www\.|mailto:/;
227
- this.telRegex = /tel:/;
228
- this.mailRegex = /mailto:/;
229
- this.siteUrlList = ['rededorsaoluiz', 'rededorlabs'];
230
- this.allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];
231
- }
232
- onClick(event) {
233
- event.preventDefault();
234
- if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName))
235
- return;
236
- const href = this.element?.nativeElement?.getAttribute('href') ?? '';
237
- if (!href)
238
- return;
239
- if (this.isPhone(href)) {
240
- this.phoneClicked({
241
- href,
242
- event,
243
- element: this.element,
244
- phonemodal: this.phonemodal(),
245
- });
246
- return;
247
- }
248
- const isMobile = this.deviceDetectorService.isMobile();
249
- const deviceInfo = this.deviceDetectorService.getDeviceInfo();
250
- if (this.isMail(href)) {
251
- const target = isMobile || deviceInfo.browser !== 'Chrome' ? '_self' : '_blank';
252
- window.open(href, target);
253
- return;
254
- }
255
- if (this.isExternalUrl(href)) {
256
- const target = this.isSiteUrl(href) ? '_self' : '_blank';
257
- window.open(href, target);
258
- return;
259
- }
260
- if (this.isAnchor(href)) {
261
- this.scrollToAnchor(href);
262
- return;
263
- }
264
- this.navigateTo(href);
265
- }
266
- isPhone(href) {
267
- return this.telRegex.test(href);
268
- }
269
- isMail(href) {
270
- return this.mailRegex.test(href);
271
- }
272
- phoneClicked(value) {
273
- const { href, event, element, phonemodal } = value;
274
- if (this.phoneService.isPhoneModal(href)) {
275
- this.setPhoneModal(element, phonemodal);
276
- this.rdsitePhoneModalDirective.openPhoneModal(event, href);
277
- }
278
- else {
279
- window.open(href, '_self');
280
- }
281
- }
282
- setPhoneModal(element, phonemodal) {
283
- if (!this.phonemodal())
284
- return;
285
- if (!this.libConfig?.customPhoneModalCondition) {
286
- this.rdsitePhoneModalDirective.rdsitephonemodal.set(phonemodal);
287
- return;
288
- }
289
- if (this.libConfig?.customPhoneModalCondition(element)) {
290
- this.rdsitePhoneModalDirective.rdsitephonemodal.set(phonemodal);
291
- }
292
- }
293
- isExternalUrl(href) {
294
- return this.externalRegex.test(href);
295
- }
296
- isSiteUrl(href) {
297
- const exception = '/paciente';
298
- return this.siteUrlList.find((url) => href.includes(url) && !href.includes(exception));
299
- }
300
- isAnchor(href) {
301
- return href.startsWith('#');
302
- }
303
- scrollToAnchor(href) {
304
- if (href === '#')
305
- return;
306
- if (isPlatformBrowser(this.platformId)) {
307
- const docElement = this.document.documentElement;
308
- let adjustment = 0;
309
- if (this.libConfig.customAnchorAdjustment) {
310
- adjustment = this.libConfig.customAnchorAdjustment(this.document);
311
- }
312
- if (this.anchorAdjustment()) {
313
- adjustment = this.anchorAdjustment();
314
- }
315
- if (this.anchorExtraAdjustment()) {
316
- adjustment += this.anchorExtraAdjustment();
317
- }
318
- const bodyTop = this.document?.body?.getBoundingClientRect()?.top ?? 0;
319
- const hrefTop = this.document?.querySelector(href)?.getBoundingClientRect()?.top ?? 0;
320
- const scrollTop = bodyTop * -1 + hrefTop - adjustment;
321
- docElement.scrollTo({ top: scrollTop, behavior: 'smooth' });
322
- }
323
- }
324
- navigateTo(href) {
325
- const siteBasePath = this.libConfig.siteSufix ?? '';
326
- const siteBasePathNoSlash = siteBasePath.replace(/\//g, '');
327
- let noBaseHref = href;
328
- if (href.startsWith(siteBasePathNoSlash)) {
329
- noBaseHref = href.replace(siteBasePathNoSlash, '');
330
- }
331
- else if (href.startsWith(siteBasePath)) {
332
- noBaseHref = href.replace(siteBasePath, '');
333
- }
334
- if (this.libConfig?.customInternalLinkNavigation && this.libConfig.customInternalLinkNavigation(noBaseHref)) {
335
- return;
336
- }
337
- const [path, query] = noBaseHref.split('?');
338
- const queryParams = {};
339
- if (query) {
340
- const queryArray = query.split('&');
341
- queryArray.forEach((q) => {
342
- const arr = q.split('=');
343
- queryParams[arr[0]] = arr[1];
344
- });
345
- }
346
- // Força reload da pagina
347
- if (this.libConfig?.forcePageReload) {
348
- const fullUrl = path + (query ? '?' + query : '');
349
- window.location.href = fullUrl;
350
- return;
351
- }
352
- this.router.navigate([path], { queryParams: queryParams });
353
- }
354
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: RdsiteLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
355
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.2", type: RdsiteLinkDirective, isStandalone: true, selector: "[rdsitelink]", inputs: { anchorAdjustment: { classPropertyName: "anchorAdjustment", publicName: "anchorAdjustment", isSignal: true, isRequired: false, transformFunction: null }, anchorExtraAdjustment: { classPropertyName: "anchorExtraAdjustment", publicName: "anchorExtraAdjustment", isSignal: true, isRequired: false, transformFunction: null }, phonemodal: { classPropertyName: "phonemodal", publicName: "phonemodal", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)" } }, providers: [RdsitePhoneModalDirective], ngImport: i0 }); }
356
- }
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: RdsiteLinkDirective, decorators: [{
358
- type: Directive,
359
- args: [{
360
- // eslint-disable-next-line @angular-eslint/directive-selector
361
- selector: '[rdsitelink]',
362
- providers: [RdsitePhoneModalDirective],
363
- }]
364
- }], propDecorators: { onClick: [{
365
- type: HostListener,
366
- args: ['click', ['$event']]
367
- }] } });
368
-
369
- var RdsiteModalDrawerComponentStyle;
370
- (function (RdsiteModalDrawerComponentStyle) {
371
- RdsiteModalDrawerComponentStyle["DEFAULT"] = "default";
372
- RdsiteModalDrawerComponentStyle["DRAWERDOCTOR"] = "doctor-card";
373
- RdsiteModalDrawerComponentStyle["FORMFALLBACK"] = "form-fallback";
374
- RdsiteModalDrawerComponentStyle["FILTERDOENCAS"] = "filter-doencas";
375
- })(RdsiteModalDrawerComponentStyle || (RdsiteModalDrawerComponentStyle = {}));
376
-
377
- const getSiteUrl = (siteUrl = '', siteSufix = '') => {
378
- const baseUrl = siteUrl.endsWith('/') ? siteUrl.substring(0, siteUrl.length - 1) : siteUrl;
379
- const baseSufix = siteSufix.endsWith('/') ? siteSufix.substring(0, siteSufix.length - 1) : siteSufix;
380
- return `${baseUrl}${baseSufix}`;
381
- };
382
-
383
- function removeHtmlTags(content) {
384
- content = content.replace(/<.*?>/g, '');
385
- return content;
386
- }
387
-
388
- const checkSafariAgent = () => {
389
- const safariAgent = navigator.userAgent.includes('Safari');
390
- const chromeAgent = navigator.userAgent.includes('Chrome');
391
- return !chromeAgent && safariAgent;
392
- };
393
-
394
- /**
395
- * Função que retorna um replacer personalizado para o JSON.stringify que resolve problemas de estruturas circulares durante a serialização.
396
- */
397
- function getCircularReplacer(customOptions) {
398
- const seen = new WeakSet();
399
- const options = {
400
- ignoreKeys: customOptions?.ignoreKeys || [],
401
- maxDepth: customOptions?.maxDepth || 100,
402
- };
403
- let depth = 0;
404
- return (key, value) => {
405
- // Ignora chaves específicas configuradas
406
- if (options.ignoreKeys.includes(key)) {
407
- return undefined;
408
- }
409
- // Controle de profundidade (opcional)
410
- if (key === '') {
411
- depth = 0; // Reinicia a profundidade na raiz
412
- }
413
- else {
414
- depth += 1; // Incrementa apenas quando descer na hierarquia
415
- }
416
- if (depth > options.maxDepth) {
417
- return typeof value === 'object' ? '[Object]' : value;
418
- }
419
- // Lida com referências circulares
420
- if (typeof value === 'object' && value !== null) {
421
- // Se já vimos este objeto, é uma referência circular
422
- if (seen.has(value)) {
423
- return undefined; // Exclui valores circulares
424
- }
425
- // Adiciona o objeto ao conjunto de objetos vistos
426
- seen.add(value);
427
- }
428
- return value;
429
- };
430
- }
431
-
432
- class LogService {
433
- constructor() {
434
- this.libConfig = inject(LIB_CONFIG);
435
- this.platformId = inject(PLATFORM_ID);
436
- this.location = inject(Location);
437
- }
438
- logMsg(msg, label) {
439
- label = label ? `${label} ` : '';
440
- if (!isPlatformBrowser(this.platformId) || (isPlatformBrowser(this.platformId) && !this.libConfig?.production)) {
441
- console.log(`${label}${msg}`);
442
- }
443
- }
444
- logLoad(component) {
445
- this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, 'LOAD');
446
- }
447
- log404(component) {
448
- this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '404');
449
- }
450
- log500(component) {
451
- this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '500');
452
- }
453
- getPageURL() {
454
- return `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`;
455
- }
456
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: LogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
457
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: LogService, providedIn: 'root' }); }
458
- }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: LogService, decorators: [{
460
- type: Injectable,
461
- args: [{
462
- providedIn: 'root',
463
- }]
464
- }] });
465
-
466
- /**
467
- * Converte JSON para query string.
468
- * @param params JSON
469
- */
470
- function toQueryParams(params) {
471
- return params
472
- ? `?${Object.keys(params)
473
- .map((key) => key + '=' + params[key])
474
- .join('&')}`
475
- : '';
476
- }
477
-
478
- /* Adiciona os Headers necessários para funcionamento do site back-end */
479
- class HttpClientService {
480
- constructor() {
481
- this.platformId = inject(PLATFORM_ID);
482
- this.libConfig = inject(LIB_CONFIG);
483
- this.http = inject(HttpClient);
484
- this.deviceService = inject(DeviceDetectorService);
485
- }
486
- get(url) {
487
- const headers = this.getHeaders();
488
- return this.http.get(url, { headers });
489
- }
490
- post(url, data) {
491
- const headers = this.getHeaders();
492
- return this.http.post(url, data, { headers });
493
- }
494
- getHeaders() {
495
- const baseHeaders = new HttpHeaders()
496
- .set('x-origin-application', this.libConfig.xOriginApplication)
497
- .set('x-origin-channel', this.getOriginChannel())
498
- .set('x-origin-device', this.getOriginDevice());
499
- if (isPlatformServer(this.platformId) && this.libConfig.server) {
500
- return baseHeaders.append('authorization', 'Basic ' + Buffer.from(`${this.libConfig.siteApi.auth.user}:${this.libConfig.siteApi.auth.password}`).toString('base64'));
501
- }
502
- else {
503
- return baseHeaders.append('client_id', this.libConfig.client_id);
504
- }
505
- }
506
- getOriginChannel() {
507
- return this.deviceService.isDesktop() ? 'desktop' : 'mobile';
508
- }
509
- getOriginDevice() {
510
- return `app-${this.deviceService.getDeviceInfo().os}`;
511
- }
512
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: HttpClientService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
513
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: HttpClientService, providedIn: 'root' }); }
514
- }
515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: HttpClientService, decorators: [{
516
- type: Injectable,
517
- args: [{ providedIn: 'root' }]
518
- }] });
519
-
520
- class SiteBackendService {
521
- constructor() {
522
- this.httpClientService = inject(HttpClientService);
523
- this.libConfig = inject(LIB_CONFIG);
524
- this.platformId = inject(PLATFORM_ID);
525
- this.siteApiUrl = this.getApiUrl();
526
- }
527
- getApiUrl() {
528
- if (isPlatformServer(this.platformId) && this.libConfig.server) {
529
- return this.libConfig.siteApi.baseInternal;
530
- }
531
- return this.libConfig.siteApi.base;
532
- }
533
- /**
534
- * GET para qualquer endpoint do back-end do site.
535
- * @param path - O caminho do recurso. (Inicia sem '/'. Ex: 'unidades/wp')
536
- * @param params - Parâmetros opcionais para a requisição.
537
- * @returns Observable que emite os dados retornados pelo back-end.
538
- */
539
- get(path, params) {
540
- return this.httpClientService.get(`${this.siteApiUrl}${path}${toQueryParams(params)}`);
541
- }
542
- /**
543
- * POST para qualquer endpoint do back-end do site.
544
- * @param path - O caminho do recurso. (Inicia sem '/'. Ex: 'unidades/wp')
545
- * @param params - Parâmetros opcionais para a requisição.
546
- * @returns Observable que emite os dados retornados pelo back-end.
547
- */
548
- post(path, params) {
549
- return this.httpClientService.post(`${this.siteApiUrl}${path}`, params);
550
- }
551
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SiteBackendService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
552
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SiteBackendService, providedIn: 'root' }); }
553
- }
554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SiteBackendService, decorators: [{
555
- type: Injectable,
556
- args: [{
557
- providedIn: 'root',
558
- }]
559
- }], ctorParameters: () => [] });
560
-
561
- class ErrorInterceptor {
562
- constructor() {
563
- this.logService = inject(LogService);
564
- this.siteBackendService = inject(SiteBackendService);
565
- this.platformId = inject(PLATFORM_ID);
566
- }
567
- intercept(req, next) {
568
- return next.handle(req).pipe(catchError((error) => {
569
- this.logService.logMsg(`REQUEST ERROR => ${req.method} ${req.url}`, 'ERROR_INTERCEPTOR');
570
- if (isPlatformBrowser(this.platformId) && !req.url.includes('/log/error')) {
571
- const errorMessage = typeof error === 'string' ? error : error instanceof Error ? error.message : JSON.stringify(error);
572
- this.siteBackendService
573
- .post('log/error', {
574
- error: errorMessage,
575
- origin: window.location.href,
576
- url: req.urlWithParams,
577
- })
578
- .subscribe();
579
- }
580
- return throwError(() => error);
581
- }));
582
- }
583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ErrorInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
584
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ErrorInterceptor, providedIn: 'root' }); }
585
- }
586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ErrorInterceptor, decorators: [{
587
- type: Injectable,
588
- args: [{
589
- providedIn: 'root',
590
- }]
591
- }] });
592
-
593
- class LogInterceptor {
594
- constructor() {
595
- this.logService = inject(LogService);
596
- }
597
- intercept(req, next) {
598
- const requestId = v4();
599
- const startTime = Date.now();
600
- this.logService.logMsg(`REQUEST ${requestId} => ${req.method} ${req.url}`, 'INTERCEPTOR');
601
- return next.handle(req).pipe(tap((response) => {
602
- const res = response;
603
- if (res?.status) {
604
- const elapsedTime = differenceInMilliseconds(Date.now(), startTime);
605
- this.logService.logMsg(`RESPONSE ${requestId} => ${req.method} ${req.url} | Duração: ${elapsedTime}ms | Status: ${res.status} - ${res.statusText} | Body: ${!!res.body}`, 'INTERCEPTOR');
606
- }
607
- }));
608
- }
609
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: LogInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
610
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: LogInterceptor, providedIn: 'root' }); }
611
- }
612
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: LogInterceptor, decorators: [{
613
- type: Injectable,
614
- args: [{
615
- providedIn: 'root',
616
- }]
617
- }] });
618
-
619
- var EnumDoencaTaxonomy;
620
- (function (EnumDoencaTaxonomy) {
621
- EnumDoencaTaxonomy["DOENCAS_CAT"] = "doencas_cat";
622
- EnumDoencaTaxonomy["DOENCAS_TAG"] = "doencas_tag";
623
- })(EnumDoencaTaxonomy || (EnumDoencaTaxonomy = {}));
624
- var EnumDoencaTaxonomyCat;
625
- (function (EnumDoencaTaxonomyCat) {
626
- EnumDoencaTaxonomyCat["DOENCA"] = "doencas";
627
- EnumDoencaTaxonomyCat["SINTOMA"] = "sintomas";
628
- })(EnumDoencaTaxonomyCat || (EnumDoencaTaxonomyCat = {}));
629
-
630
- var FilterType;
631
- (function (FilterType) {
632
- FilterType["INPUT"] = "input";
633
- FilterType["SELECT"] = "select";
634
- FilterType["CHECKBOX_GROUP"] = "checkbox-group";
635
- FilterType["RADIO_GROUP"] = "radio-group";
636
- FilterType["CUSTOM"] = "custom";
637
- })(FilterType || (FilterType = {}));
638
-
639
- class ErrorService {
640
- constructor() {
641
- this.ctas = new BehaviorSubject({});
642
- }
643
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
644
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ErrorService, providedIn: 'root' }); }
645
- }
646
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ErrorService, decorators: [{
647
- type: Injectable,
648
- args: [{
649
- providedIn: 'root',
650
- }]
651
- }] });
652
-
653
- class MapBoxService {
654
- constructor() {
655
- this.http = inject(HttpClient);
656
- this.logService = inject(LogService);
657
- this.libConfig = inject(LIB_CONFIG);
658
- this.platformId = inject(PLATFORM_ID);
659
- this.mapboxAccessToken = this.libConfig.mapboxAccessToken;
660
- this.mapboxSSRAccessToken = this.libConfig.mapboxSSRAccessToken;
661
- this.mapboxApiUrl = 'https://api.mapbox.com';
662
- this.geocodingEp = 'search/geocode/v6';
663
- }
664
- /**
665
- * Busca geocalizada por nome do local.
666
- * Ex.: barra da tijuca, rio de janeiro - rio de janeiro, brasil
667
- * @param query nome de local para a busca
668
- * @param params parâmetros opcionais de busca e filtro
669
- */
670
- forwardGeocoding(query, params = {}, logContext) {
671
- this.logMapbox('forwardGeocoding', logContext);
672
- if (query.length >= 256) {
673
- return throwError(() => 'Query length exceeds 255 characters.');
674
- }
675
- const url = `${this.mapboxApiUrl}/${this.geocodingEp}/forward?q=${query}`;
676
- params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;
677
- return this.http.get(url, { params, headers: this.getHeaders() });
678
- }
679
- /**
680
- * Busca local por longitude e latitude
681
- * @param lng formato longitude
682
- * @param lat formato latitude
683
- * @param params parâmetros opcionais de busca e filtro
684
- */
685
- reverseGeocoding(lng, lat, params = {}, logContext) {
686
- this.logMapbox('reverseGeocoding', logContext);
687
- const url = `${this.mapboxApiUrl}/${this.geocodingEp}/reverse?longitude=${lng}&latitude=${lat}`;
688
- params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;
689
- return this.http.get(url, { params });
690
- }
691
- logMapbox(callerFunction, context = 'no-context') {
692
- const platform = isPlatformServer(this.platformId) ? 'server' : 'browser';
693
- this.logService.logMsg(`${platform} - ${callerFunction} - ${context}`, 'MAPBOX');
694
- }
695
- getHeaders() {
696
- return new HttpHeaders().set('Referrer-Policy', 'origin');
697
- }
698
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: MapBoxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
699
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: MapBoxService, providedIn: 'root' }); }
700
- }
701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: MapBoxService, decorators: [{
702
- type: Injectable,
703
- args: [{
704
- providedIn: 'root',
705
- }]
706
- }] });
707
-
708
- var GeolocationPermissions;
709
- (function (GeolocationPermissions) {
710
- GeolocationPermissions["GRANTED"] = "granted";
711
- GeolocationPermissions["PROMPT"] = "prompt";
712
- GeolocationPermissions["DENIED"] = "denied";
713
- })(GeolocationPermissions || (GeolocationPermissions = {}));
714
- class GeolocService {
715
- get switchStatus() {
716
- return this._switchStatus;
717
- }
718
- get address() {
719
- return this._address;
720
- }
721
- get permission() {
722
- return this._permission;
723
- }
724
- get disableSwitch() {
725
- return this._disableSwitch;
726
- }
727
- constructor() {
728
- this.document = inject(DOCUMENT);
729
- this.platformId = inject(PLATFORM_ID);
730
- this.mapboxService = inject(MapBoxService);
731
- this.logService = inject(LogService);
732
- this._mapboxGeocodingParams = {
733
- types: 'place',
734
- limit: 1,
735
- language: 'pt-BR',
736
- country: 'BR',
737
- };
738
- this._hasConsent = false;
739
- this._switchStatus = false;
740
- this._address = null;
741
- this._permission = GeolocationPermissions.PROMPT;
742
- this.geolocation = new BehaviorSubject(null);
743
- this.isChecked = new BehaviorSubject(false); // Emite true quando o geoloc está estável
744
- this._isSafariAgent = false;
745
- this._disableSwitch = false;
746
- if (isPlatformServer(this.platformId)) {
747
- this.isChecked.next(true);
748
- return;
749
- }
750
- this._isSafariAgent = checkSafariAgent();
751
- if (this._isSafariAgent) {
752
- this._hasConsent = this.checkACookieExists('geolocation_consent');
753
- this.initGeolocation(this._hasConsent);
754
- return;
755
- }
756
- navigator?.permissions
757
- ?.query({ name: 'geolocation' })
758
- .then((permission) => {
759
- this._permission = permission.state;
760
- this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);
761
- permission.onchange = () => {
762
- this._permission = permission.state;
763
- this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);
764
- };
765
- })
766
- .catch((error) => {
767
- this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');
768
- this._permission = GeolocationPermissions.DENIED;
769
- this._disableSwitch = true;
770
- this.initGeolocation(false);
771
- });
772
- }
773
- initGeolocation(geolocAllowed = false) {
774
- this._switchStatus = true;
775
- if (geolocAllowed) {
776
- this.getCurrentPosition().subscribe({
777
- next: (position) => {
778
- this._disableSwitch = false;
779
- this.setGeolocation(position);
780
- this.setConsentCookie(true, 3650);
781
- this._hasConsent = true;
782
- this._permission = GeolocationPermissions.GRANTED;
783
- },
784
- error: () => {
785
- if (this._permission === GeolocationPermissions.DENIED) {
786
- this._disableSwitch = true;
787
- this.setConsentCookie(false, 15);
788
- }
789
- this.geolocation.next(null);
790
- this._address = null;
791
- this._hasConsent = false;
792
- this._switchStatus = false;
793
- this.isChecked.next(true);
794
- },
795
- });
796
- }
797
- else {
798
- if (this.permission === GeolocationPermissions.DENIED) {
799
- this._disableSwitch = true;
800
- this.setConsentCookie(false, 15);
801
- }
802
- this.geolocation.next(null);
803
- this._address = null;
804
- this._hasConsent = false;
805
- this._switchStatus = false;
806
- this.isChecked.next(true);
807
- }
808
- }
809
- getCurrentPosition() {
810
- return new Observable((observer) => {
811
- navigator.geolocation.getCurrentPosition((position) => {
812
- observer.next(position);
813
- observer.complete();
814
- }, (error) => observer.error(error), { enableHighAccuracy: true });
815
- });
816
- }
817
- setGeolocation(position) {
818
- if (position) {
819
- if (position.coords.latitude === this.geolocation.value?.lat && position.coords.longitude === this.geolocation.value?.lng)
820
- return;
821
- this.geolocation.next({
822
- lat: position.coords.latitude,
823
- lng: position.coords.longitude,
824
- });
825
- this.getMapboxAdress()
826
- .pipe(map((response) => {
827
- const city = response?.features[0]?.properties?.name;
828
- const state = {
829
- name: response?.features[0]?.properties?.context?.region?.name,
830
- shortCode: response?.features[0]?.properties?.context?.region?.region_code,
831
- };
832
- return { city, state };
833
- }))
834
- .subscribe({
835
- next: (response) => {
836
- this._address = response;
837
- this._switchStatus = true;
838
- this.isChecked.next(true);
839
- },
840
- error: (error) => {
841
- this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');
842
- this._switchStatus = false;
843
- this.geolocation.next(null);
844
- this._address = null;
845
- this.isChecked.next(true);
846
- },
847
- });
848
- }
849
- else {
850
- this.geolocation.next(null);
851
- this._address = null;
852
- this._switchStatus = false;
853
- this.isChecked.next(true);
854
- }
855
- }
856
- getMapboxAdress() {
857
- const lng = `${this.geolocation.value?.lng}`;
858
- const lat = `${this.geolocation.value?.lat}`;
859
- return this.mapboxService.reverseGeocoding(lng, lat, this._mapboxGeocodingParams, 'geolocalizacao.service getMapboxAdress');
860
- }
861
- checkACookieExists(name) {
862
- if (isPlatformServer(this.platformId) || typeof this.document === 'undefined' || !this.document?.cookie) {
863
- return false;
864
- }
865
- return this.document.cookie
866
- .split(';')
867
- .map((item) => item.trim())
868
- .some((item) => item.trim().startsWith(name));
869
- }
870
- setConsentCookie(status, days) {
871
- if (this.getCookieValue('geolocation_consent') !== status.toString()) {
872
- const lifetime = new Date(Date.now() + days * 86400000).toUTCString();
873
- this.document.cookie = `geolocation_consent=${status}; path=/; expires=${lifetime}; SameSite=None; Secure`;
874
- }
875
- }
876
- getCookieValue(prop) {
877
- if (isPlatformBrowser(this.platformId)) {
878
- const value = this.document.cookie
879
- .split(';')
880
- .map((item) => item.trim())
881
- .find((item) => item.startsWith(`${prop}=`));
882
- return value ? value.slice(prop.length + 1) : '';
883
- }
884
- return '';
885
- }
886
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: GeolocService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
887
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: GeolocService, providedIn: 'root' }); }
888
- }
889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: GeolocService, decorators: [{
890
- type: Injectable,
891
- args: [{
892
- providedIn: 'root',
893
- }]
894
- }], ctorParameters: () => [] });
895
-
896
- class AbstractModalDrawerComponent {
897
- }
898
- class ModalDrawerService {
899
- constructor() {
900
- this.reference = null;
901
- this.firstInteraction = signal(false, ...(ngDevMode ? [{ debugName: "firstInteraction" }] : []));
902
- this.maxTries = 10;
903
- this.delay = 200;
904
- }
905
- open() {
906
- this.firstInteraction.set(true);
907
- executeWithRetry(() => {
908
- this.reference?.openSheet();
909
- }, () => !!this.reference, this.maxTries, this.delay);
910
- }
911
- setReference(element) {
912
- this.reference = element;
913
- }
914
- setContent(content) {
915
- executeWithRetry(() => {
916
- if (this.reference) {
917
- this.reference.modalContent.set(content);
918
- }
919
- }, () => !!this.reference, this.maxTries, this.delay);
920
- }
921
- setStyle(style) {
922
- executeWithRetry(() => {
923
- if (this.reference) {
924
- this.reference.componentStyle.set(style);
925
- }
926
- }, () => !!this.reference, this.maxTries, this.delay);
927
- }
928
- setHeight(value) {
929
- executeWithRetry(() => {
930
- if (this.reference) {
931
- this.reference.maxHeight = value;
932
- }
933
- }, () => !!this.reference, this.maxTries, this.delay);
934
- }
935
- close() {
936
- executeWithRetry(() => {
937
- this.reference?.closeSheet();
938
- }, () => !!this.reference, this.maxTries, this.delay);
939
- }
940
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ModalDrawerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
941
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ModalDrawerService, providedIn: 'root' }); }
942
- }
943
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ModalDrawerService, decorators: [{
944
- type: Injectable,
945
- args: [{
946
- providedIn: 'root',
947
- }]
948
- }] });
949
-
950
- class PrivacyToolsService {
951
- constructor() {
952
- this.document = inject(DOCUMENT);
953
- this.platformId = inject(PLATFORM_ID);
954
- this.cookieBannerScriptId = 'PrivacyToolsScript';
955
- this.cookieBannerStyleId = 'PrivacyToolsStyle';
956
- this.cookieBannerScriptElement = null;
957
- this.configOptions = {};
958
- this.cookieConsent = null;
959
- }
960
- /* Config */
961
- config(options) {
962
- this.configOptions = options;
963
- }
964
- /* Setup cookie Banner */
965
- setupCookieBanner(unidadeBasePath) {
966
- if (isPlatformBrowser(this.platformId)) {
967
- const banner = this.configOptions?.cookieBanners?.find((banner) => banner.basePath.includes(unidadeBasePath));
968
- if (banner) {
969
- this.addCookieBanner(banner);
970
- }
971
- }
972
- }
973
- openCookieBanner() {
974
- if (this.cookieConsent && this.cookieBannerScriptElement) {
975
- this.cookieConsent.privacyToolsShowCookieNotice();
976
- }
977
- }
978
- /* Add cookie banner style and script */
979
- addCookieBanner(banner) {
980
- this.cookieBannerScriptElement = null;
981
- this.addCookieBannerStyle(banner.styleSrc);
982
- this.addCookieBannerScript(banner.scriptSrc);
983
- }
984
- /* Add cookie banner style. */
985
- addCookieBannerStyle(src) {
986
- if (isPlatformServer(this.platformId))
987
- return;
988
- this.document.getElementById('byRemovePortal')?.remove();
989
- const oldStyle = this.document.getElementById(this.cookieBannerStyleId);
990
- if (oldStyle) {
991
- oldStyle.remove();
992
- }
993
- const style = this.document.createElement('link');
994
- style.id = this.cookieBannerStyleId;
995
- style.rel = 'stylesheet';
996
- style.type = 'text/css';
997
- style.href = src;
998
- style.media = 'none';
999
- style.addEventListener('load', () => {
1000
- style.media = 'all';
1001
- });
1002
- this.document.body.appendChild(style);
1003
- }
1004
- /* Add cookie banner script. */
1005
- addCookieBannerScript(src) {
1006
- if (isPlatformServer(this.platformId) || typeof window === 'undefined')
1007
- return;
1008
- window['cookieconsent'] = null;
1009
- const oldScript = this.document.getElementById(this.cookieBannerScriptId);
1010
- if (oldScript) {
1011
- oldScript.remove();
1012
- }
1013
- const script = this.document.createElement('script');
1014
- script.id = this.cookieBannerScriptId;
1015
- script.src = src;
1016
- script.addEventListener('load', () => {
1017
- this.cookieBannerScriptElement = script;
1018
- this.cookieConsent = window['cookieconsent'];
1019
- window['portalBanner']?.call();
1020
- });
1021
- this.document.body.appendChild(script);
1022
- }
1023
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PrivacyToolsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1024
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PrivacyToolsService, providedIn: 'root' }); }
1025
- }
1026
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PrivacyToolsService, decorators: [{
1027
- type: Injectable,
1028
- args: [{
1029
- providedIn: 'root',
1030
- }]
1031
- }] });
1032
-
1033
- class SeoService {
1034
- constructor() {
1035
- this.title = inject(Title);
1036
- this.meta = inject(Meta);
1037
- this.location = inject(Location);
1038
- this.libConfig = inject(LIB_CONFIG);
1039
- this.document = inject(DOCUMENT);
1040
- this.separator = ' - ';
1041
- this.defaultTitle = 'Rede D’Or';
1042
- this.sameAs = [
1043
- 'https://www.facebook.com/rededor/',
1044
- 'https://www.instagram.com/rededor_oficial/',
1045
- 'https://www.linkedin.com/company/rededor-saoluiz',
1046
- 'https://twitter.com/rededor',
1047
- ];
1048
- this.twitterUser = '@rededor';
1049
- this.jsonTagId = 'seoJSON';
1050
- this.breadcrumbsJsonTagId = 'breadcrumbsJSON';
1051
- this.unidade = null;
1052
- this.unidadeName = '';
1053
- this.unidadePath = '';
1054
- this.unidadeSlug = '';
1055
- this.customJsonType = [];
1056
- }
1057
- setFullSeo(data) {
1058
- this.setTitle(data.title.text, !!data.title.sub);
1059
- this.setDescription(data.description);
1060
- this.setCanonicalHref(data.canonical);
1061
- this.setPageJson();
1062
- this.setSocialTags(data.socialTags);
1063
- }
1064
- /**
1065
- * Define tag description da página
1066
- * @param content conteúdo da descrição <string>
1067
- */
1068
- setDescription(content) {
1069
- const descTag = this.meta.getTag("name='description'");
1070
- if (content) {
1071
- content = he.decode(content);
1072
- content = removeHtmlTags(content);
1073
- }
1074
- else {
1075
- content = '';
1076
- }
1077
- this.activeDescription = content;
1078
- const tagContent = { name: 'description', content };
1079
- if (descTag) {
1080
- this.meta.updateTag(tagContent);
1081
- }
1082
- else {
1083
- this.meta.addTag(tagContent);
1084
- }
1085
- return this;
1086
- }
1087
- /**
1088
- * Define meta tags para a página
1089
- * @param tag nome da tag meta
1090
- * @param content conteúdo da tag meta
1091
- * @param type tipo de tag meta
1092
- */
1093
- setMetaTag(tag, content, type = 'name') {
1094
- const metatag = this.meta.getTag(`${type}='${tag}'`);
1095
- content = he.decode(content);
1096
- content = removeHtmlTags(content);
1097
- const tagContent = {
1098
- [type]: tag,
1099
- content,
1100
- };
1101
- if (!metatag) {
1102
- this.meta.addTag(tagContent);
1103
- }
1104
- else {
1105
- this.meta.updateTag(tagContent);
1106
- }
1107
- return this;
1108
- }
1109
- /**
1110
- * Remove meta tags da página
1111
- * @param tag nome da tag meta
1112
- * @param content conteúdo da tag meta
1113
- * @param attr atributo da tag meta
1114
- * @param type tipo de tag meta
1115
- */
1116
- removeTag(tag, content, attr, type = 'name') {
1117
- const metatag = this.meta.getTag(`${type}='${tag}'`);
1118
- if (metatag) {
1119
- this.meta.removeTag(`${attr}=${content}`);
1120
- }
1121
- return this;
1122
- }
1123
- /**
1124
- * Define meta tags para Facebook
1125
- * @param title título para o facebook
1126
- * @param description descrição para o facebook
1127
- * @param url url para definição do facebook
1128
- * @param img imagem para definição no facebook
1129
- */
1130
- setMetaFacebook(title, description, url, img = null) {
1131
- this.setMetaTag('og:url', url, 'property');
1132
- this.setMetaTag('og:title', title, 'property');
1133
- this.setMetaTag('og:description', description, 'property');
1134
- this.setMetaTag('og:type', 'website', 'property');
1135
- this.setMetaTag('og:image', img ?? '', 'property');
1136
- }
1137
- /**
1138
- * Define meta tags para Twitter
1139
- * @param title título para o twitter
1140
- * @param description descrição para o twitter
1141
- * @param url url para o twitter
1142
- * @param img imagem para definição no twitter
1143
- */
1144
- setMetaTwitter(title, description, url, img = null) {
1145
- this.setMetaTag('twitter:site', url, 'name');
1146
- this.setMetaTag('twitter:title', title, 'name');
1147
- this.setMetaTag('twitter:description', description, 'name');
1148
- this.setMetaTag('twitter:image', img ?? '', 'name');
1149
- }
1150
- /**
1151
- * Define tags de redes sociais (Twitter e Open Graph)
1152
- * @param properties
1153
- */
1154
- setSocialTags(properties) {
1155
- const pagePath = this.location.path();
1156
- const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
1157
- let defaultProperties = {
1158
- twitterCard: 'summary',
1159
- twitterSite: this.twitterUser,
1160
- type: 'website',
1161
- title: this.getTitle(),
1162
- description: this.activeDescription || '',
1163
- url: `${siteurl}${pagePath}`,
1164
- image: this.libConfig?.logoPath ? `${siteurl}${this.libConfig.logoPath}` : 'https://www.rededorsaoluiz.com.br/assets/imgs/logo-rededor-blue.png',
1165
- };
1166
- if (properties) {
1167
- defaultProperties = { ...defaultProperties, ...properties };
1168
- }
1169
- this.setMetaTag('twitter:card', defaultProperties.twitterCard || '', 'name')
1170
- .setMetaTag('twitter:site', defaultProperties.twitterSite || '', 'name')
1171
- .setMetaTag('og:type', defaultProperties.type || '', 'property')
1172
- .setMetaTag('og:title', defaultProperties.title || '', 'property')
1173
- .setMetaTag('og:description', defaultProperties.description || '', 'property')
1174
- .setMetaTag('og:url', defaultProperties.url || '', 'property')
1175
- .setMetaTag('og:image', defaultProperties.image || '', 'property');
1176
- return this;
1177
- }
1178
- /**
1179
- * Define título da página
1180
- * @param title título da página <string>
1181
- * @param sub Se é subsite acrescenta unidade <boolean>
1182
- */
1183
- setTitle(title, sub = false) {
1184
- if (title && title !== '') {
1185
- title = he.decode(title);
1186
- title = removeHtmlTags(title);
1187
- if (sub) {
1188
- title = he.decode(`${title}${this.separator}${this.unidadeName}`);
1189
- }
1190
- this.title.setTitle(title);
1191
- }
1192
- return this;
1193
- }
1194
- /** Obtem título atual da página */
1195
- getTitle() {
1196
- return this.title.getTitle();
1197
- }
1198
- set404Title(component = 'Default Component') {
1199
- if (component && component !== '') {
1200
- component = he.decode(component);
1201
- component = removeHtmlTags(component);
1202
- if (this.unidadeName) {
1203
- component = he.decode(`${component}${this.separator}${this.unidadeName}`);
1204
- }
1205
- }
1206
- const title = `Erro 404 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;
1207
- this.title.setTitle(title);
1208
- return this;
1209
- }
1210
- set500Title(component = 'Default Component') {
1211
- if (component && component !== '') {
1212
- component = he.decode(component);
1213
- component = removeHtmlTags(component);
1214
- if (this.unidadeName) {
1215
- component = he.decode(`${component}${this.separator}${this.unidadeName}`);
1216
- }
1217
- }
1218
- const title = `Erro 500 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;
1219
- this.title.setTitle(title);
1220
- return this;
1221
- }
1222
- /** Cria tag script para JSON de breadcrumbs */
1223
- createBreadcrumbsJSONTag() {
1224
- const tag = this.document.createElement('script');
1225
- tag.id = this.breadcrumbsJsonTagId;
1226
- tag.type = 'application/ld+json';
1227
- this.document.head.appendChild(tag);
1228
- this.breadcrumbsJsonTag = tag;
1229
- return tag;
1230
- }
1231
- /** Retorna tag para script json de breadcrumbs ou cria se não houver. */
1232
- getBreadcrumbsJSONTag() {
1233
- const elements = this.document.head.children;
1234
- let i;
1235
- for (i = 0; i < elements.length; i++) {
1236
- const elem = elements[i];
1237
- if (elem && elem.id === this.breadcrumbsJsonTagId) {
1238
- return elem;
1239
- }
1240
- }
1241
- return this.createBreadcrumbsJSONTag();
1242
- }
1243
- /** Define o JSON de breadcrumbs da página */
1244
- setBreadcrumbsJson(items) {
1245
- this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();
1246
- const json = {
1247
- '@context': 'http://schema.org',
1248
- '@type': 'BreadcrumbList',
1249
- itemListElement: this.getJsonBreadcrumbItems(items),
1250
- };
1251
- this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);
1252
- return this;
1253
- }
1254
- /** Converte itens do breadcrumb em itens do JSON */
1255
- getJsonBreadcrumbItems(items) {
1256
- const jsonItems = [
1257
- {
1258
- '@type': 'ListItem',
1259
- position: 1,
1260
- item: { '@id': this.getBreadcrumbItemUrl(['/']), name: he.encode('Página Inicial') },
1261
- },
1262
- ];
1263
- items.forEach((item, i) => {
1264
- const jsonItem = {
1265
- '@type': 'ListItem',
1266
- position: i + 2,
1267
- item: { '@id': this.getBreadcrumbItemUrl(item?.url || []), name: he.encode(item.label) },
1268
- };
1269
- jsonItems.push(jsonItem);
1270
- });
1271
- return jsonItems;
1272
- }
1273
- /**
1274
- * Monta a url do item de breadcrumb proveniente do array de urls
1275
- * ou do caminho da própria página, conforme caso do último item.
1276
- */
1277
- getBreadcrumbItemUrl(url) {
1278
- const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
1279
- if (!url || url.length <= 0) {
1280
- const pagePath = this.location.path();
1281
- return `${siteurl}${pagePath}`;
1282
- }
1283
- url = url.filter((u) => u !== this.unidadePath);
1284
- const unidadePath = this.getUnidadePath();
1285
- const fullPath = `${unidadePath}/${url.join('/').replace(/^\/?/, '')}`;
1286
- return `${siteurl}${fullPath}`.replace(/\/$/, '');
1287
- }
1288
- /** Cria tag script para o JSON de SEO */
1289
- createJSONTag() {
1290
- const tag = this.document.createElement('script');
1291
- tag.id = this.jsonTagId;
1292
- tag.type = 'application/ld+json';
1293
- this.document.head.appendChild(tag);
1294
- this.jsonTag = tag;
1295
- return tag;
1296
- }
1297
- /** Retorna tag para script json de breadcrumbs ou cria se não houver. */
1298
- getJSONTag() {
1299
- const elements = this.document.head.children;
1300
- let i;
1301
- for (i = 0; i < elements.length; i++) {
1302
- const elem = elements[i];
1303
- if (elem && elem.id === this.jsonTagId) {
1304
- return elem;
1305
- }
1306
- }
1307
- return this.createJSONTag();
1308
- }
1309
- /** Define JSON para SEO somente quando no servidor */
1310
- setPageJson() {
1311
- this.jsonTag = this.getJSONTag();
1312
- const baseGraph = [this.getOrgJson(), this.getWebsiteJson(), this.getWebpageJson()];
1313
- const extendedGraph = this.customJsonType.length ? [...baseGraph, ...this.customJsonType] : baseGraph;
1314
- this.customJsonType = [];
1315
- const json = {
1316
- '@context': 'http://schema.org',
1317
- '@graph': extendedGraph,
1318
- };
1319
- this.jsonTag.innerHTML = JSON.stringify(json);
1320
- return this;
1321
- }
1322
- /** Obtem JSON da Organização */
1323
- getOrgJson() {
1324
- const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
1325
- return {
1326
- '@type': 'Organization',
1327
- '@id': `${siteurl}#organization`,
1328
- name: this.defaultTitle,
1329
- keywords: this.libConfig?.keywords,
1330
- url: `${siteurl}`,
1331
- sameAs: this.sameAs,
1332
- };
1333
- }
1334
- /** Obtem JSON do Website (portal, unidades, etc) */
1335
- getWebsiteJson() {
1336
- const unidadePath = this.getUnidadePath();
1337
- const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
1338
- return {
1339
- '@type': 'WebSite',
1340
- '@id': `${siteurl}${unidadePath}#website`,
1341
- url: `${siteurl}${unidadePath}`,
1342
- name: this.unidadeName,
1343
- keywords: this.libConfig?.keywords,
1344
- };
1345
- }
1346
- /** Obtem Json da página */
1347
- getWebpageJson() {
1348
- const unidadePath = this.getUnidadePath();
1349
- const siteURL = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
1350
- const pagePath = `${siteURL}${this.location.path()}`;
1351
- const desc = this.activeDescription ? this.activeDescription : '';
1352
- return {
1353
- '@type': 'WebPage',
1354
- '@id': `${pagePath}#webpage`,
1355
- url: pagePath,
1356
- inLanguage: 'pt-BR',
1357
- name: this.getTitle(),
1358
- isPartOf: { '@id': `${siteURL}${unidadePath}#website` },
1359
- about: { '@id': `${siteURL}#organization` },
1360
- description: desc,
1361
- };
1362
- }
1363
- getUnidadePath() {
1364
- let unidadePath = '';
1365
- if (this.unidade && this.unidadePath) {
1366
- unidadePath = this.unidade?.path === '/' ? '' : this.unidadePath?.substring(0, this.unidadePath?.length - 1);
1367
- }
1368
- return unidadePath;
1369
- }
1370
- /**
1371
- * Obtém a URL canônica da página.
1372
- * @returns A URL canônica da página.
1373
- */
1374
- getCanonicalHref() {
1375
- if (!this.canonicalTag) {
1376
- this.canonicalTag = this.getCanonicalTag();
1377
- }
1378
- return this.canonicalTag.href;
1379
- }
1380
- /** Cria tag para links canonicals no head */
1381
- createCanonicalTag() {
1382
- const tag = this.document.createElement('link');
1383
- tag.setAttribute('rel', 'canonical');
1384
- this.document.head.appendChild(tag);
1385
- tag.setAttribute('href', this.document.URL);
1386
- this.canonicalTag = tag;
1387
- return tag;
1388
- }
1389
- /** Retorna tag para link canonical existe ou cria se não houver. */
1390
- getCanonicalTag() {
1391
- const elements = this.document.head.children;
1392
- let i;
1393
- for (i = 0; i < elements.length; i++) {
1394
- const elem = elements[i];
1395
- if (elem && elem.tagName === 'LINK' && elem.rel === 'canonical') {
1396
- return elem;
1397
- }
1398
- }
1399
- return this.createCanonicalTag();
1400
- }
1401
- /**
1402
- * Define link canonical da página
1403
- * @param url url canonical
1404
- */
1405
- setCanonicalHref(url) {
1406
- if (!this.canonicalTag) {
1407
- this.canonicalTag = this.getCanonicalTag();
1408
- }
1409
- let path = this.document.location.pathname;
1410
- if (this.libConfig?.siteSufix && path.includes(this.libConfig?.siteSufix)) {
1411
- path = path.replace(this.libConfig?.siteSufix, '');
1412
- }
1413
- if (!path.startsWith('/')) {
1414
- path = `/${path}`;
1415
- }
1416
- const canonicalUrl = url && this.isCustomCanonical(url) ? url : `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${path}`;
1417
- this.canonicalTag.setAttribute('href', canonicalUrl);
1418
- return this;
1419
- }
1420
- /**
1421
- * Verifica se a URL fornecida é um link canonical personalizado
1422
- * @param url URL fornecida
1423
- */
1424
- isCustomCanonical(url) {
1425
- const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
1426
- return url.startsWith(siteurl);
1427
- }
1428
- /**
1429
- * Obtém uma url válida na aplicação proveniente de uma URL gerada
1430
- * pelo plugin Yoast para canonical automático.
1431
- * Ex.: https://wp.rededorsaoluiz.com.br/brasil/especialidades/cardiologia/
1432
- * @param urlFromWpApi URL canonica gerada pelo Yoast Plugin.
1433
- */
1434
- toLocalCanonical(urlFromWpApi) {
1435
- const apiUrl = this.libConfig?.wpUrl ?? '';
1436
- const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
1437
- const unidadeSlug = this.unidadeSlug;
1438
- let converted = urlFromWpApi.replace(apiUrl, siteurl);
1439
- if (unidadeSlug !== '/' && converted.includes(`/${unidadeSlug}/`)) {
1440
- converted = converted.replace(`/${unidadeSlug}/`, `${this.unidadePath}`);
1441
- }
1442
- return converted;
1443
- }
1444
- getPostContent(post) {
1445
- const content = post?.acf?.['rdsl_post_content'] ? post?.acf?.rdsl_post_content?.find((content) => content.acf_fc_layout === 'text_html') : null;
1446
- return content?.content || post.content.rendered || '';
1447
- }
1448
- addArticleScript(post, scriptName) {
1449
- const postContent = this.getPostContent(post);
1450
- const postHeaderImage = post?.acf?.['rdsl_post_header_img']
1451
- ? {
1452
- url: post?.acf?.['rdsl_post_header_img'].url,
1453
- width: post?.acf?.['rdsl_post_header_img'].width,
1454
- height: post?.acf?.['rdsl_post_header_img'].height,
1455
- }
1456
- : null;
1457
- const structuredData = {
1458
- '@context': 'https://schema.org',
1459
- '@type': 'Article',
1460
- mainEntityOfPage: `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`,
1461
- headline: post.title?.rendered,
1462
- datePublished: post.date_gmt,
1463
- publisher: {
1464
- '@type': 'Organization',
1465
- name: 'Rede D’Or',
1466
- },
1467
- description: post.title?.rendered,
1468
- articleBody: removeHtmlTags(he.decode(postContent)),
1469
- dateModified: post.modified_gmt,
1470
- image: {
1471
- '@type': 'ImageObject',
1472
- url: postHeaderImage?.url || post.featured_media_path || '',
1473
- height: postHeaderImage?.height || '',
1474
- width: postHeaderImage?.width || '',
1475
- },
1476
- author: {
1477
- '@type': 'Organization',
1478
- name: 'Rede D’Or',
1479
- },
1480
- wordcount: postContent.split(' ').length,
1481
- };
1482
- const script = this.document.createElement('script');
1483
- script.type = 'application/ld+json';
1484
- script.id = scriptName;
1485
- script.innerHTML = JSON.stringify(structuredData);
1486
- this.document.head.appendChild(script);
1487
- }
1488
- removeArticleScript(scriptName) {
1489
- const script = this.document.getElementById(scriptName);
1490
- script?.remove();
1491
- }
1492
- setUnidade({ unidade = null, unidadeName = '', unidadePath = '', unidadeSlug = '' }) {
1493
- this.unidade = unidade;
1494
- this.unidadeName = unidadeName;
1495
- this.unidadePath = unidadePath;
1496
- this.unidadeSlug = unidadeSlug;
1497
- }
1498
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SeoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1499
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SeoService, providedIn: 'root' }); }
1500
- }
1501
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SeoService, decorators: [{
1502
- type: Injectable,
1503
- args: [{
1504
- providedIn: 'root',
1505
- }]
1506
- }] });
1507
-
1508
- class ServerResponseService {
1509
- constructor() {
1510
- this.response = inject(RESPONSE, { optional: true });
1511
- }
1512
- getHeader(key) {
1513
- if (this.response) {
1514
- return this.response.getHeader(key);
1515
- }
1516
- return '';
1517
- }
1518
- setHeader(key, value) {
1519
- if (this.response) {
1520
- this.response.header(key, value);
1521
- }
1522
- return this;
1523
- }
1524
- appendHeader(key, value, delimiter = ',') {
1525
- if (this.response) {
1526
- const current = this.getHeader(key);
1527
- if (!current) {
1528
- return this.setHeader(key, value);
1529
- }
1530
- const newValue = [...current.split(delimiter), value].filter((el, i, a) => i === a.indexOf(el)).join(delimiter);
1531
- this.response.header(key, newValue);
1532
- }
1533
- return this;
1534
- }
1535
- setHeaders(dictionary) {
1536
- if (this.response) {
1537
- Object.keys(dictionary).forEach((key) => this.setHeader(key, dictionary[key]));
1538
- }
1539
- return this;
1540
- }
1541
- setStatus(code, message) {
1542
- if (this.response) {
1543
- this.response.statusCode = code;
1544
- if (message) {
1545
- this.response.statusMessage = message;
1546
- }
1547
- }
1548
- return this;
1549
- }
1550
- setNotFound(message = 'Não encontrado') {
1551
- if (this.response) {
1552
- this.response.statusCode = 404;
1553
- this.response.statusMessage = message;
1554
- }
1555
- return this;
1556
- }
1557
- setUnauthorized(message = 'Não autorizado') {
1558
- if (this.response) {
1559
- this.response.statusCode = 401;
1560
- this.response.statusMessage = message;
1561
- }
1562
- return this;
1563
- }
1564
- setError(message = 'Erro interno de servidor') {
1565
- if (this.response) {
1566
- this.response.statusCode = 500;
1567
- this.response.statusMessage = message;
1568
- }
1569
- return this;
1570
- }
1571
- setRedirect({ statusCode, message, url } = {
1572
- statusCode: 301,
1573
- message: 'Redirecionado permanentemente',
1574
- url: undefined,
1575
- }) {
1576
- if (this.response) {
1577
- this.response.statusCode = statusCode || 301;
1578
- this.response.statusMessage = message || 'Redirecionado permanentemente';
1579
- if (url) {
1580
- this.response.locals['redirectUrl'] = url; // Utilizado no ssr para redirect
1581
- }
1582
- }
1583
- return this;
1584
- }
1585
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ServerResponseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1586
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ServerResponseService, providedIn: 'root' }); }
1587
- }
1588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ServerResponseService, decorators: [{
1589
- type: Injectable,
1590
- args: [{
1591
- providedIn: 'root',
1592
- }]
1593
- }] });
1594
-
1595
- /**
1596
- * Generated bundle index. Do not edit.
1597
- */
1598
-
1599
- export { AbstractModalComponent, AbstractModalDrawerComponent, EnumDoencaTaxonomy, EnumDoencaTaxonomyCat, ErrorInterceptor, ErrorService, FilterType, GeolocService, GeolocationPermissions, HttpClientService, LIB_CONFIG, LogInterceptor, LogService, MapBoxService, ModalDrawerService, ModalService, PhoneService, PrivacyToolsService, REQUEST, RESPONSE, RdsiteLinkDirective, RdsiteModalComponentStyle, RdsiteModalDrawerComponentStyle, RdsitePhoneModalDirective, SeoService, ServerResponseService, SiteBackendService, checkSafariAgent, executeWithRetry, formatPhone, getCircularReplacer, getSiteUrl, removeHtmlTags };
1600
- //# sourceMappingURL=rededor-site-front-end-lib-core.mjs.map