@foblex/m-render 2.5.1

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 (299) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -0
  3. package/assets/fonts/inter-italic-latin-ext.woff2 +0 -0
  4. package/assets/fonts/inter-italic-latin.woff2 +0 -0
  5. package/assets/fonts/inter-roman-latin-ext.woff2 +0 -0
  6. package/assets/fonts/inter-roman-latin.woff2 +0 -0
  7. package/assets/styles/_alert.scss +50 -0
  8. package/assets/styles/_badge.scss +63 -0
  9. package/assets/styles/_button.scss +42 -0
  10. package/assets/styles/_code-group.scss +45 -0
  11. package/assets/styles/_code-highlight.scss +96 -0
  12. package/assets/styles/_code-view.scss +91 -0
  13. package/assets/styles/_doc-text.scss +124 -0
  14. package/assets/styles/_fonts.scss +41 -0
  15. package/assets/styles/_icons.scss +158 -0
  16. package/assets/styles/_preview-group.scss +11 -0
  17. package/assets/styles/_variables.scss +287 -0
  18. package/assets/styles/styles.scss +75 -0
  19. package/esm2022/foblex-m-render.mjs +5 -0
  20. package/esm2022/lib/common-services/analytics/f-accept-cookies-key.mjs +2 -0
  21. package/esm2022/lib/common-services/analytics/f-analytics.service.mjs +52 -0
  22. package/esm2022/lib/common-services/analytics/i-window-with-analytics.mjs +2 -0
  23. package/esm2022/lib/common-services/analytics/index.mjs +5 -0
  24. package/esm2022/lib/common-services/analytics/set-cookie-consent.mjs +32 -0
  25. package/esm2022/lib/common-services/f-head-tag.service.mjs +52 -0
  26. package/esm2022/lib/common-services/index.mjs +4 -0
  27. package/esm2022/lib/common-services/json-ld/f-json-ld.service.mjs +51 -0
  28. package/esm2022/lib/common-services/json-ld/i-json-ld-creator.mjs +2 -0
  29. package/esm2022/lib/common-services/json-ld/i-json-ld-entity-of-page.mjs +2 -0
  30. package/esm2022/lib/common-services/json-ld/i-json-ld.mjs +2 -0
  31. package/esm2022/lib/common-services/json-ld/index.mjs +5 -0
  32. package/esm2022/lib/domain/f-environment.service.mjs +66 -0
  33. package/esm2022/lib/domain/f-meta.service.mjs +77 -0
  34. package/esm2022/lib/domain/f-popover.service.mjs +25 -0
  35. package/esm2022/lib/domain/f-state.service.mjs +27 -0
  36. package/esm2022/lib/domain/features/get-version-handler/get-version.handler.mjs +27 -0
  37. package/esm2022/lib/domain/features/get-version-handler/get-version.request.mjs +6 -0
  38. package/esm2022/lib/domain/features/get-version-handler/index.mjs +3 -0
  39. package/esm2022/lib/domain/features/handle-navigation-links/handle-navigation-links.handler.mjs +51 -0
  40. package/esm2022/lib/domain/features/handle-navigation-links/handle-navigation-links.request.mjs +6 -0
  41. package/esm2022/lib/domain/features/handle-navigation-links/index.mjs +3 -0
  42. package/esm2022/lib/domain/features/index.mjs +3 -0
  43. package/esm2022/lib/domain/i-docs-component.mjs +2 -0
  44. package/esm2022/lib/domain/i-docs-environment.mjs +2 -0
  45. package/esm2022/lib/domain/i-docs-footer-navigation.mjs +2 -0
  46. package/esm2022/lib/domain/i-docs-header-navigation-item.mjs +2 -0
  47. package/esm2022/lib/domain/i-docs-social-link.mjs +2 -0
  48. package/esm2022/lib/domain/i-docs-table-of-content.mjs +2 -0
  49. package/esm2022/lib/domain/i-docs-version.mjs +2 -0
  50. package/esm2022/lib/domain/i-meta-data.mjs +2 -0
  51. package/esm2022/lib/domain/index.mjs +15 -0
  52. package/esm2022/lib/domain/providers.mjs +3 -0
  53. package/esm2022/lib/domain/router.mjs +13 -0
  54. package/esm2022/lib/f-documentation/f-badge/f-badge.component.mjs +22 -0
  55. package/esm2022/lib/f-documentation/f-badge/index.mjs +2 -0
  56. package/esm2022/lib/f-documentation/f-checkbox/f-checkbox.component.mjs +70 -0
  57. package/esm2022/lib/f-documentation/f-cookie-popup/f-cookie-popup.component.mjs +33 -0
  58. package/esm2022/lib/f-documentation/f-documentation.component.mjs +56 -0
  59. package/esm2022/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.mjs +24 -0
  60. package/esm2022/lib/f-documentation/f-header/f-header.component.mjs +30 -0
  61. package/esm2022/lib/f-documentation/f-header-menu/f-header-menu.component.mjs +29 -0
  62. package/esm2022/lib/f-documentation/f-preview/f-preview.component.mjs +58 -0
  63. package/esm2022/lib/f-documentation/f-social-links/f-social-links.component.mjs +18 -0
  64. package/esm2022/lib/f-documentation/f-theme-button/f-theme-button.component.mjs +41 -0
  65. package/esm2022/lib/f-documentation/f-version/f-version.component.mjs +19 -0
  66. package/esm2022/lib/f-documentation/i-documentation-component.mjs +3 -0
  67. package/esm2022/lib/f-documentation/index.mjs +13 -0
  68. package/esm2022/lib/f-navigation-panel/domain/i-navigation-group.mjs +2 -0
  69. package/esm2022/lib/f-navigation-panel/domain/i-navigation-item-badge.mjs +2 -0
  70. package/esm2022/lib/f-navigation-panel/domain/i-navigation-item.mjs +2 -0
  71. package/esm2022/lib/f-navigation-panel/domain/index.mjs +4 -0
  72. package/esm2022/lib/f-navigation-panel/f-navigation-group/f-navigation-group.component.mjs +22 -0
  73. package/esm2022/lib/f-navigation-panel/f-navigation-header/f-navigation-header.component.mjs +24 -0
  74. package/esm2022/lib/f-navigation-panel/f-navigation-item/f-navigation-item.component.mjs +11 -0
  75. package/esm2022/lib/f-navigation-panel/f-navigation-panel.component.mjs +94 -0
  76. package/esm2022/lib/f-navigation-panel/index.mjs +6 -0
  77. package/esm2022/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.mjs +102 -0
  78. package/esm2022/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.mjs +6 -0
  79. package/esm2022/lib/f-page/f-markdown/domain/handle-dynamic-components/index.mjs +3 -0
  80. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.mjs +34 -0
  81. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.mjs +6 -0
  82. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/i-parsed-container.mjs +2 -0
  83. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/index.mjs +5 -0
  84. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/copy-to-clipboard.mjs +15 -0
  85. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/index.mjs +2 -0
  86. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.mjs +46 -0
  87. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.mjs +51 -0
  88. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/i-code-group-view.mjs +2 -0
  89. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/index.mjs +3 -0
  90. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.mjs +45 -0
  91. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.mjs +60 -0
  92. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.mjs +9 -0
  93. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/index.mjs +7 -0
  94. package/esm2022/lib/f-page/f-markdown/domain/highlight/change-code-focused-syntax.pre-processor.mjs +23 -0
  95. package/esm2022/lib/f-page/f-markdown/domain/highlight/highlight.service.mjs +54 -0
  96. package/esm2022/lib/f-page/f-markdown/domain/highlight/index.mjs +6 -0
  97. package/esm2022/lib/f-page/f-markdown/domain/highlight/mark-code-focused-blocks.post-processor.mjs +52 -0
  98. package/esm2022/lib/f-page/f-markdown/domain/highlight/modify-punctuation-highlight.post-processor.mjs +22 -0
  99. package/esm2022/lib/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.mjs +28 -0
  100. package/esm2022/lib/f-page/f-markdown/domain/index.mjs +5 -0
  101. package/esm2022/lib/f-page/f-markdown/domain/markdown/index.mjs +4 -0
  102. package/esm2022/lib/f-page/f-markdown/domain/markdown/markdown.service.mjs +65 -0
  103. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/e-markdown-container-type.mjs +13 -0
  104. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/i-markdown-it-token.mjs +2 -0
  105. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/index.mjs +8 -0
  106. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-alerts.mjs +19 -0
  107. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.mjs +54 -0
  108. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.mjs +15 -0
  109. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.mjs +92 -0
  110. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.mjs +49 -0
  111. package/esm2022/lib/f-page/f-markdown/domain/markdown/utils/get-content.mjs +17 -0
  112. package/esm2022/lib/f-page/f-markdown/domain/markdown/utils/index.mjs +2 -0
  113. package/esm2022/lib/f-page/f-markdown/f-markdown-renderer.component.mjs +80 -0
  114. package/esm2022/lib/f-page/f-markdown/index.mjs +3 -0
  115. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.mjs +36 -0
  116. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.request.mjs +6 -0
  117. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.response.mjs +7 -0
  118. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/index.mjs +4 -0
  119. package/esm2022/lib/f-page/f-markdown-footer/domain/features/index.mjs +2 -0
  120. package/esm2022/lib/f-page/f-markdown-footer/domain/i-page-link.mjs +2 -0
  121. package/esm2022/lib/f-page/f-markdown-footer/domain/index.mjs +3 -0
  122. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.mjs +11 -0
  123. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.mjs +11 -0
  124. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/index.mjs +2 -0
  125. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.mjs +11 -0
  126. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/index.mjs +2 -0
  127. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/index.mjs +2 -0
  128. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.mjs +17 -0
  129. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/index.mjs +2 -0
  130. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.mjs +11 -0
  131. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/index.mjs +3 -0
  132. package/esm2022/lib/f-page/f-markdown-footer/f-markdown-footer.component.mjs +82 -0
  133. package/esm2022/lib/f-page/f-markdown-footer/index.mjs +5 -0
  134. package/esm2022/lib/f-page/f-page.component.mjs +18 -0
  135. package/esm2022/lib/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.mjs +16 -0
  136. package/esm2022/lib/f-page/f-table-of-content/f-table-of-content-items/index.mjs +2 -0
  137. package/esm2022/lib/f-page/f-table-of-content/f-table-of-content.component.mjs +63 -0
  138. package/esm2022/lib/f-page/f-table-of-content/index.mjs +3 -0
  139. package/esm2022/lib/f-page/index.mjs +5 -0
  140. package/esm2022/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.mjs +51 -0
  141. package/esm2022/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.mjs +6 -0
  142. package/esm2022/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/index.mjs +3 -0
  143. package/esm2022/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.mjs +14 -0
  144. package/esm2022/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.mjs +7 -0
  145. package/esm2022/lib/f-scrollable-container/domain/get-absolute-top-to-container/index.mjs +3 -0
  146. package/esm2022/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.mjs +52 -0
  147. package/esm2022/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.mjs +7 -0
  148. package/esm2022/lib/f-scrollable-container/domain/get-table-of-content-data/index.mjs +3 -0
  149. package/esm2022/lib/f-scrollable-container/domain/i-table-of-content-item.mjs +2 -0
  150. package/esm2022/lib/f-scrollable-container/domain/index.mjs +7 -0
  151. package/esm2022/lib/f-scrollable-container/domain/scroll-to-element-in-container.mjs +34 -0
  152. package/esm2022/lib/f-scrollable-container/domain/table-of-content-data.mjs +7 -0
  153. package/esm2022/lib/f-scrollable-container/f-scrollable-container.component.mjs +30 -0
  154. package/esm2022/lib/f-scrollable-container/f-scrollable.service.mjs +57 -0
  155. package/esm2022/lib/f-scrollable-container/index.mjs +3 -0
  156. package/esm2022/lib/index.mjs +7 -0
  157. package/esm2022/public-api.mjs +2 -0
  158. package/fesm2022/foblex-m-render.mjs +2405 -0
  159. package/fesm2022/foblex-m-render.mjs.map +1 -0
  160. package/index.d.ts +5 -0
  161. package/lib/common-services/analytics/f-accept-cookies-key.d.ts +1 -0
  162. package/lib/common-services/analytics/f-analytics.service.d.ts +10 -0
  163. package/lib/common-services/analytics/i-window-with-analytics.d.ts +5 -0
  164. package/lib/common-services/analytics/index.d.ts +4 -0
  165. package/lib/common-services/analytics/set-cookie-consent.d.ts +6 -0
  166. package/lib/common-services/f-head-tag.service.d.ts +20 -0
  167. package/lib/common-services/index.d.ts +3 -0
  168. package/lib/common-services/json-ld/f-json-ld.service.d.ts +12 -0
  169. package/lib/common-services/json-ld/i-json-ld-creator.d.ts +7 -0
  170. package/lib/common-services/json-ld/i-json-ld-entity-of-page.d.ts +3 -0
  171. package/lib/common-services/json-ld/i-json-ld.d.ts +9 -0
  172. package/lib/common-services/json-ld/index.d.ts +4 -0
  173. package/lib/domain/f-environment.service.d.ts +23 -0
  174. package/lib/domain/f-meta.service.d.ts +20 -0
  175. package/lib/domain/f-popover.service.d.ts +10 -0
  176. package/lib/domain/f-state.service.d.ts +13 -0
  177. package/lib/domain/features/get-version-handler/get-version.handler.d.ts +13 -0
  178. package/lib/domain/features/get-version-handler/get-version.request.d.ts +5 -0
  179. package/lib/domain/features/get-version-handler/index.d.ts +2 -0
  180. package/lib/domain/features/handle-navigation-links/handle-navigation-links.handler.d.ts +19 -0
  181. package/lib/domain/features/handle-navigation-links/handle-navigation-links.request.d.ts +4 -0
  182. package/lib/domain/features/handle-navigation-links/index.d.ts +2 -0
  183. package/lib/domain/features/index.d.ts +2 -0
  184. package/lib/domain/i-docs-component.d.ts +5 -0
  185. package/lib/domain/i-docs-environment.d.ts +21 -0
  186. package/lib/domain/i-docs-footer-navigation.d.ts +8 -0
  187. package/lib/domain/i-docs-header-navigation-item.d.ts +5 -0
  188. package/lib/domain/i-docs-social-link.d.ts +4 -0
  189. package/lib/domain/i-docs-table-of-content.d.ts +7 -0
  190. package/lib/domain/i-docs-version.d.ts +4 -0
  191. package/lib/domain/i-meta-data.d.ts +12 -0
  192. package/lib/domain/index.d.ts +14 -0
  193. package/lib/domain/providers.d.ts +3 -0
  194. package/lib/domain/router.d.ts +2 -0
  195. package/lib/f-documentation/f-badge/f-badge.component.d.ts +7 -0
  196. package/lib/f-documentation/f-badge/index.d.ts +1 -0
  197. package/lib/f-documentation/f-checkbox/f-checkbox.component.d.ts +22 -0
  198. package/lib/f-documentation/f-cookie-popup/f-cookie-popup.component.d.ts +9 -0
  199. package/lib/f-documentation/f-documentation.component.d.ts +18 -0
  200. package/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.d.ts +9 -0
  201. package/lib/f-documentation/f-header/f-header.component.d.ts +9 -0
  202. package/lib/f-documentation/f-header-menu/f-header-menu.component.d.ts +17 -0
  203. package/lib/f-documentation/f-preview/f-preview.component.d.ts +29 -0
  204. package/lib/f-documentation/f-social-links/f-social-links.component.d.ts +9 -0
  205. package/lib/f-documentation/f-theme-button/f-theme-button.component.d.ts +15 -0
  206. package/lib/f-documentation/f-version/f-version.component.d.ts +10 -0
  207. package/lib/f-documentation/i-documentation-component.d.ts +5 -0
  208. package/lib/f-documentation/index.d.ts +12 -0
  209. package/lib/f-navigation-panel/domain/i-navigation-group.d.ts +5 -0
  210. package/lib/f-navigation-panel/domain/i-navigation-item-badge.d.ts +4 -0
  211. package/lib/f-navigation-panel/domain/i-navigation-item.d.ts +13 -0
  212. package/lib/f-navigation-panel/domain/index.d.ts +3 -0
  213. package/lib/f-navigation-panel/f-navigation-group/f-navigation-group.component.d.ts +8 -0
  214. package/lib/f-navigation-panel/f-navigation-header/f-navigation-header.component.d.ts +12 -0
  215. package/lib/f-navigation-panel/f-navigation-item/f-navigation-item.component.d.ts +5 -0
  216. package/lib/f-navigation-panel/f-navigation-panel.component.d.ts +29 -0
  217. package/lib/f-navigation-panel/index.d.ts +5 -0
  218. package/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.d.ts +26 -0
  219. package/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.d.ts +4 -0
  220. package/lib/f-page/f-markdown/domain/handle-dynamic-components/index.d.ts +2 -0
  221. package/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.d.ts +16 -0
  222. package/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.d.ts +4 -0
  223. package/lib/f-page/f-markdown/domain/handle-parsed-containers/i-parsed-container.d.ts +3 -0
  224. package/lib/f-page/f-markdown/domain/handle-parsed-containers/index.d.ts +4 -0
  225. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/copy-to-clipboard.d.ts +2 -0
  226. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/index.d.ts +1 -0
  227. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.d.ts +10 -0
  228. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.d.ts +18 -0
  229. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/i-code-group-view.d.ts +3 -0
  230. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/index.d.ts +2 -0
  231. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.d.ts +15 -0
  232. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.d.ts +21 -0
  233. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.d.ts +6 -0
  234. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/index.d.ts +6 -0
  235. package/lib/f-page/f-markdown/domain/highlight/change-code-focused-syntax.pre-processor.d.ts +7 -0
  236. package/lib/f-page/f-markdown/domain/highlight/highlight.service.d.ts +15 -0
  237. package/lib/f-page/f-markdown/domain/highlight/index.d.ts +5 -0
  238. package/lib/f-page/f-markdown/domain/highlight/mark-code-focused-blocks.post-processor.d.ts +14 -0
  239. package/lib/f-page/f-markdown/domain/highlight/modify-punctuation-highlight.post-processor.d.ts +6 -0
  240. package/lib/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.d.ts +9 -0
  241. package/lib/f-page/f-markdown/domain/index.d.ts +4 -0
  242. package/lib/f-page/f-markdown/domain/markdown/index.d.ts +3 -0
  243. package/lib/f-page/f-markdown/domain/markdown/markdown.service.d.ts +22 -0
  244. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/e-markdown-container-type.d.ts +11 -0
  245. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/i-markdown-it-token.d.ts +15 -0
  246. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/index.d.ts +7 -0
  247. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-alerts.d.ts +9 -0
  248. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.d.ts +17 -0
  249. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.d.ts +5 -0
  250. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.d.ts +21 -0
  251. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.d.ts +17 -0
  252. package/lib/f-page/f-markdown/domain/markdown/utils/get-content.d.ts +2 -0
  253. package/lib/f-page/f-markdown/domain/markdown/utils/index.d.ts +1 -0
  254. package/lib/f-page/f-markdown/f-markdown-renderer.component.d.ts +25 -0
  255. package/lib/f-page/f-markdown/index.d.ts +2 -0
  256. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.d.ts +9 -0
  257. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.request.d.ts +4 -0
  258. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.response.d.ts +6 -0
  259. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/index.d.ts +3 -0
  260. package/lib/f-page/f-markdown-footer/domain/features/index.d.ts +1 -0
  261. package/lib/f-page/f-markdown-footer/domain/i-page-link.d.ts +4 -0
  262. package/lib/f-page/f-markdown-footer/domain/index.d.ts +2 -0
  263. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.d.ts +5 -0
  264. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.d.ts +5 -0
  265. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/index.d.ts +1 -0
  266. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.d.ts +5 -0
  267. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/index.d.ts +1 -0
  268. package/lib/f-page/f-markdown-footer/f-footer-edit-information/index.d.ts +1 -0
  269. package/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.d.ts +8 -0
  270. package/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/index.d.ts +1 -0
  271. package/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.d.ts +5 -0
  272. package/lib/f-page/f-markdown-footer/f-footer-navigation/index.d.ts +2 -0
  273. package/lib/f-page/f-markdown-footer/f-markdown-footer.component.d.ts +29 -0
  274. package/lib/f-page/f-markdown-footer/index.d.ts +4 -0
  275. package/lib/f-page/f-page.component.d.ts +5 -0
  276. package/lib/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.d.ts +7 -0
  277. package/lib/f-page/f-table-of-content/f-table-of-content-items/index.d.ts +1 -0
  278. package/lib/f-page/f-table-of-content/f-table-of-content.component.d.ts +28 -0
  279. package/lib/f-page/f-table-of-content/index.d.ts +2 -0
  280. package/lib/f-page/index.d.ts +4 -0
  281. package/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.d.ts +15 -0
  282. package/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.d.ts +5 -0
  283. package/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/index.d.ts +2 -0
  284. package/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.d.ts +5 -0
  285. package/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.d.ts +5 -0
  286. package/lib/f-scrollable-container/domain/get-absolute-top-to-container/index.d.ts +2 -0
  287. package/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.d.ts +11 -0
  288. package/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.d.ts +11 -0
  289. package/lib/f-scrollable-container/domain/get-table-of-content-data/index.d.ts +2 -0
  290. package/lib/f-scrollable-container/domain/i-table-of-content-item.d.ts +7 -0
  291. package/lib/f-scrollable-container/domain/index.d.ts +6 -0
  292. package/lib/f-scrollable-container/domain/scroll-to-element-in-container.d.ts +12 -0
  293. package/lib/f-scrollable-container/domain/table-of-content-data.d.ts +6 -0
  294. package/lib/f-scrollable-container/f-scrollable-container.component.d.ts +13 -0
  295. package/lib/f-scrollable-container/f-scrollable.service.d.ts +25 -0
  296. package/lib/f-scrollable-container/index.d.ts +2 -0
  297. package/lib/index.d.ts +6 -0
  298. package/package.json +49 -0
  299. package/public-api.d.ts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foblex-m-render.mjs","sources":["../../../projects/m-render/src/lib/common-services/analytics/f-accept-cookies-key.ts","../../../projects/m-render/src/lib/common-services/analytics/set-cookie-consent.ts","../../../projects/m-render/src/lib/common-services/analytics/f-analytics.service.ts","../../../projects/m-render/src/lib/common-services/json-ld/f-json-ld.service.ts","../../../projects/m-render/src/lib/common-services/f-head-tag.service.ts","../../../projects/m-render/src/lib/domain/features/get-version-handler/get-version.request.ts","../../../projects/m-render/src/lib/domain/features/get-version-handler/get-version.handler.ts","../../../projects/m-render/src/lib/domain/features/handle-navigation-links/handle-navigation-links.handler.ts","../../../projects/m-render/src/lib/domain/features/handle-navigation-links/handle-navigation-links.request.ts","../../../projects/m-render/src/lib/domain/f-environment.service.ts","../../../projects/m-render/src/lib/domain/f-meta.service.ts","../../../projects/m-render/src/lib/domain/f-popover.service.ts","../../../projects/m-render/src/lib/domain/providers.ts","../../../projects/m-render/src/lib/domain/router.ts","../../../projects/m-render/src/lib/f-documentation/f-badge/f-badge.component.ts","../../../projects/m-render/src/lib/f-documentation/f-badge/f-badge.component.html","../../../projects/m-render/src/lib/f-documentation/f-checkbox/f-checkbox.component.ts","../../../projects/m-render/src/lib/f-documentation/f-checkbox/f-checkbox.component.html","../../../projects/m-render/src/lib/f-documentation/f-cookie-popup/f-cookie-popup.component.ts","../../../projects/m-render/src/lib/f-documentation/f-cookie-popup/f-cookie-popup.component.html","../../../projects/m-render/src/lib/f-documentation/i-documentation-component.ts","../../../projects/m-render/src/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.ts","../../../projects/m-render/src/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.html","../../../projects/m-render/src/lib/f-documentation/f-version/f-version.component.ts","../../../projects/m-render/src/lib/f-documentation/f-version/f-version.component.html","../../../projects/m-render/src/lib/f-documentation/f-social-links/f-social-links.component.ts","../../../projects/m-render/src/lib/f-documentation/f-social-links/f-social-links.component.html","../../../projects/m-render/src/lib/domain/f-state.service.ts","../../../projects/m-render/src/lib/f-documentation/f-theme-button/f-theme-button.component.ts","../../../projects/m-render/src/lib/f-documentation/f-theme-button/f-theme-button.component.html","../../../projects/m-render/src/lib/f-documentation/f-header-menu/f-header-menu.component.ts","../../../projects/m-render/src/lib/f-documentation/f-header-menu/f-header-menu.component.html","../../../projects/m-render/src/lib/f-documentation/f-header/f-header.component.ts","../../../projects/m-render/src/lib/f-documentation/f-header/f-header.component.html","../../../projects/m-render/src/lib/f-documentation/f-preview/f-preview.component.ts","../../../projects/m-render/src/lib/f-documentation/f-preview/f-preview.component.html","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-group/f-navigation-group.component.ts","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-group/f-navigation-group.component.html","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-header/f-navigation-header.component.ts","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-header/f-navigation-header.component.html","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-item/f-navigation-item.component.ts","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-item/f-navigation-item.component.html","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-panel.component.ts","../../../projects/m-render/src/lib/f-navigation-panel/f-navigation-panel.component.html","../../../projects/m-render/src/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.ts","../../../projects/m-render/src/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.ts","../../../projects/m-render/src/lib/f-scrollable-container/domain/table-of-content-data.ts","../../../projects/m-render/src/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.ts","../../../projects/m-render/src/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.ts","../../../projects/m-render/src/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.ts","../../../projects/m-render/src/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.ts","../../../projects/m-render/src/lib/f-scrollable-container/domain/scroll-to-element-in-container.ts","../../../projects/m-render/src/lib/f-scrollable-container/f-scrollable.service.ts","../../../projects/m-render/src/lib/f-scrollable-container/f-scrollable-container.component.ts","../../../projects/m-render/src/lib/f-scrollable-container/f-scrollable-container.component.html","../../../projects/m-render/src/lib/f-documentation/f-documentation.component.ts","../../../projects/m-render/src/lib/f-documentation/f-documentation.component.html","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/copy-to-clipboard.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/highlight/change-code-focused-syntax.pre-processor.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/highlight/modify-punctuation-highlight.post-processor.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/highlight/mark-code-focused-blocks.post-processor.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/highlight/highlight.service.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/parse-markdown/e-markdown-container-type.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-alerts.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/utils/get-content.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.ts","../../../projects/m-render/src/lib/f-page/f-markdown/domain/markdown/markdown.service.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.response.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.request.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.html","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.html","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.html","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.html","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.html","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-markdown-footer.component.ts","../../../projects/m-render/src/lib/f-page/f-markdown-footer/f-markdown-footer.component.html","../../../projects/m-render/src/lib/f-page/f-markdown/f-markdown-renderer.component.ts","../../../projects/m-render/src/lib/f-page/f-markdown/f-markdown-renderer.component.html","../../../projects/m-render/src/lib/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.ts","../../../projects/m-render/src/lib/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.html","../../../projects/m-render/src/lib/f-page/f-table-of-content/f-table-of-content.component.ts","../../../projects/m-render/src/lib/f-page/f-table-of-content/f-table-of-content.component.html","../../../projects/m-render/src/lib/f-page/f-page.component.ts","../../../projects/m-render/src/lib/f-page/f-page.component.html","../../../projects/m-render/src/foblex-m-render.ts"],"sourcesContent":["export const F_ACCEPT_COOKIES_KEY = 'm-render-accepts-cookies';\n","declare global {\n interface Window {\n gtag: (...args: any[]) => void;\n }\n}\n\nexport const setCookieConsent = (state: 'denied' | 'granted'): void => {\n try {\n if (window.gtag) {\n const consentOptions = {\n ad_user_data: state,\n ad_personalization: state,\n ad_storage: state,\n analytics_storage: state,\n };\n\n if (state === 'denied') {\n window.gtag('consent', 'default', {\n ...consentOptions,\n wait_for_update: 500,\n });\n } else if (state === 'granted') {\n window.gtag('consent', 'update', {\n ...consentOptions,\n });\n }\n }\n } catch {\n if (state === 'denied') {\n console.error('Unable to set default cookie consent.');\n } else if (state === 'granted') {\n console.error('Unable to grant cookie consent.');\n }\n }\n};\n","import { inject, Injectable } from '@angular/core';\nimport { F_LOCAL_STORAGE } from '@foblex/platform';\nimport { setCookieConsent } from './set-cookie-consent';\nimport { F_ACCEPT_COOKIES_KEY } from './f-accept-cookies-key';\nimport { IWindowWithAnalytics } from './i-window-with-analytics';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({ providedIn: 'root' })\nexport class FAnalyticsService {\n\n private readonly fLocalStorage = inject(F_LOCAL_STORAGE);\n\n private readonly document = inject(DOCUMENT);\n\n public initialize(analyticsId: string): void {\n this.installGlobalSiteTag(analyticsId);\n }\n\n private installGlobalSiteTag(analyticsId: string) {\n const window = this.document.defaultView as unknown as IWindowWithAnalytics;\n\n window.dataLayer = window.dataLayer || [];\n window.gtag = function () {\n window.dataLayer?.push(arguments);\n };\n\n if (this.fLocalStorage) {\n if (this.fLocalStorage.getItem(F_ACCEPT_COOKIES_KEY) === 'true') {\n setCookieConsent('granted');\n } else {\n setCookieConsent('denied');\n }\n } else {\n setCookieConsent('denied');\n }\n\n window.gtag('js', new Date());\n\n window.gtag('config', analyticsId);\n\n if (this.document.querySelector('#gtag-script') === null) {\n this.document.head.appendChild(this.getGtmScript(analyticsId));\n }\n }\n\n private getGtmScript(analyticsId: string): HTMLScriptElement {\n const gtmScript = this.document.createElement('script');\n gtmScript.async = true;\n gtmScript.src = `https://www.googletagmanager.com/gtag/js?id=${ analyticsId }`;\n gtmScript.id = 'gtag-script';\n return gtmScript;\n }\n}\n","import { DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { IJsonLD } from './i-json-ld';\n\n@Injectable({ providedIn: 'root' })\nexport class FJsonLdService {\n\n private _dom: DomAdapter;\n\n constructor(@Inject(DOCUMENT) private _document: any) {\n this._dom = getDOM();\n }\n\n public update(data: IJsonLD): void {\n this.cleanup();\n const script = this.createScript();\n script.type = 'application/ld+json';\n script.text = JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"WebSite\",\n \"name\": data.name,\n \"url\": data.url,\n \"description\": data.description,\n \"creator\": {\n \"@type\": \"Organization\",\n \"name\": data.creator.name,\n \"url\": data.creator.url,\n \"logo\": data.creator.logo,\n \"sameAs\": data.creator.sameAs\n },\n \"mainEntityOfPage\": {\n \"@type\": \"WebPage\",\n \"@id\": data.mainEntityOfPage.id\n }\n });\n }\n\n private cleanup(): void {\n this._document.querySelectorAll(`script[type=\"application/ld+json\"]`).forEach((x: any) => x.remove());\n }\n\n private createScript(): HTMLScriptElement {\n const element = this._dom.createElement('script') as HTMLScriptElement;\n const head = this._document.getElementsByTagName('head')[ 0 ];\n head.appendChild(element);\n return element;\n }\n}\n\n","import { DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class FHeadTagService {\n\n private _dom: DomAdapter;\n\n constructor(@Inject(DOCUMENT) private _document: any) {\n this._dom = getDOM();\n }\n\n public setTitle(title: string): void {\n this._document.title = title || '';\n }\n\n public setDescription(description: string): void {\n const meta: HTMLMetaElement = this.getDescription() || this.createElement<HTMLMetaElement>('meta');\n meta.setAttribute('name', 'description');\n meta.setAttribute('content', description);\n }\n\n private getDescription(): HTMLMetaElement | null {\n return this._document.querySelector(`meta[name=\"description\"]`) || null;\n }\n\n public setCanonical(url: string): void {\n const link: HTMLLinkElement = this.getCanonical() || this.createElement<HTMLLinkElement>('link');\n link.setAttribute('rel', 'canonical');\n link.setAttribute('href', url);\n }\n\n private getCanonical(): HTMLLinkElement | null {\n return this._document.querySelector(`link[rel=\"canonical\"]`) || null;\n }\n\n public updateTag(tag: IMetaTag): void {\n const meta = this.getMetaTag(tag) || this.createElement<HTMLMetaElement>('meta');\n meta.setAttribute('property', tag.property);\n meta.setAttribute('content', tag.content);\n }\n\n private getMetaTag(tag: IMetaTag): HTMLMetaElement | null {\n return this._document.querySelector(`meta[property=\"${ tag.property }\"]`) || null;\n }\n\n private createElement<TElement>(tag: string): TElement {\n const element = this._dom.createElement(tag) as TElement;\n const head = this._document.getElementsByTagName('head')[ 0 ];\n head.appendChild(element);\n return element;\n }\n}\n\nexport interface IMetaTag {\n\n property: string;\n\n content: string;\n}\n","import { IDocsVersion } from '../../i-docs-version';\n\nexport class GetVersionRequest {\n\n constructor(\n public readonly version: IDocsVersion | undefined\n ) {\n }\n}\n","import { GetVersionRequest } from './get-version.request';\nimport { IHandler } from '@foblex/mediator';\nimport { map, Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport { IDocsVersion } from '../../i-docs-version';\n\nexport class GetVersionHandler implements IHandler<GetVersionRequest, Observable<string | undefined>> {\n\n constructor(\n private http: HttpClient,\n ) {\n }\n\n public handle(request: GetVersionRequest): Observable<string | undefined> {\n return this.getLocalVersion(request.version) || this.getNpmVersion(request.version);\n }\n\n private getLocalVersion(version: IDocsVersion | undefined): Observable<string | undefined> | undefined {\n return !!version?.value ? of(version?.value) : undefined;\n }\n\n private getNpmPackage(version: IDocsVersion | undefined): string | undefined {\n return version?.npmPackage;\n }\n\n private getNpmVersion(version: IDocsVersion | undefined): Observable<string | undefined> {\n const packageName = this.getNpmPackage(version);\n if (!packageName) {\n return of(undefined);\n }\n\n return this.http.get<{ 'dist-tags': { latest: string } }>(this.getNpmRegistry(packageName)).pipe(\n map((response) => response[ 'dist-tags' ]?.latest),\n catchError(() => of(undefined))\n );\n }\n\n private getNpmRegistry(name: string): string {\n return `https://registry.npmjs.org/${ encodeURIComponent(name) }`\n }\n}\n","import { IHandler } from '@foblex/mediator';\nimport { HandleNavigationLinksRequest } from './handle-navigation-links.request';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BrowserService } from '@foblex/platform';\n\n@Injectable()\nexport class HandleNavigationLinksHandler implements IHandler<HandleNavigationLinksRequest, void> {\n\n constructor(\n private router: Router,\n private fBrowser: BrowserService\n ) {\n }\n\n public handle(request: HandleNavigationLinksRequest): void {\n const target = request.event.target as HTMLElement;\n\n if (this.isAnchorTag(target) && this.hasHref(target)) {\n const href = target.getAttribute('href')!;\n request.event.preventDefault();\n if (!this.isExternalLink(href)) {\n this.navigateInternalLink(href);\n } else {\n this.openExternalLink(href);\n }\n }\n }\n\n private isAnchorTag(element: HTMLElement): boolean {\n return element.tagName === 'A';\n }\n\n private hasHref(element: HTMLElement): boolean {\n return element.hasAttribute('href');\n }\n\n private isExternalLink(href: string): boolean {\n return href.startsWith('www') || href.startsWith('http');\n }\n\n private navigateInternalLink(href: string): void {\n if(href.startsWith('/')) {\n href = href.substring(1);\n }\n this.router.navigate([href]).then();\n }\n\n private replaceAfterLastSlash(input: string, replacement: string): string {\n const lastSlashIndex = input.lastIndexOf('/');\n return lastSlashIndex !== -1 ? input.substring(0, lastSlashIndex + 1) + replacement : input;\n }\n\n private openExternalLink(href: string): void {\n this.fBrowser.window.open(href, '_blank');\n }\n}\n","export class HandleNavigationLinksRequest {\n constructor(\n public event: MouseEvent\n ) {\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport {\n F_ENVIRONMENT,\n GetVersionHandler,\n GetVersionRequest,\n IDocsComponent,\n IDocsEnvironment, IDocsFooterNavigation, IDocsHeaderNavigationItem,\n IDocsSocialLink, IDocsTableOfContent\n} from './index';\nimport { INavigationGroup } from '../f-navigation-panel';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable()\nexport class FEnvironmentService {\n\n constructor(\n @Optional() @Inject(F_ENVIRONMENT) private environment: IDocsEnvironment,\n private http: HttpClient\n ) {\n }\n\n public getMarkdownUrl(markdown: string): string {\n if (!markdown || !this.isMarkdownExist(markdown)) {\n return this.environment.notFoundMD;\n }\n let url = this.environment.docsDir + markdown;\n\n url = url.replace(/(\\/en\\/guides)+/g, '/en/guides');\n url = url.replace(/(\\/en\\/examples)+/g, '/en/examples');\n\n if (!url.endsWith('.md')) {\n url += '.md';\n }\n return url;\n }\n\n private isMarkdownExist(id: string): boolean {\n return !!this.environment.navigation.find((x) => x.items.some((i) => i.link === id));\n }\n\n public getLogo(): string {\n return this.environment.logo;\n }\n\n public getTitle(): string {\n return this.environment.title;\n }\n\n public getHeaderNavigation(): IDocsHeaderNavigationItem[] {\n return this.environment.headerNavigation || [];\n }\n\n public getVersion(): Observable<string | undefined> {\n return new GetVersionHandler(this.http).handle(\n new GetVersionRequest(this.environment.version)\n );\n }\n\n public getComponents(): IDocsComponent[] {\n return this.environment.components || [];\n }\n\n public getNavigation(): INavigationGroup[] {\n return this.environment.navigation;\n }\n\n public getFooterNavigation(): IDocsFooterNavigation {\n return this.environment.footerNavigation || {};\n }\n\n public getSocialLinks(): IDocsSocialLink[] {\n return this.environment.socialLinks || [];\n }\n\n public getToC(): IDocsTableOfContent {\n return this.environment.toC || {\n title: 'In this article',\n range: { start: 2, end: 6 },\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, startWith, Subscription } from 'rxjs';\nimport { BrowserService } from '@foblex/platform';\nimport { INavigationGroup, INavigationItem } from '../f-navigation-panel';\nimport { IMetaData } from './i-meta-data';\nimport { IDocsEnvironment } from './i-docs-environment';\nimport { FHeadTagService } from '../common-services/f-head-tag.service';\n\n@Injectable({ providedIn: 'root' })\nexport class FMetaService {\n\n private navigation: INavigationGroup[] = [];\n\n constructor(\n private router: Router,\n private fHeadTag: FHeadTagService,\n private fBrowser: BrowserService\n ) {\n }\n\n public subscribeOnRouteChanges(defaultData: IMetaData, environments: IDocsEnvironment[]): Subscription {\n this.navigation = environments.reduce((result: INavigationGroup[], e) => result.concat(...e.navigation), []);\n return this.router.events.pipe(\n startWith(new NavigationEnd(1, '', '')),\n filter(event => event instanceof NavigationEnd),\n ).subscribe((x) => {\n let data = {\n ...defaultData,\n };\n const item = this.findDocItemByUrl(this.findDocGroupByUrl(this.router.url), this.router.url);\n if (item) {\n data.title = `${ item.text } - ${ defaultData.app_name }`;\n data.url = this.fBrowser.window.location.href;\n data.description = item.description || defaultData.description;\n data.image = item.image || defaultData.image;\n data.image_width = item.image_width || defaultData.image_width;\n data.image_height = item.image_height || defaultData.image_height;\n data.image_type = item.image_type || defaultData.image_type;\n }\n if (!data.url) {\n data.url = this.fBrowser.window.location.origin + this.router.url;\n }\n if (!data.image.startsWith('http') && !data.image.startsWith('www')) {\n if (data.image.startsWith('.')) {\n data.image = this.fBrowser.window.location.origin + data.image.slice(1);\n } else {\n data.image = this.fBrowser.window.location.origin + data.image;\n }\n }\n if (!data.url.endsWith('/')) {\n data.url += '/';\n }\n\n this.updateMetaTags(data);\n });\n }\n\n private findDocGroupByUrl(url: string): INavigationGroup | undefined {\n return this.navigation.find((g: INavigationGroup) => g.items.find((i: INavigationItem) => url.endsWith(i.link)));\n }\n\n private findDocItemByUrl(group: INavigationGroup | undefined, url: string): INavigationItem | undefined {\n return (group?.items || []).find((i: INavigationItem) => url.endsWith(i.link));\n }\n\n private updateMetaTags(item: IMetaData): void {\n this.fHeadTag.setTitle(item.title);\n this.fHeadTag.setDescription(item.description);\n this.fHeadTag.setCanonical(item.url);\n\n this.fHeadTag.updateTag({ property: 'og:url', content: item.url });\n this.fHeadTag.updateTag({ property: 'og:type', content: item.type });\n this.fHeadTag.updateTag({ property: 'og:title', content: item.title });\n this.fHeadTag.updateTag({ property: 'og:site_name', content: item.title });\n this.fHeadTag.updateTag({ property: 'og:locale', content: item.locale });\n this.fHeadTag.updateTag({ property: 'og:description', content: item.description });\n this.fHeadTag.updateTag({ property: 'og:image', content: item.image });\n this.fHeadTag.updateTag({ property: 'og:image:secure_url', content: item.image });\n this.fHeadTag.updateTag({ property: 'og:image:type', content: item.image_type });\n this.fHeadTag.updateTag({ property: 'og:image:width', content: item.image_width.toString() });\n this.fHeadTag.updateTag({ property: 'og:image:height', content: item.image_height.toString() });\n }\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class FPopoverService {\n\n private popover = new BehaviorSubject<string | null>(null);\n\n public get popover$(): Observable<string | null> {\n return this.popover.asObservable();\n }\n\n public show(message: string): void {\n this.popover.next(message);\n setTimeout(() => this.popover.next(null), 2000);\n }\n\n public dispose(): void {\n this.popover.next(null);\n this.popover.complete();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { IDocsEnvironment } from './i-docs-environment';\n\nexport const F_ENVIRONMENT: InjectionToken<IDocsEnvironment>\n = new InjectionToken<IDocsEnvironment>('F_ENVIRONMENT');\n","import { Routes } from '@angular/router';\n\nexport const F_DOCUMENTATION_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('../f-documentation').then(m => m.FDocumentationComponent),\n children: [\n {\n path: '**',\n loadComponent: () => import('../f-page').then(m => m.FPageComponent)\n }\n ]\n }\n];\n","import {\n ChangeDetectionStrategy,\n Component, Input\n} from '@angular/core';\n\n@Component({\n selector: 'span[f-badge]',\n templateUrl: './f-badge.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'f-badge',\n '[class]': 'type',\n }\n})\nexport class FBadgeComponent {\n\n @Input()\n public text: string = '';\n\n @Input()\n public type: 'success' | 'danger' | 'warning' | 'info' | 'tip' = 'tip';\n}\n","{{ text }}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild\n} from '@angular/core';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'f-checkbox',\n templateUrl: './f-checkbox.component.html',\n styleUrls: [ './f-checkbox.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.f-checkbox-checked]': 'checked',\n }\n})\nexport class FCheckboxComponent {\n\n @Input()\n public id: string = `f-checkbox-${ uniqueId++ }`;\n\n @Output()\n public change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('input')\n private inputElement?: ElementRef<HTMLInputElement>;\n\n @ViewChild('label')\n public labelElement?: ElementRef<HTMLLabelElement>;\n\n @Input({ transform: booleanAttribute })\n public get checked(): boolean {\n return this.isChecked;\n }\n\n public set checked(value: boolean) {\n if (value != this.checked) {\n this.isChecked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private isChecked: boolean = false;\n\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n }\n\n public onInputClick(): void {\n this.handleInputClick();\n }\n\n public onTouchTargetClick(): void {\n this.handleInputClick();\n this.inputElement?.nativeElement.focus();\n }\n\n private handleInputClick(): void {\n this.isChecked = !this.isChecked;\n this.emitChangeEvent();\n }\n\n private emitChangeEvent(): void {\n this.change.emit(this.isChecked);\n if (this.inputElement) {\n this.inputElement.nativeElement.checked = this.isChecked;\n }\n }\n\n public onInteractionEvent(event: Event): void {\n event.stopPropagation();\n }\n\n @HostListener('click', [ '$event' ])\n public preventBubblingFromLabel(event: MouseEvent): void {\n if (!!event.target && this.labelElement?.nativeElement.contains(event.target as HTMLElement)) {\n event.stopPropagation();\n }\n }\n}\n","<input #input\n [id]=\"id\"\n type=\"checkbox\"\n [checked]=\"checked\"\n (click)=\"onInputClick()\"\n (change)=\"onInteractionEvent($event)\"/>\n<div class=\"f-checkbox-container\" (click)=\"onTouchTargetClick()\">\n <svg class=\"f-checkbox-checkmark\" focusable=\"false\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path class=\"f-checkbox-checkmark-path\" fill=\"none\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\n </svg>\n</div>\n<label [for]=\"id\" #label>\n <ng-content></ng-content>\n</label>\n","import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { F_LOCAL_STORAGE } from '@foblex/platform';\nimport { setCookieConsent } from '../../common-services';\nimport { F_ACCEPT_COOKIES_KEY } from '../../common-services';\n\ndeclare const window: Window & typeof globalThis & { gtag?: Function };\n\n@Component({\n selector: 'f-cookie-popup',\n standalone: true,\n templateUrl: './f-cookie-popup.component.html',\n styleUrls: [ './f-cookie-popup.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CookiePopup {\n\n private readonly fLocalStorage = inject(F_LOCAL_STORAGE);\n\n public hasAccepted = signal<boolean>(false);\n\n constructor() {\n try {\n this.hasAccepted.set(this.fLocalStorage?.getItem(F_ACCEPT_COOKIES_KEY) === 'true');\n } catch {\n this.hasAccepted.set(false);\n }\n }\n\n protected accept(): void {\n try {\n this.fLocalStorage?.setItem(F_ACCEPT_COOKIES_KEY, 'true');\n } catch {\n }\n\n this.hasAccepted.set(true);\n setCookieConsent('granted');\n }\n}\n","@if (!hasAccepted()) {\n <div class=\"docs-cookies-popup docs-invert-mode\">\n <p>This site uses cookies from Google to deliver its services and to analyze traffic.</p>\n\n <div>\n <a href=\"https://policies.google.com/technologies/cookies\" target=\"_blank\" rel=\"noopener\">\n <button class=\"f-button\" [attr.text]=\"'Learn more'\" aria-label=\"Learn More\">\n Learn more\n </button>\n </a>\n <button\n (click)=\"accept()\"\n class=\"f-button\"\n [attr.text]=\"'Ok, Got it'\"\n aria-label=\"Ok, Got it\">\n Ok, Got it\n </button>\n </div>\n </div>\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const F_DOCUMENTATION_COMPONENT: InjectionToken<IDocumentationComponent> = new InjectionToken<IDocumentationComponent>('F_DOCUMENTATION_COMPONENT');\n\nexport interface IDocumentationComponent {\n\n onToggleNavigation(value: boolean): void;\n}\n","import {\n ChangeDetectionStrategy,\n Component, HostListener, Inject\n} from '@angular/core';\nimport { F_DOCUMENTATION_COMPONENT, IDocumentationComponent } from '../i-documentation-component';\n\n@Component({\n selector: 'button[f-hamburger-button]',\n templateUrl: './f-hamburger-button.component.html',\n styleUrls: [ './f-hamburger-button.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FHamburgerButtonComponent {\n\n constructor(\n @Inject(F_DOCUMENTATION_COMPONENT) private fDocumentation: IDocumentationComponent\n ) {\n }\n\n @HostListener('click')\n public onShowNavigation(): void {\n this.fDocumentation.onToggleNavigation(true);\n }\n}\n","<span class=\"f-icon hamburger\"></span>\n\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FEnvironmentService } from '../../domain';\nimport { Observable } from 'rxjs';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'f-version',\n templateUrl: './f-version.component.html',\n styleUrls: [ './f-version.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe\n ]\n})\nexport class FVersionComponent {\n\n protected version$: Observable<string | undefined>;\n\n constructor(\n private fEnvironmentService: FEnvironmentService\n ) {\n this.version$ = this.fEnvironmentService.getVersion();\n }\n}\n","@if (version$ | async;as version) {\n <span class=\"version\">v{{ version }}</span>\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\nimport { FEnvironmentService, IDocsSocialLink } from '../../domain';\n\n@Component({\n selector: 'f-social-links',\n templateUrl: './f-social-links.component.html',\n styleUrls: [ './f-social-links.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FSocialLinksComponent {\n\n public get links(): IDocsSocialLink[] {\n return this.fEnvironmentService.getSocialLinks();\n }\n\n constructor(\n private fEnvironmentService: FEnvironmentService\n ) {\n }\n}\n","@for (link of links; track link.link) {\n <a href=\"{{ link.link }}\" class=\"header-link\">\n <div class=\"f-icon {{ link.icon }}\"></div>\n </a>\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { BrowserService } from '@foblex/platform';\n\n@Injectable({ providedIn: 'root' })\nexport class FStateService {\n\n private theme: Subject<void> = new Subject<void>();\n\n constructor(\n private fBrowser: BrowserService\n ) {\n }\n\n public get theme$(): Observable<void> {\n return this.theme.asObservable();\n }\n\n public updateTheme(): void {\n this.theme.next();\n }\n\n public getPreferredTheme(): string {\n return this.fBrowser.localStorage.getItem('preferred-theme')\n || (this.fBrowser.window.isMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n OnInit,\n Renderer2\n} from '@angular/core';\nimport { BrowserService } from '@foblex/platform';\nimport { FStateService } from '../../domain/f-state.service';\n\n@Component({\n selector: 'button[f-theme-button]',\n templateUrl: './f-theme-button.component.html',\n styleUrls: [ './f-theme-button.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FThemeButtonComponent implements OnInit {\n\n constructor(\n private renderer: Renderer2,\n private fState: FStateService,\n private fBrowser: BrowserService\n ) {\n }\n\n public ngOnInit(): void {\n if (this.fState.getPreferredTheme() === 'dark' && !this.isDocumentContainsDarkTheme()) {\n this.renderer.addClass(this.fBrowser.document.documentElement, 'dark');\n this.fBrowser.localStorage.setItem('preferred-theme', 'dark');\n }\n }\n\n private isDocumentContainsDarkTheme(): boolean {\n return this.fBrowser.document.documentElement.classList.contains('dark');\n }\n\n @HostListener('click')\n protected onClick(): void {\n if (this.fState.getPreferredTheme() === 'light' && !this.isDocumentContainsDarkTheme()) {\n this.renderer.addClass(this.fBrowser.document.documentElement, 'dark');\n this.fBrowser.localStorage.setItem('preferred-theme', 'dark');\n } else {\n this.renderer.removeClass(this.fBrowser.document.documentElement, 'dark');\n this.fBrowser.localStorage.setItem('preferred-theme', 'light');\n }\n this.fState.updateTheme();\n }\n}\n","<div class=\"f-icon-container\">\n <div class=\"f-icon moon\"></div>\n <div class=\"f-icon sun\"></div>\n</div>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { FEnvironmentService, IDocsHeaderNavigationItem } from '../../domain';\nimport { Router, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'f-header-menu',\n templateUrl: './f-header-menu.component.html',\n styleUrls: [ './f-header-menu.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink\n ]\n})\nexport class FHeaderMenuComponent implements OnInit {\n\n protected navigation: IDocsHeaderNavigationItemViewModel[] = [];\n\n constructor(\n private fEnvironmentService: FEnvironmentService,\n private router: Router\n ) {\n }\n\n public ngOnInit(): void {\n this.navigation = this.fEnvironmentService.getHeaderNavigation().map((x) => {\n return {\n ...x,\n isActive: this.router.url.startsWith(x.link)\n };\n });\n }\n}\n\ntype IDocsHeaderNavigationItemViewModel = IDocsHeaderNavigationItem & { isActive: boolean };\n","@for (item of navigation; track item.link) {\n <a class=\"header-link\" [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n}\n\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\nimport { NgOptimizedImage } from '@angular/common';\nimport { FHamburgerButtonComponent } from '../f-hamburger-button/f-hamburger-button.component';\nimport { FVersionComponent } from '../f-version/f-version.component';\nimport { FSocialLinksComponent } from '../f-social-links/f-social-links.component';\nimport { FEnvironmentService } from '../../domain';\nimport { FThemeButtonComponent } from '../f-theme-button/f-theme-button.component';\nimport { FHeaderMenuComponent } from '../f-header-menu/f-header-menu.component';\n\n@Component({\n selector: 'f-header',\n templateUrl: './f-header.component.html',\n styleUrls: [ './f-header.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgOptimizedImage,\n FHamburgerButtonComponent,\n FVersionComponent,\n FSocialLinksComponent,\n FThemeButtonComponent,\n FHeaderMenuComponent\n ]\n})\nexport class FHeaderComponent {\n\n protected title: string = '';\n\n constructor(\n private fEnvironmentService: FEnvironmentService\n ) {\n this.title = this.fEnvironmentService.getTitle();\n }\n}\n","<button f-hamburger-button></button>\n<div class=\"title text-ellipsis\">{{ title }}</div>\n<div class=\"flex-space\"></div>\n<f-header-menu></f-header-menu>\n<f-version></f-version>\n<div class=\"divider\"></div>\n<button f-theme-button></button>\n<div class=\"divider\"></div>\n<f-social-links></f-social-links>\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\nimport { startWith, Subscription } from 'rxjs';\nimport { FStateService } from '../../domain/f-state.service';\nimport { Router } from '@angular/router';\nimport { INavigationGroup, INavigationItem } from '../../f-navigation-panel';\nimport { FEnvironmentService } from '../../domain';\n\n@Component({\n selector: 'a[f-preview]',\n templateUrl: './f-preview.component.html',\n styleUrls: [ './f-preview.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.href]': 'url',\n '[attr.title]': 'viewModel?.text',\n }\n})\nexport class FPreviewComponent implements OnDestroy {\n\n private subscriptions$: Subscription = new Subscription();\n\n public item: string | undefined;\n\n public group: string | undefined;\n\n protected viewModel: INavigationItem | undefined;\n\n protected src: string | undefined;\n\n protected url: string | undefined;\n\n constructor(\n private fEnvironment: FEnvironmentService,\n private fState: FStateService,\n private router: Router,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n }\n\n public initialize(): void {\n this.viewModel = this.getNavigationItem(this.getNavigationGroup()!);\n this.url = this.normalizeLink(this.viewModel!.link, this.getUrlPrefix());\n this.subscriptions$.add(this.fState.theme$.pipe(startWith(null)).subscribe(() => this.updateTheme()));\n }\n\n private getNavigationGroup(): INavigationGroup | undefined {\n return this.fEnvironment.getNavigation().find((x) => x.text === this.group);\n }\n\n private getNavigationItem(group: INavigationGroup): INavigationItem | undefined {\n return group.items.find((x) => x.link === this.item);\n }\n\n private updateTheme(): void {\n this.src = this.fState.getPreferredTheme() === 'dark' ? this.viewModel?.image_dark : this.viewModel?.image;\n if (!this.src) {\n this.src = this.viewModel?.image;\n }\n this.changeDetectorRef.markForCheck();\n }\n\n private normalizeLink(link: string, prefix: string): string {\n if (!this.isExternalLink(link)) {\n return link.startsWith('/') ? `${ prefix }${ link }` : `${ prefix }/${ link }`;\n }\n return link;\n }\n\n private getUrlPrefix(): string {\n return this.router.url.substring(0, this.router.url.lastIndexOf('/'));\n }\n\n private isExternalLink(href: string): boolean {\n return href.startsWith('www') || href.startsWith('http');\n }\n\n public ngOnDestroy(): void {\n this.subscriptions$.unsubscribe();\n }\n}\n","@if (viewModel) {\n <img [src]=\"src\" [alt]=\"viewModel.description\" [title]=\"viewModel.text\">\n <div class=\"title\">{{ viewModel.text }}</div>\n <div class=\"description\">{{ viewModel.description }}</div>\n}\n\n\n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'f-navigation-group',\n templateUrl: './f-navigation-group.component.html',\n styleUrls: [ './f-navigation-group.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.collapsed]': 'isCollapsed',\n '[class.no-title]': '!title'\n }\n})\nexport class FNavigationGroupComponent {\n\n @Input()\n public title: string | undefined;\n\n public isCollapsed: boolean = false;\n\n public toggle(): void {\n this.isCollapsed = !this.isCollapsed;\n }\n}\n","@if (title) {\n <header (click)=\"toggle()\">\n <span>{{ title }}</span>\n <div class=\"flex-space\"></div>\n <div class=\"caret\">\n <span class=\"chevron-right caret-icon\"></span>\n </div>\n </header>\n}\n@if (!isCollapsed) {\n <ng-content></ng-content>\n}\n\n\n\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FEnvironmentService } from '../../domain';\nimport { Router, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'a[f-navigation-header]',\n templateUrl: './f-navigation-header.component.html',\n styleUrls: [ './f-navigation-header.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink\n ]\n})\nexport class FNavigationHeaderComponent {\n\n protected title: string = '';\n\n protected image: string = '';\n\n constructor(\n private router: Router,\n private fEnvironmentService: FEnvironmentService\n ) {\n this.title = this.fEnvironmentService.getTitle();\n this.image = this.fEnvironmentService.getLogo();\n }\n\n // @HostListener('click')\n // protected onClick(): void {\n // this.router.navigate(['/']);\n // }\n}\n","<img [src]=\"image\" width=\"24\" height=\"24\" alt=\"logo\" class=\"logo\"/> {{ title }}\n\n\n\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'a[f-navigation-item]',\n templateUrl: './f-navigation-item.component.html',\n styleUrls: [ './f-navigation-item.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FNavigationItemComponent {\n\n}\n","<ng-content></ng-content>\n\n\n\n","import {\n AfterViewInit,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, HostListener, Inject, Injector,\n OnDestroy, OnInit,\n QueryList,\n ViewChildren\n} from '@angular/core';\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\nimport { startWith, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { FNavigationItemComponent } from './f-navigation-item/f-navigation-item.component';\nimport { FNavigationHeaderComponent } from './f-navigation-header/f-navigation-header.component';\nimport { FNavigationGroupComponent } from './f-navigation-group/f-navigation-group.component';\nimport { F_DOCUMENTATION_COMPONENT, FBadgeComponent, IDocumentationComponent } from '../f-documentation';\nimport { INavigationGroup, INavigationItem } from './domain';\nimport { FEnvironmentService, HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../domain';\nimport { deepClone } from '@foblex/utils';\n\n@Component({\n selector: 'f-navigation-panel',\n templateUrl: './f-navigation-panel.component.html',\n styleUrls: [ './f-navigation-panel.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n HandleNavigationLinksHandler\n ],\n imports: [\n FNavigationHeaderComponent,\n FNavigationItemComponent,\n FNavigationGroupComponent,\n RouterLink,\n FBadgeComponent,\n ]\n})\nexport class FNavigationPanelComponent implements OnInit, AfterViewInit, OnDestroy {\n\n private subscription: Subscription = new Subscription();\n\n @ViewChildren(FNavigationItemComponent)\n protected items!: QueryList<FNavigationItemComponent>;\n\n protected value: string | undefined;\n\n protected navigation: INavigationGroup[] = [];\n\n constructor(\n private fEnvironmentService: FEnvironmentService,\n @Inject(F_DOCUMENTATION_COMPONENT) private fDocumentation: IDocumentationComponent,\n private router: Router,\n private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this.navigation = this.fEnvironmentService.getNavigation();\n }\n\n public ngOnInit(): void {\n const currentPath = this.router.url;\n const prefix = currentPath.substring(0, currentPath.lastIndexOf('/'));\n const navigation: INavigationGroup[] = deepClone(this.fEnvironmentService.getNavigation());\n navigation.forEach((group) => {\n group.items.forEach((item) => {\n this.normalizeLink(item, prefix);\n });\n });\n this.navigation = navigation;\n }\n\n private normalizeLink(item: INavigationItem, prefix: string): void {\n if (item.link && !this.isExternalLink(item.link)) {\n item.link = item.link.startsWith('/') ? `${ prefix }${ item.link }` : `${ prefix }/${ item.link }`;\n }\n }\n\n private isExternalLink(href: string): boolean {\n return href.startsWith('www') || href.startsWith('http');\n }\n\n public ngAfterViewInit(): void {\n this.subscription.add(this.subscribeOnRouteChanges());\n }\n\n private subscribeOnRouteChanges(): Subscription {\n return this.router.events.pipe(\n startWith(new NavigationEnd(1, '', '')),\n filter(event => event instanceof NavigationEnd),\n ).subscribe(() => {\n this.highlightLink(this.router.url);\n this.fDocumentation.onToggleNavigation(false);\n this.changeDetectorRef.detectChanges();\n });\n }\n\n private highlightLink(url: string): void {\n this.value = undefined;\n this.navigation.forEach((group) => {\n this.value = group.items.find((x) => {\n return url.endsWith(x.link)\n })?.link || this.value;\n });\n }\n\n @HostListener('click', [ '$event' ])\n public onDocumentClick(event: MouseEvent): void {\n this.injector.get(HandleNavigationLinksHandler).handle(new HandleNavigationLinksRequest(event));\n }\n\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","<a f-navigation-header routerLink></a>\n\n@for (group of navigation; track group) {\n <f-navigation-group [title]=\"group.text\">\n @for (item of group.items; track item.link) {\n <a f-navigation-item [href]=\"item.link\" [class.active]=\"item.link === value\">\n <div class=\"text-ellipsis\">{{ item.text }}</div>\n @if (item.badge) {\n <span f-badge [text]=\"item.badge.text\" [type]=\"item.badge.type\"></span>\n }\n </a>\n }\n </f-navigation-group>\n}\n","import { IHandler } from '@foblex/mediator';\nimport { GetAbsoluteTopToContainerRequest } from './get-absolute-top-to-container.request';\n\nexport class GetAbsoluteTopToContainerHandler implements IHandler<GetAbsoluteTopToContainerRequest, number> {\n\n public handle(request: GetAbsoluteTopToContainerRequest): number {\n let element = request.element;\n let result: number = 0;\n\n while (element !== request.container) {\n if (!element) return NaN;\n result += element.offsetTop;\n element = element.offsetParent as HTMLElement;\n }\n\n return result;\n }\n}\n","export class GetAbsoluteTopToContainerRequest {\n constructor(\n public element: HTMLElement,\n public container: HTMLElement\n ) {\n }\n}\n","import { ITableOfContentItem } from './i-table-of-content-item';\n\nexport class TableOfContentData {\n\n constructor(\n public flat: ITableOfContentItem[],\n public tree: ITableOfContentItem[]\n ) {\n }\n}\n","import { IHandler } from '@foblex/mediator';\nimport { GetTableOfContentDataRequest } from './get-table-of-content-data.request';\nimport { ITableOfContentItem } from '../i-table-of-content-item';\nimport { TableOfContentData } from '../table-of-content-data';\n\nexport class GetTableOfContentDataHandler implements IHandler<GetTableOfContentDataRequest, TableOfContentData> {\n\n public handle(request: GetTableOfContentDataRequest): TableOfContentData {\n const flat: ITableOfContentItem[] = [];\n const tree: ITableOfContentItem[] = [];\n const stack: ITableOfContentItem[] = [];\n\n this.getNavigationSelectors(request.fMarkdownPage, request.tocRange).forEach((element) => {\n const tocItem: ITableOfContentItem = this.createItem(element);\n this.insertItemIntoTree(tocItem, tree, stack);\n flat.push(tocItem);\n });\n\n return new TableOfContentData(flat, tree);\n }\n\n private getNavigationSelectors(fMarkdownPage: HTMLElement, tocRange?: { start: number, end: number }): HTMLElement[] {\n if(!tocRange || tocRange.start < 1 || tocRange.end > 6) {\n tocRange = { start: 1, end: 6 };\n }\n let selectors: string[] = [];\n for(let i = tocRange.start; i <= tocRange.end; i++) {\n selectors.push(`h${i}`);\n }\n return Array.from(fMarkdownPage.querySelectorAll(selectors.join(', ')));\n }\n\n private createItem(element: HTMLElement): ITableOfContentItem {\n element.id = this.createNavigationId(element);\n return {\n hash: `#${ element.id }`,\n title: element.innerHTML,\n element,\n children: []\n };\n }\n\n private createNavigationId(element: HTMLElement): string {\n return element.innerHTML.toLowerCase().replaceAll(' ', '-');\n }\n\n private getLevel(element: HTMLElement): number {\n return parseInt(element.tagName.substring(1));\n }\n\n private insertItemIntoTree(tocItem: ITableOfContentItem, tree: ITableOfContentItem[], stack: ITableOfContentItem[]): void {\n while (stack.length > 0 && this.getLevel(stack[ stack.length - 1 ].element) >= this.getLevel(tocItem.element)) {\n stack.pop();\n }\n\n if (stack.length === 0) {\n tree.push(tocItem);\n } else {\n stack[ stack.length - 1 ].children.push(tocItem);\n }\n\n stack.push(tocItem);\n }\n}\n","export class GetTableOfContentDataRequest {\n\n constructor(\n public fMarkdownPage: HTMLElement,\n public tocRange?: {\n start: number,\n end: number\n }\n ) {\n }\n}\n","import { IHandler } from '@foblex/mediator';\nimport { CalculateHashFromScrollPositionRequest } from './calculate-hash-from-scroll-position.request';\nimport { ITableOfContentItem } from '../i-table-of-content-item';\nimport { GetAbsoluteTopToContainerHandler, GetAbsoluteTopToContainerRequest } from '../get-absolute-top-to-container';\nimport { BrowserService } from '@foblex/platform';\n\ninterface IHasTopItem {\n\n hash: string;\n\n top: number;\n}\n\nexport class CalculateHashFromScrollPositionHandler implements IHandler<CalculateHashFromScrollPositionRequest, string | undefined> {\n\n constructor(\n private scrollableContainer: HTMLElement,\n private fBrowser: BrowserService\n ) {\n }\n\n public handle(request: CalculateHashFromScrollPositionRequest): string | undefined {\n let result: string | undefined;\n const containerScrollTop = this.getContainerScrollTop();\n\n const elementsWithTopPosition = this.calculateElementsTopPositions(request.tocData);\n\n if (elementsWithTopPosition.length) {\n if (this.isScrollAtBottom(containerScrollTop)) {\n result = elementsWithTopPosition[ elementsWithTopPosition.length - 1 ].hash;\n } else {\n result = this.findTargetHashByPosition(containerScrollTop, elementsWithTopPosition);\n }\n }\n return result;\n }\n\n private getContainerScrollTop(): number {\n return this.scrollableContainer.scrollTop + this.getHeaderHeight();\n }\n\n private getHeaderHeight(): number {\n return parseInt(this.fBrowser.window.getComputedStyle(this.fBrowser.document.documentElement).getPropertyValue('--header-height'), 10);\n }\n\n private calculateElementsTopPositions(items: ITableOfContentItem[]): IHasTopItem[] {\n return items.map((x) => {\n return {\n hash: x.hash,\n top: this.getAbsoluteTopToContainer(x.element)\n }\n }).filter((x) => !Number.isNaN(x.top));\n }\n\n private getAbsoluteTopToContainer(element: HTMLElement): number {\n return new GetAbsoluteTopToContainerHandler().handle(\n new GetAbsoluteTopToContainerRequest(element, this.scrollableContainer)\n );\n }\n\n private isScrollAtBottom(containerScrollTop: number): boolean {\n return Math.abs(containerScrollTop - this.getHeaderHeight() + this.scrollableContainer.clientHeight - this.scrollableContainer.scrollHeight) < 1;\n }\n\n private findTargetHashByPosition(containerScrollTop: number, elementsWithTopPosition: IHasTopItem[]): string {\n let result: string = elementsWithTopPosition[ 0 ].hash;\n for (const { hash, top } of elementsWithTopPosition) {\n if (top > containerScrollTop) break;\n result = hash;\n }\n return result;\n }\n}\n","import { ITableOfContentItem } from '../i-table-of-content-item';\n\nexport class CalculateHashFromScrollPositionRequest {\n constructor(\n public tocData: ITableOfContentItem[]\n ) {\n }\n}\n","import { IHandler } from '@foblex/mediator';\n\nexport class ScrollToElementInContainer implements IHandler<string, void> {\n\n constructor(\n private container: HTMLElement\n ) {\n }\n\n public handle(hash: string): void {\n this.container.scrollTo({\n top: this.getScrollTo(this.getScrollToElement(hash)) - 64,\n behavior: 'smooth'\n });\n }\n\n private getScrollToElement(hash: string): HTMLElement {\n const element = this.container.querySelector(hash)! as HTMLElement;\n if (!element) {\n throw new Error(`Element ${ hash } not found`);\n }\n return element;\n }\n\n private getScrollTo(element: HTMLElement): number {\n return this.isFirstElementInContainer(element) ? 0 : this.calculateScrollTo(element);\n }\n\n private isFirstElementInContainer(element: HTMLElement): boolean {\n return element.parentElement!.children[ 0 ] === element;\n }\n\n private calculateScrollTo(element: HTMLElement): number {\n return this.getElementTop(element) - this.getContainerTop() + this.container.scrollTop;\n }\n\n private getElementTop(element: HTMLElement): number {\n return element.getBoundingClientRect().top;\n }\n\n private getContainerTop(): number {\n return this.container.getBoundingClientRect().top;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n GetTableOfContentDataHandler, GetTableOfContentDataRequest,\n ScrollToElementInContainer,\n CalculateHashFromScrollPositionHandler,\n CalculateHashFromScrollPositionRequest, TableOfContentData\n} from './domain';\nimport { debounceTime, fromEvent, map, Observable, Subject, Subscription } from 'rxjs';\nimport { FEnvironmentService } from '../domain';\nimport { BrowserService } from '@foblex/platform';\n\n@Injectable()\nexport class FScrollableService {\n\n private fScrollableContainer!: HTMLElement;\n\n private tocData: TableOfContentData = new TableOfContentData([], []);\n\n private onTocChanged$: Subject<void> = new Subject<void>();\n\n public get onToc$(): Observable<TableOfContentData> {\n return this.onTocChanged$.asObservable().pipe(map(() => this.tocData));\n }\n\n private onScrollSubscription$: Subscription = Subscription.EMPTY;\n\n constructor(\n private fEnvironmentService: FEnvironmentService,\n private fBrowser: BrowserService,\n ) {\n }\n\n public setContainer(fScrollableContainer: HTMLElement): void {\n this.fScrollableContainer = fScrollableContainer;\n this.onScrollSubscription$ = this.subscribeOnScroll();\n }\n\n private subscribeOnScroll(): Subscription {\n return fromEvent(this.fScrollableContainer, 'scroll').pipe(debounceTime(100)).subscribe((event) => {\n this.calculateHashAndActivate();\n });\n }\n\n public scrollTo(hash: string): void {\n if (!this.fScrollableContainer) {\n throw new Error('Scrollable container is not set');\n }\n this.activateHash(hash);\n new ScrollToElementInContainer(this.fScrollableContainer).handle(hash);\n }\n\n public setOnPageNavigation(fMarkdownPage: HTMLElement): void {\n this.tocData = new GetTableOfContentDataHandler().handle(\n new GetTableOfContentDataRequest(fMarkdownPage, this.fEnvironmentService.getToC().range)\n );\n this.calculateHashAndActivate();\n }\n\n private calculateHashAndActivate(): void {\n this.activateHash(this.calculateHashFromScrollPosition());\n }\n\n private calculateHashFromScrollPosition(): string | undefined {\n return new CalculateHashFromScrollPositionHandler(this.fScrollableContainer, this.fBrowser).handle(\n new CalculateHashFromScrollPositionRequest(this.tocData.flat)\n );\n }\n\n private activateHash(hash: string | undefined): void {\n this.tocData.flat.forEach(x => x.isActive = x.hash === hash);\n this.onTocChanged$.next();\n }\n\n public dispose(): void {\n this.onScrollSubscription$.unsubscribe();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, ElementRef, OnDestroy, OnInit\n} from '@angular/core';\nimport { FScrollableService } from './f-scrollable.service';\n\n@Component({\n selector: 'f-scrollable-container',\n templateUrl: './f-scrollable-container.component.html',\n styleUrls: [ './f-scrollable-container.component.scss' ],\n providers: [\n FScrollableService\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FScrollableContainerComponent implements OnInit, OnDestroy {\n\n private get hostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private fScrollableService: FScrollableService\n ) {\n }\n\n public ngOnInit(): void {\n this.fScrollableService.setContainer(this.hostElement);\n }\n\n public ngOnDestroy(): void {\n this.fScrollableService.dispose();\n }\n}\n","<ng-content></ng-content>\n\n\n\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, OnDestroy, OnInit\n} from '@angular/core';\nimport { FNavigationPanelComponent } from '../f-navigation-panel';\nimport { FHeaderComponent } from './f-header/f-header.component';\nimport { FScrollableContainerComponent } from '../f-scrollable-container';\nimport { RouterOutlet } from '@angular/router';\nimport { F_DOCUMENTATION_COMPONENT, IDocumentationComponent } from './i-documentation-component';\nimport { FEnvironmentService, FPopoverService } from '../domain';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'f-documentation',\n templateUrl: './f-documentation.component.html',\n styleUrls: [ './f-documentation.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n FEnvironmentService,\n FPopoverService,\n { provide: F_DOCUMENTATION_COMPONENT, useExisting: FDocumentationComponent }\n ],\n imports: [\n FNavigationPanelComponent,\n FHeaderComponent,\n FScrollableContainerComponent,\n RouterOutlet\n ]\n})\nexport class FDocumentationComponent implements IDocumentationComponent, OnInit, OnDestroy {\n\n private subscriptions$: Subscription = new Subscription();\n\n protected isNavigationVisible: boolean = false;\n\n protected popoverMessage: string | null = null;\n\n constructor(\n private fPopoverService: FPopoverService,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit() {\n this.subscriptions$.add(this.subscribeOnPopover());\n }\n\n private subscribeOnPopover(): Subscription {\n return this.fPopoverService.popover$.subscribe((x) => {\n this.popoverMessage = x;\n this.changeDetectorRef.markForCheck();\n });\n }\n\n public onToggleNavigation(value: boolean): void {\n this.isNavigationVisible = value;\n this.changeDetectorRef.markForCheck();\n }\n\n public ngOnDestroy() {\n this.fPopoverService.dispose();\n this.subscriptions$.unsubscribe();\n }\n}\n","<div class=\"f-backdrop\" [class.visible]=\"isNavigationVisible\" (click)=\"onToggleNavigation(false)\"></div>\n<f-navigation-panel [class.visible]=\"isNavigationVisible\"></f-navigation-panel>\n\n<f-scrollable-container>\n <f-header></f-header>\n <router-outlet></router-outlet>\n</f-scrollable-container>\n@if (popoverMessage) {\n <div class=\"popover\">{{ popoverMessage }}</div>\n}\n","import { IHandler } from '@foblex/mediator';\nimport { HandleDynamicComponentsRequest } from './handle-dynamic-components.request';\nimport { ComponentRef, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';\nimport { FEnvironmentService } from '../../../../domain';\nimport { FPreviewComponent } from '../../../../f-documentation';\n\n@Injectable()\nexport class HandleDynamicComponentsHandler implements IHandler<HandleDynamicComponentsRequest> {\n private componentRefs: ComponentRef<any>[] = [];\n\n constructor(\n private fEnvironmentService: FEnvironmentService,\n private injector: Injector,\n ) {\n }\n\n public handle(request: HandleDynamicComponentsRequest): void {\n this.dispose();\n const components = [\n {\n tag: 'f-preview', component: FPreviewComponent\n },\n ...this.fEnvironmentService.getComponents()\n ];\n\n components.forEach((data) => {\n const elements = this.getDynamicElements(request.hostElement, data.tag);\n if (elements.length) {\n if (this.isPromise(data.component)) {\n data.component.then(module => {\n const component = this.extractComponent(module);\n if (component) {\n this.replaceElementsWithComponent(elements, component, data.tag);\n } else {\n this.logComponentResolutionError(data.tag);\n }\n }).catch(error => this.logComponentLoadingError(data.tag, error));\n } else {\n this.replaceElementsWithComponent(elements, data.component, data.tag);\n }\n }\n });\n }\n\n private getDynamicElements(hostElement: HTMLElement, tag: string): HTMLElement[] {\n return Array.from(hostElement.querySelectorAll(tag));\n }\n\n private isPromise(value: any): value is Promise<any> {\n return value && typeof value.then === 'function';\n }\n\n private extractComponent(module: any): Type<any> | null {\n return module && module.default ? module.default : Object.values(module)[ 0 ] as Type<any>;\n }\n\n private replaceElementsWithComponent(elements: HTMLElement[], component: Type<any>, tag: string): void {\n elements.forEach((x) => {\n try {\n this.changeElementToComponent(x, component);\n } catch (error) {\n this.logComponentInsertionError(tag, error);\n }\n });\n }\n\n private changeElementToComponent(element: HTMLElement, component: Type<any>): void {\n try {\n const componentRef = this.getComponentReference(component);\n this.componentRefs.push(componentRef);\n if (!element.dataset) {\n return;\n }\n Object.keys(element.dataset).forEach((key) => componentRef.instance[ key ] = element.dataset[ key ]);\n componentRef.instance?.initialize?.();\n element.parentElement!.replaceChild(this.getComponentElement(componentRef), element);\n } catch (error) {\n console.error(`Error while inserting component: ${ component.name }`, error);\n }\n }\n\n private getComponentReference<T>(component: Type<T>): ComponentRef<T> {\n return this.injector.get(ViewContainerRef).createComponent(component);\n }\n\n private getComponentElement(componentRef: ComponentRef<any>): HTMLElement {\n this.requestComponentRedraw(componentRef);\n return (componentRef.hostView as any).rootNodes[ 0 ] as HTMLElement;\n }\n\n private requestComponentRedraw(componentRef: ComponentRef<any>): void {\n componentRef.changeDetectorRef.markForCheck();\n }\n\n private logComponentResolutionError(tag: string, error?: any): void {\n console.error(`Component for tag \"${ tag }\" could not be resolved.`, error);\n }\n\n private logComponentLoadingError(tag: string, error: any): void {\n console.error(`Error while loading component for tag \"${ tag }\":`, error);\n }\n\n private logComponentInsertionError(tag: string, error: any): void {\n console.error(`Error while inserting component for tag \"${ tag }\":`, error);\n }\n\n public dispose(): void {\n this.componentRefs.forEach((ref) => ref.destroy());\n this.componentRefs = [];\n }\n}\n\n","export class HandleDynamicComponentsRequest {\n constructor(\n public hostElement: HTMLElement\n ) {\n }\n}\n","import { from, map, Observable, of, switchMap } from 'rxjs';\n\nexport function copyToClipboard(value: string): Observable<any | undefined> {\n const blob = new Blob([ value ], { type: 'text/plain' });\n const data = [ new ClipboardItem({ [ blob.type ]: blob }) ];\n\n // @ts-ignore\n return from(window?.navigator.permissions.query({ name: 'clipboard-write' })).pipe(\n map((permission: PermissionStatus) => {\n return permission.state !== 'denied';\n }),\n switchMap((isGranted: boolean) => {\n if (isGranted) {\n return from(navigator.clipboard.write(data));\n }\n return of(undefined);\n })\n );\n}\n","import { Observable, of } from 'rxjs';\nimport { IHandler } from '@foblex/mediator';\n\n//To prevent replacing the focus syntax (Prism) in the code blocks, we need to change from the default syntax to a custom one.\nexport class ChangeCodeFocusedSyntaxPreProcessor implements IHandler<HTMLElement, Observable<HTMLElement>> {\n\n public handle(element: HTMLElement): Observable<HTMLElement> {\n this.getCodeBlocks(element).forEach((block) => {\n block.innerHTML = this.replaceFocus(block.innerHTML);\n });\n\n return of(element);\n }\n\n private getCodeBlocks(element: HTMLElement): HTMLElement[] {\n return Array.from(element.querySelectorAll('pre code'));\n }\n\n private replaceFocus(text: string): string {\n return text.replace(RULE.regex, RULE.replacer);\n }\n}\n\nconst RULE = {\n regex: /\\|:\\|(.*?)\\|:\\|/g,\n replacer: (match: any, p1: any) => {\n return `|foc-|${ p1 }|-foc|`;\n }\n};\n","import { Observable, of } from 'rxjs';\nimport { IHandler } from '@foblex/mediator';\n\nexport class SeparateCodeByLinesPostProcessor implements IHandler<HTMLElement, Observable<HTMLElement>> {\n\n public handle(element: HTMLElement): Observable<HTMLElement> {\n element.querySelectorAll(\"pre code\").forEach((code) => {\n code.innerHTML = this.getCodeDividedByLines(code);\n });\n return of(element);\n }\n\n private getCodeDividedByLines(code: Element): string {\n let result = '';\n this.getLines(code).forEach(line => {\n if (!this.isLineEmpty(line)) {\n result += this.getLine(line);\n }\n });\n return result;\n }\n\n private getLines(code: Element): string[] {\n return code.innerHTML.split('\\n');\n }\n\n private isLineEmpty(line: string): boolean {\n return line.trim() === '';\n }\n\n private getLine(content: string): string {\n return `<line class=\"line\">${ content }</line>\\n`;\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { IHandler } from '@foblex/mediator';\n\nexport class ModifyPunctuationHighlightPostProcessor implements IHandler<HTMLElement, Observable<HTMLElement>> {\n\n public handle(element: HTMLElement): Observable<HTMLElement> {\n element.querySelectorAll('span.token.attr-name').forEach((node) => {\n const text = node.textContent;\n if (text && text.startsWith('[') && text.endsWith(']')) {\n node.innerHTML = this.replacePunctuation(text);\n }\n });\n return of(element);\n }\n\n private replacePunctuation(text: string): string {\n return text.replace(RULE.regex, RULE.replacer);\n }\n}\n\nconst RULE = {\n regex: /(\\[|\\])/g,\n replacer: (match: any) => {\n return `<span class=\"token punctuation\">${ match }</span>`;\n }\n};\n","import { Observable, of } from 'rxjs';\nimport { IHandler } from '@foblex/mediator';\nimport { BrowserService } from '@foblex/platform';\n\nexport class MarkCodeFocusedBlocksPostProcessor implements IHandler<HTMLElement, Observable<HTMLElement>> {\n\n constructor(\n private fBrowser: BrowserService\n ) {\n }\n\n public handle(element: HTMLElement): Observable<HTMLElement> {\n this.getCodeBlocks(element).forEach((block) => {\n block.innerHTML = this.replaceFocus(block.innerHTML);\n if (block.querySelector('.focused')) {\n this.applyOpacity(block.parentElement as HTMLElement);\n }\n });\n return of(element);\n }\n\n private getCodeBlocks(element: HTMLElement): HTMLElement[] {\n return Array.from(element.querySelectorAll('pre code'));\n }\n\n private replaceFocus(text: string): string {\n return text.replace(RULE.regex, RULE.replacer);\n }\n\n private applyOpacity(element: HTMLElement) {\n if (!element.classList.contains('focused')) {\n element.style.color = this.createRgbaString(this.getElementColor(element), 0.5);\n element.childNodes.forEach((child) => {\n if (child.nodeType === Node.ELEMENT_NODE) {\n this.applyOpacity(child as HTMLElement);\n }\n });\n } else {\n element.style.color = this.createRgbaString(this.getElementColor(element), 1, true);\n }\n }\n\n private getElementColor(element: HTMLElement): string {\n return this.fBrowser.window.getComputedStyle(element).color;\n }\n\n private createRgbaString(color: string, opacity: number, isRgb: boolean = false): string {\n const [ r, g, b, a ] = this.getRgbValues(color);\n const alpha = Number(a) || 1;\n return isRgb ? `rgb(${ r }, ${ g }, ${ b })` : `rgba(${ r }, ${ g }, ${ b }, ${ opacity * alpha })`;\n }\n\n private getRgbValues(color: string): RegExpMatchArray {\n return color.match(/\\d+/g)!;\n }\n}\n\nconst RULE = {\n regex: /\\|foc-\\|(.*?)\\|-foc\\|/g,\n replacer: (match: any, p1: any) => {\n return `<focus class=\"focused\">${ p1 }</focus>`;\n }\n};\n","import { Injectable } from '@angular/core';\nimport { Observable, of, Subscriber, switchMap } from 'rxjs';\nimport { ChangeCodeFocusedSyntaxPreProcessor } from './change-code-focused-syntax.pre-processor';\nimport { SeparateCodeByLinesPostProcessor } from './separate-code-by-lines.post-processor';\nimport { ModifyPunctuationHighlightPostProcessor } from './modify-punctuation-highlight.post-processor';\nimport { MarkCodeFocusedBlocksPostProcessor } from './mark-code-focused-blocks.post-processor';\nimport { BrowserService } from '@foblex/platform';\n\n@Injectable()\nexport class HighlightService {\n\n private Prism: any;\n\n constructor(\n private fBrowser: BrowserService\n ) {\n }\n\n public highlight(element: HTMLElement): Observable<any> {\n return this.fBrowser.isBrowser() ? this.markNoneLanguage(element).pipe(\n switchMap((x) => new ChangeCodeFocusedSyntaxPreProcessor().handle(x)),\n switchMap((x) => this.highlightCodeWithPrism(x)),\n switchMap((x) => new ModifyPunctuationHighlightPostProcessor().handle(x)),\n switchMap((x) => new SeparateCodeByLinesPostProcessor().handle(x)),\n switchMap((x) => new MarkCodeFocusedBlocksPostProcessor(this.fBrowser).handle(x))\n ) : of(element);\n }\n\n private highlightCodeWithPrism(element: HTMLElement): Observable<HTMLElement> {\n return new Observable<HTMLElement>((observer) => {\n setTimeout(() => {\n this.loadPrism().then((x) => {\n this.highlightAllUnder(x, observer, element);\n });\n });\n });\n }\n\n private highlightAllUnder(prism: any | undefined, observer: Subscriber<HTMLElement>, element: HTMLElement): void {\n try {\n prism?.highlightAllUnder(element);\n } catch (e) {\n }\n observer.next(element);\n observer.complete();\n }\n\n private async loadPrism(): Promise<any> {\n if(!this.Prism) {\n this.Prism = await import('prismjs');\n await Promise.all([\n // @ts-ignore\n import('prismjs/components/prism-bash'), import('prismjs/components/prism-css'), import('prismjs/components/prism-typescript')\n ]);\n }\n return this.Prism;\n }\n\n private markNoneLanguage(element: HTMLElement): Observable<HTMLElement> {\n element.querySelectorAll('pre code:not([class*=\"language-\"])').forEach(\n (x) => x.classList.add('language-none')\n );\n return of(element);\n }\n}\n","import { fromEvent, Subscription, switchMap } from 'rxjs';\nimport { copyToClipboard } from './clipboard';\nimport { ICodeGroupView } from './f-code-group';\nimport { IParsedContainer } from '../i-parsed-container';\nimport { Injector } from '@angular/core';\nimport { HighlightService } from '../../highlight';\nimport { take } from 'rxjs/operators';\nimport { FPopoverService } from '../../../../../domain';\nimport { DOCUMENT } from '@angular/common';\n\nexport class FCodeViewHandler implements ICodeGroupView, IParsedContainer {\n\n protected subscriptions$: Subscription = new Subscription();\n\n protected fDocument: Document;\n\n constructor(\n public element: HTMLElement,\n public injector: Injector\n ) {\n this.fDocument = this.injector.get(DOCUMENT);\n this.initialize();\n }\n\n protected initialize(): void {\n if (this.isServer()) return;\n this.createCopyButton();\n this.createLanguageBadge();\n this.injector.get(HighlightService).highlight(this.element).pipe(take(1)).subscribe(() => {\n this.subscriptions$.add(this.subscribeOnCopyButtonClick());\n });\n }\n\n protected isServer(): boolean {\n return typeof window === 'undefined';\n }\n\n private createCopyButton(): HTMLButtonElement {\n const button = this.fDocument.createElement('button');\n button.classList.add('f-copy-button');\n this.element.appendChild(button);\n return button;\n }\n\n private createLanguageBadge(): void {\n const badge = this.fDocument.createElement('span');\n badge.classList.add('f-code-language');\n badge.textContent = this.getLanguage();\n this.element.appendChild(badge);\n }\n\n private getLanguage(): string {\n return this.getCodeBlock().classList[0].replace('language-', '');\n }\n\n private getCopyButton(): HTMLButtonElement {\n return this.element.querySelector('.f-copy-button') as HTMLButtonElement;\n }\n\n protected getCodeBlock(): HTMLElement {\n return this.element.querySelector('code') as HTMLElement;\n }\n\n public setDisplay(value: string): void {\n this.element.style.display = value;\n }\n\n private subscribeOnCopyButtonClick(): Subscription {\n return fromEvent(this.getCopyButton(), 'click').pipe(\n switchMap(() => copyToClipboard(this.getCodeBlock().textContent!))\n ).subscribe(() => {\n this.injector.get(FPopoverService).show('Copied!');\n });\n }\n\n public dispose(): void {\n this.subscriptions$.unsubscribe();\n }\n}\n","import { ICodeGroupView } from './f-code-group';\n\nexport class FExampleViewHandler implements ICodeGroupView {\n\n constructor(\n public element: HTMLElement,\n ) {\n }\n\n public setDisplay(value: string): void {\n this.element.style.display = value;\n }\n}\n","import { FCodeViewHandler } from './f-code-view-handler';\nimport { Injector } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, take } from 'rxjs/operators';\n\nexport class FAsyncCodeViewHandler extends FCodeViewHandler {\n\n constructor(\n element: HTMLElement,\n injector: Injector\n ) {\n super(element, injector);\n }\n\n protected override initialize(): void {\n if (this.isServer()) return;\n const language = this.getFileExtension(this.element.innerHTML);\n this.subscribeOnLoadFile(this.element.innerHTML).pipe(take(1), catchError((err, data) => of(''))).subscribe((content) => {\n this.element.innerHTML = '';\n this.element.appendChild(this.createPreView(language));\n this.getCodeBlock().textContent = content;\n super.initialize();\n });\n }\n\n private getFileExtension(url: string): string {\n const match = url.match(/\\.([0-9a-z]+)(?:[\\?#]|$)/i);\n\n if (match) {\n let extension = match[1];\n if (extension === 'scss') {\n extension = 'css';\n }\n return extension;\n }\n return '';\n }\n\n private subscribeOnLoadFile(src: string): Observable<string> {\n return this.injector.get(HttpClient).get(src, { responseType: 'text' });\n }\n\n private createCodeView(container: HTMLPreElement, language: string): void {\n const code = document.createElement('code');\n code.classList.add(`language-${ language }`);\n container.appendChild(code);\n }\n\n private createPreView(language: string): HTMLPreElement {\n const pre = document.createElement('pre');\n this.element.appendChild(pre);\n this.createCodeView(pre, language)\n return pre;\n }\n}\n","import { FCodeViewHandler } from './f-code-view-handler';\nimport { FExampleViewHandler } from './f-example-view-handler';\nimport { IParsedContainer } from '../i-parsed-container';\nimport { ICodeGroupView } from './f-code-group';\nimport { Injector } from '@angular/core';\nimport { FAsyncCodeViewHandler } from './f-async-code-view-handler';\n\ntype DisposableContainer = IParsedContainer & ICodeGroupView;\n\nexport class FCodeGroupBodyHandler implements IParsedContainer {\n\n private fContainerHandlers: DisposableContainer[];\n\n constructor(\n public element: HTMLElement,\n private injector: Injector\n ) {\n this.fContainerHandlers = this.getCodeViews();\n this.initialize();\n }\n\n private initialize(): void {\n this.toggle(0);\n }\n\n private getCodeViews(): DisposableContainer[] {\n return this.getGroupBodyChildren().map((x) => {\n if (this.isCodeView(x)) {\n return new FCodeViewHandler(x as HTMLElement, this.injector);\n } else if (this.isAsyncCodeView(x)) {\n return new FAsyncCodeViewHandler(x as HTMLElement, this.injector);\n } else {\n return new FExampleViewHandler(x as HTMLElement);\n }\n });\n }\n\n private getGroupBodyChildren(): HTMLElement[] {\n return Array.from(this.element.querySelector('.f-code-group-body')!.children) as HTMLElement[];\n }\n\n private isCodeView(element: Element): boolean {\n return element.classList.contains('f-code-view');\n }\n\n private isAsyncCodeView(element: Element): boolean {\n return element.classList.contains('f-async-code-view');\n }\n\n public toggle(index: number): void {\n this.fContainerHandlers.forEach((fContainer, tabIndex) => {\n fContainer.setDisplay(tabIndex === index ? 'block' : 'none');\n });\n }\n\n public dispose(): void {\n this.fContainerHandlers.forEach((x) => x.dispose?.());\n }\n}\n","import { Injector } from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { FCodeGroupBodyHandler } from '../f-code-group-body.handler';\nimport { IParsedContainer } from '../../i-parsed-container';\n\nexport class FCodeGroupHandler implements IParsedContainer {\n\n private subscriptions$: Subscription = new Subscription();\n\n private body: FCodeGroupBodyHandler;\n\n private get tabs(): HTMLButtonElement[] {\n return Array.from(this.element.querySelectorAll('.f-tab-button'));\n }\n\n private get firstTab(): HTMLButtonElement | undefined {\n const tabs = this.tabs;\n if (!tabs.length) {\n return undefined;\n }\n return tabs[ 0 ];\n }\n\n constructor(\n private element: HTMLElement,\n private injector: Injector,\n ) {\n this.body = new FCodeGroupBodyHandler(this.element, this.injector);\n this.initialize();\n }\n\n private initialize(): void {\n this.subscribeOnTabsClick();\n this.onTabClick(this.firstTab);\n }\n\n private subscribeOnTabsClick(): void {\n this.tabs.forEach((tab) => {\n this.subscriptions$.add(this.subscribeOnTabClick(tab));\n });\n }\n\n private subscribeOnTabClick(tab: HTMLButtonElement): Subscription {\n return fromEvent(tab, 'click').subscribe(() => this.onTabClick(tab));\n }\n\n private onTabClick(targetTab: HTMLButtonElement | undefined): void {\n if (targetTab) {\n this.markActiveTab(targetTab);\n this.body.toggle(this.getTargetTabIndex(targetTab));\n }\n }\n\n private markActiveTab(target: HTMLButtonElement): void {\n this.tabs.forEach(tab => tab.classList.remove('active'));\n target.classList.add('active');\n }\n\n private getTargetTabIndex(target: HTMLButtonElement): number {\n return this.tabs.indexOf(target);\n }\n\n public dispose(): void {\n this.body.dispose();\n this.subscriptions$.unsubscribe();\n }\n}\n","import { IHandler } from '@foblex/mediator';\nimport { HandleParsedContainersRequest } from './handle-parsed-containers.request';\nimport { Injectable, Injector } from '@angular/core';\nimport { FCodeGroupHandler, FCodeViewHandler } from './pseudo-components';\nimport { IParsedContainer } from './i-parsed-container';\n\n@Injectable()\nexport class HandleParsedContainersHandler implements IHandler<HandleParsedContainersRequest> {\n\n private fCodeGroupHandler: IParsedContainer[] = [];\n\n private fCodeViewHandler: IParsedContainer[] = [];\n\n constructor(\n private injector: Injector,\n ) {\n }\n\n public handle(request: HandleParsedContainersRequest): void {\n this.dispose();\n this.fCodeGroupHandler = this.getCodeGroups(request.hostElement);\n this.fCodeViewHandler = this.getCodeViews(request.hostElement);\n }\n\n private getCodeGroups(hostElement: HTMLElement): IParsedContainer[] {\n return Array.from(hostElement.querySelectorAll('.f-code-group'))\n .map((x) => new FCodeGroupHandler(x as HTMLElement, this.injector));\n }\n\n private getCodeViews(hostElement: HTMLElement): IParsedContainer[] {\n return Array.from(hostElement.querySelectorAll('.f-code-view'))\n .filter((x) => !x.parentElement?.classList.contains('f-code-group-body'))\n .map((x) => new FCodeViewHandler(x as HTMLElement, this.injector));\n }\n\n public dispose(): void {\n this.fCodeGroupHandler.forEach((x) => x.dispose?.());\n this.fCodeViewHandler.forEach((x) => x.dispose?.());\n }\n}\n","export class HandleParsedContainersRequest {\n constructor(\n public hostElement: HTMLElement,\n ) {\n }\n}\n","export enum EMarkdownContainerType {\n\n CODE_GROUP = 'code-group',\n\n EXAMPLE_GROUP = 'ng-component',\n\n PREVIEW_GROUP = 'preview-group',\n\n CODE_VIEW = 'code-view',\n\n ALERT_TIP = 'tip',\n\n ALERT_INFO = 'info',\n\n ALERT_WARNING = 'warning',\n\n ALERT_DANGER = 'danger',\n\n ALERT_SUCCESS = 'success'\n}\n","import MarkdownIt from 'markdown-it';\nimport container from 'markdown-it-container';\nimport { IMarkdownItToken } from './i-markdown-it-token';\n\ntype ContainerArgs = [ typeof container, string, { render: any } ]\n\nexport class ParseAlerts {\n\n public render(type: string, markdown: MarkdownIt): ContainerArgs {\n return [ container, type, {\n render: (tokens: IMarkdownItToken[], index: number) => {\n const token = tokens[ index ];\n const info = token.info.trim().slice(type.length).trim();\n if (token.nesting === 1) {\n const title = markdown.renderInline(info);\n return `<div class=\"f-alert ${ type }\"><p class=\"f-alert-title\">${ title }</p>\\n`;\n } else {\n return `</div>\\n`;\n }\n }\n } ];\n }\n}\n","import container from 'markdown-it-container';\nimport { EMarkdownContainerType } from './e-markdown-container-type';\nimport { IMarkdownItToken } from './i-markdown-it-token';\n\ntype ContainerArgs = [ typeof container, string, { render: any } ]\nconst F_CONTAINER_CLOSE_TAG = 'container_code-group_close';\n\nexport class ParseCodeGroup {\n\n public render(): ContainerArgs {\n return [ container, EMarkdownContainerType.CODE_GROUP, {\n render: (tokens: IMarkdownItToken[], index: number) => {\n if (this.isOpeningToken(tokens, index)) {\n return this.openingGroupHTML(this.generateTabs(tokens, index));\n }\n return this.closingGroupHTML();\n }\n } ];\n }\n\n private isOpeningToken(tokens: IMarkdownItToken[], index: number): boolean {\n return tokens[index].nesting === 1;\n }\n\n private generateTabs(tokens: IMarkdownItToken[], index: number): string {\n let result = '';\n\n for (let i = index + 1; !this.isClosingToken(tokens, i); i++) {\n if (this.isCodeFenceToken(tokens[i])) {\n const title = this.getCodeBlockTitle(tokens[i].info);\n if (title) {\n result += this.generateTabButton(title);\n }\n }\n }\n\n return result;\n }\n\n private isClosingToken(token: IMarkdownItToken[], index: number): boolean {\n return token[index].nesting === -1 && token[index].type === F_CONTAINER_CLOSE_TAG;\n }\n\n private isCodeFenceToken(token: IMarkdownItToken): boolean {\n return token.type === 'fence' && token.tag === 'code';\n }\n\n private generateTabButton(title: string): string {\n return `<button class=\"f-tab-button\">${title}</button>`;\n }\n\n private openingGroupHTML(tabs: string): string {\n return `<div class=\"f-code-group\"><div class=\"f-code-group-tabs\">${tabs}</div><div class=\"f-code-group-body\">\\n`;\n }\n\n private closingGroupHTML(): string {\n return `</div></div>\\n`;\n }\n\n private getCodeBlockTitle(data: string): string {\n return data.match(/\\[(.*)\\]/)?.[ 1 ] || this.getCodeLanguage(data) || 'txt';\n }\n\n private getCodeLanguage(data: string): string {\n return data.trim()\n .replace(/=(\\d*)/, '')\n .replace(/^ansi$/, '');\n }\n}\n","import MarkdownIt from 'markdown-it';\nimport { IMarkdownItToken } from './i-markdown-it-token';\n\nexport class ParseCodeView {\n\n public render(markdown: MarkdownIt): void {\n const fence = markdown.renderer.rules.fence as unknown as Function;\n if (!fence) {\n throw new Error('Markdown renderer does not have a fence rule.');\n }\n\n markdown.renderer.rules.fence = (tokens: IMarkdownItToken[], index: number, ...rest) => {\n return (\n `<div class=\"f-code-view\">${ fence(tokens, index, ...rest) }</div>`\n );\n }\n }\n\n private cleanTokenInfo(info: string): string {\n return info.replace(/\\[.*\\]/, '');\n }\n}\n","import { EMarkdownContainerType, IMarkdownItToken } from '../parse-markdown';\n\nexport function getContent(tokens: IMarkdownItToken[], index: number, eContainerType: EMarkdownContainerType): string | undefined {\n let result: string | undefined;\n\n for (let i = index + 1; i < tokens.length; i++) {\n if (tokens[ i ].type === `container_${ eContainerType }_close`) {\n break;\n }\n if (isInlineToken(tokens[ i ])) {\n result = tokens[ i ].content;\n break;\n }\n }\n return result;\n}\n\nfunction isInlineToken(token: IMarkdownItToken): boolean {\n return token.type === 'inline' && !token.tag;\n}\n","import container from 'markdown-it-container';\nimport { EMarkdownContainerType } from './e-markdown-container-type';\nimport { IMarkdownItToken } from './i-markdown-it-token';\nimport { getContent } from '../utils';\n\ntype ContainerArgs = [ typeof container, string, { render: any } ]\n\nexport class ParseExampleGroup {\n\n public render(): ContainerArgs {\n return [ container, EMarkdownContainerType.EXAMPLE_GROUP, {\n render: (tokens: IMarkdownItToken[], index: number) => {\n if (this.isOpeningToken(tokens, index)) {\n return this.openingExampleGroupHTML(this.generateData(tokens, index));\n }\n return this.closingExampleGroupHTML();\n }\n } ];\n }\n\n private isNgComponent(token: IMarkdownItToken): boolean {\n return token.info.trim().startsWith(EMarkdownContainerType.EXAMPLE_GROUP);\n }\n\n private isOpeningToken(tokens: IMarkdownItToken[], index: number): boolean {\n return tokens[ index ].nesting === 1;\n }\n\n private generateData(tokens: IMarkdownItToken[], index: number): { tabs: string, views: string } {\n let tabs = '';\n let views = '';\n const component = this.parseComponentTags(tokens[ index ]);\n if (component) {\n tabs += this.generateTabButton('Example');\n views += this.generateExampleView(component);\n }\n const content = getContent(tokens, index, EMarkdownContainerType.EXAMPLE_GROUP);\n if (content) {\n this.parseData(content).forEach((x) => {\n tabs += this.generateTabButton(x.fileName);\n views += this.generateAsyncCodeView(x.url);\n });\n } else {\n tabs = '';\n }\n\n return { tabs, views };\n }\n\n private parseComponentTags(token: IMarkdownItToken): { tag: string, height?: string } {\n if (!this.isNgComponent(token)) {\n return { tag: '', height: '' };\n }\n\n let cleanedInput = token.info.replace(/ng-component\\s*/, '');\n\n const tagMatch = cleanedInput.match(/<([a-zA-Z0-9-]+)>.*<\\/\\1>/);\n const heightMatch = cleanedInput.match(/\\[height\\]=\"(\\d+)\"/);\n\n if (!tagMatch) {\n throw new Error(\"Invalid input: no valid tag found\");\n }\n\n const tag = tagMatch[ 0 ];\n const height = heightMatch ? heightMatch[ 1 ] : undefined;\n\n return { tag, height };\n }\n\n private parseData(data: string): { fileName: string, url: string }[] {\n return data.split('\\n').map(this.extractFileData).filter(Boolean) as { fileName: string, url: string }[];\n }\n\n private extractFileData(line: string): { fileName: string, url: string } | null {\n const match = line.match(/\\[(.+?)\\] <<< (.+)/);\n return match ? { fileName: match[ 1 ], url: match[ 2 ] } : null;\n }\n\n private openingExampleGroupHTML(data: { tabs: string, views: string }): string {\n return `<div class=\"f-code-group\">${ this.groupTabsHTML(data.tabs) }${ this.groupBodyHTML(data.views) }`;\n }\n\n private groupTabsHTML(content: string): string {\n let result = `<div class=\"f-code-group-tabs\">${ content }</div>`;\n if (!content) {\n result = '';\n }\n return result;\n }\n\n private generateTabButton(content: string): string {\n return `<button class=\"f-tab-button\">${ content }</button>`;\n }\n\n private groupBodyHTML(content: string): string {\n return `<div class=\"f-code-group-body\">${ content }`;\n }\n\n private generateExampleView(content: { tag: string, height?: string }): string {\n let height = '';\n if (content.height) {\n height = `style=\"height: ${ content.height }px\"`;\n }\n return `<div class=\"f-example-view\" ${ height }>${ content.tag }</div>`;\n }\n\n private generateAsyncCodeView(content: string): string {\n return `<div class=\"f-async-code-view\">${ content }</div>`;\n }\n\n private closingExampleGroupHTML(): string {\n return `</div></div>\\n`;\n }\n}\n","import container from 'markdown-it-container';\nimport { EMarkdownContainerType } from './e-markdown-container-type';\nimport { IMarkdownItToken } from './i-markdown-it-token';\nimport { INavigationGroup } from '../../../../../f-navigation-panel';\nimport { getContent } from '../utils';\n\ntype ContainerArgs = [ typeof container, string, { render: any } ]\n\nexport class ParsePreviewGroup {\n\n constructor(\n private navigation: INavigationGroup[]\n ) {\n }\n\n public render(): ContainerArgs {\n return [ container, EMarkdownContainerType.PREVIEW_GROUP, {\n render: (tokens: IMarkdownItToken[], index: number) => {\n if (this.isOpeningToken(tokens, index)) {\n return this.getGroupsHTML(this.generateData(tokens, index));\n }\n return '';\n }\n } ];\n }\n\n private isOpeningToken(tokens: IMarkdownItToken[], index: number): boolean {\n return tokens[ index ].nesting === 1;\n }\n\n private generateData(tokens: IMarkdownItToken[], index: number): INavigationGroup[] {\n const groups: INavigationGroup[] = [];\n\n this.parseData(getContent(tokens, index, EMarkdownContainerType.PREVIEW_GROUP) || '').forEach((x: string) => {\n const group = this.navigation.find((g) => g.text === x);\n if (group) {\n groups.push(group)\n }\n });\n\n return groups;\n }\n\n private parseData(data: string): string[] {\n return data.split('\\n').map(this.extractFileData).filter(Boolean) as string[];\n }\n\n private extractFileData(line: string): string | null {\n const match = line.match(/\\[(.+?)\\]/);\n return match ? match[ 1 ] : null;\n }\n\n private getGroupsHTML(groups: INavigationGroup[]): string {\n return (groups || []).map((x) => {\n return `<h2>${ x.text }</h2><div class=\"f-preview-group\">${ this.getItemsHTML(x) }</div>`;\n }).join('');\n }\n\n private getItemsHTML(group: INavigationGroup): string {\n return group.items.map((item) => {\n return `<f-preview data-group=\"${ group.text }\" data-item=\"${ item.link }\"></f-preview>`\n }).join('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of, switchMap } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport MarkdownIt from 'markdown-it';\nimport {\n EMarkdownContainerType,\n ParseAlerts,\n ParseCodeGroup,\n ParseCodeView,\n ParseExampleGroup, ParsePreviewGroup\n} from './parse-markdown';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { catchError, take } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { FEnvironmentService } from '../../../../domain';\n\n@Injectable()\nexport class MarkdownService {\n\n private markdown: MarkdownIt = new MarkdownIt({ html: true, linkify: true });\n\n constructor(\n private httpClient: HttpClient,\n private domSanitizer: DomSanitizer,\n private fEnvironment: FEnvironmentService,\n private router: Router,\n ) {\n this.markdown\n .use((x) => new ParseCodeView().render(x))\n .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_TIP, this.markdown))\n .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_INFO, this.markdown))\n .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_WARNING, this.markdown))\n .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_DANGER, this.markdown))\n .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_DANGER, this.markdown))\n .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_SUCCESS, this.markdown))\n .use(...new ParseCodeGroup().render())\n .use(...new ParsePreviewGroup(this.fEnvironment.getNavigation()).render())\n .use(...new ParseExampleGroup().render());\n }\n\n public parse(src: string): Observable<SafeHtml> {\n return this.httpClient.get(src, { responseType: 'text' }).pipe(take(1), catchError(() => of(''))).pipe(\n switchMap((text) => of(this.markdown.render(text))),\n switchMap((x) => of(this.cleanupEmptyParagraphs(x))),\n switchMap((x) => of(this.cleanupWasteParagraphFromExampleView(x))),\n switchMap((x) => of(this.cleanupWasteParagraphFromPreviewGroup(x))),\n switchMap((x) => of(this.normalizeLinks(x))),\n switchMap((x) => of(this.domSanitizer.bypassSecurityTrustHtml(x))),\n );\n }\n\n private normalizeLinks(html: string): string {\n const currentPath = this.router.url;\n const prefix = currentPath.substring(0, currentPath.lastIndexOf('/'));\n\n return html.replace(/<a\\s+href=\"([^\"]*)\"/g, (match, href) => {\n if (!this.isExternalLink(href)) {\n let newHref = href.substring(0);\n if (!href.startsWith('./')) {\n newHref = href.startsWith('/') ? `${ prefix }${ href }` : `${ prefix }/${ href }`;\n }\n return `<a href=\"${ newHref }\"`;\n }\n return match;\n });\n }\n\n private isExternalLink(href: string): boolean {\n return href.startsWith('www') || href.startsWith('http');\n }\n\n private cleanupEmptyParagraphs(html: string): string {\n return html.replace(/<p>\\s*<\\/p>/g, '');\n }\n\n private cleanupWasteParagraphFromExampleView(html: string): string {\n return html.replace(/<div class=\"f-code-group-body\">\\s*<p>[^<]*<\\/p>/g, '<div class=\"f-code-group-body\">');\n }\n\n private cleanupWasteParagraphFromPreviewGroup(html: string): string {\n return html.replace(/<p>(\\[[^\\]]+\\](\\s*\\[[^\\]]+\\])*)<\\/p>/g, '');\n }\n}\n\n","import { IPageLink } from '../../i-page-link';\n\nexport class GetPreviousNextPageNavigationResponse {\n\n constructor(\n public previousLink: IPageLink | undefined,\n public nextLink: IPageLink | undefined\n ) {\n\n }\n}\n","import { IHandler } from '@foblex/mediator';\nimport { GetPreviousNextPageNavigationRequest } from './get-previous-next-page-navigation.request';\nimport { GetPreviousNextPageNavigationResponse } from './get-previous-next-page-navigation.response';\nimport { FEnvironmentService } from '../../../../../domain';\nimport { IPageLink } from '../../i-page-link';\n\nexport class GetPreviousNextPageNavigationHandler\n implements IHandler<GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse> {\n\n constructor(\n private fEnvironmentService: FEnvironmentService\n ) {\n }\n\n public handle(request: GetPreviousNextPageNavigationRequest): GetPreviousNextPageNavigationResponse {\n let previous: IPageLink | undefined = undefined;\n let next: IPageLink | undefined = undefined;\n\n this.fEnvironmentService.getNavigation().forEach((group, groupIndex: number) => {\n (group.items || []).forEach((item, index) => {\n if (item.link === request.currentLink) {\n if (index > 0) {\n previous = { ...group.items[ index - 1 ] };\n } else {\n if (groupIndex > 0) {\n const previousGroup = this.fEnvironmentService.getNavigation()[ groupIndex - 1 ];\n previous = { ...previousGroup.items[ previousGroup.items.length - 1 ] };\n }\n }\n if (index < group.items.length - 1) {\n next = { ...group.items[ index + 1 ] };\n } else {\n if (groupIndex < this.fEnvironmentService.getNavigation().length - 1) {\n const nextGroup = this.fEnvironmentService.getNavigation()[ groupIndex + 1 ];\n next = { ...nextGroup.items[ 0 ] };\n }\n }\n }\n });\n });\n return new GetPreviousNextPageNavigationResponse(previous, next);\n }\n}\n","export class GetPreviousNextPageNavigationRequest {\n\n constructor(\n public currentLink: string\n ) {}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n@Component({\n selector: 'f-footer-edit-information',\n templateUrl: './f-footer-edit-information.component.html',\n styleUrls: [ './f-footer-edit-information.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class FFooterEditInformationComponent {\n\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component, Input,\n} from '@angular/core';\nimport { IPageLink } from '../../domain';\n\n@Component({\n selector: 'a[f-footer-navigation-button]',\n templateUrl: './f-footer-navigation-button.component.html',\n styleUrls: [ './f-footer-navigation-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class FFooterNavigationButtonComponent {\n\n @Input({ required: true })\n public description: string | undefined;\n\n @Input({ required: true })\n public link!: IPageLink;\n}\n","<span class=\"description\">{{ description }}</span>\n<span class=\"page-title\">{{ link.text }}</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n@Component({\n selector: 'nav[f-footer-navigation]',\n templateUrl: './f-footer-navigation.component.html',\n styleUrls: [ './f-footer-navigation.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class FFooterNavigationComponent {\n\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n@Component({\n selector: 'a[f-footer-edit-link]',\n templateUrl: './f-footer-edit-link.component.html',\n styleUrls: [ './f-footer-edit-link.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class FFooterEditLinkComponent {\n\n}\n","<span class=\"edit-link-icon f-icon edit\"></span>\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n@Component({\n selector: 'f-footer-last-updated',\n templateUrl: './f-footer-last-updated.component.html',\n styleUrls: [ './f-footer-last-updated.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class FFooterLastUpdatedComponent {\n\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, HostListener, Injector, OnDestroy, OnInit,\n} from '@angular/core';\nimport { FFooterNavigationButtonComponent, FFooterNavigationComponent } from './f-footer-navigation';\nimport { FFooterEditInformationComponent } from './f-footer-edit-information';\nimport { FFooterEditLinkComponent } from './f-footer-edit-information/f-footer-edit-link';\nimport { FFooterLastUpdatedComponent } from './f-footer-edit-information/f-footer-last-updated';\nimport { debounceTime, Observable, startWith, Subscription } from 'rxjs';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport {\n FEnvironmentService,\n HandleNavigationLinksHandler,\n HandleNavigationLinksRequest,\n IDocsFooterNavigation\n} from '../../domain';\nimport { GetPreviousNextPageNavigationHandler, GetPreviousNextPageNavigationRequest, IPageLink } from './domain';\n\n@Component({\n selector: 'footer [f-markdown-footer]',\n templateUrl: './f-markdown-footer.component.html',\n styleUrls: [ './f-markdown-footer.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FFooterNavigationComponent,\n FFooterNavigationButtonComponent,\n FFooterEditInformationComponent,\n FFooterEditLinkComponent,\n FFooterLastUpdatedComponent,\n RouterLink,\n ],\n standalone: true\n})\nexport class FMarkdownFooterComponent implements OnInit, OnDestroy {\n\n private subscriptions$: Subscription = new Subscription();\n\n protected navigation: IDocsFooterNavigation = {};\n\n protected editLink: string | undefined;\n\n protected previousLink: IPageLink | undefined;\n\n protected nextLink: IPageLink | undefined;\n\n constructor(\n private injector: Injector,\n private fEnvironmentService: FEnvironmentService,\n private router: Router,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n }\n\n public ngOnInit(): void {\n this.subscriptions$.add(this.subscribeOnRouteChanges());\n }\n\n private subscribeOnRouteChanges(): Subscription {\n return this.getRouterEvents().pipe(\n startWith(null), debounceTime(10)\n ).subscribe(() => this.updateData());\n }\n\n private getRouterEvents(): Observable<any> {\n return this.injector.get(Router).events;\n }\n\n private updateData(): void {\n const currentPath = this.router.url;\n const prefix = currentPath.substring(0, currentPath.lastIndexOf('/'));\n this.navigation = JSON.parse(JSON.stringify(this.fEnvironmentService.getFooterNavigation()));\n if (this.navigation.editLink) {\n this.editLink = this.getEditLink();\n }\n const previousNext = new GetPreviousNextPageNavigationHandler(this.fEnvironmentService).handle(\n new GetPreviousNextPageNavigationRequest(this.getCurrentLink())\n );\n this.previousLink = previousNext.previousLink;\n this.normalizeLink(this.previousLink, prefix);\n this.nextLink = previousNext.nextLink;\n this.normalizeLink(this.nextLink, prefix);\n this.changeDetectorRef.markForCheck();\n }\n\n private normalizeLink(item: IPageLink | undefined, prefix: string): void {\n if (item?.link && !this.isExternalLink(item.link)) {\n item.link = item.link.startsWith('/') ? `${ prefix }${ item.link }` : `${ prefix }/${ item.link }`;\n }\n }\n\n private isExternalLink(href: string): boolean {\n return href.startsWith('www') || href.startsWith('http');\n }\n\n private getEditLink(): string {\n return this.navigation.editLink!.pattern + this.getCurrentLink() + '.md';\n }\n\n private getCurrentLink(): string {\n return this.injector.get(ActivatedRoute).snapshot.url.map((x) => x.path).join('/');\n }\n\n @HostListener('click', [ '$event' ])\n public onDocumentClick(event: MouseEvent): void {\n this.injector.get(HandleNavigationLinksHandler).handle(new HandleNavigationLinksRequest(event));\n }\n\n public ngOnDestroy(): void {\n this.subscriptions$.unsubscribe();\n }\n}\n","@if (editLink) {\n <f-footer-edit-information>\n <a f-footer-edit-link [href]=\"editLink\">\n {{ navigation.editLink?.text || 'Edit this page on GitHub' }}\n </a>\n\n <!-- <f-footer-last-updated>-->\n <!-- Last updated: <span>{{ lastUpdated.datetime }}</span>-->\n <!-- </f-footer-last-updated>-->\n </f-footer-edit-information>\n}\n\n@if (previousLink || nextLink) {\n <nav f-footer-navigation>\n @if (previousLink) {\n <a f-footer-navigation-button\n [href]=\"previousLink.link\"\n [description]=\"navigation.previous\"\n [link]=\"previousLink\">\n </a>\n }\n @if (nextLink) {\n <a f-footer-navigation-button class=\"next\"\n [href]=\"nextLink.link\"\n [description]=\"navigation.next\"\n [link]=\"nextLink\">\n </a>\n }\n </nav>\n}\n\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, ElementRef, HostListener, inject, Injector, OnDestroy, OnInit,\n} from '@angular/core';\nimport {\n debounceTime,\n Observable,\n startWith,\n Subscription,\n switchMap\n} from 'rxjs';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { FScrollableService } from '../../f-scrollable-container/f-scrollable.service';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n HandleDynamicComponentsHandler,\n HandleDynamicComponentsRequest,\n HandleParsedContainersHandler,\n HandleParsedContainersRequest, HighlightService,\n MarkdownService\n} from './domain';\nimport {\n FEnvironmentService,\n HandleNavigationLinksHandler,\n HandleNavigationLinksRequest\n} from '../../domain';\nimport { FMarkdownFooterComponent } from '../f-markdown-footer';\n\n@Component({\n selector: 'f-markdown-renderer',\n templateUrl: './f-markdown-renderer.component.html',\n styleUrls: [ './f-markdown-renderer.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MarkdownService,\n HighlightService,\n HandleNavigationLinksHandler,\n HandleParsedContainersHandler,\n HandleDynamicComponentsHandler\n ],\n imports: [\n FMarkdownFooterComponent\n ],\n host: {\n class: 'm-render'\n }\n})\nexport class FMarkdownRendererComponent implements OnInit, AfterViewChecked, OnDestroy {\n\n private subscriptions$: Subscription = new Subscription();\n\n protected value: SafeHtml | undefined;\n\n private hostElement = inject(ElementRef).nativeElement;\n\n private fScrollableService = inject(FScrollableService);\n private fContainersHandler = inject(HandleParsedContainersHandler);\n private fDynamicComponentsHandler = inject(HandleDynamicComponentsHandler);\n\n private isMarkdownChanged: boolean = false;\n\n constructor(\n private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n }\n\n public ngOnInit(): void {\n this.subscriptions$.add(this.subscribeOnRouteChanges());\n }\n\n private subscribeOnRouteChanges(): Subscription {\n return this.getRouterEvents().pipe(\n startWith(null), debounceTime(50),\n switchMap(() => this.injector.get(MarkdownService).parse(\n this.injector.get(FEnvironmentService).getMarkdownUrl(this.markdownPath)\n )),\n tap((x) => this.renderMarkdown(x)),\n catchError((e, data) => data)\n ).subscribe();\n }\n\n private getRouterEvents(): Observable<any> {\n return this.injector.get(Router).events;\n }\n\n private get markdownPath(): string {\n return this.injector.get(ActivatedRoute).snapshot.url.map((x) => x.path).join('/');\n }\n\n private renderMarkdown(value: SafeHtml): void {\n this.value = value;\n this.isMarkdownChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n public ngAfterViewChecked(): void {\n if (this.isMarkdownChanged) {\n this.isMarkdownChanged = false;\n this.fScrollableService.setOnPageNavigation(this.hostElement);\n this.fContainersHandler.handle(new HandleParsedContainersRequest(this.hostElement));\n this.fDynamicComponentsHandler.handle(new HandleDynamicComponentsRequest(this.hostElement));\n }\n }\n\n @HostListener('click', [ '$event' ])\n public onDocumentClick(event: MouseEvent): void {\n this.injector.get(HandleNavigationLinksHandler).handle(new HandleNavigationLinksRequest(event));\n }\n\n public ngOnDestroy(): void {\n this.fContainersHandler.dispose();\n this.fDynamicComponentsHandler.dispose();\n this.subscriptions$.unsubscribe();\n }\n}\n\n","<div [innerHTML]=\"value\"></div>\n<footer f-markdown-footer></footer>\n","import {\n ChangeDetectionStrategy,\n Component, Input\n} from '@angular/core';\nimport { ITableOfContentItem } from '../../../f-scrollable-container';\n\n@Component({\n selector: 'ul[f-table-of-content-items]',\n styleUrls: [ './f-table-of-content-items.component.scss' ],\n templateUrl: './f-table-of-content-items.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true\n})\nexport class FTableOfContentItemsComponent {\n\n @Input()\n public items: ITableOfContentItem[] = [];\n}\n","@for (item of items;track item.hash) {\n <li [class.active]=\"item.isActive\"><a class=\"text-ellipsis\" [href]=\"item.hash\">{{ item.title }}</a></li>\n @if (item.children) {\n <ul f-table-of-content-items [items]=\"item.children\"></ul>\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, OnDestroy, OnInit\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { AsyncPipe, JsonPipe } from '@angular/common';\nimport { FScrollableService } from '../../f-scrollable-container/f-scrollable.service';\nimport { TableOfContentData } from '../../f-scrollable-container';\nimport { FTableOfContentItemsComponent } from './f-table-of-content-items';\nimport { FEnvironmentService } from '../../domain';\nimport { BrowserService } from '@foblex/platform';\n\n@Component({\n selector: 'aside[f-table-of-content]',\n styleUrls: [ './f-table-of-content.component.scss' ],\n templateUrl: './f-table-of-content.component.html',\n standalone: true,\n imports: [ AsyncPipe, JsonPipe, FTableOfContentItemsComponent ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FTableOfContentComponent implements OnInit, OnDestroy {\n\n private subscriptions$: Subscription = new Subscription();\n\n public get onToc$(): Observable<TableOfContentData> {\n return this.fScrollableService.onToc$;\n }\n\n protected tocData: TableOfContentData = new TableOfContentData([], []);\n\n protected activeMarkerPosition: number = 0;\n\n protected title: string | undefined;\n\n constructor(\n private fEnvironmentService: FEnvironmentService,\n private elementRef: ElementRef<HTMLElement>,\n private fScrollableService: FScrollableService,\n private changeDetectorRef: ChangeDetectorRef,\n private fBrowser: BrowserService\n ) {\n this.title = this.fEnvironmentService.getToC().title;\n }\n\n public ngOnInit(): void {\n this.subscriptions$.add(this.subscribeOnPageNavigation());\n }\n\n private subscribeOnPageNavigation(): Subscription {\n return this.onToc$.subscribe((data) => {\n this.tocData = data;\n this.activeMarkerPosition = this.getActiveMarkerPosition();\n this.changeDetectorRef.detectChanges();\n });\n }\n\n private getActiveMarkerPosition(): number {\n const index = this.tocData.flat.findIndex((x) => x.isActive) || 0;\n const itemHeight = parseInt(this.getComputedStyle(this.elementRef.nativeElement).getPropertyValue('--on-page-navigation-item-height'));\n return (index + 1) * itemHeight + itemHeight / 4;\n }\n\n private getComputedStyle(element: HTMLElement): CSSStyleDeclaration {\n return this.fBrowser.window.getComputedStyle(element);\n }\n\n @HostListener('click', [ '$event' ])\n public onDocumentClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (target.tagName === 'A') {\n event.preventDefault();\n this.fScrollableService.scrollTo(target.getAttribute('href')!);\n }\n }\n\n public ngOnDestroy(): void {\n this.subscriptions$.unsubscribe();\n }\n}\n","<div class=\"title\">{{ title || 'In this article' }}</div>\n<ul f-table-of-content-items [items]=\"tocData.tree\"></ul>\n<div class=\"active-marker\" [style.top]=\"activeMarkerPosition + 'px'\"></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\nimport { FTableOfContentComponent } from './f-table-of-content';\nimport { FMarkdownRendererComponent } from './f-markdown';\n\n@Component({\n selector: 'f-page',\n templateUrl: './f-page.component.html',\n styleUrls: [ './f-page.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FTableOfContentComponent,\n FMarkdownRendererComponent\n ],\n host: {\n 'ngSkipHydration': ''\n }\n})\nexport class FPageComponent {\n\n}\n","<f-markdown-renderer></f-markdown-renderer>\n<aside f-table-of-content></aside>\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["getDOM","i1","i2.FHeadTagService","i3","i1.FEnvironmentService","i1.FStateService","i2","i2.FStateService","i2.FEnvironmentService","filter","i1.FScrollableService","i1.FPopoverService","RULE","i3.FEnvironmentService","i4","i2.FScrollableService"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@foblex/m-render" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export declare const F_ACCEPT_COOKIES_KEY = "m-render-accepts-cookies";
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class FAnalyticsService {
3
+ private readonly fLocalStorage;
4
+ private readonly document;
5
+ initialize(analyticsId: string): void;
6
+ private installGlobalSiteTag;
7
+ private getGtmScript;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<FAnalyticsService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<FAnalyticsService>;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { IWindowService } from '@foblex/platform';
2
+ export interface IWindowWithAnalytics extends IWindowService {
3
+ dataLayer?: any[];
4
+ gtag?(...args: any[]): void;
5
+ }
@@ -0,0 +1,4 @@
1
+ export * from './f-accept-cookies-key';
2
+ export * from './f-analytics.service';
3
+ export * from './i-window-with-analytics';
4
+ export * from './set-cookie-consent';
@@ -0,0 +1,6 @@
1
+ declare global {
2
+ interface Window {
3
+ gtag: (...args: any[]) => void;
4
+ }
5
+ }
6
+ export declare const setCookieConsent: (state: 'denied' | 'granted') => void;
@@ -0,0 +1,20 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class FHeadTagService {
3
+ private _document;
4
+ private _dom;
5
+ constructor(_document: any);
6
+ setTitle(title: string): void;
7
+ setDescription(description: string): void;
8
+ private getDescription;
9
+ setCanonical(url: string): void;
10
+ private getCanonical;
11
+ updateTag(tag: IMetaTag): void;
12
+ private getMetaTag;
13
+ private createElement;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<FHeadTagService, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<FHeadTagService>;
16
+ }
17
+ export interface IMetaTag {
18
+ property: string;
19
+ content: string;
20
+ }