@rededor/site-front-end-lib 4.0.0-alpha.5 → 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 -41
  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 +0,0 @@
1
- {"version":3,"file":"rededor-site-front-end-lib-core.mjs","sources":["../../../projects/site-front-end-lib/core/tokens/LibConfig.ts","../../../projects/site-front-end-lib/core/tokens/express.tokens.ts","../../../projects/site-front-end-lib/core/services/phone/phone.service.ts","../../../projects/site-front-end-lib/core/helpers/executeWithRetry.func.ts","../../../projects/site-front-end-lib/core/services/modal/modal.service.ts","../../../projects/site-front-end-lib/core/enums/RdsiteModalComponentStyle.enum.ts","../../../projects/site-front-end-lib/core/helpers/formatPhone.func.ts","../../../projects/site-front-end-lib/core/directives/rdsite-phone-modal/rdsite-phone-modal.directive.ts","../../../projects/site-front-end-lib/core/directives/rdsite-link/rdsite-link.directive.ts","../../../projects/site-front-end-lib/core/enums/RdsiteModalDrawerComponentStyle.enum.ts","../../../projects/site-front-end-lib/core/helpers/getSiteUrl.func.ts","../../../projects/site-front-end-lib/core/helpers/removeHtmlTags.func.ts","../../../projects/site-front-end-lib/core/helpers/check-safari-agent.func.ts","../../../projects/site-front-end-lib/core/helpers/getCircularReplacer.func.ts","../../../projects/site-front-end-lib/core/services/log/log.service.ts","../../../projects/site-front-end-lib/core/helpers/toQueryParams.func.ts","../../../projects/site-front-end-lib/core/services/http-client/http-client.service.ts","../../../projects/site-front-end-lib/core/services/site-back-end/site-back-end.service.ts","../../../projects/site-front-end-lib/core/interceptors/error.interceptor.ts","../../../projects/site-front-end-lib/core/interceptors/log.interceptor.ts","../../../projects/site-front-end-lib/core/models/doenca-taxonomy.model.ts","../../../projects/site-front-end-lib/core/models/filters/filter-sections.model.ts","../../../projects/site-front-end-lib/core/services/error/error.service.ts","../../../projects/site-front-end-lib/core/services/mapbox/mapbox.service.ts","../../../projects/site-front-end-lib/core/services/geoloc/geoloc.service.ts","../../../projects/site-front-end-lib/core/services/modal-drawer/modal-drawer.service.ts","../../../projects/site-front-end-lib/core/services/privacy-tools/privacy-tools.service.ts","../../../projects/site-front-end-lib/core/services/seo/seo.service.ts","../../../projects/site-front-end-lib/core/services/server-response/server-response.service.ts","../../../projects/site-front-end-lib/core/rededor-site-front-end-lib-core.ts"],"sourcesContent":["import { ElementRef, InjectionToken } from '@angular/core';\r\n\r\nexport interface LibConfig {\r\n production: boolean;\r\n environmentName: string;\r\n siteProject: string;\r\n server: boolean;\r\n siteName: string;\r\n siteUrl: string;\r\n siteSufix?: string;\r\n client_id: string;\r\n xOriginApplication: string;\r\n searchApiEnv: string;\r\n fallbackImgSrc: string;\r\n\r\n // Cura iconset\r\n iconsetDefaultList: string[];\r\n\r\n // site-back-end (SNF)\r\n siteApi: {\r\n auth: {\r\n user: string;\r\n password: string;\r\n };\r\n base: string;\r\n baseInternal: string;\r\n recaptcha: string;\r\n centroEstudos: string;\r\n };\r\n\r\n // Algolia Search\r\n algoliaConfig: {\r\n id: string;\r\n key: string;\r\n };\r\n\r\n // Wordpress\r\n wpUrl: string;\r\n\r\n // SEO\r\n keywords: string;\r\n logoPath?: string;\r\n\r\n // Mapbox\r\n mapboxAccessToken: string;\r\n mapboxSSRAccessToken: string;\r\n\r\n // rdsitelink custom anchor adjustment\r\n customAnchorAdjustment?: (document: Document) => number;\r\n customPhoneModalCondition?: (element: ElementRef<any>) => boolean;\r\n customInternalLinkNavigation?: (noBaseHref: string) => boolean;\r\n\r\n // rdsitelink navigation behavior\r\n forcePageReload?: boolean;\r\n}\r\n\r\n// Configura a lib com informações especificas de cada projeto.\r\nexport const LIB_CONFIG = new InjectionToken<LibConfig>('libConfig');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Request, Response } from 'express';\r\n\r\nexport const REQUEST = new InjectionToken<Request>('REQUEST');\r\nexport const RESPONSE = new InjectionToken<Response>('RESPONSE');\r\n","import { Injectable, DOCUMENT, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PhoneService {\r\n private document = inject<Document>(DOCUMENT);\r\n\r\n private telRegex = /tel:/;\r\n\r\n public phoneModalIsAllowed: boolean = true; // variavel utilizada para permitir/bloquear o modal de telefone\r\n\r\n /** Verifica se o 'href' é de telefone e se a janela está em tamanho desktop */\r\n public isPhoneModal(href: string) {\r\n const width = this.document.defaultView?.innerWidth ?? 0;\r\n const SMALL_BREAKPOINT = 718;\r\n return this.telRegex.test(href) && width > SMALL_BREAKPOINT;\r\n }\r\n}\r\n","/**\r\n * Executa uma função recursivamente até que uma condição seja atendida ou atinja o máximo de tentativas\r\n * @param fn - Função a ser executada quando a condição for atendida\r\n * @param condition - Função que retorna true quando a condição for satisfeita\r\n * @param maxTries - Número máximo de tentativas (padrão: 10)\r\n * @param delay - Delay entre tentativas em ms (padrão: 200)\r\n * @param currentTry - Contador interno de tentativas (padrão: 0)\r\n * @param args - Argumentos que serão passados para a função fn\r\n */\r\nexport function executeWithRetry<T extends any[]>(\r\n fn: (...args: T) => void,\r\n condition: () => boolean,\r\n maxTries: number = 10,\r\n delay: number = 200,\r\n currentTry: number = 0,\r\n ...args: T\r\n): void {\r\n if (!condition() && currentTry < maxTries) {\r\n setTimeout(() => {\r\n executeWithRetry(fn, condition, maxTries, delay, currentTry + 1, ...args);\r\n }, delay);\r\n } else {\r\n fn(...args);\r\n }\r\n}\r\n","import { Injectable, signal, TemplateRef } from '@angular/core';\r\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\r\nimport { executeWithRetry } from '../../helpers/executeWithRetry.func';\r\n\r\nexport abstract class AbstractModalComponent {\r\n abstract id?: string;\r\n abstract modalTitle?: string | null;\r\n abstract modalHeader?: TemplateRef<any> | null;\r\n abstract modalContent: TemplateRef<any> | null;\r\n abstract modalContentContext: Record<string, any> | null;\r\n abstract modalActions?: TemplateRef<any> | null;\r\n abstract componentStyle?: any;\r\n abstract modal: HTMLDialogElement;\r\n abstract open(): void;\r\n abstract close(): void;\r\n abstract reset?(): void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModalService {\r\n reference: AbstractModalComponent | null = null;\r\n defaultPhoneModal!: TemplateRef<any>;\r\n\r\n firstInteraction = signal(false);\r\n maxTries = 10;\r\n delay = 200;\r\n\r\n open() {\r\n this.firstInteraction.set(true);\r\n executeWithRetry(\r\n () => {\r\n this.reference?.open();\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setReference(element: AbstractModalComponent) {\r\n this.reference = element;\r\n }\r\n\r\n setHeader(header: TemplateRef<any>) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.modalHeader = header;\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setTitle(title: string) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.modalTitle = title;\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setContent(content: TemplateRef<any>, context: Record<string, any> = {}) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.modalContent = content;\r\n this.reference.modalContentContext = context;\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setActions(actions: TemplateRef<any>) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.modalActions = actions;\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setStyle(style: RdsiteModalComponentStyle) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.componentStyle = style;\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setDefaultPhoneModal(modal: TemplateRef<any>) {\r\n this.defaultPhoneModal = modal;\r\n }\r\n\r\n close() {\r\n executeWithRetry(\r\n () => this.reference?.close(),\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n}\r\n","export enum RdsiteModalComponentStyle {\r\n DEFAULT = 'default',\r\n ALERT = 'alert',\r\n LIGHT = 'light',\r\n DOCTORCARD = 'doctor-card',\r\n HOMESLIDE = 'home-slide',\r\n BASIC = 'basic',\r\n SHARING = 'sharing',\r\n FORMFALLBACK = 'form-fallback',\r\n FILTER = 'filter',\r\n FILTERDOENCAS = 'filter-doencas',\r\n}\r\n","export const formatPhone = (phone: string): string => {\r\n if (!phone) return '';\r\n\r\n const cleanPhone = phone.replace(/[^0-9]/gi, '');\r\n let formatedPhone = '';\r\n if (cleanPhone.length === 12) {\r\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 11) {\r\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 10) {\r\n formatedPhone = cleanPhone.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\r\n } else if (cleanPhone.length === 9) {\r\n formatedPhone = cleanPhone.replace(/(\\d{5})?(\\d{4})/, '$1-$2');\r\n } else if (cleanPhone.length === 8) {\r\n formatedPhone = cleanPhone.replace(/(\\d{4})?(\\d{4})/, '$1-$2');\r\n } else if (cleanPhone.length === 7) {\r\n formatedPhone = cleanPhone.replace(/(\\d{3})?(\\d{4})/, '$1-$2');\r\n } else {\r\n formatedPhone = cleanPhone;\r\n }\r\n return formatedPhone;\r\n};\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { Directive, ElementRef, HostListener, inject, model, PLATFORM_ID, TemplateRef } from '@angular/core';\r\nimport { PhoneService } from '../../services/phone/phone.service';\r\nimport { ModalService } from '../../services/modal/modal.service';\r\nimport { RdsiteModalComponentStyle } from '../../enums/RdsiteModalComponentStyle.enum';\r\nimport { formatPhone } from '../../helpers/formatPhone.func';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsitephonemodal]',\r\n})\r\nexport class RdsitePhoneModalDirective {\r\n private modalService = inject(ModalService);\r\n private platformId = inject(PLATFORM_ID);\r\n private element = inject(ElementRef<Element>);\r\n private phoneService = inject(PhoneService);\r\n\r\n rdsitephonemodal = model<TemplateRef<HTMLElement> | null>(null);\r\n\r\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\r\n\r\n // Intercepta cliques em telefones e aplica comportamentos diferentes em tamanho desktop.\r\n @HostListener('click', ['$event'])\r\n public onClick(event: Event) {\r\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName) || !this.phoneService.phoneModalIsAllowed)\r\n return;\r\n\r\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\r\n if (this.phoneService.isPhoneModal(href)) {\r\n this.openPhoneModal(event, href);\r\n }\r\n }\r\n\r\n public openPhoneModal(event: Event, href: string) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.modalService.setContent(this.rdsitephonemodal() || this.modalService.defaultPhoneModal, { phone: formatPhone(href) });\r\n this.modalService.setStyle(RdsiteModalComponentStyle.DEFAULT);\r\n this.modalService.open();\r\n }\r\n}\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID, TemplateRef, DOCUMENT, input, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { PhoneService } from '../../services/phone/phone.service';\r\nimport { RdsitePhoneModalDirective } from '../rdsite-phone-modal/rdsite-phone-modal.directive';\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[rdsitelink]',\r\n providers: [RdsitePhoneModalDirective],\r\n})\r\nexport class RdsiteLinkDirective {\r\n private router = inject(Router);\r\n private platformId = inject(PLATFORM_ID);\r\n private document = inject(DOCUMENT);\r\n private libConfig = inject<LibConfig>(LIB_CONFIG);\r\n private element = inject(ElementRef<any>);\r\n private phoneService = inject(PhoneService);\r\n private rdsitePhoneModalDirective = inject(RdsitePhoneModalDirective);\r\n private deviceDetectorService = inject(DeviceDetectorService);\r\n\r\n anchorAdjustment = input<number | null>(null);\r\n anchorExtraAdjustment = input<number | null>(null);\r\n phonemodal = input<TemplateRef<HTMLElement> | null>(null);\r\n\r\n private externalRegex = /^http:|https:|tel:|www\\.|mailto:/;\r\n private telRegex = /tel:/;\r\n private mailRegex = /mailto:/;\r\n private siteUrlList = ['rededorsaoluiz', 'rededorlabs'];\r\n private allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event: Event) {\r\n event.preventDefault();\r\n if (!isPlatformBrowser(this.platformId) || !this.allowedTags.includes(this.element?.nativeElement?.tagName)) return;\r\n const href = this.element?.nativeElement?.getAttribute('href') ?? '';\r\n if (!href) return;\r\n\r\n if (this.isPhone(href)) {\r\n this.phoneClicked({\r\n href,\r\n event,\r\n element: this.element,\r\n phonemodal: this.phonemodal(),\r\n });\r\n return;\r\n }\r\n\r\n const isMobile = this.deviceDetectorService.isMobile();\r\n const deviceInfo = this.deviceDetectorService.getDeviceInfo();\r\n\r\n if (this.isMail(href)) {\r\n const target = isMobile || deviceInfo.browser !== 'Chrome' ? '_self' : '_blank';\r\n window.open(href, target);\r\n return;\r\n }\r\n\r\n if (this.isExternalUrl(href)) {\r\n const target = this.isSiteUrl(href) ? '_self' : '_blank';\r\n window.open(href, target);\r\n return;\r\n }\r\n\r\n if (this.isAnchor(href)) {\r\n this.scrollToAnchor(href);\r\n return;\r\n }\r\n\r\n this.navigateTo(href);\r\n }\r\n\r\n private isPhone(href: string) {\r\n return this.telRegex.test(href);\r\n }\r\n\r\n private isMail(href: string) {\r\n return this.mailRegex.test(href);\r\n }\r\n\r\n private phoneClicked(value: { href: string; event: Event; element: ElementRef<any>; phonemodal: TemplateRef<HTMLElement> | null }) {\r\n const { href, event, element, phonemodal } = value;\r\n if (this.phoneService.isPhoneModal(href)) {\r\n this.setPhoneModal(element, phonemodal);\r\n this.rdsitePhoneModalDirective.openPhoneModal(event, href);\r\n } else {\r\n window.open(href, '_self');\r\n }\r\n }\r\n\r\n private setPhoneModal(element: ElementRef<any>, phonemodal: TemplateRef<HTMLElement> | null) {\r\n if (!this.phonemodal()) return;\r\n if (!this.libConfig?.customPhoneModalCondition) {\r\n this.rdsitePhoneModalDirective.rdsitephonemodal.set(phonemodal);\r\n return;\r\n }\r\n if (this.libConfig?.customPhoneModalCondition(element)) {\r\n this.rdsitePhoneModalDirective.rdsitephonemodal.set(phonemodal);\r\n }\r\n }\r\n\r\n private isExternalUrl(href: string) {\r\n return this.externalRegex.test(href);\r\n }\r\n\r\n private isSiteUrl(href: string) {\r\n const exception = '/paciente';\r\n return this.siteUrlList.find((url) => href.includes(url) && !href.includes(exception));\r\n }\r\n\r\n private isAnchor(href: string) {\r\n return href.startsWith('#');\r\n }\r\n\r\n private scrollToAnchor(href: string) {\r\n if (href === '#') return;\r\n if (isPlatformBrowser(this.platformId)) {\r\n const docElement = this.document.documentElement;\r\n let adjustment = 0;\r\n\r\n if (this.libConfig.customAnchorAdjustment) {\r\n adjustment = this.libConfig.customAnchorAdjustment(this.document);\r\n }\r\n\r\n if (this.anchorAdjustment()) {\r\n adjustment = this.anchorAdjustment()!;\r\n }\r\n\r\n if (this.anchorExtraAdjustment()) {\r\n adjustment += this.anchorExtraAdjustment()!;\r\n }\r\n\r\n const bodyTop = this.document?.body?.getBoundingClientRect()?.top ?? 0;\r\n const hrefTop = this.document?.querySelector<HTMLElement>(href)?.getBoundingClientRect()?.top ?? 0;\r\n const scrollTop = bodyTop * -1 + hrefTop - adjustment;\r\n docElement.scrollTo({ top: scrollTop, behavior: 'smooth' });\r\n }\r\n }\r\n\r\n private navigateTo(href: string) {\r\n const siteBasePath = this.libConfig.siteSufix ?? '';\r\n const siteBasePathNoSlash = siteBasePath.replace(/\\//g, '');\r\n let noBaseHref = href;\r\n if (href.startsWith(siteBasePathNoSlash)) {\r\n noBaseHref = href.replace(siteBasePathNoSlash, '');\r\n } else if (href.startsWith(siteBasePath)) {\r\n noBaseHref = href.replace(siteBasePath, '');\r\n }\r\n if (this.libConfig?.customInternalLinkNavigation && this.libConfig.customInternalLinkNavigation(noBaseHref)) {\r\n return;\r\n }\r\n\r\n const [path, query] = noBaseHref.split('?');\r\n const queryParams: Record<string, any> = {};\r\n if (query) {\r\n const queryArray = query.split('&');\r\n queryArray.forEach((q) => {\r\n const arr = q.split('=');\r\n queryParams[arr[0]] = arr[1];\r\n });\r\n }\r\n // Força reload da pagina\r\n if (this.libConfig?.forcePageReload) {\r\n const fullUrl = path + (query ? '?' + query : '');\r\n window.location.href = fullUrl;\r\n return;\r\n }\r\n\r\n this.router.navigate([path], { queryParams: queryParams });\r\n }\r\n}\r\n","export enum RdsiteModalDrawerComponentStyle {\r\n DEFAULT = 'default',\r\n DRAWERDOCTOR = 'doctor-card',\r\n FORMFALLBACK = 'form-fallback',\r\n FILTERDOENCAS = 'filter-doencas',\r\n}\r\n","const getSiteUrl = (siteUrl: string = '', siteSufix: string = ''): string => {\r\n const baseUrl = siteUrl.endsWith('/') ? siteUrl.substring(0, siteUrl.length - 1) : siteUrl;\r\n const baseSufix = siteSufix.endsWith('/') ? siteSufix.substring(0, siteSufix.length - 1) : siteSufix;\r\n return `${baseUrl}${baseSufix}`;\r\n};\r\n\r\nexport { getSiteUrl };\r\n","function removeHtmlTags(content: string): string {\r\n content = content.replace(/<.*?>/g, '');\r\n return content;\r\n}\r\n\r\nexport { removeHtmlTags };\r\n","const checkSafariAgent = (): boolean => {\r\n const safariAgent = navigator.userAgent.includes('Safari');\r\n const chromeAgent = navigator.userAgent.includes('Chrome');\r\n return !chromeAgent && safariAgent;\r\n};\r\nexport { checkSafariAgent };\r\n","/**\r\n * Função que retorna um replacer personalizado para o JSON.stringify que resolve problemas de estruturas circulares durante a serialização.\r\n */\r\nexport function getCircularReplacer(customOptions?: {\r\n ignoreKeys?: string[]; // Chaves específicas a serem sempre ignoradas (ex: ['_request', 'parent'])\r\n maxDepth?: number; // Profundidade máxima de objetos aninhados (opcional)\r\n}) {\r\n const seen = new WeakSet();\r\n const options = {\r\n ignoreKeys: customOptions?.ignoreKeys || [],\r\n maxDepth: customOptions?.maxDepth || 100,\r\n };\r\n\r\n let depth = 0;\r\n\r\n return (key: string, value: any) => {\r\n // Ignora chaves específicas configuradas\r\n if (options.ignoreKeys.includes(key)) {\r\n return undefined;\r\n }\r\n\r\n // Controle de profundidade (opcional)\r\n if (key === '') {\r\n depth = 0; // Reinicia a profundidade na raiz\r\n } else {\r\n depth += 1; // Incrementa apenas quando descer na hierarquia\r\n }\r\n\r\n if (depth > options.maxDepth) {\r\n return typeof value === 'object' ? '[Object]' : value;\r\n }\r\n\r\n // Lida com referências circulares\r\n if (typeof value === 'object' && value !== null) {\r\n // Se já vimos este objeto, é uma referência circular\r\n if (seen.has(value)) {\r\n return undefined; // Exclui valores circulares\r\n }\r\n // Adiciona o objeto ao conjunto de objetos vistos\r\n seen.add(value);\r\n }\r\n\r\n return value;\r\n };\r\n}\r\n","import { Injectable, PLATFORM_ID, inject } from '@angular/core';\r\nimport { isPlatformBrowser, Location } from '@angular/common';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { getSiteUrl } from '../../helpers/getSiteUrl.func';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogService {\r\n private libConfig = inject<LibConfig>(LIB_CONFIG);\r\n private platformId = inject(PLATFORM_ID);\r\n private location = inject(Location);\r\n\r\n logMsg(msg: any, label?: string) {\r\n label = label ? `${label} ` : '';\r\n if (!isPlatformBrowser(this.platformId) || (isPlatformBrowser(this.platformId) && !this.libConfig?.production)) {\r\n console.log(`${label}${msg}`);\r\n }\r\n }\r\n\r\n logLoad(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, 'LOAD');\r\n }\r\n\r\n log404(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '404');\r\n }\r\n\r\n log500(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '500');\r\n }\r\n\r\n getPageURL() {\r\n return `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`;\r\n }\r\n}\r\n","/**\r\n * Converte JSON para query string.\r\n * @param params JSON\r\n */\r\nexport function toQueryParams(params: any): string {\r\n return params\r\n ? `?${Object.keys(params)\r\n .map((key) => key + '=' + params[key])\r\n .join('&')}`\r\n : '';\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n/* Adiciona os Headers necessários para funcionamento do site back-end */\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpClientService {\r\n private platformId = inject(PLATFORM_ID);\r\n private libConfig = inject<LibConfig>(LIB_CONFIG);\r\n private http = inject(HttpClient);\r\n private deviceService = inject(DeviceDetectorService);\r\n\r\n get<T = any>(url: string): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.get<T>(url, { headers });\r\n }\r\n\r\n post<T = any>(url: string, data?: any): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.post<T>(url, data, { headers });\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n const baseHeaders = new HttpHeaders()\r\n .set('x-origin-application', this.libConfig.xOriginApplication)\r\n .set('x-origin-channel', this.getOriginChannel())\r\n .set('x-origin-device', this.getOriginDevice());\r\n\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return baseHeaders.append(\r\n 'authorization',\r\n 'Basic ' + Buffer.from(`${this.libConfig.siteApi.auth.user}:${this.libConfig.siteApi.auth.password}`).toString('base64'),\r\n );\r\n } else {\r\n return baseHeaders.append('client_id', this.libConfig.client_id);\r\n }\r\n }\r\n\r\n private getOriginChannel(): string {\r\n return this.deviceService.isDesktop() ? 'desktop' : 'mobile';\r\n }\r\n\r\n private getOriginDevice(): string {\r\n return `app-${this.deviceService.getDeviceInfo().os}`;\r\n }\r\n}\r\n","import { Injectable, PLATFORM_ID, inject } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { toQueryParams } from '../../helpers/toQueryParams.func';\r\nimport { HttpClientService } from '../http-client/http-client.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteBackendService {\r\n private httpClientService = inject(HttpClientService);\r\n private libConfig = inject<LibConfig>(LIB_CONFIG);\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n siteApiUrl: string;\r\n\r\n constructor() {\r\n this.siteApiUrl = this.getApiUrl();\r\n }\r\n\r\n private getApiUrl(): string {\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return this.libConfig.siteApi.baseInternal;\r\n }\r\n return this.libConfig.siteApi.base;\r\n }\r\n\r\n /**\r\n * GET para qualquer endpoint do back-end do site.\r\n * @param path - O caminho do recurso. (Inicia sem '/'. Ex: 'unidades/wp')\r\n * @param params - Parâmetros opcionais para a requisição.\r\n * @returns Observable que emite os dados retornados pelo back-end.\r\n */\r\n get<T = any>(path: string, params?: any): Observable<T> {\r\n return this.httpClientService.get<T>(`${this.siteApiUrl}${path}${toQueryParams(params)}`);\r\n }\r\n\r\n /**\r\n * POST para qualquer endpoint do back-end do site.\r\n * @param path - O caminho do recurso. (Inicia sem '/'. Ex: 'unidades/wp')\r\n * @param params - Parâmetros opcionais para a requisição.\r\n * @returns Observable que emite os dados retornados pelo back-end.\r\n */\r\n post<T = any>(path: string, params?: any): Observable<T> {\r\n return this.httpClientService.post<T>(`${this.siteApiUrl}${path}`, params);\r\n }\r\n}\r\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { LogService } from '../services/log/log.service';\r\nimport { SiteBackendService } from '../services/site-back-end/site-back-end.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n private logService = inject(LogService);\r\n private siteBackendService = inject(SiteBackendService);\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n this.logService.logMsg(`REQUEST ERROR => ${req.method} ${req.url}`, 'ERROR_INTERCEPTOR');\r\n\r\n if (isPlatformBrowser(this.platformId) && !req.url.includes('/log/error')) {\r\n const errorMessage = typeof error === 'string' ? error : error instanceof Error ? error.message : JSON.stringify(error);\r\n\r\n this.siteBackendService\r\n .post('log/error', {\r\n error: errorMessage,\r\n origin: window.location.href,\r\n url: req.urlWithParams,\r\n })\r\n .subscribe();\r\n }\r\n\r\n return throwError(() => error);\r\n }),\r\n );\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Observable, tap } from 'rxjs';\r\nimport { differenceInMilliseconds } from 'date-fns';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { LogService } from '../services/log/log.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogInterceptor implements HttpInterceptor {\r\n private logService = inject(LogService);\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const requestId = uuidv4();\r\n const startTime = Date.now();\r\n this.logService.logMsg(`REQUEST ${requestId} => ${req.method} ${req.url}`, 'INTERCEPTOR');\r\n\r\n return next.handle(req).pipe(\r\n tap((response) => {\r\n const res = response as HttpResponse<any>;\r\n if (res?.status) {\r\n const elapsedTime = differenceInMilliseconds(Date.now(), startTime);\r\n this.logService.logMsg(\r\n `RESPONSE ${requestId} => ${req.method} ${req.url} | Duração: ${elapsedTime}ms | Status: ${res.status} - ${res.statusText} | Body: ${!!res.body}`,\r\n 'INTERCEPTOR',\r\n );\r\n }\r\n }),\r\n );\r\n }\r\n}\r\n","export enum EnumDoencaTaxonomy {\r\n DOENCAS_CAT = 'doencas_cat',\r\n DOENCAS_TAG = 'doencas_tag',\r\n}\r\n\r\nexport enum EnumDoencaTaxonomyCat {\r\n DOENCA = 'doencas',\r\n SINTOMA = 'sintomas',\r\n}\r\n\r\nexport interface DoencaTaxonomy {\r\n id: number;\r\n name: string;\r\n slug: string;\r\n taxonomy: EnumDoencaTaxonomy;\r\n}\r\n\r\nexport interface TaxonomiasDoencasList {\r\n doencas_cat: DoencaTaxonomy[];\r\n doencas_tag: DoencaTaxonomy[];\r\n}\r\n","import { TemplateRef } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FilterOption, FilterSectionBase } from './filter-planos-convenios.model';\r\nimport { FilterControl } from './filter-section.type';\r\n\r\nexport enum FilterType {\r\n INPUT = 'input',\r\n SELECT = 'select',\r\n CHECKBOX_GROUP = 'checkbox-group',\r\n RADIO_GROUP = 'radio-group',\r\n CUSTOM = 'custom',\r\n}\r\n\r\n// Input\r\nexport interface InputFilterConfig {\r\n name: string;\r\n placeholder?: string;\r\n iconName?: string;\r\n control: FilterControl;\r\n options?: FilterOption[];\r\n}\r\n\r\n// Select\r\nexport interface SelectFilterConfig {\r\n name: string;\r\n label?: string;\r\n placeholder?: string;\r\n includeDefaultOption?: boolean;\r\n defaultOptionText?: string;\r\n control: FilterControl;\r\n options?: FilterOption[];\r\n}\r\n\r\n// Checkbox Group\r\nexport interface CheckboxGroupFilterConfig {\r\n name: string;\r\n title?: string;\r\n subtitle?: string;\r\n description?: string;\r\n control: FormControl<any[]>;\r\n options: FilterOption[];\r\n}\r\n\r\n// Radio Group\r\nexport interface RadioGroupFilterConfig {\r\n name: string;\r\n title?: string;\r\n control: FilterControl;\r\n options: FilterOption[];\r\n}\r\n\r\n// Custom\r\nexport interface CustomFilterConfig {\r\n template: TemplateRef<any>;\r\n control?: any;\r\n context?: any;\r\n options?: FilterOption[];\r\n count?: number;\r\n}\r\n\r\n// Interfaces completas por tipo\r\nexport interface InputFilterSection extends FilterSectionBase<FilterType.INPUT, InputFilterConfig> {}\r\nexport interface SelectFilterSection extends FilterSectionBase<FilterType.SELECT, SelectFilterConfig> {}\r\nexport interface CheckboxGroupFilterSection extends FilterSectionBase<FilterType.CHECKBOX_GROUP, CheckboxGroupFilterConfig> {}\r\nexport interface RadioGroupFilterSection extends FilterSectionBase<FilterType.RADIO_GROUP, RadioGroupFilterConfig> {}\r\nexport interface CustomFilterSection extends FilterSectionBase<FilterType.CUSTOM, CustomFilterConfig> {}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CtaWrapper } from '../../models/cta-wrapper.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorService {\r\n ctas = new BehaviorSubject<CtaWrapper>({});\r\n}\r\n","import { Injectable, PLATFORM_ID, inject } from '@angular/core';\r\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { LogService } from '../log/log.service';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\nexport interface MapBoxGeocodingParams {\r\n autocomplete?: boolean;\r\n bbox?: string; // minLon, minLat, maxLon, maxLat\r\n country?: string; // country codes separated by commas\r\n fuzzyMatch?: boolean;\r\n language?: string;\r\n limit?: number; // default: 5, max: 10\r\n proximity?: string; // longitude, latitude\r\n routing?: boolean;\r\n // Types can be comma separated\r\n types?: string; // \"country\" | \"region\" | \"postcode\" | \"district\" | \"place\" | \"locality\" | \"neighborhood\" | \"address\" | \"poi\"\r\n [propName: string]: any;\r\n}\r\n\r\nexport interface MapBoxReverseGeocodingParams {\r\n country?: string; // country codes separated by commas\r\n language?: string;\r\n limit?: number; // default: 5, max: 10\r\n reverseMode?: 'distance' | 'score';\r\n routing?: boolean;\r\n // Types can be comma separated\r\n types?: string; // \"country\" | \"region\" | \"postcode\" | \"district\" | \"place\" | \"locality\" | \"neighborhood\" | \"address\" | \"poi\"\r\n [propName: string]: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MapBoxService {\r\n private readonly http = inject(HttpClient);\r\n private readonly logService = inject(LogService);\r\n private libConfig = inject<LibConfig>(LIB_CONFIG);\r\n private readonly platformId = inject(PLATFORM_ID);\r\n\r\n private mapboxAccessToken = this.libConfig.mapboxAccessToken;\r\n private mapboxSSRAccessToken = this.libConfig.mapboxSSRAccessToken;\r\n private mapboxApiUrl = 'https://api.mapbox.com';\r\n private geocodingEp = 'search/geocode/v6';\r\n\r\n /**\r\n * Busca geocalizada por nome do local.\r\n * Ex.: barra da tijuca, rio de janeiro - rio de janeiro, brasil\r\n * @param query nome de local para a busca\r\n * @param params parâmetros opcionais de busca e filtro\r\n */\r\n forwardGeocoding(query: string, params: MapBoxGeocodingParams = {}, logContext?: string): Observable<any> {\r\n this.logMapbox('forwardGeocoding', logContext);\r\n if (query.length >= 256) {\r\n return throwError(() => 'Query length exceeds 255 characters.');\r\n }\r\n const url = `${this.mapboxApiUrl}/${this.geocodingEp}/forward?q=${query}`;\r\n params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;\r\n return this.http.get(url, { params, headers: this.getHeaders() });\r\n }\r\n\r\n /**\r\n * Busca local por longitude e latitude\r\n * @param lng formato longitude\r\n * @param lat formato latitude\r\n * @param params parâmetros opcionais de busca e filtro\r\n */\r\n reverseGeocoding(lng: string, lat: string, params: MapBoxReverseGeocodingParams = {}, logContext?: string): Observable<any> {\r\n this.logMapbox('reverseGeocoding', logContext);\r\n const url = `${this.mapboxApiUrl}/${this.geocodingEp}/reverse?longitude=${lng}&latitude=${lat}`;\r\n params['access_token'] = isPlatformBrowser(this.platformId) ? this.mapboxAccessToken : this.mapboxSSRAccessToken;\r\n return this.http.get(url, { params });\r\n }\r\n\r\n private logMapbox(callerFunction: string, context = 'no-context') {\r\n const platform = isPlatformServer(this.platformId) ? 'server' : 'browser';\r\n this.logService.logMsg(`${platform} - ${callerFunction} - ${context}`, 'MAPBOX');\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n return new HttpHeaders().set('Referrer-Policy', 'origin');\r\n }\r\n}\r\n","import { Injectable, PLATFORM_ID, DOCUMENT, inject } from '@angular/core';\r\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { BehaviorSubject, map, Observable } from 'rxjs';\r\nimport { MapBoxReverseGeocodingParams, MapBoxService } from '../mapbox/mapbox.service';\r\nimport { LogService } from '../log/log.service';\r\nimport { checkSafariAgent } from '../../helpers/check-safari-agent.func';\r\nimport { getCircularReplacer } from '../../helpers/getCircularReplacer.func';\r\n\r\nexport enum GeolocationPermissions {\r\n GRANTED = 'granted',\r\n PROMPT = 'prompt',\r\n DENIED = 'denied',\r\n}\r\n\r\nexport interface Geolocation {\r\n lat: number;\r\n lng: number;\r\n}\r\n\r\nexport interface Address {\r\n city: string;\r\n state: {\r\n name: string;\r\n shortCode: string;\r\n };\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GeolocService {\r\n private readonly document = inject<Document>(DOCUMENT);\r\n private readonly platformId = inject(PLATFORM_ID);\r\n private mapboxService = inject(MapBoxService);\r\n private readonly logService = inject(LogService);\r\n\r\n private _mapboxGeocodingParams: MapBoxReverseGeocodingParams = {\r\n types: 'place',\r\n limit: 1,\r\n language: 'pt-BR',\r\n country: 'BR',\r\n };\r\n\r\n private _hasConsent = false;\r\n private _switchStatus = false;\r\n public get switchStatus(): boolean {\r\n return this._switchStatus;\r\n }\r\n private _address: Address | null = null;\r\n public get address(): Address | null {\r\n return this._address;\r\n }\r\n\r\n private _permission: PermissionState = GeolocationPermissions.PROMPT;\r\n public get permission(): PermissionState {\r\n return this._permission;\r\n }\r\n\r\n public geolocation: BehaviorSubject<Geolocation | null> = new BehaviorSubject<Geolocation | null>(null);\r\n public isChecked: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false); // Emite true quando o geoloc está estável\r\n\r\n private _isSafariAgent: boolean = false;\r\n private _disableSwitch = false;\r\n public get disableSwitch(): boolean {\r\n return this._disableSwitch;\r\n }\r\n\r\n constructor() {\r\n if (isPlatformServer(this.platformId)) {\r\n this.isChecked.next(true);\r\n return;\r\n }\r\n\r\n this._isSafariAgent = checkSafariAgent();\r\n if (this._isSafariAgent) {\r\n this._hasConsent = this.checkACookieExists('geolocation_consent');\r\n this.initGeolocation(this._hasConsent);\r\n return;\r\n }\r\n\r\n navigator?.permissions\r\n ?.query({ name: 'geolocation' })\r\n .then((permission) => {\r\n this._permission = permission.state;\r\n this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);\r\n\r\n permission.onchange = () => {\r\n this._permission = permission.state;\r\n this.initGeolocation(this._permission === GeolocationPermissions.GRANTED);\r\n };\r\n })\r\n .catch((error) => {\r\n this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');\r\n this._permission = GeolocationPermissions.DENIED;\r\n this._disableSwitch = true;\r\n this.initGeolocation(false);\r\n });\r\n }\r\n\r\n initGeolocation(geolocAllowed = false): void {\r\n this._switchStatus = true;\r\n if (geolocAllowed) {\r\n this.getCurrentPosition().subscribe({\r\n next: (position) => {\r\n this._disableSwitch = false;\r\n this.setGeolocation(position);\r\n this.setConsentCookie(true, 3650);\r\n this._hasConsent = true;\r\n this._permission = GeolocationPermissions.GRANTED;\r\n },\r\n error: () => {\r\n if (this._permission === GeolocationPermissions.DENIED) {\r\n this._disableSwitch = true;\r\n this.setConsentCookie(false, 15);\r\n }\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._hasConsent = false;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n },\r\n });\r\n } else {\r\n if (this.permission === GeolocationPermissions.DENIED) {\r\n this._disableSwitch = true;\r\n this.setConsentCookie(false, 15);\r\n }\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._hasConsent = false;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n }\r\n }\r\n\r\n private getCurrentPosition(): Observable<GeolocationPosition> {\r\n return new Observable((observer) => {\r\n navigator.geolocation.getCurrentPosition(\r\n (position) => {\r\n observer.next(position);\r\n observer.complete();\r\n },\r\n (error) => observer.error(error),\r\n { enableHighAccuracy: true },\r\n );\r\n });\r\n }\r\n\r\n private setGeolocation(position: GeolocationPosition): void {\r\n if (position) {\r\n if (position.coords.latitude === this.geolocation.value?.lat && position.coords.longitude === this.geolocation.value?.lng) return;\r\n\r\n this.geolocation.next({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n });\r\n\r\n this.getMapboxAdress()\r\n .pipe(\r\n map((response) => {\r\n const city = response?.features[0]?.properties?.name;\r\n const state = {\r\n name: response?.features[0]?.properties?.context?.region?.name,\r\n shortCode: response?.features[0]?.properties?.context?.region?.region_code,\r\n };\r\n return { city, state };\r\n }),\r\n )\r\n .subscribe({\r\n next: (response) => {\r\n this._address = response;\r\n this._switchStatus = true;\r\n this.isChecked.next(true);\r\n },\r\n error: (error) => {\r\n this.logService.logMsg(JSON.stringify(error, getCircularReplacer()), 'ERROR');\r\n this._switchStatus = false;\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this.isChecked.next(true);\r\n },\r\n });\r\n } else {\r\n this.geolocation.next(null);\r\n this._address = null;\r\n this._switchStatus = false;\r\n this.isChecked.next(true);\r\n }\r\n }\r\n\r\n private getMapboxAdress(): Observable<any> {\r\n const lng = `${this.geolocation.value?.lng}`;\r\n const lat = `${this.geolocation.value?.lat}`;\r\n return this.mapboxService.reverseGeocoding(lng, lat, this._mapboxGeocodingParams, 'geolocalizacao.service getMapboxAdress');\r\n }\r\n\r\n checkACookieExists(name: string): boolean {\r\n if (isPlatformServer(this.platformId) || typeof this.document === 'undefined' || !this.document?.cookie) {\r\n return false;\r\n }\r\n return this.document.cookie\r\n .split(';')\r\n .map((item) => item.trim())\r\n .some((item) => item.trim().startsWith(name));\r\n }\r\n\r\n private setConsentCookie(status: boolean, days: number): void {\r\n if (this.getCookieValue('geolocation_consent') !== status.toString()) {\r\n const lifetime = new Date(Date.now() + days * 86400000).toUTCString();\r\n this.document.cookie = `geolocation_consent=${status}; path=/; expires=${lifetime}; SameSite=None; Secure`;\r\n }\r\n }\r\n\r\n private getCookieValue(prop: string): string {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const value = this.document.cookie\r\n .split(';')\r\n .map((item) => item.trim())\r\n .find((item) => item.startsWith(`${prop}=`));\r\n\r\n return value ? value.slice(prop.length + 1) : '';\r\n }\r\n return '';\r\n }\r\n}\r\n","import { ElementRef, Injectable, ModelSignal, signal } from '@angular/core';\r\nimport { RdsiteModalDrawerComponentStyle } from '../../enums/RdsiteModalDrawerComponentStyle.enum';\r\nimport { executeWithRetry } from '../../helpers/executeWithRetry.func';\r\n\r\nexport abstract class AbstractModalDrawerComponent {\r\n abstract sheet: HTMLElement;\r\n abstract sheetContents: HTMLElement;\r\n abstract draggableArea: HTMLElement;\r\n abstract sheetHeight: number;\r\n abstract dragPosition: number;\r\n abstract maxHeight: number;\r\n abstract closeHeight: number;\r\n abstract rdsiteModalComponentStyle: any;\r\n abstract id: ModelSignal<string>;\r\n abstract modalContent: ModelSignal<ElementRef>;\r\n abstract componentStyle: ModelSignal<any>;\r\n abstract modal: HTMLDialogElement;\r\n abstract setSheetHeight(value: number): void;\r\n abstract setIsSheetShown(isShown: boolean): void;\r\n abstract openSheet(): void;\r\n abstract closeSheet(): void;\r\n abstract touchPosition(event: any): void;\r\n abstract onDragStart(event: any): void;\r\n abstract onDragMove(event: any): void;\r\n abstract onDragEnd(): void;\r\n abstract reset(): void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModalDrawerService {\r\n reference: AbstractModalDrawerComponent | null = null;\r\n\r\n firstInteraction = signal(false);\r\n maxTries = 10;\r\n delay = 200;\r\n\r\n open() {\r\n this.firstInteraction.set(true);\r\n executeWithRetry(\r\n () => {\r\n this.reference?.openSheet();\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setReference(element: AbstractModalDrawerComponent) {\r\n this.reference = element;\r\n }\r\n\r\n setContent(content: ElementRef) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.modalContent.set(content);\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setStyle(style: RdsiteModalDrawerComponentStyle) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.componentStyle.set(style);\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n setHeight(value: number) {\r\n executeWithRetry(\r\n () => {\r\n if (this.reference) {\r\n this.reference.maxHeight = value;\r\n }\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n\r\n close() {\r\n executeWithRetry(\r\n () => {\r\n this.reference?.closeSheet();\r\n },\r\n () => !!this.reference,\r\n this.maxTries,\r\n this.delay,\r\n );\r\n }\r\n}\r\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { Injectable, PLATFORM_ID, DOCUMENT, inject } from '@angular/core';\r\nimport { PrivacyToolsConfigOptions, PrivacyToolsCookieBanner } from '../../models/privacy-tools/privacy-tools.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PrivacyToolsService {\r\n document = inject<Document>(DOCUMENT);\r\n platformId = inject(PLATFORM_ID);\r\n\r\n cookieBannerScriptId = 'PrivacyToolsScript';\r\n cookieBannerStyleId = 'PrivacyToolsStyle';\r\n cookieBannerScriptElement: HTMLScriptElement | null = null;\r\n configOptions: PrivacyToolsConfigOptions = {};\r\n cookieConsent: any = null;\r\n\r\n /* Config */\r\n public config(options: PrivacyToolsConfigOptions) {\r\n this.configOptions = options;\r\n }\r\n\r\n /* Setup cookie Banner */\r\n public setupCookieBanner(unidadeBasePath: string) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const banner = this.configOptions?.cookieBanners?.find((banner) => banner.basePath.includes(unidadeBasePath));\r\n\r\n if (banner) {\r\n this.addCookieBanner(banner);\r\n }\r\n }\r\n }\r\n\r\n public openCookieBanner() {\r\n if (this.cookieConsent && this.cookieBannerScriptElement) {\r\n this.cookieConsent.privacyToolsShowCookieNotice();\r\n }\r\n }\r\n\r\n /* Add cookie banner style and script */\r\n private addCookieBanner(banner: PrivacyToolsCookieBanner) {\r\n this.cookieBannerScriptElement = null;\r\n this.addCookieBannerStyle(banner.styleSrc);\r\n this.addCookieBannerScript(banner.scriptSrc);\r\n }\r\n\r\n /* Add cookie banner style. */\r\n public addCookieBannerStyle(src: string) {\r\n if (isPlatformServer(this.platformId)) return;\r\n\r\n this.document.getElementById('byRemovePortal')?.remove();\r\n\r\n const oldStyle = this.document.getElementById(this.cookieBannerStyleId);\r\n\r\n if (oldStyle) {\r\n oldStyle.remove();\r\n }\r\n\r\n const style = this.document.createElement('link');\r\n style.id = this.cookieBannerStyleId;\r\n style.rel = 'stylesheet';\r\n style.type = 'text/css';\r\n style.href = src;\r\n style.media = 'none';\r\n\r\n style.addEventListener('load', () => {\r\n style.media = 'all';\r\n });\r\n\r\n this.document.body.appendChild(style);\r\n }\r\n\r\n /* Add cookie banner script. */\r\n public addCookieBannerScript(src: string) {\r\n if (isPlatformServer(this.platformId) || typeof window === 'undefined') return;\r\n\r\n (window as any)['cookieconsent'] = null;\r\n\r\n const oldScript = this.document.getElementById(this.cookieBannerScriptId);\r\n\r\n if (oldScript) {\r\n oldScript.remove();\r\n }\r\n const script = this.document.createElement('script');\r\n script.id = this.cookieBannerScriptId;\r\n script.src = src;\r\n\r\n script.addEventListener('load', () => {\r\n this.cookieBannerScriptElement = script;\r\n this.cookieConsent = (window as any)['cookieconsent'];\r\n (window as any)['portalBanner']?.call();\r\n });\r\n\r\n this.document.body.appendChild(script);\r\n }\r\n}\r\n","import { Injectable, DOCUMENT, inject } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { Location } from '@angular/common';\r\n\r\nimport * as he from 'he';\r\n\r\nimport { SocialMetaProperties } from '../../models/social-meta-properties.model';\r\nimport { BreadcrumbsItems } from '../../models/breadcrumbs/breadcrumbs-items.model';\r\nimport { BreadcrumbsJsonItem } from '../../models/breadcrumbs/breadcrumbs-json-item.model';\r\nimport { SeoData } from '../../models/seo/seo-data.model';\r\nimport { SeoUnidade } from '../../models/seo/seo-unidade.model';\r\nimport { WpPost } from '../../models/wordpress/post/post.model';\r\nimport { getSiteUrl } from '../../helpers/getSiteUrl.func';\r\nimport { removeHtmlTags } from '../../helpers/removeHtmlTags.func';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SeoService {\r\n private title = inject(Title);\r\n private meta = inject(Meta);\r\n private location = inject(Location);\r\n private libConfig = inject<LibConfig>(LIB_CONFIG);\r\n private document = inject<Document>(DOCUMENT);\r\n\r\n public separator = ' - ';\r\n public defaultTitle = 'Rede D’Or';\r\n public activeDescription!: string;\r\n public sameAs = [\r\n 'https://www.facebook.com/rededor/',\r\n 'https://www.instagram.com/rededor_oficial/',\r\n 'https://www.linkedin.com/company/rededor-saoluiz',\r\n 'https://twitter.com/rededor',\r\n ];\r\n public twitterUser = '@rededor';\r\n\r\n private canonicalTag!: HTMLLinkElement;\r\n private jsonTag!: HTMLScriptElement;\r\n private jsonTagId = 'seoJSON';\r\n private breadcrumbsJsonTag!: HTMLScriptElement;\r\n private breadcrumbsJsonTagId = 'breadcrumbsJSON';\r\n\r\n public unidade: any = null;\r\n public unidadeName: string = '';\r\n public unidadePath: string = '';\r\n public unidadeSlug: string = '';\r\n\r\n public customJsonType: any[] = [];\r\n\r\n public setFullSeo(data: SeoData) {\r\n this.setTitle(data.title.text, !!data.title.sub);\r\n this.setDescription(data.description);\r\n this.setCanonicalHref(data.canonical);\r\n this.setPageJson();\r\n this.setSocialTags(data.socialTags);\r\n }\r\n\r\n /**\r\n * Define tag description da página\r\n * @param content conteúdo da descrição <string>\r\n */\r\n public setDescription(content: string): SeoService {\r\n const descTag = this.meta.getTag(\"name='description'\");\r\n if (content) {\r\n content = he.decode(content);\r\n content = removeHtmlTags(content);\r\n } else {\r\n content = '';\r\n }\r\n this.activeDescription = content;\r\n const tagContent = { name: 'description', content };\r\n if (descTag) {\r\n this.meta.updateTag(tagContent);\r\n } else {\r\n this.meta.addTag(tagContent);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Define meta tags para a página\r\n * @param tag nome da tag meta\r\n * @param content conteúdo da tag meta\r\n * @param type tipo de tag meta\r\n */\r\n public setMetaTag(tag: string, content: string, type = 'name') {\r\n const metatag = this.meta.getTag(`${type}='${tag}'`);\r\n content = he.decode(content);\r\n content = removeHtmlTags(content);\r\n const tagContent = {\r\n [type]: tag,\r\n content,\r\n };\r\n if (!metatag) {\r\n this.meta.addTag(tagContent);\r\n } else {\r\n this.meta.updateTag(tagContent);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove meta tags da página\r\n * @param tag nome da tag meta\r\n * @param content conteúdo da tag meta\r\n * @param attr atributo da tag meta\r\n * @param type tipo de tag meta\r\n */\r\n public removeTag(tag: string, content: string, attr: string, type = 'name') {\r\n const metatag = this.meta.getTag(`${type}='${tag}'`);\r\n if (metatag) {\r\n this.meta.removeTag(`${attr}=${content}`);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Define meta tags para Facebook\r\n * @param title título para o facebook\r\n * @param description descrição para o facebook\r\n * @param url url para definição do facebook\r\n * @param img imagem para definição no facebook\r\n */\r\n public setMetaFacebook(title: string, description: string, url: string, img: string | null = null) {\r\n this.setMetaTag('og:url', url, 'property');\r\n this.setMetaTag('og:title', title, 'property');\r\n this.setMetaTag('og:description', description, 'property');\r\n this.setMetaTag('og:type', 'website', 'property');\r\n this.setMetaTag('og:image', img ?? '', 'property');\r\n }\r\n\r\n /**\r\n * Define meta tags para Twitter\r\n * @param title título para o twitter\r\n * @param description descrição para o twitter\r\n * @param url url para o twitter\r\n * @param img imagem para definição no twitter\r\n */\r\n public setMetaTwitter(title: string, description: string, url: string, img: string | null = null) {\r\n this.setMetaTag('twitter:site', url, 'name');\r\n this.setMetaTag('twitter:title', title, 'name');\r\n this.setMetaTag('twitter:description', description, 'name');\r\n this.setMetaTag('twitter:image', img ?? '', 'name');\r\n }\r\n\r\n /**\r\n * Define tags de redes sociais (Twitter e Open Graph)\r\n * @param properties\r\n */\r\n setSocialTags(properties?: SocialMetaProperties) {\r\n const pagePath = this.location.path();\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n let defaultProperties: SocialMetaProperties = {\r\n twitterCard: 'summary',\r\n twitterSite: this.twitterUser,\r\n type: 'website',\r\n title: this.getTitle(),\r\n description: this.activeDescription || '',\r\n url: `${siteurl}${pagePath}`,\r\n image: this.libConfig?.logoPath ? `${siteurl}${this.libConfig.logoPath}` : 'https://www.rededorsaoluiz.com.br/assets/imgs/logo-rededor-blue.png',\r\n };\r\n if (properties) {\r\n defaultProperties = { ...defaultProperties, ...properties };\r\n }\r\n this.setMetaTag('twitter:card', defaultProperties.twitterCard || '', 'name')\r\n .setMetaTag('twitter:site', defaultProperties.twitterSite || '', 'name')\r\n .setMetaTag('og:type', defaultProperties.type || '', 'property')\r\n .setMetaTag('og:title', defaultProperties.title || '', 'property')\r\n .setMetaTag('og:description', defaultProperties.description || '', 'property')\r\n .setMetaTag('og:url', defaultProperties.url || '', 'property')\r\n .setMetaTag('og:image', defaultProperties.image || '', 'property');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Define título da página\r\n * @param title título da página <string>\r\n * @param sub Se é subsite acrescenta unidade <boolean>\r\n */\r\n public setTitle(title: string, sub = false) {\r\n if (title && title !== '') {\r\n title = he.decode(title);\r\n title = removeHtmlTags(title);\r\n if (sub) {\r\n title = he.decode(`${title}${this.separator}${this.unidadeName}`);\r\n }\r\n this.title.setTitle(title);\r\n }\r\n return this;\r\n }\r\n\r\n /** Obtem título atual da página */\r\n public getTitle(): string {\r\n return this.title.getTitle();\r\n }\r\n\r\n public set404Title(component: string = 'Default Component') {\r\n if (component && component !== '') {\r\n component = he.decode(component);\r\n component = removeHtmlTags(component);\r\n if (this.unidadeName) {\r\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\r\n }\r\n }\r\n const title = `Erro 404 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\r\n this.title.setTitle(title);\r\n return this;\r\n }\r\n\r\n public set500Title(component: string = 'Default Component') {\r\n if (component && component !== '') {\r\n component = he.decode(component);\r\n component = removeHtmlTags(component);\r\n if (this.unidadeName) {\r\n component = he.decode(`${component}${this.separator}${this.unidadeName}`);\r\n }\r\n }\r\n const title = `Erro 500 - ${component} - ${this.libConfig?.siteName} - ${this.location.path()}`;\r\n this.title.setTitle(title);\r\n return this;\r\n }\r\n\r\n /** Cria tag script para JSON de breadcrumbs */\r\n private createBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const tag: HTMLScriptElement = this.document.createElement('script');\r\n tag.id = this.breadcrumbsJsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n this.breadcrumbsJsonTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\r\n private getBreadcrumbsJSONTag(): HTMLScriptElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLScriptElement;\r\n if (elem && elem.id === this.breadcrumbsJsonTagId) {\r\n return elem;\r\n }\r\n }\r\n return this.createBreadcrumbsJSONTag();\r\n }\r\n\r\n /** Define o JSON de breadcrumbs da página */\r\n public setBreadcrumbsJson(items: BreadcrumbsItems[]) {\r\n this.breadcrumbsJsonTag = this.getBreadcrumbsJSONTag();\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: this.getJsonBreadcrumbItems(items),\r\n };\r\n this.breadcrumbsJsonTag.innerHTML = JSON.stringify(json);\r\n return this;\r\n }\r\n\r\n /** Converte itens do breadcrumb em itens do JSON */\r\n private getJsonBreadcrumbItems(items: BreadcrumbsItems[]): BreadcrumbsJsonItem[] {\r\n const jsonItems = [\r\n {\r\n '@type': 'ListItem',\r\n position: 1,\r\n item: { '@id': this.getBreadcrumbItemUrl(['/']), name: he.encode('Página Inicial') },\r\n } as BreadcrumbsJsonItem,\r\n ];\r\n items.forEach((item, i) => {\r\n const jsonItem: BreadcrumbsJsonItem = {\r\n '@type': 'ListItem',\r\n position: i + 2,\r\n item: { '@id': this.getBreadcrumbItemUrl(item?.url || []), name: he.encode(item.label) },\r\n };\r\n jsonItems.push(jsonItem);\r\n });\r\n return jsonItems;\r\n }\r\n\r\n /**\r\n * Monta a url do item de breadcrumb proveniente do array de urls\r\n * ou do caminho da própria página, conforme caso do último item.\r\n */\r\n private getBreadcrumbItemUrl(url: string[]): string {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n if (!url || url.length <= 0) {\r\n const pagePath = this.location.path();\r\n return `${siteurl}${pagePath}`;\r\n }\r\n url = url.filter((u) => u !== this.unidadePath);\r\n const unidadePath = this.getUnidadePath();\r\n const fullPath = `${unidadePath}/${url.join('/').replace(/^\\/?/, '')}`;\r\n return `${siteurl}${fullPath}`.replace(/\\/$/, '');\r\n }\r\n\r\n /** Cria tag script para o JSON de SEO */\r\n private createJSONTag(): HTMLScriptElement {\r\n const tag: HTMLScriptElement = this.document.createElement('script');\r\n tag.id = this.jsonTagId;\r\n tag.type = 'application/ld+json';\r\n this.document.head.appendChild(tag);\r\n this.jsonTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para script json de breadcrumbs ou cria se não houver. */\r\n private getJSONTag(): HTMLScriptElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLScriptElement;\r\n if (elem && elem.id === this.jsonTagId) {\r\n return elem;\r\n }\r\n }\r\n return this.createJSONTag();\r\n }\r\n\r\n /** Define JSON para SEO somente quando no servidor */\r\n public setPageJson() {\r\n this.jsonTag = this.getJSONTag();\r\n\r\n const baseGraph = [this.getOrgJson(), this.getWebsiteJson(), this.getWebpageJson()];\r\n\r\n const extendedGraph = this.customJsonType.length ? [...baseGraph, ...this.customJsonType] : baseGraph;\r\n\r\n this.customJsonType = [];\r\n\r\n const json = {\r\n '@context': 'http://schema.org',\r\n '@graph': extendedGraph,\r\n };\r\n\r\n this.jsonTag.innerHTML = JSON.stringify(json);\r\n\r\n return this;\r\n }\r\n\r\n /** Obtem JSON da Organização */\r\n private getOrgJson() {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return {\r\n '@type': 'Organization',\r\n '@id': `${siteurl}#organization`,\r\n name: this.defaultTitle,\r\n keywords: this.libConfig?.keywords,\r\n url: `${siteurl}`,\r\n sameAs: this.sameAs,\r\n };\r\n }\r\n\r\n /** Obtem JSON do Website (portal, unidades, etc) */\r\n private getWebsiteJson() {\r\n const unidadePath = this.getUnidadePath();\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return {\r\n '@type': 'WebSite',\r\n '@id': `${siteurl}${unidadePath}#website`,\r\n url: `${siteurl}${unidadePath}`,\r\n name: this.unidadeName,\r\n keywords: this.libConfig?.keywords,\r\n };\r\n }\r\n\r\n /** Obtem Json da página */\r\n private getWebpageJson() {\r\n const unidadePath = this.getUnidadePath();\r\n const siteURL = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n const pagePath = `${siteURL}${this.location.path()}`;\r\n const desc = this.activeDescription ? this.activeDescription : '';\r\n return {\r\n '@type': 'WebPage',\r\n '@id': `${pagePath}#webpage`,\r\n url: pagePath,\r\n inLanguage: 'pt-BR',\r\n name: this.getTitle(),\r\n isPartOf: { '@id': `${siteURL}${unidadePath}#website` },\r\n about: { '@id': `${siteURL}#organization` },\r\n description: desc,\r\n };\r\n }\r\n\r\n private getUnidadePath() {\r\n let unidadePath = '';\r\n if (this.unidade && this.unidadePath) {\r\n unidadePath = this.unidade?.path === '/' ? '' : this.unidadePath?.substring(0, this.unidadePath?.length - 1);\r\n }\r\n return unidadePath;\r\n }\r\n\r\n /**\r\n * Obtém a URL canônica da página.\r\n * @returns A URL canônica da página.\r\n */\r\n public getCanonicalHref(): string {\r\n if (!this.canonicalTag) {\r\n this.canonicalTag = this.getCanonicalTag();\r\n }\r\n return this.canonicalTag.href;\r\n }\r\n\r\n /** Cria tag para links canonicals no head */\r\n private createCanonicalTag(): HTMLLinkElement {\r\n const tag = this.document.createElement('link');\r\n tag.setAttribute('rel', 'canonical');\r\n this.document.head.appendChild(tag);\r\n tag.setAttribute('href', this.document.URL);\r\n this.canonicalTag = tag;\r\n return tag;\r\n }\r\n\r\n /** Retorna tag para link canonical existe ou cria se não houver. */\r\n private getCanonicalTag(): HTMLLinkElement {\r\n const elements = this.document.head.children;\r\n let i: number;\r\n for (i = 0; i < elements.length; i++) {\r\n const elem = elements[i] as HTMLLinkElement;\r\n if (elem && elem.tagName === 'LINK' && elem.rel === 'canonical') {\r\n return elem;\r\n }\r\n }\r\n return this.createCanonicalTag();\r\n }\r\n\r\n /**\r\n * Define link canonical da página\r\n * @param url url canonical\r\n */\r\n public setCanonicalHref(url?: string) {\r\n if (!this.canonicalTag) {\r\n this.canonicalTag = this.getCanonicalTag();\r\n }\r\n\r\n let path = this.document.location.pathname;\r\n\r\n if (this.libConfig?.siteSufix && path.includes(this.libConfig?.siteSufix)) {\r\n path = path.replace(this.libConfig?.siteSufix, '');\r\n }\r\n\r\n if (!path.startsWith('/')) {\r\n path = `/${path}`;\r\n }\r\n\r\n const canonicalUrl = url && this.isCustomCanonical(url) ? url : `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${path}`;\r\n\r\n this.canonicalTag.setAttribute('href', canonicalUrl);\r\n return this;\r\n }\r\n\r\n /**\r\n * Verifica se a URL fornecida é um link canonical personalizado\r\n * @param url URL fornecida\r\n */\r\n public isCustomCanonical(url: string): boolean {\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n return url.startsWith(siteurl);\r\n }\r\n\r\n /**\r\n * Obtém uma url válida na aplicação proveniente de uma URL gerada\r\n * pelo plugin Yoast para canonical automático.\r\n * Ex.: https://wp.rededorsaoluiz.com.br/brasil/especialidades/cardiologia/\r\n * @param urlFromWpApi URL canonica gerada pelo Yoast Plugin.\r\n */\r\n toLocalCanonical(urlFromWpApi: string): string {\r\n const apiUrl = this.libConfig?.wpUrl ?? '';\r\n const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);\r\n const unidadeSlug = this.unidadeSlug;\r\n let converted = urlFromWpApi.replace(apiUrl, siteurl);\r\n if (unidadeSlug !== '/' && converted.includes(`/${unidadeSlug}/`)) {\r\n converted = converted.replace(`/${unidadeSlug}/`, `${this.unidadePath}`);\r\n }\r\n return converted;\r\n }\r\n\r\n getPostContent(post: WpPost): string {\r\n const content = post?.acf?.['rdsl_post_content'] ? post?.acf?.rdsl_post_content?.find((content: any) => content.acf_fc_layout === 'text_html') : null;\r\n return content?.content || post.content.rendered || '';\r\n }\r\n\r\n addArticleScript(post: WpPost, scriptName: string): void {\r\n const postContent = this.getPostContent(post);\r\n const postHeaderImage = post?.acf?.['rdsl_post_header_img']\r\n ? {\r\n url: post?.acf?.['rdsl_post_header_img'].url,\r\n width: post?.acf?.['rdsl_post_header_img'].width,\r\n height: post?.acf?.['rdsl_post_header_img'].height,\r\n }\r\n : null;\r\n\r\n const structuredData = {\r\n '@context': 'https://schema.org',\r\n '@type': 'Article',\r\n mainEntityOfPage: `${getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix)}${this.location.path()}`,\r\n headline: post.title?.rendered,\r\n datePublished: post.date_gmt,\r\n publisher: {\r\n '@type': 'Organization',\r\n name: 'Rede D’Or',\r\n },\r\n description: post.title?.rendered,\r\n articleBody: removeHtmlTags(he.decode(postContent)),\r\n dateModified: post.modified_gmt,\r\n image: {\r\n '@type': 'ImageObject',\r\n url: postHeaderImage?.url || post.featured_media_path || '',\r\n height: postHeaderImage?.height || '',\r\n width: postHeaderImage?.width || '',\r\n },\r\n author: {\r\n '@type': 'Organization',\r\n name: 'Rede D’Or',\r\n },\r\n wordcount: postContent.split(' ').length,\r\n };\r\n\r\n const script = this.document.createElement('script');\r\n\r\n script.type = 'application/ld+json';\r\n script.id = scriptName;\r\n script.innerHTML = JSON.stringify(structuredData);\r\n\r\n this.document.head.appendChild(script);\r\n }\r\n\r\n removeArticleScript(scriptName: string): void {\r\n const script = this.document.getElementById(scriptName);\r\n script?.remove();\r\n }\r\n\r\n public setUnidade({ unidade = null, unidadeName = '', unidadePath = '', unidadeSlug = '' }: SeoUnidade) {\r\n this.unidade = unidade;\r\n this.unidadeName = unidadeName;\r\n this.unidadePath = unidadePath;\r\n this.unidadeSlug = unidadeSlug;\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Response } from 'express';\r\nimport { RESPONSE } from '../../tokens/express.tokens';\r\n\r\nexport interface IServerResponseService {\r\n getHeader(key: string): string;\r\n setHeader(key: string, value: string): this;\r\n setHeaders(dictionary: { [key: string]: string }): this;\r\n appendHeader(key: string, value: string, delimiter?: string): this;\r\n setStatus(code: number, message?: string): this;\r\n setNotFound(message?: string): this;\r\n setError(message?: string): this;\r\n setRedirect(redirectParams?: { statusCode: number; message: string; url?: string }): this;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ServerResponseService implements IServerResponseService {\r\n private response = inject(RESPONSE, { optional: true });\r\n\r\n getHeader(key: string): string {\r\n if (this.response) {\r\n return this.response.getHeader(key) as string;\r\n }\r\n return '';\r\n }\r\n\r\n setHeader(key: string, value: string): this {\r\n if (this.response) {\r\n this.response.header(key, value);\r\n }\r\n return this;\r\n }\r\n\r\n appendHeader(key: string, value: string, delimiter = ','): this {\r\n if (this.response) {\r\n const current = this.getHeader(key);\r\n if (!current) {\r\n return this.setHeader(key, value);\r\n }\r\n const newValue = [...current.split(delimiter), value].filter((el, i, a) => i === a.indexOf(el)).join(delimiter);\r\n this.response.header(key, newValue);\r\n }\r\n return this;\r\n }\r\n\r\n setHeaders(dictionary: { [key: string]: string }): this {\r\n if (this.response) {\r\n Object.keys(dictionary).forEach((key) => this.setHeader(key, dictionary[key]));\r\n }\r\n return this;\r\n }\r\n\r\n setStatus(code: number, message?: string): this {\r\n if (this.response) {\r\n this.response.statusCode = code;\r\n if (message) {\r\n this.response.statusMessage = message;\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n setNotFound(message = 'Não encontrado'): this {\r\n if (this.response) {\r\n this.response.statusCode = 404;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setUnauthorized(message = 'Não autorizado'): this {\r\n if (this.response) {\r\n this.response.statusCode = 401;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setError(message = 'Erro interno de servidor'): this {\r\n if (this.response) {\r\n this.response.statusCode = 500;\r\n this.response.statusMessage = message;\r\n }\r\n return this;\r\n }\r\n\r\n setRedirect(\r\n { statusCode, message, url }: { statusCode?: number; message?: string; url?: string } = {\r\n statusCode: 301,\r\n message: 'Redirecionado permanentemente',\r\n url: undefined,\r\n },\r\n ): this {\r\n if (this.response) {\r\n this.response.statusCode = statusCode || 301;\r\n this.response.statusMessage = message || 'Redirecionado permanentemente';\r\n if (url) {\r\n this.response.locals['redirectUrl'] = url; // Utilizado no ssr para redirect\r\n }\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nexport type HttpCacheDirective = 'public' | 'private' | 'no-store' | 'no-cache' | 'must-revalidate' | 'no-transform' | 'proxy-revalidate';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
@@ -1,252 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, ElementRef, input, signal, computed, Component, contentChildren } from '@angular/core';
3
- import { CuraApiService } from '@rededor/site-front-end-lib/cura/api';
4
- import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
6
- import { CuraIconComponent } from '@rededor/site-front-end-lib/cura/icons/cura-icon';
7
- import { CuraHeadingComponent } from '@rededor/site-front-end-lib/cura/texts/cura-heading';
8
-
9
- class CuraAccordionItemComponent {
10
- constructor() {
11
- this.elementRef = inject(ElementRef);
12
- /**
13
- * Text label for accordion item
14
- */
15
- this.label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
16
- /** ***Properties below are inherited from the cura-accordion*** */
17
- /**
18
- * Accordion items icons
19
- */
20
- this.iconSize = signal(20, ...(ngDevMode ? [{ debugName: "iconSize" }] : []));
21
- this.labelIcon = signal('', ...(ngDevMode ? [{ debugName: "labelIcon" }] : []));
22
- this.openIcon = signal('down', ...(ngDevMode ? [{ debugName: "openIcon" }] : []));
23
- this.closeIcon = signal('up', ...(ngDevMode ? [{ debugName: "closeIcon" }] : []));
24
- /**
25
- * Color scheme base color
26
- * (By default, the icon will use the same color of 'color')
27
- */
28
- this.iconColor = signal('', ...(ngDevMode ? [{ debugName: "iconColor" }] : []));
29
- /**
30
- * Set the color mode to dark or light
31
- */
32
- this.colorMode = signal('dark', ...(ngDevMode ? [{ debugName: "colorMode" }] : []));
33
- /**
34
- * Heading level for semantics. Will render the related HTML tag <h1>, <h2>, ...
35
- * Values: 1 to 6 (3 default).
36
- */
37
- this.level = signal(3, ...(ngDevMode ? [{ debugName: "level" }] : []));
38
- /**
39
- * Controls if the accordion item is opened
40
- */
41
- this.opened = signal(false, ...(ngDevMode ? [{ debugName: "opened" }] : []));
42
- // Computed signal para classes (equivalente ao Stencil)
43
- this.containerClasses = computed(() => {
44
- const classes = {};
45
- classes['accordion-item'] = true;
46
- classes['active'] = this.opened();
47
- classes['inverted'] = this.colorMode() === 'light';
48
- return classes;
49
- }, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
50
- this.currentIcon = computed(() => {
51
- return this.opened() ? this.closeIcon() : this.openIcon();
52
- }, ...(ngDevMode ? [{ debugName: "currentIcon" }] : []));
53
- }
54
- accordionItemClick(event) {
55
- event.preventDefault();
56
- this.opened.set(!this.opened());
57
- // Emitir evento customizado para o MutationObserver do parent
58
- this.elementRef.nativeElement.setAttribute('opened', this.opened().toString());
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: CuraAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: CuraAccordionItemComponent, isStandalone: true, selector: "cura-accordion-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.opened": "opened().toString()" } }, ngImport: i0, template: "<div [ngClass]=\"containerClasses()\">\r\n <div class=\"label\" (click)=\"accordionItemClick($event)\">\r\n <div class=\"label-container\">\r\n <div class=\"label-content\">\r\n @if (labelIcon()) {\r\n <cura-icon [name]=\"labelIcon()\" [size]=\"iconSize()\" color=\"neutral-black\"> </cura-icon>\r\n }\r\n <cura-heading size=\"small\" [level]=\"level()\" weight=\"bold\" marginBlock=\"0\" color=\"neutral-black\">\r\n {{ label() }}\r\n </cura-heading>\r\n </div>\r\n <cura-icon [name]=\"currentIcon()\" [size]=\"iconSize()\" color=\"neutral-black\"> </cura-icon>\r\n </div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"content-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}:host .accordion-item{width:100%}:host .accordion-item:after{content:\"\";display:block;border-top:solid 1px var(--neutral-base);width:100%}:host .accordion-item:hover:not(.active):after{content:\"\";display:block;border-top:solid 1px var(--acc-color-icon-hover);width:100%}:host .accordion-item .label{display:flex;flex-direction:column}:host .accordion-item .label .label-container{display:flex;flex-grow:1;justify-content:space-between;align-items:center;gap:calc(var(--cura-spacing-base) * 3px);padding:calc(var(--cura-spacing-base) * 3px);word-break:break-word;cursor:pointer;font-size:1.14em;font-weight:var(--font-weight-regular)}:host .accordion-item .label .label-container .label-content{display:flex;justify-content:center;align-items:center;gap:calc(var(--cura-spacing-base) * 3px)}:host .accordion-item .label .label-container .label-content cura-icon{--color: var(--acc-color) !important}:host .accordion-item .label .label-container .label-content cura-heading{--color-body: var(--acc-color) !important}:host .accordion-item .label .label-container cura-icon{--color: var(--acc-color-icon) !important;margin-right:4px}:host .accordion-item .label .label-container:hover cura-heading{--color-body: var(--acc-color-hover) !important}:host .accordion-item .label .label-container:hover cura-icon{--color: var(--acc-color-icon-hover) !important}:host .accordion-item .content{font-size:1em;overflow:hidden;max-height:0;transition:max-height .25s ease}:host .accordion-item .content .content-wrapper{padding:calc(var(--cura-spacing-base) * 3px)}:host .accordion-item.inverted:hover:not(.active):after{content:\"\";display:block;border-top:solid 1px var(--acc-color-icon-hover-inverted);width:100%}:host .accordion-item.inverted .label .label-container cura-heading{--color-body: var(--acc-color-inverted) !important}:host .accordion-item.inverted .label .label-container cura-icon{--color: var(--acc-color-icon-inverted) !important}:host .accordion-item.inverted .label .label-container:hover cura-heading{--color-body: var(--acc-color-hover-inverted) !important}:host .accordion-item.inverted .label .label-container:hover cura-icon{--color: var(--acc-color-icon-hover-inverted) !important}:host .accordion-item.active .content{max-height:200vh;overflow-y:auto;transition:max-height .5s ease .14s}@media (min-width: 769px) and (max-width: 992px){:host .accordion-item .label .label-container{font-size:1.29em}:host .accordion-item .content{font-size:1.14em}}@media (min-width: 993px){:host .accordion-item .label .label-container{font-size:1.29em}:host .accordion-item .content{font-size:1.14em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CuraIconComponent, selector: "cura-icon", inputs: ["name", "color", "size", "iconset", "disabled"] }, { kind: "component", type: CuraHeadingComponent, selector: "cura-heading", inputs: ["level", "size", "weight", "spotColor", "color", "marginBlock", "lineHeight", "textOverflow"] }] }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: CuraAccordionItemComponent, decorators: [{
64
- type: Component,
65
- args: [{ selector: 'cura-accordion-item', imports: [CommonModule, CuraIconComponent, CuraHeadingComponent], host: {
66
- '[attr.opened]': 'opened().toString()',
67
- }, template: "<div [ngClass]=\"containerClasses()\">\r\n <div class=\"label\" (click)=\"accordionItemClick($event)\">\r\n <div class=\"label-container\">\r\n <div class=\"label-content\">\r\n @if (labelIcon()) {\r\n <cura-icon [name]=\"labelIcon()\" [size]=\"iconSize()\" color=\"neutral-black\"> </cura-icon>\r\n }\r\n <cura-heading size=\"small\" [level]=\"level()\" weight=\"bold\" marginBlock=\"0\" color=\"neutral-black\">\r\n {{ label() }}\r\n </cura-heading>\r\n </div>\r\n <cura-icon [name]=\"currentIcon()\" [size]=\"iconSize()\" color=\"neutral-black\"> </cura-icon>\r\n </div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"content-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}:host .accordion-item{width:100%}:host .accordion-item:after{content:\"\";display:block;border-top:solid 1px var(--neutral-base);width:100%}:host .accordion-item:hover:not(.active):after{content:\"\";display:block;border-top:solid 1px var(--acc-color-icon-hover);width:100%}:host .accordion-item .label{display:flex;flex-direction:column}:host .accordion-item .label .label-container{display:flex;flex-grow:1;justify-content:space-between;align-items:center;gap:calc(var(--cura-spacing-base) * 3px);padding:calc(var(--cura-spacing-base) * 3px);word-break:break-word;cursor:pointer;font-size:1.14em;font-weight:var(--font-weight-regular)}:host .accordion-item .label .label-container .label-content{display:flex;justify-content:center;align-items:center;gap:calc(var(--cura-spacing-base) * 3px)}:host .accordion-item .label .label-container .label-content cura-icon{--color: var(--acc-color) !important}:host .accordion-item .label .label-container .label-content cura-heading{--color-body: var(--acc-color) !important}:host .accordion-item .label .label-container cura-icon{--color: var(--acc-color-icon) !important;margin-right:4px}:host .accordion-item .label .label-container:hover cura-heading{--color-body: var(--acc-color-hover) !important}:host .accordion-item .label .label-container:hover cura-icon{--color: var(--acc-color-icon-hover) !important}:host .accordion-item .content{font-size:1em;overflow:hidden;max-height:0;transition:max-height .25s ease}:host .accordion-item .content .content-wrapper{padding:calc(var(--cura-spacing-base) * 3px)}:host .accordion-item.inverted:hover:not(.active):after{content:\"\";display:block;border-top:solid 1px var(--acc-color-icon-hover-inverted);width:100%}:host .accordion-item.inverted .label .label-container cura-heading{--color-body: var(--acc-color-inverted) !important}:host .accordion-item.inverted .label .label-container cura-icon{--color: var(--acc-color-icon-inverted) !important}:host .accordion-item.inverted .label .label-container:hover cura-heading{--color-body: var(--acc-color-hover-inverted) !important}:host .accordion-item.inverted .label .label-container:hover cura-icon{--color: var(--acc-color-icon-hover-inverted) !important}:host .accordion-item.active .content{max-height:200vh;overflow-y:auto;transition:max-height .5s ease .14s}@media (min-width: 769px) and (max-width: 992px){:host .accordion-item .label .label-container{font-size:1.29em}:host .accordion-item .content{font-size:1.14em}}@media (min-width: 993px){:host .accordion-item .label .label-container{font-size:1.29em}:host .accordion-item .content{font-size:1.14em}}\n"] }]
68
- }] });
69
-
70
- class CuraAccordionComponent {
71
- constructor() {
72
- this.curaApi = inject(CuraApiService);
73
- this.elementRef = inject(ElementRef);
74
- /**
75
- * Color scheme base color
76
- */
77
- this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
78
- /**
79
- * Set the color mode to dark or light
80
- */
81
- this.colorMode = input('dark', ...(ngDevMode ? [{ debugName: "colorMode" }] : []));
82
- /**
83
- * Accordion items icons
84
- */
85
- this.iconSize = input(20, ...(ngDevMode ? [{ debugName: "iconSize" }] : []));
86
- this.labelIcon = input('', ...(ngDevMode ? [{ debugName: "labelIcon" }] : []));
87
- this.openIcon = input('down', ...(ngDevMode ? [{ debugName: "openIcon" }] : []));
88
- this.closeIcon = input('up', ...(ngDevMode ? [{ debugName: "closeIcon" }] : []));
89
- /**
90
- * Color scheme base color
91
- * (By default, the icon will use the same color of 'color')
92
- */
93
- this.iconColor = input('', ...(ngDevMode ? [{ debugName: "iconColor" }] : []));
94
- /**
95
- * Accordion behavior when item is clicked
96
- * (The default will close all items except the current one)
97
- */
98
- this.behavior = input('default', ...(ngDevMode ? [{ debugName: "behavior" }] : []));
99
- /**
100
- * Heading level for semantics. Will render the related HTML tag <h1>, <h2>, ...
101
- * Values: 1 to 6 (3 default).
102
- */
103
- this.level = input(3, ...(ngDevMode ? [{ debugName: "level" }] : []));
104
- this.accordionItems = contentChildren(CuraAccordionItemComponent, ...(ngDevMode ? [{ debugName: "accordionItems" }] : []));
105
- // Computed properties para estilos
106
- this.weights = computed(() => {
107
- return this.curaApi.theme.fonts.getWeights();
108
- }, ...(ngDevMode ? [{ debugName: "weights" }] : []));
109
- this.baseSpacing = computed(() => {
110
- return this.curaApi.theme.spacing.getSpacing();
111
- }, ...(ngDevMode ? [{ debugName: "baseSpacing" }] : []));
112
- this.neutralBase = computed(() => {
113
- return this.curaApi.theme.colors.getColor('neutral-base');
114
- }, ...(ngDevMode ? [{ debugName: "neutralBase" }] : []));
115
- this.fontSize = computed(() => {
116
- return this.curaApi.theme.fonts.getSize();
117
- }, ...(ngDevMode ? [{ debugName: "fontSize" }] : []));
118
- this.fontColor = computed(() => {
119
- return this.curaApi.theme.fonts.getColor();
120
- }, ...(ngDevMode ? [{ debugName: "fontColor" }] : []));
121
- this.fontFamily = computed(() => {
122
- return this.curaApi.theme.fonts.getFamily();
123
- }, ...(ngDevMode ? [{ debugName: "fontFamily" }] : []));
124
- this.accordionColors = computed(() => {
125
- const iconColorValue = this.iconColor() || this.color();
126
- return {
127
- accColor: this.curaApi.theme.colors.getColor('neutral-black'),
128
- accColorHover: this.curaApi.theme.colors.getColor(`${this.color()}-base`),
129
- accColorIcon: this.curaApi.theme.colors.getColor(`${iconColorValue}-base`),
130
- accColorIconHover: this.curaApi.theme.colors.getColor(`${iconColorValue}-darker`),
131
- accColorInverted: this.curaApi.theme.colors.getColor('neutral-white'),
132
- accColorHoverInverted: this.curaApi.theme.colors.getColor(`${this.color()}-lighter`),
133
- accColorIconInverted: this.curaApi.theme.colors.getColor('neutral-white'),
134
- accColorIconHoverInverted: this.curaApi.theme.colors.getColor(`${iconColorValue}-lighter`),
135
- };
136
- }, ...(ngDevMode ? [{ debugName: "accordionColors" }] : []));
137
- this.childConfiguration = computed(() => {
138
- return {
139
- colorMode: this.colorMode(),
140
- iconColor: this.iconColor() || this.color(),
141
- iconSize: this.iconSize(),
142
- labelIcon: this.labelIcon(),
143
- openIcon: this.openIcon(),
144
- closeIcon: this.closeIcon(),
145
- level: this.level(),
146
- };
147
- }, ...(ngDevMode ? [{ debugName: "childConfiguration" }] : []));
148
- }
149
- ngAfterViewInit() {
150
- // Configurar propriedades dos cura-accordion-item
151
- this.setChildrenProperties();
152
- // Observar mudanças nos cura-accordion-item
153
- this.setupMutationObserver();
154
- }
155
- ngOnDestroy() {
156
- if (this.mutationObserver) {
157
- this.mutationObserver.disconnect();
158
- }
159
- }
160
- setupMutationObserver() {
161
- if (typeof MutationObserver === 'undefined')
162
- return;
163
- this.mutationObserver = new MutationObserver((mutations) => {
164
- for (const mutation of mutations) {
165
- if (mutation.type === 'attributes' && mutation.attributeName === 'opened') {
166
- const target = mutation.target;
167
- if (target?.getAttribute('opened') === 'true' && this.behavior() === 'default') {
168
- // Fechar todos os outros itens
169
- this.accordionItems().forEach((item) => {
170
- if (item.elementRef.nativeElement !== target) {
171
- item.opened.set(false);
172
- }
173
- });
174
- }
175
- }
176
- if (mutation.type === 'childList') {
177
- const addedNodes = Array.from(mutation.addedNodes || []);
178
- for (let node of addedNodes) {
179
- if (node.nodeType === Node.ELEMENT_NODE) {
180
- this.setChildProperties(node);
181
- }
182
- }
183
- }
184
- }
185
- });
186
- const options = {
187
- childList: true,
188
- subtree: true,
189
- attributes: true,
190
- attributeFilter: ['opened'],
191
- };
192
- this.mutationObserver.observe(this.elementRef.nativeElement, options);
193
- }
194
- setChildrenProperties() {
195
- this.accordionItems().forEach((item) => {
196
- this.setChildProperties(item.elementRef.nativeElement);
197
- this.setItemProperties(item);
198
- });
199
- }
200
- setChildProperties(element) {
201
- // Configurar propriedades via atributos para compatibilidade
202
- const config = this.childConfiguration();
203
- element.setAttribute('color-mode', config.colorMode);
204
- element.setAttribute('icon-color', config.iconColor);
205
- element.setAttribute('icon-size', config.iconSize.toString());
206
- if (config.labelIcon)
207
- element.setAttribute('label-icon', config.labelIcon);
208
- element.setAttribute('open-icon', config.openIcon);
209
- element.setAttribute('close-icon', config.closeIcon);
210
- element.setAttribute('level', config.level.toString());
211
- }
212
- setItemProperties(item) {
213
- // Configurar propriedades diretamente no componente
214
- const config = this.childConfiguration();
215
- item.colorMode.set(config.colorMode);
216
- item.iconColor.set(config.iconColor);
217
- item.iconSize.set(config.iconSize);
218
- if (config.labelIcon)
219
- item.labelIcon.set(config.labelIcon);
220
- item.openIcon.set(config.openIcon);
221
- item.closeIcon.set(config.closeIcon);
222
- item.level.set(config.level);
223
- }
224
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: CuraAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
225
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.2", type: CuraAccordionComponent, isStandalone: true, selector: "cura-accordion", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, colorMode: { classPropertyName: "colorMode", publicName: "colorMode", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, labelIcon: { classPropertyName: "labelIcon", publicName: "labelIcon", isSignal: true, isRequired: false, transformFunction: null }, openIcon: { classPropertyName: "openIcon", publicName: "openIcon", isSignal: true, isRequired: false, transformFunction: null }, closeIcon: { classPropertyName: "closeIcon", publicName: "closeIcon", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, behavior: { classPropertyName: "behavior", publicName: "behavior", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--base-spacing": "baseSpacing()", "style.--neutral-base": "neutralBase()", "style.--font-size": "fontSize()", "style.--font-color": "fontColor()", "style.--font-family": "fontFamily()", "style.--font-weight-regular": "weights().regular", "style.--acc-color": "accordionColors().accColor", "style.--acc-color-hover": "accordionColors().accColorHover", "style.--acc-color-icon": "accordionColors().accColorIcon", "style.--acc-color-icon-hover": "accordionColors().accColorIconHover", "style.--acc-color-inverted": "accordionColors().accColorInverted", "style.--acc-color-hover-inverted": "accordionColors().accColorHoverInverted", "style.--acc-color-icon-inverted": "accordionColors().accColorIconInverted", "style.--acc-color-icon-hover-inverted": "accordionColors().accColorIconHoverInverted" } }, queries: [{ propertyName: "accordionItems", predicate: CuraAccordionItemComponent, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [":host{display:block;color:var(--font-color);font-size:var(--font-size);font-family:var(--font-family);font-weight:var(--font-weight-regular)}\n"] }); }
226
- }
227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: CuraAccordionComponent, decorators: [{
228
- type: Component,
229
- args: [{ selector: 'cura-accordion', host: {
230
- '[style.--base-spacing]': 'baseSpacing()',
231
- '[style.--neutral-base]': 'neutralBase()',
232
- '[style.--font-size]': 'fontSize()',
233
- '[style.--font-color]': 'fontColor()',
234
- '[style.--font-family]': 'fontFamily()',
235
- '[style.--font-weight-regular]': 'weights().regular',
236
- '[style.--acc-color]': 'accordionColors().accColor',
237
- '[style.--acc-color-hover]': 'accordionColors().accColorHover',
238
- '[style.--acc-color-icon]': 'accordionColors().accColorIcon',
239
- '[style.--acc-color-icon-hover]': 'accordionColors().accColorIconHover',
240
- '[style.--acc-color-inverted]': 'accordionColors().accColorInverted',
241
- '[style.--acc-color-hover-inverted]': 'accordionColors().accColorHoverInverted',
242
- '[style.--acc-color-icon-inverted]': 'accordionColors().accColorIconInverted',
243
- '[style.--acc-color-icon-hover-inverted]': 'accordionColors().accColorIconHoverInverted',
244
- }, template: "<ng-content></ng-content>\r\n", styles: [":host{display:block;color:var(--font-color);font-size:var(--font-size);font-family:var(--font-family);font-weight:var(--font-weight-regular)}\n"] }]
245
- }] });
246
-
247
- /**
248
- * Generated bundle index. Do not edit.
249
- */
250
-
251
- export { CuraAccordionComponent, CuraAccordionItemComponent };
252
- //# sourceMappingURL=rededor-site-front-end-lib-cura-accordion.mjs.map